Преглед изворни кода

erp销售出库单审核关闭发货单及欠货库存导出bug修复

hu пре 2 година
родитељ
комит
c6472e629f

+ 1 - 1
src/custom/restcontroller/webmanage/sale/dispatch/dispatch.java

@@ -479,7 +479,7 @@ public class dispatch extends Controller {
         }
         Rows orderRows =dbConnect.runSqlQuery("select distinct t1.sa_orderid from sa_orderitems t1 inner join sa_dispatch_items t2 on t1.siteid=t2.siteid and t1.sa_orderitemsid=t2.sa_orderitemsid where t1.siteid='" + siteid + "' and t2.sa_dispatchid=" + sa_dispatchid);
         for (Row row:orderRows) {
-            dbConnect.runSqlUpdate("update sa_order set status='审核' where sa_orderid=" + row.getLong("sa_orderid") + " and siteid='" + siteid + "'");
+            sqlList.add("update sa_order set status='审核' where sa_orderid=" + row.getLong("sa_orderid") + " and siteid='" + siteid + "'");
         }
         SQLFactory sqlFactoryupdate = new SQLFactory(this, "发货单关闭");
         sqlFactoryupdate.addParameter("siteid", siteid);

+ 26 - 6
src/custom/restcontroller/webmanage/sale/invbal/invbal.java

@@ -211,11 +211,17 @@ public class invbal extends Controller {
 		JSONArray jsonArray =new JSONArray();
 		if(rows.toJsonArray("itemno").size()!=0){
 			if (Parameter.get("system.ccerp_dockswitch").equalsIgnoreCase("true") && siteid.equalsIgnoreCase("ccyosg")) {
-				jsonArray=erpDocking.getErpIcinvbalRows(200000, 1,rows.toJsonArray("itemno"));
+				if(rows.toJsonArray("itemno").size()<=2000){
+					jsonArray=erpDocking.getErpIcinvbalRows(200000, 1,rows.toJsonArray("itemno"));
+				}else {
+					jsonArray=erpDocking.getErpIcinvbalRows(200000, 1,new JSONArray());
+				}
+
 			}
 		}
 
 		if(!jsonArray.isEmpty()){
+
 			for (Object object:jsonArray) {
 				JSONObject jsonObject =(JSONObject)object;
 				if(rowsMap.containsKey(jsonObject.getString("fitemno"))){
@@ -240,11 +246,11 @@ public class invbal extends Controller {
 				row.put("undelqty", BigDecimal.ZERO.stripTrailingZeros().toPlainString());
 				row.put("qty", BigDecimal.ZERO.stripTrailingZeros().toPlainString());
 			}
-            if(sumUnAllQtyRowsMap.get(row.getString("itemno")).isNotEmpty()){
-                row.put("undelqtysum", sumUnAllQtyRowsMap.get(row.getString("itemno")).get(0).getBigDecimal("undeliqty").stripTrailingZeros().toPlainString());
-            }else {
-                row.put("undelqtysum", BigDecimal.ZERO.stripTrailingZeros().toPlainString());
-            }
+//            if(sumUnAllQtyRowsMap.get(row.getString("itemno")).isNotEmpty()){
+//                row.put("undelqtysum", sumUnAllQtyRowsMap.get(row.getString("itemno")).get(0).getBigDecimal("undeliqty").stripTrailingZeros().toPlainString());
+//            }else {
+//                row.put("undelqtysum", BigDecimal.ZERO.stripTrailingZeros().toPlainString());
+//            }
 
 
             if(!row.containsKey("invbalqty")){
@@ -253,14 +259,28 @@ public class invbal extends Controller {
 
 		}
 		for (Row row:rows) {
+
 			row.put("canbesent", (row.getBigDecimal("invbalqty").subtract(row.getBigDecimal("unsoldqty"))).stripTrailingZeros().toPlainString());
 			row.put("canbesale", ((row.getBigDecimal("invbalqty").subtract(row.getBigDecimal("unsoldqty"))).subtract(row.getBigDecimal("undelqtysum"))).stripTrailingZeros().toPlainString());
+			if(row.getString("itemno").equals("10901371")){
+				System.out.println(row.getString("canbesent"));
+				System.out.println(row.getString("canbesale"));
+				System.out.println(row.toJsonObject().toJSONString());
+			}
 		}
 		if(isExport){
 			//去除不需要导出项
 			rows.getFieldList().remove("itemid");
 			rows.getFieldList().remove("packageqty");
 			rows.getFieldList().remove("qty");
+			for (Row row:rows) {
+				if(row.getString("itemno").equals("10901371")){
+					System.out.println(row.getString("canbesent"));
+					System.out.println(row.getString("canbesale"));
+					 System.out.println(row.toJsonObject().toJSONString());
+				}
+
+			}
 			Rows uploadRows = uploadExcelToObs("invbal", "库存列表", rows, getTitleMap());
 			return getSucReturnObject().setData(uploadRows).toString();
 		}

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

@@ -783,8 +783,8 @@ public class OrderItems extends Controller {
                 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 + "')");
-                }
+                where2.append(" and t1.itemclassid in (SELECT itemclassid 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);

+ 35 - 1
src/custom/service/DispatchAutoCloseService.java

@@ -41,6 +41,7 @@ public class DispatchAutoCloseService extends ServiceController {
             ERPDocking erpDocking = new ERPDocking();
             JSONArray ErpSainvoices = erpDocking.queryErpSainvoices(10000, 1, new JSONArray(), "", "", "", true);
             JSONArray dispatchids = new JSONArray();
+            JSONArray unclosedispatchids = new JSONArray();
             if (!ErpSainvoices.isEmpty()) {
                 for (Object ErpSainvoice : ErpSainvoices) {
                     JSONObject erpSainvoice = (JSONObject) ErpSainvoice;
@@ -119,7 +120,8 @@ public class DispatchAutoCloseService extends ServiceController {
                         sqlFactory.addParameter("siteid", "CCYOSG");
                         sqlList.add(sqlFactory.getSQL());
                     } else {
-                        logger.info("发货单自动关闭错误:" + resultobject.getString("errmsg"));
+                        unclosedispatchids.add(sa_dispatchid);
+                        logger.info("发货单自动关闭错误:" + resultobject.getString("errmsg")+"发货单id:"+sa_dispatchid);
                     }
                     if (!jsonArray.isEmpty()) {
                         for (Object object1 : jsonArray) {
@@ -134,6 +136,8 @@ public class DispatchAutoCloseService extends ServiceController {
             dbConnect.runSqlUpdate(sqlList);
 
 
+
+
             //判断当前单据是否已实际发完货,如果发完,则生把订单变为关闭状态
             Rows orderRows = new Rows();
             if (dispatchids.size() > 0) {
@@ -160,6 +164,36 @@ public class DispatchAutoCloseService extends ServiceController {
                 }
             }
 
+            //自动关闭erp发货单接口不成功,则手动关闭e订货的发货单(但状态为关闭)
+            ArrayList<String> uncloseSqlList = new ArrayList<>();
+            if (unclosedispatchids.size() > 0) {
+                for (Object object:unclosedispatchids) {
+                    Long sa_dispatchid = Long.valueOf(object.toString());
+                    Rows rowsOrderDetail = dbConnect.runSqlQuery("select t1.undeliqty,t1.deliedqty,t1.qty,t1.sa_orderitemsid from sa_orderitems t1 where t1.sa_orderitemsid in (select sa_orderitemsid from sa_dispatch_items where sa_dispatchid="+ sa_dispatchid+")" );
+                    RowsMap rowsOrderDetailMap = rowsOrderDetail.toRowsMap("sa_orderitemsid");
+                    Rows rowsDispatchDetail = dbConnect.runSqlQuery("select t1.qty,t1.outwarehouseqty,t1.sa_orderitemsid,t1.rowno,t2.itemname from sa_dispatch_items t1 left join plm_item t2 on t1.itemid=t2.itemid and t1.siteid=t2.siteid  where t1.sa_dispatchid=" + sa_dispatchid);
+                    if (!rowsDispatchDetail.isEmpty()) {
+                        for (Row row : rowsDispatchDetail) {
+                            uncloseSqlList.add("update sa_orderitems set undeliqty=" + rowsOrderDetailMap.get(row.getLong("sa_orderitemsid")).get(0).getBigDecimal("undeliqty").add(row.getBigDecimal("qty").subtract(row.getBigDecimal("outwarehouseqty"))) + ",deliedqty=" + rowsOrderDetailMap.get(row.getLong("sa_orderitemsid")).get(0).getBigDecimal("deliedqty").subtract(row.getBigDecimal("qty").subtract(row.getBigDecimal("outwarehouseqty"))) + " where sa_orderitemsid=" + row.getLong("sa_orderitemsid"));
+                        }
+                    }
+//                    Rows orderRows =dbConnect.runSqlQuery("select distinct t1.sa_orderid from sa_orderitems t1 inner join sa_dispatch_items t2 on t1.siteid=t2.siteid and t1.sa_orderitemsid=t2.sa_orderitemsid where t1.siteid='" + siteid + "' and t2.sa_dispatchid=" + sa_dispatchid);
+//                    for (Row row:orderRows) {
+//                        sqlList.add("update sa_order set status='审核' where sa_orderid=" + row.getLong("sa_orderid") + " and siteid='" + siteid + "'");
+//                    }
+                    uncloseSqlList.add("update sa_dispatch set status='关闭',closedate=current_time,closeby='admin' where sa_dispatchid='" + sa_dispatchid + "' and siteid='CCYOSG'");
+                    SQLFactory sqlFactory = new SQLFactory(new DataContrlLog(), "数据操作日志新增");
+                    sqlFactory.addParameter("ownertable", "sa_dispatch");
+                    sqlFactory.addParameter("ownerid", sa_dispatchid);
+                    sqlFactory.addParameter("action", "自动关闭");
+                    sqlFactory.addParameter("remarks", "发货单自动关闭成功(未全部发完,未发完数量退回订单并自动关闭)");
+                    sqlFactory.addParameter("actionuserid", "1");
+                    sqlFactory.addParameter("actionby", "admin");
+                    sqlFactory.addParameter("siteid", "CCYOSG");
+                    uncloseSqlList.add(sqlFactory.getSQL());
+                }
+                dbConnect.runSqlUpdate(uncloseSqlList);
+            }
         }
     }