wu hace 2 meses
padre
commit
fb8f6c24b8

+ 3 - 3
src/custom/beans/datateam/DataTeam.java

@@ -410,7 +410,7 @@ public class DataTeam {
             }
             case 8: {
                 str = "(" + alias + "." + controller.getuniquecolumnname(ownertable) + " in (select ownerid from sys_datateam where siteid='" + siteid + "' and isleader=1 and userid=" + userid + " and ownertable='" + ownertable + "'  )";
-                str = str + " or " + alias + "." + controller.getuniquecolumnname(ownertable) + " in(select ownerid from sys_datateam where siteid='" + siteid + "' and ((isleader=0 and userid=" + userid + ") or(isleader=1 and userid in (select createuserid from sys_userteam where siteid='" + siteid + "' and userid = " + userid + " and isproxy = 1)))  and ownertable='" + ownertable + "' ))";
+                str = str + " or " + alias + "." + controller.getuniquecolumnname(ownertable) + " in(select ownerid from sys_datateam where siteid='" + siteid + "' and ((isleader=0 and userid=" + userid + ") or(isleader=1 and userid in (select userid from sys_userteam where siteid='" + siteid + "' and createuserid = " + userid + " and isproxy = 1)))  and ownertable='" + ownertable + "' ))";
                 break;
             }
             //我下属创建的
@@ -516,8 +516,8 @@ public class DataTeam {
      * @return
      */
     public static ArrayList<Long> getProxyUserids(Controller controller, Long userid, boolean isCotainSelf) throws YosException {
-        Rows rows = controller.dbConnect.runSqlQuery("SELECT createuserid from sys_userteam  WHERE userid = '" + userid + "' and isproxy=1 and siteid='" + controller.siteid + "'");
-        ArrayList<Long> userids = rows.toArrayList("createuserid", new ArrayList<>());
+        Rows rows = controller.dbConnect.runSqlQuery("SELECT userid  from sys_userteam  WHERE createuserid = '" + userid + "' and isproxy=1 and siteid='" + controller.siteid + "'");
+        ArrayList<Long> userids = rows.toArrayList("userid", new ArrayList<>());
         if (isCotainSelf) {
             userids.add(userid);
         }

+ 0 - 32
src/custom/objectregister/sa_order.java

@@ -1,32 +0,0 @@
-package objectregister;
-
-import common.YosException;
-import common.data.db.initialization.base.YosObject;
-import common.data.db.initialization.base.YosObjectCol;
-
-import java.util.ArrayList;
-
-public class sa_order implements YosObject {
-    @Override
-    public String table_comment() {
-        return "销售订单";
-    }
-
-    @Override
-    public UniqueCol uniquecolumn() {
-        return new UniqueCol("sa_orderid", "销售订单ID");
-    }
-
-    @Override
-    public ArrayList<YosObjectCol> table_cols() {
-        ArrayList<YosObjectCol> list = new ArrayList<>();
-        list.add(new VarcharCol("reward_point", "提成计算点", 50));
-        list.add(new DecimalCol("reward_rate", "提成计算率", 16, 2));
-        return list;
-    }
-
-    @Override
-    public void DataInit() throws YosException {
-
-    }
-}

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

@@ -7377,6 +7377,26 @@ public class R {
         public static class v1 {
         }
     }
+
+    public static class ID2025102814083902 {
+        public static class v1 {
+        }
+    }
+
+    public static class ID2025102814092602 {
+        public static class v1 {
+        }
+    }
+
+    public static class ID2025102814112602 {
+        public static class v1 {
+        }
+    }
+
+    public static class ID2025102815162702 {
+        public static class v1 {
+        }
+    }
 }
 
 

+ 9 - 4
src/custom/restcontroller/prsx/hospitaldep/hospitaldep.java

@@ -273,6 +273,7 @@ public class hospitaldep extends Controller {
         HashMap<Long, ArrayList<String>> tagList = DataTag.queryTag(this, tablename, ids, false);
         //系统标签
         HashMap<Long, ArrayList<String>> sysTagList = DataTag.queryTag(this, tablename, ids, true);
+        Rows stageRows = dbConnect.runSqlQuery("SELECT stagename,sequence from sa_devstage WHERE siteid='" + siteid + "' order by sequence");
         for (Row row : rows) {
             Long id = row.getLong("sa_customersid");
             row.put("leader", leaderRows.get(String.valueOf(id)));
@@ -282,14 +283,18 @@ public class hospitaldep extends Controller {
             }
             ArrayList<String> tag = tagList.get(id) != null ? tagList.get(id) : new ArrayList<String>();
             ArrayList<String> sys_tag = sysTagList.get(id) != null ? sysTagList.get(id) : new ArrayList<String>();
-            if (row.getString("agentsstatus").equals("禁用") || row.getString("agentsstatus").equals("作废")) {
-                tag.removeAll(row.getJSONArray("agentstag").toJavaList(String.class));
-                sys_tag.removeAll(row.getJSONArray("agentstag").toJavaList(String.class));
-            }
             //非系统标签
             row.put("tag", tag);
             //系统标签
             row.put("tag_sys", sys_tag);
+            String stagename = row.getString("stagename");
+            for (Row stageRow : stageRows) {
+                if (stagename.equals(stageRow.getString("stagename"))) {
+                    stageRow.put("active", 1);
+                }
+                stageRow.putIfAbsent("active", 0);
+            }
+            row.put("stages", stageRows);
         }
         return getSucReturnObject().setData(rows).toString();
     }

+ 0 - 4
src/custom/restcontroller/sale/customer/Hospital.java

@@ -428,10 +428,6 @@ public class Hospital extends Controller {
             }
             ArrayList<String> tag = tagList.get(id) != null ? tagList.get(id) : new ArrayList<String>();
             ArrayList<String> sys_tag = sysTagList.get(id) != null ? sysTagList.get(id) : new ArrayList<String>();
-            if (row.getString("agentsstatus").equals("禁用") || row.getString("agentsstatus").equals("作废")) {
-                tag.removeAll(row.getJSONArray("agentstag").toJavaList(String.class));
-                sys_tag.removeAll(row.getJSONArray("agentstag").toJavaList(String.class));
-            }
             //非系统标签
             row.put("tag", tag);
             //系统标签

+ 0 - 1
src/custom/restcontroller/webmanage/sale/agents/agents.java

@@ -94,7 +94,6 @@ public class agents extends Controller {
     }
 
     @API(title = "经销商详情查询")
-    @CACHEING
     public String query_agentMain() throws YosException {
         long sa_agentsid = content.getLongValue("sa_agentsid");
         SQLFactory sqlFactory = new SQLFactory(this, "经销商详情查询");

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 35 - 1050
src/custom/restcontroller/webmanage/sale/order/Order.java


+ 741 - 0
src/custom/restcontroller/webmanage/sale/order/Order2.java

@@ -0,0 +1,741 @@
+package restcontroller.webmanage.sale.order;
+
+import beans.accountbalance.Accountbalance;
+import beans.datacontrllog.DataContrlLog;
+import beans.dataextend.DataExtend;
+import beans.datatag.DataTag;
+import beans.datateam.DataTeam;
+import beans.enterprise.Enterprise;
+import beans.proxy.Proxy;
+import beans.recycle.Recycle;
+import beans.salearea.SaleArea;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import common.Controller;
+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.xssf.usermodel.XSSFCellStyle;
+import org.apache.poi.xssf.usermodel.XSSFSheet;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import restcontroller.R;
+import restcontroller.sale.customer.ExportExcel;
+
+import java.io.IOException;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+
+public class Order2 extends Controller {
+    /**
+     * 构造函数
+     *
+     * @param content
+     */
+    public Order2(JSONObject content) throws YosException {
+        super(content);
+    }
+
+    @API(title = "订单管理", apiversion = R.ID20230105143002.v1.class)
+    public String selectListManage() throws YosException, IOException {
+        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.sonum like'%").append(whereObject.getString("condition")).append("%' ");
+                where.append("or t9.province like'%").append(whereObject.getString("condition")).append("%' ");
+                where.append("or t9.city like'%").append(whereObject.getString("condition")).append("%' ");
+                where.append("or t9.county like'%").append(whereObject.getString("condition")).append("%' ");
+                where.append("or t9.address like'%").append(whereObject.getString("condition")).append("%' ");
+                where.append(")");
+            }
+            //状态
+            if (whereObject.containsKey("status") && !"".equals(whereObject.getString("status"))) {
+                JSONArray array = whereObject.getJSONArray("status");
+                if (array.size() > 0) {
+                    String sql = " and(t1.status in" + array.toJSONString() + ")";
+                    sql = sql.replace("[", "(").replace("]", ")");
+                    where.append(sql);
+                }
+            }
+            if (whereObject.containsKey("type") && !"".equals(whereObject.getString("type"))) {
+                where.append(" and(");
+                where.append("t1.type like'%").append(whereObject.getString("type")).append("%' ");
+                where.append(")");
+            }
+            if (whereObject.containsKey("shoppingtype") && !"".equals(whereObject.getString("shoppingtype"))) {
+                where.append(" and(");
+                where.append("t1.shoppingtype like'%").append(whereObject.getString("shoppingtype")).append("%' ");
+                where.append(")");
+            }
+            if (whereObject.containsKey("begindate") && !"".equals(whereObject.getString("begindate"))) {
+                where.append(" and t1.createdate >='").append(whereObject.getString("begindate")).append("' ");
+            }
+            if (whereObject.containsKey("enddate") && !"".equals(whereObject.getString("enddate"))) {
+                where.append(" and t1.createdate <='").append(whereObject.getString("enddate")).append(" 23:59:59' ");
+            }
+            if (whereObject.containsKey("begindate2") && !"".equals(whereObject.getString("begindate2"))) {
+                where.append(" and t1.checkdate >='").append(whereObject.getString("begindate2")).append("' ");
+            }
+            if (whereObject.containsKey("enddate2") && !"".equals(whereObject.getString("enddate2"))) {
+                where.append(" and t1.checkdate <='").append(whereObject.getString("enddate2")).append(" 23:59:59' ");
+            }
+            if (whereObject.containsKey("saler_name") && !"".equals(whereObject.getString("saler_name"))) {
+                where.append(" and(");
+                where.append("t6.name like'%").append(whereObject.getString("saler_name")).append("%' ");
+                where.append("or t6.hrcode like'%").append(whereObject.getString("saler_name")).append("%' ");
+                where.append(")");
+            }
+        }
+        boolean isExport = content.getBooleanValue("isExport");
+
+        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_order",
+                        "sa_orderid", "sonum", "type", "status", "shoppingtype", "checkdate", "remarks", "billdate", "createdate")
+                .setTableAlias("t1");
+        querySQL.addJoinTable(JOINTYPE.left, "sa_customers", "t2", "t2.sa_customersid=t1.sa_customersid and t2.siteid=t1.siteid",
+                "sa_customersid");
+        querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise", "t3", "t3.sys_enterpriseid=t2.sys_enterpriseid and t3.siteid=t2.siteid");
+        querySQL.addJoinTable(JOINTYPE.left, "sa_agents", "t4", "t4.sa_agentsid=t1.sa_agentsid and t4.siteid=t1.siteid",
+                "sa_agentsid");
+        querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise", "t5", "t5.sys_enterpriseid=t4.sys_enterpriseid and t5.siteid=t4.siteid");
+        querySQL.addJoinTable(JOINTYPE.left, "sys_hr", "t6", "t6.hrid=t1.saler_hrid and t6.siteid=t1.siteid");
+        querySQL.addJoinTable(JOINTYPE.left, getAmountQuerySQL(), "t7", "t7.sa_orderid = t1.sa_orderid");
+        querySQL.addJoinTable(JOINTYPE.left, "sa_salearea", "t8", "t8.sa_saleareaid = t1.sa_saleareaid and t8.siteid = t1.siteid",
+                "areaname");
+        querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise_contacts", "t9", "t9.contactsid = t1.rec_contactsid and t9.siteid = t1.siteid",
+                "name", "province", "city", "county", "address", "remarks");
+
+        querySQL.addQueryFields("hospitalname", "t3.enterprisename");
+        querySQL.addQueryFields("agentname", "t5.enterprisename");
+        querySQL.addQueryFields("salename", "t6.name");
+        querySQL.addQueryFields("qty", "ifnull(t7.qty, 0)");
+        querySQL.addQueryFields("amount", "ifnull(t7.amount, 0)");
+        querySQL.addQueryFields("contactname", "ifnull(t9.name, 0)");
+
+        querySQL.setSiteid(siteid);
+        querySQL.setWhere(where.toString());
+        querySQL.setWhere("t1.deleted = 0");
+        if (!isExport) {
+            if (pageSorting.equals("''")) {
+                pageSorting = "CASE WHEN t1.STATUS='新建' THEN 1 WHEN t1.STATUS='提交' THEN 2 WHEN t1.STATUS='审核' THEN 3 WHEN t1.STATUS='关闭' THEN 4 ELSE 5 END,t1.createdate DESC";
+            }
+            querySQL.setPage(pageSize, pageNumber).setOrderBy(pageSorting);
+        }
+
+        Rows rows = querySQL.query();
+
+
+        for (Row row : rows) {
+            row.putIfAbsent("checkdate", "");
+        }
+
+        if (isExport) {
+            //去除不需要导出项
+            rows.getFieldList().remove("sa_orderid");
+            rows.getFieldList().remove("submitdate");
+            rows.getFieldList().remove("checkdate");
+            rows.getFieldList().remove("sys_enterpriseid");
+            //添加
+            rows.getFieldList().add("amount");
+            rows.getFieldList().add("qty");
+            Rows uploadRows = uploadExcelToObs("order", "订单列表", rows, getTitleMap());
+            return getSucReturnObject().setData(uploadRows).toString();
+        }
+
+        return getSucReturnObject().setData(rows).toString();
+    }
+
+    @API(title = "订货业务", apiversion = R.ID20221111145202.v1.class)
+    public String selectList() throws YosException, IOException {
+        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.sonum like'%").append(whereObject.getString("condition")).append("%' ");
+                where.append("or t9.province like'%").append(whereObject.getString("condition")).append("%' ");
+                where.append("or t9.city like'%").append(whereObject.getString("condition")).append("%' ");
+                where.append("or t9.county like'%").append(whereObject.getString("condition")).append("%' ");
+                where.append("or t9.address like'%").append(whereObject.getString("condition")).append("%' ");
+                where.append(")");
+            }
+            //状态
+            if (whereObject.containsKey("status") && !"".equals(whereObject.getString("status"))) {
+                JSONArray array = whereObject.getJSONArray("status");
+                if (array.size() > 0) {
+                    String sql = " and(t1.status in" + array.toJSONString() + ")";
+                    sql = sql.replace("[", "(").replace("]", ")");
+                    where.append(sql);
+                }
+            }
+            if (whereObject.containsKey("type") && !"".equals(whereObject.getString("type"))) {
+                where.append(" and(");
+                where.append("t1.type like'%").append(whereObject.getString("type")).append("%' ");
+                where.append(")");
+            }
+            if (whereObject.containsKey("shoppingtype") && !"".equals(whereObject.getString("shoppingtype"))) {
+                where.append(" and(");
+                where.append("t1.shoppingtype like'%").append(whereObject.getString("shoppingtype")).append("%' ");
+                where.append(")");
+            }
+            if (whereObject.containsKey("begindate") && !"".equals(whereObject.getString("begindate"))) {
+                where.append(" and t1.createdate >='").append(whereObject.getString("begindate")).append("' ");
+            }
+            if (whereObject.containsKey("enddate") && !"".equals(whereObject.getString("enddate"))) {
+                where.append(" and t1.createdate <='").append(whereObject.getString("enddate")).append(" 23:59:59' ");
+            }
+            if (whereObject.containsKey("begindate2") && !"".equals(whereObject.getString("begindate2"))) {
+                where.append(" and t1.checkdate >='").append(whereObject.getString("begindate2")).append("' ");
+            }
+            if (whereObject.containsKey("enddate2") && !"".equals(whereObject.getString("enddate2"))) {
+                where.append(" and t1.checkdate <='").append(whereObject.getString("enddate2")).append(" 23:59:59' ");
+            }
+            if (whereObject.containsKey("saler_name") && !"".equals(whereObject.getString("saler_name"))) {
+                where.append(" and(");
+                where.append("t6.name like'%").append(whereObject.getString("saler_name")).append("%' ");
+                where.append("or t6.hrcode like'%").append(whereObject.getString("saler_name")).append("%' ");
+                where.append(")");
+            }
+        }
+
+        ArrayList<Long> userids = new ArrayList<>();
+        userids.add(userid);
+        //下级区域
+        userids.addAll(DataTeam.getSubAreaUserIds(this));
+        //获取代理
+        userids.addAll(Proxy.getProxyUserids(this));
+
+        QuerySQL agentQuerySQL = SQLFactory.createQuerySQL(this, "sys_enterprise_tradefield", "sa_agentsid").setTableAlias("t1");
+        agentQuerySQL.addJoinTable(JOINTYPE.inner, "sys_hr", "t2", "t2.siteid=t1.siteid AND t2.hrid=t1.hrid");
+        agentQuerySQL.setSiteid(siteid);
+        agentQuerySQL.setWhere("t2.userid", userids);
+
+        QuerySQL customerQuerySQL = SQLFactory.createQuerySQL(this, "sys_datateam", "ownerid");
+        customerQuerySQL.setSiteid(siteid);
+        customerQuerySQL.setWhere("ownertable", "sa_customers");
+        customerQuerySQL.setWhere("userid", userids);
+
+        String sql = " and ( t1.sa_customersid in (" + customerQuerySQL.getSQL() + ") or t1.sa_agentsid in (" + agentQuerySQL.getSQL() + "))";
+
+        where.append(sql);
+
+
+        boolean isExport = content.getBooleanValue("isExport");
+
+        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_order",
+                        "sa_orderid", "sonum", "type", "status", "shoppingtype", "checkdate", "remarks", "billdate", "createdate")
+                .setTableAlias("t1");
+        querySQL.addJoinTable(JOINTYPE.left, "sa_customers", "t2", "t2.sa_customersid=t1.sa_customersid and t2.siteid=t1.siteid",
+                "sa_customersid");
+        querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise", "t3", "t3.sys_enterpriseid=t2.sys_enterpriseid and t3.siteid=t2.siteid");
+        querySQL.addJoinTable(JOINTYPE.left, "sa_agents", "t4", "t4.sa_agentsid=t1.sa_agentsid and t4.siteid=t1.siteid",
+                "sa_agentsid");
+        querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise", "t5", "t5.sys_enterpriseid=t4.sys_enterpriseid and t5.siteid=t4.siteid");
+        querySQL.addJoinTable(JOINTYPE.left, "sys_hr", "t6", "t6.hrid=t1.saler_hrid and t6.siteid=t1.siteid");
+        querySQL.addJoinTable(JOINTYPE.left, getAmountQuerySQL(), "t7", "t7.sa_orderid = t1.sa_orderid");
+        querySQL.addJoinTable(JOINTYPE.left, "sa_salearea", "t8", "t8.sa_saleareaid = t1.sa_saleareaid and t8.siteid = t1.siteid",
+                "areaname");
+        querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise_contacts", "t9", "t9.contactsid = t1.rec_contactsid and t9.siteid = t1.siteid",
+                "name", "province", "city", "county", "address", "remarks");
+
+        querySQL.addQueryFields("hospitalname", "t3.enterprisename");
+        querySQL.addQueryFields("agentname", "t5.enterprisename");
+        querySQL.addQueryFields("salename", "t6.name");
+        querySQL.addQueryFields("qty", "ifnull(t7.qty, 0)");
+        querySQL.addQueryFields("amount", "ifnull(t7.amount, 0)");
+        querySQL.addQueryFields("contactname", "ifnull(t9.name, 0)");
+
+        querySQL.setSiteid(siteid);
+        querySQL.setWhere(where.toString());
+        querySQL.setRoleDataLimit(false);
+        querySQL.setWhere("t1.deleted = 0");
+        if (!isExport) {
+            if (pageSorting.equals("''")) {
+                pageSorting = "CASE WHEN t1.STATUS='新建' THEN 1 WHEN t1.STATUS='提交' THEN 2 WHEN t1.STATUS='审核' THEN 3 WHEN t1.STATUS='关闭' THEN 4 ELSE 5 END,t1.createdate DESC";
+            }
+            querySQL.setPage(pageSize, pageNumber).setOrderBy(pageSorting);
+        }
+
+        Rows rows = querySQL.query();
+
+
+        for (Row row : rows) {
+            row.putIfAbsent("checkdate", "");
+        }
+
+        if (isExport) {
+            //去除不需要导出项
+            rows.getFieldList().remove("sa_orderid");
+            rows.getFieldList().remove("submitdate");
+            rows.getFieldList().remove("checkdate");
+            rows.getFieldList().remove("sys_enterpriseid");
+            //添加
+            rows.getFieldList().add("amount");
+            rows.getFieldList().add("qty");
+            Rows uploadRows = uploadExcelToObs("order", "订单列表", rows, getTitleMap());
+            return getSucReturnObject().setData(uploadRows).toString();
+        }
+        if (content.containsKey("systemclient")) {
+            systemclient = content.getStringValue("systemclient");
+        }
+        if (systemclient.equalsIgnoreCase("web")) {
+            return getSucReturnObject().setData(rows).toString();
+        }
+
+
+        SQLFactory sqlFactory = new SQLFactory(this, "订单-查询筛选出的价格");
+        sqlFactory.addParameter("siteid", siteid);
+        sqlFactory.addParameter_SQL("where", where);
+        Rows amountrows = dbConnect.runSqlQuery(sqlFactory);
+
+        return getSucReturnObject().setData(rows).setTips(amountrows.get(0).toJsonObject()).toString();
+    }
+
+    //返回导出的标题
+    public HashMap<String, String> getTitleMap() {
+        HashMap<String, String> titleMap = new HashMap<>();
+        titleMap.put("sonum", "订单编号");
+        titleMap.put("brandname", "品牌名称");
+        titleMap.put("type", "订单类型");
+        titleMap.put("tradefield", "领域");
+        titleMap.put("remarks", "备注");
+        titleMap.put("status", "状态");
+        titleMap.put("createdate", "创建时间");
+        titleMap.put("enterprisename", "经销商名称");
+        titleMap.put("abbreviation", "简称");
+        titleMap.put("name", "收货人");
+        titleMap.put("amount", "订单金额");
+        titleMap.put("qty", "订单数量");
+
+        return titleMap;
+    }
+
+    public QuerySQL getAmountQuerySQL() throws YosException {
+        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_orderitems",
+                "sa_orderid");
+        querySQL.addJoinTable(JOINTYPE.inner, "sa_order", "b", "b.sa_orderid = a.sa_orderid AND b.siteid = a.siteid ");
+        querySQL.addQueryFields("amount", "sum(amount)");
+        querySQL.addQueryFields("qty", "sum(qty)");
+        querySQL.setWhere("a.siteid", siteid);
+        querySQL.setWhere("b.deleted = 0 ");
+        querySQL.addGroupBy("a.sa_orderid").setTableAlias("a");
+        return querySQL;
+    }
+
+    @API(title = "新增或更新", apiversion = R.ID20221108111402.v1.class, intervaltime = 2000)
+    @CACHEING_CLEAN(apiClass = {Order.class, OrderItems.class, restcontroller.sale.order.Order.class})
+    public String insertOrUpdate() throws YosException {
+
+        ArrayList<String> sqlList = new ArrayList<>();
+        Long sa_orderid = content.getLongValue("sa_orderid");
+        Long sa_customersid = content.getLongValue("sa_customersid");
+        Long sa_agentsid = content.getLongValue("sa_agentsid");
+        String type = sa_customersid > 0 ? "医院订单" : "经销商订单";
+        Long sa_saleareaid = content.getLongValue("sa_saleareaid");
+        Long saler_hrid = content.getLong("saler_hrid");
+        if (type.equals("医院订单")) {
+            Rows rows = dbConnect.runSqlQuery("SELECT * from sa_customers where sa_customersid=" + sa_customersid);
+            if (rows.isNotEmpty()) {
+                sys_enterpriseid = rows.get(0).getLong("sys_enterpriseid");
+                sa_saleareaid = rows.get(0).getLong("sa_saleareaid");
+
+            }
+            rows = dbConnect.runSqlQuery("SELECT t2.hrid FROM sys_datateam t1 " +
+                    "INNER JOIN sys_hr t2 ON t2.userid=t1.userid AND t2.siteid=t1.siteid " +
+                    "WHERE ownertable='sa_customers' AND t1.siteid='" + siteid + "' AND t1.isleader=1 AND ownerid='" + sa_customersid + "'");
+            if (rows.isNotEmpty()) {
+                saler_hrid = rows.get(0).getLong("hrid");
+            }
+        }
+        if (type.equals("经销商订单")) {
+            Rows rows = dbConnect.runSqlQuery("SELECT * from sa_agents where sa_agentsid=" + sa_agentsid);
+            if (rows.isNotEmpty()) {
+                sys_enterpriseid = rows.get(0).getLong("sys_enterpriseid");
+            }
+        }
+        Long rec_contactsid = content.getLongValue("rec_contactsid");
+        if (rec_contactsid <= 0) {
+            rec_contactsid = getDefaultContactsid(sys_enterpriseid);
+        }
+        String billdate = content.getStringValueForDate("billdate", "yyyy-MM-dd", "null");
+        if (billdate.equals("null")) {
+            billdate = getDate_Str();
+        }
+
+        if (sa_orderid <= 0) {
+            sa_orderid = createTableID("sa_order");
+            InsertSQL insertSQL = SQLFactory.createInsertSQL(this, "sa_order");
+            insertSQL.setSiteid(siteid);
+            insertSQL.setUniqueid(sa_orderid);
+            insertSQL.setValue("sonum", createBillCode("orderbill"));
+            insertSQL.setValue("sa_customersid", sa_customersid);
+            insertSQL.setValue("sa_agentsid", sa_agentsid);
+            insertSQL.setValue("shoppingtype", content.getStringValue("shoppingtype"));
+            insertSQL.setValue("sa_saleareaid", sa_saleareaid);
+            insertSQL.setValue("deliverydate", content.getStringValueForDate("deliverydate", "yyyy-MM-dd", "null"));
+            insertSQL.setValue("saler_hrid", saler_hrid);
+            insertSQL.setValue("billdate", billdate);
+            insertSQL.setValue("sys_enterpriseid", sys_enterpriseid);
+            insertSQL.setValue("sa_contractid", content.getLongValue("sa_contractid"));
+            insertSQL.setValue("remarks", content.getStringValue("remarks"));
+            insertSQL.setValue("status", "新建");
+            insertSQL.setValue("type", type);
+            insertSQL.setValue("rec_contactsid", rec_contactsid);
+            sqlList.add(insertSQL.getSQL());
+            sqlList.add(DataContrlLog.createLog(this, "sa_order", sa_orderid, "新建", "新建订单成功").getSQL());
+        } else {
+            UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, "sa_order");
+            updateSQL.setSiteid(siteid);
+            updateSQL.setUniqueid(sa_orderid);
+            updateSQL.setValue("shoppingtype", content.getStringValue("shoppingtype"));
+            updateSQL.setValue("deliverydate", content.getStringValueForDate("deliverydate", "yyyy-MM-dd", "null"));
+            updateSQL.setValue("billdate", billdate);
+            updateSQL.setValue("remarks", content.getStringValue("remarks"));
+            updateSQL.setValue("rec_contactsid", rec_contactsid);
+            sqlList.add(updateSQL.getSQL());
+            sqlList.add(DataContrlLog.createLog(this, "sa_order", sa_orderid, "编辑", "编辑订单成功").getSQL());
+        }
+        dbConnect.runSqlUpdate(sqlList);
+        Rows rows = dbConnect.runSqlQuery("SELECT * from sa_order WHERE sa_orderid=" + sa_orderid);
+
+        return getSucReturnObject().setData(rows.isNotEmpty() ? rows.get(0) : new Row()).toString();
+    }
+
+    public Long getDefaultContactsid(Long sys_enterpriseid) throws YosException {
+        Long rec_contactsid = 0L;
+        SQLFactory sqlFactory = new SQLFactory(this, "查询经销商默认联系人");
+        sqlFactory.addParameter("siteid", siteid);
+        sqlFactory.addParameter_in("sys_enterpriseid", sys_enterpriseid);
+        sqlFactory.addParameter_in("sys_enterpriseids", Enterprise.getUpDown(this, sys_enterpriseid));
+        String sql = sqlFactory.getSQL(false);
+        Rows contactsRows = dbConnect.runSqlQuery(sql);
+        if (contactsRows.isNotEmpty()) {
+            rec_contactsid = contactsRows.get(0).getLong("contactsid");
+        }
+        return rec_contactsid;
+    }
+
+    @API(title = "详情", apiversion = R.ID20221108151302.v1.class)
+    public String selectDetail() throws YosException {
+        Long sa_orderid = content.getLong("sa_orderid");
+
+        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_order", "*")
+                .setTableAlias("t1");
+        querySQL.addJoinTable(JOINTYPE.left, "sa_customers", "t2", "t2.sa_customersid=t1.sa_customersid and t2.siteid=t1.siteid",
+                "sa_customersid");
+        querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise", "t3", "t3.sys_enterpriseid=t2.sys_enterpriseid and t3.siteid=t2.siteid");
+        querySQL.addJoinTable(JOINTYPE.left, "sa_agents", "t4", "t4.sa_agentsid=t1.sa_agentsid and t4.siteid=t1.siteid",
+                "sa_agentsid");
+        querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise", "t5", "t5.sys_enterpriseid=t4.sys_enterpriseid and t5.siteid=t4.siteid");
+        querySQL.addJoinTable(JOINTYPE.left, "sys_hr", "t6", "t6.hrid=t1.saler_hrid and t6.siteid=t1.siteid");
+        querySQL.addJoinTable(JOINTYPE.left, getAmountQuerySQL(), "t7", "t7.sa_orderid = t1.sa_orderid");
+        querySQL.addJoinTable(JOINTYPE.left, "sa_salearea", "t8", "t8.sa_saleareaid = t1.sa_saleareaid and t8.siteid = t1.siteid",
+                "areaname");
+        querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise_contacts", "t9", "t9.contactsid = t1.rec_contactsid and t9.siteid = t1.siteid",
+                "name", "province", "city", "county", "address", "remarks");
+        querySQL.addJoinTable(JOINTYPE.left, "sa_contract", "t10", "t10.sa_contractid = t1.sa_contractid and t10.siteid = t1.siteid");
+
+        querySQL.addQueryFields("hospitalname", "t3.enterprisename");
+        querySQL.addQueryFields("agentname", "t5.enterprisename");
+        querySQL.addQueryFields("salename", "t6.name");
+        querySQL.addQueryFields("qty", "ifnull(t7.qty, 0)");
+        querySQL.addQueryFields("amount", "ifnull(t7.amount, 0)");
+        querySQL.addQueryFields("contactname", "ifnull(t9.name, 0)");
+        querySQL.addQueryFields("contract_billno", "t10.billno");
+        querySQL.setUniqueid(sa_orderid);
+        querySQL.setSiteid(siteid);
+
+        Rows rows = querySQL.query();
+
+
+        Row row = rows.isNotEmpty() ? rows.get(0) : new Row();
+        //收货信息
+        row.put("contacts", beans.order.Order.getContactsRow(this, row.getLong("rec_contactsid")));
+        //收货信息
+        row.put("contactsEnterprise", beans.order.Order.getContactsEnterpriseRow(this, row.getLong("rec_contactsid")));
+
+
+        return getSucReturnObject().setData(row).toString();
+    }
+
+    @API(title = "订单中的选择医院列表", apiversion = R.ID2025102814083902.v1.class)
+    public String hospitalList() throws YosException {
+
+        String tablename = "sa_customers";
+        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.billno like'%").append(whereObject.getString("condition")).append("%' ");
+                where.append("or t1.province like'%").append(whereObject.getString("condition")).append("%' ");
+                where.append("or t1.city like'%").append(whereObject.getString("condition")).append("%' ");
+                where.append("or t1.county like'%").append(whereObject.getString("condition")).append("%' ");
+                where.append("or t1.address like'%").append(whereObject.getString("condition")).append("%' ");
+                where.append("or t2.enterprisename like'%").append(whereObject.getString("condition")).append("%' ");
+                where.append("or t2.abbreviation like'%").append(whereObject.getString("condition")).append("%' ");
+                where.append("or t6.name like'%").append(whereObject.getString("condition")).append("%' ");
+                where.append("or t8.depname like'%").append(whereObject.getString("condition")).append("%' ");
+                where.append(")");
+            }
+        }
+        where.append(" and ( t1.datastatus in (0,2) )");
+
+
+        //当前账号负责的、参与的,以及代理账号负责的医院
+        String where2 = "(" + DataTeam.getDataWhereStr(this, tablename, "t1", 8) + ")";
+
+
+        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_customers", "sa_customersid", "createby", "createdate",
+                "sys_enterpriseid", "status", "type", "tradingstatus", "datastatus", "billno", "province", "city", "county", "address", "stagename", "grade");
+        querySQL.setTableAlias("t1");
+        querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise", "t2", "t2.sys_enterpriseid = t1.sys_enterpriseid AND t2.siteid = t1.siteid", "enterprisename");
+        querySQL.addJoinTable(JOINTYPE.left, "sa_salearea", "t3", "t3.sa_saleareaid = t1.sa_saleareaid AND t3.siteid = t1.siteid", "areaname");
+        querySQL.addJoinTable(JOINTYPE.left, "sys_datateam", "t6", "t6.ownerid = t1.sa_customersid and t6.siteid = t1.siteid and t6.ownertable = 'sa_customers' and t6.isleader = 1");
+        querySQL.addJoinTable(JOINTYPE.left, "sys_hr", "t7", "t7.userid = t6.userid and t7.siteid = t6.siteid ");
+        querySQL.addJoinTable(JOINTYPE.left, "sys_department", "t8", "t8.departmentid = t7.departmentid and t8.siteid = t7.siteid ");
+        querySQL.addJoinTable(JOINTYPE.left, "sys_dataextend", "t10", "t1.siteid = t10.siteid and t1.sa_customersid = t10.ownerid and t10.ownertable = 'sa_customers'", "deletereason");
+        querySQL.setSiteid(siteid);
+        querySQL.setWhere(where);
+        querySQL.setWhere(where2);
+        querySQL.setPage(pageSize, pageNumber);
+
+        if (pageSorting.equals("''")) {
+            pageSorting = "t1.createdate desc";
+        }
+        querySQL.setOrderBy(pageSorting);
+
+        querySQL.setRoleDataLimit(false);
+        querySQL.withDeleteData(true);
+        Rows rows = querySQL.query();
+        RowsMap leaderRows = DataTeam.getLeaderWithoutHeadpic(this, "sa_customers", rows.toArrayList("sa_customersid")).toRowsMap("ownerid");
+        ArrayList<Long> ids = rows.toArrayList("sa_customersid", new ArrayList<>());
+        //标签
+        HashMap<Long, ArrayList<String>> tagList = DataTag.queryTag(this, tablename, ids, false);
+        //系统标签
+        HashMap<Long, ArrayList<String>> sysTagList = DataTag.queryTag(this, tablename, ids, true);
+        Rows stageRows = dbConnect.runSqlQuery("SELECT stagename,sequence from sa_devstage WHERE siteid='" + siteid + "' order by sequence");
+        RowsMap AgentRowsMap = getAgentRowsMap(ids);
+        for (Row row : rows) {
+            Long id = row.getLong("sa_customersid");
+            row.put("leader", leaderRows.get(String.valueOf(id)));
+            if (leaderRows.get(String.valueOf(id)).isNotEmpty()) {
+                row.put("name", leaderRows.get(String.valueOf(id)).get(0).getString("name"));
+                row.put("depname", leaderRows.get(String.valueOf(id)).get(0).getString("depname"));
+            }
+            ArrayList<String> tag = tagList.get(id) != null ? tagList.get(id) : new ArrayList<String>();
+            ArrayList<String> sys_tag = sysTagList.get(id) != null ? sysTagList.get(id) : new ArrayList<String>();
+            //非系统标签
+            row.put("tag", tag);
+            //系统标签
+            row.put("tag_sys", sys_tag);
+            //预估手术总量
+            row.putIfAbsent("totalop", 0);
+            //关键人
+            row.putIfAbsent("keyperson", "");
+            //签约经销商
+            Rows signagent = AgentRowsMap.getOrDefault(String.valueOf(id), new Rows());
+            row.putIfAbsent("signagent", StringUtils.join(signagent.toArray("enterprisename")));
+            String stagename = row.getString("stagename");
+            for (Row stageRow : stageRows) {
+                if (stagename.equals(stageRow.getString("stagename"))) {
+                    stageRow.put("active", 1);
+                }
+                stageRow.putIfAbsent("active", 0);
+            }
+            row.put("stages", stageRows);
+        }
+
+        return getSucReturnObject().setData(rows).toString();
+    }
+
+    public RowsMap getAgentRowsMap(List<Long> sa_customersids) throws YosException {
+        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_agents_hospital", "*").setTableAlias("t1");
+        querySQL.addJoinTable(JOINTYPE.left, "sa_agents", "t2", "t2.sa_agentsid = t1.sa_agentsid AND t2.siteid = t1.siteid");
+        querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise", "t3", "t3.sys_enterpriseid = t2.sys_enterpriseid AND t3.siteid = t2.siteid", "enterprisename");
+        querySQL.setSiteid(siteid);
+        querySQL.setWhere("t1.sa_customersid ", sa_customersids);
+        Rows rows = querySQL.query();
+        return rows.toRowsMap("sa_customersid");
+    }
+
+    public RowsMap getAreaRowsMap(ArrayList<Long> sa_agentsids) throws YosException {
+        if (sa_agentsids.size() == 0) {
+            return new RowsMap();
+        }
+
+        String sql = "SELECT DISTINCT t2.areaname,t1.sa_agentsid from sys_enterprise_tradefield t1 " +
+                "INNER JOIN sa_salearea t2 ON t2.sa_saleareaid=t1.sa_saleareaid " +
+                "WHERE t1.siteid='YOSTEST1' and t1.sa_agentsid in " + sa_agentsids;
+        sql = sql.replace("[", "(").replace("]", ")");
+
+        return dbConnect.runSqlQuery(sql).toRowsMap("sa_agentsid");
+    }
+
+    public RowsMap getSalerNameRowsMap(ArrayList<Long> sa_agentsids) throws YosException {
+        if (sa_agentsids.size() == 0) {
+            return new RowsMap();
+        }
+        String sql = "SELECT DISTINCT t2.name,t1.sa_agentsid from sys_enterprise_tradefield t1 " +
+                "INNER JOIN sys_hr t2 ON t2.hrid=t1.hrid " +
+                "WHERE t1.siteid='YOSTEST1' and t1.sa_agentsid in " + sa_agentsids;
+        sql = sql.replace("[", "(").replace("]", ")");
+
+        return dbConnect.runSqlQuery(sql).toRowsMap("sa_agentsid");
+    }
+
+    @API(title = "经销商列表", apiversion = R.ID2025102814092602.v1.class)
+    public String agentsList() 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.agentnum like'%").append(whereObject.getString("condition")).append("%' ");
+                where.append("or t2.enterprisename like'%").append(whereObject.getString("condition")).append("%' ");
+                where.append("or t2.province like'%").append(whereObject.getString("condition")).append("%' ");
+                where.append("or t2.city like'%").append(whereObject.getString("condition")).append("%' ");
+                where.append("or t2.county like'%").append(whereObject.getString("condition")).append("%' ");
+                where.append("or t2.address like'%").append(whereObject.getString("condition")).append("%' ");
+                where.append("or t3.erpagentnum like'%").append(whereObject.getString("condition")).append("%' ");
+                where.append(")");
+            }
+        }
+        where.append(" and t1.status !='作废' ");
+
+        Long sa_customersid = content.getLong("sa_customersid");
+        if(sa_customersid==0){
+            //当前账号授权的,以及代理账号授权的经销商。
+            ArrayList<Long> hrids=Proxy.getProxyHrids(this);
+            hrids.add(hrid);
+            String sql=" and (t1.sa_agentsid IN (SELECT sa_agentsid FROM sys_enterprise_tradefield WHERE hrid IN "+hrids+"))";
+            sql=sql.replace("]",")").replace("[","(");
+            where.append(sql);
+
+        }
+
+        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_agents",
+                        "sa_agentsid", "sys_enterpriseid", "cooperatetype").
+                setTableAlias("t1");
+        querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise", "t2", "t1.siteid = t2.siteid and t1.sys_enterpriseid = t2.sys_enterpriseid",
+                "enterprisename", "province", "city", "county", "address");
+
+        if(sa_customersid>0) {
+            querySQL.addJoinTable(JOINTYPE.inner, "sa_agents_hospital", "t9", "t9.sa_agentsid=t1.sa_agentsid and t9.siteid=t1.siteid", "sa_agents_hospitalid");
+            querySQL.setWhere("t9.sa_customersid", sa_customersid);
+        }
+        querySQL.setSiteid(siteid);
+        querySQL.setWhere(where);
+        querySQL.setPage(pageSize, pageNumber);
+        querySQL.setOrderBy("t1.createdate desc");
+        Rows rows = querySQL.query();
+
+        RowsMap areaRowsMap = getAreaRowsMap(rows.toArrayList("sa_agentsid", new ArrayList<>()));
+        for (Row row : rows) {
+            Rows areaRows = areaRowsMap.getOrDefault(row.getString("sa_agentsid"), new Rows());
+            row.put("areanames", StringUtils.join(areaRows.toArrayList("areaname"), ","));
+        }
+        return getSucReturnObject().setData(rows).toString();
+    }
+
+    @API(title = "合同列表", apiversion = R.ID2025102814112602.v1.class)
+    public String contractList() 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.billno like'%").append(whereObject.getString("condition")).append("%' ");
+                where.append("or t1.remarks like'%").append(whereObject.getString("condition")).append("%' ");
+                where.append("or t3.enterprisename like'%").append(whereObject.getString("condition")).append("%' ");
+                where.append("or t5.enterprisename like'%").append(whereObject.getString("condition")).append("%' ");
+                where.append("or t6.name like'%").append(whereObject.getString("condition")).append("%' ");
+                where.append(")");
+            }
+        }
+
+        Long sa_customersid = content.getLongValue("sa_customersid");
+        Long sa_agentsid = content.getLongValue("sa_agentsid");
+
+        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_contract",
+                "sa_contractid", "billno", "type", "begdate", "enddate", "createdate", "createby", "remarks", "signdate");
+        querySQL.setTableAlias("t1");
+        querySQL.addJoinTable(JOINTYPE.left, "sa_customers", "t2", "t2.sa_customersid=t1.sa_customersid and t2.siteid=t1.siteid");
+        querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise", "t3", "t3.sys_enterpriseid=t2.sys_enterpriseid and t3.siteid=t2.siteid");
+        querySQL.addJoinTable(JOINTYPE.left, "sa_agents", "t4", "t4.sa_agentsid=t1.sa_agentsid and t4.siteid=t1.siteid");
+        querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise", "t5", "t5.sys_enterpriseid=t4.sys_enterpriseid and t5.siteid=t4.siteid");
+        querySQL.addJoinTable(JOINTYPE.left, "sys_hr", "t6", "t6.hrid=t1.saler_hrid and t6.siteid=t1.siteid");
+        querySQL.setSiteid(siteid);
+        querySQL.setWhere(where);
+        if(sa_customersid>0) {
+            querySQL.setWhere("t2.sa_customersid", sa_customersid);
+            querySQL.setWhere("t1.type='医院协议'");
+        }else {
+            querySQL.setWhere("t4.sa_agentsid", sa_agentsid);
+            querySQL.setWhere("t1.type='经销商协议'");
+        }
+        querySQL.addQueryFields("hospitalname", "t3.enterprisename");
+        querySQL.addQueryFields("agentname", "t5.enterprisename");
+        querySQL.addQueryFields("salername", "t6.name");
+        querySQL.addQueryFields("status", "if(current_date < t1.begdate,'未生效',if(current_date > t1.enddate,'结束','生效'))");
+        querySQL.setPage(pageSize, pageNumber);
+        if (pageSorting.equals("''")) {
+            pageSorting = "t1.createdate desc";
+        }
+        querySQL.setOrderBy(pageSorting);
+
+        querySQL.withDeleteData(true);
+
+        Rows rows = querySQL.query();
+        ArrayList<Long> ids = rows.toArrayList("sa_contractid", new ArrayList<>());
+        RowsMap leaderRows = DataTeam.getLeader(this, "sa_contract", rows.toArrayList("sa_contractid", new ArrayList<>())).toRowsMap("ownerid");
+        //标签
+        HashMap<Long, ArrayList<String>> tagList = DataTag.queryTag(this, "sa_contract", ids, false);
+        //系统标签
+        HashMap<Long, ArrayList<String>> sysTagList = DataTag.queryTag(this, "sa_contract", ids, true);
+
+        for (Row row : rows) {
+            Long id = row.getLong("sa_contractid");
+            row.put("leader", leaderRows.get(row.getString("sa_contractid")));
+            ArrayList<String> tag = tagList.get(id) != null ? tagList.get(id) : new ArrayList<>();
+            ArrayList<String> sys_tag = sysTagList.get(id) != null ? sysTagList.get(id) : new ArrayList<>();
+            //非系统标签
+            row.put("tag", tag);
+            //系统标签
+            row.put("tag_sys", sys_tag);
+        }
+
+        return getSucReturnObject().setData(rows).toString();
+    }
+
+    @API(title = "经销商订单时选择业务员", apiversion = R.ID2025102815162702.v1.class)
+    public String chooseSalers() throws YosException {
+
+        Long sa_agentsid = content.getLongValue("sa_agentsid");
+
+
+        QuerySQL querySQ = SQLFactory.createQuerySQL(this, "sys_enterprise_tradefield", "*")
+                .setTableAlias("t1");
+        querySQ.addJoinTable(JOINTYPE.left, "sys_hr", "t2", "t2.hrid=t1.hrid and t2.siteid=t1.siteid",
+                "name", "position", "hrcode", "phonenumber");
+        querySQ.addJoinTable(JOINTYPE.left, "sa_salearea", "t3", "t3.sa_saleareaid=t1.sa_saleareaid and t3.siteid=t1.siteid",
+                "areaname");
+        querySQ.addJoinTable(JOINTYPE.left, "sys_department", "t4", "t4.departmentid=t2.departmentid and t4.siteid=t2.siteid",
+                "depname");
+        querySQ.setSiteid(siteid);
+        querySQ.setWhere("sa_agentsid", sa_agentsid);
+        querySQ.setPage(pageSize, pageNumber);
+        Rows rows = querySQ.query();
+
+        return getSucReturnObject().setData(rows).toString();
+    }
+
+
+}

+ 83 - 232
src/custom/restcontroller/webmanage/sale/order/OrderItems.java

@@ -4,6 +4,7 @@ import beans.Item.Item;
 import beans.accountbalance.Accountbalance;
 import beans.accountbalance.CashbillEntity;
 import beans.brand.Brand;
+import beans.datacontrllog.DataContrlLog;
 import beans.enterprise.Enterprise;
 import beans.itemclass.ItemClass;
 import beans.itemprice.ItemPrice;
@@ -54,135 +55,75 @@ public class OrderItems extends Controller {
     public String insertOrUpdate() throws YosException {
         //TODO 此处代码进行调整
         Long sa_orderid = content.getLong("sa_orderid");
-        Long sys_enterpriseid = content.getLong("sys_enterpriseid");
-        Long sa_contractid = content.getLongValue("sa_contractid");
+
         Rows orderRows = getOrderRows(this, sa_orderid);
         if (orderRows.isEmpty()) {
-            return getReturnObject().setCode("0400", new String[0]).toString();//数据不存在,无法添加
+            return getReturnObject().setCode("0400").toString();//数据不存在,无法添加
         }
         String status = orderRows.get(0).getString("status");
         if (status.equals("审核") || status.equals("关闭")) {
-            return getReturnObject().setCode("0401", new String[0]).toString();//【审核】【关闭】状态无法修改
+            return getReturnObject().setCode("0401").toString();//【审核】【关闭】状态无法修改
         }
 
-        sa_contractid = orderRows.get(0).getLong("sa_contractid");
 
-        String type = orderRows.get(0).getString("type");
         JSONArray items = content.getJSONArray("items");
 
 
         ArrayList<String> sqlList = new ArrayList<>();
 
+        RowsMap orderItemsMap = dbConnect.runSqlQuery("SELECT * from sa_orderitems  WHERE sa_orderid=" + sa_orderid + "  and siteid='" + siteid + "'").toRowsMap("itemid");
+
         for (Object obj : items) {
             JSONObject item = (JSONObject) obj;
             Long itemid = item.getLong("itemid");
             Long sa_orderitemsid = item.getLong("sa_orderitemsid");
             BigDecimal qty = item.getBigDecimalValue("qty");
-            SQLFactory sqlFactory = new SQLFactory(this, "订单商品明细_新增");
-            String needdate = item.getStringValue("needdate");
-            if (sa_orderitemsid <= 0) {
-                Rows rows = dbConnect.runSqlQuery("SELECT * from sa_orderitems WHERE siteid='" + siteid + "' and itemid=" + itemid + " and sa_orderid=" + sa_orderid);
-                if (rows.isEmpty()) {
-                    sa_orderitemsid = createTableID("sa_orderitems");
-                } else {
-                    String itemname = rows.get(0).getString("itemname");
-                    return getReturnObject().setCode("0402", new String[]{itemname}).toString();//【" + itemname + "】商品已存在
-                }
-            } else {
-                sqlFactory = new SQLFactory(this, "订单商品明细_更新");
-//                if (needdate.equals("") && siteid.equals("NB")) {
-//                   return getReturnObject().setCode("0381",new String[0]).toString();//回复交期未填写
-//                }
-            }
-            sqlFactory.addParameter("siteid", siteid);
-            sqlFactory.addParameter("userid", userid);
-            sqlFactory.addParameter("username", username);
-            sqlFactory.addParameter("sa_orderitemsid", sa_orderitemsid);
-            sqlFactory.addParameter("sa_orderid", sa_orderid);
-            sqlFactory.addParameter("rowno", 1);
-            sqlFactory.addParameter("itemid", itemid);
-            sqlFactory.addParameter("remarks", item.getStringValue("remarks"));
+            BigDecimal price = item.getBigDecimalValue("price");
             //商品信息
             Row itemRow = getItemRow(itemid);
-            BigDecimal conversionrate = itemRow.getBigDecimal("conversionrate");
-            if (conversionrate.compareTo(BigDecimal.ZERO) <= 0) {
-                conversionrate = BigDecimal.valueOf(1);
-            }
-            sqlFactory.addParameter("itemno", itemRow.getString("itemno"));
-            sqlFactory.addParameter("itemname", itemRow.getString("itemname"));
-            sqlFactory.addParameter("model", itemRow.getString("model"));
-            sqlFactory.addParameter("unit", itemRow.getString("unit"));
-            sqlFactory.addParameter("auxunit", itemRow.getString("auxunit"));
-            sqlFactory.addParameter("batchcontrol", itemRow.getLong("batchcontrol"));
-            sqlFactory.addParameter("delivery", itemRow.getLong("delivery"));
-            sqlFactory.addParameter("supplier", itemRow.getString("supplier"));
-
-            sqlFactory.addParameter("stockno", item.getOrDefault("stockno", "null"));
-            sqlFactory.addParameter("position", item.getOrDefault("position", "null"));
-            sqlFactory.addParameter("batchno", item.getOrDefault("batchno", "null"));
-
-            String deliverydate = item.getStringValue("deliverydate");
-            //是否调整过价格
-            int ischanged = 0;
-            Rows rows = dbConnect.runSqlQuery("SELECT deliverydate,defaultprice,ischanged from sa_orderitems WHERE sa_orderitemsid =" + sa_orderitemsid);
-            if (deliverydate.isEmpty()) {
-                if (rows.isNotEmpty()) {
-                    deliverydate = rows.get(0).getString("deliverydate");
-                    ischanged = rows.get(0).getInteger("ischanged");
-                } else {
-                    deliverydate = "null";
-                }
+            if (orderItemsMap.containsKey(itemid.toString())) {
+                sa_orderitemsid = orderItemsMap.get(itemid.toString()).get(0).getLong("sa_orderitemsid");
             }
-            sqlFactory.addParameter("needdate", needdate.equals("") ? "null" : needdate);
-            sqlFactory.addParameter("deliverydate", deliverydate.equals("") ? "null" : deliverydate);
-            sqlFactory.addParameter("deliverydays", item.getIntValue("deliverydays"));
-            sqlFactory.addParameter("conversionrate", conversionrate);
-            //订购数量
-            sqlFactory.addParameter("qty", qty);
-            //辅助单位数量
-            sqlFactory.addParameter("auxqty", qty.divide(conversionrate, 4, BigDecimal.ROUND_HALF_UP));
-            BigDecimal defaultprice;
-            //价格
-            ItemPrice itemPrice = ItemPrice.getItemPrice(this, sys_enterpriseid, itemid);
-            if (!item.containsKey("defaultprice")) {
-                defaultprice = getPrice(type, itemPrice, sa_contractid);
-            } else {
-                defaultprice = item.getBigDecimalValue("defaultprice");
-                if (!type.equals("特殊订单") && defaultprice.compareTo(rows.get(0).getBigDecimal("defaultprice")) != 0 && defaultprice.compareTo(itemPrice.getContractprice()) < 0) {
-                    return getReturnObject().setCode("0403", new String[0]).toString();//调整价格不可小于协议价
-
-                }
 
-                if (ischanged == 0) {
-                    if (defaultprice.compareTo(getPrice(type, itemPrice, sa_contractid)) != 0) {
-                        ischanged = 1;
-                    }
-                }
+            if (sa_orderitemsid <= 0) {
+                sa_orderitemsid = createTableID("sa_orderitems");
+                InsertSQL insertSQL = SQLFactory.createInsertSQL(this, "sa_orderitems");
+                insertSQL.setSiteid(siteid);
+                insertSQL.setUniqueid(sa_orderitemsid);
+                insertSQL.setValue("sa_orderid", sa_orderid);
+                insertSQL.setValue("itemid", itemid);
+                insertSQL.setValue("qty", qty);
+                insertSQL.setValue("price", price);
+                insertSQL.setValue("amount", qty.multiply(price));
+                insertSQL.setValue("marketprice", itemRow.getBigDecimal("marketprice"));
+                insertSQL.setValue("itemno", itemRow.getString("itemno"));
+                insertSQL.setValue("itemname", itemRow.getString("itemname"));
+                insertSQL.setValue("model", itemRow.getString("model"));
+                insertSQL.setValue("unit", itemRow.getString("unit"));
+                insertSQL.setValue("auxunit", itemRow.getString("auxunit"));
+                insertSQL.setValue("remarks", item.getStringValue("remarks"));
+                sqlList.add(insertSQL.getSQL());
+//                String remarks = "产品:" + itemRow.getString("itemno") + ",数量:" + qty + ",单价:" + price+",备注:"+item.getStringValue("remarks");
+//                sqlList.add(DataContrlLog.createLog(this, "sa_order", sa_orderid, "添加产品", remarks).getSQL());
+            } else {
+                UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, "sa_orderitems");
+                updateSQL.setSiteid(siteid);
+                updateSQL.setUniqueid(sa_orderitemsid);
+                updateSQL.setValue("qty", qty);
+                updateSQL.setValue("price", price);
+                updateSQL.setValue("amount", qty.multiply(price));
+                updateSQL.setValue("remarks", item.getStringValue("remarks"));
+                sqlList.add(updateSQL.getSQL());
+//                String remarks = "产品:" + itemRow.getString("itemno") + ",数量:" + qty + ",单价:" + price+",备注:"+item.getStringValue("remarks");
+//                sqlList.add(DataContrlLog.createLog(this, "sa_order", sa_orderid, "编辑产品", remarks).getSQL());
             }
 
-            sqlFactory.addParameter("ischanged", ischanged);
-            //单价,折后价(元),取合同价
-            sqlFactory.addParameter("defaultprice", defaultprice);
-            //金额,折后金额(元)
-            sqlFactory.addParameter("defaultamount", defaultprice.multiply(qty));
-            //牌价、市场价(元),标准订单牌价取商品价格,项目订单取合同里的牌价
-            sqlFactory.addParameter("marketprice", itemPrice.getMarketprice());
-            sqlFactory.addParameter("price", defaultprice);
-            //折前金额(元)
-            sqlFactory.addParameter("amount", defaultprice.multiply(qty));
 
-            sqlList.add(sqlFactory.getSQL());
         }
         dbConnect.runSqlUpdate(sqlList);
         //重新排序
         updateRowNo(sa_orderid);
 
-        //调整价格(返利金)
-        if (orderRows.get(0).getBoolean("rebate_used")) {
-            setRebateAmount(this, sa_orderid, getMaxUsedRebateAmount(this, sa_orderid));
-            adjustLastRebateAmount(this, sa_orderid);
-        }
-
         return getSucReturnObject().toString();
     }
 
@@ -288,26 +229,15 @@ public class OrderItems extends Controller {
         boolean isExport = content.getBooleanValue("isExport");
 
         QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_orderitems",
-                "sa_orderitemsid", "itemid", "rowno", "batchcontrol", "itemno", "itemname", "model",
-                "price", "amount", "marketprice", "defaultprice", "defaultamount", "qty", "needdate", "deliedqty",
-                "undeliqty", "invoiceamount", "writeoffamount", "unit", "sa_orderid", "deliverydate", "remarks",
-                "batchno", "afterrebateprice", "afterrebateamount", "rewardtype", "stockno", "position", "logisticsqty", "bookedqty", "goodsstatus", "supplier","deliverydays");
-        querySQL.addJoinTable(JOINTYPE.left, "st_invbal_sale", "t2", "t2.siteid = t1.siteid AND t2.itemid = t1.itemid");
+                "*");
         querySQL.addJoinTable(JOINTYPE.left, "plm_item", "t3", "t3.itemid = t1.itemid and t3.siteid = t1.siteid and t3.isshow=1",
-                "orderminqty_auxunit", "orderminqty", "orderaddqty_auxunit", "orderaddqty", "spec", "packqty", "standards", "standardsmx");
+                "orderminqty_auxunit", "orderminqty", "orderaddqty_auxunit", "orderaddqty", "assistance", "goodstype", "explains");
         querySQL.addJoinTable(JOINTYPE.left, "plm_itemextend", "t4", "t4.itemid = t1.itemid and t4.siteid = t1.siteid",
-                "erpitemno", "material", "prodline", "device", "specalnote", "caliber", "nominalpressure");
+                "erpitemname", "erpitemno");
 
-        querySQL.addQueryFields("candispatchqty", "ifnull(t2.candispatchqty, 0)");
-        querySQL.addQueryFields("cansaleqty", "ifnull(t2.cansaleqty, 0)");
-        querySQL.addQueryFields("totalaty", "ifnull(t2.qty, 0)");
-        querySQL.addQueryFields("delivery", "ifnull(t3.delivery, 0)");
-        querySQL.addQueryFields("stockstatus", "(SELECT (case when t2.cansaleqty >= t3.stockstatus1 then '充足'when t2.cansaleqty <= t3.stockstatus2 then '缺货'else '紧缺' end))");
-        querySQL.addQueryFields("unlogisticsqty", "t1.qty-t1.logisticsqty");
 
         querySQL.setWhere(where.toString());
         querySQL.setWhere("t1.siteid", siteid);
-        querySQL.setWhere("t1.isclose = 0");
         querySQL.setWhere("t1.sa_orderid", sa_orderid);
         querySQL.setTableAlias("t1");
         if (!isExport) {
@@ -315,25 +245,18 @@ public class OrderItems extends Controller {
         }
         Rows rows = querySQL.query();
 
-        if (rows.toArrayList("sa_orderitemsid").size() > 0) {
-            String sql = "SELECT t1.sa_orderitemsid,sum(t1.qty) qty,sum(t1.amount) amount FROM sa_aftersalesmag_items t1 " +
-                    "INNER JOIN sa_aftersalesmag t2 ON t2.sa_aftersalesmagid=t1.sa_aftersalesmagid AND t2.siteid=t1.siteid " +
-                    "WHERE t1.siteid='" + siteid + "' AND t2.STATUS='复核' AND t1.sa_orderitemsid IN " + rows.toArrayList("sa_orderitemsid") + " GROUP BY t1.sa_orderitemsid";
-            sql = sql.replace("[", "(").replace("]", ")");
-            RowsMap aftersaleRowsMap = dbConnect.runSqlQuery(sql).toRowsMap("sa_orderitemsid");
-            for (Row row : rows) {
-                String sa_orderitemsid = row.getString("sa_orderitemsid");
-                row.put("aftersalesmagamount", aftersaleRowsMap.get(sa_orderitemsid).sum("amount"));
-                row.put("aftersalesmagqty", aftersaleRowsMap.get(sa_orderitemsid).sum("qty"));
-            }
-        } else {
-            for (Row row : rows) {
-                row.put("aftersalesmagamount", 0);
-                row.put("aftersalesmagqty", 0);
-            }
+        ArrayList<Long> ids = rows.toArrayList("itemid", new ArrayList<>());
+        // 商品品牌
+        RowsMap brandRowsMap = Brand.getBrandRowsMap(this, ids);
+        RowsMap itemclassRowsMap = ItemClass.getAllItemClassRowsMap(this, ids);
+        for (Row row : rows) {
+            Rows brandRows = brandRowsMap.getOrDefault(row.getString("itemid"), new Rows());
+            Rows itemclassRows = itemclassRowsMap.getOrDefault(row.getString("itemid"), new Rows());
+            row.put("brandname", StringUtils.join(brandRows.toArray("brandname"), ","));
+            row.put("itemclassname", StringUtils.join(itemclassRows.toArray("itemclassname"), ","));
         }
+
         if (!systemclient.equals("web")) {
-            ArrayList<Long> ids = rows.toArrayList("itemid", new ArrayList<>());
             //查询附件
             RowsMap attinfoRowsMap = getAttachmentUrl("plm_item", ids);
             for (Row row : rows) {
@@ -392,7 +315,6 @@ 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")) {
@@ -401,130 +323,60 @@ public class OrderItems extends Controller {
                 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 t3.material like'%").append(whereObject.getString("condition")).append("%' ");
-                where.append("or t3.erpitemno like'%").append(whereObject.getString("condition")).append("%' ");
+                where.append("or t1.assistance like'%").append(whereObject.getString("condition")).append("%' ");
+                where.append("or t1.explains like'%").append(whereObject.getString("condition")).append("%' ");
                 where.append(")");
             }
-            if (whereObject.containsKey("standards") && !"".equals(whereObject.getString("standards"))) {
+            if (whereObject.containsKey("model") && !"".equals(whereObject.getString("model"))) {
+                where.append(" and(");
+                where.append("t1.model like'%").append(whereObject.getString("model")).append("%' ");
+                where.append(")");
+            }
+            if (whereObject.containsKey("spec") && !"".equals(whereObject.getString("spec"))) {
                 where.append(" and(");
-                where.append("t1.standards like'%").append(whereObject.getString("standards")).append("%' ");
+                where.append("t1.spec like'%").append(whereObject.getString("spec")).append("%' ");
                 where.append(")");
             }
             if (whereObject.containsKey("itemclassid") && !"".equals(whereObject.getString("itemclassid"))) {
                 Long itemclassid = whereObject.getLong("itemclassid");
                 ArrayList<Long> itemclassids = ItemClass.getSubItemClassIds(this, itemclassid);
                 itemclassids.add(itemclassid);
-
                 String sql = " and t1.itemid in( SELECT itemid from  sa_itemsaleclass WHERE itemclassid  in " + itemclassids + " and siteid='" + siteid + "')";
                 sql = sql.replace("[", "(").replace("]", ")");
                 where.append(sql);
-
             }
-
-
             if (whereObject.containsKey("sa_brandid") && !"".equals(whereObject.getString("sa_brandid"))) {
                 where.append(" and t1.itemid in( SELECT DISTINCT itemid from sa_itemsaleclass WHERE itemclassid in (SELECT itemclassid from plm_itemclass WHERE sa_brandid = " + whereObject.getLong("sa_brandid") + " and siteid = '" + siteid + "'))");
             }
-            if (whereObject.containsKey("model") && !"".equals(whereObject.getString("model"))) {
-                where.append(" and(").append("t1.model like'%").append(whereObject.getString("model")).append("%')");
-            }
-            if (whereObject.containsKey("spec") && !"".equals(whereObject.getString("spec"))) {
-                where.append(" and(").append("t1.spec like'%").append(whereObject.getString("spec")).append("%') ");
-            }
-            if (whereObject.containsKey("material") && !"".equals(whereObject.getString("material"))) {
-                where.append(" and(").append("t3.material like'%").append(whereObject.getString("material")).append("%') ");
-            }
-        }
-        Long sa_orderid = content.getLong("sa_orderid");
 
-        Rows orderRows = getOrderRows(this, sa_orderid);
-        Long sa_brandid = 0L;
-        String tradefield = "";
-        String type = "";
-        Long sys_enterpriseid = 0L;
-        if (orderRows.isNotEmpty()) {
-            sa_brandid = orderRows.get(0).getLong("sa_brandid");
-            tradefield = orderRows.get(0).getString("tradefield");
-            type = orderRows.get(0).getString("type");
-            sys_enterpriseid = orderRows.get(0).getLong("sys_enterpriseid");
         }
-        SQLFactory sqlFactory = new SQLFactory(this, "查询可添加商品列表", pageSize, pageNumber, pageSorting);
-        switch (type) {
-            case "工具订单":
-                sqlFactory = new SQLFactory(this, "查询可添加商品列表_工具订单", pageSize, pageNumber, pageSorting);
-                break;
-            case "特殊订单":
-                sqlFactory = new SQLFactory(this, "查询可添加商品列表_特殊订单", pageSize, pageNumber, pageSorting);
-                sqlFactory.addParameter("tradefield", tradefield);
-                break;
-            default:
-                StringBuffer where2 = new StringBuffer(" 1=1 ");
-                Row enterpriseRow = Enterprise.getEnterprise(this, sys_enterpriseid);
-                boolean saleclassauth = enterpriseRow.getBoolean("saleclassauth");
-                boolean standardsauth = enterpriseRow.getBoolean("standardsauth");
-                //需要经营授权
-                if (saleclassauth) {
-                    ArrayList itemclassids = dbConnect.runSqlQuery(" SELECT itemclassid from sys_enterprise_saleclass WHERE sys_enterpriseid = " + sys_enterpriseid + "  and siteid = '" + siteid + "'")
-                            .toArrayList("itemclassid", new ArrayList<>());
-                    if (itemclassids.size() > 0) {
-                        ArrayList<Long> temp_itemclassids = ItemClass.getSubItemClassIds(this, itemclassids);
-                        temp_itemclassids.addAll(itemclassids);
-                        temp_itemclassids.stream().distinct();
-                        String sql = " and t5.itemclassid in (" + StringUtils.join(temp_itemclassids, ",") + ")";
-                        where2.append(sql);
-                    }
-                }
-                //查询标准
-                if (standardsauth) {
-                    Rows standardsRows = dbConnect.runSqlQuery("SELECT standards FROM sys_dataextend WHERE ownerid=" + sys_enterpriseid + " AND ownertable='sys_enterprise' AND siteid='" + siteid + "'");
-                    JSONArray standards = new JSONArray();
-                    if (standardsRows.isNotEmpty()) {
-                        standards = standardsRows.get(0).getJSONArray("standards");
-                    }
-                    standards.add("-1");
-                    String sql = " and t1.standards in " + standards;
-                    where.append(sql.replace("[", "(").replace("]", ")"));
 
-                }
-                sqlFactory.addParameter("sa_brandid", sa_brandid);
-                sqlFactory.addParameter("tradefield", tradefield);
-                sqlFactory.addParameter_SQL("where2", where2);
-                break;
-        }
-        sqlFactory.addParameter("siteid", siteid);
-        sqlFactory.addParameter_SQL("where", where);
-        String sql = sqlFactory.getSQL(false);
-        Rows rows = dbConnect.runSqlQuery(sql);
+        Long sa_orderid = content.getLongValue("sa_orderid");
+
+        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "plm_item",
+                        "itemid", "itemno", "itemname", "model", "spec", "assistance", "goodstype", "explains", "marketprice")
+                .setTableAlias("t1");
+        querySQL.addJoinTable(JOINTYPE.left, "plm_itemextend", "t2", "t2.itemid = t1.itemid AND t2.siteid = t1.siteid",
+                "erpitemname", "erpitemno");
+        querySQL.setSiteid(siteid);
+        querySQL.setWhere(where);
+        querySQL.setWhere("not exists(select 1 from  sa_orderitems where sa_orderid=" + sa_orderid + " and itemid=t1.itemid and siteid='" + siteid + "'  )");
+        querySQL.setPage(pageSize, pageNumber).setOrderBy(pageSorting);
+        Rows rows = querySQL.query();
+
+        // 附件
         ArrayList<Long> ids = rows.toArrayList("itemid", new ArrayList<>());
+        // 商品品牌
+        RowsMap brandRowsMap = Brand.getBrandRowsMap(this, ids);
+        RowsMap itemclassRowsMap = ItemClass.getAllItemClassRowsMap(this, ids);
         //查询附件
         RowsMap attinfoRowsMap = getAttachmentUrl("plm_item", ids);
-        //商品领域
-        RowsMap tradefieldRowsMap = beans.Item.Item.getTradefieldRowsMap(this, ids);
-        //品牌
-        RowsMap brandRowsMap = Brand.getBrandRowsMap(this, 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()));
-            row.put("brand", brandRowsMap.getOrDefault(row.getString("itemid"), new Rows()));
-            try {
-                ItemPrice itemPrice = ItemPrice.getItemPrice(this, sys_enterpriseid, row.getLong("itemid"));
-                row.put("oldprice", itemPrice.getPrice().toPlainString());
-                row.put("marketprice", itemPrice.getMarketprice());
-                row.put("gradeprice", itemPrice.getGraderateprice().toPlainString());
-                if (systemclient.equals("web")) {
-                    row.put("contractprice", 0);
-                } else {
-                    row.put("contractprice", itemPrice.getContractprice().toPlainString());
-                }
-            } catch (Exception e) {
-                e.printStackTrace();
-                row.put("oldprice", 0);
-                row.put("marketprice", 0);
-                row.put("gradeprice", 0);
-                row.put("contractprice", 0);
-            }
+            Rows brandRows = brandRowsMap.getOrDefault(row.getString("itemid"), new Rows());
+            Rows itemclassRows = itemclassRowsMap.getOrDefault(row.getString("itemid"), new Rows());
+            row.put("brandname", StringUtils.join(brandRows.toArray("brandname"), ","));
+            row.put("itemclassname", StringUtils.join(itemclassRows.toArray("itemclassname"), ","));
         }
         return getSucReturnObject().setData(rows).toString();
     }
@@ -752,7 +604,6 @@ public class OrderItems extends Controller {
     }
 
 
-
     /**
      * 获取当前订单的最大行号
      *

+ 0 - 18
src/custom/restcontroller/webmanage/sale/order/SQL/查询企业上下级.sql

@@ -12,22 +12,4 @@ FROM sa_agents t1
 WHERE t1.sys_enterpriseid = $sys_enterpriseid$
   AND t1.siteid = $siteid$
 union
-SELECT t1.sys_enterpriseid
-from sa_customers t1
-         INNER JOIN sa_customers t2 ON t1.parentid = t2.sa_customersid and t1.siteid = t2.siteid
-WHERE t1.sys_enterpriseid = $sys_enterpriseid$
-  AND t1.siteid = $siteid$
-union
-SELECT t1.sys_enterpriseid
-from sa_customers t1
-         INNER JOIN sa_customers t2 ON t1.sa_customersid = t2.parentid and t1.siteid = t2.siteid
-WHERE t1.sys_enterpriseid = $sys_enterpriseid$
-  AND t1.siteid = $siteid$
-union
-SELECT t1.sys_enterpriseid
-FROM sa_customers t1
-         INNER JOIN sa_agents t2 ON t1.sa_agentsid = t2.sa_agentsid AND t1.siteid = t2.siteid
-WHERE t2.sys_enterpriseid = $sys_enterpriseid$
-  AND t1.siteid = $siteid$
-union
 SELECT sys_enterpriseid from sa_agents WHERE sa_agentsid in (SELECT parentid from sa_agents WHERE sys_enterpriseid=$sys_enterpriseid$)

+ 1 - 2
src/custom/restcontroller/webmanage/sale/order/SQL/订单-修改业务员.sql

@@ -2,7 +2,6 @@ update sa_order
 set changeuserid=$userid$,
     changeby    = $username$,
     changedate  = current_time,
-    saler_hrid  = $saler_hrid$,
-    saler_userid=$saler_userid$
+    saler_hrid  = $saler_hrid$
 where siteid = $siteid$
   and sa_orderid = $sa_orderid$

Algunos archivos no se mostraron porque demasiados archivos cambiaron en este cambio