Jelajahi Sumber

Merge remote-tracking branch 'origin/develop' into develop

wu 2 bulan lalu
induk
melakukan
ab0bbe6b7e

+ 2 - 2
src/custom/beans/stockbill/bills/BasicBill.java

@@ -96,7 +96,7 @@ public abstract class BasicBill {
             if (!status.equals("新建")) {
                 throw new YosException("单号为:【" + billno + "】的出入库单为非新建状态,无法审核");
             }
-            RowsMap rowsMap = dbConnect.runSqlQuery("select CONCAT(year, '-',LPAD(month, 2, '0')) period,isclose from st_period").toRowsMap("period");
+            RowsMap rowsMap = dbConnect.runSqlQuery("select CONCAT(year, '-',LPAD(month, 2, '0')) period,isclose from st_period where CONCAT(year, '-',LPAD(month, 2, '0'))='" + period + "'").toRowsMap("period");
             if (rowsMap.containsKey(period)) {
                 if (rowsMap.get(period).toRowsMap("isclose").containsKey("1")) {
                     throw new YosException("原单据会计期间已关闭,不可审核");
@@ -137,7 +137,7 @@ public abstract class BasicBill {
             if (!status.equals("审核")) {
                 throw new YosException("单号为:【" + billno + "】的出入库单为非审核状态,无法反审核");
             }
-            RowsMap rowsMap = dbConnect.runSqlQuery("select CONCAT(year, '-',LPAD(month, 2, '0')) period,isclose from st_period").toRowsMap("period");
+            RowsMap rowsMap = dbConnect.runSqlQuery("select CONCAT(year, '-',LPAD(month, 2, '0')) period,isclose from st_period where CONCAT(year, '-',LPAD(month, 2, '0'))='" + period + "'").toRowsMap("period");
             if (rowsMap.containsKey(period)) {
                 if (rowsMap.get(period).toRowsMap("isclose").containsKey("1")) {
                     throw new YosException("原单据会计期间已关闭,不可反审核");

+ 21 - 18
src/custom/restcontroller/sale/order/Order.java

@@ -77,15 +77,18 @@ public class Order extends Controller {
         sqlFactory.addParameter_in("sa_orderid", sa_orderids);
         RowsMap dataRowsMap = dbConnect.runSqlQuery(sqlFactory).toRowsMap("sa_orderid");
 
-        QuerySQL expressformQuery = SQLFactory.createQuerySQL(this, "expressform", "*").setTableAlias("t1");
-        expressformQuery.addJoinTable(JOINTYPE.inner, "sa_expressform_stockbill", "t2", "t2.expressformid = t1.expressformid");
-        expressformQuery.addJoinTable(JOINTYPE.inner, "st_stockbill_items", "t3", "t3.st_stockbillid = t2.st_stockbillid","sa_orderid");
-        expressformQuery.addJoinTable(JOINTYPE.inner, "st_stockbill", "t4", "t3.st_stockbillid = t4.st_stockbillid","tracknumber");
-        expressformQuery.setWhere("t3.sa_orderid", sa_orderids);
-        expressformQuery.setOrderBy("t1.createdate desc");
-        expressformQuery.setDistinct(true);
-        Rows expressformrows = expressformQuery.query();
-        RowsMap expressformrowsMap = expressformrows.toRowsMap("sa_orderid");
+        RowsMap expressformrowsMap = new RowsMap();
+        if (!sa_orderids.isEmpty()) {
+            QuerySQL expressformQuery = SQLFactory.createQuerySQL(this, "expressform", "*").setTableAlias("t1");
+            expressformQuery.addJoinTable(JOINTYPE.inner, "sa_expressform_stockbill", "t2", "t2.expressformid = t1.expressformid");
+            expressformQuery.addJoinTable(JOINTYPE.inner, "st_stockbill_items", "t3", "t3.st_stockbillid = t2.st_stockbillid", "sa_orderid");
+            expressformQuery.addJoinTable(JOINTYPE.inner, "st_stockbill", "t4", "t3.st_stockbillid = t4.st_stockbillid", "tracknumber");
+            expressformQuery.setWhere("t3.sa_orderid", sa_orderids);
+            expressformQuery.setOrderBy("t1.createdate desc");
+            expressformQuery.setDistinct(true);
+            expressformrowsMap = expressformQuery.query().toRowsMap("sa_orderid");
+        }
+
         RowsMap ContactsRowsMap = beans.order.Order.getContactsRowsMap(this, rows.toArrayList("rec_contactsid", new ArrayList<>()));
         for (Row row : rows) {
             Rows dataRows = dataRowsMap.getOrDefault(row.getString("sa_orderid"), new Rows());
@@ -96,19 +99,19 @@ public class Order extends Controller {
                 row.put("qty", 0);
             }
             //查询收货人信息
-            if(ContactsRowsMap.containsKey(row.getString("rec_contactsid"))){
+            if (ContactsRowsMap.containsKey(row.getString("rec_contactsid"))) {
                 row.put("contacts", ContactsRowsMap.get(row.getString("rec_contactsid")).get(0));
-            }else{
+            } else {
                 row.put("contacts", new Row());
             }
             //查询快递信息
-            if(expressformrowsMap.containsKey(row.getString("sa_orderid"))){
-                row.put("expressform_mailno",expressformrowsMap.get(row.getString("sa_orderid")).get(0).getString("mailno"));
-                row.put("expressform_txlogisticid",expressformrowsMap.get(row.getString("sa_orderid")).get(0).getString("txlogisticid"));
+            if (expressformrowsMap.containsKey(row.getString("sa_orderid"))) {
+                row.put("expressform_mailno", expressformrowsMap.get(row.getString("sa_orderid")).get(0).getString("mailno"));
+                row.put("expressform_txlogisticid", expressformrowsMap.get(row.getString("sa_orderid")).get(0).getString("txlogisticid"));
 
-            }else{
-                row.put("expressform_mailno","");
-                row.put("expressform_txlogisticid","");
+            } else {
+                row.put("expressform_mailno", "");
+                row.put("expressform_txlogisticid", "");
 
             }
         }
@@ -128,7 +131,7 @@ public class Order extends Controller {
     //查询订单列表(经销商)
     public QuerySQL queryList(String where) throws YosException {
         QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_order",
-                "sa_orderid", "sonum", "status", "type", "billdate", "tradefield", "remarks","rec_contactsid","checkdate","closedate","invoicetaxno","invoicename","invoiceaddress","contact","address","phonenumber","province","city","county");
+                "sa_orderid", "sonum", "status", "type", "billdate", "tradefield", "remarks", "rec_contactsid", "checkdate", "closedate", "invoicetaxno", "invoicename", "invoiceaddress", "contact", "address", "phonenumber", "province", "city", "county");
         querySQL.setTableAlias("t1");
         querySQL.addJoinTable(JOINTYPE.left, "sa_brand", "t3", "t3.sa_brandid = t1.sa_brandid",
                 "brandname");

+ 12 - 11
src/custom/restcontroller/webmanage/sale/accessoryorder/accessoryorder.java

@@ -141,9 +141,8 @@ public class accessoryorder extends Controller {
             querySQL.setWhere("t1.status", statusList);
         }
         querySQL.setOrderBy("t1.submitdate desc");
-        Rows rows;
         querySQL.setPage(pageSize, pageNumber);
-        rows = querySQL.query();
+        Rows rows = querySQL.query();
 
         ArrayList<Long> ids = rows.toArrayList("sa_orderid", new ArrayList<>());
         //查询数量金额
@@ -151,15 +150,17 @@ public class accessoryorder extends Controller {
 
         RowsMap ContactsRowsMap = beans.order.Order.getContactsRowsMap(this, rows.toArrayList("rec_contactsid", new ArrayList<>()));
         //查询快递信息
-        QuerySQL expressformQuery = SQLFactory.createQuerySQL(this, "expressform", "*").setTableAlias("t1");
-        expressformQuery.addJoinTable(JOINTYPE.inner, "sa_expressform_stockbill", "t2", "t2.expressformid = t1.expressformid");
-        expressformQuery.addJoinTable(JOINTYPE.inner, "st_stockbill_items", "t3", "t3.st_stockbillid = t2.st_stockbillid", "sa_orderid");
-        expressformQuery.addJoinTable(JOINTYPE.inner, "st_stockbill", "t4", "t3.st_stockbillid = t4.st_stockbillid", "tracknumber");
-        expressformQuery.setWhere("t3.sa_orderid", rows.toArrayList("sa_orderid"));
-        expressformQuery.setOrderBy("t1.createdate desc");
-//        expressformQuery.setDistinct(true);
-        Rows expressformrows = expressformQuery.query();
-        RowsMap expressformrowsMap = expressformrows.toRowsMap("sa_orderid");
+        RowsMap expressformrowsMap = new RowsMap();
+        if (rows.isNotEmpty()) {
+            QuerySQL expressformQuery = SQLFactory.createQuerySQL(this, "expressform", "*").setTableAlias("t1");
+            expressformQuery.addJoinTable(JOINTYPE.inner, "sa_expressform_stockbill", "t2", "t2.expressformid = t1.expressformid");
+            expressformQuery.addJoinTable(JOINTYPE.inner, "st_stockbill_items", "t3", "t3.st_stockbillid = t2.st_stockbillid", "sa_orderid");
+            expressformQuery.addJoinTable(JOINTYPE.inner, "st_stockbill", "t4", "t3.st_stockbillid = t4.st_stockbillid", "tracknumber");
+            expressformQuery.setWhere("t3.sa_orderid", rows.toArrayList("sa_orderid"));
+            expressformQuery.setOrderBy("t1.createdate desc");
+            expressformrowsMap = expressformQuery.query().toRowsMap("sa_orderid");
+        }
+
         //查询区域信息
 //        QuerySQL areaQuery = SQLFactory.createQuerySQL(this, "sa_salearea", "areanum","areaname","areafullname").setTableAlias("t1");
 //        areaQuery.addJoinTable(JOINTYPE.inner, "sys_enterprise_tradefield ", "t2", "t2.sa_saleareaid = t1.sa_saleareaid","sys_enterpriseid");

+ 8 - 50
src/custom/restcontroller/webmanage/sale/agents/agents.java

@@ -85,8 +85,12 @@ public class agents extends Controller {
         sqlFactory.addParameter("sa_agentsid", sa_agentsid);
         sqlFactory.addParameter("siteid", siteid);
         Rows agentRows = dbConnect.runSqlQuery(sqlFactory.getSQL());
-        Rows tradefieldidRows = dbConnect.runSqlQuery("select t1.sys_enterpriseid,t1.sa_agentsid,t1.sa_saleareaid,t1.tradefield,t3.areaname,t3.sa_saleareaids from sys_enterprise_tradefield t1  LEFT JOIN sa_salearea t3 ON t3.sa_saleareaid = t1.sa_saleareaid and t3.siteid = t1.siteid  where t1.siteid ='" + siteid + "'");
-        RowsMap rowsMap = tradefieldidRows.toRowsMap("sys_enterpriseid");
+
+        QuerySQL tradefieldQuery = SQLFactory.createQuerySQL(this, "sys_enterprise_tradefield", "sys_enterpriseid", "sa_agentsid", "sa_saleareaid", "tradefield").setTableAlias("t1");
+        tradefieldQuery.addJoinTable(JOINTYPE.left, "sa_salearea", "t2", "t1.sa_saleareaid=t2.sa_saleareaid", "areaname", "sa_saleareaids");
+        tradefieldQuery.setSiteid(siteid);
+        tradefieldQuery.setWhere("sys_enterpriseid", agentRows.toArrayList("sys_enterpriseid"));
+        RowsMap rowsMap = tradefieldQuery.query().toRowsMap("sys_enterpriseid");
         for (Row agentRow : agentRows) {
             if (rowsMap.containsKey(agentRow.getString("sys_enterpriseid"))) {
                 Rows rows = rowsMap.get(agentRow.getString("sys_enterpriseid"));
@@ -371,7 +375,7 @@ public class agents extends Controller {
         //开票节点(1:订单审核:2:发货)
         sqlFactory.addParameter("invoicingpoint", content.getLongValue("invoicingpoint") == 0 ? 2 : content.getLongValue("invoicingpoint"));
         //是否需要经营授权,默认1
-        sqlFactory.addParameter("saleclassauth", content.getBooleanValue("saleclassauth") == false ? 0 : 1);
+        sqlFactory.addParameter("saleclassauth", !content.getBooleanValue("saleclassauth") ? 0 : 1);
         sqlFactory.addParameter("grade", content.getLongValue("grade"));
         sqlFactory.addParameter("sys_enterpriseid", sys_enterpriseid);
         sqlFactory.addParameter("siteid", siteid);
@@ -379,46 +383,6 @@ public class agents extends Controller {
         sqlFactory.addParameter("changeuserid", userid);
         sqllist.add(sqlFactory.getSQL());
 
-
-        //企业信息同步到【我的客户】,并将该客户打上经销商标签,
-        Rows customersRows = dbConnect.runSqlQuery("SELECT sa_customersid from sa_customers WHERE sys_enterpriseid =" + sys_enterpriseid + " and siteid = '" + siteid + "'");
-        Long sa_customersid = 0L;
-        if (customersRows.isNotEmpty()) {
-            sa_customersid = customersRows.get(0).getLong("sa_customersid");
-            sqlFactory = new SQLFactory(this, "客户更新");
-
-        } else {
-            sa_customersid = createTableID("sa_customers");
-            sqlFactory = new SQLFactory(this, "客户新增");
-        }
-
-        Row enterpriseRow = getEnterprise(this, sys_enterpriseid);
-
-        sqlFactory.addParameter("siteid", siteid);
-        sqlFactory.addParameter("userid", userid);
-        sqlFactory.addParameter("username", username);
-        sqlFactory.addParameter("sa_customersid", sa_customersid);
-        //上级客户ID
-        sqlFactory.addParameter("parentid", "null");
-        //合作企业档案ID
-        sqlFactory.addParameter("sys_enterpriseid", sys_enterpriseid);
-        //客户类型
-        sqlFactory.addParameter("type", "经销商(客户)");
-        //客户池(公海池)ID
-        sqlFactory.addParameter("sa_customerpoolid", 0);
-        //客户来源
-        sqlFactory.addParameter("source", "经销商同步");
-        sqlFactory.addParameter("customergrade", "null");
-        sqlFactory.addParameter("ispublic", 0);
-        sqlFactory.addParameter("name", enterpriseRow.getString("enterprisename"));
-        sqlFactory.addParameter("province", enterpriseRow.getString("province"));
-        sqlFactory.addParameter("city", enterpriseRow.getString("city"));
-        sqlFactory.addParameter("county", enterpriseRow.getString("county"));
-        sqlFactory.addParameter("address", enterpriseRow.getString("address"));
-        sqlFactory.addParameter("phonenumber", enterpriseRow.getString("phonenumber"));
-        sqllist.add(sqlFactory.getSQL());
-
-
         JSONArray tradefields = content.getJSONArray("tradefields");
         Long sa_saleareaid = content.getLong("sa_saleareaid");
         sqllist.add("DELETE FROM sys_enterprise_tradefield WHERE sa_agentsid=" + sa_agentsid + "  AND siteid = '" + siteid + "'");
@@ -439,14 +403,10 @@ public class agents extends Controller {
             }
         }
 
-
         dbConnect.runSqlUpdate(sqllist);
         content.put("sa_agentsid", sa_agentsid);
-
-        //打经销商标签
-        DataTag.createTag(this, "sa_customers", sa_customersid, "经销商");
         if (isAdd) {
-
+            Row enterpriseRow = getEnterprise(this, sys_enterpriseid);
             InsertSQL insertSQL = SQLFactory.createInsertSQL(this, "sys_enterprise_finance");
             insertSQL.setSiteid(siteid);
             insertSQL.setValue("sys_enterpriseid", sys_enterpriseid);
@@ -457,8 +417,6 @@ public class agents extends Controller {
             insertSQL.insert();
             DataContrlLog.createLog(this, "sa_agents", sa_agentsid, "新增", "自动新增默认开票信息").insert();
         }
-
-
         return query_agentMain();
     }
 

+ 29 - 20
src/custom/restcontroller/webmanage/sale/dbstockbill/dbstockbillreceive.java

@@ -40,8 +40,7 @@ public class dbstockbillreceive extends Controller {
         querySQL.setTableAlias("t1");
         querySQL.addJoinTable(JOINTYPE.left, "st_stock", "t2", "t1.instockid = t2.stockid AND t1.siteid = t2.siteid");
         querySQL.addJoinTable(JOINTYPE.left, "st_stock", "t3", "t1.outstockid = t3.stockid AND t1.siteid = t3.siteid");
-        querySQL.addJoinTable(JOINTYPE.left, "plm_item", "t4", "t1.itemid=t4.itemid and t1.siteid = t4.siteid", "itemno", "itemname"
-                , "spec", "model");
+        querySQL.addJoinTable(JOINTYPE.left, "plm_item", "t4", "t1.itemid=t4.itemid and t1.siteid = t4.siteid", "itemno", "itemname", "spec", "model");
         querySQL.addJoinTable(JOINTYPE.left, "plm_unit", "t5", "t4.unitid=t5.unitid and t4.siteid = t5.siteid", "unitname");
         querySQL.addJoinTable(JOINTYPE.inner, "st_dbstockbill", "t6", "t1.st_dbstockbillid=t6.st_dbstockbillid and t1.siteid = t6.siteid", "billno", "checkdate");
 
@@ -101,16 +100,23 @@ public class dbstockbillreceive extends Controller {
             if (recqty > undeliqty) {
                 return getErrReturnObject().setErrMsg("收货确认数量不能大于未入库数量").toString();
             }
-            if (jsonObject.getJSONArray("skuinfos").size() > 0) {
-                if (recqty != jsonObject.getJSONArray("skuinfos").size()) {
-                    return getErrReturnObject().setErrMsg("机器码数量与收货确认数量不匹配").toString();
-                }
+            if (!jsonObject.getJSONArray("skuinfos").isEmpty() && recqty != jsonObject.getJSONArray("skuinfos").size()) {
+                return getErrReturnObject().setErrMsg("机器码数量与收货确认数量不匹配").toString();
             }
-            Rows skurows = dbConnect.runSqlQuery("select * from sa_itemsku where siteid='" + siteid + "' and ifnull(st_dbstockbillid,0)>0 ");
-            RowsMap skuRowsMap = skurows.toRowsMap("sku");
+
+            ArrayList<String> recskus = new ArrayList<>();
             for (Object skuinfo : jsonObject.getJSONArray("skuinfos")) {
-                if (!skuRowsMap.containsKey(((JSONObject) skuinfo).getString("sku"))) {
-                    return getErrReturnObject().setErrMsg("序列号" + ((JSONObject) skuinfo).getString("sku") + "不存在或者已经确认收货").toString();
+                recskus.add(((JSONObject) skuinfo).getString("sku"));
+            }
+            QuerySQL itemskuQuery = SQLFactory.createQuerySQL(this, "sa_itemsku", "sku");
+            itemskuQuery.setSiteid(siteid);
+            itemskuQuery.setWhere("ifnull(st_dbstockbillid,0)>0");
+            itemskuQuery.setWhere("sku", recskus);
+            ArrayList<String> skus = itemskuQuery.query().toArrayList("sku");
+
+            for (String sku : recskus) {
+                if (!skus.contains(sku)) {
+                    return getErrReturnObject().setErrMsg("序列号" + sku + "不存在或者已经确认收货").toString();
                 }
             }
 
@@ -182,17 +188,20 @@ public class dbstockbillreceive extends Controller {
         return getSucReturnObject().toString();
     }
 
-    public String getPeriod(String date) throws YosException {
-        String preioddate = new SimpleDateFormat("yyyy-MM-dd").format(date);
-        Rows rows = dbConnect.runSqlQuery("select CONCAT_WS('-', year, LPAD(month, 2, '0')) period from st_period where begdate<='" + preioddate + "' and enddate>='" + preioddate + "'");
-        if (rows.size() != 1) {
-            throw new YosException("单据日期所属会计期间未生成");
-        } else {
-            return rows.get(0).getString("period");
+    public String getPeriod(String date) {
+        try {
+            String preioddate = new SimpleDateFormat("yyyy-MM-dd").format(new SimpleDateFormat("yyyy-MM-dd").parse(date));
+            Rows rows = dbConnect.runSqlQuery("select CONCAT_WS('-', year, LPAD(month, 2, '0')) period from st_period where begdate<='" + preioddate + "' and enddate>='" + preioddate + "'");
+            if (rows.size() != 1) {
+                throw new YosException("单据日期所属会计期间未生成");
+            } else {
+                return rows.get(0).getString("period");
+            }
+        } catch (Exception e) {
+            return "";
         }
     }
 
-
     public ArrayList<String> updateIcinvbal(boolean ischeck, boolean isinstock, Rows dbstockbilldetail) throws YosException {
         ArrayList<String> sqlList = new ArrayList();
         ArrayList<Long> itemids = new ArrayList<Long>();
@@ -298,9 +307,9 @@ public class dbstockbillreceive extends Controller {
         ArrayList<String> sqllist = new ArrayList<>();
         for (Row row : dbstockbilldetail) {
             if (ischeck) {// 审核
-                sqllist.add("update st_dbstockbilldetail  set undeliqty=undeliqty-" + row.getInteger("recqty") + " where st_dbstockbilldetailid='" + row.getString("st_dbstockbilldetailid") + "'");
+                sqllist.add("update st_dbstockbilldetail  set undeliqty=undeliqty-" + row.getInteger("qty") + " where st_dbstockbilldetailid='" + row.getString("st_dbstockbilldetailid") + "'");
             } else {// 反审核
-                sqllist.add("update st_dbstockbilldetail set undeliqty=" + row.getBigDecimal("qty") + " where st_dbstockbilldetailid='" + row.getString("st_dbstockbilldetailid") + "'");
+                sqllist.add("update st_dbstockbilldetail set undeliqty=undeliqty+" + row.getBigDecimal("qty") + " where st_dbstockbilldetailid='" + row.getString("st_dbstockbilldetailid") + "'");
             }
         }
         return sqllist;

+ 48 - 94
src/custom/restcontroller/webmanage/sale/order/Order.java

@@ -19,7 +19,6 @@ import common.YosException;
 import common.annotation.API;
 import common.annotation.CACHEING;
 import common.annotation.CACHEING_CLEAN;
-import common.api.YOSAPI;
 import common.data.*;
 import common.data.db.DBConnect;
 import org.apache.commons.lang.StringUtils;
@@ -246,9 +245,7 @@ public class Order extends Controller {
         } else {
             //订单更新时
             if (content.getLongValue("sa_accountclassid") != 0) {
-                Rows accountclassRows = dbConnect
-                        .runSqlQuery(
-                                "select accountno,accountname from sa_accountclass where sa_accountclassid=" + content.getLongValue("sa_accountclassid"));
+                Rows accountclassRows = dbConnect.runSqlQuery("select accountno,accountname from sa_accountclass where sa_accountclassid=" + content.getLongValue("sa_accountclassid"));
                 if (accountclassRows.isNotEmpty()) {
                     if (accountclassRows.get(0).getString("accountname").equals("物料账户")) {
                         Rows wuliaoRows = dbConnect.runSqlQuery("select * from sa_orderitems t1 where exists(select 1 from plm_item t left join plm_itemclass t2 on t.marketingcategory=t2.itemclassid and t.siteid=t2.siteid where t.itemid=t1.itemid and t2.itemclassname='物料') and t1.sa_orderid=" + sa_orderid);
@@ -656,16 +653,17 @@ public class Order extends Controller {
         sqlFactory.addParameter_in("sys_enterpriseid", sys_enterpriseids);
         RowsMap financeRowsMap = dbConnect.runSqlQuery(sqlFactory).toRowsMap("sys_enterpriseid");
 
-        QuerySQL expressformQuery = SQLFactory.createQuerySQL(this, "expressform", "*").setTableAlias("t1");
-        expressformQuery.addJoinTable(JOINTYPE.inner, "sa_expressform_stockbill", "t2", "t2.expressformid = t1.expressformid");
-        expressformQuery.addJoinTable(JOINTYPE.inner, "st_stockbill_items", "t3", "t3.st_stockbillid = t2.st_stockbillid", "sa_orderid");
-        expressformQuery.addJoinTable(JOINTYPE.inner, "st_stockbill", "t4", "t3.st_stockbillid = t4.st_stockbillid", "tracknumber");
-        expressformQuery.setWhere("t3.sa_orderid", sa_orderids);
-        expressformQuery.setOrderBy("t1.createdate desc");
-        expressformQuery.setDistinct(true);
-        Rows expressformrows = expressformQuery.query();
-        RowsMap expressformrowsMap = expressformrows.toRowsMap("sa_orderid");
-
+        RowsMap expressformrowsMap = new RowsMap();
+        if (!sa_orderids.isEmpty()) {
+            QuerySQL expressformQuery = SQLFactory.createQuerySQL(this, "expressform", "*").setTableAlias("t1");
+            expressformQuery.addJoinTable(JOINTYPE.inner, "sa_expressform_stockbill", "t2", "t2.expressformid = t1.expressformid");
+            expressformQuery.addJoinTable(JOINTYPE.inner, "st_stockbill_items", "t3", "t3.st_stockbillid = t2.st_stockbillid", "sa_orderid");
+            expressformQuery.addJoinTable(JOINTYPE.inner, "st_stockbill", "t4", "t3.st_stockbillid = t4.st_stockbillid", "tracknumber");
+            expressformQuery.setWhere("t3.sa_orderid", sa_orderids);
+            expressformQuery.setOrderBy("t1.createdate desc");
+            expressformQuery.setDistinct(true);
+            expressformrowsMap = expressformQuery.query().toRowsMap("sa_orderid");
+        }
 
         for (Row row : rows) {
             row.put("pay_finance", financeRowsMap.getOrDefault(row.getString("sys_enterpriseid"), new Rows()));
@@ -1004,14 +1002,10 @@ public class Order extends Controller {
             }
         }
 
-        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_order",
-                "sa_orderid", "sonum", "type", "status", "submitdate", "checkdate", "remarks", "createby", "checkby", "billdate", "tradefield", "rec_contactsid", "delivery", "logisticsmethod", "tracknumber", "mailno"
-                , "invoicetaxno", "invoicename", "invoiceaddress", "contact", "address", "phonenumber", "province", "city", "county");
+        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_order", "sa_orderid", "sonum", "type", "status", "submitdate", "checkdate", "remarks", "createby", "checkby", "billdate", "tradefield", "rec_contactsid", "delivery", "logisticsmethod", "tracknumber", "mailno", "invoicetaxno", "invoicename", "invoiceaddress", "contact", "address", "phonenumber", "province", "city", "county");
         querySQL.setTableAlias("t1");
-        querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise", "t2", "t2.sys_enterpriseid = t1.sys_enterpriseid and t2.siteid = t1.siteid",
-                "enterprisename", "abbreviation");
-        querySQL.addJoinTable(JOINTYPE.left, "sa_agents", "t6", "t6.sys_enterpriseid=t1.sys_enterpriseid and t6.siteid = t1.siteid",
-                "agentnum");
+        querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise", "t2", "t2.sys_enterpriseid = t1.sys_enterpriseid and t2.siteid = t1.siteid", "enterprisename", "abbreviation");
+        querySQL.addJoinTable(JOINTYPE.left, "sa_agents", "t6", "t6.sys_enterpriseid=t1.sys_enterpriseid and t6.siteid = t1.siteid", "agentnum");
         querySQL.addQueryFields("amount", "CAST(0 AS CHAR(20))");
         querySQL.addQueryFields("qty", "CAST(0 AS CHAR(20))");
         querySQL.setCondition("t1.sonum", "t2.enterprisename", "t1.remarks");
@@ -1193,14 +1187,10 @@ public class Order extends Controller {
 
     //查询订单列表(管理端)
     public QuerySQL queryListManage(String where) throws YosException {
-        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_order",
-                "sa_orderid", "sonum", "type", "status", "submitdate", "checkdate", "remarks", "createby", "checkby", "billdate", "tradefield", "rec_contactsid", "delivery", "logisticsmethod", "tracknumber", "mailno"
-                , "invoicetaxno", "invoicename", "invoiceaddress", "contact", "address", "phonenumber", "province", "city", "county");
+        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_order", "sa_orderid", "sonum", "type", "status", "submitdate", "checkdate", "remarks", "createby", "checkby", "billdate", "tradefield", "rec_contactsid", "delivery", "logisticsmethod", "tracknumber", "mailno", "invoicetaxno", "invoicename", "invoiceaddress", "contact", "address", "phonenumber", "province", "city", "county");
         querySQL.setTableAlias("t1");
-        querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise", "t2", "t2.sys_enterpriseid = t1.sys_enterpriseid and t2.siteid = t1.siteid",
-                "enterprisename", "abbreviation");
-        querySQL.addJoinTable(JOINTYPE.left, "sa_agents", "t6", "t6.sys_enterpriseid=t1.sys_enterpriseid and t6.siteid = t1.siteid",
-                "agentnum");
+        querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise", "t2", "t2.sys_enterpriseid = t1.sys_enterpriseid and t2.siteid = t1.siteid", "enterprisename", "abbreviation");
+        querySQL.addJoinTable(JOINTYPE.left, "sa_agents", "t6", "t6.sys_enterpriseid=t1.sys_enterpriseid and t6.siteid = t1.siteid", "agentnum");
         querySQL.addQueryFields("amount", "CAST(0 AS CHAR(20))");
         querySQL.addQueryFields("qty", "CAST(0 AS CHAR(20))");
         querySQL.setWhere("t1.siteid", siteid);
@@ -1367,19 +1357,14 @@ public class Order extends Controller {
     public QuerySQL queryList(String where) throws YosException {
         QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_order", "*");
         querySQL.setTableAlias("t1");
-        querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise", "t2", "t2.sys_enterpriseid = t1.sys_enterpriseid and t2.siteid = t1.siteid",
-                "enterprisename", "abbreviation");
-        querySQL.addJoinTable(JOINTYPE.left, "sa_brand", "t3", "t3.sa_brandid = t1.sa_brandid",
-                "brandname");
-        querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise_contacts", "t4", "t4.contactsid = t1.rec_contactsid and t4.siteid = t1.siteid",
-                "name", "province", "city", "county", "address", "phonenumber");
-        querySQL.addJoinTable(JOINTYPE.left, "sa_agents", "t5", "t5.sys_enterpriseid=t1.sys_enterpriseid and t5.siteid = t1.siteid",
-                "agentnum");
+        querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise", "t2", "t2.sys_enterpriseid = t1.sys_enterpriseid and t2.siteid = t1.siteid", "enterprisename", "abbreviation");
+        querySQL.addJoinTable(JOINTYPE.left, "sa_brand", "t3", "t3.sa_brandid = t1.sa_brandid", "brandname");
+        querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise_contacts", "t4", "t4.contactsid = t1.rec_contactsid and t4.siteid = t1.siteid", "name", "province", "city", "county", "address", "phonenumber");
+        querySQL.addJoinTable(JOINTYPE.left, "sa_agents", "t5", "t5.sys_enterpriseid=t1.sys_enterpriseid and t5.siteid = t1.siteid", "agentnum");
         querySQL.addJoinTable(JOINTYPE.left, "sys_hr", "t6", "t6.hrid = t1.saler_hrid and t6.siteid = t1.siteid");
         //设置别名
         querySQL.addQueryFields("salename", "t6.name");
-        querySQL.addJoinTable(JOINTYPE.left, "sa_project", "t7", "t7.sa_projectid = t1.sa_projectid and t7.siteid = t1.siteid",
-                "projectname");
+        querySQL.addJoinTable(JOINTYPE.left, "sa_project", "t7", "t7.sa_projectid = t1.sa_projectid and t7.siteid = t1.siteid", "projectname");
         querySQL.addQueryFields("amount", "CAST(0 AS CHAR(20))");
         querySQL.addQueryFields("qty", "CAST(0 AS CHAR(20))");
         querySQL.setWhere("t1.siteid", siteid);
@@ -1913,8 +1898,7 @@ public class Order extends Controller {
         ArrayList<String> sqlList = new ArrayList<>();
         QuerySQL orderQuerySQL = SQLFactory.createQuerySQL(this, "sa_order", "sa_orderid", "sys_enterpriseid", "sys_enterprise_financeid", "rec_contactsid", "logisticsmethod", "invoicetaxno", "invoicename", "invoiceaddress", "contact", "address", "phonenumber", "province", "city", "county", "remarks");
         orderQuerySQL.setTableAlias("t1");
-        orderQuerySQL.addJoinTable(JOINTYPE.inner, "sa_orderitems", "t2", "t2.sa_orderid=t1.sa_orderid and t1.siteid=t2.siteid",
-                "sa_orderitemsid", "itemid", "undeliqty", "defaultprice", "itemno", "itemname", "model", "price", "delivery");
+        orderQuerySQL.addJoinTable(JOINTYPE.inner, "sa_orderitems", "t2", "t2.sa_orderid=t1.sa_orderid and t1.siteid=t2.siteid", "sa_orderitemsid", "itemid", "undeliqty", "defaultprice", "itemno", "itemname", "model", "price", "delivery");
         orderQuerySQL.addJoinTable(JOINTYPE.inner, "plm_item", "t3", "t2.itemid=t3.itemid and t3.siteid=t2.siteid", "skucontrol", "outplace");
         orderQuerySQL.setWhere("t1.siteid", siteid);
         orderQuerySQL.setWhere("t1.sa_orderid", sa_orderids);
@@ -1924,8 +1908,7 @@ public class Order extends Controller {
 
         QuerySQL orderQuerySQL_jundge = SQLFactory.createQuerySQL(this, "sa_order", "sa_orderid", "status", "sonum", "type", "delivery");
         orderQuerySQL_jundge.setTableAlias("t1");
-        orderQuerySQL_jundge.addJoinTable(JOINTYPE.inner, "sa_orderitems", "t2", "t2.sa_orderid=t1.sa_orderid and t1.siteid=t2.siteid",
-                "sa_orderitemsid", "itemid", "undeliqty", "defaultprice", "remarks", "itemno", "itemname", "model", "price", "rowno", "isclose");
+        orderQuerySQL_jundge.addJoinTable(JOINTYPE.inner, "sa_orderitems", "t2", "t2.sa_orderid=t1.sa_orderid and t1.siteid=t2.siteid", "sa_orderitemsid", "itemid", "undeliqty", "defaultprice", "remarks", "itemno", "itemname", "model", "price", "rowno", "isclose");
         orderQuerySQL_jundge.addJoinTable(JOINTYPE.left, "sa_agents", "t4", "t4.sys_enterpriseid=t1.sys_enterpriseid and t4.siteid=t1.siteid", "agentnum");
         orderQuerySQL_jundge.addJoinTable(JOINTYPE.left, "sys_enterprise", "t5", "t5.sys_enterpriseid=t4.sys_enterpriseid and t5.siteid=t4.siteid", "enterprisename", "abbreviation");
         orderQuerySQL_jundge.setWhere("t1.siteid", siteid);
@@ -2211,15 +2194,9 @@ public class Order extends Controller {
 
         String type = row.getString("type");
         ArrayList<String> sqllist = new ArrayList<>();
-        Rows rowsdetailsGrade = dbConnect.runSqlQuery("select sum(t1.qty) qty,t2.grade from sa_orderitems t1 " +
-                "left join plm_item t2 on t1.itemid=t2.itemid and t1.siteid=t2.siteid " +
-                " where t1.sa_orderid=" + sa_orderid + " group by t2.grade");
-        Rows rowsGrade = dbConnect.runSqlQuery("select t1.rowno,t2.itemno,t2.itemname,t2.grade from sa_orderitems t1 " +
-                "left join plm_item t2 on t1.itemid=t2.itemid and t1.siteid=t2.siteid " +
-                " where t1.sa_orderid=" + sa_orderid);
-        Rows gradeQtyRows = dbConnect.runSqlQuery("select grade,sum(qty) qty from (select grade,t2.qty from st_stockbill t1 inner join st_stockbill_items t2 on t1.st_stockbillid=t2.st_stockbillid inner join plm_item t3 on t2.itemid=t3.itemid where t1.status='审核' and t1.type='销售出库' and t1.sys_enterpriseid='" + row.getLong("sys_enterpriseid") + "' and YEAR(t1.billdate) = YEAR(CURDATE())\n" +
-                "union all\n" +
-                "select grade,t2.qty  from sa_order t1 inner join sa_orderitems t2 on t1.sa_orderid=t2.sa_orderid inner join plm_item t3 on t2.itemid=t3.itemid where t1.status in('提交','审核') and t2.isclose=0 and t1.sys_enterpriseid='" + row.getLong("sys_enterpriseid") + "' and YEAR(t1.billdate) = YEAR(CURDATE())) t group by grade");
+        Rows rowsdetailsGrade = dbConnect.runSqlQuery("select sum(t1.qty) qty,t2.grade from sa_orderitems t1 " + "left join plm_item t2 on t1.itemid=t2.itemid and t1.siteid=t2.siteid " + " where t1.sa_orderid=" + sa_orderid + " group by t2.grade");
+        Rows rowsGrade = dbConnect.runSqlQuery("select t1.rowno,t2.itemno,t2.itemname,t2.grade from sa_orderitems t1 " + "left join plm_item t2 on t1.itemid=t2.itemid and t1.siteid=t2.siteid " + " where t1.sa_orderid=" + sa_orderid);
+        Rows gradeQtyRows = dbConnect.runSqlQuery("select grade,sum(qty) qty from (select grade,t2.qty from st_stockbill t1 inner join st_stockbill_items t2 on t1.st_stockbillid=t2.st_stockbillid inner join plm_item t3 on t2.itemid=t3.itemid where t1.status='审核' and t1.type='销售出库' and t1.sys_enterpriseid='" + row.getLong("sys_enterpriseid") + "' and YEAR(t1.billdate) = YEAR(CURDATE())\n" + "union all\n" + "select grade,t2.qty  from sa_order t1 inner join sa_orderitems t2 on t1.sa_orderid=t2.sa_orderid inner join plm_item t3 on t2.itemid=t3.itemid where t1.status in('提交','审核') and t2.isclose=0 and t1.sys_enterpriseid='" + row.getLong("sys_enterpriseid") + "' and YEAR(t1.billdate) = YEAR(CURDATE())) t group by grade");
         Rows optiontypRows = dbConnect.runSqlQuery("select t1.value,t1.remarks from sys_optiontypemx t1 inner join sys_optiontype t2 on t1.optiontypeid=t2.optiontypeid where t2.typename ='productgrade'");
         RowsMap gradeQtyRowsMap = gradeQtyRows.toRowsMap("grade");
         RowsMap optiontypRowsMap = optiontypRows.toRowsMap("value");
@@ -2254,9 +2231,7 @@ public class Order extends Controller {
         }
 
         if (type.equals("配件订单")) {
-            Rows rowsdetails = dbConnect.runSqlQuery("select t1.price,t1.amount,t1.sa_orderitemsid,t1.itemid,ifnull(t2.iswriteoff,0) iswriteoff,t3.begdate,t3.enddate from sa_orderitems t1 " +
-                    "left join plm_item t2 on t1.itemid=t2.itemid and t1.siteid=t2.siteid " +
-                    "left join sa_warrantycard t3 on t1.cardno=t3.cardno and t1.siteid=t3.siteid and t3.isvoid=0 and t3.deleted=0 where t1.sa_orderid=" + sa_orderid);
+            Rows rowsdetails = dbConnect.runSqlQuery("select t1.price,t1.amount,t1.sa_orderitemsid,t1.itemid,ifnull(t2.iswriteoff,0) iswriteoff,t3.begdate,t3.enddate from sa_orderitems t1 " + "left join plm_item t2 on t1.itemid=t2.itemid and t1.siteid=t2.siteid " + "left join sa_warrantycard t3 on t1.cardno=t3.cardno and t1.siteid=t3.siteid and t3.isvoid=0 and t3.deleted=0 where t1.sa_orderid=" + sa_orderid);
             for (Row rowsdetail : rowsdetails) {
                 String billingstatus = "";
                 BigDecimal price = rowsdetail.getBigDecimal("price");
@@ -2959,8 +2934,7 @@ public class Order extends Controller {
         }
         Row row = rows.get(0);
 
-        if (dbConnect.runSqlQuery("SELECT 1 from st_stockbill_items t1 inner join st_stockbill t2 on t2.st_stockbillid=t1.st_stockbillid left join sa_orderitems t3 on t1.sa_orderitemsid=t3.sa_orderitemsid " +
-                "WHERE t2.type = '销售出库' and  t1.siteid='" + siteid + "' and t3.sa_orderid=" + sa_orderid).isNotEmpty()) {
+        if (dbConnect.runSqlQuery("SELECT 1 from st_stockbill_items t1 inner join st_stockbill t2 on t2.st_stockbillid=t1.st_stockbillid left join sa_orderitems t3 on t1.sa_orderitemsid=t3.sa_orderitemsid " + "WHERE t2.type = '销售出库' and  t1.siteid='" + siteid + "' and t3.sa_orderid=" + sa_orderid).isNotEmpty()) {
             return getErrReturnObject().setErrMsg("存在销售出库单,无法反审核").toString();
         }
 
@@ -3043,13 +3017,11 @@ public class Order extends Controller {
         ArrayList<String> sqlList = new ArrayList<>();
         if (isrecheck) {
             if (!row.getString("status").equals("新建")) {
-                return getErrReturnObject().setErrMsg("单号为:【" + row.getString("sonum") + "】的订单为非新建状态,无法预提交")
-                        .toString();
+                return getErrReturnObject().setErrMsg("单号为:【" + row.getString("sonum") + "】的订单为非新建状态,无法预提交").toString();
             }
         } else {
             if (!row.getString("status").equals("预提交")) {
-                return getErrReturnObject().setErrMsg("单号为:【" + row.getString("sonum") + "】的订单为非预提交状态,无法撤回")
-                        .toString();
+                return getErrReturnObject().setErrMsg("单号为:【" + row.getString("sonum") + "】的订单为非预提交状态,无法撤回").toString();
             }
         }
         SQLFactory sqlFactoryupdate;
@@ -3100,20 +3072,17 @@ public class Order extends Controller {
         if (isrecheck) {
             if (row.getBoolean("createflag")) {
                 if (!row.getString("status").equals("新建")) {
-                    return getErrReturnObject().setErrMsg("单号为:【" + row.getString("sonum") + "】的订单为新建状态,无法确认")
-                            .toString();
+                    return getErrReturnObject().setErrMsg("单号为:【" + row.getString("sonum") + "】的订单为新建状态,无法确认").toString();
                 }
             } else {
                 if (!row.getString("status").equals("预提交")) {
-                    return getErrReturnObject().setErrMsg("单号为:【" + row.getString("sonum") + "】的订单为非预提交状态,无法确认")
-                            .toString();
+                    return getErrReturnObject().setErrMsg("单号为:【" + row.getString("sonum") + "】的订单为非预提交状态,无法确认").toString();
                 }
             }
 
         } else {
             if (!row.getString("status").equals("确认")) {
-                return getErrReturnObject().setErrMsg("单号为:【" + row.getString("sonum") + "】的订单为非确认状态,无法反确认")
-                        .toString();
+                return getErrReturnObject().setErrMsg("单号为:【" + row.getString("sonum") + "】的订单为非确认状态,无法反确认").toString();
             }
         }
         SQLFactory sqlFactoryupdate;
@@ -3566,10 +3535,8 @@ public class Order extends Controller {
      */
     public String closeordervalidate(long sa_orderid) throws YosException {
         ArrayList<String> sqlList = new ArrayList<>();
-        Rows Rowstatus = dbConnect.runSqlQuery(
-                "select * from sa_order where sa_orderid=" + sa_orderid + " and siteid='" + siteid + "'");
-        Rows RowsDetail = dbConnect.runSqlQuery(
-                "select * from sa_orderitems where sa_orderid=" + sa_orderid + " and siteid='" + siteid + "' order by rowno asc");
+        Rows Rowstatus = dbConnect.runSqlQuery("select * from sa_order where sa_orderid=" + sa_orderid + " and siteid='" + siteid + "'");
+        Rows RowsDetail = dbConnect.runSqlQuery("select * from sa_orderitems where sa_orderid=" + sa_orderid + " and siteid='" + siteid + "' order by rowno asc");
         if (Rowstatus.isEmpty()) {
             return "订单不存在";
         } else {
@@ -3596,8 +3563,7 @@ public class Order extends Controller {
         }
         {
             String str = "";
-            RowsDetail = dbConnect.runSqlQuery(
-                    "select * from sa_orderitems where sa_orderid=" + sa_orderid + " and siteid='" + siteid + "' order by rowno asc");
+            RowsDetail = dbConnect.runSqlQuery("select * from sa_orderitems where sa_orderid=" + sa_orderid + " and siteid='" + siteid + "' order by rowno asc");
             for (Row row : RowsDetail) {
                 int rowno = row.getInteger("rowno");//订单行号
                 BigDecimal deliedqty = row.getBigDecimal("deliedqty");//订单已发货数量
@@ -3781,10 +3747,7 @@ public class Order extends Controller {
 
         QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_invoicebill", "*");
         querySQL.setTableAlias("t1");
-        querySQL.addQueryFields("sumtaxincludedamount", "ifnull((select sum(taxincludedamount) sumtaxincludedamount\n" +
-                "                from sa_invoicebill_item\n" +
-                "                where sa_invoicebillid = t1.sa_invoicebillid\n" +
-                "                and siteid = t1.siteid), 0)");
+        querySQL.addQueryFields("sumtaxincludedamount", "ifnull((select sum(taxincludedamount) sumtaxincludedamount\n" + "                from sa_invoicebill_item\n" + "                where sa_invoicebillid = t1.sa_invoicebillid\n" + "                and siteid = t1.siteid), 0)");
         querySQL.setSiteid(siteid);
         querySQL.setWhere("t1.sa_invoiceapplyid in (SELECT sa_invoiceapplyid from sa_invoiceapply_order WHERE sa_orderid = '" + sa_orderid + "' and siteid = '" + siteid + "')");
         querySQL.setWhere(where.toString());
@@ -4017,8 +3980,7 @@ public class Order extends Controller {
 //        sqlFactory.addParameter("sa_orderid", sa_orderid);
 //        sqlFactory.addParameter_SQL("where", where);
 //        Rows rows = dbConnect.runSqlQuery(sqlFactory.getSQL());
-        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_writeoffbill", "sa_writeoffbillid", "createuserid",
-                "createby", "createdate", "checkby", "checkdate", "billnodate", "status", "sys_enterpriseid", "remarks", "unwriteoffamount", "writeoffamount", "sa_cashbillid");
+        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_writeoffbill", "sa_writeoffbillid", "createuserid", "createby", "createdate", "checkby", "checkdate", "billnodate", "status", "sys_enterpriseid", "remarks", "unwriteoffamount", "writeoffamount", "sa_cashbillid");
         querySQL.setTableAlias("t1");
         querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise", "t2", "t1.siteid = t2.siteid and t1.sys_enterpriseid = t2.sys_enterpriseid", "enterprisename", "abbreviation");
         querySQL.addJoinTable(JOINTYPE.left, "sa_agents", "t5", "t2.siteid = t5.siteid and t2.sys_enterpriseid = t5.sys_enterpriseid", "agentnum");
@@ -4142,8 +4104,7 @@ public class Order extends Controller {
 //        Rows rows = dbConnect.runSqlQuery(sqlFactory.getSQL());
 
 
-        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_rebatesettlement_items", "sa_rebatesettlement_itemsid", "qty",
-                "marketprice", "discountrate", "price", "amount", "rebate_discountrate", "rebate_price", "rebate");
+        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_rebatesettlement_items", "sa_rebatesettlement_itemsid", "qty", "marketprice", "discountrate", "price", "amount", "rebate_discountrate", "rebate_price", "rebate");
         querySQL.setTableAlias("t1");
         querySQL.addJoinTable(JOINTYPE.left, "plm_item", "t2", "t1.itemid = t2.itemid and t1.siteid = t2.siteid", "itemno", "itemname");
         querySQL.addQueryFields("rebate_unit_price", "t1.price-t1.rebate_price");
@@ -4198,13 +4159,11 @@ public class Order extends Controller {
 //        sqlFactory.addParameter("siteid", siteid);
 //        sqlFactory.addParameter("sa_orderid", sa_orderid);
 //        Rows rows = dbConnect.runSqlQuery(sqlFactory.getSQL());
-        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_writeoffbill", "sa_writeoffbillid", "billno",
-                "billnodate", "writeoffamount");
+        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_writeoffbill", "sa_writeoffbillid", "billno", "billnodate", "writeoffamount");
         querySQL.setTableAlias("t1");
         querySQL.addJoinTable(JOINTYPE.inner, "sa_writeoffbill_order", "t2", "t1.sa_writeoffbillid = t2.sa_writeoffbillid and t1.siteid = t2.siteid");
         querySQL.addJoinTable(JOINTYPE.inner, "sa_cashbill", "t3", "t1.sa_cashbillid = t3.sa_cashbillid and t1.siteid = t3.siteid");
-        querySQL.addJoinTable(JOINTYPE.inner, "sa_orderitems", "t4", "t2.siteid = t4.siteid and t2.sa_orderitemsid = t4.sa_orderitemsid",
-                "rowno", "itemno", "itemname");
+        querySQL.addJoinTable(JOINTYPE.inner, "sa_orderitems", "t4", "t2.siteid = t4.siteid and t2.sa_orderitemsid = t4.sa_orderitemsid", "rowno", "itemno", "itemname");
         querySQL.addQueryFields("cashbillbillno", "t3.billno");
         querySQL.addQueryFields("ordetitemwriteoffamount", "t2.writeoffamount");
         querySQL.setSiteid(siteid);
@@ -4240,12 +4199,10 @@ public class Order extends Controller {
 //        sqlFactory.addParameter("siteid", siteid);
 //        sqlFactory.addParameter("sa_orderid", sa_orderid);
 //        Rows rows = dbConnect.runSqlQuery(sqlFactory.getSQL());
-        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_orderitems_change", "createby", "createdate",
-                "remarks", "sa_orderitems_changeid");
+        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_orderitems_change", "createby", "createdate", "remarks", "sa_orderitems_changeid");
         querySQL.setTableAlias("t1");
         querySQL.addJoinTable(JOINTYPE.inner, "sa_orderitems_changemx", "t2", "t1.sa_orderitems_changeid = t2.sa_orderitems_changeid and t1.siteid = t2.siteid", "oldvalue", "newvalue");
-        querySQL.addJoinTable(JOINTYPE.inner, "plm_item", "t3", "t2.itemid = t3.itemid and t2.siteid = t3.siteid",
-                "itemno", "itemname", "model");
+        querySQL.addJoinTable(JOINTYPE.inner, "plm_item", "t3", "t2.itemid = t3.itemid and t2.siteid = t3.siteid", "itemno", "itemname", "model");
         querySQL.setSiteid(siteid);
         querySQL.setWhere("t2.type = '数量'");
         querySQL.setWhere("t1.sa_orderid", sa_orderid);
@@ -4390,8 +4347,7 @@ public class Order extends Controller {
             oraclebase = "ORACLE_HY";
         }
         DBConnect oracleConnect = new DBConnect(oraclebase);
-        Rows icrows = oracleConnect.runSqlQuery(
-                "select WAREHOUSE,QTY,LOCATION,LOT from v_eso_actual_inventory where FITEMNO = '" + erpitemno + "' and SITEID='" + sid + "' and QTY>=" + qty);
+        Rows icrows = oracleConnect.runSqlQuery("select WAREHOUSE,QTY,LOCATION,LOT from v_eso_actual_inventory where FITEMNO = '" + erpitemno + "' and SITEID='" + sid + "' and QTY>=" + qty);
         return getSucReturnObject().setData(icrows).toString();
     }
 
@@ -4731,8 +4687,7 @@ public class Order extends Controller {
      * @param addorsub
      * @param remarks
      */
-    public ArrayList<String> updateAccountbalance_freez(BigDecimal totalamount, boolean addorsub,
-                                                        String remarks, long sys_enterpriseid, long sa_accountclassid, long sa_orderid) throws YosException {
+    public ArrayList<String> updateAccountbalance_freez(BigDecimal totalamount, boolean addorsub, String remarks, long sys_enterpriseid, long sa_accountclassid, long sa_orderid) throws YosException {
         ArrayList<String> sqllist = new ArrayList<>();
         /******** 冻结数据 ********/
         if (addorsub) {
@@ -4806,8 +4761,7 @@ public class Order extends Controller {
             if (close) {
                 qty = isinstock ? row.getBigDecimal("undeliqty") : row.getBigDecimal("undeliqty").negate();// 如果是扣减则根据数量进行扣减,反之根据未发货数量进行增加
             } else {
-                qty = isinstock ? row.getBigDecimal("undeliqty")
-                        : row.getBigDecimal("qty").negate();// 如果是扣减则根据数量进行扣减,反之根据未发货数量进行增加
+                qty = isinstock ? row.getBigDecimal("undeliqty") : row.getBigDecimal("qty").negate();// 如果是扣减则根据数量进行扣减,反之根据未发货数量进行增加
             }
             sqlList.add("update st_invbal_sale set cansaleqty=cansaleqty+" + qty + " where st_invbal_saleid=" + st_invbal_saleid);
         }

+ 36 - 71
src/custom/restcontroller/webmanage/sale/serviceorder/serviceorder.java

@@ -78,7 +78,7 @@ public class serviceorder extends Controller {
                 if (StringUtils.isBlank(sku)) {
                     //return getErrReturnObject().setErrMsg("安装服务单需添加序列号").toString();
                 }
-                if (dbConnect.runSqlQuery("select * from sa_warrantycard where sku='" + sku + "' and siteid='" + siteid + "'").isNotEmpty()) {
+                if (!sku.isBlank() && dbConnect.runSqlQuery("select * from sa_warrantycard where sku='" + sku + "' and siteid='" + siteid + "'").isNotEmpty()) {
                     DataTag.createSystemTag(this, "sa_serviceorder", sa_serviceorderid, "重复安装");
                     //return getErrReturnObject().setErrMsg("该序列号已安装,无法再次安装").toString();
                 }
@@ -98,9 +98,7 @@ public class serviceorder extends Controller {
         } else {
             initiator = "总部";
         }
-        if (sa_serviceorderid <= 0 || dbConnect.runSqlQuery(
-                        "select sa_serviceorderid from sa_serviceorder where sa_serviceorderid=" + sa_serviceorderid)
-                .isEmpty()) {
+        if (sa_serviceorderid <= 0 || dbConnect.runSqlQuery("select sa_serviceorderid from sa_serviceorder where sa_serviceorderid=" + sa_serviceorderid).isEmpty()) {
             sa_serviceorderid = createTableID(tableName);
             sqlFactory.addParameter("sys_enterpriseid", sys_enterpriseid);
             if (saler_hrid != 0) {
@@ -113,18 +111,14 @@ public class serviceorder extends Controller {
                     sqlFactory.addParameter("saler_hrid", hrRows.get(0).getLong("hrid"));
                 }
             }
-            sqlList.add(
-                    DataContrlLog.createLog(this, "sa_serviceorder", sa_serviceorderid, "新增", "服务申请单新增成功").getSQL());
+            sqlList.add(DataContrlLog.createLog(this, "sa_serviceorder", sa_serviceorderid, "新增", "服务申请单新增成功").getSQL());
         } else {
-            Rows rows = dbConnect.runSqlQuery(
-                    "SELECT status,sys_enterpriseid,sa_orderid from sa_serviceorder WHERE sa_serviceorderid = "
-                            + sa_serviceorderid);
+            Rows rows = dbConnect.runSqlQuery("SELECT status,sys_enterpriseid,sa_orderid from sa_serviceorder WHERE sa_serviceorderid = " + sa_serviceorderid);
             if (rows.isNotEmpty()) {
                 if (rows.get(0).getString("status").equals("新建") || rows.get(0).getString("status").equals("待分配")) {
                     sqlFactory = new SQLFactory(this, "服务申请单更新");
                     sqlFactory.addParameter("sys_enterpriseid", sys_enterpriseid);
-                    sqlList.add(DataContrlLog.createLog(this, "sa_serviceorder", sa_serviceorderid, "更新", "服务申请单更新成功")
-                            .getSQL());
+                    sqlList.add(DataContrlLog.createLog(this, "sa_serviceorder", sa_serviceorderid, "更新", "服务申请单更新成功").getSQL());
                 } else {
                     return getErrReturnObject().setErrMsg("该状态下无法编辑").toString();
                 }
@@ -278,7 +272,10 @@ public class serviceorder extends Controller {
         ArrayList<Long> ids = rows.toArrayList("itemid", new ArrayList<>());
         RowsMap attRowsMap = getAttachmentUrl("plm_item", ids);
 
-        RowsMap warrantycardRowsMap = SQLFactory.createQuerySQL(this, "sa_warrantycard", "sku", "name", "phonenumber", "address", "sa_customersid", "province", "city", "county").setWhere("sku", rows.toArrayList("sku")).query().toRowsMap("sku");
+        RowsMap warrantycardRowsMap = new RowsMap();
+        if (rows.isNotEmpty()) {
+            warrantycardRowsMap = SQLFactory.createQuerySQL(this, "sa_warrantycard", "sku", "name", "phonenumber", "address", "sa_customersid", "province", "city", "county").setWhere("sku", rows.toArrayList("sku")).query().toRowsMap("sku");
+        }
 
         for (Row row : rows) {
             if (attRowsMap.getOrDefault(row.getString("itemid"), new Rows()).isNotEmpty()) {
@@ -650,27 +647,21 @@ public class serviceorder extends Controller {
     @CACHEING
     public String queryworkerordertemplate() throws YosException {
 
-        Rows rows = dbConnect.runSqlQuery(
-                "select sa_workorder_templateid,name,type from sa_workorder_template where siteid='" + siteid + "' and isused=1");
+        Rows rows = dbConnect.runSqlQuery("select sa_workorder_templateid,name,type from sa_workorder_template where siteid='" + siteid + "' and isused=1");
         return getSucReturnObject().setData(rows).toString();
     }
 
     @API(title = "服务申请单转工单", apiversion = R.ID20230207091003.v1.class)
-    @CACHEING_CLEAN(apiversions = {R.ID20230206091603.v1.class, R.ID20230206091703.v1.class, R.ID20230206101303.v1.class, R.ID20230208140103.v1.class, R.ID20230208140203.v1.class,
-            R.ID20230209091103.v1.class, R.ID20230207154203.v1.class, R.ID20230217100703.v1.class, R.ID20230217133003.v1.class})
+    @CACHEING_CLEAN(apiversions = {R.ID20230206091603.v1.class, R.ID20230206091703.v1.class, R.ID20230206101303.v1.class, R.ID20230208140103.v1.class, R.ID20230208140203.v1.class, R.ID20230209091103.v1.class, R.ID20230207154203.v1.class, R.ID20230217100703.v1.class, R.ID20230217133003.v1.class})
     public String serviceorderToWorkorder() throws YosException {
 
         Long sa_serviceorderid = content.getLong("sa_serviceorderid");
         String type = content.getString("type");
         JSONArray projectlearders = content.getJSONArray("projectlearders");
         Long sa_workorder_templateid = content.getLongValue("sa_workorder_templateid");
-        Rows rows = dbConnect
-                .runSqlQuery("select * from sa_serviceorder where sa_serviceorderid ='"
-                        + sa_serviceorderid + "' and  siteid='" + siteid + "'");
+        Rows rows = dbConnect.runSqlQuery("select * from sa_serviceorder where sa_serviceorderid ='" + sa_serviceorderid + "' and  siteid='" + siteid + "'");
 
-        Rows workorderRows = dbConnect
-                .runSqlQuery("select sa_workorderid,status,billno,sa_serviceorderid from sa_workorder where sa_serviceorderid ='"
-                        + sa_serviceorderid + "' and  siteid='" + siteid + "'");
+        Rows workorderRows = dbConnect.runSqlQuery("select sa_workorderid,status,billno,sa_serviceorderid from sa_workorder where sa_serviceorderid ='" + sa_serviceorderid + "' and  siteid='" + siteid + "'");
         if (rows.isEmpty()) {
             return getErrReturnObject().setErrMsg("此服务单不存在").toString();
         } else {
@@ -747,8 +738,7 @@ public class serviceorder extends Controller {
         sqlList.add(sqlFactory.getSQL());
         sqlList.add("update sa_serviceorder set status='待服务' where sa_serviceorderid=" + sa_serviceorderid);
         if (projectlearders != null && !projectlearders.isEmpty()) {
-            sqlList.add("delete from sys_datateam where ownertable='sa_workorder' and ownerid="
-                    + sa_workorderid + " and siteid='" + siteid + "'");
+            sqlList.add("delete from sys_datateam where ownertable='sa_workorder' and ownerid=" + sa_workorderid + " and siteid='" + siteid + "'");
             for (Object obj : projectlearders) {
                 sqlList.addAll(DataTeam.createTeamSQL(this, "sa_workorder", sa_workorderid, (int) obj));
             }
@@ -764,8 +754,7 @@ public class serviceorder extends Controller {
             if (!workersRows.isEmpty()) {
                 if (StringUtils.isNotBlank(workersRows.get(0).getString("phonenumber"))) {
                     Sms sms = new Sms();
-                    sms.sendout(Sms.SmsType.Notice, siteid, workersRows.get(0).getString("phonenumber"), "工单号:" + billno + "已指派请处理,客户名称:" + (StringUtils.isBlank(serviceorderRows.get(0).getString("enterprisename")) ? "" : serviceorderRows.get(0).getString("enterprisename"))
-                            + ",提交人:" + serviceorderRows.get(0).getString("submitby") + ",备注:" + serviceorderRows.get(0).getString("remarks"));
+                    sms.sendout(Sms.SmsType.Notice, siteid, workersRows.get(0).getString("phonenumber"), "工单号:" + billno + "已指派请处理,客户名称:" + (StringUtils.isBlank(serviceorderRows.get(0).getString("enterprisename")) ? "" : serviceorderRows.get(0).getString("enterprisename")) + ",提交人:" + serviceorderRows.get(0).getString("submitby") + ",备注:" + serviceorderRows.get(0).getString("remarks"));
                 }
             }
 
@@ -780,33 +769,26 @@ public class serviceorder extends Controller {
         JSONArray projectlearders = content.getJSONArray("projectlearders");
         boolean ismanage = content.getBooleanValue("ismanage");
         ArrayList<String> sqlList = new ArrayList<>();
-        Rows rows = dbConnect
-                .runSqlQuery("select status,billno from sa_workorder where sa_workorderid ='"
-                        + sa_workorderid + "' and  siteid='" + siteid + "'");
+        Rows rows = dbConnect.runSqlQuery("select 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();
+                return getErrReturnObject().setErrMsg("单号为:【" + row.getString("billno") + "】的工单为已完工状态,无法重新指派工单").toString();
             }
         }
         if (!ismanage) {
-            Rows datateamrows = dbConnect.runSqlQuery("select * from sys_datateam where ownertable='sa_workorder' and ownerid="
-                    + sa_workorderid + " and siteid='" + siteid + "'");
+            Rows datateamrows = dbConnect.runSqlQuery("select * from sys_datateam where ownertable='sa_workorder' and ownerid=" + sa_workorderid + " and siteid='" + siteid + "'");
             if (datateamrows.isNotEmpty()) {
                 return getErrReturnObject().setErrMsg("该任务已由其他同事负责推进").toString();
             }
         }
 
         if (rows.get(0).getString("status").equals("提交")) {
-            sqlList.add("update sa_workorder set status='进行中' where sa_workorderid ='"
-                    + sa_workorderid + "' and  siteid='" + siteid + "'");
+            sqlList.add("update sa_workorder set status='进行中' where sa_workorderid ='" + sa_workorderid + "' and  siteid='" + siteid + "'");
         } else {
-            sqlList.add("update sa_workorder set status='待接单' where sa_workorderid ='"
-                    + sa_workorderid + "' and  siteid='" + siteid + "'");
+            sqlList.add("update sa_workorder set status='待接单' where sa_workorderid ='" + sa_workorderid + "' and  siteid='" + siteid + "'");
         }
 
-        sqlList.add("delete from sys_datateam where ownertable='sa_workorder' and ownerid="
-                + sa_workorderid + " and siteid='" + siteid + "'");
+        sqlList.add("delete from sys_datateam where ownertable='sa_workorder' and ownerid=" + sa_workorderid + " and siteid='" + siteid + "'");
         if (projectlearders != null && !projectlearders.isEmpty()) {
             for (Object obj : projectlearders) {
                 sqlList.addAll(DataTeam.createTeamSQL(this, "sa_workorder", sa_workorderid, (int) obj));
@@ -833,9 +815,7 @@ public class serviceorder extends Controller {
         BatchDeleteErr batchDeleteErr = BatchDeleteErr.create(this, sa_serviceorderids.size());
         for (Object o : sa_serviceorderids) {
             long sa_serviceorderid = Long.parseLong(o.toString());
-            Rows RowsStatus = dbConnect
-                    .runSqlQuery("select t3.sa_warrantycardid from sa_serviceorder t1 left join sa_workorder t2 on t1.sa_serviceorderid=t2.sa_serviceorderid left join sa_warrantycard t3 on t3.sa_workorderid=t2.sa_workorderid  where t1.siteid='" + siteid
-                            + "' and t1.sa_serviceorderid='" + sa_serviceorderid + "' and ifnull(t3.cardno,'')!=''");
+            Rows RowsStatus = dbConnect.runSqlQuery("select t3.sa_warrantycardid from sa_serviceorder t1 left join sa_workorder t2 on t1.sa_serviceorderid=t2.sa_serviceorderid left join sa_warrantycard t3 on t3.sa_workorderid=t2.sa_workorderid  where t1.siteid='" + siteid + "' and t1.sa_serviceorderid='" + sa_serviceorderid + "' and ifnull(t3.cardno,'')!=''");
 
             if (RowsStatus.isNotEmpty()) {
                 if (RowsStatus.isNotEmpty()) {
@@ -845,10 +825,8 @@ public class serviceorder extends Controller {
             }
 
 
-            dbConnect.runSqlUpdate("delete from sa_serviceorder where siteid='" + siteid + "' and sa_serviceorderid="
-                    + sa_serviceorderid);
-            dbConnect.runSqlUpdate("delete from sa_workorder where siteid='" + siteid + "' and sa_serviceorderid="
-                    + sa_serviceorderid);
+            dbConnect.runSqlUpdate("delete from sa_serviceorder where siteid='" + siteid + "' and sa_serviceorderid=" + sa_serviceorderid);
+            dbConnect.runSqlUpdate("delete from sa_workorder where siteid='" + siteid + "' and sa_serviceorderid=" + sa_serviceorderid);
         }
         return batchDeleteErr.getReturnObject().toString();
 
@@ -867,26 +845,21 @@ public class serviceorder extends Controller {
         }
 
         ArrayList<String> sqllist = new ArrayList<>();
-        Rows workorderrows = dbConnect.runSqlQuery("select sa_workorderid from sa_workorder where sa_serviceorderid ='"
-                + sa_serviceorderid + "' and  siteid='" + siteid + "' and status!='作废'");
+        Rows workorderrows = dbConnect.runSqlQuery("select sa_workorderid from sa_workorder where sa_serviceorderid ='" + sa_serviceorderid + "' and  siteid='" + siteid + "' and status!='作废'");
         sqllist.add("update sa_serviceorder set voidreason='" + voidreason + "',status='作废' where sa_serviceorderid=" + sa_serviceorderid);
-        sqllist.add(DataContrlLog.createLog(this, "sa_serviceorder", sa_serviceorderid, "作废", "服务申请单作废成功")
-                .getSQL());
+        sqllist.add(DataContrlLog.createLog(this, "sa_serviceorder", sa_serviceorderid, "作废", "服务申请单作废成功").getSQL());
         if (workorderrows.isNotEmpty()) {
             long sa_workorderid = workorderrows.get(0).getLong("sa_workorderid");
             voidreason = "【服务申请单作废】" + voidreason;
             sqllist.add("update sa_workorder set voidreason='" + voidreason + "',status='作废' where sa_workorderid=" + sa_workorderid);
-            sqllist.add(DataContrlLog.createLog(this, "sa_workorder", sa_workorderid, "作废", "工单作废成功")
-                    .getSQL());
-            Rows warrantycardrows = dbConnect.runSqlQuery("select sa_warrantycardid from sa_warrantycard where sa_workorderid ='"
-                    + sa_workorderid + "' and  siteid='" + siteid + "' and isvoid=0");
+            sqllist.add(DataContrlLog.createLog(this, "sa_workorder", sa_workorderid, "作废", "工单作废成功").getSQL());
+            Rows warrantycardrows = dbConnect.runSqlQuery("select sa_warrantycardid from sa_warrantycard where sa_workorderid ='" + sa_workorderid + "' and  siteid='" + siteid + "' and isvoid=0");
             if (warrantycardrows.isNotEmpty()) {
                 if (usertype != 0 && usertype != 1) {
                     return getErrReturnObject().setErrMsg("因存在生效中的保修卡,此操作暂时无法执行,请先联系总部完成保修卡作废流程。").toString();
                 }
                 sqllist.add("update sa_warrantycard set voiddate=CURRENT_TIME,voidreason='" + voidreason + "',isvoid=1 where sa_warrantycardid=" + warrantycardrows.get(0).getLong("sa_warrantycardid"));
-                sqllist.add(DataContrlLog.createLog(this, "sa_warrantycard", warrantycardrows.get(0).getLong("sa_warrantycardid"), "作废", "保修卡作废成功")
-                        .getSQL());
+                sqllist.add(DataContrlLog.createLog(this, "sa_warrantycard", warrantycardrows.get(0).getLong("sa_warrantycardid"), "作废", "保修卡作废成功").getSQL());
             }
 
         }
@@ -902,22 +875,18 @@ public class serviceorder extends Controller {
         long sa_serviceorderid = content.getLong("sa_serviceorderid");
         ArrayList<String> sqllist = new ArrayList<>();
 
-        Rows serviceorderRows = dbConnect.runSqlQuery("select status,billno from sa_serviceorder where sa_serviceorderid ='"
-                + sa_serviceorderid + "' and  siteid='" + siteid + "'");
+        Rows serviceorderRows = dbConnect.runSqlQuery("select status,billno from sa_serviceorder where sa_serviceorderid ='" + sa_serviceorderid + "' and  siteid='" + siteid + "'");
         if (serviceorderRows.isNotEmpty()) {
             if (!(serviceorderRows.get(0).getString("status").equals("待受理") || serviceorderRows.get(0).getString("status").equals("待服务") || serviceorderRows.get(0).getString("status").equals("服务中"))) {
                 return getErrReturnObject().setErrMsg("非待受理/待服务/服务中状态的服务申请单无法撤回分配").toString();
             }
             sqllist.add("update sa_serviceorder set sys_enterpriseid_service=0,status='待分配',allocationdate=null,allocationby='' where sa_serviceorderid=" + sa_serviceorderid);
-            sqllist.add(DataContrlLog.createLog(this, "sa_serviceorder", sa_serviceorderid, "撤回分配", "服务申请单撤回分配成功")
-                    .getSQL());
-            Rows workorderrows = dbConnect.runSqlQuery("select sa_workorderid from sa_workorder where sa_serviceorderid ='"
-                    + sa_serviceorderid + "' and  siteid='" + siteid + "' and status!='作废'");
+            sqllist.add(DataContrlLog.createLog(this, "sa_serviceorder", sa_serviceorderid, "撤回分配", "服务申请单撤回分配成功").getSQL());
+            Rows workorderrows = dbConnect.runSqlQuery("select sa_workorderid from sa_workorder where sa_serviceorderid ='" + sa_serviceorderid + "' and  siteid='" + siteid + "' and status!='作废'");
             if (workorderrows.isNotEmpty()) {
                 long sa_workorderid = workorderrows.get(0).getLong("sa_workorderid");
                 sqllist.add("update sa_workorder set voidreason='服务申请单撤回分配',status='作废' where sa_workorderid=" + sa_workorderid);
-                sqllist.add(DataContrlLog.createLog(this, "sa_workorder", sa_workorderid, "作废", "工单作废成功")
-                        .getSQL());
+                sqllist.add(DataContrlLog.createLog(this, "sa_workorder", sa_workorderid, "作废", "工单作废成功").getSQL());
             }
 
         } else {
@@ -1047,12 +1016,9 @@ public class serviceorder extends Controller {
         return getSucReturnObject().toString();
     }
 
-    private ArrayList<String> getAddWorkorderNodeSql(long sa_workorder_templateid, long sa_workorderid)
-            throws YosException {
+    private ArrayList<String> getAddWorkorderNodeSql(long sa_workorder_templateid, long sa_workorderid) throws YosException {
         ArrayList sqList = new ArrayList<String>();
-        Rows rows = dbConnect.runSqlQuery(
-                "select  t1.sa_workorder_template_worksid,t1.sequence,t1.parentid,t2.* from sa_workorder_template_works t1 inner join sa_workpreset t2 on t1.siteid=t2.siteid and t1.sa_workpresetid=t2.sa_workpresetid  where t1.siteid='"
-                        + siteid + "' and t1.sa_workorder_templateid =" + sa_workorder_templateid + " order by t1.sequence asc");
+        Rows rows = dbConnect.runSqlQuery("select  t1.sa_workorder_template_worksid,t1.sequence,t1.parentid,t2.* from sa_workorder_template_works t1 inner join sa_workpreset t2 on t1.siteid=t2.siteid and t1.sa_workpresetid=t2.sa_workpresetid  where t1.siteid='" + siteid + "' and t1.sa_workorder_templateid =" + sa_workorder_templateid + " order by t1.sequence asc");
         RowsMap rowsMap = rows.toRowsMap("parentid");
         if (!rowsMap.get(0).isEmpty()) {
             for (Row row : rowsMap.get(0)) {
@@ -1144,8 +1110,7 @@ public class serviceorder extends Controller {
 //    }
     public static String createVerificationCode() {
         String s = "";
-        while (s.length() < 6)
-            s += (int) (Math.random() * 10);
+        while (s.length() < 6) s += (int) (Math.random() * 10);
         return s;
     }
 

+ 1 - 1
src/custom/restcontroller/webmanage/sale/stockbill/stockbill.java

@@ -272,7 +272,7 @@ public class stockbill extends Controller {
         querySQL.setWhere("t1.st_stockbillid", st_stockbillids);
         Rows rows = querySQL.query();
         RowsMap rowsMap = rows.toRowsMap("st_stockbillid");
-        RowsMap periodrowsMap = dbConnect.runSqlQuery("select CONCAT(year, '-',LPAD(month, 2, '0')) period,isclose from st_period").toRowsMap("isclose");
+        RowsMap periodrowsMap = dbConnect.runSqlQuery("select CONCAT(year, '-',LPAD(month, 2, '0')) period,isclose from st_period where CONCAT(year, '-',LPAD(month, 2, '0'))='" + period + "'").toRowsMap("isclose");
 
 //        if(periodrowsMap.get("1").toRowsMap("period").containsKey(period)){
 //            return getErrReturnObject().setErrMsg("原单据会计期间已关闭,不可调整").toString();

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

@@ -127,12 +127,12 @@ public class workorderTemplate extends Controller {
             if (isused) {
                 sqlList.add("update sa_workorder_template set isused=1 where sa_workorder_templateid=" + sa_workorder_templateid);
             } else {
-                Rows workorderRows = dbConnect
-                        .runSqlQuery("select sa_workorderid from sa_workorder where siteid='" + siteid
-                                + "' and sa_workorder_templateid='" + sa_workorder_templateid + "'");
-                if (!workorderRows.isEmpty()) {
-                    //return getErrReturnObject().setErrMsg("该服务工单模板已被使用,无法停用").toString();
-                }
+//                Rows workorderRows = dbConnect
+//                        .runSqlQuery("select sa_workorderid from sa_workorder where siteid='" + siteid
+//                                + "' and sa_workorder_templateid='" + sa_workorder_templateid + "'");
+//                if (!workorderRows.isEmpty()) {
+//                    //return getErrReturnObject().setErrMsg("该服务工单模板已被使用,无法停用").toString();
+//                }
                 sqlList.add("update sa_workorder_template set isused=0 where sa_workorder_templateid=" + sa_workorder_templateid);
             }
         } else {