瀏覽代碼

发货单自动关闭任务bug修复

hu 2 年之前
父節點
當前提交
ceabe49bcf
共有 1 個文件被更改,包括 46 次插入17 次删除
  1. 46 17
      src/custom/service/DispatchAutoCloseService.java

+ 46 - 17
src/custom/service/DispatchAutoCloseService.java

@@ -1,6 +1,7 @@
 package service;
 
 import beans.datacontrllog.DataContrlLog;
+import beans.parameter.Parameter;
 import beans.uploaderpdata.UploadDataToERP_HY;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
@@ -169,28 +170,56 @@ public class DispatchAutoCloseService extends ServiceController {
             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"));
-                        }
+                    String billno="";
+                    Rows dispatchRows = dbConnect.runSqlQuery("select * from sa_dispatch where sa_dispatchid="+sa_dispatchid+" and siteid='CCYOSG'");
+                    if(!dispatchRows.isEmpty()){
+                        billno=dispatchRows.get(0).getString("billno");
+                    }else{
+                        logger.info("发货单"+sa_dispatchid+"不存在:");
+                        continue;
                     }
+                    //手工关闭发货单
+                    JSONObject jsonobject = new JSONObject();
+                    JSONObject objectdetail = new JSONObject();
+                    jsonobject.put("access_token", "basicDrp");
+                    jsonobject.put("classname", "Sainvoice");
+                    jsonobject.put("method", "closeSainvoice");
+                    objectdetail.put("finvonum", billno);
+                    objectdetail.put("isManual", true);
+                    jsonobject.put("content", objectdetail);
+
+                    HashMap<String, String> map = new HashMap<>();
+                    map.put("content-Type", "application/json");
+                    String result = new WebRequest().doPost(jsonobject.toString(), "http://124.71.196.182:8001/rest/ws_v2/basicDrp", map);
+                    JSONObject resultobject = JSONObject.parseObject(result);
+                    if (resultobject.getString("errcode").equals("0")) {
+                        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());
+                        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());
+                    }else{
+                        logger.info("发货单手工关闭错误:" + resultobject.getString("errmsg")+"发货单id:"+sa_dispatchid);
+                    }
+
+
                 }
                 dbConnect.runSqlUpdate(uncloseSqlList);
             }