From ac0f708807b8876b23b59dfce0d41a146323428a Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期三, 08 一月 2025 16:59:29 +0800
Subject: [PATCH] #平库出库
---
src/main/resources/mapper/ManLocDetlMapper.xml | 36 +++++++
src/main/java/com/zy/asrs/controller/OrderController.java | 19 +++
src/main/java/com/zy/asrs/entity/param/CombParam.java | 6 +
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java | 41 +++++++
src/main/java/com/zy/asrs/entity/WrkMast.java | 2
src/main/resources/mapper/WrkMastMapper.xml | 1
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 116 +++++++++++++++++++++++
src/main/java/com/zy/asrs/service/ManLocDetlService.java | 2
src/main/java/com/zy/asrs/controller/MobileController.java | 11 ++
src/main/java/com/zy/asrs/service/impl/ManLocDetlServiceImpl.java | 4
src/main/java/com/zy/asrs/mapper/ManLocDetlMapper.java | 3
src/main/java/com/zy/asrs/service/MobileService.java | 2
12 files changed, 234 insertions(+), 9 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/MobileController.java b/src/main/java/com/zy/asrs/controller/MobileController.java
index 8986c3f..ba1e078 100644
--- a/src/main/java/com/zy/asrs/controller/MobileController.java
+++ b/src/main/java/com/zy/asrs/controller/MobileController.java
@@ -308,6 +308,17 @@
return R.ok();
}
+ @RequestMapping("/pingKu/unShelves/auth")
+ @ManagerAuth(memo = "骞冲簱涓嬫灦")
+ public R pingKuUnShelves(@RequestBody CombParam combParam){
+ if (Cools.isEmpty(combParam.getLocno(), combParam.getCombMats())) {
+ throw new CoolException(BaseRes.PARAM);
+ }
+ mobileService.pingKuUnShelves(combParam, getUserId());
+
+ return R.ok();
+ }
+
@RequestMapping("/pack/get/auth")
@ManagerAuth
public R packGet(@RequestParam String barcode){
diff --git a/src/main/java/com/zy/asrs/controller/OrderController.java b/src/main/java/com/zy/asrs/controller/OrderController.java
index e21e0ad..5a44740 100644
--- a/src/main/java/com/zy/asrs/controller/OrderController.java
+++ b/src/main/java/com/zy/asrs/controller/OrderController.java
@@ -78,6 +78,25 @@
return R.ok().add(orderPage);
}
+ @RequestMapping(value = "/order/list/pda/page/out/auth")
+ @ManagerAuth
+ public R pdaPageListOut(@RequestParam(required = true)Long tagId,
+ @RequestParam(defaultValue = "1")Integer curr,
+ @RequestParam(defaultValue = "10")Integer limit){
+ List<DocType> docTypes = docTypeService.selectList(new EntityWrapper<DocType>().eq("pakout", 1));
+ ArrayList<Integer> arrayList = new ArrayList<>();
+ docTypes.forEach(docType -> {
+ arrayList.add(docType.getDocId().intValue());
+ });
+ EntityWrapper<Order> wrapper = new EntityWrapper<>();
+// wrapper.eq("tag_id", tagId);
+ wrapper.in("doc_type", arrayList);
+ wrapper.in("settle",1,2);
+ wrapper.orderBy("create_time", false);
+ Page<Order> orderPage = orderService.selectPage(new Page<>(curr, limit), wrapper);
+ return R.ok().add(orderPage);
+ }
+
@RequestMapping(value = "/order/nav/list/auth")
@ManagerAuth
public R navList(@RequestParam(required = false) String orderNo){
diff --git a/src/main/java/com/zy/asrs/entity/WrkMast.java b/src/main/java/com/zy/asrs/entity/WrkMast.java
index cac671e..4c3374f 100644
--- a/src/main/java/com/zy/asrs/entity/WrkMast.java
+++ b/src/main/java/com/zy/asrs/entity/WrkMast.java
@@ -398,7 +398,7 @@
if (!Cools.isEmpty(locMast)){
return String.valueOf(locMast.getLocNo());
}
- return null;
+ return this.sourceLocNo;
}
public String getIoTime$(){
diff --git a/src/main/java/com/zy/asrs/entity/param/CombParam.java b/src/main/java/com/zy/asrs/entity/param/CombParam.java
index d1d5cfd..3c27eb1 100644
--- a/src/main/java/com/zy/asrs/entity/param/CombParam.java
+++ b/src/main/java/com/zy/asrs/entity/param/CombParam.java
@@ -40,6 +40,12 @@
// 瑙勬牸
private String specs;
+ private String supp;
+
+ private String temp1;
+
+ private String temp2;
+
}
}
diff --git a/src/main/java/com/zy/asrs/mapper/ManLocDetlMapper.java b/src/main/java/com/zy/asrs/mapper/ManLocDetlMapper.java
index 4eac4f1..c37099b 100644
--- a/src/main/java/com/zy/asrs/mapper/ManLocDetlMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/ManLocDetlMapper.java
@@ -1,6 +1,7 @@
package com.zy.asrs.mapper;
import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.zy.asrs.entity.LocDetl;
import com.zy.asrs.entity.ManLocDetl;
import com.zy.asrs.entity.result.StockVo;
import org.apache.ibatis.annotations.Mapper;
@@ -53,7 +54,7 @@
// -------------------------------------------------
- List<ManLocDetl> queryStock(@Param("matnr")String matnr, @Param("batch")String batch, @Param("orderNo")String orderNo, @Param("locNos") Set<String> locNos);
+ List<LocDetl> queryStock(@Param("matnr")String matnr, @Param("batch")String batch, @Param("orderNo")String orderNo, @Param("locNos") Set<String> locNos, @Param("supp")String supp, @Param("temp1")String temp1, @Param("temp2")String temp2);
Double queryStockAnfme(String matnr, String batch);
diff --git a/src/main/java/com/zy/asrs/service/ManLocDetlService.java b/src/main/java/com/zy/asrs/service/ManLocDetlService.java
index d6761c8..7d3d0e8 100644
--- a/src/main/java/com/zy/asrs/service/ManLocDetlService.java
+++ b/src/main/java/com/zy/asrs/service/ManLocDetlService.java
@@ -43,7 +43,7 @@
// --------------------------------------------------
- List<ManLocDetl> queryStock(String matnr, String batch, String orderNo, Set<String> locNos);
+ List<LocDetl> queryStock(String matnr, String batch, String orderNo, Set<String> locNos,String supp,String temp1,String temp2);
Double queryStockAnfme(String matnr, String batch);
diff --git a/src/main/java/com/zy/asrs/service/MobileService.java b/src/main/java/com/zy/asrs/service/MobileService.java
index 605f917..4b14a68 100644
--- a/src/main/java/com/zy/asrs/service/MobileService.java
+++ b/src/main/java/com/zy/asrs/service/MobileService.java
@@ -60,4 +60,6 @@
void inventoryUpload(String orderId);
void pingKuShelves(CombParam combParam, Long userId);
+
+ void pingKuUnShelves(CombParam combParam, Long userId);
}
diff --git a/src/main/java/com/zy/asrs/service/impl/ManLocDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/ManLocDetlServiceImpl.java
index e6b362b..9be4095 100644
--- a/src/main/java/com/zy/asrs/service/impl/ManLocDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/ManLocDetlServiceImpl.java
@@ -90,8 +90,8 @@
}
@Override
- public List<ManLocDetl> queryStock(String matnr, String batch, String orderNo, Set<String> locNos) {
- return this.baseMapper.queryStock(matnr, batch, orderNo, locNos);
+ public List<LocDetl> queryStock(String matnr, String batch, String orderNo, Set<String> locNos,String supp,String temp1,String temp2) {
+ return this.baseMapper.queryStock(matnr, batch, orderNo, locNos,supp,temp1,temp2);
}
@Override
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 2061981..f81a2ea 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -1096,11 +1096,127 @@
wrkDetl.setSuppCode(detlDto.getFromOrderNo()); //鏉ユ簮鍗曞彿
wrkDetl.setTemp1(detlDto.getTemp1());
wrkDetl.setTemp2(detlDto.getTemp2());
+ wrkDetl.setTemp3(detlDto.getSuppName());
+ wrkDetl.setTemp4(detlDto.getTemp4());
+ if (!wrkDetlService.insert(wrkDetl)) {
+ throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
+ }
+ }
+ orderService.updateSettle(order.getId(), 2L, userId);
+
+
+ }
+
+ @Override
+ @Transactional
+ public void pingKuUnShelves(CombParam combParam, Long userId) {
+ String orderNo = combParam.getOrderNo();
+
+ Node node = nodeService.selectOne(new EntityWrapper<Node>().eq("name", combParam.getLocno()).eq("type", 3));
+ if (Cools.isEmpty(node)){
+ throw new CoolException("鏈壘鍒板簱浣嶄俊鎭�");
+ }
+ //鏍规嵁璁㈠崟鍙风敓鎴愬嚭搴撲换鍔″伐浣滄。
+ Order order = orderService.selectOne(new EntityWrapper<Order>().eq("order_no", orderNo));
+ if (order.getSettle() != 1 && order.getSettle() != 2){
+ throw new CoolException("璇ヨ鍗曞凡澶勭悊");
+ }
+ List<DetlDto> detlDtos = new ArrayList<>();
+ for (CombParam.CombMat elem : combParam.getCombMats()) {
+ Wrapper<ManLocDetl> manLocDetlWrapper = new EntityWrapper<ManLocDetl>().eq("loc_no", combParam.getLocno())
+ .eq("matnr", elem.getMatnr()).eq("batch", elem.getBatch())
+ .eq("temp3", elem.getSupp()).eq("temp1", elem.getTemp1()).eq("temp2", elem.getTemp2());
+ ManLocDetl manLocDetl = manLocDetlService.selectOne(manLocDetlWrapper);
+
+ if (Cools.isEmpty(manLocDetl)){
+ throw new CoolException("璇ュ簱浣嶆湭鏌ヨ鍒拌揣鐗╀俊鎭�");
+ }
+ if (elem.getAnfme()> manLocDetl.getAnfme()){
+ throw new CoolException("鍑哄簱鏁伴噺澶т簬搴撲綅鍓╀綑鏁伴噺");
+ }
+
+ OrderDetl orderDetl = orderDetlService.selectItem(order.getId(), elem.getMatnr(), elem.getBatch());
+ if (Cools.isEmpty(orderDetl)) {
+ throw new CoolException("璇ュ崟鎹腑鏈壘鍒板搴旂墿鏂欐槑缁�");
+ }
+ if (elem.getAnfme() > orderDetl.getEnableQty()) {
+ throw new CoolException(orderDetl.getMatnr() + "鍏ュ簱鏁伴噺涓嶅悎娉�");
+ }
+ // 淇敼璁㈠崟浣滀笟鏁伴噺
+ if (!orderDetlService.increaseWorkQty(order.getId(), elem.getMatnr(), elem.getBatch(), elem.getAnfme())) {
+ throw new CoolException("淇敼鍗曟嵁浣滀笟鏁伴噺澶辫触");
+ }
+
+ DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme(),orderDetl.getSuppCode()
+ , orderDetl.getManu(),orderDetl.getSku(),orderDetl.getSupp(),orderDetl.getTemp1(),orderDetl.getTemp2(),orderDetl.getTemp3(),orderDetl.getTemp4());
+
+
+ int workNo = commonService.getWorkNo(4);
+ Date now = new Date();
+ // 鐢熸垚宸ヤ綔妗�
+ WrkMast wrkMast = new WrkMast();
+ wrkMast.setWrkNo(workNo);
+ wrkMast.setIoTime(new Date());
+ wrkMast.setWrkSts(14L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID
+ wrkMast.setIoType(301); // 鍏ュ嚭搴撶姸鎬侊細301.骞冲簱鍑哄簱
+ wrkMast.setIoPri(12D); // 浼樺厛绾�
+ wrkMast.setSourceLocNo(node.getName());
+ wrkMast.setBarcode(""); // 鎵樼洏鐮�
+ wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
+ wrkMast.setPicking("N"); // 鎷f枡
+ wrkMast.setExitMk("N"); // 閫�鍑�
+ wrkMast.setEmptyMk("N"); // 绌烘澘
+ wrkMast.setLinkMis("Y");
+ wrkMast.setSheetNo(order.getOrderNo());
+ // 鎿嶄綔浜哄憳鏁版嵁
+ wrkMast.setAppeTime(now);
+ wrkMast.setModiTime(now);
+ boolean res = wrkMastService.insert(wrkMast);
+ if (!res) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+ }
+
+ Mat mat = matService.selectByMatnr(detlDto.getMatnr());
+ if (Cools.isEmpty(mat)) {
+ throw new CoolException(detlDto.getMatnr() + "鍟嗗搧妗f涓嶅瓨鍦�");
+ }
+ WrkDetl wrkDetl = new WrkDetl();
+
+ wrkDetl.sync(detlDto);
+ wrkDetl.sync(mat);
+
+ wrkDetl.setOrderNo(order.getOrderNo());
+ wrkDetl.setWrkNo(wrkMast.getWrkNo());
+ wrkDetl.setIoTime(wrkMast.getIoTime());
+ wrkDetl.setAppeTime(now);
+ wrkDetl.setModiTime(now);
+ wrkDetl.setManu(detlDto.getMark()); //鏍囪
+ wrkDetl.setOrigin(order.getItemName());//浠撳簱
+ wrkDetl.setSupp(detlDto.getSuppName()); //渚涘簲鍟�
+ wrkDetl.setSku(detlDto.getCustomer()); //瀹㈡埛鍚嶇О
+ wrkDetl.setThreeCode(detlDto.getOrderNo()); //u8鍙戣繃鏉ョ殑璁㈠崟鍙�
+ wrkDetl.setSuppCode(detlDto.getFromOrderNo()); //鏉ユ簮鍗曞彿
+ wrkDetl.setTemp1(detlDto.getTemp1());
+ wrkDetl.setTemp2(detlDto.getTemp2());
wrkDetl.setTemp3(detlDto.getTemp3());
wrkDetl.setTemp4(detlDto.getTemp4());
if (!wrkDetlService.insert(wrkDetl)) {
throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
}
+
+ if (new BigDecimal(manLocDetl.getAnfme()).subtract(new BigDecimal(elem.getAnfme())).doubleValue() == 0){
+ manLocDetlService.delete(manLocDetlWrapper);
+ }else {
+ manLocDetl.setAnfme(new BigDecimal(manLocDetl.getAnfme()).subtract(new BigDecimal(elem.getAnfme())).doubleValue());
+ if (!manLocDetlService.update(manLocDetl,manLocDetlWrapper)) {
+ throw new CoolException("鏇存柊鏄庣粏澶辫触");
+ }
+ }
+
+
+
+
+
}
orderService.updateSettle(order.getId(), 2L, userId);
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 1961f9c..8d7d5cd 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -451,12 +451,24 @@
Date now = new Date();
LocMast locMast = locMastService.selectById(wrkMast.getSourceLocNo());
try {
- if (null == locMast) {
+ Node node = null;
+ if (wrkMast.getIoType() == 301){
+ node = nodeService.selectOne(new EntityWrapper<Node>().eq("name",wrkMast.getSourceLocNo()).eq("type",3));
+ if (null == node) {
// exceptionHandle("宸ヤ綔妗workNo={0}]搴撲綅鍙烽敊璇痆locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return FAIL.setMsg("宸ヤ綔妗e簱浣嶅彿閿欒; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("宸ヤ綔妗workNo=" + wrkMast.getWrkNo() + "]搴撲綅鍙烽敊璇痆locNo=" + wrkMast.getLocNo() + "]");
+ }
+ assert node != null;
+ }else {
+ locMast = locMastService.selectById(wrkMast.getLocNo());
+ if (null == locMast) {
+// exceptionHandle("宸ヤ綔妗workNo={0}]搴撲綅鍙烽敊璇痆locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("宸ヤ綔妗workNo=" + wrkMast.getWrkNo() + "]搴撲綅鍙烽敊璇痆locNo=" + wrkMast.getLocNo() + "]");
+ }
+ assert locMast != null;
}
- assert locMast != null;
switch (wrkMast.getIoType()) {
// 鍏ㄦ澘鍑哄簱
case 101:
@@ -523,6 +535,27 @@
}
}
break;
+ case 301:
+ List<WrkDetl> wrkDetls301 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
+ for (WrkDetl wrkDetl : wrkDetls301) {
+ // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
+ OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
+ if (orderDetl==null){
+ orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), null);
+ }
+ try {
+ if(!Cools.isEmpty(orderDetl)){
+ if(!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
+ orderDetl.getBatch(),wrkDetl.getAnfme())){
+// exceptionHandle("鍏ㄦ澘鍑哄簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]",
+// wrkMast.getWrkNo(), wrkMast.getLocNo());
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
+ }
+ }
+ } catch (Exception ignore){}
+ }
+ break;
default:
break;
}
diff --git a/src/main/resources/mapper/ManLocDetlMapper.xml b/src/main/resources/mapper/ManLocDetlMapper.xml
index 9965e02..a6f79f7 100644
--- a/src/main/resources/mapper/ManLocDetlMapper.xml
+++ b/src/main/resources/mapper/ManLocDetlMapper.xml
@@ -317,6 +317,42 @@
<select id="sum" resultType="java.lang.Double">
SELECT SUM(anfme) FROM man_loc_detl
</select>
+ <select id="queryStock" resultMap="BaseResultMap">
+ select a.*
+ from man_loc_detl a
+ where 1=1
+ and b.loc_sts = 'F'
+ and a.matnr = #{matnr}
+ <if test="supp != null and supp != ''">
+ and a.supp = #{supp}
+ </if>
+ <if test="temp1 != null and temp1 != ''">
+ and a.temp1 = #{temp1}
+ </if>
+ <if test="temp2 != null and temp2 != ''">
+ and a.temp2 = #{temp2}
+ </if>
+ <if test="batch != null and batch != ''">
+ and a.batch = #{batch}
+ </if>
+ <if test="orderNo != null and orderNo != ''">
+ and a.order_no = #{orderNo}
+ </if>
+
+ <if test="locNos != null and locNos.size > 0">
+ and b.loc_no not in
+ <foreach item="item" collection="locNos" index="index" separator="," open="(" close=")">
+ #{item}
+ </foreach>
+ </if>
+
+ order by
+ DATEPART(yyyy,a.modi_time),DATEPART(mm,a.modi_time),DATEPART(dd,a.modi_time), a.anfme
+ desc
+
+
+
+ </select>
<update id="updateLocNo0">
diff --git a/src/main/resources/mapper/WrkMastMapper.xml b/src/main/resources/mapper/WrkMastMapper.xml
index 7c417dd..cfe0813 100644
--- a/src/main/resources/mapper/WrkMastMapper.xml
+++ b/src/main/resources/mapper/WrkMastMapper.xml
@@ -69,6 +69,7 @@
<select id="selectToBeHistoryData" resultMap="BaseResultMap">
select * from asr_wrk_mast
where wrk_sts=5
+ or (wrk_sts=15 and io_type= 301)
or (wrk_sts=15 and ove_mk='Y' and wrk_no not in (select wrk_no from asr_bas_devp))
or (wrk_sts=15 and (dateadd(mi,5,crn_end_time) <= getdate() or dateadd(mi,1,modi_time) <= getdate()) and wrk_no not in (select wrk_no from asr_bas_devp))
or (wrk_sts=15 and (dateadd(mi,5,crn_end_time) <= getdate() or dateadd(mi,1,modi_time) <= getdate()) and crn_end_time is null and wrk_no not in (select wrk_no from asr_bas_devp))
--
Gitblit v1.9.1