From 55aa93a62254ff4fdfd1bb4163e55cac09b40302 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期二, 29 三月 2022 10:27:46 +0800
Subject: [PATCH] #
---
src/main/resources/mapper/OrderDetlMapper.xml | 15 +++++
src/main/java/com/zy/asrs/utils/VersionUtils.java | 11 +++
src/main/java/com/zy/asrs/service/OrderDetlService.java | 2
src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java | 2
src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java | 5 +
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 30 +++++-----
src/main/resources/mapper/LocDetlMapper.xml | 1
src/main/java/com/zy/asrs/service/StaDescService.java | 2
src/main/java/com/zy/common/model/TaskDto.java | 38 +++++++++---
src/main/java/com/zy/asrs/controller/OutController.java | 2
src/main/java/com/zy/asrs/service/impl/StaDescServiceImpl.java | 26 ++++++++
11 files changed, 107 insertions(+), 27 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java
index 483db64..1f44421 100644
--- a/src/main/java/com/zy/asrs/controller/OutController.java
+++ b/src/main/java/com/zy/asrs/controller/OutController.java
@@ -86,7 +86,7 @@
List<OrderDetl> orderDetls = orderDetlService.selectBatchIds(ids);
List<LocDto> locDtos = new ArrayList<>();
for (OrderDetl orderDetl : orderDetls) {
- double issued = Optional.ofNullable(orderDetl.getAnfme()).orElse(0.0D) ;
+ double issued = Optional.ofNullable(orderDetl.getAnfme()).orElse(0.0D);
List<LocDetl> locDetls = locDetlService.queryStock(orderDetl.getMatnr(), orderDetl.getBatch(), null);
for (LocDetl locDetl : locDetls) {
if (issued > 0) {
diff --git a/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java b/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java
index d098b7a..b2c328a 100644
--- a/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java
@@ -14,6 +14,8 @@
OrderDetl selectItem(@Param("orderId") Long orderId, @Param("matnr") String matnr, @Param("batch") String batch);
+ OrderDetl selectItemByOrderNo(@Param("orderNo") String orderNo, @Param("matnr") String matnr, @Param("batch") String batch);
+
List<OrderDetl> selectWorkingDetls(Long orderId);
int increase(@Param("orderId")Long orderId, @Param("matnr")String matnr, @Param("batch")String batch, @Param("qty")Double qty);
diff --git a/src/main/java/com/zy/asrs/service/OrderDetlService.java b/src/main/java/com/zy/asrs/service/OrderDetlService.java
index 8db8550..288c794 100644
--- a/src/main/java/com/zy/asrs/service/OrderDetlService.java
+++ b/src/main/java/com/zy/asrs/service/OrderDetlService.java
@@ -11,6 +11,8 @@
OrderDetl selectItem(Long orderId, String matnr, String batch);
+ OrderDetl selectItem(String orderNo, String matnr, String batch);
+
OrderDetl findByLook(List<OrderDetl> orderDetls, Long orderId, String matnr, String batch);
boolean increase(Long orderId, String matnr, String batch, Double qty);
diff --git a/src/main/java/com/zy/asrs/service/StaDescService.java b/src/main/java/com/zy/asrs/service/StaDescService.java
index a5824b1..fcbe144 100644
--- a/src/main/java/com/zy/asrs/service/StaDescService.java
+++ b/src/main/java/com/zy/asrs/service/StaDescService.java
@@ -9,4 +9,6 @@
List<Integer> queryOutStaNosByLocNo(String locNo, Integer typeNo);
+ StaDesc queryCrnStn(Integer typeNo, Integer crnNo, Integer stnNo);
+
}
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 a823d3e..65e721f 100644
--- a/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java
@@ -24,6 +24,11 @@
}
@Override
+ public OrderDetl selectItem(String orderNo, String matnr, String batch) {
+ return this.baseMapper.selectItemByOrderNo(orderNo, matnr, batch);
+ }
+
+ @Override
public OrderDetl findByLook(List<OrderDetl> orderDetls, Long orderId, String matnr, String batch) {
for (OrderDetl orderDetl : orderDetls) {
if (orderDetl.getOrderId().equals(orderId) && orderDetl.getMatnr().equals(matnr)) {
diff --git a/src/main/java/com/zy/asrs/service/impl/StaDescServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/StaDescServiceImpl.java
index 38c9dd1..733612b 100644
--- a/src/main/java/com/zy/asrs/service/impl/StaDescServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/StaDescServiceImpl.java
@@ -1,6 +1,10 @@
package com.zy.asrs.service.impl;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.core.common.Cools;
+import com.core.exception.CoolException;
import com.zy.asrs.entity.StaDesc;
import com.zy.asrs.mapper.StaDescMapper;
import com.zy.asrs.service.StaDescService;
@@ -15,4 +19,26 @@
public List<Integer> queryOutStaNosByLocNo(String locNo, Integer typeNo) {
return this.baseMapper.queryOutStaNosByLocNo(locNo, typeNo);
}
+
+ @Override
+ public StaDesc queryCrnStn(Integer typeNo, Integer crnNo, Integer stnNo) {
+ Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
+ .eq("type_no", typeNo)
+ .eq("stn_no", stnNo)
+ .eq("crn_no", crnNo);
+ StaDesc staDesc = this.selectOne(wrapper);
+ if (staDesc == null) {
+ wrapper = new EntityWrapper<StaDesc>()
+ .eq("type_no", typeNo)
+ .eq("crn_no", crnNo);
+ List<StaDesc> staDescs = this.selectList(wrapper);
+ if (Cools.isEmpty(staDescs)) {
+ throw new CoolException("鍑哄簱璺緞涓嶅瓨鍦�");
+ }
+ // todo:luxiaotao
+ return staDescs.get(0);
+ }
+ return staDesc;
+ }
+
}
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 e218f63..0ce118a 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -68,6 +68,10 @@
private WmsService wmsService;
@Autowired
private SnowflakeIdWorker snowflakeIdWorker;
+ @Autowired
+ private OrderService orderService;
+ @Autowired
+ private OrderDetlService orderDetlService;
@Override
@Transactional
@@ -273,15 +277,8 @@
// 鑾峰彇搴撲綅
LocMast locMast = locMastService.selectById(taskDto.getLocNo());
// 鑾峰彇璺緞
- Integer ioType = taskDto.isAll() ? 101 : 103;
- Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
- .eq("type_no", ioType)
- .eq("stn_no", staNo.getDevNo())
- .eq("crn_no", locMast.getCrnNo());
- StaDesc staDesc = staDescService.selectOne(wrapper);
- if (Cools.isEmpty(staDesc)) {
- throw new CoolException("鍑哄簱璺緞涓嶅瓨鍦�");
- }
+ int ioType = taskDto.isAll() ? 101 : 103;
+ StaDesc staDesc = staDescService.queryCrnStn(ioType, locMast.getCrnNo(), staNo.getDevNo());
// 鐢熸垚宸ヤ綔鍙�
int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
// 鐢熸垚宸ヤ綔妗�
@@ -309,14 +306,17 @@
}
// 鐢熸垚宸ヤ綔妗f槑缁�
for (LocDto locDto : taskDto.getLocDtos()) {
- // 鍑哄簱鏃讹紝鏁伴噺涓�0鐨勭洿鎺ュ拷鐣�
- if (detlDto.getCount()==null || detlDto.getCount() <= 0.0D) {continue;}
+ if (locDto.getAnfme()==null || locDto.getAnfme() <= 0.0D) { continue; }
+
+ OrderDetl orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch());
+
WrkDetl wrkDetl = new WrkDetl();
+ wrkDetl.setIoTime(now);
wrkDetl.setWrkNo(workNo);
- wrkDetl.setIoTime(new Date());
- Double anfme = ioType==101?detlDto.getLocDetl().getAnfme():detlDto.getCount();
- wrkDetl.setAnfme(anfme); // 鏁伴噺
- VersionUtils.setWrkDetl(wrkDetl, detlDto.getLocDetl()); // 鐗堟湰鎺у埗
+ wrkDetl.setBatch(locDto.getBatch());
+ wrkDetl.setOrderNo(locDto.getOrderNo());
+ wrkDetl.setAnfme(locDto.getAnfme()); // 鏁伴噺
+ VersionUtils.setWrkDetl(wrkDetl, orderDetl); // 鐗堟湰鎺у埗
wrkDetl.setAppeTime(now);
wrkDetl.setAppeUser(userId);
wrkDetl.setModiTime(now);
diff --git a/src/main/java/com/zy/asrs/utils/VersionUtils.java b/src/main/java/com/zy/asrs/utils/VersionUtils.java
index 55377b5..07bf914 100644
--- a/src/main/java/com/zy/asrs/utils/VersionUtils.java
+++ b/src/main/java/com/zy/asrs/utils/VersionUtils.java
@@ -100,6 +100,17 @@
waitPakIn.setAltme(orderDetl.getUnit()); // 鍗曚綅
}
+ public static void setWrkDetl(WrkDetl wrkDetl, OrderDetl orderDetl) {
+ wrkDetl.setMatnr(orderDetl.getMatnr()); // 鐗╂枡缂栧彿
+ wrkDetl.setMaktx(orderDetl.getMaktx()); // 鐗╂枡鎻忚堪
+ wrkDetl.setBatch(orderDetl.getBatch());
+ wrkDetl.setOrderNo(orderDetl.getOrderNo());
+ wrkDetl.setLgnum(orderDetl.getSpecs()); // 瑙勬牸
+ wrkDetl.setType(orderDetl.getModel()); // 鍨嬪彿
+ wrkDetl.setSupplier(orderDetl.getSupplier()); // 鎵瑰彿
+ wrkDetl.setAltme(orderDetl.getUnit()); // 鍗曚綅
+ }
+
// excel ----------------------------------------------------------------------
diff --git a/src/main/java/com/zy/common/model/TaskDto.java b/src/main/java/com/zy/common/model/TaskDto.java
index afcf9d0..63ea7b4 100644
--- a/src/main/java/com/zy/common/model/TaskDto.java
+++ b/src/main/java/com/zy/common/model/TaskDto.java
@@ -8,10 +8,7 @@
import com.zy.asrs.service.LocDetlService;
import lombok.Data;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
/**
* Created by vincent on 2022/3/28
@@ -74,28 +71,47 @@
// 姹囨�讳笉鑰冭檻鎵瑰彿
List<DetlDto> detlDtos = new ArrayList<>();
for (LocDto locDto : this.getLocDtos()) {
- DetlDto dto = new DetlDto(locDto.getMatnr(), null, locDto.getAnfme());
+ DetlDto dto = new DetlDto(locDto.getMatnr(), locDto.getBatch(), locDto.getAnfme());
if (DetlDto.has(detlDtos, dto)) {
- DetlDto detlDto = DetlDto.find(detlDtos, locDto.getMatnr(), null);
+ DetlDto detlDto = DetlDto.find(detlDtos, locDto.getMatnr(), dto.getBatch());
assert detlDto != null;
detlDto.setAnfme(detlDto.getAnfme() + locDto.getAnfme());
} else {
- detlDtos.add(new DetlDto(locDto.getMatnr(), null, locDto.getAnfme()));
+ detlDtos.add(new DetlDto(locDto.getMatnr(), locDto.getBatch(), locDto.getAnfme()));
}
}
// 鏌ヨ褰撳墠搴撲綅鍙锋墍鏈夌殑搴撳瓨鏄庣粏
LocDetlService locDetlService = SpringUtils.getBean(LocDetlService.class);
- // todo
List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", this.locNo));
if (locDetls == null || locDetls.isEmpty()){
- throw new CoolException("璁$畻婊℃澘澶辫触锛屽簱浣嶅彿=" + this.locNo);
+ throw new CoolException("妫�绱㈠簱瀛樻槑缁嗗け璐ワ紝搴撲綅鍙�=" + this.locNo);
}
int sameNumber = 0;
for (LocDetl locDetl : locDetls) {
- for (DetlDto detlDto : detlDtos) {
- if (detlDto.getLocDetl().getMatnr().equals(locDetl.getMatnr()) && dto.getCount().equals(locDetl.getAnfme())) {
+ Iterator<DetlDto> iterator = detlDtos.iterator();
+ while (iterator.hasNext()) {
+ DetlDto dto = iterator.next();
+ if (!dto.getMatnr().equals(locDetl.getMatnr())) {
+ continue;
+ }
+ if (Cools.isEmpty(dto.getBatch()) && !Cools.isEmpty(locDetl.getBatch())) {
+ continue;
+ }
+ if (!Cools.isEmpty(dto.getBatch()) && Cools.isEmpty(locDetl.getBatch())) {
+ continue;
+ }
+ if (!Cools.isEmpty(dto.getBatch()) && !Cools.isEmpty(locDetl.getBatch())) {
+ if (!dto.getBatch().equals(locDetl.getBatch())) {
+ continue;
+ }
+ }
+ if (dto.getAnfme() > locDetl.getAnfme()) {
+ throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇�");
+ }
+ if (dto.getAnfme().equals(locDetl.getAnfme())) {
sameNumber++;
+ iterator.remove();
break;
}
}
diff --git a/src/main/resources/mapper/LocDetlMapper.xml b/src/main/resources/mapper/LocDetlMapper.xml
index 6ee3578..a7bd79d 100644
--- a/src/main/resources/mapper/LocDetlMapper.xml
+++ b/src/main/resources/mapper/LocDetlMapper.xml
@@ -158,6 +158,7 @@
order by
DATEPART(yyyy,a.modi_time),DATEPART(mm,a.modi_time),DATEPART(dd,a.modi_time)
desc,
+ NEWID(),
case
when (left(a.loc_no, 2) = '01') then 0
when (left(a.loc_no, 2) = '02') then 1
diff --git a/src/main/resources/mapper/OrderDetlMapper.xml b/src/main/resources/mapper/OrderDetlMapper.xml
index 949aa5e..2875292 100644
--- a/src/main/resources/mapper/OrderDetlMapper.xml
+++ b/src/main/resources/mapper/OrderDetlMapper.xml
@@ -46,6 +46,21 @@
</choose>
</select>
+ <select id="selectItemByOrderNo" resultMap="BaseResultMap">
+ select * from man_order_detl
+ where 1=1
+ and order_no = #{orderNo}
+ and matnr = #{matnr}
+ <choose>
+ <when test="batch != null and batch != ''">
+ and batch = #{batch}
+ </when>
+ <otherwise>
+ and (batch IS NULL OR batch = '')
+ </otherwise>
+ </choose>
+ </select>
+
<select id="selectWorkingDetls" resultMap="BaseResultMap">
select * from man_order_detl
where 1=1
--
Gitblit v1.9.1