Ver Fonte

查询优化

shenjingwei há 1 mês atrás
pai
commit
d343524041

+ 30 - 16
src/custom/restcontroller/sale/itemgroup/itemgroup.java

@@ -298,12 +298,19 @@ public class itemgroup extends Controller {
         RowsMap plm_technicalinfoRowsMap = getAttachmentUrl("plm_technicalinfo", plm_technicalinfoids);
         // 商品领域
         RowsMap tradefieldRowsMap = beans.Item.Item.getTradefieldRowsMap(this, ids);
-        Rows rowsitemclass = dbConnect.runSqlQuery(
-                " select  t7.itemclassname,t6.itemid,t8.brandname from sa_itemsaleclass t6 LEFT JOIN plm_itemclass t7 ON t7.itemclassid = t6.itemclassid AND t7.siteid = t6.siteid LEFT JOIN sa_brand t8 ON t8.sa_brandid = t7.sa_brandid AND t8.siteid = t7.siteid where t6.siteid='"
-                        + siteid + "'");
-        RowsMap itemclassRowsMap = rowsitemclass.toRowsMap("itemid");
 
-        RowsMap itemextendRowsMap = dbConnect.runSqlQuery("select itemid,material,device,prodline,specalnote,pressure,connection,valveplatematerial,actuatortype,actuatorbrand,butterflyplatedrive from plm_itemextend where siteid='" + siteid + "'").toRowsMap("itemid");
+
+        QuerySQL itemclassQuery = SQLFactory.createQuerySQL(this, "sa_itemsaleclass", "itemid").setTableAlias("t1");
+        itemclassQuery.addJoinTable(JOINTYPE.left, "plm_itemclass", "t2", "t1.itemclassid = t2.itemclassid", "itemclassname");
+        itemclassQuery.addJoinTable(JOINTYPE.left, "sa_brand", "t3", "t2.sa_brandid = t3.sa_brandid", "brandname");
+        itemclassQuery.setSiteid(siteid);
+        itemclassQuery.setWhere("t1.itemid", ids);
+        RowsMap itemclassRowsMap = itemclassQuery.query().toRowsMap("itemid");
+
+
+        QuerySQL itemextendQuery = SQLFactory.createQuerySQL(this, "plm_itemextend");
+        itemextendQuery.setWhere("itemid", ids);
+        RowsMap itemextendRowsMap = itemextendQuery.query().toRowsMap("itemid");
 
         SQLFactory priceSqlFactory = new SQLFactory(this, "查询商品原价");
         priceSqlFactory.addParameter("sa_itemgroupid", sa_itemgroupid);
@@ -1334,21 +1341,28 @@ public class itemgroup extends Controller {
         RowsMap coverRowsMap = getAttachmentUrl("plm_item", ids, "cover");
         // 附件
         RowsMap attRowsMap = getAttachmentUrl("plm_item", ids);
-        Rows rowsitemclass = dbConnect.runSqlQuery(
-                " select  t7.itemclassname,t6.itemid,t8.brandname from sa_itemsaleclass t6 inner JOIN plm_itemclass t7 ON t7.itemclassid = t6.itemclassid AND t7.siteid = t6.siteid LEFT JOIN sa_brand t8 ON t8.sa_brandid = t7.sa_brandid AND t8.siteid = t7.siteid where t6.siteid='"
-                        + siteid + "'");
-        RowsMap itemclassRowsMap = rowsitemclass.toRowsMap("itemid");
+
+        QuerySQL itemclassQuery = SQLFactory.createQuerySQL(this, "sa_itemsaleclass", "itemid").setTableAlias("t1");
+        itemclassQuery.addJoinTable(JOINTYPE.inner, "plm_itemclass", "t2", "t2.itemclassid = t1.itemclassid", "itemclassname");
+        itemclassQuery.addJoinTable(JOINTYPE.left, "sa_brand", "t3", "t3.sa_brandid = t2.sa_brandid", "brandname");
+        itemclassQuery.setSiteid(siteid);
+        itemclassQuery.setWhere("t1.itemid", ids);
+        RowsMap itemclassRowsMap = itemclassQuery.query().toRowsMap("itemid");
 
         // 货品档案领域
-        Rows rowstradefield = dbConnect.runSqlQuery(
-                " select  t6.itemid,t6.tradefield from plm_item_tradefield t6 where t6.siteid='" + siteid + "'");
-        RowsMap tradefieldRowsMap = rowstradefield.toRowsMap("itemid");
+        QuerySQL tradefieldQuery = SQLFactory.createQuerySQL(this, "plm_item_tradefield", "itemid", "tradefield");
+        tradefieldQuery.setSiteid(siteid);
+        tradefieldQuery.setWhere("itemid", ids);
+        RowsMap tradefieldRowsMap = tradefieldQuery.query().toRowsMap("itemid");
 
         // 品牌
-        Rows rowsbrand = dbConnect.runSqlQuery(
-                " select  distinct t8.sa_brandid,t6.itemid,t8.brandname from sa_itemsaleclass t6 inner JOIN plm_itemclass t7 ON t7.itemclassid = t6.itemclassid AND t7.siteid = t6.siteid LEFT JOIN sa_brand t8 ON t8.sa_brandid = t7.sa_brandid AND t8.siteid = t7.siteid where t6.siteid='"
-                        + siteid + "'");
-        RowsMap brandRowsMap = rowsbrand.toRowsMap("itemid");
+        QuerySQL brandQuery = SQLFactory.createQuerySQL(this, "sa_itemsaleclass", "itemid").setTableAlias("t1");
+        brandQuery.addJoinTable(JOINTYPE.inner, "plm_itemclass", "t2", "t2.itemclassid = t1.itemclassid");
+        brandQuery.addJoinTable(JOINTYPE.left, "sa_brand", "t3", "t3.sa_brandid = t2.sa_brandid", "brandname", "sa_brandid");
+        brandQuery.setSiteid(siteid);
+        brandQuery.setWhere("t1.itemid", ids);
+
+        RowsMap brandRowsMap = brandQuery.query().toRowsMap("itemid");
         for (Row row : itemrows) {
             Rows coverRows = coverRowsMap.get(row.getString("itemid"));
             if (coverRows.isEmpty()) {

+ 12 - 9
src/custom/restcontroller/webmanage/hr/hr.java

@@ -71,21 +71,24 @@ public class hr extends Controller {
 //        sqlFactory.addParameter_SQL("where", where);
 //        Rows rows = dbConnect.runSqlQuery(sqlFactory.getSQL());
         QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sys_hr", "hrid", "hrcode",
-                "name","sex","createby","createdate","changeby","changedate","phonenumber","officetelephone","position","isleader","isworker","email");
+                "name", "sex", "createby", "createdate", "changeby", "changedate", "phonenumber", "officetelephone", "position", "isleader", "isworker", "email");
         querySQL.setTableAlias("t1");
-        querySQL.addJoinTable(JOINTYPE.inner, "sys_department", "t2", "t1.siteid = t2.siteid and t1.departmentid = t2.departmentid","depname","depfullname");
-        querySQL.addJoinTable(JOINTYPE.left, "sys_users", "t3", "t1.userid = t3.userid","userid","accountno");
+        querySQL.addJoinTable(JOINTYPE.inner, "sys_department", "t2", "t1.siteid = t2.siteid and t1.departmentid = t2.departmentid", "depname", "depfullname");
+        querySQL.addJoinTable(JOINTYPE.left, "sys_users", "t3", "t1.userid = t3.userid", "userid", "accountno");
         querySQL.addJoinTable(JOINTYPE.left, "sys_hr", "t4", "t1.siteid = t4.siteid and t1.reporthrid = t4.hrid");
-        querySQL.addQueryFields("reporthrname","t4.name");
-        querySQL.addQueryFields("userphonenumber","t3.phonenumber");
-        querySQL.addQueryFields("username","t3.name");
+        querySQL.addQueryFields("reporthrname", "t4.name");
+        querySQL.addQueryFields("userphonenumber", "t3.phonenumber");
+        querySQL.addQueryFields("username", "t3.name");
         querySQL.setSiteid(siteid);
-        querySQL.setWhere("t1.departmentid",departmentidsList);
+        querySQL.setWhere("t1.departmentid", departmentidsList);
         querySQL.setWhere(where.toString());
         querySQL.setPage(pageSize, pageNumber);
         Rows rows = querySQL.query();
-        Rows rolerows = dbConnect.runSqlQuery("select t2.rolename,t1.userid from sys_userrole t1 inner join sys_role t2 on t1.siteid=t2.siteid and t1.roleid=t2.roleid where t1.siteid='" + siteid + "'");
-        RowsMap rolerowsMap = rolerows.toRowsMap("userid");
+
+        QuerySQL userroleQuery = SQLFactory.createQuerySQL(this, "sys_userrole", "userid").setTableAlias("t1");
+        userroleQuery.addJoinTable(JOINTYPE.inner, "sys_role", "t2", "t1.roleid=t2.roleid", "rolename");
+        userroleQuery.setWhere("t1.userid", rows.toArrayList("userid"));
+        RowsMap rolerowsMap = userroleQuery.query().toRowsMap("userid");
         for (Row row : rows) {
             if (!(rolerowsMap.get(row.getString("userid"))).isEmpty()) {
                 row.put("userrole", (rolerowsMap.get(row.getString("userid"))).toJsonArray("rolename"));

+ 4 - 14
src/custom/restcontroller/webmanage/sale/agents/agents.java

@@ -5,30 +5,26 @@ import beans.data.BatchDeleteErr;
 import beans.datacontrllog.DataContrlLog;
 import beans.dataextend.DataExtend;
 import beans.datatag.DataTag;
-import beans.datateam.DataTeam;
-import beans.enterprise.Enterprise;
 import beans.salearea.SaleArea;
 import com.alibaba.fastjson2.JSONArray;
 import com.alibaba.fastjson2.JSONObject;
 import common.Controller;
 import common.YosException;
-import common.annotation.*;
+import common.annotation.API;
+import common.annotation.CACHEING;
+import common.annotation.CACHEING_CLEAN;
+import common.annotation.cm;
 import common.data.*;
 import org.apache.commons.lang.StringUtils;
 import org.apache.poi.ss.usermodel.CellStyle;
 import org.apache.poi.ss.usermodel.DataFormat;
 import org.apache.poi.xssf.usermodel.*;
 import restcontroller.R;
-import restcontroller.sale.stockbill.stockbill;
-import restcontroller.webmanage.executorService.Executor;
 import restcontroller.webmanage.sale.bankabcxccard.bankabcxccard;
 import restcontroller.webmanage.sale.customer.Customer;
 import restcontroller.webmanage.sale.enterprisesaleclass.EnterpriseSaleClass;
 import restcontroller.webmanage.sale.enterprisetradefield.EnterpriseTradeField;
-import restcontroller.webmanage.sale.expressform.expressform;
 import restcontroller.webmanage.sale.salearea.salearea;
-import restcontroller.webmanage.sale.tpartreimbursement.tpartreimbursement;
-import restcontroller.webmanage.sale.tpartreimbursement.tpartreimbursementdetail;
 import restcontroller.webmanage.sale.warrantycard.warrantycard;
 
 import java.math.BigDecimal;
@@ -305,12 +301,6 @@ public class agents extends Controller {
             }
             sa_agentsid = createTableID("sa_agents");
             addAccount(sys_enterpriseid);
-            Rows customersRows = dbConnect.runSqlQuery("SELECT sa_customersid from sa_customers WHERE sys_enterpriseid =" + sys_enterpriseid + " and siteid = '" + siteid + "'");
-            if (customersRows.isNotEmpty()) {
-                Long id = customersRows.get(0).getLong("sa_customersid");
-                ArrayList<Long> userids = DataTeam.queryTeamRow(this, "sa_customers", id).toArrayList("userid", new ArrayList<>());
-                Executor.sendEml(this, "customers_agent_add", id, siteid, userids);
-            }
             sqllist.add(DataContrlLog.createLog(this, "sa_agents", sa_agentsid, "新增", "新增经销商").getSQL());
             isAdd = true;
         } else {

+ 24 - 9
src/custom/restcontroller/webmanage/sale/dbstockbill/dbstockbillreceive.java

@@ -12,7 +12,6 @@ import restcontroller.R;
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
-import java.util.Date;
 
 public class dbstockbillreceive extends Controller {
     public dbstockbillreceive(JSONObject content) throws YosException {
@@ -66,10 +65,23 @@ public class dbstockbillreceive extends Controller {
         if (st_dbstockbilldetails.isEmpty()) {
             return getErrReturnObject().setErrMsg("未选择调拨单明细").toString();
         }
+        ArrayList<String> st_dbstockbilldetailidlist = new ArrayList<>();
+        for (Object object : st_dbstockbilldetails) {
+            JSONObject jsonObject = (JSONObject) object;
+            st_dbstockbilldetailidlist.add(jsonObject.getString("st_dbstockbilldetailid"));
+        }
+        QuerySQL dbstockbilldetailQuery = SQLFactory.createQuerySQL(this, "st_dbstockbilldetail", getTableColumnNames("st_dbstockbilldetail").toArray(new String[]{})).setTableAlias("t1");
+        dbstockbilldetailQuery.addJoinTable(JOINTYPE.inner, "st_dbstockbill", "t2", "t1.st_dbstockbillid=t2.st_dbstockbillid", "instockid", "billdate");
+        dbstockbilldetailQuery.setWhere("t1.undeliqty>0");
+        dbstockbilldetailQuery.setWhere("t1.st_dbstockbilldetailid", st_dbstockbilldetailidlist);
+        dbstockbilldetailQuery.setWhere("t2.status", "审核");
+        RowsMap rowsMap = dbstockbilldetailQuery.query().toRowsMap("st_dbstockbilldetailid");
+
         Rows dbstockbilldetail = new Rows();
-        Rows rows = dbConnect.runSqlQuery("select t1.*,t2.instockid,t2.billdate from st_dbstockbilldetail t1 inner join st_dbstockbill t2 on t1.siteid=t2.siteid and t1.st_dbstockbillid=t2.st_dbstockbillid  where t1.siteid='" + siteid + "' and t1.undeliqty>0 and t2.status='审核'");
-        RowsMap rowsMap = rows.toRowsMap("st_dbstockbilldetailid");
+
         long st_dbstockbillid = 0;
+        String billdate = "";
+        long instockid = 0;
         for (Object object : st_dbstockbilldetails) {
             JSONObject jsonObject = (JSONObject) object;
             Row st_dbstockbilldetail;
@@ -80,9 +92,10 @@ public class dbstockbillreceive extends Controller {
             }
             if (st_dbstockbillid != 0 && st_dbstockbillid != st_dbstockbilldetail.getLong("st_dbstockbillid")) {
                 return getErrReturnObject().setErrMsg("不能同时选择两个调拨单进行收货确认").toString();
-            } else {
-                st_dbstockbillid = st_dbstockbilldetail.getLong("st_dbstockbillid");
             }
+            st_dbstockbillid = st_dbstockbilldetail.getLong("st_dbstockbillid");
+            billdate = st_dbstockbilldetail.getString("billdate");
+            instockid = st_dbstockbilldetail.getLong("instockid");
             int recqty = jsonObject.getIntValue("recqty");// 收货确认数量
             int undeliqty = st_dbstockbilldetail.getInteger("undeliqty");// 未入库数量
             if (recqty > undeliqty) {
@@ -118,15 +131,16 @@ public class dbstockbillreceive extends Controller {
         insertSQL.setValue("sys_enterpriseid", 0);
         insertSQL.setValue("sourceobject", "st_dbstockbill");
         insertSQL.setValue("sourceid", st_dbstockbillid);
-        insertSQL.setValue("stockid", rows.get(0).getLong("instockid"));
+        insertSQL.setValue("stockid", instockid);
         insertSQL.setValue("remarks", "收货确认入库");
         insertSQL.setValue("status", "审核");
         insertSQL.setValue("createby", username);
         insertSQL.setDateValue("createdate");
         insertSQL.setValue("checkby", username);
         insertSQL.setDateValue("checkdate");
-        insertSQL.setValue("billdate", rows.get(0).getString("billdate"));
-        insertSQL.setValue("period", getPeriod(rows.get(0).getDate("billdate")));
+        insertSQL.setValue("billdate", billdate);
+        insertSQL.setValue("period", getPeriod(billdate));
+
         sqllist.add(insertSQL.getSQL());
         int j = 1;
         for (Row row : dbstockbilldetail) {
@@ -168,7 +182,7 @@ public class dbstockbillreceive extends Controller {
         return getSucReturnObject().toString();
     }
 
-    public String getPeriod(Date date) throws YosException {
+    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) {
@@ -178,6 +192,7 @@ public class dbstockbillreceive extends Controller {
         }
     }
 
+
     public ArrayList<String> updateIcinvbal(boolean ischeck, boolean isinstock, Rows dbstockbilldetail) throws YosException {
         ArrayList<String> sqlList = new ArrayList();
         ArrayList<Long> itemids = new ArrayList<Long>();

+ 67 - 72
src/custom/restcontroller/webmanage/sale/item/Item.java

@@ -12,7 +12,6 @@ import common.YosException;
 import common.annotation.API;
 import common.annotation.CACHEING;
 import common.annotation.CACHEING_CLEAN;
-
 import common.data.*;
 import org.apache.commons.lang.StringUtils;
 import org.apache.poi.ss.usermodel.CellStyle;
@@ -62,19 +61,19 @@ public class Item extends Controller {
             }
             Rows itemRows = dbConnect.runSqlQuery("SELECT t1.*,t2.material from plm_item t1 left join plm_itemextend t2 on t1.itemid=t2.itemid and t1.siteid=t2.siteid WHERE t1.itemid=" + itemid + " and t1.siteid ='" + siteid + "'");
 
-            if(itemRows.get(0).getLong("wmsuploadflag")==2){
-                if(!itemRows.get(0).getString("itemname").equals(content.getString("itemname")) ||
+            if (itemRows.get(0).getLong("wmsuploadflag") == 2) {
+                if (!itemRows.get(0).getString("itemname").equals(content.getString("itemname")) ||
                         !itemRows.get(0).getString("model").equals(content.getString("model")) ||
                         !itemRows.get(0).getString("shapsize").equals(content.getString("shapsize")) ||
                         !itemRows.get(0).getString("spec").equals(content.getString("spec")) ||
                         !itemRows.get(0).getString("unitid").equals(content.getString("unitid")) ||
                         !itemRows.get(0).getString("remarks").equals(content.getString("remarks")) ||
-                        !itemRows.get(0).getString("stockno").equals(content.getString("stockno"))){
-                    sqlList.add("update plm_item set wmsuploadflag=1 where itemid="+itemid+" and siteid='"+siteid+"'");
+                        !itemRows.get(0).getString("stockno").equals(content.getString("stockno"))) {
+                    sqlList.add("update plm_item set wmsuploadflag=1 where itemid=" + itemid + " and siteid='" + siteid + "'");
                 }
             }
-            
-            if(content.getBooleanValue("ismodule")){
+
+            if (content.getBooleanValue("ismodule")) {
 //                Rows aftersalesitemnorows = dbConnect.runSqlQuery("select aftersalesitemno from plm_item where siteid='"+siteid+"' and aftersalesitemno='"+aftersalesitemno+"'");
 //                if(aftersalesitemnorows.isNotEmpty()){
 //                    return getErrReturnObject().setErrMsg("该配件的售后品号" + aftersalesitemno + "已存在,请修改").toString();
@@ -224,7 +223,7 @@ public class Item extends Controller {
         sqlFactory.addParameter("soldbase", content.getBigDecimal("soldbase"));
         sqlFactory.addParameter("byname", content.getStringValue("byname"));
         //rate,grade,custamount,safeqty,icaddqty,icminqty,iswriteoff,isnegative,ispartorderautocheck,islimitemparts,itemname_print,
-                //applicablegassource,hygienelicensenum,departmentid,executionstandards,itemclsnum,outplace
+        //applicablegassource,hygienelicensenum,departmentid,executionstandards,itemclsnum,outplace
         sqlFactory.addParameter("rate", content.getBigDecimal("rate"));
         sqlFactory.addParameter("grade", content.getStringValue("grade"));
         sqlFactory.addParameter("custamount", content.getBigDecimal("custamount"));
@@ -249,22 +248,22 @@ public class Item extends Controller {
         sqlFactory.addParameter("poday", content.getIntValue("poday"));
         sqlFactory.addParameter("sa_supplierid", content.getLongValue("sa_supplierid"));
 
-        String topclassnum="";
+        String topclassnum = "";
         if (content.containsKey("itemclassids")) {
             JSONArray itemclassids = content.getJSONArray("itemclassids");
-                for (Object obj : itemclassids) {
-                    JSONObject itemclass = (JSONObject) obj;
-                    if(itemclass.getStringValue("classtype").equals("存货")){
-                        SQLFactory sqlFactory1 = new SQLFactory(this, "获取最上级营销类别名称");
-                        sqlFactory1.addParameter_in("itemclassid", itemclass.getLongValue("itemclassid"));
-                        sqlFactory1.addParameter("siteid", siteid);
-                        Rows rows = dbConnect.runSqlQuery(sqlFactory1.getSQL());
-                        if (rows.isNotEmpty()) {
-                            topclassnum=rows.get(0).getString("itemclassname");
-                        }
+            for (Object obj : itemclassids) {
+                JSONObject itemclass = (JSONObject) obj;
+                if (itemclass.getStringValue("classtype").equals("存货")) {
+                    SQLFactory sqlFactory1 = new SQLFactory(this, "获取最上级营销类别名称");
+                    sqlFactory1.addParameter_in("itemclassid", itemclass.getLongValue("itemclassid"));
+                    sqlFactory1.addParameter("siteid", siteid);
+                    Rows rows = dbConnect.runSqlQuery(sqlFactory1.getSQL());
+                    if (rows.isNotEmpty()) {
+                        topclassnum = rows.get(0).getString("itemclassname");
                     }
                 }
             }
+        }
         sqlFactory.addParameter("topclassnum", topclassnum);
 
         sqlList.add(sqlFactory.getSQL());
@@ -357,10 +356,10 @@ public class Item extends Controller {
                     sqlFactory.addParameter("classtype", itemclass.getStringValue("classtype"));
                     sqlFactory.addParameter("itemclassid", itemclass.getLongValue("itemclassid"));
 
-                    if(itemclass.getStringValue("classtype").equals("存货")){
-                        Rows itemclsnumrows =dbConnect.runSqlQuery("select itemclassnum from plm_itemclass where classtype='存货' and itemclassid="+itemclass.getLongValue("itemclassid"));
-                        if(!itemclsnumrows.isEmpty()){
-                            sqlList.add("update plm_item set itemclsnum='"+itemclsnumrows.get(0).getString("itemclassnum")+"' where itemid="+itemid);
+                    if (itemclass.getStringValue("classtype").equals("存货")) {
+                        Rows itemclsnumrows = dbConnect.runSqlQuery("select itemclassnum from plm_itemclass where classtype='存货' and itemclassid=" + itemclass.getLongValue("itemclassid"));
+                        if (!itemclsnumrows.isEmpty()) {
+                            sqlList.add("update plm_item set itemclsnum='" + itemclsnumrows.get(0).getString("itemclassnum") + "' where itemid=" + itemid);
                         }
 
                     }
@@ -380,7 +379,6 @@ public class Item extends Controller {
         dbConnect.runSqlUpdate(sqlList);
 
 
-
         content.put("itemid", itemid);
 
         return queryDetail();
@@ -390,14 +388,14 @@ public class Item extends Controller {
     public String copyItem() throws YosException {
         long itemid = content.getLong("itemid");
         SQLFactory sqlFactory = new SQLFactory(this, "货品档案新增");
-        ArrayList<String> sqlList=new ArrayList<>();
-        Rows itemRows = dbConnect.runSqlQuery("select *from plm_item where itemid="+itemid);
-        Rows itemextendRows = dbConnect.runSqlQuery("select *from plm_itemextend where itemid="+itemid);
-        Rows itemtradefieldRows = dbConnect.runSqlQuery("select *from plm_item_tradefield where itemid="+itemid);
-        Rows itemsaleclassRows = dbConnect.runSqlQuery("select *from sa_itemsaleclass where itemid="+itemid);
-        Rows attachmentLinksRows = dbConnect.runSqlQuery("select * from sys_attachment_links  where ownertable='plm_item' and ownerid="+itemid);
-
-        if(itemRows.isEmpty()){
+        ArrayList<String> sqlList = new ArrayList<>();
+        Rows itemRows = dbConnect.runSqlQuery("select *from plm_item where itemid=" + itemid);
+        Rows itemextendRows = dbConnect.runSqlQuery("select *from plm_itemextend where itemid=" + itemid);
+        Rows itemtradefieldRows = dbConnect.runSqlQuery("select *from plm_item_tradefield where itemid=" + itemid);
+        Rows itemsaleclassRows = dbConnect.runSqlQuery("select *from sa_itemsaleclass where itemid=" + itemid);
+        Rows attachmentLinksRows = dbConnect.runSqlQuery("select * from sys_attachment_links  where ownertable='plm_item' and ownerid=" + itemid);
+
+        if (itemRows.isEmpty()) {
             return getErrReturnObject().setErrMsg("原商品不存在,无法复制").toString();
         }
         Row item = itemRows.get(0);
@@ -408,8 +406,8 @@ public class Item extends Controller {
         sqlFactory.addParameter("itemid", newitemid);
         sqlFactory.addParameter("username", username);
         sqlFactory.addParameter("userid", userid);
-        sqlFactory.addParameter("itemno", "复制"+item.getString("itemno"));
-        sqlFactory.addParameter("aftersalesitemno", "复制"+item.getString("aftersalesitemno"));
+        sqlFactory.addParameter("itemno", "复制" + item.getString("itemno"));
+        sqlFactory.addParameter("aftersalesitemno", "复制" + item.getString("aftersalesitemno"));
         sqlFactory.addParameter("unitid", item.getLong("unitid"));
         sqlFactory.addParameter("isauxunit", item.getString("isauxunit"));
         sqlFactory.addParameter("unitgroupid", item.getString("unitgroupid"));
@@ -528,7 +526,7 @@ public class Item extends Controller {
         // 货品档案扩展属性字段表
 
 
-        if(!itemextendRows.isEmpty()){
+        if (!itemextendRows.isEmpty()) {
             sqlFactory = new SQLFactory(this, "货品档案-扩展新增");
             long plm_itemextendid = createTableID("plm_itemextend");
             Row itemextendRow = itemextendRows.get(0);
@@ -558,7 +556,7 @@ public class Item extends Controller {
             sqlList.add(sqlFactory.getSQL());
         }
 
-        if(!itemtradefieldRows.isEmpty()){
+        if (!itemtradefieldRows.isEmpty()) {
             sqlFactory = new SQLFactory(this, "新增领域");
             sqlFactory.addParameter("siteid", siteid);
             sqlFactory.addParameter("plm_item_tradefieldid", createTableID("plm_item_tradefield"));
@@ -568,21 +566,21 @@ public class Item extends Controller {
             sqlList.add(sqlFactory.getSQL());
         }
 
-        if(!itemsaleclassRows.isEmpty()){
-            for(Row row :itemsaleclassRows){
+        if (!itemsaleclassRows.isEmpty()) {
+            for (Row row : itemsaleclassRows) {
                 sqlFactory = new SQLFactory(this, "商品营销类别新增");
                 sqlFactory.addParameter("sa_itemsaleclassid", createTableID("sa_itemsaleclass"));
                 sqlFactory.addParameter("siteid", siteid);
                 sqlFactory.addParameter("itemid", newitemid);
-                sqlFactory.addParameter("itemno", "复制"+item.getString("itemno"));
+                sqlFactory.addParameter("itemno", "复制" + item.getString("itemno"));
                 sqlFactory.addParameter("classtype", row.getString("classtype"));
                 sqlFactory.addParameter("itemclassid", row.getLong("itemclassid"));
 
                 sqlList.add(sqlFactory.getSQL());
             }
         }
-        if(!attachmentLinksRows.isEmpty()){
-            for(Row row :attachmentLinksRows){
+        if (!attachmentLinksRows.isEmpty()) {
+            for (Row row : attachmentLinksRows) {
                 Long linksid = createTableID("sys_attachment_links");
                 InsertSQL insertSQL = SQLFactory.createInsertSQL(this, "sys_attachment_links");
                 insertSQL.setValue("linksid", linksid);
@@ -663,7 +661,7 @@ public class Item extends Controller {
         String result = "";
 //        String result = request.doPost(object.toString(),
 //                "http://60.190.151.198:8089/BYESB/jaxrs/webclientrest");
-        Rows siteParameterRows =dbConnect.runSqlQuery("select * from sys_site_parameter where siteid='" + siteid + "'");
+        Rows siteParameterRows = dbConnect.runSqlQuery("select * from sys_site_parameter where siteid='" + siteid + "'");
         for (Row row : rows) {
             JSONArray jsonArrayResult = new JSONArray();
             if (isJSONArray(result)) {
@@ -684,9 +682,9 @@ public class Item extends Controller {
             row.put("itemsaleclass", itemSaleClassRowsMap.getOrDefault(row.getString("itemid"), new Rows()));
             row.put("tradefield", tradefieldRowsMap.getOrDefault(row.getString("itemid"), new Rows()));
             if (siteParameterRows.isNotEmpty()) {
-                row.put("defaultlevelprice",siteParameterRows.get(0).getString("defaultlevelprice"));
-            }else{
-                row.put("defaultlevelprice","");
+                row.put("defaultlevelprice", siteParameterRows.get(0).getString("defaultlevelprice"));
+            } else {
+                row.put("defaultlevelprice", "");
             }
         }
 
@@ -834,7 +832,7 @@ public class Item extends Controller {
                 where.append(")");
             }
             if (content.containsKey("sys_enterpriseid")) {
-                if(content.getLong("sys_enterpriseid")>0){
+                if (content.getLong("sys_enterpriseid") > 0) {
                     where.append(" and t1.itemid not in (SELECT ifnull(itemid,0) from sys_enterprise_saleclass WHERE sys_enterpriseid = " +
                             content.getLong("sys_enterpriseid") + " and siteid='" + siteid + "' )");
                 }
@@ -904,7 +902,7 @@ public class Item extends Controller {
     }
 
     public QuerySQL queryList(String where) throws YosException {
-        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "plm_item","*");
+        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "plm_item", "*");
         querySQL.setTableAlias("t1");
         querySQL.addJoinTable(JOINTYPE.left, "plm_unit", "t2", "t2.unitid = t1.unitid AND t2.siteid = t1.siteid",
                 "unitname");
@@ -925,11 +923,11 @@ public class Item extends Controller {
 //        querySQL.addJoinTable(JOINTYPE.left, "plm_itemclass", "t14", "t14.itemclassid = t1.marketingcategory AND t14.siteid = t1.siteid",
 //                "itemclassname");
         querySQL.addJoinTable(JOINTYPE.left, "sys_department", "t16", "t16.departmentid = t1.departmentid AND t16.siteid = t1.siteid",
-                "depno","depname");
+                "depno", "depname");
         querySQL.addJoinTable(JOINTYPE.left, "st_stock", "t17", "t17.stockno = t1.stockno AND t17.siteid = t1.siteid",
                 "stockname");
         querySQL.addJoinTable(JOINTYPE.left, "sa_supplier", "t18", "t18.sa_supplierid = t1.sa_supplierid AND t18.siteid = t1.siteid",
-                "suppno","suppname","suppshortname");
+                "suppno", "suppname", "suppshortname");
 
 
         querySQL.setWhere("t1.siteid", siteid);
@@ -954,25 +952,25 @@ public class Item extends Controller {
         String sql1 = "select t2.groupnum from sa_itemgroupmx t1 inner join sa_itemgroup t2 on t1.sa_itemgroupid=t2.sa_itemgroupid and t1.siteid=t2.siteid  where t1.itemid in " + jsonArray + " and t1.siteid ='"
                 + siteid + "'";
         sql1 = sql1.replace("[", "(").replace("]", ")");
-        Rows rows =dbConnect.runSqlQuery(sql1);
+        Rows rows = dbConnect.runSqlQuery(sql1);
         if (rows.isNotEmpty()) {
-            return getErrReturnObject().setErrMsg("该商品已存在商品组,商品组编码:"+rows.get(0).getString("groupnum")+",请前往商品组删除该商品后重试!").toString();
+            return getErrReturnObject().setErrMsg("该商品已存在商品组,商品组编码:" + rows.get(0).getString("groupnum") + ",请前往商品组删除该商品后重试!").toString();
         }
 
         String sql2 = "select t2.sonum from sa_orderitems t1 inner join sa_order t2 on t1.sa_orderid=t2.sa_orderid and t1.siteid=t2.siteid  where t1.itemid in " + jsonArray + " and t1.siteid ='"
                 + siteid + "'";
         sql2 = sql2.replace("[", "(").replace("]", ")");
-        Rows rows2 =dbConnect.runSqlQuery(sql2);
+        Rows rows2 = dbConnect.runSqlQuery(sql2);
         if (rows2.isNotEmpty()) {
-            return getErrReturnObject().setErrMsg("该商品已存在于订单,单号:"+rows2.get(0).getString("sonum")+",无法删除!").toString();
+            return getErrReturnObject().setErrMsg("该商品已存在于订单,单号:" + rows2.get(0).getString("sonum") + ",无法删除!").toString();
         }
 
         String sql3 = "select t2.billno from sa_aftersalesmag_items t1 inner join sa_aftersalesmag t2 on t1.sa_aftersalesmagid=t2.sa_aftersalesmagid and t1.siteid=t2.siteid where t1.itemid in " + jsonArray + " and t1.siteid ='"
                 + siteid + "'";
         sql3 = sql3.replace("[", "(").replace("]", ")");
-        Rows rows3 =dbConnect.runSqlQuery(sql3);
+        Rows rows3 = dbConnect.runSqlQuery(sql3);
         if (rows3.isNotEmpty()) {
-            return getErrReturnObject().setErrMsg("该商品已存在于退货单,单号:"+rows3.get(0).getString("billno")+",无法删除!").toString();
+            return getErrReturnObject().setErrMsg("该商品已存在于退货单,单号:" + rows3.get(0).getString("billno") + ",无法删除!").toString();
         }
 
         SQLFactory sqlFactory = new SQLFactory(this, "货品档案删除");
@@ -1126,7 +1124,7 @@ public class Item extends Controller {
             if (status.equals("0")) {
                 if (itemRowsMap.containsKey(String.valueOf(id))) {
                     if (!itemRowsMap.get(String.valueOf(id)).isEmpty()) {
-                        if (itemRowsMap.get(String.valueOf(id)).get(0).getBoolean("isonsale") || itemRowsMap.get(String.valueOf(id)).get(0).getBoolean("isused") ) {
+                        if (itemRowsMap.get(String.valueOf(id)).get(0).getBoolean("isonsale") || itemRowsMap.get(String.valueOf(id)).get(0).getBoolean("isused")) {
                             return getErrReturnObject().setErrMsg("上架或启用状态无法反审核").toString();
                         }
                     }
@@ -1147,7 +1145,7 @@ public class Item extends Controller {
     }
 
     @API(title = "货品档案启用", apiversion = R.ID2025070114584703.v1.class)
-    @CACHEING_CLEAN(apiClass = {Item.class,itemgroup.class, restcontroller.sale.itemgroup.itemgroup.class})
+    @CACHEING_CLEAN(apiClass = {Item.class, itemgroup.class, restcontroller.sale.itemgroup.itemgroup.class})
     public String used() throws YosException {
         JSONArray jsonArray = content.getJSONArray("itemids");
         String isused = content.getString("isused");
@@ -1203,14 +1201,14 @@ public class Item extends Controller {
             } else {
                 sqlList.add(DataContrlLog.createLog(this, "plm_item", id, "停用", "停用成功").getSQL());
             }
-    }
+        }
         dbConnect.runSqlUpdate(sqlList);
         return getSucReturnObject().toString();
     }
 
 
     @API(title = "货品档案上架", apiversion = R.ID20220923154802.v1.class)
-    @CACHEING_CLEAN(apiClass = {Item.class,itemgroup.class, restcontroller.sale.itemgroup.itemgroup.class})
+    @CACHEING_CLEAN(apiClass = {Item.class, itemgroup.class, restcontroller.sale.itemgroup.itemgroup.class})
     public String onsale() throws YosException {
 
         JSONArray jsonArray = content.getJSONArray("itemids");
@@ -1267,11 +1265,8 @@ public class Item extends Controller {
         if (!brandRows.isEmpty()) {
             sa_brandid = brandRows.get(0).getLong("sa_brandid");
         }
-        Rows itemRows = dbConnect.runSqlQuery("select itemid,itemno,itemname,sa_customschemeid,isonsale from plm_item where siteid='" + siteid + "'");
-        RowsMap itemRowsMap = itemRows.toRowsMap("itemid");
-
-        Rows tradefieldRows = dbConnect.runSqlQuery("select itemid,tradefield from plm_item_tradefield where siteid='" + siteid + "'");
-        RowsMap tradefieldRowsMap = tradefieldRows.toRowsMap("itemid");
+        RowsMap itemRowsMap = SQLFactory.createQuerySQL(this, "plm_item", "itemid", "itemno", "itemname").setWhere("itemid", jsonArray).query().toRowsMap("itemid");
+        RowsMap tradefieldRowsMap = SQLFactory.createQuerySQL(this, "plm_item_tradefield", "itemid", "tradefield").setWhere("itemid", jsonArray).query().toRowsMap("itemid");
 
         ArrayList<String> sqlList = new ArrayList<>();
         for (Object obj : jsonArray) {
@@ -1351,13 +1346,13 @@ public class Item extends Controller {
 //        sqlFactory.addParameter_SQL("where", where);
 //        Rows rows = dbConnect.runSqlQuery(sqlFactory.getSQL());
         QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_itemgroup", "sa_itemgroupid", "isonsale",
-                "groupname","sa_brandid");
+                "groupname", "sa_brandid");
         querySQL.setTableAlias("t1");
         querySQL.addJoinTable(JOINTYPE.inner, "sa_itemgroupmx", "t2", "t1.sa_itemgroupid = t2.sa_itemgroupid and t1.siteid = t2.siteid");
-        querySQL.addJoinTable(JOINTYPE.left, "sa_brand", "t3", "t3.sa_brandid = t1.sa_brandid and t3.siteid = t1.siteid","brandname");
+        querySQL.addJoinTable(JOINTYPE.left, "sa_brand", "t3", "t3.sa_brandid = t1.sa_brandid and t3.siteid = t1.siteid", "brandname");
         querySQL.setDistinct(true);
         querySQL.setSiteid(siteid);
-        querySQL.setWhere("t1.itemid",itemid);
+        querySQL.setWhere("t1.itemid", itemid);
         querySQL.setWhere(where.toString());
         querySQL.setPage(pageSize, pageNumber);
         Rows rows = querySQL.query();
@@ -1403,11 +1398,11 @@ public class Item extends Controller {
 //        Rows rows = dbConnect.runSqlQuery(sqlFactory.getSQL());
 
         QuerySQL querySQL = SQLFactory.createQuerySQL(this, "plm_technicalinfo", "plm_technicalinfoid", "billno",
-                "type","remarks");
+                "type", "remarks");
         querySQL.setTableAlias("t1");
         querySQL.addJoinTable(JOINTYPE.inner, "plm_technicalinfo_item", "t2", "t1.plm_technicalinfoid = t2.plm_technicalinfoid and t1.siteid = t2.siteid");
         querySQL.setSiteid(siteid);
-        querySQL.setWhere("t2.itemid",itemid);
+        querySQL.setWhere("t2.itemid", itemid);
         querySQL.setWhere(where.toString());
         querySQL.setPage(pageSize, pageNumber);
         Rows rows = querySQL.query();
@@ -1460,10 +1455,10 @@ public class Item extends Controller {
 //        sqlFactory.addParameter_SQL("where", where);
 //        Rows rows = dbConnect.runSqlQuery(sqlFactory.getSQL());
         QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_itemprice", "sa_itempriceid", "itemid",
-                "itemno","pricegrade","price");
+                "itemno", "pricegrade", "price");
         querySQL.setTableAlias("t1");
         querySQL.setSiteid(siteid);
-        querySQL.setWhere("t1.itemid",itemid);
+        querySQL.setWhere("t1.itemid", itemid);
         querySQL.setWhere(where.toString());
         querySQL.setPage(pageSize, pageNumber);
         Rows rows = querySQL.query();
@@ -1745,7 +1740,7 @@ public class Item extends Controller {
                     sqlFactory.addParameter("username", username);
                     sqlFactory.addParameter("userid", userid);
                     sqlFactory.addParameter("itemno", row.getString("itemno"));
-                    sqlFactory.addParameter("aftersalesitemno","");
+                    sqlFactory.addParameter("aftersalesitemno", "");
                     sqlFactory.addParameter("unitid", row.getLong("unitid"));
                     sqlFactory.addParameter("isauxunit", 0);
                     sqlFactory.addParameter("unitgroupid", "null");

+ 35 - 25
src/custom/restcontroller/webmanage/sale/itempriceadjust/ItempriceadjustItemprice.java

@@ -50,9 +50,18 @@ public class ItempriceadjustItemprice extends Controller {
         RowsMap itemRowsMap = items.toRowsMap("itemid");
         ArrayList<String> itempriceadjustItemsidList = items.toArrayList("sa_itempriceadjust_itemsid");
 
-        RowsMap itempriceRowsMap = dbConnect.runSqlQuery("select itemid,pricegrade,price from sa_itemprice where siteid = '" + siteid + "'").toRowsMap("itemid");
 
-        RowsMap item = dbConnect.runSqlQuery("select itemid,itemno,marketprice from plm_item where siteid='" + siteid + "'").toRowsMap("itemid");
+        ArrayList<String> itemids = new ArrayList<>();
+        for (Object o : sa_itempriceadjust_items) {
+            JSONObject jsonObject = (JSONObject) o;
+            itemids.add(jsonObject.getString("itemid"));
+        }
+        QuerySQL itempriceQuery = SQLFactory.createQuerySQL(this, "sa_itemprice", "itemid", "pricegrade", "price");
+        itempriceQuery.setWhere("itemid", itemids);
+        RowsMap itempriceRowsMap = itempriceQuery.query().toRowsMap("itemid");
+
+
+        RowsMap item = SQLFactory.createQuerySQL(this, "plm_item", "itemid", "itemno", "marketprice").setWhere("itemid", itemids).query().toRowsMap("itemid");
 
         RowsMap itempriceadjustItempriceRowsMap = dbConnect.runSqlQuery("select sa_itempriceadjust_itemsid from sa_itempriceadjust_itemprice where siteid='" + siteid + "' and sa_itempriceadjustid=" + sa_itempriceadjustid).toRowsMap("sa_itempriceadjust_itemsid");
         ArrayList<String> sqlList = new ArrayList();
@@ -131,28 +140,28 @@ public class ItempriceadjustItemprice extends Controller {
 //        sqlFactory.addParameter("sa_itempriceadjustid", sa_itempriceadjustid);
 //        Rows rows = dbConnect.runSqlQuery(sqlFactory.getSQL());
         QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_itempriceadjust_items", "sa_itempriceadjust_itemsid", "itemid",
-                "rowno","marketprice");
+                "rowno", "marketprice");
         querySQL.setTableAlias("t1");
         querySQL.addJoinTable(JOINTYPE.left, "sa_itempriceadjust_itemprice", "t2", "t1.sa_itempriceadjust_itemsid = t2.sa_itempriceadjust_itemsid AND t1.siteid = t2.siteid  AND t2.pricegrade = 1");
         querySQL.addJoinTable(JOINTYPE.left, "sa_itempriceadjust_itemprice", "t3", "t1.sa_itempriceadjust_itemsid = t3.sa_itempriceadjust_itemsid AND t1.siteid = t3.siteid AND t3.pricegrade = 2");
         querySQL.addJoinTable(JOINTYPE.left, "sa_itempriceadjust_itemprice", "t4", "t1.sa_itempriceadjust_itemsid = t4.sa_itempriceadjust_itemsid AND t1.siteid = t4.siteid AND t4.pricegrade = 3");
         querySQL.addJoinTable(JOINTYPE.left, "sa_itempriceadjust_itemprice", "t5", "t1.sa_itempriceadjust_itemsid = t5.sa_itempriceadjust_itemsid AND t1.siteid = t5.siteid AND t5.pricegrade = 4");
         querySQL.addJoinTable(JOINTYPE.left, "sa_itempriceadjust_itemprice", "t6", "t1.sa_itempriceadjust_itemsid = t6.sa_itempriceadjust_itemsid AND t1.siteid = t6.siteid AND t6.pricegrade = 5");
-        querySQL.addJoinTable(JOINTYPE.left, "plm_item", "t7", "t7.siteid = t1.siteid AND t7.itemid = t1.itemid","itemname","itemno","model","spec","ismodule","itemclsnum","topclassnum");
-        querySQL.addJoinTable(JOINTYPE.left, "plm_unit", "t8", "t7.siteid = t8.siteid and t7.unitid = t8.unitid","unitname");
-        querySQL.addQueryFields("remarks2","t1.remarks");
-        querySQL.addQueryFields("oldprice1","t2.oldprice");
-        querySQL.addQueryFields("price1","t2.price");
-        querySQL.addQueryFields("oldprice2","t3.oldprice");
-        querySQL.addQueryFields("price2","t3.price");
-        querySQL.addQueryFields("oldprice3","t4.oldprice");
-        querySQL.addQueryFields("price3","t4.price");
-        querySQL.addQueryFields("oldprice4","t5.oldprice");
-        querySQL.addQueryFields("price4","t5.price");
-        querySQL.addQueryFields("oldprice5","t6.oldprice");
-        querySQL.addQueryFields("price5","t6.price");
+        querySQL.addJoinTable(JOINTYPE.left, "plm_item", "t7", "t7.siteid = t1.siteid AND t7.itemid = t1.itemid", "itemname", "itemno", "model", "spec", "ismodule", "itemclsnum", "topclassnum");
+        querySQL.addJoinTable(JOINTYPE.left, "plm_unit", "t8", "t7.siteid = t8.siteid and t7.unitid = t8.unitid", "unitname");
+        querySQL.addQueryFields("remarks2", "t1.remarks");
+        querySQL.addQueryFields("oldprice1", "t2.oldprice");
+        querySQL.addQueryFields("price1", "t2.price");
+        querySQL.addQueryFields("oldprice2", "t3.oldprice");
+        querySQL.addQueryFields("price2", "t3.price");
+        querySQL.addQueryFields("oldprice3", "t4.oldprice");
+        querySQL.addQueryFields("price3", "t4.price");
+        querySQL.addQueryFields("oldprice4", "t5.oldprice");
+        querySQL.addQueryFields("price4", "t5.price");
+        querySQL.addQueryFields("oldprice5", "t6.oldprice");
+        querySQL.addQueryFields("price5", "t6.price");
         querySQL.setSiteid(siteid);
-        querySQL.setWhere("t1.sa_itempriceadjustid",sa_itempriceadjustid);
+        querySQL.setWhere("t1.sa_itempriceadjustid", sa_itempriceadjustid);
         querySQL.setWhere(where.toString());
         querySQL.setOrderBy("t1.sa_itempriceadjust_itemsid desc");
         querySQL.setPage(pageSize, pageNumber);
@@ -370,31 +379,31 @@ public class ItempriceadjustItemprice extends Controller {
                     rowserr.add(row);
                     continue;
                 }
-                if(!isNumeric(row.getString("price1"))){
+                if (!isNumeric(row.getString("price1"))) {
                     iserr = true;
                     row.put("msg", "价格1不为数字格式,请检查");
                     rowserr.add(row);
                     continue;
                 }
-                if(!isNumeric(row.getString("price2"))){
+                if (!isNumeric(row.getString("price2"))) {
                     iserr = true;
                     row.put("msg", "价格2不为数字格式,请检查");
                     rowserr.add(row);
                     continue;
                 }
-                if(!isNumeric(row.getString("price3"))){
+                if (!isNumeric(row.getString("price3"))) {
                     iserr = true;
                     row.put("msg", "价格3不为数字格式,请检查");
                     rowserr.add(row);
                     continue;
                 }
-                if(!isNumeric(row.getString("price4"))){
+                if (!isNumeric(row.getString("price4"))) {
                     iserr = true;
                     row.put("msg", "价格4不为数字格式,请检查");
                     rowserr.add(row);
                     continue;
                 }
-                if(!isNumeric(row.getString("price5"))){
+                if (!isNumeric(row.getString("price5"))) {
                     iserr = true;
                     row.put("msg", "价格5不为数字格式,请检查");
                     rowserr.add(row);
@@ -610,10 +619,10 @@ public class ItempriceadjustItemprice extends Controller {
 //        sqlFactory.addParameter("sa_itempriceadjustid", sa_itempriceadjustid);
 //        Rows rows = dbConnect.runSqlQuery(sqlFactory.getSQL());
         QuerySQL querySQL = SQLFactory.createQuerySQL(this, "plm_item", "itemid", "itemname",
-                "itemno","model","spec","ismodule","itemclsnum","topclassnum");
+                "itemno", "model", "spec", "ismodule", "itemclsnum", "topclassnum");
         querySQL.setTableAlias("t1");
         querySQL.setSiteid(siteid);
-        querySQL.setWhere("not exists(select 1 from sa_itempriceadjust_items where siteid= '"+siteid+"' and sa_itempriceadjustid='"+sa_itempriceadjustid+"' and t1.itemid=itemid)");
+        querySQL.setWhere("not exists(select 1 from sa_itempriceadjust_items where siteid= '" + siteid + "' and sa_itempriceadjustid='" + sa_itempriceadjustid + "' and t1.itemid=itemid)");
         querySQL.setWhere(where.toString());
         querySQL.addGroupBy("t1.itemid, t1.itemname, t1.itemno, t1.model, t1.spec,t1.ismodule,t1.itemclsnum");
         querySQL.setPage(pageSize, pageNumber);
@@ -653,7 +662,7 @@ public class ItempriceadjustItemprice extends Controller {
         }
 
         RowsMap itemRowsMap = dbConnect.runSqlQuery("select sa_itempriceadjust_itemsid,itemid,oldmarketprice from sa_itempriceadjust_items where siteid='" + siteid + "' and sa_itempriceadjustid=" + sa_itempriceadjustid).toRowsMap("itemid");
-        if(itemRowsMap.keySet().size()==0){
+        if (itemRowsMap.keySet().size() == 0) {
             return getErrReturnObject().setErrMsg("调价单明细为空不能刷新原价").toString();
         }
         String replace = itemRowsMap.keySet().toString().replace("[", "(").replace("]", ")");
@@ -743,6 +752,7 @@ public class ItempriceadjustItemprice extends Controller {
         }
         return sheet;
     }
+
     public static boolean isNumeric(String strNum) {
         if (strNum == null) {
             return false;

+ 2 - 1
src/custom/restcontroller/webmanage/sale/salearea/SQL/营销区域修改.sql

@@ -3,6 +3,7 @@ areaname=$areaname$,
 isused=$isused$,
 parentid=$parentid$,
 remarks=$remarks$,
-sequence=$sequence$
+sequence=$sequence$,
+areanum=$areanum$
 where siteid=$siteid$ and sa_saleareaid=$sa_saleareaid$
 

+ 2 - 2
src/custom/restcontroller/webmanage/sale/salearea/SQL/营销区域新增.sql

@@ -1,2 +1,2 @@
-insert into sa_salearea(siteid, sa_saleareaid, areaname, isused, remarks, parentid, sequence,sa_saleareaids)
-SELECT $siteid$, $sa_saleareaid$, $areaname$, $isused$, $remarks$, $parentid$, $sequence$,$sa_saleareaids$
+insert into sa_salearea(siteid, sa_saleareaid, areaname, isused, remarks, parentid, sequence,sa_saleareaids,areanum)
+SELECT $siteid$, $sa_saleareaid$, $areaname$, $isused$, $remarks$, $parentid$, $sequence$,$sa_saleareaids$,$areanum$

+ 21 - 17
src/custom/restcontroller/webmanage/sale/salearea/salearea.java

@@ -25,7 +25,6 @@ public class salearea extends Controller {
         super(content);
     }
 
-
     @API(title = "营销区域列表查询")
     @CACHEING
     public String query_area() throws YosException {
@@ -33,7 +32,7 @@ public class salearea extends Controller {
         /*
           查询所有分类
          */
-        Rows allrows = dbConnect.runSqlQuery("select sa_saleareaid,areaname,isused,remarks,sequence,ifnull(parentid,0) as parentid from sa_salearea where siteid='" + siteid + "' order by sequence,sa_saleareaid");
+        Rows allrows = dbConnect.runSqlQuery("select sa_saleareaid,areaname,isused,remarks,sequence,ifnull(parentid,0) as parentid,areanum from sa_salearea where siteid='" + siteid + "' order by sequence,sa_saleareaid");
         /*
           获取所有一级分类
          */
@@ -59,7 +58,7 @@ public class salearea extends Controller {
         areasqlFactory.addParameter("siteid", siteid);
         areasqlFactory.addParameter("hrid", hrid);
         Rows arearows = dbConnect.runSqlQuery(areasqlFactory);
-        String sql ="select sa_saleareaid,areaname,isused,remarks,sequence,ifnull(parentid,0) as parentid from sa_salearea where siteid='" + siteid + "' and sa_saleareaid in "+arearows.toArrayList("sa_saleareaid")+" order by sequence,sa_saleareaid";
+        String sql = "select sa_saleareaid,areaname,areanum,isused,remarks,sequence,ifnull(parentid,0) as parentid from sa_salearea where siteid='" + siteid + "' and sa_saleareaid in " + arearows.toArrayList("sa_saleareaid") + " order by sequence,sa_saleareaid";
         sql = sql.replace("[", "(").replace("]", ")");
         Rows allrows = dbConnect.runSqlQuery(sql);
         /*
@@ -82,7 +81,7 @@ public class salearea extends Controller {
         /*
           查询所有分类
          */
-        Rows allrows = dbConnect.runSqlQuery("select sa_saleareaid,areaname,isused,remarks,sequence,ifnull(parentid,0) as parentid from sa_salearea where siteid='" + siteid + "' order by sequence,sa_saleareaid");
+        Rows allrows = dbConnect.runSqlQuery("select sa_saleareaid,areaname,areanum,isused,remarks,sequence,ifnull(parentid,0) as parentid from sa_salearea where siteid='" + siteid + "' order by sequence,sa_saleareaid");
         /*
           获取所有一级分类
          */
@@ -198,6 +197,7 @@ public class salearea extends Controller {
         long parentid = content.getLongValue("parentid");
         String remarks = content.getString("remarks");
         int sequence = content.getInteger("sequence");
+        String areanum = content.getStringValue("areanum");
 
         if (parentid != 0 && dbConnect.runSqlQuery("select * from sa_salearea where siteid='" + siteid + "' and sa_saleareaid=" + parentid).isEmpty()) {
             return getErrReturnObject().setErrMsg("指定的上级区域不存在").toString();
@@ -205,6 +205,9 @@ public class salearea extends Controller {
         boolean isrefresh;
         SQLFactory sqlFactory;
         if (sa_saleareaid <= 0 || dbConnect.runSqlQuery("select sa_saleareaid from sa_salearea where sa_saleareaid=" + sa_saleareaid).isEmpty()) {
+            if (SQLFactory.createQuerySQL(this, "sa_salearea").setSiteid(siteid).setWhere("areanum", areanum).query().isNotEmpty()) {
+                return getErrReturnObject().setErrMsg("编号" + areanum + "已存在!不可重复!").toString();
+            }
             sa_saleareaid = createTableID("sa_salearea");
             sqlFactory = new SQLFactory(this, "营销区域新增");
             sqlFactory.addParameter("siteid", siteid);
@@ -214,9 +217,13 @@ public class salearea extends Controller {
             sqlFactory.addParameter("parentid", parentid == 0 ? "null" : String.valueOf(parentid));
             sqlFactory.addParameter("remarks", remarks);
             sqlFactory.addParameter("sequence", sequence);
+            sqlFactory.addParameter("areanum", areanum);
             sqlFactory.addParameter("sa_saleareaids", getSaleareaids(parentid, sa_saleareaid));
             isrefresh = true;
         } else {
+            if (SQLFactory.createQuerySQL(this, "sa_salearea").setSiteid(siteid).setWhere("areanum", areanum).setWhere("sa_saleareaid!=" + sa_saleareaid).query().isNotEmpty()) {
+                return getErrReturnObject().setErrMsg("编号" + areanum + "已存在!不可重复!").toString();
+            }
             sqlFactory = new SQLFactory(this, "营销区域修改");
             sqlFactory.addParameter("siteid", siteid);
             sqlFactory.addParameter("sa_saleareaid", sa_saleareaid);
@@ -225,6 +232,7 @@ public class salearea extends Controller {
             sqlFactory.addParameter("parentid", parentid == 0 ? "null" : String.valueOf(parentid));
             sqlFactory.addParameter("remarks", remarks);
             sqlFactory.addParameter("sequence", sequence);
+            sqlFactory.addParameter("areanum", areanum);
             isrefresh = dbConnect.runSqlQuery("select *from sa_salearea where siteid='" + siteid + "' and sa_saleareaid='" + sa_saleareaid + "' and areaname='" + areaname + "'").isEmpty();
         }
         dbConnect.runSqlUpdate(sqlFactory);
@@ -290,9 +298,9 @@ public class salearea extends Controller {
         sqlFactory.addParameter_in("sa_saleareaid", ids);
         sqlFactory.addParameter_SQL("where", where);
 //        Rows rows = dbConnect.runSqlQuery(sqlFactory.getSQL());
-        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sys_site_parameter",  "sys_site_parameterid");
+        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sys_site_parameter", "sys_site_parameterid");
         querySQL.setTableAlias("t0");
-        querySQL.addJoinTable(JOINTYPE.right, sqlFactory, "t1", "t0.siteid='111'","*");
+        querySQL.addJoinTable(JOINTYPE.right, sqlFactory, "t1", "t0.siteid='111'", "*");
         querySQL.setPage(pageSize, pageNumber);
         Rows rows = querySQL.query();
 
@@ -462,17 +470,13 @@ public class salearea extends Controller {
 
 
     public QuerySQL getAgentList(String where) throws YosException {
-        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_agents","sys_enterpriseid", "isservice",
-                "sa_agentsid","agentnum","priceadjustment","type","signdate","createby","createdate","islimitaccessories","islimitorder","signingstate","aftersalesphonenumber","toagentnum","signdate");
+        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_agents", "sys_enterpriseid", "isservice", "sa_agentsid", "agentnum", "priceadjustment", "type", "signdate", "createby", "createdate", "islimitaccessories", "islimitorder", "signingstate", "aftersalesphonenumber", "toagentnum", "signdate");
         querySQL.setTableAlias("t1");
-        querySQL.addJoinTable(JOINTYPE.inner, "sys_enterprise", "t2", "t1.siteid = t2.siteid and t1.sys_enterpriseid = t2.sys_enterpriseid",
-                "enterprisename","abbreviation", "phonenumber", "contact", "province", "city", "county", "address", "limitreturnday", "freefreightamount", "invoicingpoint","saleclassauth");
-        querySQL.addJoinTable(JOINTYPE.left, "sys_dataextend", "t4", "t1.sys_enterpriseid = t4.ownerid and ownertable = 'sys_enterprise' and t1.siteid = t4.siteid",
-                "erpagentnum");
+        querySQL.addJoinTable(JOINTYPE.inner, "sys_enterprise", "t2", "t1.siteid = t2.siteid and t1.sys_enterpriseid = t2.sys_enterpriseid", "enterprisename", "abbreviation", "phonenumber", "contact", "province", "city", "county", "address", "limitreturnday", "freefreightamount", "invoicingpoint", "saleclassauth");
+        querySQL.addJoinTable(JOINTYPE.left, "sys_dataextend", "t4", "t1.sys_enterpriseid = t4.ownerid and ownertable = 'sys_enterprise' and t1.siteid = t4.siteid", "erpagentnum");
         querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise_tradefield", "t5", "t1.siteid = t5.siteid and t1.sys_enterpriseid = t5.sys_enterpriseid");
-        querySQL.addJoinTable(JOINTYPE.left, "sa_salearea", "t6", "t5.sa_saleareaid = t6.sa_saleareaid and t5.siteid = t6.siteid",
-                "areaname");
-        querySQL.addQueryFields("status","case when t1.status='1' then '审核' else '新建' end");
+        querySQL.addJoinTable(JOINTYPE.left, "sa_salearea", "t6", "t5.sa_saleareaid = t6.sa_saleareaid and t5.siteid = t6.siteid", "areaname");
+        querySQL.addQueryFields("status", "case when t1.status='1' then '审核' else '新建' end");
         querySQL.setWhere("t1.siteid", siteid);
         querySQL.setWhere(where);
         return querySQL;
@@ -518,9 +522,9 @@ public class salearea extends Controller {
         sqlFactory.addParameter("siteid", siteid);
         sqlFactory.addParameter_SQL("where", where);
 //        Rows rows = dbConnect.runSqlQuery(sqlFactory.getSQL());
-        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sys_site_parameter",  "sys_site_parameterid");
+        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sys_site_parameter", "sys_site_parameterid");
         querySQL.setTableAlias("t0");
-        querySQL.addJoinTable(JOINTYPE.right, sqlFactory, "t1", "t0.siteid='111'","*");
+        querySQL.addJoinTable(JOINTYPE.right, sqlFactory, "t1", "t0.siteid='111'", "*");
         querySQL.setPage(pageSize, pageNumber);
         Rows rows = querySQL.query();
 

+ 46 - 37
src/custom/restcontroller/webmanage/sale/sendplan/sendplandetail.java

@@ -52,22 +52,25 @@ public class sendplandetail extends Controller {
 
         Rows stockbillrows = dbConnect.runSqlQuery("select t2.itemid,sum(t2.qty) qty from st_stockbill t1 " +
                 " inner join st_stockbill_items t2 on t1.st_stockbillid=t2.st_stockbillid " +
-                " where t1.status='新建' and t1.type='销售出库' and t1.billdate<='"+sendplanRows.get(0).getString("senddate")+"' and t1.siteid='" + siteid + "' " +
+                " where t1.status='新建' and t1.type='销售出库' and t1.billdate<='" + sendplanRows.get(0).getString("senddate") + "' and t1.siteid='" + siteid + "' " +
                 " group by t2.itemid ");
-        Rows invbalSalerows = dbConnect.runSqlQuery("select itemid,qty from st_invbal_sale");
+
+        QuerySQL invbal_saleQuery = SQLFactory.createQuerySQL(this, "st_invbal_sale", "itemid", "qty");
+        invbal_saleQuery.setWhere("itemid", rows.toArrayList("itemid"));
+        Rows invbalSalerows = invbal_saleQuery.query();
 
         RowsMap stockbillrowsMap = stockbillrows.toRowsMap("itemid");
         RowsMap invbalSalerowsMap = invbalSalerows.toRowsMap("itemid");
 
         ArrayList<String> list = new ArrayList<>();
 
-        long oldItemid= 0;
+        long oldItemid = 0;
         BigDecimal oldWilloutqty = BigDecimal.ZERO;
         BigDecimal oldCanuseqty = BigDecimal.ZERO;
         BigDecimal oldSendqty = BigDecimal.ZERO;
         long[] sendplandetailids = createTableID("sa_sendplandetail", rows.size());
-        int i=0;
-        for (Row row :rows) {
+        int i = 0;
+        for (Row row : rows) {
             InsertSQL insertSQL = SQLFactory.createInsertSQL(this, "sa_sendplandetail");
             insertSQL.setUniqueid(sendplandetailids[i++]);
             insertSQL.setSiteid(siteid);
@@ -92,9 +95,9 @@ public class sendplandetail extends Controller {
 
             long currentitemid = row.getLong("itemid");
 
-            if (oldItemid == 0 || oldItemid!=currentitemid) {
+            if (oldItemid == 0 || oldItemid != currentitemid) {
                 // 新物料
-                oldWilloutqty =willoutqty;
+                oldWilloutqty = willoutqty;
 
                 oldCanuseqty = invbalqty.subtract(oldWilloutqty);
             } else {
@@ -104,15 +107,15 @@ public class sendplandetail extends Controller {
             }
 
             // 设置计算后的值
-            insertSQL.setValue("canuseqty",oldCanuseqty);
-            insertSQL.setValue("willoutqty",oldWilloutqty);
+            insertSQL.setValue("canuseqty", oldCanuseqty);
+            insertSQL.setValue("willoutqty", oldWilloutqty);
 
 
             // 如果可用量<=0,设置发货量为0
             if (oldCanuseqty.compareTo(BigDecimal.ZERO) <= 0) {
-                insertSQL.setValue("sendqty",BigDecimal.ZERO);
+                insertSQL.setValue("sendqty", BigDecimal.ZERO);
                 insertSQL.setValue("colorflag", 0);
-            }else{
+            } else {
                 if (oldCanuseqty.compareTo(row.getBigDecimal("sendqty")) >= 0) {
                     insertSQL.setValue("colorflag", 2);
                 } else {
@@ -122,7 +125,7 @@ public class sendplandetail extends Controller {
 
             // 保存当前值供下次循环使用
             oldItemid = currentitemid;
-            oldSendqty = getBigDecimalOrZero(row.getBigDecimal("sendqty")).compareTo(BigDecimal.ZERO)>0?getBigDecimalOrZero(row.getBigDecimal("sendqty")):BigDecimal.ZERO;
+            oldSendqty = getBigDecimalOrZero(row.getBigDecimal("sendqty")).compareTo(BigDecimal.ZERO) > 0 ? getBigDecimalOrZero(row.getBigDecimal("sendqty")) : BigDecimal.ZERO;
             list.add(insertSQL.getSQL());
         }
         dbConnect.runSqlUpdate(list);
@@ -169,7 +172,10 @@ public class sendplandetail extends Controller {
                 " inner join sa_orderitems t2 on t1.sa_orderid=t2.sa_orderid " +
                 " where t1.status='审核' and t2.isclose=0 and t2.undeliqty>0 and t1.siteid='" + siteid + "' " +
                 " group by t2.itemid ");
-        Rows invbalSalerows = dbConnect.runSqlQuery("select itemid,qty from st_invbal_sale");
+        QuerySQL invbal_saleQuery = SQLFactory.createQuerySQL(this, "st_invbal_sale", "itemid", "qty");
+        invbal_saleQuery.setWhere("itemid", rows.toArrayList("itemid"));
+        Rows invbalSalerows = invbal_saleQuery.query();
+
 
         RowsMap stockbillrowsMap = stockbillrows.toRowsMap("itemid");
         RowsMap invbalSalerowsMap = invbalSalerows.toRowsMap("itemid");
@@ -209,21 +215,20 @@ public class sendplandetail extends Controller {
             insertSQL.setValue("canuseqty", canuseqty);
 
 
-
             if (row.getLong("itemid") == olditemid) {
                 insertSQL.setValue("willoutqty", (oldwilloutqty.compareTo(BigDecimal.ZERO) == 0 ? willoutqty : oldwilloutqty).add(oldsendqty));
                 insertSQL.setValue("canuseqty", (oldcanuseqty.compareTo(BigDecimal.ZERO) == 0 ? canuseqty : oldcanuseqty).subtract(oldsendqty));
-                newcanuseqty=(oldcanuseqty.compareTo(BigDecimal.ZERO) == 0 ? canuseqty : oldcanuseqty).subtract(oldsendqty);
-                oldcanuseqty=(oldcanuseqty.compareTo(BigDecimal.ZERO) == 0 ? canuseqty : oldcanuseqty).subtract(oldsendqty);
+                newcanuseqty = (oldcanuseqty.compareTo(BigDecimal.ZERO) == 0 ? canuseqty : oldcanuseqty).subtract(oldsendqty);
+                oldcanuseqty = (oldcanuseqty.compareTo(BigDecimal.ZERO) == 0 ? canuseqty : oldcanuseqty).subtract(oldsendqty);
 
             } else {
                 insertSQL.setValue("willoutqty", willoutqty);
                 insertSQL.setValue("canuseqty", canuseqty);
-                newcanuseqty=canuseqty;
+                newcanuseqty = canuseqty;
             }
 
             if (newcanuseqty.compareTo(BigDecimal.ZERO) <= 0) {
-                sendqty=BigDecimal.ZERO;
+                sendqty = BigDecimal.ZERO;
                 insertSQL.setValue("sendqty", sendqty);
                 insertSQL.setValue("colorflag", 0);
             } else {
@@ -313,7 +318,11 @@ public class sendplandetail extends Controller {
                 " inner join sa_orderitems t2 on t1.sa_orderid=t2.sa_orderid " +
                 " where t1.status='审核' and t2.isclose=0 and t2.undeliqty>0 and t1.siteid='" + siteid + "' " +
                 " group by t2.itemid ");
-        Rows invbalSalerows = dbConnect.runSqlQuery("select itemid,qty from st_invbal_sale");
+        QuerySQL invbal_saleQuery = SQLFactory.createQuerySQL(this, "st_invbal_sale", "itemid", "qty");
+        invbal_saleQuery.setWhere("itemid", rows.toArrayList("itemid"));
+        Rows invbalSalerows = invbal_saleQuery.query();
+
+
         Rows sendplandetails = dbConnect.runSqlQuery("select t1.sa_sendplandetailid,t1.sa_orderid,t2.itemid,t1.sendqty from sa_sendplandetail t1 inner join sa_orderitems t2 on t1.sa_orderitemsid=t2.sa_orderitemsid and t1.siteid=t2.siteid where t1.sa_sendplanid=" + sa_sendplanid + " and t1.siteid='" + siteid + "' order by t2.sa_orderid desc");
 
         RowsMap stockbillrowsMap = stockbillrows.toRowsMap("itemid");
@@ -418,7 +427,7 @@ public class sendplandetail extends Controller {
         String billdate = "";
         if (rows.isNotEmpty()) {
             departmentid = rows.get(0).getLong("departmentid");
-            billdate=rows.get(0).getString("senddate");
+            billdate = rows.get(0).getString("senddate");
         }
         JSONArray detailarray = content.getJSONArray("details");
         ArrayList<String> sqlList = new ArrayList<>();
@@ -436,7 +445,7 @@ public class sendplandetail extends Controller {
             String outplace = jsonObject.getString("outplace");
             String topclassnum = jsonObject.getString("topclassnum");
             String invoicename = jsonObject.getString("invoicename");
-            key = outplace+topclassnum+invoicename;
+            key = outplace + topclassnum + invoicename;
             HashMap<String, List<JSONObject>> agent = null;
             List<JSONObject> paolist = null;
             if (agentmap.containsKey(sys_enterpriseid)) {
@@ -464,7 +473,7 @@ public class sendplandetail extends Controller {
                 .entrySet().iterator();
 
         ArrayList<Long> st_stockbillids = new ArrayList<Long>();
-        RowsMap itemRowsMap = SQLFactory.createQuerySQL(this, "plm_item", "*").setTableAlias("t1").addJoinTable(JOINTYPE.left, "st_stock", "t2", "t1.siteid = t2.siteid and t1.stockno = t2.stockno","stockid").setWhere("itemid", orderdetails.toArrayList("itemid")).query().toRowsMap("itemid");
+        RowsMap itemRowsMap = SQLFactory.createQuerySQL(this, "plm_item", "*").setTableAlias("t1").addJoinTable(JOINTYPE.left, "st_stock", "t2", "t1.siteid = t2.siteid and t1.stockno = t2.stockno", "stockid").setWhere("itemid", orderdetails.toArrayList("itemid")).query().toRowsMap("itemid");
         RowsMap agentsRowsMap = SQLFactory.createQuerySQL(this, "sa_agents", "*").setWhere("sys_enterpriseid", sys_enterpriseidList).query().toRowsMap("sys_enterpriseid");
         while (iter.hasNext()) {
             Map.Entry entry = (Map.Entry) iter.next();
@@ -491,7 +500,7 @@ public class sendplandetail extends Controller {
                 sqlFactory.addParameter("siteid", siteid);
                 sqlFactory.addParameter("st_stockbillid", st_stockbillid);
                 sqlFactory.addParameter("sys_enterpriseid", sys_enterpriseid);
-                sqlFactory.addParameter("logisticsmethod", agentsRowsMap.containsKey(sys_enterpriseid)?agentsRowsMap.get(sys_enterpriseid).get(0).getString("delivery"):"");
+                sqlFactory.addParameter("logisticsmethod", agentsRowsMap.containsKey(sys_enterpriseid) ? agentsRowsMap.get(sys_enterpriseid).get(0).getString("delivery") : "");
                 sqlFactory.addParameter("billno", createBillCode("stockbill"));
                 sqlFactory.addParameter("type", "销售出库");
                 sqlFactory.addParameter("rb", 1);
@@ -511,26 +520,26 @@ public class sendplandetail extends Controller {
                     sqlFactory.addParameter("province", firstItem.getString("province"));
                     sqlFactory.addParameter("city", firstItem.getString("city"));
                     sqlFactory.addParameter("county", firstItem.getString("county"));
-                    sqlFactory.addParameter("remarks", mergeStrings(list,";"));
+                    sqlFactory.addParameter("remarks", mergeStrings(list, ";"));
                 } else {
                     sqlFactory.addParameter("outplace", "");
                     sqlFactory.addParameter("rec_contactsid", 0);
                     sqlFactory.addParameter("delivery", "");
                     //sqlFactory.addParameter("logisticsmethod", "");
                     sqlFactory.addParameter("invoice_enterprisename", "");
-                    sqlFactory.addParameter("invoice_address","");
+                    sqlFactory.addParameter("invoice_address", "");
                     sqlFactory.addParameter("invoice_taxno", "");
                     sqlFactory.addParameter("name", "");
                     sqlFactory.addParameter("phonenumber", "");
                     sqlFactory.addParameter("address", "");
-                    sqlFactory.addParameter("province","");
-                    sqlFactory.addParameter("city","");
+                    sqlFactory.addParameter("province", "");
+                    sqlFactory.addParameter("city", "");
                     sqlFactory.addParameter("county", "");
                     sqlFactory.addParameter("remarks", "");
                 }
 
 
-                sqlFactory.addParameter("billdate", StringUtils.isBlank(billdate)?getDateTime_Str():billdate);
+                sqlFactory.addParameter("billdate", StringUtils.isBlank(billdate) ? getDateTime_Str() : billdate);
                 sqlFactory.addParameter("createby", username);
                 sqlFactory.addParameter("createdate", getDateTime_Str());
                 sqlFactory.addParameter("changeby", username);
@@ -567,10 +576,10 @@ public class sendplandetail extends Controller {
                         sqlFactorydetail.addParameter("custamount", 0);
                     }
                     sqlFactorydetail.addParameter("itemid", jsonObject.getLongValue("itemid"));
-                    sqlFactorydetail.addParameter("itemname", itemRowsMap.containsKey(jsonObject.getStringValue("itemid"))?itemRowsMap.get(jsonObject.getStringValue("itemid")).get(0).getString("itemname"):jsonObject.getStringValue("itemname"));
-                    sqlFactorydetail.addParameter("itemno", itemRowsMap.containsKey(jsonObject.getStringValue("itemid"))?itemRowsMap.get(jsonObject.getStringValue("itemid")).get(0).getString("itemno"):jsonObject.getStringValue("itemno"));
-                    sqlFactorydetail.addParameter("model", itemRowsMap.containsKey(jsonObject.getStringValue("itemid"))?itemRowsMap.get(jsonObject.getStringValue("itemid")).get(0).getString("model"):jsonObject.getStringValue("model"));
-                    sqlFactorydetail.addParameter("skucontrol", itemRowsMap.containsKey(jsonObject.getStringValue("itemid"))?itemRowsMap.get(jsonObject.getStringValue("itemid")).get(0).getLong("skucontrol"):jsonObject.getLongValue("skucontrol"));
+                    sqlFactorydetail.addParameter("itemname", itemRowsMap.containsKey(jsonObject.getStringValue("itemid")) ? itemRowsMap.get(jsonObject.getStringValue("itemid")).get(0).getString("itemname") : jsonObject.getStringValue("itemname"));
+                    sqlFactorydetail.addParameter("itemno", itemRowsMap.containsKey(jsonObject.getStringValue("itemid")) ? itemRowsMap.get(jsonObject.getStringValue("itemid")).get(0).getString("itemno") : jsonObject.getStringValue("itemno"));
+                    sqlFactorydetail.addParameter("model", itemRowsMap.containsKey(jsonObject.getStringValue("itemid")) ? itemRowsMap.get(jsonObject.getStringValue("itemid")).get(0).getString("model") : jsonObject.getStringValue("model"));
+                    sqlFactorydetail.addParameter("skucontrol", itemRowsMap.containsKey(jsonObject.getStringValue("itemid")) ? itemRowsMap.get(jsonObject.getStringValue("itemid")).get(0).getLong("skucontrol") : jsonObject.getLongValue("skucontrol"));
 
                     sqlFactorydetail.addParameter("qty", qty);
                     sqlFactorydetail.addParameter("sa_dispatch_itemsid", 0);
@@ -612,9 +621,9 @@ public class sendplandetail extends Controller {
         sqlFactory.addParameter("siteid", siteid);
         QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_sendplandetail", "sa_sendplanid", "sa_sendplandetailid", "colorflag", "outplace", "sendqty", "willoutqty", "willinqty", "canuseqty");
         querySQL.setTableAlias("t1");
-        querySQL.addJoinTable(JOINTYPE.left, "sa_order", "t2", "t1.siteid = t2.siteid and t1.sa_orderid = t2.sa_orderid", "sonum", "checkdate", "sys_enterpriseid", "sa_orderid", "rec_contactsid", "delivery","logisticsmethod"
-                , "invoicename", "invoiceaddress","invoicetaxno","contact","phonenumber","address","province","city","county","remarks");
-        querySQL.addJoinTable(JOINTYPE.left, "sa_orderitems", "t3", "t3.siteid = t1.siteid and t3.sa_orderitemsid = t1.sa_orderitemsid", "rowno", "sa_orderitemsid","custamount");
+        querySQL.addJoinTable(JOINTYPE.left, "sa_order", "t2", "t1.siteid = t2.siteid and t1.sa_orderid = t2.sa_orderid", "sonum", "checkdate", "sys_enterpriseid", "sa_orderid", "rec_contactsid", "delivery", "logisticsmethod"
+                , "invoicename", "invoiceaddress", "invoicetaxno", "contact", "phonenumber", "address", "province", "city", "county", "remarks");
+        querySQL.addJoinTable(JOINTYPE.left, "sa_orderitems", "t3", "t3.siteid = t1.siteid and t3.sa_orderitemsid = t1.sa_orderitemsid", "rowno", "sa_orderitemsid", "custamount");
         querySQL.addJoinTable(JOINTYPE.left, "sa_agents", "t4", "t4.siteid = t1.siteid and t4.sa_agentsid = t1.sa_agentsid", "agentnum");
         querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise", "t5", "t5.siteid = t4.siteid and t5.sys_enterpriseid = t4.sys_enterpriseid", "enterprisename", "abbreviation");
         querySQL.addJoinTable(JOINTYPE.left, "plm_item", "t6", "t6.siteid = t3.siteid and t6.itemid = t3.itemid", "itemno", "itemname", "model", "itemid", "topclassnum");
@@ -648,7 +657,6 @@ public class sendplandetail extends Controller {
         RowsMap rows_cksaleRowsMap = rows_cksale.toRowsMap("itemid");
 
 
-
         for (Row row : rows) {
             if (rowsCkRowsMap.containsKey("101")) {
                 if (rowsCkRowsMap.get("101").toRowsMap("itemid").containsKey(row.getString("itemid"))) {
@@ -682,7 +690,7 @@ public class sendplandetail extends Controller {
 
             if (rows_cksaleRowsMap.containsKey(row.getString("itemid"))) {
                 row.put("qty_total", rows_cksaleRowsMap.get(row.getString("itemid")).get(0).getBigDecimal("qty"));
-            } else{
+            } else {
                 row.put("qty_total", 0);
             }
 
@@ -723,6 +731,7 @@ public class sendplandetail extends Controller {
 
         return result.toString();
     }
+
     private BigDecimal getBigDecimalOrZero(BigDecimal value) {
         return value != null ? value : BigDecimal.ZERO;
     }