소스 검색

会计期间及经销商增加信息

hu 9 달 전
부모
커밋
7be00a9d8a

+ 5 - 0
src/custom/restcontroller/R.java

@@ -6307,6 +6307,11 @@ public class R {
         public static class v1 {
         }
     }
+
+    public static class ID2025072315401603 {
+        public static class v1 {
+        }
+    }
 }
 
 

+ 1 - 1
src/custom/restcontroller/webmanage/sale/serviceorder/SQL/服务申请单列表查询.sql

@@ -2,7 +2,7 @@ SELECT
     t1.*,
     t2.enterprisename,
     t2.abbreviation,
-    t2.phonenumber,
+    t2.phonenumber enterprisephonenumber,
     t3.agentnum,
     t4.enterprisename serviceenterprisename,
     t4.abbreviation serviceabbreviation,

+ 1 - 1
src/custom/restcontroller/webmanage/sale/serviceorder/SQL/服务申请单列表查询2.sql

@@ -2,7 +2,7 @@ SELECT
     t1.*,
     t2.enterprisename,
     t2.abbreviation,
-    t2.phonenumber,
+    t2.phonenumber enterprisephonenumber,
     t3.agentnum,
     t4.enterprisename serviceenterprisename,
     t4.abbreviation serviceabbreviation,

+ 2 - 2
src/custom/restcontroller/webmanage/sale/serviceorder/SQL/服务申请单新增.sql

@@ -1,4 +1,4 @@
 insert into sa_serviceorder (siteid, sa_serviceorderid,createuserid,createby, createdate, billno,billdate,changeuserid,changeby, changedate,
-                                sys_enterpriseid,sa_orderid,reason,remarks,servicetype,class1,class2,province,city,county,address,scenecontact,scenecontactrole,scenecontactphonenumber,begdate,enddate, status,saler_hrid)
+                                sys_enterpriseid,sa_orderid,reason,remarks,servicetype,class1,class2,province,city,county,address,scenecontact,scenecontactrole,scenecontactphonenumber,begdate,enddate, status,saler_hrid,name,phonenumber)
 values ($siteid$, $sa_serviceorderid$,$userid$,$username$, CURRENT_TIME, $billno$,$billdate$,$userid$, $username$, CURRENT_TIME, $sys_enterpriseid$,$sa_orderid$,$reason$,$remarks$,$servicetype$,$class1$,$class2$,
-        $province$,$city$,$county$,$address$,$scenecontact$,$scenecontactrole$,$scenecontactphonenumber$,$begdate$,$enddate$,'新建',$saler_hrid$);
+        $province$,$city$,$county$,$address$,$scenecontact$,$scenecontactrole$,$scenecontactphonenumber$,$begdate$,$enddate$,'新建',$saler_hrid$,$name$,$phonenumber$);

+ 3 - 1
src/custom/restcontroller/webmanage/sale/serviceorder/SQL/服务申请单更新.sql

@@ -19,7 +19,9 @@ SET
     scenecontactphonenumber=$scenecontactphonenumber$,
     begdate=$begdate$,
     enddate=$enddate$,
-    saler_hrid=$saler_hrid$
+    saler_hrid=$saler_hrid$,
+    name=$name$,
+    phonenumber=$phonenumber$
 WHERE sa_serviceorderid = $sa_serviceorderid$ and siteid=$siteid$
 
 

+ 1 - 1
src/custom/restcontroller/webmanage/sale/serviceorder/SQL/服务申请单详情查询.sql

@@ -2,7 +2,7 @@ SELECT
     t1.*,
     t2.enterprisename,
     t2.abbreviation,
-    t2.phonenumber,
+    t2.phonenumber enterprisephonenumber,
     t3.agentnum,
     t4.enterprisename serviceenterprisename,
     t4.abbreviation serviceabbreviation,

+ 1 - 1
src/custom/restcontroller/webmanage/sale/serviceorder/SQL/服务申请单详情查询2.sql

@@ -2,7 +2,7 @@ SELECT
     t1.*,
     t2.enterprisename,
     t2.abbreviation,
-    t2.phonenumber,
+    t2.phonenumber enterprisephonenumber,
     t3.agentnum,
     t4.enterprisename serviceenterprisename,
     t4.abbreviation serviceabbreviation,

+ 3 - 0
src/custom/restcontroller/webmanage/sale/serviceorder/serviceorder.java

@@ -144,6 +144,9 @@ public class serviceorder extends Controller {
         sqlFactory.addParameter("billdate", billdate.equals("") ? "null" : billdate);
         sqlFactory.addParameter("begdate", begdate.equals("") ? "null" : begdate);
         sqlFactory.addParameter("enddate", enddate.equals("") ? "null" : enddate);
+
+        sqlFactory.addParameter("name", content.getStringValue("name"));
+        sqlFactory.addParameter("phonenumber", content.getStringValue("phonenumber"));
         sqlList.add(sqlFactory.getSQL());
 
         InsertSQL insertSQL = SQLFactory.createInsertSQL(this, "sa_serviceorderitems");

+ 16 - 1
src/custom/restcontroller/webmanage/sale/workorder/SQL/服务工单列表查询.sql

@@ -13,11 +13,26 @@ select  t1.*,
         t2.enddate,
         t7.name saler_name,
         t7.phonenumber salerphonenumber,
-		(select name from sys_datateam where ownerid=t1.sa_workorderid and ownertable='sa_workorder' order by isleader desc LIMIT 0,1 ) projectleader
+		(select name from sys_datateam where ownerid=t1.sa_workorderid and ownertable='sa_workorder' order by isleader desc LIMIT 0,1 ) projectleader,
+		t8.itemid,
+		t8.sku,
+		t8.cardno,
+		t9.itemno,
+		t9.itemname,
+		t9.model,
+		t9.spec,
+        t10.enterprisename serviceenterprisename,
+        t10.abbreviation serviceabbreviation,
+        t10.phonenumber servicephonenumber,
         from  sa_workorder t1 
    left join sa_serviceorder t2 on t1.sa_serviceorderid=t2.sa_serviceorderid and t1.siteid=t2.siteid 
    left join sa_workorder_template t4 on t1.sa_workorder_templateid=t4.sa_workorder_templateid and t1.siteid=t4.siteid
    left join sys_enterprise t5 on t5.sys_enterpriseid=t1.sys_enterpriseid and t1.siteid=t5.siteid
    left join sa_agents t6 on t6.sys_enterpriseid=t1.sys_enterpriseid and t1.siteid=t6.siteid
    left join sys_hr t7 on t7.hrid=t2.saler_hrid and t7.siteid=t2.siteid
+    left join (SELECT * FROM (SELECT *,ROW_NUMBER() OVER (PARTITION BY sa_serviceorderid ORDER BY sa_serviceorderitemsid ASC) AS rowno FROM sa_serviceorderitems) t WHERE rowno = 1) t8 on t8.sa_serviceorderid=t1.sa_serviceorderid and t8.siteid=t1.siteid
+    left join plm_item t9 on t9.itemid=t8.itemid and t9.siteid=t8.siteid
+    LEFT JOIN sys_enterprise t10 ON t10.sys_enterpriseid = t2.sys_enterpriseid_service
+    AND t10.siteid = t2.siteid
+    LEFT JOIN sa_agents t11 ON t11.sys_enterpriseid = t10.sys_enterpriseid
    where t1.siteid=$siteid$ and t1.status<>'作废' and $where$

+ 2 - 2
src/custom/restcontroller/webmanage/sale/workorder/SQL/服务工单节点货品明细新增.sql

@@ -1,3 +1,3 @@
 insert into sa_workorder_node_items (siteid, sa_workorder_node_itemsid,createuserid,createby,createdate,
-                                sa_workorderid,sa_workorder_nodeid,itemid,qty)
-values ($siteid$, $sa_workorder_node_itemsid$,$userid$,$username$, CURRENT_TIME,$sa_workorderid$, $sa_workorder_nodeid$, $itemid$,$qty$);
+                                sa_workorderid,sa_workorder_nodeid,itemid,qty,isnew)
+values ($siteid$, $sa_workorder_node_itemsid$,$userid$,$username$, CURRENT_TIME,$sa_workorderid$, $sa_workorder_nodeid$, $itemid$,$qty$,$isnew$);

+ 67 - 6
src/custom/restcontroller/webmanage/sale/workorder/workorder.java

@@ -20,7 +20,10 @@ import restcontroller.webmanage.sale.serviceorder.serviceorder;
 
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
+import java.util.Calendar;
 import java.util.Date;
 
 /**
@@ -359,11 +362,17 @@ public class workorder extends Controller {
             row.put("team", workorderteamRows);
 
             /** 工单节点物料查询 **/
-            Rows workorderitemRows = dbConnect.runSqlQuery(
+            Rows oldworkorderitemRows = dbConnect.runSqlQuery(
                     "select t1.*,t2.itemno,t2.model,t2.itemname,t2.spec from sa_workorder_node_items t1 left join plm_item t2 on t1.itemid=t2.itemid and t1.siteid=t2.siteid where t1.sa_workorder_nodeid="
-                            + sa_workorder_nodeid + " and t1.sa_workorderid=" + sa_workorderid + " and t1.siteid='"
+                            + sa_workorder_nodeid + " and t1.sa_workorderid=" + sa_workorderid + " and ifnull(t1.isnew,0)=0 and t1.siteid='"
                             + siteid + "'");
-            row.put("titems", workorderitemRows);
+            row.put("oldtitems", oldworkorderitemRows);
+
+            Rows newworkorderitemRows = dbConnect.runSqlQuery(
+                    "select t1.*,t2.itemno,t2.model,t2.itemname,t2.spec from sa_workorder_node_items t1 left join plm_item t2 on t1.itemid=t2.itemid and t1.siteid=t2.siteid where t1.sa_workorder_nodeid="
+                            + sa_workorder_nodeid + " and t1.sa_workorderid=" + sa_workorderid + " and ifnull(t1.isnew,0)=1 and t1.siteid='"
+                            + siteid + "'");
+            row.put("newtitems", newworkorderitemRows);
 
 //			 /** 节点关联培训物料查询 **/
 //			  Rows traintitem = dbConnect.runSqlQuery("select * from sa_workorder_node_items where sa_workorder_nodeid="+sa_workorder_nodeid+" and sa_workorderid="
@@ -481,6 +490,7 @@ public class workorder extends Controller {
                         addtraintitemsqlFactory.addParameter("sa_workorderid", sa_workorderid);
                         addtraintitemsqlFactory.addParameter("sa_workorder_nodeid", sa_workorder_nodeid);
                         addtraintitemsqlFactory.addParameter("itemid", jsonObject.getLongValue("itemid"));
+                        addtraintitemsqlFactory.addParameter("isnew", jsonObject.getBooleanValue("isnew"));
                         addtraintitemsqlFactory.addParameter("qty", jsonObject.getBigDecimal("qty"));
                         addtraintitemsqlFactory.addParameter("userid", userid);
                         addtraintitemsqlFactory.addParameter("username", username);
@@ -678,6 +688,31 @@ public class workorder extends Controller {
         return getSucReturnObject().toString();
     }
 
+
+
+    @API(title = "提交工单", apiversion = R.ID2025072315401603.v1.class)
+    @CACHEING_CLEAN(apiversions = {workorder.class, serviceorder.class})
+    public String submit() throws YosException {
+        Long sa_workorderid = content.getLong("sa_workorderid");
+
+        Rows rows = dbConnect
+                .runSqlQuery("select sa_serviceorderid,status,billno from sa_workorder where sa_workorderid ='"
+                        + sa_workorderid + "' and  siteid='" + siteid + "'");
+        for (Row row : rows) {
+            if (!row.getString("status").equals("进行中")) {
+                return getErrReturnObject().setErrMsg("单号为:【" + row.getString("billno") + "】的工单为非进行中状态,无法提交工单")
+                        .toString();
+            }
+        }
+        ArrayList<String> sqlList = new ArrayList<>();
+        sqlList.add(
+                "update sa_workorder set status='提交' where sa_workorderid=" + sa_workorderid);
+        sqlList.add(DataContrlLog.createLog(this, "sa_workorder", sa_workorderid, "工单提交", "服务工单提交成功").getSQL());
+
+        dbConnect.runSqlUpdate(sqlList);
+        return getSucReturnObject().toString();
+    }
+
     @API(title = "完结工单", apiversion = R.ID20230209144903.v1.class)
     @CACHEING_CLEAN(apiversions = {R.ID20230208140103.v1.class, R.ID20230208140203.v1.class,
             R.ID20230209091103.v1.class, R.ID20230206091603.v1.class, R.ID20230206101303.v1.class,
@@ -686,11 +721,11 @@ public class workorder extends Controller {
         Long sa_workorderid = content.getLong("sa_workorderid");
 
         Rows rows = dbConnect
-                .runSqlQuery("select sa_serviceorderid,status,billno from sa_workorder where sa_workorderid ='"
+                .runSqlQuery("select sa_serviceorderid,status,billno,type from sa_workorder where sa_workorderid ='"
                         + sa_workorderid + "' and  siteid='" + siteid + "'");
         if (!rows.isEmpty()) {
-            if (!rows.get(0).getString("status").equals("进行中")) {
-                return getErrReturnObject().setErrMsg("非进行中状态无法完结工单").toString();
+            if (!rows.get(0).getString("status").equals("提交")) {
+                return getErrReturnObject().setErrMsg("非提交状态无法完结工单").toString();
             }
         } else {
             return getErrReturnObject().setErrMsg("该工单不存在").toString();
@@ -738,6 +773,32 @@ public class workorder extends Controller {
                     .toString();
         }
 
+        if(rows.get(0).getString("type").equals("安装")){
+            Rows itemrows =dbConnect.runSqlQuery("select t1.sku,ifnull(t2.warrantyday,0) warrantyday,t4.sa_agentsid from sa_serviceorderitems t1 inner join plm_item t2 on t1.itemid=t2.itemid and t1.siteid=t2.siteid where t1.sa_serviceorderid="+rows.get(0).getLong("sa_serviceorderid")+" and t1.siteid='"+siteid+"' left join sa_serviceorder t3 on t1.sa_serviceorderid=t3.sa_serviceorderid and t1.siteid=t3.siteid left join sa_agents t4 on t3.sys_enterpriseid=t4.sys_enterpriseid and t3.siteid=t4.siteid");
+            if(itemrows.isNotEmpty()){
+                LocalDate now = LocalDate.now();
+
+                // 将当前日期加上3年
+                LocalDate futureDate = now.plusYears(itemrows.get(0).getInteger("warrantyday"));
+
+                // 定义日期格式
+                DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+
+                // 格式化日期
+                String formattedDate = futureDate.format(formatter);
+
+                InsertSQL insertSQL = SQLFactory.createInsertSQL(this, "sa_warrantycard");
+                insertSQL.setUniqueid(createTableID("sa_warrantycard"));
+                insertSQL.setSiteid(siteid);
+                insertSQL.setValue("sa_agentsid", itemrows.get(0).getLong("sa_agentsid"));
+                insertSQL.setValue("cardno", "");
+                insertSQL.setValue("enddate", formattedDate);
+                insertSQL.setValue("begdate", getDateTime_Str());
+                sqlList.add(insertSQL.getSQL());
+            }
+
+        }
+
         sqlList.add("update sa_workorder set status='已完成',finishby='" + username
                 + "',finishdate=CURRENT_TIME  where sa_workorderid=" + sa_workorderid);
         sqlList.add(DataContrlLog.createLog(this, "sa_workorder", sa_workorderid, "工单完结", "服务工单完结成功").getSQL());