|
@@ -13,6 +13,7 @@ import common.data.RowsMap;
|
|
|
import common.data.SQLFactory;
|
|
|
import common.parameter.properties;
|
|
|
import org.apache.log4j.Logger;
|
|
|
+import restcontroller.webmanage.executorService.Executor;
|
|
|
import utility.ERPDocking;
|
|
|
import utility.tools.WebRequest;
|
|
|
|
|
@@ -40,7 +41,7 @@ public class DispatchAutoCloseService extends ServiceController {
|
|
|
RowsMap rowsMap1 = rowsdetail.toRowsMap("billno");
|
|
|
ArrayList<String> sqlList = new ArrayList<>();
|
|
|
ERPDocking erpDocking = new ERPDocking();
|
|
|
- JSONArray ErpSainvoices = erpDocking.queryErpSainvoices(10000, 1, new JSONArray(), "", "", "", false,false,true);
|
|
|
+ JSONArray ErpSainvoices = erpDocking.queryErpSainvoices(10000, 1, new JSONArray(), "", "", "", false, false, true);
|
|
|
JSONArray dispatchids = new JSONArray();
|
|
|
JSONArray unclosedispatchids = new JSONArray();
|
|
|
if (!ErpSainvoices.isEmpty()) {
|
|
@@ -123,7 +124,7 @@ public class DispatchAutoCloseService extends ServiceController {
|
|
|
sqlList.add(sqlFactory.getSQL());
|
|
|
} else {
|
|
|
unclosedispatchids.add(sa_dispatchid);
|
|
|
- logger.info("发货单自动关闭错误:" + resultobject.getString("errmsg")+"发货单id:"+sa_dispatchid);
|
|
|
+ logger.info("发货单自动关闭错误:" + resultobject.getString("errmsg") + "发货单id:" + sa_dispatchid);
|
|
|
}
|
|
|
if (!jsonArray.isEmpty()) {
|
|
|
for (Object object1 : jsonArray) {
|
|
@@ -138,8 +139,6 @@ public class DispatchAutoCloseService extends ServiceController {
|
|
|
dbConnect.runSqlUpdate(sqlList);
|
|
|
|
|
|
|
|
|
-
|
|
|
-
|
|
|
//判断当前单据是否已实际发完货,如果发完,则生把订单变为关闭状态
|
|
|
Rows orderRows = new Rows();
|
|
|
if (dispatchids.size() > 0) {
|
|
@@ -164,7 +163,7 @@ public class DispatchAutoCloseService extends ServiceController {
|
|
|
SQLFactory sqlFactory = new SQLFactory(this, "数据操作日志新增");
|
|
|
sqlFactory.addParameter("sys_contrllogid", createTableID("sys_contrllog"));
|
|
|
sqlFactory.addParameter("ownertable", "sa_order");
|
|
|
- sqlFactory.addParameter("ownerid", row.getLong("sa_orderid"));
|
|
|
+ sqlFactory.addParameter("ownerid", row.getLong("sa_orderid"));
|
|
|
sqlFactory.addParameter("action", "自动关闭");
|
|
|
sqlFactory.addParameter("remarks", "订单数量发完自动关闭");
|
|
|
sqlFactory.addParameter("actionuserid", "1");
|
|
@@ -179,14 +178,14 @@ public class DispatchAutoCloseService extends ServiceController {
|
|
|
//自动关闭erp发货单接口不成功,则手动关闭e订货的发货单(但状态为关闭)
|
|
|
ArrayList<String> uncloseSqlList = new ArrayList<>();
|
|
|
if (unclosedispatchids.size() > 0) {
|
|
|
- for (Object object:unclosedispatchids) {
|
|
|
+ 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='CCYOSG'");
|
|
|
- if(!dispatchRows.isEmpty()){
|
|
|
- billno=dispatchRows.get(0).getString("billno");
|
|
|
- }else{
|
|
|
- logger.info("发货单"+sa_dispatchid+"不存在:");
|
|
|
+ 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;
|
|
|
}
|
|
|
//手工关闭发货单
|
|
@@ -204,12 +203,12 @@ public class DispatchAutoCloseService extends ServiceController {
|
|
|
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+")" );
|
|
|
+ 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");
|
|
|
+ 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"));
|
|
|
+ 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"));
|
|
|
}
|
|
|
}
|
|
@@ -228,8 +227,8 @@ public class DispatchAutoCloseService extends ServiceController {
|
|
|
sqlFactory.addParameter("actionby", "admin");
|
|
|
sqlFactory.addParameter("siteid", "CCYOSG");
|
|
|
uncloseSqlList.add(sqlFactory.getSQL());
|
|
|
- }else{
|
|
|
- logger.info("发货单手工关闭错误:" + resultobject.getString("errmsg")+"发货单id:"+sa_dispatchid);
|
|
|
+ } 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;
|
|
@@ -258,6 +257,13 @@ public class DispatchAutoCloseService extends ServiceController {
|
|
|
}
|
|
|
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<>();
|
|
|
+ dataextra.put("extraUseridList", rows1.toArrayList("userid"));
|
|
|
+ Executor.sendEml(this, "dispatch_close", (Long) o, "CCYOSG", dataextra);
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
|