From 80b1853f245bf67e0145551c34915610c3438203 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期五, 15 四月 2022 13:58:45 +0800
Subject: [PATCH] #
---
src/main/resources/mapper/WrkDetlMapper.xml | 30 +++++++++++++++
src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java | 5 ++
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java | 2
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 2
src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java | 9 ++++
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 60 ++++++++++++++++++++++++++++++
src/main/java/com/zy/asrs/service/WrkDetlService.java | 2 +
7 files changed, 108 insertions(+), 2 deletions(-)
diff --git a/src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java b/src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java
index e4c0ff5..98e2931 100644
--- a/src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.zy.asrs.entity.WrkDetl;
import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
@@ -13,4 +14,8 @@
List<WrkDetl> selectByWrkNo(Integer wrkNo);
+ int deleteItem(@Param("wrkNo")Integer wrkNo, @Param("matnr")String matnr, @Param("batch")String batch);
+
+ int updateAnfme(@Param("anfme")Double anfme, @Param("wrkNo")Integer wrkNo, @Param("matnr")String matnr, @Param("batch")String batch);
+
}
diff --git a/src/main/java/com/zy/asrs/service/WrkDetlService.java b/src/main/java/com/zy/asrs/service/WrkDetlService.java
index 7b92036..bec23ae 100644
--- a/src/main/java/com/zy/asrs/service/WrkDetlService.java
+++ b/src/main/java/com/zy/asrs/service/WrkDetlService.java
@@ -12,4 +12,6 @@
List<WrkDetl> selectByWrkNo(Integer wrkNo);
+ boolean updateAnfme(Double anfme, Integer wrkNo, 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 e81a47d..0bc78c0 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -16,6 +16,7 @@
import java.util.ArrayList;
import java.util.Date;
+import java.util.Iterator;
import java.util.List;
/**
@@ -146,6 +147,7 @@
}
@Override
+ @Transactional
public void adjust(MobileAdjustParam param, Long userId) {
BasDevp basDevp = basDevpService.selectById(param.getStaNo());
if (null == basDevp || basDevp.getWrkNo() == null) {
@@ -158,9 +160,67 @@
if (wrkMast.getWrkSts() < 10) {
throw new CoolException("鐩樼偣鏃犳晥锛屼换鍔″凡鐩樼偣鍐嶅叆搴�");
}
+ Date now = new Date();
List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
+ List<WrkDetl> list = param.getWrkDetls();
+ // 淇敼鏁伴噺
+ Iterator<WrkDetl> iterator = wrkDetls.iterator();
+ while (iterator.hasNext()) {
+ WrkDetl wrkDetl = iterator.next();
+ Iterator<WrkDetl> iterator1 = list.iterator();
+ while (iterator1.hasNext()) {
+ WrkDetl wrkDetl1 = iterator1.next();
+ if (wrkDetl1.getAnfme() == 0) {
+ iterator1.remove();
+ }
+ if (wrkDetl.getMatnr().equals(wrkDetl1.getMatnr()) && Cools.eq(wrkDetl.getBatch(), wrkDetl1.getBatch())) {
+ if (!wrkDetl.getAnfme().equals(wrkDetl1.getAnfme())) {
+ // todo 鐩樼偣璁板綍銆佷繚瀛樿皟鏁磋褰�
+ // 淇敼鏄庣粏
+ if (!wrkDetlService.updateAnfme(wrkDetl1.getAnfme(), wrkMast.getWrkNo(), wrkDetl.getMatnr(), wrkDetl.getBatch())) {
+ throw new CoolException(wrkMast.getWrkNo() + "鐩樼偣浠诲姟锛�" + wrkDetl.getMatnr() + "鍟嗗搧锛�" + wrkDetl.getBatch() + "鎵瑰彿淇敼鏁伴噺澶辫触");
+ }
+ }
+ iterator.remove();
+ iterator1.remove();
+ }
+ }
+ }
+
+ // 鍒犻櫎鏄庣粏
+ for (WrkDetl wrkDetl : wrkDetls) {
+ // todo 鐩樼偣璁板綍銆佷繚瀛樿皟鏁磋褰�
+ if (!wrkDetlService.updateAnfme(-1.0D, wrkMast.getWrkNo(), wrkDetl.getMatnr(), wrkDetl.getBatch())) {
+ throw new CoolException("鍒犻櫎" + wrkMast.getWrkNo() + "鐩樼偣浠诲姟锛�" + wrkDetl.getMatnr() + "鍟嗗搧锛�" + wrkDetl.getBatch() + "鎵瑰彿浠诲姟鏄庣粏澶辫触");
+ }
+ }
+
+ // 娣诲姞鏄庣粏
+ for (WrkDetl wrkDetl : list) {
+ if (wrkDetl.getAnfme() == 0.0D) { continue; }
+ // todo 鐩樼偣璁板綍銆佷繚瀛樿皟鏁磋褰�
+ String orderNo = wrkDetl.getOrderNo();
+ Mat mat = matService.selectByMatnr(wrkDetl.getMatnr());
+ wrkDetl.sync(mat);
+ wrkDetl.setOrderNo(orderNo);
+ wrkDetl.setModiTime(now);
+ wrkDetl.setModiUser(userId);
+ wrkDetl.setAppeTime(now);
+ wrkDetl.setAppeUser(userId);
+ if (!wrkDetlService.insert(wrkDetl)) {
+ throw new CoolException("娣诲姞" + wrkMast.getWrkNo() + "鐩樼偣浠诲姟锛�" + wrkDetl.getMatnr() + "鍟嗗搧锛�" + wrkDetl.getBatch() + "鎵瑰彿浠诲姟鏄庣粏澶辫触");
+ }
+ }
+
+ // 淇敼鐩樼偣浠诲姟涓绘。鐘舵��
+ wrkMast.setFullPlt(wrkDetlService.selectByWrkNo(wrkMast.getWrkNo()).size() != 0?"Y":"N");
+ wrkMast.setModiTime(now);
+ wrkMast.setModiUser(userId);
+ if (!wrkMastService.updateById(wrkMast)) {
+ throw new CoolException("淇敼鐩樼偣浠诲姟涓绘。澶辫触");
+ }
}
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 b051cbf..671ec8c 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -663,7 +663,7 @@
locDetl.setAppeUser(userId);
locDetl.setAppeTime(now);
if (!locDetlService.insert(locDetl)) {
- throw new CoolException("淇濆瓨搴撳瓨鏄庣粏澶辫触");
+ throw new CoolException("娣诲姞" + locDetl.getLocNo() + "搴撲綅锛�" + locDetl.getMatnr() + "鍟嗗搧锛�" + locDetl.getBatch() + "鎵瑰彿搴撳瓨鏄庣粏澶辫触");
}
// 淇濆瓨璋冩暣璁板綍
AdjDetl adjDetl = new AdjDetl();
diff --git a/src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java
index 61b9883..263ee27 100644
--- a/src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java
@@ -56,4 +56,13 @@
public List<WrkDetl> selectByWrkNo(Integer wrkNo) {
return this.baseMapper.selectByWrkNo(wrkNo);
}
+
+ @Override
+ public boolean updateAnfme(Double anfme, Integer wrkNo, String matnr, String batch) {
+ if (anfme <= 0) {
+ return this.baseMapper.deleteItem(wrkNo, matnr, batch) > 0;
+ } else {
+ return baseMapper.updateAnfme(anfme, wrkNo, matnr, batch) > 0;
+ }
+ }
}
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 0016f8a..4f9e757 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -204,7 +204,7 @@
}
// 淇敼搴撲綅鐘舵�� Q ====>> F
if (locMast.getLocSts().equals("Q")) {
- locMast.setLocSts("F");
+ locMast.setLocSts(wrkMast.getFullPlt().equals("Y")?"F":"D");
locMast.setBarcode(wrkMast.getBarcode());
locMast.setIoTime(now);
locMast.setModiTime(now);
diff --git a/src/main/resources/mapper/WrkDetlMapper.xml b/src/main/resources/mapper/WrkDetlMapper.xml
index f369802..89bb3e1 100644
--- a/src/main/resources/mapper/WrkDetlMapper.xml
+++ b/src/main/resources/mapper/WrkDetlMapper.xml
@@ -47,8 +47,38 @@
<result column="memo" property="memo" />
</resultMap>
+ <sql id="batchSeq">
+ <choose>
+ <when test="batch != null and batch != ''">
+ and batch = #{batch}
+ </when>
+ <otherwise>
+ and (batch IS NULL OR batch = '')
+ </otherwise>
+ </choose>
+ </sql>
+
+
<select id="selectByWrkNo" resultMap="BaseResultMap">
select * from asr_wrk_detl where 1=1 and wrk_no = #{wrkNo}
</select>
+ <delete id="deleteItem">
+ delete from asr_wrk_detl
+ where 1=1
+ and wrk_no = #{wrkNo}
+ and matnr = #{matnr}
+ <include refid="batchSeq"></include>
+ </delete>
+
+ <update id="updateAnfme">
+ update asr_wrk_detl
+ set anfme = #{anfme}
+ , modi_time = getdate()
+ where 1=1
+ and wrk_no = #{wrkNo}
+ and matnr = #{matnr}
+ <include refid="batchSeq"></include>
+ </update>
+
</mapper>
--
Gitblit v1.9.1