浏览代码

物流管理新增的订单号需支持搜索bug及发货单自动关闭逻辑更新

hu 1 年之前
父节点
当前提交
6a6cca4e80

+ 1 - 1
src/custom/restcontroller/webmanage/sale/logistics/LSALogistics.java

@@ -195,7 +195,7 @@ public class LSALogistics extends Controller {
                 where.append("or t3.itemno like '%").append(whereObject.getString("condition")).append("%'");
                 where.append("or t3.spec like '%").append(whereObject.getString("condition")).append("%'");
                 where.append("or t3.model like '%").append(whereObject.getString("condition")).append("%'");
-                where.append("or t1.remarks like '%").append(whereObject.getString("condition")).append("%')");
+                where.append("or t1.remarks like '%").append(whereObject.getString("condition")).append("%'");
                 where.append("or t6.sonum like '%").append(whereObject.getString("condition")).append("%')");
             }
         }

+ 74 - 71
src/custom/service/DispatchAutoCloseService.java

@@ -192,88 +192,91 @@ 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());
-                        String billno = "";
-                        Rows dispatchRows = dbConnect.runSqlQuery("select * from sa_dispatch where sa_dispatchid=" + sa_dispatchid + " and siteid='" + siteid + "'");
-                        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(), erpDocking.getUrl(), 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 rowsDispatchDetailGroup = dbConnect.runSqlQuery("select sum(t1.qty) qty,sum(t1.outwarehouseqty) outwarehouseqty,t1.sa_orderitemsid,t1.siteid from sa_dispatch_items t1 left join plm_item t2 on t1.itemid=t2.itemid and t1.siteid=t2.siteid  where ifnull(t1.isclose,0)=0 and t1.sa_dispatchid=" + sa_dispatchid + " group by t1.sa_orderitemsid,t1.siteid");
-                            if (!rowsDispatchDetailGroup.isEmpty()) {
-                                for (Row row : rowsDispatchDetailGroup) {
-                                    logger.info("测试bug:" + "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"));
-                                    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"));
-                                }
+                if(siteid.equalsIgnoreCase("CCYOSG")){
+                    //自动关闭erp发货单接口不成功,则手动关闭e订货的发货单(但状态为关闭)
+                    ArrayList<String> uncloseSqlList = new ArrayList<>();
+                    if (unclosedispatchids.size() > 0) {
+                        for (Object object : unclosedispatchids) {
+                            Long sa_dispatchid = Long.valueOf(object.toString());
+                            String billno = "";
+                            Rows dispatchRows = dbConnect.runSqlQuery("select * from sa_dispatch where sa_dispatchid=" + sa_dispatchid + " and siteid='" + siteid + "'");
+                            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(), erpDocking.getUrl(), 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 rowsDispatchDetailGroup = dbConnect.runSqlQuery("select sum(t1.qty) qty,sum(t1.outwarehouseqty) outwarehouseqty,t1.sa_orderitemsid,t1.siteid from sa_dispatch_items t1 left join plm_item t2 on t1.itemid=t2.itemid and t1.siteid=t2.siteid  where ifnull(t1.isclose,0)=0 and t1.sa_dispatchid=" + sa_dispatchid + " group by t1.sa_orderitemsid,t1.siteid");
+                                if (!rowsDispatchDetailGroup.isEmpty()) {
+                                    for (Row row : rowsDispatchDetailGroup) {
+                                        logger.info("测试bug:" + "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"));
+                                        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='" + siteid + "'");
-                            SQLFactory sqlFactory = new SQLFactory(this, "数据操作日志新增");
-                            sqlFactory.addParameter("sys_contrllogid", createTableID("sys_contrllog"));
-                            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", siteid);
-                            uncloseSqlList.add(sqlFactory.getSQL());
-                        } else {
-                            logger.info("发货单手工关闭错误:" + resultobject.getString("errmsg") + "发货单id:" + sa_dispatchid);
-                            Rows erpupdatelogRows = dbConnect.runSqlQuery(
-                                    "select * from sys_erpupdatelog where ownertable='sa_dispatch' and type='手工关闭发货单' and ownerid=" + sa_dispatchid);
-                            SQLFactory sqlFactory;
-                            if (!erpupdatelogRows.isEmpty()) {
-                                sqlFactory = new SQLFactory(new UploadDataToERP_HY(), "erp上传日志更新");
-                                sqlFactory.addParameter("sys_erpupdatelogid", erpupdatelogRows.get(0).getLong("sys_erpupdatelogid"));
+                                uncloseSqlList.add("update sa_dispatch set status='关闭',closedate=current_time,closeby='admin' where sa_dispatchid='" + sa_dispatchid + "' and siteid='" + siteid + "'");
+                                SQLFactory sqlFactory = new SQLFactory(this, "数据操作日志新增");
+                                sqlFactory.addParameter("sys_contrllogid", createTableID("sys_contrllog"));
+                                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", siteid);
+                                uncloseSqlList.add(sqlFactory.getSQL());
                             } else {
-                                sqlFactory = new SQLFactory(new UploadDataToERP_HY(), "erp上传日志新增");
-                                sqlFactory.addParameter("sys_erpupdatelogid", createTableID("sys_erpupdatelog"));
+                                logger.info("发货单手工关闭错误:" + resultobject.getString("errmsg") + "发货单id:" + sa_dispatchid);
+                                Rows erpupdatelogRows = dbConnect.runSqlQuery(
+                                        "select * from sys_erpupdatelog where ownertable='sa_dispatch' and type='手工关闭发货单' and ownerid=" + sa_dispatchid);
+                                SQLFactory sqlFactory;
+                                if (!erpupdatelogRows.isEmpty()) {
+                                    sqlFactory = new SQLFactory(new UploadDataToERP_HY(), "erp上传日志更新");
+                                    sqlFactory.addParameter("sys_erpupdatelogid", erpupdatelogRows.get(0).getLong("sys_erpupdatelogid"));
+                                } else {
+                                    sqlFactory = new SQLFactory(new UploadDataToERP_HY(), "erp上传日志新增");
+                                    sqlFactory.addParameter("sys_erpupdatelogid", createTableID("sys_erpupdatelog"));
+                                }
+                                sqlFactory.addParameter("siteid", siteid);
+                                sqlFactory.addParameter("userid", 1);
+                                sqlFactory.addParameter("username", "admin");
+                                sqlFactory.addParameter("ownerid", sa_dispatchid);
+                                sqlFactory.addParameter("ownertable", "sa_dispatch");
+                                sqlFactory.addParameter("type", "手工关闭发货单");
+                                sqlFactory.addParameter("request", object.toString());
+                                sqlFactory.addParameter("response", resultobject.toJSONString());
+                                sqlFactory.addParameter("erpbillno", "");
+                                sqlFactory.addParameter("errmsg", resultobject.getString("errmsg"));
+                                sqlFactory.addParameter("status", resultobject.getString("errcode"));
+                                uncloseSqlList.add(sqlFactory.getSQL());
                             }
-                            sqlFactory.addParameter("siteid", siteid);
-                            sqlFactory.addParameter("userid", 1);
-                            sqlFactory.addParameter("username", "admin");
-                            sqlFactory.addParameter("ownerid", sa_dispatchid);
-                            sqlFactory.addParameter("ownertable", "sa_dispatch");
-                            sqlFactory.addParameter("type", "手工关闭发货单");
-                            sqlFactory.addParameter("request", object.toString());
-                            sqlFactory.addParameter("response", resultobject.toJSONString());
-                            sqlFactory.addParameter("erpbillno", "");
-                            sqlFactory.addParameter("errmsg", resultobject.getString("errmsg"));
-                            sqlFactory.addParameter("status", resultobject.getString("errcode"));
-                            uncloseSqlList.add(sqlFactory.getSQL());
-                        }
 
 
+                        }
+                        dbConnect.runSqlUpdate(uncloseSqlList);
                     }
-                    dbConnect.runSqlUpdate(uncloseSqlList);
                 }
+
                 for (Object o : dispatchids) {
                     Rows rows1 = dbConnect.runSqlQuery("select t2.userid from sa_dispatch t1 inner join sys_enterprise_hr t2 on t1.siteid=t2.siteid and t1.sys_enterpriseid=t2.sys_enterpriseid where sa_dispatchid=" + o);
                     HashMap<String, Object> dataextra = new HashMap<>();