ソースを参照

营销账户类型查询优化 订单商品添加列表查询优化

shenjingwei 6 ヶ月 前
コミット
dc2c4f02d7

+ 56 - 0
src/custom/common/yt/yt.java

@@ -0,0 +1,56 @@
+package common.yt;
+
+import com.alibaba.fastjson2.JSONObject;
+import common.data.QuerySQL;
+import common.data.Row;
+import common.data.Rows;
+import common.data.SQLFactory;
+import common.data.db.DBConnect;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import java.util.List;
+
+@Controller
+@RequestMapping("/rest/yt")
+public class yt {
+
+    @RequestMapping("/getExpressInfo")
+    @GetMapping
+    @ResponseBody
+    public Object getExpressInfo(@RequestParam("username") String username, @RequestParam("fbilltype") String fbilltype, @RequestParam("fbillnum") List<String> fbillnum) {
+        JSONObject jsonObj = new JSONObject();
+        try {
+            if (fbilltype.equals("expressbill")) {
+                if (fbillnum.isEmpty()) {
+                    jsonObj.put("errcode", "error");
+                    jsonObj.put("errmsg", "invalid param [fbillnum]");
+                    return jsonObj.toString();
+                }
+                QuerySQL viewPrintYto = SQLFactory.createQuerySQL(new DBConnect(), "view_print_yto");
+                viewPrintYto.setWhere("物流订单号", fbillnum);
+                Rows rows = viewPrintYto.query();
+                for (Row row : rows) {
+                    String sendername = row.getString("发件人_姓名");
+                    if ("&CREATEBY&".equalsIgnoreCase(sendername)) {
+                        row.put("发件人_姓名", row.getString("制单人"));
+                    } else if (username != null && !username.isEmpty() && "&USERNAME&".equalsIgnoreCase(sendername)) {
+                        row.put("发件人_姓名", username);
+                    }
+                }
+                jsonObj.put("table", rows.toJsonArray());
+                return jsonObj.toString();
+            }
+        } catch (Exception e) {
+            jsonObj.put("errcode", "syserror");
+            jsonObj.put("errmsg", e.getMessage());
+            return jsonObj.toString();
+        }
+        jsonObj.put("errcode", "syserror");
+        jsonObj.put("errmsg", "error");
+        return jsonObj.toString();
+    }
+}

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

@@ -6776,6 +6776,11 @@ public class R {
         public static class v1 {
         }
     }
+
+    public static class ID2025101815291401 {
+        public static class v1 {
+        }
+    }
 }
 
 

+ 0 - 16
src/custom/restcontroller/webmanage/sale/accountclass/SQL/营销账户类型列表查询.sql

@@ -1,16 +0,0 @@
-select t1.sa_accountclassid,
-       accountno,
-       accountname,
-       isorder,
-       isused,
-       isrebate,
-       ispay,
-       t1.bindingcategories,
-       t1.maximumdiscount,
-       ifnull(t2.balance, 0)     balance,
-       ifnull(t2.creditquota, 0) creditquota
-from sa_accountclass t1
-         LEFT JOIN sa_accountbalance t2
-                   ON t1.sa_accountclassid = t2.sa_accountclassid and sys_enterpriseid = $sys_enterpriseid$
-where $where$
-  and t1.siteid = $siteid$

+ 26 - 52
src/custom/restcontroller/webmanage/sale/accountclass/accountclass.java

@@ -156,55 +156,29 @@ public class accountclass extends Controller {
      */
     @API(title = "查询营销账户类型", apiversion = R.ID20221008134803.v1.class)
     public String queryAccountclass() throws YosException {
-        /*
-         * 过滤条件设置
-         */
-        String where = " 1=1 ";
-        if (content.containsKey("where")) {
-            JSONObject whereObject = content.getJSONObject("where");
-            if (whereObject.containsKey("condition") && !"".equals(whereObject.getString("condition"))) {
-                where = where + " and(accountname like'%" + whereObject.getString("condition")
-                        + "%' or accountno like '%" + whereObject.getString("condition") + "%')";
-            }
-            if (whereObject.containsKey("isused") && !"".equals(whereObject.getString("isused"))) {
-                where = where + " and t1.isused=" + whereObject.getLong("isused");
-            }
-            if (whereObject.containsKey("isorder") && !"".equals(whereObject.getString("isorder"))) {
-                where = where + " and t1.isorder=" + whereObject.getLong("isorder");
-            }
-            if (whereObject.containsKey("isrebate") && !"".equals(whereObject.getString("isrebate"))) {
-                where = where + " and t1.isrebate=" + whereObject.getLong("isrebate");
-            }
-            if (whereObject.containsKey("isnotspecialfund") && !"".equals(whereObject.getString("isnotspecialfund"))) {
-                where = where + " and  (JSON_TYPE(t1.bindingcategories) = 'NULL' || JSON_LENGTH(t1.bindingcategories) = 0)  and t1.accountname !='保证金账户' ";
-            }
-
+        QuerySQL accountclassQuery = SQLFactory.createQuerySQL(this, "sa_accountclass", "sa_accountclassid", "accountno", "accountname", "isorder", "isused", "isrebate", "ispay", "bindingcategories", "maximumdiscount").setTableAlias("t1");
+        accountclassQuery.addJoinTable(QuerySQL.JOINTYPE.left, "sa_accountbalance", "t2", "t1.sa_accountclassid=t2.sa_accountclassid and sys_enterpriseid=" + content.getOrDefault("sys_enterpriseid", sys_enterpriseid));
+        accountclassQuery.addQueryFields("balance", "ifnull(t2.balance, 0)");
+        accountclassQuery.addQueryFields("creditquota", "ifnull(t2.creditquota, 0)");
+        accountclassQuery.setCondition("t1.accountname", "t1.accountno");
+        accountclassQuery.setWhere("t1.siteid", siteid);
+        if (content_where.containsKey("isused")) {
+            accountclassQuery.setWhere("t1.isused", content_where.getBoolean("isused"));
         }
-        if (content.containsKey("sys_enterpriseid")) {
-            sys_enterpriseid = content.getLongValue("sys_enterpriseid");
-
+        if (content_where.containsKey("isorder")) {
+            accountclassQuery.setWhere("t1.isorder", content_where.getBoolean("isorder"));
+        }
+        if (content_where.containsKey("isrebate")) {
+            accountclassQuery.setWhere("t1.isrebate", content_where.getBoolean("isrebate"));
+        }
+        if (content_where.containsKey("isnotspecialfund")) {
+            accountclassQuery.setWhere("(JSON_TYPE(t1.bindingcategories) = 'NULL' || JSON_LENGTH(t1.bindingcategories) = 0)  and t1.accountname !='保证金账户'");
         }
         if (usertype == 21 || usertype == 22) {
-            where = where + " and t1.accountname !='活动账户'";
+            accountclassQuery.setWhere(" t1.accountname !='活动账户'");
         }
-        /*
-         * SQL通告板块查询参数设置并查询
-         */
-        SQLFactory factory = new SQLFactory(this, "营销账户类型列表查询");
-        factory.addParameter("siteid", siteid);
-        factory.addParameter("sys_enterpriseid", sys_enterpriseid);
-        factory.addParameter_SQL("where", where);
-        Rows rows = dbConnect.runSqlQuery(factory.getSQL());
-
-//        for (Row row:rows) {
-//            JSONArray bindingcategories= row.getJSONArray("bindingcategories");
-//            if(bindingcategories.size()>0){
-//                Rows itemclassRows = dbConnect.runSqlQuery("select * from plm_itemclass where siteid='"+siteid+"' and classtype='营销' and itemclassid in"+bindingcategories.toJSONString().replace("[", "(").replace("]", ")"));
-//                row.put("bindingcategories",itemclassRows.toJsonArray("itemclassname"));
-//            }else{
-//                row.put("bindingcategories",new JSONArray());
-//            }
-//        }
+        accountclassQuery.setPage(pageSize, pageNumber);
+        Rows rows = accountclassQuery.query();
         return getSucReturnObject().setData(rows).toString();
     }
 
@@ -268,9 +242,9 @@ public class accountclass extends Controller {
 //        querySQL.setPage(pageSize, pageNumber);
 //        Rows rows = querySQL.query();
         pageSorting = "t1.changedate desc";
-        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, factory, "t1", "t0.siteid='111'","*");
+        querySQL.addJoinTable(JOINTYPE.right, factory, "t1", "t0.siteid='111'", "*");
         querySQL.setPage(pageSize, pageNumber);
         Rows rows = querySQL.query();
         if (!rows.isEmpty()) {
@@ -322,8 +296,8 @@ public class accountclass extends Controller {
 
     @API(title = "查询冻结账户明细", apiversion = R.ID2025070310561403.v1.class)
     @CACHEING
-    public String queryAccountbalanceFreez () throws YosException {
-        Long sa_accountbalanceid=content.getLong("sa_accountbalanceid");
+    public String queryAccountbalanceFreez() throws YosException {
+        Long sa_accountbalanceid = content.getLong("sa_accountbalanceid");
         StringBuffer where = new StringBuffer(" 1=1 ");
         if (content.containsKey("where")) {
             JSONObject whereObject = content.getJSONObject("where");
@@ -339,12 +313,12 @@ public class accountclass extends Controller {
                 where.append("and t1.remarks like'%").append(whereObject.getString("remarks")).append("%' ");
             }
         }
-        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_accountbalance_freez","*");
+        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_accountbalance_freez", "*");
         querySQL.setTableAlias("t1");
         querySQL.addJoinTable(JOINTYPE.left, "sa_order", "t2", "t1.sourceid = t2.sa_orderid AND t1.siteid = t2.siteid and t1.sourcetable='sa_order'",
-                "status","sonum");
+                "status", "sonum");
         querySQL.setSiteid(siteid);
-        querySQL.setWhere("t1.sa_accountbalanceid",sa_accountbalanceid);
+        querySQL.setWhere("t1.sa_accountbalanceid", sa_accountbalanceid);
         querySQL.setWhere(where.toString());
         querySQL.setPage(pageSize, pageNumber);
         Rows rows = querySQL.query();

+ 139 - 99
src/custom/restcontroller/webmanage/sale/expressform/expressform.java

@@ -1,5 +1,6 @@
 package restcontroller.webmanage.sale.expressform;
 
+import beans.attachment.Attachment;
 import beans.data.BatchDeleteErr;
 import beans.datacontrllog.DataContrlLog;
 import com.alibaba.fastjson2.JSONArray;
@@ -19,9 +20,7 @@ import restcontroller.webmanage.sale.expressform.util.bean.Person;
 import restcontroller.webmanage.sale.expressform.util.bean.YTORequestOrder;
 
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Map;
+import java.util.*;
 
 @API(title = "快递信息表")
 public class expressform extends Controller {
@@ -55,24 +54,24 @@ public class expressform extends Controller {
         String rcv_county = content.getStringValue("rcv_county");
         String rcv_address = content.getStringValue("rcv_address");
         long expresssdrid = content.getLongValue("expresssdrid");
-        String mailno=content.getStringValue("mailno");
+        String mailno = content.getStringValue("mailno");
 
         if (expressformid <= 0) {
-            String orderby="";
-            if(fpriority_ads.equals("配件>常规")){
-                orderby="desc";
-            }else{
-                orderby="asc";
+            String orderby = "";
+            if (fpriority_ads.equals("配件>常规")) {
+                orderby = "desc";
+            } else {
+                orderby = "asc";
             }
-            Rows rcvRows =dbConnect.runSqlQuery("select * from sys_enterprise_contacts where workaddress=1 and sys_enterpriseid="+sys_enterpriseid+" order by case when type='配件' then 1 else 0 end "+orderby);
-            if(rcvRows.isNotEmpty()){
-                rcv_name=rcvRows.get(0).getString("name");
-                rcv_phone=rcvRows.get(0).getString("phonenumber");
-                rcv_mobile=rcvRows.get(0).getString("telephone");
-                rcv_prov=rcvRows.get(0).getString("province");
-                rcv_city=rcvRows.get(0).getString("city");
-                rcv_county=rcvRows.get(0).getString("county");
-                rcv_address=rcvRows.get(0).getString("address");
+            Rows rcvRows = dbConnect.runSqlQuery("select * from sys_enterprise_contacts where workaddress=1 and sys_enterpriseid=" + sys_enterpriseid + " order by case when type='配件' then 1 else 0 end " + orderby);
+            if (rcvRows.isNotEmpty()) {
+                rcv_name = rcvRows.get(0).getString("name");
+                rcv_phone = rcvRows.get(0).getString("phonenumber");
+                rcv_mobile = rcvRows.get(0).getString("telephone");
+                rcv_prov = rcvRows.get(0).getString("province");
+                rcv_city = rcvRows.get(0).getString("city");
+                rcv_county = rcvRows.get(0).getString("county");
+                rcv_address = rcvRows.get(0).getString("address");
             }
             expressformid = createTableID(tableName);
             InsertSQL insertSQL = SQLFactory.createInsertSQL(this, tableName);
@@ -159,17 +158,17 @@ public class expressform extends Controller {
     @CACHEING
     public String queryexpressformMain() throws YosException {
         long expressformid = content.getLong("expressformid");
-        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "expressform","*");
+        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "expressform", "*");
         querySQL.setTableAlias("t1");
         querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise", "t2", "t1.sys_enterpriseid = t2.sys_enterpriseid AND t1.siteid = t2.siteid",
                 "enterprisename", "abbreviation");
         querySQL.addJoinTable(JOINTYPE.left, "sa_agents", "t3", "t1.sys_enterpriseid = t3.sys_enterpriseid AND t1.siteid = t3.siteid",
                 "agentnum");
         querySQL.addJoinTable(JOINTYPE.left, "expresssdr", "t4", "t1.expresssdrid = t4.expresssdrid AND t1.siteid = t4.siteid",
-                "name","phonenumber","mobile","postcode","province","city","county","address");
+                "name", "phonenumber", "mobile", "postcode", "province", "city", "county", "address");
 
         querySQL.setWhere("t1.siteid", siteid);
-        querySQL.setWhere("t1.expressformid",expressformid);
+        querySQL.setWhere("t1.expressformid", expressformid);
         Rows rows = querySQL.query();
 
         Row row = rows.isNotEmpty() ? rows.get(0) : new Row();
@@ -193,14 +192,14 @@ public class expressform extends Controller {
             }
         }
 
-        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "expressform","*");
+        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "expressform", "*");
         querySQL.setTableAlias("t1");
         querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise", "t2", "t1.sys_enterpriseid = t2.sys_enterpriseid AND t1.siteid = t2.siteid",
                 "enterprisename", "abbreviation");
         querySQL.addJoinTable(JOINTYPE.left, "sa_agents", "t3", "t1.sys_enterpriseid = t3.sys_enterpriseid AND t1.siteid = t3.siteid",
                 "agentnum");
         querySQL.addJoinTable(JOINTYPE.left, "expresssdr", "t4", "t1.expresssdrid = t4.expresssdrid AND t1.siteid = t4.siteid",
-                "name","phonenumber","mobile","postcode","province","city","county","address");
+                "name", "phonenumber", "mobile", "postcode", "province", "city", "county", "address");
 
         querySQL.setWhere("t1.siteid", siteid);
         querySQL.setWhere(where);
@@ -246,7 +245,7 @@ public class expressform extends Controller {
     @API(title = "可绑定销售出库单查询", apiversion = R.ID2025080711005903.v1.class)
     @CACHEING
     public String querycanbindstockbills() throws YosException {
-        long sys_enterpriseid=content.getLong("sys_enterpriseid");
+        long sys_enterpriseid = content.getLong("sys_enterpriseid");
         StringBuffer where = new StringBuffer(" 1=1 ");
         if (content.containsKey("where")) {
             JSONObject whereObject = content.getJSONObject("where");
@@ -258,7 +257,7 @@ public class expressform extends Controller {
             }
         }
 
-        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "st_stockbill","*");
+        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "st_stockbill", "*");
         querySQL.setTableAlias("t1");
         querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise", "t2", "t1.sys_enterpriseid = t2.sys_enterpriseid AND t1.siteid = t2.siteid",
                 "enterprisename", "abbreviation");
@@ -276,7 +275,7 @@ public class expressform extends Controller {
     @API(title = "已绑定销售出库单", apiversion = R.ID2025080711063603.v1.class)
     @CACHEING
     public String yibindstockbills() throws YosException {
-        String txlogisticid =content.getString("txlogisticid");
+        String txlogisticid = content.getString("txlogisticid");
         StringBuffer where = new StringBuffer(" 1=1 ");
         if (content.containsKey("where")) {
             JSONObject whereObject = content.getJSONObject("where");
@@ -288,14 +287,14 @@ public class expressform extends Controller {
             }
         }
 
-        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "st_stockbill","*");
+        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "st_stockbill", "*");
         querySQL.setTableAlias("t1");
         querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise", "t2", "t1.sys_enterpriseid = t2.sys_enterpriseid AND t1.siteid = t2.siteid",
                 "enterprisename", "abbreviation");
         querySQL.addJoinTable(JOINTYPE.left, "sa_agents", "t3", "t1.sys_enterpriseid = t3.sys_enterpriseid AND t1.siteid = t3.siteid",
                 "agentnum");
         querySQL.setWhere("t1.siteid", siteid);
-        querySQL.setWhere("t1.type='销售出库' and t1.txlogisticid='"+txlogisticid+"'");
+        querySQL.setWhere("t1.type='销售出库' and t1.txlogisticid='" + txlogisticid + "'");
         querySQL.setWhere(where);
         querySQL.setPage(pageSize, pageNumber);
         Rows rows = querySQL.query();
@@ -303,38 +302,36 @@ public class expressform extends Controller {
     }
 
 
-
-
     @API(title = "绑定销售出库单", apiversion = R.ID2025080711074703.v1.class)
     @CACHEING_CLEAN(apiClass = {expressform.class, stockbill.class})
     public String bindstockbill() throws YosException {
         long expressformid = content.getLong("expressformid");
-        String txlogisticid =content.getString("txlogisticid");
-        String mailno =content.getString("mailno");
+        String txlogisticid = content.getString("txlogisticid");
+        String mailno = content.getString("mailno");
         JSONArray st_stockbillids = content.getJSONArray("st_stockbillids");
         ArrayList<String> sqlList = new ArrayList<>();
-        Rows rows =dbConnect.runSqlQuery("select * from expressform where siteid='"+siteid+"' and expressformid="+expressformid);
-        if(rows.isEmpty()){
+        Rows rows = dbConnect.runSqlQuery("select * from expressform where siteid='" + siteid + "' and expressformid=" + expressformid);
+        if (rows.isEmpty()) {
             return getErrReturnObject().setErrMsg("该快递信息不存在").toString();
         }
-        if(!rows.get(0).getString("status").equals("新建")){
+        if (!rows.get(0).getString("status").equals("新建")) {
             return getErrReturnObject().setErrMsg("非新建状态下不能操作").toString();
         }
-        if(rows.get(0).getLong("sys_enterpriseid")==0){
+        if (rows.get(0).getLong("sys_enterpriseid") == 0) {
             return getErrReturnObject().setErrMsg("必须指定经销商编号,才能关联销售出库单").toString();
         }
 
-        if(st_stockbillids.size()==0) {
+        if (st_stockbillids.size() == 0) {
             return getErrReturnObject().setErrMsg("未选中任何销售出库单!").toString();
         }
-        String sql="select * from st_stockbill where siteid='"+siteid+"' and st_stockbillid in"+st_stockbillids.toJSONString();
+        String sql = "select * from st_stockbill where siteid='" + siteid + "' and st_stockbillid in" + st_stockbillids.toJSONString();
         sql = sql.replace("[", "(").replace("]", ")");
-        Rows stockbillrows =dbConnect.runSqlQuery(sql);
-        for(Row row :stockbillrows){
-            if(StringUtils.isNotBlank(row.getString("txlogisticid"))){
-                return getErrReturnObject().setErrMsg("销售出库单"+row.getString("billno")+",已关联快递信息单!,不得重复关联!").toString();
+        Rows stockbillrows = dbConnect.runSqlQuery(sql);
+        for (Row row : stockbillrows) {
+            if (StringUtils.isNotBlank(row.getString("txlogisticid"))) {
+                return getErrReturnObject().setErrMsg("销售出库单" + row.getString("billno") + ",已关联快递信息单!,不得重复关联!").toString();
             }
-            sqlList.add("update st_stockbill set txlogisticid='"+txlogisticid+"',mailno='"+mailno+"' where st_stockbillid="+row.getLong("st_stockbillid"));
+            sqlList.add("update st_stockbill set txlogisticid='" + txlogisticid + "',mailno='" + mailno + "' where st_stockbillid=" + row.getLong("st_stockbillid"));
         }
         dbConnect.runSqlUpdate(sqlList);
         return getSucReturnObject().toString();
@@ -346,17 +343,17 @@ public class expressform extends Controller {
         JSONArray st_stockbillids = content.getJSONArray("st_stockbillids");
         long expressformid = content.getLong("expressformid");
         ArrayList<String> sqlList = new ArrayList<>();
-        Rows rows =dbConnect.runSqlQuery("select * from expressform where siteid='"+siteid+"' and expressformid="+expressformid);
-        if(rows.isEmpty()){
+        Rows rows = dbConnect.runSqlQuery("select * from expressform where siteid='" + siteid + "' and expressformid=" + expressformid);
+        if (rows.isEmpty()) {
             return getErrReturnObject().setErrMsg("该快递信息不存在").toString();
         }
-        if(!rows.get(0).getString("status").equals("新建")){
+        if (!rows.get(0).getString("status").equals("新建")) {
             return getErrReturnObject().setErrMsg("非新建状态下不能操作").toString();
         }
-        if(st_stockbillids.size()==0) {
+        if (st_stockbillids.size() == 0) {
             return getErrReturnObject().setErrMsg("未选中任何销售出库单!").toString();
         }
-        sqlList.add("update st_stockbill set txlogisticid='',mailno='' where st_stockbillid in"+st_stockbillids.toJSONString().replace("[", "(").replace("]", ")"));
+        sqlList.add("update st_stockbill set txlogisticid='',mailno='' where st_stockbillid in" + st_stockbillids.toJSONString().replace("[", "(").replace("]", ")"));
         dbConnect.runSqlUpdate(sqlList);
         return getSucReturnObject().toString();
     }
@@ -365,22 +362,22 @@ public class expressform extends Controller {
     @CACHEING_CLEAN(apiClass = {expressform.class, stockbill.class})
     public String check() throws YosException {
         Long expressformid = content.getLong("expressformid");
-        boolean ischeck =content.getBoolean("ischeck");
+        boolean ischeck = content.getBoolean("ischeck");
         Rows rows = dbConnect.runSqlQuery("select t1.expressformid,t1.status,t1.mailno,t1.txlogisticid from expressform t1 where t1.expressformid ='"
                 + expressformid + "' and  t1.siteid='" + siteid + "'");
         for (Row row : rows) {
-            if(ischeck){
+            if (ischeck) {
                 if (!row.getString("status").equals("新建")) {
-                    return getErrReturnObject().setErrMsg("非新建状态的【"+row.getString("txlogisticid")+"】快递信息单无法审核")
+                    return getErrReturnObject().setErrMsg("非新建状态的【" + row.getString("txlogisticid") + "】快递信息单无法审核")
                             .toString();
                 }
-                if(StringUtils.isBlank(row.getString("mailno"))) {
+                if (StringUtils.isBlank(row.getString("mailno"))) {
                     return getErrReturnObject().setErrMsg("面单号未填写,不能审核;请先尝试申请面单号")
                             .toString();
                 }
-            }else{
+            } else {
                 if (!row.getString("status").equals("审核")) {
-                    return getErrReturnObject().setErrMsg("非审核状态的【"+row.getString("txlogisticid")+"】快递信息单无法反审核")
+                    return getErrReturnObject().setErrMsg("非审核状态的【" + row.getString("txlogisticid") + "】快递信息单无法反审核")
                             .toString();
                 }
             }
@@ -389,12 +386,12 @@ public class expressform extends Controller {
         UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, "expressform");
         updateSQL.setUniqueid(expressformid);
         updateSQL.setSiteid(siteid);
-        updateSQL.setValue("status", ischeck?"审核":"新建");
-        updateSQL.setValue("checkby", ischeck?username:"null");
-        if(ischeck){
+        updateSQL.setValue("status", ischeck ? "审核" : "新建");
+        updateSQL.setValue("checkby", ischeck ? username : "null");
+        if (ischeck) {
             updateSQL.setDateValue("checkdate");
-        }else{
-            updateSQL.setValue("checkdate","null");
+        } else {
+            updateSQL.setValue("checkdate", "null");
         }
 
         sqlList.add(updateSQL.getSQL());
@@ -406,31 +403,31 @@ public class expressform extends Controller {
     @CACHEING_CLEAN(apiClass = {expressform.class, stockbill.class})
     public String close() throws YosException {
         ArrayList<String> sqlList = new ArrayList<>();
-        String txlogisticid =content.getString("txlogisticid");
+        String txlogisticid = content.getString("txlogisticid");
         Long expressformid = content.getLong("expressformid");
-        Rows stockbillrows =dbConnect.runSqlQuery("select * from st_stockbill where txlogisticid='"+txlogisticid+"' and siteid='"+siteid+"'");
-        Rows rows =dbConnect.runSqlQuery("select * from expressform where siteid='"+siteid+"' and expressformid="+expressformid);
-        if(rows.isEmpty()){
+        Rows stockbillrows = dbConnect.runSqlQuery("select * from st_stockbill where txlogisticid='" + txlogisticid + "' and siteid='" + siteid + "'");
+        Rows rows = dbConnect.runSqlQuery("select * from expressform where siteid='" + siteid + "' and expressformid=" + expressformid);
+        if (rows.isEmpty()) {
             return getErrReturnObject().setErrMsg("该快递信息不存在").toString();
         }
-        if(!rows.get(0).getString("status").equals("审核")){
+        if (!rows.get(0).getString("status").equals("审核")) {
             return getErrReturnObject().setErrMsg("非审核状态下不能关闭").toString();
         }
-        if((!rows.get(0).getBoolean("success")) && stockbillrows.size()==0) {
+        if ((!rows.get(0).getBoolean("success")) && stockbillrows.size() == 0) {
             return getErrReturnObject().setErrMsg("该快递信息单未生成电子面单,且未关联销售出库单,直接删除即可").toString();
         }
 
-        for(Row row :stockbillrows){
-            sqlList.add("update st_stockbill set txlogisticid='',mailno='' where st_stockbillid="+row.getLong("st_stockbillid"));
+        for (Row row : stockbillrows) {
+            sqlList.add("update st_stockbill set txlogisticid='',mailno='' where st_stockbillid=" + row.getLong("st_stockbillid"));
         }
-        sqlList.add("update expressform set status='关闭' where expressformid="+expressformid);
+        sqlList.add("update expressform set status='关闭' where expressformid=" + expressformid);
         dbConnect.runSqlUpdate(sqlList);
         return getSucReturnObject().toString();
     }
 
     @API(title = "查询快递发件人", apiversion = R.ID2025080713343803.v1.class)
     public String querysendperson() throws YosException {
-        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "expresssdr","*");
+        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "expresssdr", "*");
         querySQL.setTableAlias("t1");
         querySQL.setWhere("t1.siteid", siteid);
         querySQL.setPage(pageSize, pageNumber);
@@ -440,6 +437,7 @@ public class expressform extends Controller {
 
     /**
      * 向圆通电子面单申请接口发送请求,申请圆通电子面单号
+     *
      * @return
      * @throws YosException
      */
@@ -447,77 +445,77 @@ public class expressform extends Controller {
     public String applyMailNo_YTO() throws YosException {
         long expressformid = content.getLong("expressformid");
         ArrayList<String> sqlList = new ArrayList<>();
-        Rows rows =dbConnect.runSqlQuery("select * from expressform where siteid='"+siteid+"' and expressformid="+expressformid);
-        if(rows.isEmpty()){
+        Rows rows = dbConnect.runSqlQuery("select * from expressform where siteid='" + siteid + "' and expressformid=" + expressformid);
+        if (rows.isEmpty()) {
             return getErrReturnObject().setErrMsg("该快递信息不存在").toString();
         }
-        if(rows.get(0).getBoolean("success")){
+        if (rows.get(0).getBoolean("success")) {
             return getErrReturnObject().setErrMsg("该快递信息单已成功申请电子面单!").toString();
-        }else if(StringUtils.isNotBlank(rows.get(0).getString("mailno"))){
+        } else if (StringUtils.isNotBlank(rows.get(0).getString("mailno"))) {
             return getErrReturnObject().setErrMsg("该快递信息单已有快递面单单号,不需要重复申请!").toString();
-        }else if("关闭".equals(rows.get(0).getString("status"))) {
+        } else if ("关闭".equals(rows.get(0).getString("status"))) {
             return getErrReturnObject().setErrMsg("该快递信息单已关闭,不能申请电子面单!").toString();
-        }else if(!"YTO".equalsIgnoreCase(rows.get(0).getString("logisticproviderid"))) {
+        } else if (!"YTO".equalsIgnoreCase(rows.get(0).getString("logisticproviderid"))) {
             return getErrReturnObject().setErrMsg("目前只支持申请圆通的电子面单!").toString();
         }
 
-        String ordertype=rows.get(0).getString("ordertype");
-        Rows expressvalRows = dbConnect.runSqlQuery("select * from expressval where siteid='"+siteid+"' and logisticproviderid='YTO' and ordertype='"+ordertype+"'");
-        if(expressvalRows.isEmpty()){
-            return getErrReturnObject().setErrMsg("数据表'expressVal'中,缺少圆通快递开放平台的对接信息! 发货方式: "+ordertype+";快递公司: YTO").toString();
+        String ordertype = rows.get(0).getString("ordertype");
+        Rows expressvalRows = dbConnect.runSqlQuery("select * from expressval where siteid='" + siteid + "' and logisticproviderid='YTO' and ordertype='" + ordertype + "'");
+        if (expressvalRows.isEmpty()) {
+            return getErrReturnObject().setErrMsg("数据表'expressVal'中,缺少圆通快递开放平台的对接信息! 发货方式: " + ordertype + ";快递公司: YTO").toString();
         }
 
         String url_mailno = expressvalRows.get(0).getString("url_mailno");
-        String clientId =  expressvalRows.get(0).getString("clientid");
-        String partnerID =  expressvalRows.get(0).getString("partnerid");
+        String clientId = expressvalRows.get(0).getString("clientid");
+        String partnerID = expressvalRows.get(0).getString("partnerid");
 
-        Rows expresssdrRows = dbConnect.runSqlQuery("select * from expresssdr where siteid='"+siteid+"' and expresssdrid="+rows.get(0).getLong("expresssdrid"));
+        Rows expresssdrRows = dbConnect.runSqlQuery("select * from expresssdr where siteid='" + siteid + "' and expresssdrid=" + rows.get(0).getLong("expresssdrid"));
 
-        if(expresssdrRows.isEmpty()) {
+        if (expresssdrRows.isEmpty()) {
             return getErrReturnObject().setErrMsg("未设置默认发件人信息").toString();
         }
         Person sender = new Person(expresssdrRows.get(0).getString("name"), expresssdrRows.get(0).getString("postcode"),
                 expresssdrRows.get(0).getString("phonenumber"), expresssdrRows.get(0).getString("mobile"),
-                expresssdrRows.get(0).getString("province"), expresssdrRows.get(0).getString("city")+","+expresssdrRows.get(0).getString("county"), expresssdrRows.get(0).getString("address"));
+                expresssdrRows.get(0).getString("province"), expresssdrRows.get(0).getString("city") + "," + expresssdrRows.get(0).getString("county"), expresssdrRows.get(0).getString("address"));
 
-        YTOExpressMailNoClient client = new YTOExpressMailNoClient(url_mailno,clientId,partnerID,sender);
+        YTOExpressMailNoClient client = new YTOExpressMailNoClient(url_mailno, clientId, partnerID, sender);
 
-        YTORequestOrder requestOrder=client.newYTORequestOrder();
+        YTORequestOrder requestOrder = client.newYTORequestOrder();
         //tradeNo,orderType,serviceType,remark
         //rcv_name,rcv_postCode,rcv_phone,rcv_mobile,rcv_prov,rcv_city,rcv_address
         //itemName,number,itemsweight
         requestOrder.setTxLogisticID(rows.get(0).getString("txLogisticid"));
         requestOrder.setTradeNo(rows.get(0).getString("tradeno"));
-        if(StringUtils.isBlank(rows.get(0).getString("ordertype"))) {
+        if (StringUtils.isBlank(rows.get(0).getString("ordertype"))) {
             return getErrReturnObject().setErrMsg("未设置快递付款类型").toString();
         }
         requestOrder.setOrderType(rows.get(0).getInteger("ordertype"));
         requestOrder.setServiceType(rows.get(0).getInteger("servicetype"));
         requestOrder.setRemark(rows.get(0).getString("remarks"));
         //if(requestOrder.getOrderType()==0 || requestOrder.getOrderType()==4) {
-        if(requestOrder.getOrderType()==4) {
+        if (requestOrder.getOrderType() == 4) {
             requestOrder.setAgencyFund(rows.get(0).getDouble("agencyfund"));
         }
 
         Person receiver = new Person(rows.get(0).getString("rcv_name"), rows.get(0).getString("rcv_postcode"),
                 rows.get(0).getString("rcv_phone"), rows.get(0).getString("rcv_mobile"),
-                rows.get(0).getString("rcv_prov"), rows.get(0).getString("rcv_city")+","+rows.get(0).getString("rcv_county"), rows.get(0).getString("rcv_address"));
+                rows.get(0).getString("rcv_prov"), rows.get(0).getString("rcv_city") + "," + rows.get(0).getString("rcv_county"), rows.get(0).getString("rcv_address"));
         requestOrder.setReceiver(receiver);
 
         Item item = new Item(rows.get(0).getString("itemname"), rows.get(0).getInteger("number"), rows.get(0).getDouble("itemsweight"));
-        requestOrder.setItems(new Item[] {item});
-        Map<String, Object> resultMap= new HashMap<>();
-       // Map<String, Object> resultMap= client.sendRequestForMailNo(requestOrder);
-        if(resultMap!=null) {
+        requestOrder.setItems(new Item[]{item});
+        Map<String, Object> resultMap = new HashMap<>();
+        // Map<String, Object> resultMap= client.sendRequestForMailNo(requestOrder);
+        if (resultMap != null) {
             String code = (String) resultMap.get("code");
-            if("200".equals(code)) {//成功
+            if ("200".equals(code)) {//成功
                 UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, "expressform");
                 updateSQL.setUniqueid(expressformid);
                 updateSQL.setSiteid(siteid);
                 updateSQL.setDateValue("pushdate");
                 updateSQL.setValue("code", code);
-                updateSQL.setValue("mailno", (String)resultMap.get("mailNo"));
-                Map<String,String> distributeInfoMap = (Map<String, String>) resultMap.get("distributeInfo");
+                updateSQL.setValue("mailno", (String) resultMap.get("mailNo"));
+                Map<String, String> distributeInfoMap = (Map<String, String>) resultMap.get("distributeInfo");
                 updateSQL.setValue("shortAddress", distributeInfoMap.get("shortAddress"));
                 updateSQL.setValue("consigneebranchcode", distributeInfoMap.get("consigneeBranchCode"));
                 updateSQL.setValue("packagecentercode", distributeInfoMap.get("packageCenterCode"));
@@ -526,19 +524,19 @@ public class expressform extends Controller {
                 updateSQL.setValue("changeby", username);
                 updateSQL.setDateValue("changedate");
                 sqlList.add(updateSQL.getSQL());
-            }else {//失败
+            } else {//失败
                 UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, "expressform");
                 updateSQL.setUniqueid(expressformid);
                 updateSQL.setSiteid(siteid);
                 updateSQL.setDateValue("pushdate");
                 updateSQL.setValue("code", code);
-                updateSQL.setValue("reason", (String)resultMap.get("reason"));
+                updateSQL.setValue("reason", (String) resultMap.get("reason"));
                 updateSQL.setValue("success", 0);
                 updateSQL.setValue("changeby", username);
                 updateSQL.setDateValue("changedate");
                 sqlList.add(updateSQL.getSQL());
             }
-        }else {
+        } else {
             throw new YosException("请求电子面单接口超时");
         }
         dbConnect.runSqlUpdate(sqlList);
@@ -546,4 +544,46 @@ public class expressform extends Controller {
     }
 
 
+    /**
+     * 批量打印(圆通)
+     *
+     * @return
+     */
+    @API(title = "批量打印(圆通)", apiversion = R.ID2025101815291401.v1.class)
+    public String BatchPrint_YTO() throws YosException {
+        JSONArray expressformids = content.getJSONArray("expressformids");
+        List<Long> expressformidList = expressformids.toJavaList(Long.class);
+        String[] fbillnums = new String[expressformidList.size()];
+        for (int i = 0; i < expressformidList.size(); i++) {
+            Row expressForm = dbConnect.runSqlQuery(0, "select * from expressform where expressformid=" + expressformidList.get(i));
+            if (!expressForm.getBoolean("success") || expressForm.getString("mailNo").isEmpty()) {
+                return getErrReturnObject().setErrMsg("快递信息单'" + expressForm.getString("txlogisticid") + "/" + expressForm.getString("rcv_name") + "',未成功申请圆通电子面单!").toString();
+            }
+            fbillnums[i] = expressForm.getString("mailNo");
+        }
+        String scheme = request.getHttpServletRequest().getScheme();
+        String serverName = request.getHttpServletRequest().getServerName();
+        int port = request.getHttpServletRequest().getServerPort();
+        String hostName = scheme + "://" + serverName + ":" + port;
+
+        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sys_resources", "url", "siteid,type", "sys_resourcesid", "contentType");
+        querySQL.setWhere("resourcename", "yuantong3_batch");
+        Row resourcesRow = querySQL.query().get(0);
+        String url = "";
+        if (resourcesRow != null && resourcesRow.getString("type").equals("固定网址")) {
+            url = resourcesRow.getString("url");
+        }
+        if (resourcesRow != null && resourcesRow.getString("type").equals("附件")) {
+            Rows attmap = Attachment.get(this, "sys_resources", resourcesRow.getLong("sys_resourcesid"));
+            url = attmap.getLastRow().getString("url");
+        }
+
+        Hashtable<String, String> grMap = new Hashtable<>(3);
+
+        grMap.put("baseurl", "");
+        grMap.put("report", url);
+        grMap.put("data", hostName + "/yos/rest/yt/getExpressInfo?fbilltype=expressbill&username=" + username + "&fbillnum=" + StringUtils.join(fbillnums, "&fbillnum="));
+
+        return getSucReturnObject().setData(grMap).toString();
+    }
 }

+ 58 - 91
src/custom/restcontroller/webmanage/sale/order/OrderItems.java

@@ -1,13 +1,11 @@
 package restcontroller.webmanage.sale.order;
 
-import beans.accountbalance.Accountbalance;
-import beans.accountbalance.CashbillEntity;
+import beans.Item.Item;
+import beans.attachment.Attachment;
 import beans.brand.Brand;
-import beans.customscheme.CustomScheme;
 import beans.datacontrllog.DataContrlLog;
 import beans.enterprise.Enterprise;
 import beans.itemprice.ItemPrice;
-import beans.parameter.Parameter;
 import com.alibaba.fastjson2.JSONArray;
 import com.alibaba.fastjson2.JSONObject;
 import common.Controller;
@@ -19,7 +17,6 @@ import common.data.*;
 import org.apache.commons.lang.StringUtils;
 import restcontroller.R;
 import restcontroller.webmanage.sale.accessoryorder.accessoryorder;
-import restcontroller.webmanage.sale.aftersalesmag.twriteoffbill_orderchange;
 import restcontroller.webmanage.sale.rebate.Rebate;
 import restcontroller.webmanage.sale.toolbill.ToolBill;
 import utility.ERPDocking;
@@ -1044,42 +1041,19 @@ public class OrderItems extends Controller {
     @API(title = "查询可添加商品列表", apiversion = R.ID20221109153502.v1.class)
     @CACHEING
     public String selectItemList() throws YosException {
-        StringBuffer where = new StringBuffer(" 1=1 ");
-        if (content.containsKey("where")) {
-            JSONObject whereObject = content.getJSONObject("where");
-            if (whereObject.containsKey("condition") && !"".equals(whereObject.getString("condition"))) {
-                where.append(" and(");
-                where.append("t1.itemno like'%").append(whereObject.getString("condition")).append("%' ");
-                where.append("or t1.itemname like'%").append(whereObject.getString("condition")).append("%' ");
-                where.append("or t1.model like'%").append(whereObject.getString("condition")).append("%' ");
-                where.append("or t1.spec like'%").append(whereObject.getString("condition")).append("%' ");
-                where.append("or t1.standards like'%").append(whereObject.getString("condition")).append("%' ");
-                where.append("or t3.material like'%").append(whereObject.getString("condition")).append("%' ");
-                where.append("or t3.erpitemno like'%").append(whereObject.getString("condition")).append("%' ");
-                where.append(")");
-            }
-            if (whereObject.containsKey("isonsale") && !"".equals(whereObject.getString("isonsale"))) {
-                where.append(" and t1.isonsale ='").append(whereObject.getString("isonsale")).append("' ");
-            }
-
-        }
         Long sa_orderid = content.getLong("sa_orderid");
-        Long sys_enterpriseid1 = sys_enterpriseid;
-        Rows orderRows = getOrderRows(this, sa_orderid);
-        Long sa_brandid = 0L;
-        String tradefield = "";
+
         String type = "";
-        String typemx = "";
-        Long sys_enterpriseid = 0L;
+        Long order_sys_enterpriseid = 0L;
         JSONArray sa_accountclassinfos = new JSONArray();
+
+        Rows orderRows = getOrderRows(this, sa_orderid);
         if (orderRows.isNotEmpty()) {
-            sa_brandid = orderRows.get(0).getLong("sa_brandid");
-            tradefield = orderRows.get(0).getString("tradefield");
             type = orderRows.get(0).getString("type");
-            typemx = orderRows.get(0).getString("typemx");
-            sys_enterpriseid = orderRows.get(0).getLong("sys_enterpriseid");
+            order_sys_enterpriseid = orderRows.get(0).getLong("sys_enterpriseid");
             sa_accountclassinfos = orderRows.get(0).getJSONArray("sa_accountclassinfos");
         }
+
         boolean iswuliao = false;
         for (Object sa_accountclassinfo : sa_accountclassinfos) {
             JSONObject jsonObject = (JSONObject) sa_accountclassinfo;
@@ -1088,59 +1062,65 @@ public class OrderItems extends Controller {
             }
         }
 
-
-        SQLFactory sqlFactory = new SQLFactory(this, "查询可添加商品列表");
-        switch (type) {
-//            case "总部订单":
-//                sqlFactory = new SQLFactory(this, "查询可添加商品列表_总部订单", pageSize, pageNumber, pageSorting);
-//                break;
-            case "特殊订单":
-                if (typemx.equals("电商") || typemx.equals("工程")) {
-                    sqlFactory = new SQLFactory(this, "查询可添加商品列表_总部订单");
-                } else {
-                    sqlFactory = new SQLFactory(this, "查询可添加商品列表_特殊订单");
-                }
-                sqlFactory.addParameter("tradefield", tradefield);
-                if (sys_enterpriseid1 > 0) {
-                    where.append(" and t1.isonsale ='1' ");
-                }
-                break;
-            default:
-                StringBuffer where2 = new StringBuffer(" 1=1 ");
-                Row enterpriseRow = Enterprise.getEnterprise(this, sys_enterpriseid);
-                boolean saleclassauth = enterpriseRow.getBoolean("saleclassauth");
-                //需要经营授权
-                if (saleclassauth) {
-                    where2.append(" and (t1.itemclassid in (SELECT itemclassid from sys_enterprise_saleclass WHERE sys_enterpriseid = " + sys_enterpriseid + "  and siteid = '" + siteid + "') or  t1.itemid IN ( SELECT itemid FROM sys_enterprise_saleclass WHERE sys_enterpriseid = " + sys_enterpriseid + " AND siteid = '" + siteid + "' ) )");
-                }
-                sqlFactory.addParameter("sa_brandid", sa_brandid);
-                sqlFactory.addParameter("tradefield", tradefield);
-                sqlFactory.addParameter_SQL("where2", where2);
-                break;
+        QuerySQL itemquery = SQLFactory.createQuerySQL(this, "plm_item", "t1.itemid",
+                "t1.itemno",
+                "t1.itemname",
+                "t1.model",
+                "t1.batchcontrol",
+                "t1.orderminqty_auxunit",
+                "t1.orderminqty",
+                "t1.orderaddqty_auxunit",
+                "t1.orderaddqty",
+                "t1.spec",
+                "t1.standards",
+                "t1.delistingstatus",
+                "t1.marketprice",
+                "t1.packageqty",
+                "t1.iscustomsize",
+                "t1.widthschemeid",
+                "t1.lengthschemeid",
+                "t1.materialschemeid",
+                "t1.colorschemeid",
+                "t1.cheekschemeid",
+                "t1.sa_customschemeid",
+                "t1.custamount",
+                "t1.isonsale").setTableAlias("t1");
+        itemquery.addJoinTable(JOINTYPE.left, "plm_unitgroup", "t2", "t1.unitgroupid=t2.unitgroupid ", "conversionrate");
+        itemquery.addJoinTable(JOINTYPE.left, "plm_itemextend", "t3", "t1.itemid=t3.itemid ", "material", "erpitemno", "erpitemname", "specalnote", "prodline", "device");
+        itemquery.addJoinTable(JOINTYPE.left, "plm_unit", "t4", "t1.unitid=t4.unitid ");
+        itemquery.addJoinTable(JOINTYPE.left, "plm_unit", "t5", "t5.unitid=t2.auxunitid ");
+        if (!type.equals("特殊订单") && Enterprise.getEnterprise(this, order_sys_enterpriseid).getBoolean("saleclassauth")) {
+            itemquery.addJoinTable(JOINTYPE.inner, "sys_enterprise_itemauth_view", "t6", "t1.itemid=t6.itemid and t6.sys_enterpriseid=" + order_sys_enterpriseid);
+        }
+        itemquery.addQueryFields("unit", "t4.unitname");
+        itemquery.addQueryFields("auxunit", "t5.unitname");
+        itemquery.setSiteid(siteid);
+        itemquery.setCondition("t1.itemno", "t1.itemname", "t1.model", "t1.spec", "t1.standards", "t3.material", "t3.erpitemno");
+        itemquery.setWhere("status", "审核");
+        if (sys_enterpriseid > 0 || !type.equals("特殊订单")) {
+            itemquery.setWhere("t1.isonsale", true);
+        } else if (content_where.containsKey("isonsale")) {
+            itemquery.setWhere("t1.isonsale", content_where.getBooleanValue("isonsale"));
+        }
+        if (!type.equals("特殊订单")) {
+            itemquery.setWhere("istool", false);
         }
         if (iswuliao) {
-            where.append(" and t1.iswuliao ='1' ");
+            itemquery.setWhere("t1.iswuliao", true);
         }
-        sqlFactory.addParameter("siteid", siteid);
-        sqlFactory.addParameter_SQL("where", where);
-//        String sql = sqlFactory.getSQL();
-//        Rows rows = dbConnect.runSqlQuery(sql);
-        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sys_site_parameter", "sys_site_parameterid");
-        querySQL.setTableAlias("t");
-        querySQL.addJoinTable(JOINTYPE.right, sqlFactory, "t1", "'111' = t.siteid ", "*");
-        querySQL.setPage(pageSize, pageNumber);
-        Rows rows = querySQL.query();
+        itemquery.setPage(pageSize, pageNumber);
+        Rows rows = itemquery.query();
+
         ArrayList<Long> ids = rows.toArrayList("itemid", new ArrayList<>());
         //查询附件
-        RowsMap attinfoRowsMap = getAttachmentUrl("plm_item", ids);
+        RowsMap attinfoRowsMap = Attachment.get(this, "plm_item", ids);
         //商品领域
-        RowsMap tradefieldRowsMap = beans.Item.Item.getTradefieldRowsMap(this, ids);
+        RowsMap tradefieldRowsMap = Item.getTradefieldRowsMap(this, ids);
         //品牌
         RowsMap brandRowsMap = Brand.getBrandRowsMap(this, ids);
         //价格
-        HashMap<Long, ItemPrice> itemPriceRowsMap = ItemPrice.getItemPrice(this, sys_enterpriseid, ids);
-        //定制信息
-        CustomScheme customScheme = new CustomScheme(this);
+        HashMap<Long, ItemPrice> itemPriceRowsMap = ItemPrice.getItemPrice(this, order_sys_enterpriseid, ids);
+
         for (Row row : rows) {
             row.put("attinfos", attinfoRowsMap.getOrDefault(row.getString("itemid"), new Rows()));
             row.put("tradefield", tradefieldRowsMap.getOrDefault(row.getString("itemid"), new Rows()));
@@ -1150,19 +1130,6 @@ public class OrderItems extends Controller {
             } else {
                 row.put("price", 0);
             }
-
-            row = customScheme.setScheme(row, "width");
-            row = customScheme.setScheme(row, "length");
-            row = customScheme.setScheme(row, "material");
-            row = customScheme.setScheme(row, "color");
-            row = customScheme.setScheme(row, "cheek");
-            if (row.getLong("width") == 0) {
-                row.replace("width", null);
-            }
-            if (row.getLong("length") == 0) {
-                row.replace("length", null);
-            }
-
         }
         return getSucReturnObject().setData(rows).toString();
     }

+ 2 - 1
src/custom/restcontroller/webmanage/sale/order/SQL/查询可添加商品列表.sql

@@ -28,7 +28,8 @@ SELECT t1.itemid,
        t3.erpitemname,
        t3.specalnote,
        t3.prodline,
-       t3.device
+       t3.device,
+       t1.isonsale
 from plm_item t1
          LEFT JOIN plm_unitgroup t2 ON t2.unitgroupid = t1.unitgroupid and t2.siteid = t1.siteid
          left join plm_itemextend t3 on t3.itemid = t1.itemid and t3.siteid = t1.siteid

+ 5 - 1
src/custom/restcontroller/webmanage/sale/order/SQL/查询可添加商品列表_总部订单.sql

@@ -9,7 +9,9 @@ SELECT t1.itemid,
        t1.orderaddqty,
        t1.spec,
        t1.standards,
+       t1.delistingstatus,
        t1.marketprice,
+       t1.packageqty,
        t1.iscustomsize,
        t1.widthschemeid,
        t1.lengthschemeid,
@@ -17,6 +19,7 @@ SELECT t1.itemid,
        t1.colorschemeid,
        t1.cheekschemeid,
        t1.sa_customschemeid,
+       t1.custamount,
        t4.unitname unit,
        t5.unitname auxunit,
        t2.conversionrate,
@@ -25,7 +28,8 @@ SELECT t1.itemid,
        t3.erpitemname,
        t3.specalnote,
        t3.prodline,
-       t3.device
+       t3.device,
+       t1.isonsale
 from plm_item t1
          LEFT JOIN plm_unitgroup t2 ON t2.unitgroupid = t1.unitgroupid and t2.siteid = t1.siteid
          left join plm_itemextend t3 on t3.itemid = t1.itemid and t3.siteid = t1.siteid

+ 1 - 0
src/custom/restcontroller/webmanage/sale/order/SQL/查询可添加商品列表_特殊订单.sql

@@ -19,6 +19,7 @@ SELECT t1.itemid,
        t1.colorschemeid,
        t1.cheekschemeid,
        t1.sa_customschemeid,
+       t1.custamount,
        t4.unitname unit,
        t5.unitname auxunit,
        t2.conversionrate,