Explorar el Código

订单详情和订单详情明细列表接口调整

eganwu hace 2 años
padre
commit
a31f144e9a

+ 2 - 1
.gitignore

@@ -5,4 +5,5 @@
 /src/yos.properties
 /YOS.iml
 /yos.war
-/lib/sqlite-jdbc-3.32.3.3.jar
+/lib/sqlite-jdbc-3.32.3.3.jar
+/web/webcontent/

+ 43 - 19
src/custom/restcontroller/webmanage/sale/order/OrderItems.java

@@ -62,8 +62,8 @@ public class OrderItems extends Controller {
         Rows orderRows = getOrderRows(this, sa_orderid);
         if (orderRows.isEmpty()) {
             return getErrReturnObject().setErrMsg("数据不存在,无法添加").toString();
-        }else{
-            if(!orderRows.get(0).getString("status").equals("新建") &&  !orderRows.get(0).getString("status").equals("预提交") ){
+        } else {
+            if (!orderRows.get(0).getString("status").equals("新建") && !orderRows.get(0).getString("status").equals("预提交")) {
                 return getErrReturnObject().setErrMsg("非新建或预提交状态无法操作").toString();
             }
         }
@@ -358,7 +358,7 @@ public class OrderItems extends Controller {
         }
         JSONArray jsonArray = new JSONArray();
         BigDecimal orderSumamount = BigDecimal.ZERO;
-        Rows classamountrows = dbConnect.runSqlQuery("select t2.marketingcategory topitemclassid,t1.siteid,sum(ifnull(t1.amount,0)) sumamount  from sa_orderitems t1 inner join plm_item t2 on t1.itemid=t2.itemid and t1.siteid=t2.siteid   where t1.sa_orderid='" + sa_orderid + "' and t1.siteid='"+siteid+"' group by t2.marketingcategory,t1.siteid");
+        Rows classamountrows = dbConnect.runSqlQuery("select t2.marketingcategory topitemclassid,t1.siteid,sum(ifnull(t1.amount,0)) sumamount  from sa_orderitems t1 inner join plm_item t2 on t1.itemid=t2.itemid and t1.siteid=t2.siteid   where t1.sa_orderid='" + sa_orderid + "' and t1.siteid='" + siteid + "' group by t2.marketingcategory,t1.siteid");
         for (Row classamountrow : classamountrows) {
             orderSumamount = orderSumamount.add(classamountrow.getBigDecimal("sumamount"));
         }
@@ -661,14 +661,37 @@ public class OrderItems extends Controller {
             sys_enterpriseid = orderRows.get(0).getLong("sys_enterpriseid");
         }
         boolean isExport = content.getBooleanValue("isExport");
-        SQLFactory sqlFactory = new SQLFactory(this, "订单商品明细_列表", pageSize, pageNumber, pageSorting);
-        if (isExport) {
-            sqlFactory = new SQLFactory(this, "订单商品明细_列表");
+//        SQLFactory sqlFactory = new SQLFactory(this, "订单商品明细_列表", pageSize, pageNumber, pageSorting);
+//        if (isExport) {
+//            sqlFactory = new SQLFactory(this, "订单商品明细_列表");
+//        }
+//        sqlFactory.addParameter("siteid", siteid);
+//        sqlFactory.addParameter("sa_orderid", sa_orderid);
+//        sqlFactory.addParameter_SQL("where", where);
+//        Rows rows = dbConnect.runSqlQuery(sqlFactory);
+
+        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_orderitems");
+        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",
+                "orderminqty_auxunit", "orderminqty", "orderaddqty_auxunit", "orderaddqty", "spec", "iscustomsize", "widthschemeid", "lengthschemeid", "standards", "k3outcode");
+//        querySQL.addJoinTable(JOINTYPE.left, "plm_itemextend", "t4", "t4.itemid = t1.itemid and t4.siteid = t1.siteid",
+//                "erpitemno", "erpitemname", "material", "prodline", "device", "specalnote");
+        querySQL.addQueryFields("candispatchqty", "ifnull(t2.candispatchqty, 0)");
+        querySQL.addQueryFields("cansaleqty", "ifnull(t2.cansaleqty, 0)");
+        querySQL.addQueryFields("totalaty", "ifnull(t2.qty, 0)");
+        querySQL.addQueryFields("stockstatus", "(SELECT (CASE WHEN t2.cansaleqty>=t3.stockstatus1 THEN '充足' WHEN t2.cansaleqty<=t3.stockstatus2 THEN '缺货' ELSE '紧缺' END))");
+        querySQL.addQueryFields("packageqty", "ifnull(t3.packageqty, 0)");
+        querySQL.addQueryFields("delivery", "ifnull(t3.delivery, 0)");
+        querySQL.setWhere(where.toString()).setTableAlias("t1");
+        querySQL.setWhere("t1.siteid", siteid);
+        querySQL.setWhere("t1.sa_orderid", sa_orderid);
+        if (!isExport) {
+            querySQL.setPage(pageSize, pageNumber).setOrderBy(pageSorting);
         }
-        sqlFactory.addParameter("siteid", siteid);
-        sqlFactory.addParameter("sa_orderid", sa_orderid);
-        sqlFactory.addParameter_SQL("where", where);
-        Rows rows = dbConnect.runSqlQuery(sqlFactory);
+
+
+        Rows rows = querySQL.query();
+
         ArrayList<Long> ids = rows.toArrayList("itemid", new ArrayList<>());
         ArrayList<Long> itemnos = rows.toArrayList("itemno", new ArrayList<>());
         RowsMap rowsMap = rows.toRowsMap("itemno");
@@ -726,6 +749,9 @@ public class OrderItems extends Controller {
             }
             row.put("attinfos", attinfoRowsMap.getOrDefault(row.getString("itemid"), new Rows()));
             row.put("contractprice", 0);
+            //处理日期字段空的情况
+            row.putIfAbsent("needdate", "");
+            row.putIfAbsent("deliverydate", "");
         }
 
         if (isExport) {
@@ -863,7 +889,7 @@ public class OrderItems extends Controller {
 
         SQLFactory sqlFactory1 = new SQLFactory(this, "订单明细出库数量汇总");
         sqlFactory1.addParameter("siteid", siteid);
-        sqlFactory1.addParameter_in("sa_orderitemsids", rows.toArrayList("sa_orderitemsid",new ArrayList<>()));
+        sqlFactory1.addParameter_in("sa_orderitemsids", rows.toArrayList("sa_orderitemsid", new ArrayList<>()));
         Rows sumQtyRows = dbConnect.runSqlQuery(sqlFactory1);
         RowsMap sumQtyRowsMap = sumQtyRows.toRowsMap("sa_orderitemsid");
 
@@ -891,7 +917,7 @@ public class OrderItems extends Controller {
             if (sumQtyRowsMap.get(row.getString("sa_orderitemsid")).isNotEmpty()) {
                 row.put("unsoldqty", row.getBigDecimal("qty").subtract(sumQtyRowsMap.get(row.getString("sa_orderitemsid")).get(0).getBigDecimal("sumqty")));
             } else {
-                row.put("unsoldqty",  row.getBigDecimal("qty"));
+                row.put("unsoldqty", row.getBigDecimal("qty"));
             }
             if (!row.containsKey("invbalqty")) {
                 row.put("invbalqty", BigDecimal.ZERO);
@@ -964,14 +990,14 @@ public class OrderItems extends Controller {
     //查询订单列表(管理端)
     public QuerySQL queryAllListManage(String where) throws YosException {
         QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_orderitems",
-                "sa_orderitemsid","itemid","rowno","itemno","itemname","unit","qty","undeliqty","price","amount","remarks","customproperties","batchcontrol","model",
-                "conversionrate","marketprice","defaultprice","defaultamount","auxqty","needdate","deliedqty","rebateamount","invoiceamount","writeoffamount","auxunit","sa_orderid",
-                "deliverydate","returnqty","stockno","position","batchno","isfreeze");
+                "sa_orderitemsid", "itemid", "rowno", "itemno", "itemname", "unit", "qty", "undeliqty", "price", "amount", "remarks", "customproperties", "batchcontrol", "model",
+                "conversionrate", "marketprice", "defaultprice", "defaultamount", "auxqty", "needdate", "deliedqty", "rebateamount", "invoiceamount", "writeoffamount", "auxunit", "sa_orderid",
+                "deliverydate", "returnqty", "stockno", "position", "batchno", "isfreeze");
         querySQL.setTableAlias("t1");
         querySQL.addJoinTable(JOINTYPE.left, "plm_item", "t3", "t3.itemid = t1.itemid and t3.siteid = t1.siteid",
-                "orderminqty_auxunit","orderminqty","orderaddqty_auxunit","orderaddqty","spec","standards","packageqty","delivery","k3outcode");
+                "orderminqty_auxunit", "orderminqty", "orderaddqty_auxunit", "orderaddqty", "spec", "standards", "packageqty", "delivery", "k3outcode");
         querySQL.addJoinTable(JOINTYPE.left, "sa_order", "t5", "t5.sa_orderid = t1.sa_orderid and t5.siteid = t1.siteid",
-                "sonum","type","typemx","status","billdate","submitdate","checkdate","tradefield");
+                "sonum", "type", "typemx", "status", "billdate", "submitdate", "checkdate", "tradefield");
         querySQL.addJoinTable(JOINTYPE.left, "sa_agents", "t6", "t6.sys_enterpriseid = t5.sys_enterpriseid and t6.siteid = t5.siteid",
                 "agentnum");
         querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise", "t7", "t7.sys_enterpriseid = t5.sys_enterpriseid and t7.siteid = t5.siteid",
@@ -983,8 +1009,6 @@ public class OrderItems extends Controller {
     }
 
 
-
-
     //返回导出的标题
     public HashMap<String, String> getTitleMap() {
         HashMap<String, String> titleMap = new HashMap<>();

+ 1 - 0
src/custom/restcontroller/webmanage/sale/order/SQL/订单_详情.sql

@@ -35,6 +35,7 @@ SELECT t1.sa_orderid,
        t4.`name`,
        t1.remarks,
        t1.sa_accountclassinfos,
+       t1.sa_orderid_v,
        t5.enterprisename                                                                                   pay_enterprisename,
        (SELECT projectname from sa_project WHERE sa_projectid = t1.sa_projectid and siteid = t1.siteid)    projectname,
        t7.title                                                                                            contract_title,