Browse Source

工单更新优化

hu 3 months ago
parent
commit
99d6fd7218

+ 10 - 1
src/custom/restcontroller/webmanage/sale/workorder/SQL/服务工单详情查询.sql

@@ -21,7 +21,14 @@ SELECT
     t9.projectname,
     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,
+    t10.itemid,
+    t10.sku,
+    t10.cardno,
+    t11.itemno,
+    t11.itemname,
+    t11.model,
+    t11.spec
 FROM
 	sa_workorder t1
 	left join sa_serviceorder t2 on t1.sa_serviceorderid=t2.sa_serviceorderid and t1.siteid=t2.siteid
@@ -31,4 +38,6 @@ FROM
     left join sys_hr t7 on t7.hrid=t2.saler_hrid and t7.siteid=t2.siteid
     left join sa_order t8 on t8.sa_orderid=t2.sa_orderid and t8.siteid=t2.siteid
     left join sa_project t9 on t9.sa_projectid=t8.sa_projectid and t8.siteid=t9.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) t10 on t10.sa_serviceorderid=t1.sa_serviceorderid and t10.siteid=t1.siteid
+    left join plm_item t11 on t11.itemid=t10.itemid and t11.siteid=t10.siteid
 	where t1.siteid=$siteid$  and t1.sa_workorderid=$sa_workorderid$

+ 36 - 10
src/custom/restcontroller/webmanage/sale/workorder/workorder.java

@@ -14,17 +14,15 @@ import common.data.*;
 import org.apache.commons.lang.StringUtils;
 import restcontroller.R;
 import restcontroller.webmanage.executorService.Executor;
-import restcontroller.webmanage.sale.order.Order;
-import restcontroller.webmanage.sale.order.OrderItems;
+
 import restcontroller.webmanage.sale.serviceorder.serviceorder;
-import restcontroller.webmanage.sale.serviceorder.tools.VerificationManage;
+import restcontroller.webmanage.sale.serviceorder.serviceorderItems;
 
 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;
 import java.util.regex.Pattern;
 
@@ -40,8 +38,7 @@ public class workorder extends Controller {
     }
 
     @API(title = "服务工单更新", apiversion = R.ID20230208140003.v1.class)
-    @CACHEING_CLEAN(apiversions = {R.ID20230208140103.v1.class, R.ID20230208140203.v1.class,
-            R.ID20230209091103.v1.class})
+    @CACHEING_CLEAN(apiversions = {workorder.class, serviceorder.class,restcontroller.sale.serviceorder.serviceorder.class, serviceorderItems.class})
     public String modify_workorder() throws YosException {
         ArrayList<String> sqlList = new ArrayList<>();
         // 表名
@@ -61,6 +58,16 @@ public class workorder extends Controller {
         String scenecontactphonenumber = content.getStringValue("scenecontactphonenumber");
         JSONArray projectlearders = content.getJSONArray("projectlearders");
 
+        String class1 = content.getStringValue("class1");
+        String province = content.getStringValue("province");
+        String city= content.getStringValue("city");
+        String county = content.getStringValue("county");
+        String servicetype = content.getStringValue("servicetype");
+        String cardno = content.getStringValue("cardno");
+        String sku = content.getStringValue("sku");
+        long itemid = content.getLongValue("itemid");
+
+
         Rows rows = dbConnect.runSqlQuery(
                 "select * from sa_workorder where sa_workorderid=" + sa_workorderid + " and siteid='" + siteid + "'");
         if (rows.isEmpty()) {
@@ -98,11 +105,30 @@ public class workorder extends Controller {
         sqlFactory.addParameter("remarks", remarks);
 
         sqlList.add(sqlFactory.getSQL());
-        sqlList.add("update sa_serviceorder set scenecontact='" + scenecontact + "',scenecontactrole='"
-                + scenecontactrole + "',scenecontactphonenumber='" + scenecontactphonenumber + "',address='" + address
-                + "',reason='" + reason + "' where sa_serviceorderid=" + sa_serviceorderid + " and siteid='" + siteid
-                + "'");
 
+        UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, "sa_serviceorder");
+        updateSQL.setUniqueid(sa_serviceorderid);
+        updateSQL.setSiteid(siteid);
+        updateSQL.setValue("scenecontact", scenecontact);
+        updateSQL.setValue("scenecontactrole", scenecontactrole);
+        updateSQL.setValue("scenecontactphonenumber", scenecontactphonenumber);
+        updateSQL.setValue("reason", reason);
+        updateSQL.setValue("class1", class1);
+        updateSQL.setValue("province", province);
+        updateSQL.setValue("city", city);
+        updateSQL.setValue("county", county);
+        updateSQL.setValue("servicetype", servicetype);
+
+        sqlList.add(updateSQL.getSQL());
+
+        UpdateSQL updateSQLdetail = SQLFactory.createUpdateSQL(this, "sa_serviceorder");
+        updateSQLdetail.setUniqueid(sa_serviceorderid);
+        updateSQLdetail.setSiteid(siteid);
+        updateSQLdetail.setValue("itemid", itemid);
+        updateSQLdetail.setValue("sku", sku);
+        updateSQLdetail.setValue("cardno", cardno);
+
+        sqlList.add(updateSQLdetail.getSQL());
         dbConnect.runSqlUpdate(sqlList);
         content.put("sa_workorderid", sa_workorderid);