From a9f7a73efb4fc132ad2c9a353d300b708430e961 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期三, 22 十月 2025 17:16:16 +0800
Subject: [PATCH] 3.销售订单出库上报完善 4.普通订单上报
---
src/main/java/com/zy/third/task/handler/OrderHandler.java | 2
src/main/java/com/zy/asrs/entity/OrderDetl.java | 43 +++++-----
src/main/java/com/zy/asrs/service/OrderDetlService.java | 2
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java | 33 +++++--
src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java | 2
src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java | 6 +
src/main/java/com/zy/asrs/task/OrderSyncScheduler.java | 31 +++++++
src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java | 64 +++++++++++++++-
src/main/java/com/zy/asrs/controller/OrderDetlController.java | 14 ++
src/main/webapp/static/js/orderDetl/orderDetl.js | 5
src/main/resources/mapper/asrs/OrderDetlMapper.xml | 10 ++
11 files changed, 170 insertions(+), 42 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/OrderDetlController.java b/src/main/java/com/zy/asrs/controller/OrderDetlController.java
index 1c3cd11..f245851 100644
--- a/src/main/java/com/zy/asrs/controller/OrderDetlController.java
+++ b/src/main/java/com/zy/asrs/controller/OrderDetlController.java
@@ -39,14 +39,22 @@
@RequestParam(required = false)String orderByField,
@RequestParam(required = false)String orderByType,
@RequestParam Map<String, Object> param){
+
EntityWrapper<OrderDetl> wrapper = new EntityWrapper<>();
- excludeTrash(param);
- convert(param, wrapper);
+ if(!Cools.isEmpty(param.get("abnormal"))&¶m.get("abnormal").equals("1")){
+ wrapper.addFilter("anfme < qty");
+ }else{
+ param.remove("abnormal");
+ excludeTrash(param);
+ convert(param, wrapper);
+ }
if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} else {
wrapper.orderBy("create_time", false);
}
+
wrapper.eq("status", 1);
- return R.ok(orderDetlService.selectPage(new Page<>(curr, limit), wrapper));
+ Page<OrderDetl> orderDetlPage = orderDetlService.selectPage(new Page<>(curr, limit), wrapper);
+ return R.ok(orderDetlPage);
}
@RequestMapping(value = "/orderDetl/pakout/list/auth")
diff --git a/src/main/java/com/zy/asrs/entity/OrderDetl.java b/src/main/java/com/zy/asrs/entity/OrderDetl.java
index 116f4c8..f0e9733 100644
--- a/src/main/java/com/zy/asrs/entity/OrderDetl.java
+++ b/src/main/java/com/zy/asrs/entity/OrderDetl.java
@@ -6,6 +6,7 @@
import com.baomidou.mybatisplus.enums.IdType;
import com.core.common.Cools;
import com.core.common.SpringUtils;
+import com.zy.asrs.service.DocTypeService;
import com.zy.asrs.service.OrderService;
import com.zy.common.utils.Synchro;
import com.zy.system.entity.User;
@@ -73,6 +74,12 @@
private Double qty;
/**
+ * 涓婃姤鏁伴噺
+ */
+ @ApiModelProperty(value= "涓婃姤鏁伴噺")
+ private Double units=0.0;
+
+ /**
* 鍟嗗搧缂栫爜
*/
@ApiModelProperty(value= "鍟嗗搧缂栫爜")
@@ -132,11 +139,6 @@
@ApiModelProperty(value= "sku")
private String sku;
- /**
- * 鍗曚綅閲�
- */
- @ApiModelProperty(value= "鍗曚綅閲�")
- private Double units;
/**
* 鏉$爜
@@ -216,9 +218,9 @@
private String suppCode;
/**
- * 鏄惁鎵规 1: 鏄� 0: 鍚�
+ * 绾㈣摑瀛�
*/
- @ApiModelProperty(value= "鏄惁鎵规 1: 鏄� 0: 鍚� ")
+ @ApiModelProperty(value= "绾㈣摑瀛�")
@TableField("be_batch")
private Integer beBatch;
@@ -243,9 +245,9 @@
private Integer source;
/**
- * 瑕佹眰妫�楠� 1: 鏄� 0: 鍚�
+ * 涓婃姤娆℃暟
*/
- @ApiModelProperty(value= "瑕佹眰妫�楠� 1: 鏄� 0: 鍚� ")
+ @ApiModelProperty(value= "涓婃姤娆℃暟")
private Integer inspect;
/**
@@ -362,6 +364,17 @@
return "";
}
+ public String getDanger$(){
+ DocTypeService service = SpringUtils.getBean(DocTypeService.class);
+ OrderService orderServicer=SpringUtils.getBean(OrderService.class);
+ Order order = orderServicer.selectByNo(this.orderNo);
+ DocType docType = service.selectById(order.getDocType());
+ if (!Cools.isEmpty(docType)){
+ return String.valueOf(docType.getDocName());
+ }
+ return null;
+ }
+
public String getBeBatch$(){
if (null == this.beBatch){ return null; }
switch (this.beBatch){
@@ -397,18 +410,6 @@
return "鍚�";
default:
return String.valueOf(this.inspect);
- }
- }
-
- public String getDanger$(){
- if (null == this.danger){ return null; }
- switch (this.danger){
- case 1:
- return "鏄�";
- case 0:
- return "鍚�";
- default:
- return String.valueOf(this.danger);
}
}
diff --git a/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java b/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java
index a5a2736..5a18d11 100644
--- a/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java
@@ -1,6 +1,7 @@
package com.zy.asrs.mapper;
import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.zy.asrs.entity.Order;
import com.zy.asrs.entity.OrderDetl;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@@ -41,4 +42,5 @@
int increaseWorkQtytest(@Param("orderNo")String orderNo, @Param("matnr")String matnr, @Param("batch")String batch, @Param("anfme")Double anfme);
+ List<OrderDetl> reportERPOrderDetl ();
}
diff --git a/src/main/java/com/zy/asrs/service/OrderDetlService.java b/src/main/java/com/zy/asrs/service/OrderDetlService.java
index d82c544..adc3b22 100644
--- a/src/main/java/com/zy/asrs/service/OrderDetlService.java
+++ b/src/main/java/com/zy/asrs/service/OrderDetlService.java
@@ -43,4 +43,6 @@
boolean increaseWorkQtytest(String orderNo, String matnr, String batch, Double anfme);
+
+ List<OrderDetl> reportERPOrderDetl();
}
diff --git a/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java
index dd11979..099f918 100644
--- a/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java
@@ -9,6 +9,7 @@
import com.zy.asrs.service.OrderDetlService;
import org.springframework.stereotype.Service;
+import java.util.Collections;
import java.util.List;
@Service("orderDetlService")
@@ -119,4 +120,9 @@
public boolean increaseWorkQtytest(String orderNo, String matnr, String batch, Double anfme) {
return this.baseMapper.increaseWorkQtytest(orderNo, matnr, batch, anfme) > 0;
}
+
+ @Override
+ public List<OrderDetl> reportERPOrderDetl() {
+ return this.baseMapper.reportERPOrderDetl();
+ }
}
diff --git a/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java b/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
index d93afce..bf46a96 100644
--- a/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
+++ b/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
@@ -2,7 +2,9 @@
import com.core.common.Cools;
import com.zy.asrs.entity.Order;
+import com.zy.asrs.entity.OrderDetl;
import com.zy.asrs.service.ApiLogService;
+import com.zy.asrs.service.OrderDetlService;
import com.zy.asrs.service.OrderService;
import com.zy.asrs.task.core.ReturnT;
import com.zy.asrs.task.handler.OrderSyncHandler;
@@ -28,6 +30,8 @@
private OrderService orderService;
@Autowired
private ApiLogService apiLogService;
+ @Autowired
+ private OrderDetlService orderDetlService;
@Scheduled(cron = "0 0 1 * * ? ")
public void clearApiLog(){
@@ -48,6 +52,9 @@
if (!Cools.isEmpty(erpReport) && erpReport.equals("true")) {
List<Order> orders = orderService.selectComplete();
for (Order order : orders) {
+ if(order.getDocType()== 81){
+ continue;
+ }
try {
ReturnT<String> result = orderSyncHandler.start(order);
if (!result.isSuccess()) {
@@ -61,4 +68,28 @@
}
}
+ /**
+ * 閿�鍞嚭搴撹鍗曟槑缁嗗畬鎴愪笂鎶�
+ */
+ @Scheduled(cron = "0/5 * * * * ? ")
+ @Async("orderThreadPool")
+ public void completeAndReport1(){
+ String erpReport = Parameter.get().getErpReport();
+ if (!Cools.isEmpty(erpReport) && erpReport.equals("true")) {
+ List<OrderDetl> orderDetls = orderDetlService.reportERPOrderDetl();
+ for (OrderDetl orderDetl : orderDetls) {
+ Order order = orderService.selectByNo(orderDetl.getOrderNo());
+ try {
+ ReturnT<String> result = orderSyncHandler.start1(order, orderDetl);
+ if (!result.isSuccess()) {
+ log.error("鍗曟嵁鏄庣粏[orderNo={}],[matnr={}],[batch={}]涓婃姤erp澶辫触", orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch());
+ }
+ }catch (Exception e){
+ e.printStackTrace();
+ log.error("鍗曟嵁鏄庣粏[orderNo={}],[matnr={}],[batch={}]涓婃姤erp澶辫触", orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch());
+ }
+ }
+ }
+ }
+
}
diff --git a/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java b/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
index 4bf9fec..9903c31 100644
--- a/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
@@ -1,5 +1,6 @@
package com.zy.asrs.task.handler;
+import com.core.common.Cools;
import com.core.common.DateUtils;
import com.core.exception.CoolException;
import com.zy.asrs.entity.DocType;
@@ -43,7 +44,6 @@
@Autowired
private ExdInstockTargetService exdInstockTargetService;
-
@Autowired
private ExdOutstockTargetService exdOutstockTargetService;
@@ -54,7 +54,7 @@
return SUCCESS;
}
List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
- if (orderDetls.isEmpty()){
+ if (orderDetls.isEmpty()) {
return SUCCESS;
}
// 鍏ュ簱瀹屾垚涓婃姤
@@ -85,8 +85,6 @@
exdOutstockTarget.setFbillno(orderDetl.getOrderNo());
if (order.getDocType() == 42) {
exdOutstockTarget.setFtrantype(41);
- } else if (order.getDocType() == 21) {
- exdOutstockTarget.setFtrantype(81);
} else {
exdOutstockTarget.setFtrantype(order.getDocType().intValue());
}
@@ -106,4 +104,62 @@
return SUCCESS;
}
+ @Transactional
+ public ReturnT<String> start1(Order order, OrderDetl orderDetl) {
+ DocType docType = docTypeService.selectById(order.getDocType());
+ if (null == docType) {
+ return SUCCESS;
+ }
+ List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
+ if (orderDetls.isEmpty()) {
+ return SUCCESS;
+ }
+
+ double count = orderDetl.getQty() - (Cools.isEmpty(orderDetl.getUnits()) ? 0.0 : orderDetl.getUnits());
+ if (docType.getPakout() == 1) {
+ // 鍑哄簱瀹屾垚涓婃姤
+ ExdOutstockTarget exdOutstockTarget = null;
+ exdOutstockTarget = new ExdOutstockTarget();
+ //璁㈠崟鍐呯爜
+ exdOutstockTarget.setFinterid(orderDetl.getDeadWarn());
+ //鍗曞彿 = erp璁㈠崟鍙�+鐗╂枡缂栧彿+涓婃姤娆℃暟
+ exdOutstockTarget.setFbillno(orderDetl.getOrderNo() + "--" + orderDetl.getMatnr() + "--" + orderDetl.getInspect());
+
+ //閮ㄩ棬ID
+ exdOutstockTarget.setFdeptid(0);
+ //渚涘簲鍟�/瀹㈡埛ID
+ exdOutstockTarget.setFsupplyid(0);
+ //鍒跺崟鐢ㄦ埛ID
+ exdOutstockTarget.setFbillerid(0);
+ //缁嗚〃ID
+ exdOutstockTarget.setFentryid(0);
+ //鐗╂枡ID
+ exdOutstockTarget.setFitemid(0);
+ //婧愬崟鏁伴噺
+ exdOutstockTarget.setFqtymust(0.0);
+ //鍑哄簱鏁伴噺
+ //鍗曟嵁绫诲瀷
+ exdOutstockTarget.setFtrantype(21);
+
+ //鍗曟嵁鏃ユ湡
+ exdOutstockTarget.setFdate(DateUtils.convert(order.getOrderTime()));
+ //绾㈣摑瀛�
+ exdOutstockTarget.setFrob(orderDetl.getBeBatch());
+ //鎿嶄綔鐢ㄦ埛
+ exdOutstockTarget.setFuserid(Integer.getInteger(orderDetl.getColor()));
+ //鍐欏叆鏃堕棿
+ exdOutstockTarget.setWritetime(new Date());
+ //鍐欏叆鑰�
+ exdOutstockTarget.setWritor("WMS");
+ //鐘舵��
+ exdOutstockTarget.setStatus(0);
+ if (exdOutstockTargetService.insert(exdOutstockTarget)) {
+ orderDetl.setInspect((Cools.isEmpty(orderDetl.getInspect()) ? 1 : (orderDetl.getInspect() + 1)));
+ orderDetl.setUnits(count + (Cools.isEmpty(orderDetl.getUnits()) ? 0.0 : orderDetl.getUnits()));
+ orderDetlService.updateById(orderDetl);
+ }
+ }
+ return SUCCESS;
+ }
+
}
diff --git a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
index 59d3db1..a8c9330 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -455,21 +455,32 @@
exdInstockTarge.setFtrantype(21);
exdInstockTarge.setFdate(new Date());
exdInstockTarge.setFrob(1);
-
- exdInstockTarge.setFqty(wrkDetl.getAnfme());
- exdInstockTarge.setFbatchno(bacode.getBatchno());
- exdInstockTarge.setFsourcebillno(bacode.getIcmono());
- exdInstockTarge.setFsourcetrantype(85);
-
- exdInstockTarge.setFentryid(i);
- exdInstockTarge.setFsmanagerid(Integer.valueOf(wrkDetl.getColor()));
- exdInstockTarge.setFfmanagerid(Integer.valueOf(wrkDetl.getColor()));
+ exdInstockTarge.setFdeptid(7502);
exdInstockTarge.setFbillerid(Integer.valueOf(wrkDetl.getColor()));
+ exdInstockTarge.setFfmanagerid(Integer.valueOf(wrkDetl.getColor()));
+ exdInstockTarge.setFsmanagerid(Integer.valueOf(wrkDetl.getColor()));
+ exdInstockTarge.setFentryid(i);
exdInstockTarge.setFitemid(Integer.parseInt(wrkDetl.getSku()));
-
+ exdInstockTarge.setFqty(wrkDetl.getAnfme());
+ //鍗曚环
+ exdInstockTarge.setFprice(0.0);
+ exdInstockTarge.setFbatchno(bacode.getBatchno());
+ //鍗曚环ID
+ exdInstockTarge.setFunitid(0);
+ //婧愬崟鍙�
+ exdInstockTarge.setFsourcebillno(bacode.getIcmono());
+ //婧愬崟缁嗚〃ID
exdInstockTarge.setFsourceentryid(i);
+ //婧愬崟鍗曟嵁绫诲瀷
+ exdInstockTarge.setFsourcetrantype(85);
+ //搴撲綅ID
+ exdInstockTarge.setFdcspid(0);
+ //浠撳簱ID
+
+ exdInstockTarge.setFdcstockid(wrkDetl.getBrand());
+
//exdInstockTarge.setFdcspid(wrkMast.getLocNo());
- //exdInstockTarge.setFdcstockid(wrkDetl.getBrand());
+
exdInstockTarge.setBarcode(wrkDetl.getBatch());
exdInstockTarge.setGross(bacode.getGross());
diff --git a/src/main/java/com/zy/third/task/handler/OrderHandler.java b/src/main/java/com/zy/third/task/handler/OrderHandler.java
index 27ec3ff..b48cf7d 100644
--- a/src/main/java/com/zy/third/task/handler/OrderHandler.java
+++ b/src/main/java/com/zy/third/task/handler/OrderHandler.java
@@ -134,7 +134,7 @@
orderDetl.setStatus(1);
orderDetl.setQty(0.0D);
orderDetl.setDeadWarn(detlDto.getFInterID());
- orderDetl.setInspect(detlDto.getFrob());
+ orderDetl.setBeBatch(detlDto.getFrob());
if (!orderDetlService.insert(orderDetl)) {
throw new CoolException("鐢熸垚鍗曟嵁鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�");
}
diff --git a/src/main/resources/mapper/asrs/OrderDetlMapper.xml b/src/main/resources/mapper/asrs/OrderDetlMapper.xml
index e2b9d92..44bb793 100644
--- a/src/main/resources/mapper/asrs/OrderDetlMapper.xml
+++ b/src/main/resources/mapper/asrs/OrderDetlMapper.xml
@@ -112,6 +112,16 @@
) t where t.row between ((#{pageNumber}-1)*#{pageSize}+1) and (#{pageNumber}*#{pageSize})
</select>
+ <select id="reportERPOrderDetl" resultMap="BaseResultMap">
+ select d.* from man_order_detl d
+ LEFT JOIN man_order o on o.order_no = d.order_no
+ where 1=1
+ and o.doc_type = 81
+ and d.work_qty = d.qty
+ and d.qty = d.anfme
+ and d.qty > d.units
+ </select>
+
<select id="getPakoutPageCount" parameterType="java.util.Map" resultType="java.lang.Integer">
select
count(1)
diff --git a/src/main/webapp/static/js/orderDetl/orderDetl.js b/src/main/webapp/static/js/orderDetl/orderDetl.js
index f6edb02..6a825c4 100644
--- a/src/main/webapp/static/js/orderDetl/orderDetl.js
+++ b/src/main/webapp/static/js/orderDetl/orderDetl.js
@@ -45,6 +45,7 @@
{type: 'checkbox'}
// ,{field: 'id', align: 'center',title: 'ID'}
,{field: 'orderNo', align: 'center',title: '璁㈠崟缂栫爜',sort:true}
+ ,{field: 'danger$', align: 'center',title: '璁㈠崟绫诲瀷', hide: false}
,{field: 'matnr', align: 'center',title: '鍟嗗搧缂栫爜',sort:true}
,{field: 'maktx', align: 'center',title: '鍟嗗搧鍚嶇О',sort:true}
,{field: 'anfme', align: 'center',title: '鏁伴噺',sort:true}
@@ -55,7 +56,7 @@
,{field: 'brand', align: 'center',title: '浜х嚎',sort:true, hide: true}
,{field: 'sku', align: 'center',title: '绛夌骇',sort:true, hide: true}
,{field: 'unit', align: 'center',title: '鍗曚綅', hide: true}
- ,{field: 'danger$', align: 'center',title: '璁㈠崟绫诲瀷', hide: true}
+
,{field: 'anfme$', align: 'center', title: '鐘舵��', templet: '#settleTpl', minWidth: 160, width: 160},
// ,{field: 'unitPrice', align: 'center',title: '鍗曚环'}
@@ -66,7 +67,7 @@
// ,{field: 'createBy$', align: 'center',title: '娣诲姞浜哄憳'}
{field: 'createTime$', align: 'center',title: '娣诲姞鏃堕棿'}
- ,{field: 'inspect$', align: 'center',title: '涓婃姤娆℃暟', width: 100}
+ ,{field: 'inspect', align: 'center',title: '涓婃姤娆℃暟', width: 100}
// ,{field: 'updateBy$', align: 'center',title: '淇敼浜哄憳'}
// ,{field: 'updateTime$', align: 'center',title: '淇敼鏃堕棿'}
// ,{field: 'memo', align: 'center',title: '澶囨敞'}
--
Gitblit v1.9.1