From c82b47020ff5b0e76609454ab915afd0e27db199 Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期二, 01 七月 2025 13:47:29 +0800
Subject: [PATCH] #
---
src/main/webapp/static/js/inventoryCheckOrder/inventoryCheckOrder.js | 2
src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java | 115 ++++++++++++++--------
src/main/webapp/views/pakStore/locDetlCheckQuery.html | 5 +
src/main/java/com/zy/asrs/service/ReportToThirdService.java | 3
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 25 +++-
src/main/java/com/zy/asrs/task/ReportInventoryCheckOrdersScheduler.java | 69 +++++++------
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 48 +++++++++
src/main/java/com/zy/asrs/controller/MobileController.java | 7 +
src/main/java/com/zy/asrs/entity/InventoryCheckOrderDetl.java | 4
src/main/java/com/zy/asrs/service/MobileService.java | 2
10 files changed, 190 insertions(+), 90 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/MobileController.java b/src/main/java/com/zy/asrs/controller/MobileController.java
index a9cdf6e..bff7c10 100644
--- a/src/main/java/com/zy/asrs/controller/MobileController.java
+++ b/src/main/java/com/zy/asrs/controller/MobileController.java
@@ -683,4 +683,11 @@
return R.ok("鍑哄簱鎴愬姛");
}
+ @RequestMapping("/checkOut/submit/auth")
+ @ManagerAuth(memo = "鐩樼偣涓婃姤ERP")
+ public R checkOutSubmit(@RequestParam("orderId") Integer orderId) {
+ mobileService.checkOutSubmit(orderId, getUserId());
+ return R.ok("涓婃姤ERP鎴愬姛");
+ }
+
}
diff --git a/src/main/java/com/zy/asrs/entity/InventoryCheckOrderDetl.java b/src/main/java/com/zy/asrs/entity/InventoryCheckOrderDetl.java
index d59b78b..92ca301 100644
--- a/src/main/java/com/zy/asrs/entity/InventoryCheckOrderDetl.java
+++ b/src/main/java/com/zy/asrs/entity/InventoryCheckOrderDetl.java
@@ -58,6 +58,10 @@
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date ioTime;
+ @ApiModelProperty(value = "")
+ @TableField("cwarehouseid")
+ private String cwarehouseid;
+
public InventoryCheckOrderDetl() {
}
diff --git a/src/main/java/com/zy/asrs/service/MobileService.java b/src/main/java/com/zy/asrs/service/MobileService.java
index c1d97d0..de9c55d 100644
--- a/src/main/java/com/zy/asrs/service/MobileService.java
+++ b/src/main/java/com/zy/asrs/service/MobileService.java
@@ -67,4 +67,6 @@
void stockOut(OrderDetl orderDetl, BasDevp staNo, LocDetl locDetl,
Double curOutQty, Integer ioType, Long userId, Date now);
+
+ void checkOutSubmit(Integer orderId, Long userId);
}
diff --git a/src/main/java/com/zy/asrs/service/ReportToThirdService.java b/src/main/java/com/zy/asrs/service/ReportToThirdService.java
index 3a1a8af..9bd1923 100644
--- a/src/main/java/com/zy/asrs/service/ReportToThirdService.java
+++ b/src/main/java/com/zy/asrs/service/ReportToThirdService.java
@@ -13,6 +13,7 @@
boolean reportTkrk(String matnr, String batch, String orderNo, Double anfme);
- boolean reportCheckOrder(InventoryCheckOrder checkOrder);
+
+ boolean reportCheckOrder(String matnr, String batch);
}
diff --git a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
index dd58017..ed6c164 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -78,6 +78,8 @@
private ManLocDetlService manLocDetlService;
@Autowired
private ManLocDetlMapper manLocDetlMapper;
+ @Autowired
+ private ReportToThirdService reportToThirdService;
@Autowired
private InventoryCheckOrderService inventoryCheckOrderService;
@@ -851,7 +853,10 @@
List<WrkDetl> paramWrkDetls = JSON.parseArray(JSON.toJSONString(param.getWrkDetls()), WrkDetl.class);
for (WrkDetl wrkDetl : paramWrkDetls) {
String locNo = Cools.isEmpty(wrkMast.getLocNo()) ? wrkMast.getSourceLocNo() : wrkMast.getLocNo();
- List<InventoryCheckOrderDetl> checkOrderDetls = inventoryCheckOrderDetlService.selectList(new EntityWrapper<InventoryCheckOrderDetl>().eq("loc_no", locNo));
+ List<InventoryCheckOrderDetl> checkOrderDetls = inventoryCheckOrderDetlService.selectList(new EntityWrapper<InventoryCheckOrderDetl>()
+ .eq("loc_no", locNo)
+ .eq("area", wrkDetl.getWrkNo())
+ );
for (InventoryCheckOrderDetl checkOrderDetl : checkOrderDetls) {
if (wrkDetl.getMatnr().equals(checkOrderDetl.getMatnr()) && Cools.eq(wrkDetl.getBatch(), checkOrderDetl.getBatch())) {
checkOrderDetl.setCheckAnfme(wrkDetl.getAnfme());
@@ -1182,4 +1187,45 @@
throw new CoolException(locDetl.getLocNo() + "搴撲綅涓嶆槸鍦ㄥ簱鐘舵��");
}
}
+
+ @Override
+ public void checkOutSubmit(Integer orderId, Long userId) {
+ InventoryCheckOrder inventoryCheckOrder = inventoryCheckOrderService.selectOne(new EntityWrapper<InventoryCheckOrder>()
+ .eq("id", orderId));
+ if (inventoryCheckOrder == null) {
+ throw new CoolException("鐩樼偣鍗曚笉瀛樺湪");
+ }
+
+ if (!inventoryCheckOrder.getStatus().equals("1")) {
+ throw new CoolException("鐩樼偣鍗曠姸鎬佸凡涓婃姤");
+ }
+
+ List<InventoryCheckOrderDetl> checkOrderDetlList = inventoryCheckOrderDetlService.selectList(new EntityWrapper<InventoryCheckOrderDetl>()
+ .eq("order_no", inventoryCheckOrder.getOrderNo())
+ );
+ if (checkOrderDetlList.isEmpty()) {
+ throw new CoolException("鐩樼偣鍗曟棤鐗╂枡鏄庣粏");
+ }
+ InventoryCheckOrderDetl orderDetl = checkOrderDetlList.get(0);
+
+ List<InventoryCheckOrderDetl> checkOrderDetls = inventoryCheckOrderDetlService.selectList(new EntityWrapper<InventoryCheckOrderDetl>()
+ .eq("matnr", orderDetl.getMatnr())
+ .eq("batch", orderDetl.getBatch())
+ );
+
+ boolean complete = true;
+ for (InventoryCheckOrderDetl checkOrderDetl : checkOrderDetls) {
+ if (!checkOrderDetl.getStatus().equals("2")) {
+ complete = false;
+ }
+ }
+ if (complete) {
+ boolean result = reportToThirdService.reportCheckOrder(orderDetl.getMatnr(), orderDetl.getBatch());
+ if (!result) {
+ throw new CoolException("鐩樼偣鍗曚笂鎶ュけ璐�");
+ }
+ }else {
+ throw new CoolException("鐩樼偣鏈畬鎴愭棤娉曚笂鎶�");
+ }
+ }
}
diff --git a/src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java
index 57ce31b..6424df5 100644
--- a/src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java
@@ -20,6 +20,7 @@
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
+import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -223,18 +224,49 @@
}
@Override
- public boolean reportCheckOrder(InventoryCheckOrder checkOrder) {
- Object process1 = processInvcount(checkOrder);
- //鍙戦�佽姹�
- NcResultMessage response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, invcountAdd, JSONObject.toJSONString(process1));
- log.info("鐩樼偣鍗時esponse:{}", response);
- if (!Cools.isEmpty(response) && response.isSuccess()) {
- log.info("鐩樼偣鍗時esponse:{}", response);
- return true;
- } else {
-// remark = response.getMessage() + "--" + response.getErrorStack().substring(0, 100);
- return false;
+ public boolean reportCheckOrder(String matnr, String batch) {
+ List<InventoryCheckOrderDetl> checkOrderDetls = inventoryCheckOrderDetlService.selectList(new EntityWrapper<InventoryCheckOrderDetl>()
+ .eq("matnr", matnr)
+ .eq("batch", batch)
+ );
+
+ ArrayList<String> warehouseIdList = new ArrayList<>();
+ ArrayList<String> orderNoList = new ArrayList<>();
+ for (InventoryCheckOrderDetl checkOrderDetl : checkOrderDetls) {
+ if (!warehouseIdList.contains(checkOrderDetl.getCwarehouseid())) {
+ warehouseIdList.add(checkOrderDetl.getCwarehouseid());
+ }
+ if (!orderNoList.contains(checkOrderDetl.getOrderNo())) {
+ orderNoList.add(checkOrderDetl.getOrderNo());
+ }
}
+
+ boolean result = true;
+ for (String cwarehouseid : warehouseIdList) {
+ Object process1 = processInvcount(matnr, batch, cwarehouseid);
+ //鍙戦�佽姹�
+ NcResultMessage response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, invcountAdd, JSONObject.toJSONString(process1));
+ log.info("鐩樼偣鍗時esponse:{}", response);
+ if (!Cools.isEmpty(response) && response.isSuccess()) {
+ log.info("鐩樼偣鍗時esponse:{}", response);
+ } else {
+ result = false;
+ }
+ }
+
+
+ if (result) {
+ List<InventoryCheckOrder> inventoryCheckOrders = inventoryCheckOrderService.selectList(new EntityWrapper<InventoryCheckOrder>()
+ .in("orderNo", orderNoList)
+ .eq("status", 1)
+ );
+
+ for (InventoryCheckOrder inventoryCheckOrder : inventoryCheckOrders) {
+ inventoryCheckOrder.setStatus("2");
+ inventoryCheckOrderService.updateById(inventoryCheckOrder);
+ }
+ }
+ return result;
}
private Object processXSFH(List<OrderDetl> orderDetls, Boolean flag) {
@@ -314,50 +346,45 @@
return data;
}
- private Object processInvcount(InventoryCheckOrder checkOrder) {
+ private Object processInvcount(String matnr, String batch, String cwarehouseid) {
List<InventoryCheckOrderDetl> inventoryCheckOrderDetls = inventoryCheckOrderDetlService.selectList(new EntityWrapper<InventoryCheckOrderDetl>()
- .eq("order_no", checkOrder.getOrderNo()));
+ .eq("matnr", matnr)
+ .eq("batch", batch)
+ .eq("cwarehouseid", cwarehouseid)
+ );
if (inventoryCheckOrderDetls.isEmpty()) {
throw new CoolException("鐩樼偣鏄庣粏涓嶅瓨鍦�");
}
+ //鍚堝苟鏁伴噺
+ BigDecimal checkAnfmeDecimal = new BigDecimal(0);
+ for (InventoryCheckOrderDetl checkOrderDetl : inventoryCheckOrderDetls) {
+ checkAnfmeDecimal = checkAnfmeDecimal.add(BigDecimal.valueOf(checkOrderDetl.getCheckAnfme()));
+ }
+
+ //璁$畻杈呮暟閲�
+ Double weight = MatUtils.calcWeight(matnr, checkAnfmeDecimal.doubleValue());
+
//缁勮瀵硅薄鏁版嵁
Map<String, Object> data = new HashMap<String, Object>();
- //浠撳簱id
- String cwarehouseid = null;
List<InvCountBodyVO> invCountBodyVOList = new ArrayList<>();
- for (InventoryCheckOrderDetl inventoryCheckOrderDetl : inventoryCheckOrderDetls) {
- List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>()
- .eq("matnr", inventoryCheckOrderDetl.getMatnr())
- .eq("batch", inventoryCheckOrderDetl.getBatch())
- );
- if (wrkDetls.isEmpty()) {
- throw new CoolException("宸ヤ綔妗f槑缁嗕笉瀛樺湪");
- }
- NccScPcdaWms nccScPcdaWms = nccScPcdaWmsService.selectOne(new EntityWrapper<NccScPcdaWms>()
- .eq("WLBM", inventoryCheckOrderDetl.getMatnr())
- .eq("VBATCHCODE", inventoryCheckOrderDetl.getBatch())
- );
- if(null == nccScPcdaWms) {
- throw new CoolException("ERP鏁版嵁搴撴棤娉曟煡璇㈠埌鐩樼偣涓婃姤鏁版嵁");
- }
-
- cwarehouseid = wrkDetls.get(0).getStandby1();
-
- //璁$畻杈呮暟閲�
- Double weight = MatUtils.calcWeight(inventoryCheckOrderDetl.getMatnr(), inventoryCheckOrderDetl.getCheckAnfme());
-
- InvCountBodyVO invCountBodyVO = new InvCountBodyVO();
- invCountBodyVO.setCmaterialoid(inventoryCheckOrderDetl.getMatnr());
- invCountBodyVO.setVbatchcode(inventoryCheckOrderDetl.getBatch());
- invCountBodyVO.setNcountnum(inventoryCheckOrderDetl.getCheckAnfme());
- invCountBodyVO.setNcountastnum(weight);
- invCountBodyVO.setCstateid(nccScPcdaWms.getPkStorestate());
- invCountBodyVO.setPk_batchcode(nccScPcdaWms.getPkBatchcode());
- invCountBodyVOList.add(invCountBodyVO);
+ NccScPcdaWms nccScPcdaWms = nccScPcdaWmsService.selectOne(new EntityWrapper<NccScPcdaWms>()
+ .eq("WLBM", matnr)
+ .eq("VBATCHCODE", batch)
+ );
+ if (null == nccScPcdaWms) {
+ throw new CoolException("ERP鏁版嵁搴撴棤娉曟煡璇㈠埌鐩樼偣涓婃姤鏁版嵁");
}
+ InvCountBodyVO invCountBodyVO = new InvCountBodyVO();
+ invCountBodyVO.setCmaterialoid(matnr);
+ invCountBodyVO.setVbatchcode(batch);
+ invCountBodyVO.setNcountnum(checkAnfmeDecimal.doubleValue());
+ invCountBodyVO.setNcountastnum(weight);
+ invCountBodyVO.setCstateid(nccScPcdaWms.getPkStorestate());
+ invCountBodyVO.setPk_batchcode(nccScPcdaWms.getPkBatchcode());
+ invCountBodyVOList.add(invCountBodyVO);
InvCountHeaderVO invCountHeaderVO = new InvCountHeaderVO();
invCountHeaderVO.setPk_org("FYT");
diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
index d6bbde5..ef807a4 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -326,15 +326,6 @@
ioType = dto.isAll() ? 101 : 103;
} else if (ioWorkType.equals(IoWorkType.CHECK_OUT)) {
ioType = 107;
- if (Cools.isEmpty(checkOrderNo)) {
- checkOrderNo = DateUtils.createTimeStamp();
- InventoryCheckOrder checkOrder = new InventoryCheckOrder();
- checkOrder.setCreateBy(userId);
- checkOrder.setStatus("1");
- checkOrder.setCreateTime(new Date());
- checkOrder.setOrderNo(checkOrderNo);
- checkOrderService.insert(checkOrder);
- }
}
assert ioType != null;
// 鑾峰彇搴撲綅
@@ -350,6 +341,20 @@
StaDesc staDesc = staDescService.queryCrnStn(ioType, locMast.getCrnNo(), outSta);
// 鐢熸垚宸ヤ綔鍙�
int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
+
+ if (ioType == 107) {
+ if (Cools.isEmpty(checkOrderNo)) {
+ checkOrderNo = DateUtils.createTimeStamp() + "_" + workNo;
+ InventoryCheckOrder checkOrder = new InventoryCheckOrder();
+ checkOrder.setCreateBy(userId);
+ checkOrder.setStatus("1");
+ checkOrder.setArea(String.valueOf(workNo));
+ checkOrder.setCreateTime(new Date());
+ checkOrder.setOrderNo(checkOrderNo);
+ checkOrderService.insert(checkOrder);
+ }
+ }
+
// 鐢熸垚宸ヤ綔妗�
WrkMast wrkMast = new WrkMast();
wrkMast.setWrkNo(workNo);
@@ -406,6 +411,8 @@
checkOrderDetl.setBatch(detlDto.getLocDetl().getBatch());
checkOrderDetl.setLocNo(detlDto.getLocDetl().getLocNo());
checkOrderDetl.setAnfme(detlDto.getLocDetl().getAnfme());
+ checkOrderDetl.setArea(String.valueOf(workNo));
+ checkOrderDetl.setCwarehouseid(wrkDetl.getStandby1());
checkOrderDetl.setIoTime(new Date());
checkOrderDetl.setStatus("0");
checkOrderDetlService.insert(checkOrderDetl);
diff --git a/src/main/java/com/zy/asrs/task/ReportInventoryCheckOrdersScheduler.java b/src/main/java/com/zy/asrs/task/ReportInventoryCheckOrdersScheduler.java
index 889d8a7..651f619 100644
--- a/src/main/java/com/zy/asrs/task/ReportInventoryCheckOrdersScheduler.java
+++ b/src/main/java/com/zy/asrs/task/ReportInventoryCheckOrdersScheduler.java
@@ -31,42 +31,43 @@
/**
* 涓婃姤鐩樼偣缁撴灉
+ * 涓嶈嚜鍔ㄤ笂鎶ワ紝閲囩敤浜哄伐鎵嬪姩涓婃姤鏂规
*/
- @Scheduled(cron = "0/3 * * * * ? ")
+// @Scheduled(cron = "0/3 * * * * ? ")
public void execute() {
- String erpReport = Parameter.get().getErpReport();
- if (Cools.isEmpty(erpReport) || !erpReport.equals("true")) {
- return;
- }
-
- List<InventoryCheckOrder> inventoryCheckOrders = inventoryCheckOrderService.selectList(new EntityWrapper<InventoryCheckOrder>()
- .eq("status", 1));
- if (inventoryCheckOrders.isEmpty()) {
- return;
- }
-
- for (InventoryCheckOrder checkOrder : inventoryCheckOrders) {
- List<InventoryCheckOrderDetl> checkOrderDetls = inventoryCheckOrderDetlService.selectList(new EntityWrapper<InventoryCheckOrderDetl>().eq("order_no", checkOrder.getOrderNo()));
- boolean complete = true;
- for (InventoryCheckOrderDetl checkOrderDetl : checkOrderDetls) {
- if (!checkOrderDetl.getStatus().equals("2")) {
- complete = false;
- }
- }
- if (complete) {
- boolean result = reportToThirdService.reportCheckOrder(checkOrder);
- if (!result) {
- continue;
- }
-
- checkOrder.setStatus("2");
- if (!inventoryCheckOrderService.updateById(checkOrder)) {
- log.error("鐩樼偣鍗昜orderNo={}]鏇存柊鐘舵�佸け璐�", checkOrder.getOrderNo());
- } else {
- log.info("鐩樼偣鍗昜orderNo={}]鏇存柊鐘舵�佹垚鍔�", checkOrder.getOrderNo());
- }
- }
- }
+// String erpReport = Parameter.get().getErpReport();
+// if (Cools.isEmpty(erpReport) || !erpReport.equals("true")) {
+// return;
+// }
+//
+// List<InventoryCheckOrder> inventoryCheckOrders = inventoryCheckOrderService.selectList(new EntityWrapper<InventoryCheckOrder>()
+// .eq("status", 1));
+// if (inventoryCheckOrders.isEmpty()) {
+// return;
+// }
+//
+// for (InventoryCheckOrder checkOrder : inventoryCheckOrders) {
+// List<InventoryCheckOrderDetl> checkOrderDetls = inventoryCheckOrderDetlService.selectList(new EntityWrapper<InventoryCheckOrderDetl>().eq("order_no", checkOrder.getOrderNo()));
+// boolean complete = true;
+// for (InventoryCheckOrderDetl checkOrderDetl : checkOrderDetls) {
+// if (!checkOrderDetl.getStatus().equals("2")) {
+// complete = false;
+// }
+// }
+// if (complete) {
+// boolean result = reportToThirdService.reportCheckOrder(checkOrder);
+// if (!result) {
+// continue;
+// }
+//
+// checkOrder.setStatus("2");
+// if (!inventoryCheckOrderService.updateById(checkOrder)) {
+// log.error("鐩樼偣鍗昜orderNo={}]鏇存柊鐘舵�佸け璐�", checkOrder.getOrderNo());
+// } else {
+// log.info("鐩樼偣鍗昜orderNo={}]鏇存柊鐘舵�佹垚鍔�", checkOrder.getOrderNo());
+// }
+// }
+// }
}
/**
diff --git a/src/main/webapp/static/js/inventoryCheckOrder/inventoryCheckOrder.js b/src/main/webapp/static/js/inventoryCheckOrder/inventoryCheckOrder.js
index 3e3faaf..5268aba 100644
--- a/src/main/webapp/static/js/inventoryCheckOrder/inventoryCheckOrder.js
+++ b/src/main/webapp/static/js/inventoryCheckOrder/inventoryCheckOrder.js
@@ -48,7 +48,7 @@
// ,{field: 'itemNum', align: 'center',title: '鍝侀」鏁�'}
// ,{field: 'count', align: 'center',title: '鏁伴噺'}
// ,{field: 'weight', align: 'center',title: '閲嶉噺'}
- ,{field: 'profit$', align: 'center',title: '鐩堜簭',templet: '#profitTpl'}
+ // ,{field: 'profit$', align: 'center',title: '鐩堜簭',templet: '#profitTpl'}
,{field: 'status$', align: 'center',title: '鐘舵��'}
// ,{field: 'createBy$', align: 'center',title: '娣诲姞浜哄憳'}
// ,{field: 'createTime$', align: 'center',title: '娣诲姞鏃堕棿'}
diff --git a/src/main/webapp/views/pakStore/locDetlCheckQuery.html b/src/main/webapp/views/pakStore/locDetlCheckQuery.html
index dada33b..b04f645 100644
--- a/src/main/webapp/views/pakStore/locDetlCheckQuery.html
+++ b/src/main/webapp/views/pakStore/locDetlCheckQuery.html
@@ -78,6 +78,11 @@
</div>
<div class="layui-inline">
<div class="layui-input-inline">
+ <input class="layui-input" type="text" name="batch" placeholder="鎵瑰彿" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <div class="layui-input-inline">
<input class="layui-input" type="text" name="specs" placeholder="瑙勬牸" autocomplete="off">
</div>
</div>
--
Gitblit v1.9.1