|
|
@@ -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);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|