Quellcode durchsuchen

10121 配件核销单管理,处理作假虚报问题相关优化

wu vor 5 Tagen
Ursprung
Commit
218cfb1c08

+ 30 - 21
src/custom/restcontroller/webmanage/sale/order/OrderItems.java

@@ -505,27 +505,41 @@ public class OrderItems extends Controller {
         Long sa_orderid = content.getLong("sa_orderid");
         Long sa_orderitemsid = content.getLong("sa_orderitemsid");
         BigDecimal canoffqty = content.getBigDecimal("canoffqty");
+        JSONArray sa_tpartreimbursementids = new JSONArray();
+        if (content.containsKey("sa_tpartreimbursementids")) {
+            sa_tpartreimbursementids = content.getJSONArray("sa_tpartreimbursementids");
+        }
         Rows orderRows = dbConnect.runSqlQuery("SELECT status,sonum,type from sa_order WHERE sa_orderid=" + sa_orderid + " and siteid='" + siteid + "'");
-        Rows orderitemsRows = dbConnect.runSqlQuery("SELECT sa_orderitemsid,qty,billingstatus,rowno from sa_orderitems WHERE sa_orderid=" + sa_orderid + " and sa_orderitemsid='" + sa_orderitemsid + "'");
+        Rows orderitemsRows = dbConnect.runSqlQuery("SELECT sa_orderitemsid,qty,billingstatus,rowno,itemname,canoffqty from sa_orderitems WHERE sa_orderid=" + sa_orderid + " and sa_orderitemsid='" + sa_orderitemsid + "'");
         if (orderRows.isEmpty()) {
             return getErrReturnObject().setErrMsg("配件订单不存在").toString();
         }
-        if (!orderRows.get(0).getString("type").equals("配件订单")) {
+        Row orderRow = orderRows.get(0);
+        if (!orderRow.getString("type").equals("配件订单")) {
             return getErrReturnObject().setErrMsg("非配件订单无法更新可核销数").toString();
         }
-        if (orderRows.get(0).getString("status").equals("审核")) {
-            return getErrReturnObject().setErrMsg("配件订单【" + orderRows.get(0).getString("sonum") + "】已审核,无法更新可核销数").toString();
+        if (orderRow.getString("status").equals("审核")) {
+            return getErrReturnObject().setErrMsg("配件订单【" + orderRow.getString("sonum") + "】已审核,无法更新可核销数").toString();
         }
         if (orderitemsRows.isEmpty()) {
             return getErrReturnObject().setErrMsg("订单明细不存在").toString();
         }
-        if (!orderitemsRows.get(0).getString("billingstatus").equals("保内收费")) {
-            //return getErrReturnObject().setErrMsg("行号【"+orderitemsRows.get(0).getString("rowno")+"】为非保内收费配件,无法更新可核销数").toString();
-        }
-        if (orderitemsRows.get(0).getBigDecimal("qty").compareTo(canoffqty) < 0) {
+        Row orderitemsRow = orderitemsRows.get(0);
+        if (orderitemsRow.getBigDecimal("qty").compareTo(canoffqty) < 0) {
             return getErrReturnObject().setErrMsg("可核销数不可大于商品明细行数量").toString();
         }
+        String itemname = orderitemsRow.getString("itemname");
+        BigDecimal canoffqty_old = orderitemsRow.getBigDecimal("canoffqty");
+
         dbConnect.runSqlUpdate("update sa_orderitems set canoffqty=" + canoffqty + " where sa_orderitemsid=" + sa_orderitemsid);
+
+        DataContrlLog.createLog(this, "sa_order", sa_orderid, "更新可核销数", "【" + itemname + "】可核销数量 由" + canoffqty_old + " 变更为 " + canoffqty).insert();
+        for (Object obj : sa_tpartreimbursementids) {
+            Long sa_tpartreimbursementid = Long.parseLong(obj.toString());
+            DataContrlLog.createLog(this, "sa_tpartreimbursement", sa_tpartreimbursementid, "更新可核销数", "【" + itemname + "】可核销数量 由" + canoffqty_old + " 变更为 " + canoffqty).insert();
+        }
+
+
         return getSucReturnObject().toString();
     }
 
@@ -996,6 +1010,11 @@ public class OrderItems extends Controller {
         Rows itempriceRows = dbConnect.runSqlQuery(sqlFactory3);
         RowsMap itempriceRowsMap = itempriceRows.toRowsMap("itemno");
 
+        QuerySQL tpartreimbursement = SQLFactory.createQuerySQL(this, "sa_tpartreimbursementdetail", "sa_tpartreimbursementid", "sa_orderitemsid").setTableAlias("t1");
+        tpartreimbursement.addJoinTable(JOINTYPE.inner, "sa_tpartreimbursement", "t2", "t2.sa_tpartreimbursementid=t1.sa_tpartreimbursementid", "billno");
+        tpartreimbursement.setWhere("t1.sa_orderitemsid", rows.toArrayList("sa_orderitemsid"));
+        RowsMap tpartreimbursementRowsMap = tpartreimbursement.query().toRowsMap("sa_orderitemsid");
+
 
         //查询附件
         RowsMap attinfoRowsMap = getAttachmentUrl("plm_item", ids);
@@ -1010,19 +1029,6 @@ public class OrderItems extends Controller {
             } else {
                 row.put("originalprice", BigDecimal.ZERO);
             }
-//            if (sumQtyRowsMap.get(row.getString("itemno")).isNotEmpty()) {
-//                row.put("unsoldqty", sumQtyRowsMap.get(row.getString("itemno")).get(0).getBigDecimal("qty"));
-//            } else {
-//                row.put("unsoldqty", BigDecimal.ZERO);
-//            }
-//            if (sumUnQtyRowsMap.get(row.getString("itemno")).isNotEmpty()) {
-//                row.put("undeliqtysum", sumUnQtyRowsMap.get(row.getString("itemno")).get(0).getBigDecimal("undeliqty"));
-//            } else {
-//                row.put("undeliqtysum", BigDecimal.ZERO);
-//            }
-//            if (!row.containsKey("invbalqty")) {
-//                row.put("invbalqty", BigDecimal.ZERO);
-//            }
             row.put("attinfos", attinfoRowsMap.getOrDefault(row.getString("itemid"), new Rows()));
             row.put("contractprice", 0);
             //处理日期字段空的情况
@@ -1038,6 +1044,9 @@ public class OrderItems extends Controller {
                 row.put("cover", "");
             }
 
+            Long sa_orderitemsid = row.getLong("sa_orderitemsid");
+            row.put("tpartreimbursement", tpartreimbursementRowsMap.getOrDefault(sa_orderitemsid, new Rows()));
+
         }
         return getSucReturnObject().setData(rows).toString();
     }

+ 4 - 1
src/custom/restcontroller/webmanage/sale/tpartreimbursement/tpartreimbursement.java

@@ -350,7 +350,10 @@ public class tpartreimbursement extends Controller {
         for (int i = 0; i < rowsdetail.size(); i++) {
             if (rowsMap.containsKey(rowsdetail.get(i).getString("sa_orderitemsid"))) {
                 if (rowsMap.get(rowsdetail.get(i).getString("sa_orderitemsid")).get(0).getBigDecimal("qty").compareTo(rowsdetail.get(i).getBigDecimal("checkqty")) < 0) {
-                    return getErrReturnObject().setErrMsg("该配件核销单数量不符合要求,请检查").toString();
+                    return getErrReturnObject().setErrMsg("该配件核销单数量不符合要求,请检查订单明细数量").toString();
+                }
+                if (rowsMap.get(rowsdetail.get(i).getString("sa_orderitemsid")).get(0).getBigDecimal("canoffqty").compareTo(rowsdetail.get(i).getBigDecimal("checkqty")) < 0) {
+                    return getErrReturnObject().setErrMsg("该配件核销单数量不符合要求,请检查订单明细可核销数量").toString();
                 }
             } else {
                 return getErrReturnObject().setErrMsg("订单行不存在,请检查").toString();

+ 2 - 1
src/custom/restcontroller/webmanage/sale/tpartreimbursement/tpartreimbursementdetail.java

@@ -279,7 +279,8 @@ public class tpartreimbursementdetail extends Controller {
 
         QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_tpartreimbursementdetail", "sa_tpartreimbursementdetailid", "remarks", "sa_orderitemsid", "sa_tpartreimbursementid", "qty", "checkqty", "hongbillno");
         querySQL.setTableAlias("t1");
-        querySQL.addJoinTable(JOINTYPE.inner, "sa_orderitems", "t2", "t1.sa_orderitemsid = t2.sa_orderitemsid AND t1.siteid = t2.siteid", "price", "rowno", "cardno", "billingstatus");
+        querySQL.addJoinTable(JOINTYPE.inner, "sa_orderitems", "t2", "t1.sa_orderitemsid = t2.sa_orderitemsid AND t1.siteid = t2.siteid",
+                "price", "rowno", "cardno", "billingstatus","canoffqty","sa_orderid");
         querySQL.addJoinTable(JOINTYPE.left, "plm_item", "t3", "t2.itemid = t3.itemid AND t2.siteid = t3.siteid", "itemno", "itemname", "spec", "model");
         querySQL.addJoinTable(JOINTYPE.left, "sa_order", "t4", "t2.sa_orderid = t4.sa_orderid AND t2.siteid = t4.siteid", "sonum");
         querySQL.addJoinTable(JOINTYPE.left, "sa_warrantycard", "t5", "t2.cardno = t5.cardno AND t2.siteid = t5.siteid", "name", "phonenumber", "address");