From 9268cd77b4e864b901a8b0bf965f441f2e8c4fbd Mon Sep 17 00:00:00 2001
From: dubin <bindu_bean@163.com>
Date: 星期日, 04 一月 2026 08:06:14 +0800
Subject: [PATCH] #1
---
src/main/java/com/zy/common/web/WcsController.java | 117 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 116 insertions(+), 1 deletions(-)
diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java
index 8bcb656..5ec89eb 100644
--- a/src/main/java/com/zy/common/web/WcsController.java
+++ b/src/main/java/com/zy/common/web/WcsController.java
@@ -51,6 +51,10 @@
private LocDetlService locDetlService;
@Autowired
private BasCrnpService basCrnpService;
+ @Autowired
+ private WrkMastLogService wrkMastLogService;
+ @Autowired
+ private WrkDetlLogService wrkDetlLogService;
@Value("${led.ip}")
private String ledIp;
@@ -126,6 +130,20 @@
return R.ok().add(dto);
}
+ @PostMapping("/pakin/loc/returnWarehouse")
+ @ResponseBody
+ public synchronized R returnWarehouse(@RequestBody(required = false) SearchLocParam param) {
+ log.info("鏀跺埌WCS鎷i�夌洏鐐瑰叆搴撴帴鍙h姹�====>>鍏ュ弬:{}", param);
+ if (Cools.isEmpty(param.getSourceStaNo())) {
+ return R.error("婧愮珯缂栧彿涓嶈兘涓虹┖");
+ }
+ LocTypeDto locTypeDto = new LocTypeDto();
+ locTypeDto.setLocType1(param.getLocType1());
+
+ StartupDto dto = startupPickIn(param.getSourceStaNo(), param.getBarcode(), locTypeDto);;
+ log.info("WCS鎷i�夌洏鐐瑰叆搴撴帴鍙h繑鍙�:{},鎵樼洏鐮�:{}", dto, param.getBarcode());
+ return R.ok().add(dto);
+ }
/**
* 鍏ㄦ澘鍏ュ簱
@@ -143,7 +161,7 @@
StartupDto dto = commonService.getLocNo(1, devpNo, findLocNoAttributeVo, locTypeDto, barcode);
if (dto == null) {
- throw new CoolException("鎵句笉鍒扮┖搴撲綅");
+ throw new CoolException("鎵句笉鍒扮┖搴撲綅--->" + barcode);
}
int workNo = dto.getWorkNo();
Date now = new Date();
@@ -210,6 +228,103 @@
return dto;
}
+ /**
+ * 鎷i�夊叆搴�
+ */
+ @Transactional
+ public StartupDto startupPickIn(Integer devpNo, String barcode, LocTypeDto locTypeDto) {
+ // 婧愮珯鐐圭姸鎬佹娴�
+ BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
+
+ WrkMast wrkMastOut = wrkMastService.selectByBarcode(barcode);
+ if (wrkMastOut == null) {
+ throw new CoolException("鎷i�夌洏鐐逛换鍔′笉瀛樺湪");
+ }
+
+ if (wrkMastOut.getIoType() != 103 && wrkMastOut.getIoType() != 107) {
+ throw new CoolException("浠诲姟绫诲瀷涓嶅睘浜庢嫞閫夈�佺洏鐐�");
+ }
+
+ List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMastOut.getWrkNo());
+ if (wrkDetls.isEmpty()) {
+ throw new CoolException("鎷i�夌洏鐐逛换鍔℃暟鎹笉瀛樺湪");
+ }
+
+ FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo();
+ findLocNoAttributeVo.setMatnr(wrkDetls.get(0).getMatnr());
+
+ StartupDto dto = commonService.getLocNo(1, devpNo, findLocNoAttributeVo, locTypeDto, barcode);
+ if (dto == null) {
+ throw new CoolException("鎵句笉鍒扮┖搴撲綅");
+ }
+
+ Date now = new Date();
+
+ // 鐢熸垚宸ヤ綔妗�
+ WrkMast wrkMast = new WrkMast();
+ int workNo = dto.getWorkNo();
+ wrkMast.setWrkNo(workNo);
+ wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID
+ wrkMast.setIoType(wrkMastOut.getIoType() - 50); // 鍏ュ嚭搴撶姸鎬侊細53.鎷f枡鍐嶅叆搴�
+ wrkMast.setIoPri(30D); // 浼樺厛绾�
+ wrkMast.setCrnNo(dto.getCrnNo());
+ wrkMast.setSourceStaNo(dto.getSourceStaNo());
+ wrkMast.setStaNo(dto.getStaNo());
+ wrkMast.setLocNo(dto.getLocNo());
+ wrkMast.setBarcode(barcode); // 鎵樼洏鐮�
+ wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
+ wrkMast.setPicking("N"); // 鎷f枡
+ wrkMast.setExitMk("N"); // 閫�鍑�
+ wrkMast.setEmptyMk("N"); // 绌烘澘
+ wrkMast.setLinkMis("Y");
+ wrkMast.setCtnType(sourceStaNo.getCtnType()); // 瀹瑰櫒绫诲瀷
+ // 鎿嶄綔浜哄憳鏁版嵁
+ wrkMast.setAppeTime(now);
+ wrkMast.setModiTime(now);
+ wrkMast.setIoTime(now);
+ boolean res = wrkMastService.insert(wrkMast);
+ if (!res) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+ }
+
+ //淇濆瓨宸ヤ綔涓绘。
+ if (!wrkMastLogService.save(wrkMastOut.getWrkNo())){
+ throw new CoolException("淇濆瓨宸ヤ綔涓绘。澶辫触锛寃orkNo=" + wrkMastOut.getWrkNo());
+ }
+ //淇濆瓨宸ヤ綔鏄庣粏妗�
+ if (!wrkMastOut.getEmptyMk().equals("Y")) {
+ if (!wrkDetlLogService.save(wrkMastOut.getWrkNo())){
+ throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触锛寃orkNo=" + wrkMastOut.getWrkNo());
+ }
+ }
+
+ wrkDetlService.updateWorkNo(wrkMastOut.getWrkNo(), workNo,now);
+
+ // 鍒犻櫎宸ヤ綔涓绘。
+ if (!wrkMastService.deleteById(wrkMastOut)) {
+ throw new CoolException("鍒犻櫎宸ヤ綔涓绘。澶辫触锛寃orkNo=" + wrkMastOut.getWrkNo());
+ }
+
+ // 鏇存柊婧愮珯鐐逛俊鎭�
+ sourceStaNo.setWrkNo(wrkMast.getWrkNo());
+ sourceStaNo.setModiTime(now);
+ if (!basDevpService.updateById(sourceStaNo)) {
+ throw new CoolException("鏇存柊婧愮珯澶辫触");
+ }
+ // 鏇存柊鐩爣搴撲綅鐘舵��
+ LocMast locMast = locMastService.selectById(dto.getLocNo());
+ if (locMast.getLocSts().equals("P")) {
+ locMast.setLocSts("Q"); // S.鍏ュ簱棰勭害
+ locMast.setModiTime(now);
+ if (!locMastService.updateById(locMast)) {
+ throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�");
+ }
+ } else {
+ throw new CoolException(dto.getLocNo() + "鐩爣搴撲綅宸茶鍗犵敤");
+ }
+ return dto;
+ }
+
@Transactional
public StartupDto emptyPlateIn(Integer devpNo, String barcode) {
// 妫�绱㈠簱浣�
--
Gitblit v1.9.1