瀏覽代碼

服务申请单管理

hu 2 月之前
父節點
當前提交
abce31f4a0

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

@@ -6272,6 +6272,11 @@ public class R {
         public static class v1 {
         }
     }
+
+    public static class ID2025071710525303 {
+        public static class v1 {
+        }
+    }
 }
 
 

+ 1 - 1
src/custom/restcontroller/sale/serviceorder/SQL/服务申请单提交.sql

@@ -1 +1 @@
-update sa_serviceorder set status='待指派',submitby=$submitby$,submitdate=CURRENT_TIMESTAMP where sa_serviceorderid = $sa_serviceorderid$ and siteid=$siteid$ 
+update sa_serviceorder set status='待分配',submitby=$submitby$,submitdate=CURRENT_TIMESTAMP where sa_serviceorderid = $sa_serviceorderid$ and siteid=$siteid$

+ 84 - 10
src/custom/restcontroller/sale/serviceorder/serviceorder.java

@@ -8,10 +8,7 @@ import common.YosException;
 import common.annotation.API;
 import common.annotation.CACHEING;
 import common.annotation.CACHEING_CLEAN;
-import common.data.QuerySQL;
-import common.data.Row;
-import common.data.Rows;
-import common.data.SQLFactory;
+import common.data.*;
 import org.apache.commons.lang.StringUtils;
 import restcontroller.R;
 import restcontroller.webmanage.executorService.Executor;
@@ -64,11 +61,21 @@ public class serviceorder extends Controller {
         QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_serviceorder", "*");
         querySQL.setTableAlias("t1");
         querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise", "t2", "t1.sys_enterpriseid = t2.sys_enterpriseid AND t1.siteid = t2.siteid","enterprisename","abbreviation","phonenumber");
-        querySQL.addJoinTable(JOINTYPE.left, "sa_order", "t3", "t1.sa_orderid = t3.sa_orderid AND t1.siteid = t3.siteid","sonum");
-        querySQL.addJoinTable(JOINTYPE.left, "sa_agents", "t5", "t1.sys_enterpriseid = t5.sys_enterpriseid AND t1.siteid = t5.siteid","agentnum");
+        querySQL.addJoinTable(JOINTYPE.left, "sa_agents", "t3", "t2.sys_enterpriseid = t3.sys_enterpriseid AND t2.siteid = t3.siteid","agentnum");
+        querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise", "t4", "t1.sys_enterpriseid_service = t4.sys_enterpriseid AND t1.siteid = t4.siteid","enterprisename","abbreviation","phonenumber");
+        querySQL.addJoinTable(JOINTYPE.left, "sa_agents", "t5", "t4.sys_enterpriseid = t5.sys_enterpriseid AND t4.siteid = t5.siteid","agentnum");
+        querySQL.addJoinTable(JOINTYPE.left, "(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", "t8.sa_serviceorderid=t1.sa_serviceorderid and t8.siteid=t1.siteid","itemid","sku","cardno");
+        querySQL.addJoinTable(JOINTYPE.left, "plm_item", "t9", "t9.itemid=t8.itemid and t9.siteid=t8.siteid","itemno","itemname","model","spec");
+        querySQL.addQueryFields("serviceenterprisename","t4.enterprisename");
+        querySQL.addQueryFields("serviceabbreviation","t4.abbreviation");
+        querySQL.addQueryFields("servicephonenumber","t4.phonenumber");
+        querySQL.addQueryFields("serviceagentnum","t5.agentnum");
+
+
 
         querySQL.setSiteid(siteid);
-        querySQL.setWhere("t1.sys_enterpriseid",sys_enterpriseid);
+        querySQL.setWhere("(t1.sys_enterpriseid="+sys_enterpriseid+" or t1.sys_enterpriseid_service="+sys_enterpriseid+")");
         querySQL.setWhere(where.toString());
         querySQL.setPage(pageSize, pageNumber);
         querySQL.setOrderBy(pageSorting);
@@ -81,9 +88,9 @@ public class serviceorder extends Controller {
             R.ID20230206101303.v1.class, R.ID20230217100703.v1.class, R.ID20230217133003.v1.class})
     public String sumbit() throws YosException {
         Long sa_serviceorderid = content.getLong("sa_serviceorderid");
-        boolean issumbit = content.getBooleanValue("issumbit");
+        boolean issumbit = true;
         Rows rows = dbConnect
-                .runSqlQuery("select sa_serviceorderid,status,billno from sa_serviceorder where sa_serviceorderid ='"
+                .runSqlQuery("select sa_serviceorderid,status,billno,sys_enterpriseid,province,city,county from sa_serviceorder where sa_serviceorderid ='"
                         + sa_serviceorderid + "' and  siteid='" + siteid + "'");
         for (Row row : rows) {
             if (issumbit) {
@@ -123,8 +130,48 @@ public class serviceorder extends Controller {
         sqlFactoryupdate.addParameter("submitby", username);
         sqlList.add(sqlFactoryupdate.getSQL());
 
-        dbConnect.runSqlUpdate(sqlList);
         if (issumbit) {
+            Rows agents = dbConnect.runSqlQuery("select * from sa_agents where siteid='"+siteid+"' and sys_enterpriseid="+ rows.get(0).getLong("sys_enterpriseid"));
+             if(agents.isNotEmpty()){
+                 if(agents.get(0).getBoolean("isservice")){
+                     sqlList.add("update sa_serviceorder set status='待受理',sys_enterpriseid_service="+agents.get(0).getLong("sys_enterpriseid")+" where sa_serviceorderid="+sa_serviceorderid);
+                 }else{
+                     Rows serviceagents = dbConnect.runSqlQuery("select t1.sys_enterpriseid,t2.province,t2.city,t2.county from sa_agents t1 inner join sa_agents_salescope  t2  on  t1.sa_agentsid=t2.sa_agentsid and t1.siteid=t2.siteid where t1.siteid='"+siteid+"'");
+                     System.out.println(serviceagents.get(0).getString("city"));
+                     System.out.println(rows.get(0).getString("city"));
+                     RowsMap countyRowsMap=serviceagents.toRowsMap("county");
+                     RowsMap cityRowsMap=serviceagents.toRowsMap("city");
+                     RowsMap provinceRowsMap=serviceagents.toRowsMap("province");
+                     if(countyRowsMap.containsKey(rows.get(0).getString("county"))){
+                         UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, "sa_serviceorder");
+                         updateSQL.setUniqueid(sa_serviceorderid);
+                         updateSQL.setSiteid(siteid);
+                         updateSQL.setValue("status", "待受理");
+                         updateSQL.setValue("sys_enterpriseid_service", countyRowsMap.get(rows.get(0).getString("county")).get(0).getLong("sys_enterpriseid"));
+                         updateSQL.setDateValue("allocationdate");
+                         updateSQL.setValue("allocationby", username);
+                         sqlList.add(updateSQL.getSQL());
+                     }else if(cityRowsMap.containsKey(rows.get(0).getString("city"))){
+                         UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, "sa_serviceorder");
+                         updateSQL.setUniqueid(sa_serviceorderid);
+                         updateSQL.setSiteid(siteid);
+                         updateSQL.setValue("status", "待受理");
+                         updateSQL.setValue("sys_enterpriseid_service", cityRowsMap.get(rows.get(0).getString("city")).get(0).getLong("sys_enterpriseid"));
+                         updateSQL.setDateValue("allocationdate");
+                         updateSQL.setValue("allocationby", username);
+                         sqlList.add(updateSQL.getSQL());
+                     }else if(provinceRowsMap.containsKey(rows.get(0).getString("province"))){
+                         UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, "sa_serviceorder");
+                         updateSQL.setUniqueid(sa_serviceorderid);
+                         updateSQL.setSiteid(siteid);
+                         updateSQL.setValue("status", "待受理");
+                         updateSQL.setValue("sys_enterpriseid_service", provinceRowsMap.get(rows.get(0).getString("province")).get(0).getLong("sys_enterpriseid"));
+                         updateSQL.setDateValue("allocationdate");
+                         updateSQL.setValue("allocationby", username);
+                         sqlList.add(updateSQL.getSQL());
+                     }
+                 }
+             }
             Rows workersRows = dbConnect.runSqlQuery(
                     "select  t3.phonenumber from sys_hr t1 left join sys_users t3 on t1.userid = t3.userid left join sys_hr t4 on t1.siteid = t4.siteid and t1.reporthrid = t4.hrid where t1.siteid = '"
                             + siteid + "' and t1.isworker=1  and  t1.isleader=1");
@@ -147,7 +194,34 @@ public class serviceorder extends Controller {
             Executor.sendEml(this, "serviceordersub", sa_serviceorderid,siteid);
         }
 
+        dbConnect.runSqlUpdate(sqlList);
+        return getSucReturnObject().toString();
+    }
+
+    @API(title = "手工分配服务商", apiversion = R.ID2025071710525303.v1.class)
+    public String assignserviceagentbyhand() throws YosException {
+        Long sa_serviceorderid = content.getLong("sa_serviceorderid");
+         sys_enterpriseid = content.getLong("sys_enterpriseid");
+        Rows rows = dbConnect
+                .runSqlQuery("select sa_serviceorderid,status,billno,sys_enterpriseid from sa_serviceorder where sa_serviceorderid ='"
+                        + sa_serviceorderid + "' and  siteid='" + siteid + "'");
+        if(rows.isEmpty()){
+            return getErrReturnObject().setErrMsg("该服务申请单不存在").toString();
+        }
+        if(!rows.get(0).getString("status").equals("待分配")){
+            return getErrReturnObject().setErrMsg("非待分配的服务申请单无法分配服务商").toString();
+        }
+        UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, "sa_serviceorder");
+        updateSQL.setUniqueid(sa_serviceorderid);
+        updateSQL.setSiteid(siteid);
+        updateSQL.setValue("status", "待受理");
+        updateSQL.setValue("sys_enterpriseid_service", sys_enterpriseid);
+        updateSQL.setDateValue("allocationdate");
+        updateSQL.setValue("allocationby", username);
+
+        dbConnect.runSqlUpdate(updateSQL.getSQL());
         return getSucReturnObject().toString();
     }
 
+
 }

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

@@ -1,16 +1,33 @@
 SELECT
     t1.*,
-	t3.sonum,
-	t2.enterprisename,
-	t2.abbreviation,
-	t2.phonenumber,
-	t5.agentnum,
-	t7.name saler_name
-FROM sa_serviceorder t1 LEFT JOIN sys_enterprise t2 ON t1.sys_enterpriseid = t2.sys_enterpriseid 
-	AND t1.siteid = t2.siteid
-	LEFT JOIN sa_order t3 ON t1.sa_orderid = t3.sa_orderid 
-	AND t1.siteid = t3.siteid
-	LEFT JOIN sa_agents t5 ON t1.sys_enterpriseid = t5.sys_enterpriseid 
-	AND t1.siteid = t5.siteid
-	 left join sys_hr t7 on t7.hrid=t1.saler_hrid and t7.siteid=t1.siteid
+    t2.enterprisename,
+    t2.abbreviation,
+    t2.phonenumber,
+    t3.agentnum,
+    t4.enterprisename serviceenterprisename,
+    t4.abbreviation serviceabbreviation,
+    t4.phonenumber servicephonenumber,
+    t5.agentnum serviceagentnum,
+    t7.name saler_name,
+    t8.itemid,
+    t8.sku,
+    t8.cardno,
+    t9.itemno,
+    t9.itemname,
+    t9.model,
+    t9.spec
+FROM
+    sa_serviceorder t1
+        LEFT JOIN sys_enterprise t2 ON t1.sys_enterpriseid = t2.sys_enterpriseid
+        AND t1.siteid = t2.siteid
+        LEFT JOIN sa_agents t3 ON t2.sys_enterpriseid = t3.sys_enterpriseid
+        AND t2.siteid = t3.siteid
+        LEFT JOIN sys_enterprise t4 ON t1.sys_enterpriseid_service = t4.sys_enterpriseid
+        AND t1.siteid = t4.siteid
+        LEFT JOIN sa_agents t5 ON t4.sys_enterpriseid = t5.sys_enterpriseid
+        AND t4.siteid = t5.siteid
+        left join sys_hr t7 on t7.hrid=t1.saler_hrid and t7.siteid=t1.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
+
 	where t1.siteid=$siteid$ and $where$

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

@@ -1,18 +1,32 @@
 SELECT
     t1.*,
-	t3.sonum,
-	t2.enterprisename,
-	t2.abbreviation,
-	t2.phonenumber,
-	t5.agentnum,
-	t7.name saler_name
+    t2.enterprisename,
+    t2.abbreviation,
+    t2.phonenumber,
+    t3.agentnum,
+    t4.enterprisename serviceenterprisename,
+    t4.abbreviation serviceabbreviation,
+    t4.phonenumber servicephonenumber,
+    t5.agentnum serviceagentnum,
+    t7.name saler_name,
+    t8.itemid,
+    t8.sku,
+    t8.cardno,
+    t9.itemno,
+    t9.itemname,
+    t9.model,
+    t9.spec
 FROM
-	sa_serviceorder t1
-	LEFT JOIN sys_enterprise t2 ON t1.sys_enterpriseid = t2.sys_enterpriseid 
-	AND t1.siteid = t2.siteid
-	LEFT JOIN sa_order t3 ON t1.sa_orderid = t3.sa_orderid 
-	AND t1.siteid = t3.siteid
-	LEFT JOIN sa_agents t5 ON t1.sys_enterpriseid = t5.sys_enterpriseid 
-	AND t1.siteid = t5.siteid
-	 left join sys_hr t7 on t7.hrid=t1.saler_hrid and t7.siteid=t1.siteid
+    sa_serviceorder t1
+        LEFT JOIN sys_enterprise t2 ON t1.sys_enterpriseid = t2.sys_enterpriseid
+        AND t1.siteid = t2.siteid
+        LEFT JOIN sa_agents t3 ON t2.sys_enterpriseid = t3.sys_enterpriseid
+        AND t2.siteid = t3.siteid
+        LEFT JOIN sys_enterprise t4 ON t1.sys_enterpriseid_service = t4.sys_enterpriseid
+        AND t1.siteid = t4.siteid
+        LEFT JOIN sa_agents t5 ON t4.sys_enterpriseid = t5.sys_enterpriseid
+        AND t4.siteid = t5.siteid
+        left join sys_hr t7 on t7.hrid=t1.saler_hrid and t7.siteid=t1.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
 	where  $where$

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

@@ -1,18 +1,32 @@
 SELECT
     t1.*,
-	t3.sonum,
-	t2.enterprisename,
-	t2.abbreviation,
-	t2.phonenumber,
-	t5.agentnum,
-	t7.name saler_name
+    t2.enterprisename,
+    t2.abbreviation,
+    t2.phonenumber,
+    t3.agentnum,
+    t4.enterprisename serviceenterprisename,
+    t4.abbreviation serviceabbreviation,
+    t4.phonenumber servicephonenumber,
+    t5.agentnum serviceagentnum,
+    t7.name saler_name,
+    t8.itemid,
+    t8.sku,
+    t8.cardno,
+    t9.itemno,
+    t9.itemname,
+    t9.model,
+    t9.spec
 FROM
-	sa_serviceorder t1
-	LEFT JOIN sys_enterprise t2 ON t1.sys_enterpriseid = t2.sys_enterpriseid 
-	AND t1.siteid = t2.siteid
-	LEFT JOIN sa_order t3 ON t1.sa_orderid = t3.sa_orderid 
-	AND t1.siteid = t3.siteid
-	LEFT JOIN sa_agents t5 ON t1.sys_enterpriseid = t5.sys_enterpriseid 
-	AND t1.siteid = t5.siteid
-    left join sys_hr t7 on t7.hrid=t1.saler_hrid and t7.siteid=t1.siteid
+    sa_serviceorder t1
+        LEFT JOIN sys_enterprise t2 ON t1.sys_enterpriseid = t2.sys_enterpriseid
+        AND t1.siteid = t2.siteid
+        LEFT JOIN sa_agents t3 ON t2.sys_enterpriseid = t3.sys_enterpriseid
+        AND t2.siteid = t3.siteid
+        LEFT JOIN sys_enterprise t4 ON t1.sys_enterpriseid_service = t4.sys_enterpriseid
+        AND t1.siteid = t4.siteid
+        LEFT JOIN sa_agents t5 ON t4.sys_enterpriseid = t5.sys_enterpriseid
+        AND t4.siteid = t5.siteid
+        left join sys_hr t7 on t7.hrid=t1.saler_hrid and t7.siteid=t1.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
 	where t1.siteid=$siteid$  and t1.sa_serviceorderid=$sa_serviceorderid$

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

@@ -1,18 +1,32 @@
 SELECT
     t1.*,
-	t3.sonum,
-	t2.enterprisename,
-	t2.abbreviation,
-	t2.phonenumber,
-	t5.agentnum,
-	t7.name saler_name
+    t2.enterprisename,
+    t2.abbreviation,
+    t2.phonenumber,
+    t3.agentnum,
+    t4.enterprisename serviceenterprisename,
+    t4.abbreviation serviceabbreviation,
+    t4.phonenumber servicephonenumber,
+    t5.agentnum serviceagentnum,
+    t7.name saler_name,
+    t8.itemid,
+    t8.sku,
+    t8.cardno,
+    t9.itemno,
+    t9.itemname,
+    t9.model,
+    t9.spec
 FROM
-	sa_serviceorder t1
-	LEFT JOIN sys_enterprise t2 ON t1.sys_enterpriseid = t2.sys_enterpriseid 
-	AND t1.siteid = t2.siteid
-	LEFT JOIN sa_order t3 ON t1.sa_orderid = t3.sa_orderid 
-	AND t1.siteid = t3.siteid
-	LEFT JOIN sa_agents t5 ON t1.sys_enterpriseid = t5.sys_enterpriseid 
-	AND t1.siteid = t5.siteid
-    left join sys_hr t7 on t7.hrid=t1.saler_hrid and t7.siteid=t1.siteid
-	where  t1.sa_serviceorderid=$sa_serviceorderid$
+    sa_serviceorder t1
+        LEFT JOIN sys_enterprise t2 ON t1.sys_enterpriseid = t2.sys_enterpriseid
+        AND t1.siteid = t2.siteid
+        LEFT JOIN sa_agents t3 ON t2.sys_enterpriseid = t3.sys_enterpriseid
+        AND t2.siteid = t3.siteid
+        LEFT JOIN sys_enterprise t4 ON t1.sys_enterpriseid_service = t4.sys_enterpriseid
+        AND t1.siteid = t4.siteid
+        LEFT JOIN sa_agents t5 ON t4.sys_enterpriseid = t5.sys_enterpriseid
+        AND t4.siteid = t5.siteid
+        left join sys_hr t7 on t7.hrid=t1.saler_hrid and t7.siteid=t1.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
+where t1.siteid=$siteid$  and t1.sa_serviceorderid=$sa_serviceorderid$

+ 30 - 35
src/custom/restcontroller/webmanage/sale/serviceorder/serviceorder.java

@@ -47,7 +47,6 @@ public class serviceorder extends Controller {
         String tableName = "sa_serviceorder";
         Long sa_serviceorderid = content.getLong("sa_serviceorderid");
         String servicetype = content.getString("servicetype"); //服务分类
-        Long sa_orderid = content.getLong("sa_orderid");
         if (content.containsKey("sys_enterpriseid")) {
             sys_enterpriseid = content.getLong("sys_enterpriseid");
         }
@@ -66,12 +65,16 @@ public class serviceorder extends Controller {
         String begdate = content.getStringValue("begdate");
         String enddate = content.getStringValue("enddate");
         long saler_hrid = content.getLongValue("saler_hrid");
+
+        String sku= content.getStringValue("sku");
+        String cardno= content.getStringValue("cardno");
+        long itemid= content.getLongValue("itemid");
         SQLFactory sqlFactory = new SQLFactory(this, "服务申请单新增");
 
         if (content.containsKey("servicetype")) {
-            if (!content.getString("servicetype").equals("售前") && !content.getString("servicetype").equals("历史售后")) {
-                if (content.getLong("sa_orderid") <= 0) {
-                    return getErrReturnObject().setErrMsg("售中及售后的服务单需添加关联订单").toString();
+            if (content.getString("servicetype").equals("安装")) {
+                if (StringUtils.isBlank(sku)) {
+                    return getErrReturnObject().setErrMsg("安装服务单需添加序列号").toString();
                 }
             }
         }
@@ -86,7 +89,6 @@ public class serviceorder extends Controller {
                         "select sa_serviceorderid from sa_serviceorder where sa_serviceorderid=" + sa_serviceorderid)
                 .isEmpty()) {
             sa_serviceorderid = createTableID(tableName);
-            sqlFactory.addParameter("sa_orderid", sa_orderid);
             sqlFactory.addParameter("sys_enterpriseid", sys_enterpriseid);
             if (saler_hrid != 0) {
                 sqlFactory.addParameter("saler_hrid", saler_hrid);
@@ -107,26 +109,7 @@ public class serviceorder extends Controller {
             if (rows.isNotEmpty()) {
                 if (rows.get(0).getString("status").equals("新建")) {
                     sqlFactory = new SQLFactory(this, "服务申请单更新");
-                    sqlFactory.addParameter("saler_hrid", saler_hrid);
-                    if (sys_enterpriseid == rows.get(0).getLong("sys_enterpriseid")) {
-                        sqlFactory.addParameter("sys_enterpriseid", sys_enterpriseid);
-                        if (sa_orderid == rows.get(0).getLong("sa_orderid")) {
-                            sqlFactory.addParameter("sa_orderid", sa_orderid);
-                        } else {
-                            sqlList.add("delete from sa_serviceorderitems WHERE sa_serviceorderid = "
-                                    + sa_serviceorderid);
-                            sqlFactory.addParameter("sa_orderid", sa_orderid);
-                        }
-                    } else {
-                        sqlFactory.addParameter("sys_enterpriseid", sys_enterpriseid);
-                        if (sa_orderid == rows.get(0).getLong("sa_orderid")) {
-                            sqlFactory.addParameter("sa_orderid", 0);
-                        } else {
-                            sqlList.add("delete from sa_serviceorderitems WHERE sa_serviceorderid = "
-                                    + sa_serviceorderid);
-                            sqlFactory.addParameter("sa_orderid", sa_orderid);
-                        }
-                    }
+                    sqlFactory.addParameter("sys_enterpriseid", sys_enterpriseid);
                     sqlList.add(DataContrlLog.createLog(this, "sa_serviceorder", sa_serviceorderid, "更新", "服务申请单更新成功")
                             .getSQL());
                 } else {
@@ -144,6 +127,7 @@ public class serviceorder extends Controller {
         sqlFactory.addParameter("userid", userid);
         sqlFactory.addParameter("username", username);
         sqlFactory.addParameter("sa_serviceorderid", sa_serviceorderid);
+        sqlFactory.addParameter("sa_orderid", 0);
         sqlFactory.addParameter("remarks", remarks);
         sqlFactory.addParameter("class1", class1);
         sqlFactory.addParameter("class2", class2);
@@ -161,8 +145,21 @@ public class serviceorder extends Controller {
         sqlFactory.addParameter("begdate", begdate.equals("") ? "null" : begdate);
         sqlFactory.addParameter("enddate", enddate.equals("") ? "null" : enddate);
         sqlList.add(sqlFactory.getSQL());
+
+        InsertSQL insertSQL = SQLFactory.createInsertSQL(this, "sa_serviceorderitems");
+        insertSQL.setUniqueid(createTableID("sa_serviceorderitems"));
+        insertSQL.setSiteid(siteid);
+        insertSQL.setValue("sa_serviceorderid", sa_serviceorderid);
+        insertSQL.setValue("itemid", itemid);
+        insertSQL.setValue("sku", sku);
+        insertSQL.setValue("cardno", cardno);
+        insertSQL.setValue("reason", reason);
+        sqlList.add(insertSQL.getSQL());
+
+        dbConnect.runSqlUpdate("delete from sa_serviceorderitems where siteid='"+siteid+"' and sa_serviceorderid="+sa_serviceorderid);
         dbConnect.runSqlUpdate(sqlList);
 
+
         content.put("sa_serviceorderid", sa_serviceorderid);
 
         return queryserviceorderMain();
@@ -175,17 +172,15 @@ public class serviceorder extends Controller {
     public String servicetypeList() throws YosException {
         Rows rows = new Rows();
         Row row1 = new Row();
-        row1.put("value", "售前");
+        row1.put("value", "维修");
         Row row2 = new Row();
-        row2.put("value", "售中");
+        row2.put("value", "安装");
         Row row3 = new Row();
-        row3.put("value", "售后");
-        Row row4 = new Row();
-        row4.put("value", "历史售后");
+        row3.put("value", "清洗");
         rows.add(row1);
         rows.add(row2);
         rows.add(row3);
-        rows.add(row4);
+
         return getSucReturnObject().setData(rows).toString();
 
     }
@@ -342,10 +337,10 @@ public class serviceorder extends Controller {
             JSONObject whereObject = content.getJSONObject("where");
             if (whereObject.containsKey("condition") && !"".equals(whereObject.getString("condition"))) {
                 where.append(" and(");
-                where.append("t1.billno like'%").append(whereObject.getString("condition")).append("%' ");
-                where.append("or t3.sonum like'%").append(whereObject.getString("condition")).append("%' ");
+                where.append("t1.servicetype like'%").append(whereObject.getString("condition")).append("%' ");
                 where.append("or t2.enterprisename like'%").append(whereObject.getString("condition")).append("%' ");
                 where.append("or t1.reason like'%").append(whereObject.getString("condition")).append("%' ");
+                where.append("or t1.class1 like'%").append(whereObject.getString("condition")).append("%' ");
                 where.append(")");
             }
             if (whereObject.containsKey("status") && !"".equals(whereObject.getString("status"))) {
@@ -458,8 +453,8 @@ public class serviceorder extends Controller {
         if (rows.isEmpty()) {
             return getErrReturnObject().setErrMsg("此服务单不存在").toString();
         } else {
-            if (!rows.get(0).getString("status").equals("待指派")) {
-                return getErrReturnObject().setErrMsg("非待指派状态无法生成工单").toString();
+            if (!rows.get(0).getString("status").equals("待受理")) {
+                return getErrReturnObject().setErrMsg("非待受理状态无法生成工单").toString();
             }
         }