From bab6283f5c0b5da44b7a342f9daef35473a13ab7 Mon Sep 17 00:00:00 2001
From: dubin <bindu_bean@163.com>
Date: 星期四, 16 四月 2026 14:54:57 +0800
Subject: [PATCH] 初始化
---
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java | 255 +++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 218 insertions(+), 37 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
index c2d19b7..3c0f0a7 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -6,9 +6,11 @@
import com.core.common.SnowflakeIdWorker;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
+import com.zy.asrs.entity.enums.WKType;
import com.zy.asrs.entity.param.*;
import com.zy.asrs.entity.result.OpenOrderCompeteResult;
import com.zy.asrs.entity.result.StockVo;
+import com.zy.asrs.entity.vo.OpenInventoryVo;
import com.zy.asrs.mapper.TagMapper;
import com.zy.asrs.service.*;
import com.zy.asrs.utils.MatUtils;
@@ -19,10 +21,8 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
+import java.util.stream.Collectors;
/**
* Created by vincent on 2022/4/9
@@ -60,7 +60,7 @@
@Transactional
public void pakinOrderCreate(OpenOrderPakinParam param) {
Order order = orderService.selectByNo(param.getOrderNo());
- if (!Cools.isEmpty(order) && order.getSettle() !=1) {
+ if (!Cools.isEmpty(order) && order.getSettle() != 1) {
throw new CoolException(param.getOrderNo() + "鍗曟嵁宸叉湁宸ヤ綔浠诲姟");
}
if (!Cools.isEmpty(order)) {
@@ -114,8 +114,8 @@
List<DetlDto> list = new ArrayList<>();
List<DetlDto> orderDetails = param.getOrderDetails();
for (DetlDto detail : orderDetails) {
- DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(), detail.getAnfme(),detail.getFromOrderNo()
- , detail.getMark(),detail.getCustomer(),detail.getSuppName(),detail.getTemp1(),detail.getTemp2(),detail.getTemp3(),detail.getTemp4());
+ DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(), detail.getAnfme(), detail.getFromOrderNo()
+ , detail.getMark(), detail.getCustomer(), detail.getSuppName(), detail.getTemp1(), detail.getTemp2(), detail.getTemp3(), detail.getTemp4());
if (DetlDto.has(list, dto)) {
DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch());
assert detlDto != null;
@@ -260,8 +260,8 @@
List<DetlDto> list = new ArrayList<>();
List<DetlDto> orderDetails = param.getOrderDetails();
for (DetlDto detail : orderDetails) {
- DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(), detail.getAnfme(),detail.getFromOrderNo()
- , detail.getMark(),detail.getCustomer(),detail.getSuppName(),detail.getTemp1(),detail.getTemp2(),detail.getTemp3(),detail.getTemp4());
+ DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(), detail.getAnfme(), detail.getFromOrderNo()
+ , detail.getMark(), detail.getCustomer(), detail.getSuppName(), detail.getTemp1(), detail.getTemp2(), detail.getTemp3(), detail.getTemp4());
if (DetlDto.has(list, dto)) {
DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch());
assert detlDto != null;
@@ -472,33 +472,94 @@
@Override
@Transactional
public void syncMat(MatSyncParam param) {
- if (Cools.isEmpty(param.getMatDetails()) || param.getMatDetails().size() <=0 ) {
+ if (Cools.isEmpty(param.getMatDetails()) || param.getMatDetails().size() <= 0) {
throw new CoolException("鍟嗗搧鏁版嵁涓虹┖");
}
- for(MatSyncParam.MatParam matParam : param.getMatDetails()){
- if(Cools.isEmpty(matParam.getMatnr())){
+ for (MatSyncParam.MatParam matParam : param.getMatDetails()) {
+ if (Cools.isEmpty(matParam.getMatnr())) {
throw new CoolException("鍟嗗搧缂栫爜涓嶈兘涓虹┖");
}
Date now = new Date();
Mat mat = matService.selectByMatnr(matParam.getMatnr());
- // 鍒嗙被
- Long tagId;
- // 涓�绾у垎绫�
- Tag tag = tagService.selectOne(new EntityWrapper<Tag>().eq("memo", matParam.getGroupCode()));
- if (tag == null) {
- throw new CoolException("鍑洪敊锛屾湭鎵惧埌鍒嗙被");
- }
if (mat == null) {
mat = new Mat();
+ // 鍒嗙被
+ Long tagId;
+ // 涓�绾у垎绫�
+ if (!Cools.isEmpty(matParam.getGroupCode()) && !Cools.isEmpty(matParam.getGroupName())) {
+ Tag priTag = tagService.selectByName(matParam.getGroupCode(), 2);
+ if (priTag == null) {
+ Tag top = tagService.getTop();
+ NodeUtils nodeUtils = new NodeUtils();
+ nodeUtils.executePath(top.getId());
+ priTag = new Tag(
+ null, // 缂栧彿
+ matParam.getGroupCode(), // 鍚嶇О
+ top.getId(), // 鐖剁骇
+ top.getName(), // 鐖剁骇鍚嶇О
+ nodeUtils.path.toString(), // 鍏宠仈璺緞
+ nodeUtils.pathName.toString(), // 鍏宠仈璺緞鍚�
+ 0, // 绫诲瀷
+ null, // 璐熻矗浜�
+ null, // 鍥剧墖
+ null, // 绠�瑕佹弿杩�
+ null, // 鏁伴噺
+ 2, // 绛夌骇
+ null, // 鎺掑簭
+ 1, // 鐘舵��
+ now, // 娣诲姞鏃堕棿
+ null, // 娣诲姞浜哄憳
+ now, // 淇敼鏃堕棿
+ null, // 淇敼浜哄憳
+ null // 澶囨敞
+ );
+ if (tagMapper.insert(priTag) == 0) {
+ throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
+ }
+ }
+ // 浜岀骇鍒嗙被
+ Tag secTag = tagService.selectByName(matParam.getGroupName(), 3);
+ if (secTag == null) {
+ NodeUtils nodeUtils = new NodeUtils();
+ nodeUtils.executePath(priTag.getId());
+ secTag = new Tag(
+ null, // 缂栧彿
+ matParam.getGroupName(), // 鍚嶇О
+ priTag.getId(), // 鐖剁骇
+ priTag.getName(), // 鐖剁骇鍚嶇О
+ nodeUtils.path.toString(), // 鍏宠仈璺緞
+ nodeUtils.pathName.toString(), // 鍏宠仈璺緞鍚�
+ 0, // 绫诲瀷
+ null, // 璐熻矗浜�
+ null, // 鍥剧墖
+ null, // 绠�瑕佹弿杩�
+ null, // 鏁伴噺
+ 3, // 绛夌骇
+ null, // 鎺掑簭
+ 1, // 鐘舵��
+ now, // 娣诲姞鏃堕棿
+ null, // 娣诲姞浜哄憳
+ now, // 淇敼鏃堕棿
+ null, // 淇敼浜哄憳
+ null // 澶囨敞
+ );
+ if (tagMapper.insert(secTag) == 0) {
+ throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
+ }
+ }
+ tagId = secTag.getId();
+ } else {
+ tagId = tagService.getTop().getId();
+ }
mat.sync(matParam);
// mat.setMatnr(param.getMatnr());
// mat.setMaktx(param.getMaktx());
// mat.setSpecs(param.getSpecs());
// mat.setModel(param.getModel());
- mat.setTagId(tag.getId());
+ mat.setTagId(tagId);
mat.setStatus(1);
mat.setCreateTime(now);
mat.setUpdateTime(now);
@@ -509,8 +570,7 @@
}
} else {
mat.sync(matParam);
- mat.setTagId(tag.getId());
- if (!matService.update(mat, new EntityWrapper<Mat>().eq("matnr",matParam.getMatnr()))) {
+ if (!matService.update(mat, new EntityWrapper<Mat>().eq("matnr", matParam.getMatnr()))) {
throw new CoolException("鏇存柊宸插瓨鍦ㄥ晢鍝佷俊鎭け璐ワ紝璇疯仈绯荤鐞嗗憳");
}
}
@@ -523,21 +583,21 @@
public List<LocDetlByTimeDTO> selectTimeLocDetl(TimeSelectParam param) {
ArrayList<LocDetlByTimeDTO> locDetlByTimeDTOS = new ArrayList<>();
EntityWrapper<WrkMastLog> wrkMastLogEntityWrapper = new EntityWrapper<>();
- wrkMastLogEntityWrapper.ge("modi_time",param.getStartTime());
- wrkMastLogEntityWrapper.le("modi_time",param.getEndTime());
+ wrkMastLogEntityWrapper.ge("modi_time", param.getStartTime());
+ wrkMastLogEntityWrapper.le("modi_time", param.getEndTime());
// wrkMastLogEntityWrapper.isNotNull("sheet_no");
wrkMastLogService.selectList(wrkMastLogEntityWrapper).forEach(wrkMastLog -> {
if (wrkMastLog.getWrkSts() == 5 || wrkMastLog.getWrkSts() == 15) {
EntityWrapper<WrkDetlLog> wrkDetlLogEntityWrapper = new EntityWrapper<>();
wrkDetlLogEntityWrapper.eq("wrk_no", wrkMastLog.getWrkNo());
- if (wrkMastLog.getIoType() != 300 && wrkMastLog.getIoType() != 301){
+ if (wrkMastLog.getIoType() != 300 && wrkMastLog.getIoType() != 301) {
wrkDetlLogEntityWrapper.eq("zpallet", wrkMastLog.getBarcode());
}
List<WrkDetlLog> wrkDetlLogs = wrkDetlLogService.selectList(wrkDetlLogEntityWrapper);
wrkDetlLogs.forEach(wrkDetlLog -> {
if (wrkDetlLog.getOrderNo() != null && !wrkDetlLog.getOrderNo().isEmpty()) {
LocDetlByTimeDTO locDetlByTimeDTO = new LocDetlByTimeDTO();
- if (!Cools.isEmpty(wrkDetlLog.getOrderNo())){
+ if (!Cools.isEmpty(wrkDetlLog.getOrderNo())) {
Order order = orderService.selectByNo(wrkDetlLog.getOrderNo());
if (!Cools.isEmpty(order)) {
locDetlByTimeDTO.setDate(order.getOrderTime());
@@ -545,7 +605,7 @@
locDetlByTimeDTO.setOrderType(order.getDocType$());
}
locDetlByTimeDTO.setMatnr(wrkDetlLog.getMatnr());
- locDetlByTimeDTO.setLocNo(wrkMastLog.getIoType() <100? wrkMastLog.getLocNo(): wrkMastLog.getSourceLocNo());
+ locDetlByTimeDTO.setLocNo(wrkMastLog.getIoType() < 100 ? wrkMastLog.getLocNo() : wrkMastLog.getSourceLocNo());
locDetlByTimeDTO.setBatch(wrkDetlLog.getBatch());
locDetlByTimeDTO.setAnfme(wrkDetlLog.getAnfme());
locDetlByTimeDTO.setOrderNo(wrkDetlLog.getOrderNo());
@@ -595,11 +655,11 @@
@Transactional
public void syncTag(List<TagParam> param) {
- param.forEach(tag-> {
+ param.forEach(tag -> {
// 鍒嗙被
Long tagId;
Date now = new Date();
- if (Cools.isEmpty(tag.getParentItemClassId())){
+ if (Cools.isEmpty(tag.getParentItemClassId())) {
Tag priTag = tagService.selectByName("鍏ㄩ儴", 1);
// 浜岀骇鍒嗙被
@@ -632,8 +692,8 @@
throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
}
}
- }else {
- Tag priTag =tagService.selectOne(new EntityWrapper<Tag>().eq("memo", tag.getParentItemClassId()));
+ } else {
+ Tag priTag = tagService.selectOne(new EntityWrapper<Tag>().eq("memo", tag.getParentItemClassId()));
if (priTag == null) {
Tag top = tagService.getTop();
NodeUtils nodeUtils = new NodeUtils();
@@ -693,7 +753,7 @@
if (tagMapper.insert(secTag) == 0) {
throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
}
- }else {
+ } else {
secTag.setName(tag.getName());
secTag.setParentId(priTag.getId());
secTag.setParentName(priTag.getName());
@@ -706,15 +766,13 @@
List<Tag> tags = tagService.selectList(new EntityWrapper<Tag>().eq("parent_id", secTag.getId()));
if (!Cools.isEmpty(tags)) {
for (Tag tag1 : tags) {
- tag1.setPath(nodeUtils.path.toString()+","+secTag.getId());
- tag1.setPathName(nodeUtils.pathName.toString()+","+secTag.getName());
+ tag1.setPath(nodeUtils.path.toString() + "," + secTag.getId());
+ tag1.setPathName(nodeUtils.pathName.toString() + "," + secTag.getName());
if (tagMapper.updateById(tag1) == 0) {
throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
}
}
}
-
-
}
@@ -723,6 +781,7 @@
}
});
}
+
@Transactional
@Override
public void orderDelete(String orderNo) {
@@ -730,7 +789,7 @@
if (order == null) {
throw new CoolException("鏈煡璇㈠埌瀵瑰簲璁㈠崟淇℃伅");
}
- if (order.getSettle() != 1){
+ if (order.getSettle() != 1) {
throw new CoolException("璇ヨ鍗曞凡鏈夊搴斾换鍔★紝绂佹鍒犻櫎");
}
List<OrderDetl> OrderDetl = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_no", orderNo));
@@ -739,4 +798,126 @@
}
orderService.delete(new EntityWrapper<Order>().eq("order_no", orderNo));
}
+
+ /**
+ * 鍏�/鍑哄簱閫氱煡鍗曚笅鍙�
+ *
+ * @param param
+ */
+ @Override
+ @Transactional
+ public void orderCreate(OpenOrderParam param) {
+ Order order = orderService.selectByNo(param.getOrderNo());
+ if (!Cools.isEmpty(order)) {
+ throw new CoolException(param.getOrderNo() + "璁㈠崟宸插瓨鍦紝璇峰嬁閲嶅鍒涘缓");
+ }
+ Date now = new Date();
+ order = new Order(
+ String.valueOf(snowflakeIdWorker.nextId()), // 缂栧彿[闈炵┖]
+ param.getOrderNo(), // 璁㈠崟缂栫爜[闈炵┖]
+ DateUtils.convert(now), //鍗曟嵁鏃ユ湡
+ WKType.query(param.getWkType()).wkType, //鍗曟嵁绫诲瀷
+ null, //椤圭洰缂栧彿
+ null, //椤圭洰鍚嶇О 瀹㈡埛PO鍙�
+ null, //璋冩嫧椤圭洰缂栧彿
+ null, //鍒濆绁ㄦ嵁鍙�
+ null, //绁ㄦ嵁鍙�
+ null, //瀹㈡埛缂栧彿
+ null, //瀹㈡埛
+ param.getOrderInternalCode(), //鍗曟嵁鍐呯爜
+ null, //鎿嶄綔浜哄憳
+ null, //鍚堣閲戦
+ null, //浼樻儬鐜�
+ null, //浼樻儬閲戦
+ null, //閿�鍞垨閲囪喘璐圭敤鍚堣
+ null, //瀹炰粯閲戦
+ null, //浠樻绫诲瀷 1: 鐜伴噾 2: 璁拌处
+ null, //涓氬姟鍛�
+ null, //缁撶畻澶╂暟
+ null, //閭垂鏀粯绫诲瀷 1: 鍦ㄧ嚎鏀粯 2: 璐у埌浠樻
+ null, //閭垂
+ param.getBusinessTime(), //涓氬姟鏃ユ湡
+ param.getCreateTime(), //鍒涘缓鏃ユ湡
+ null, //鐗╂祦鍚嶇О
+ null, //鐗╂祦鍗曞彿
+ 1L, //璁㈠崟鐘舵��
+ 1, //鐘舵�� 1: 姝e父 0: 绂佺敤
+ 9527L, //娣诲姞浜哄憳
+ now, //娣诲姞鏃堕棿
+ 9527L, //淇敼浜哄憳
+ now, //淇敼鏃堕棿
+ param.getStationId(), //鍏�/鍑哄簱鎺ラ┏绔欑偣
+ param.getOperateType(), // 鎿嶄綔绫诲瀷 1.鏂板 2.淇敼 3.鍙栨秷
+ param.getOrderType() // 璁㈠崟绫诲瀷 1 鍑哄簱鍗� 2 鍏ュ簱鍗� 3 璋冩嫧鍗�
+ );
+ if (!orderService.insert(order)) {
+ throw new CoolException("淇濆瓨璁㈠崟涓绘。澶辫触,璇疯仈绯荤鐞嗗憳锛�" + order);
+ }
+ List<OpenOrderParam.OrderItem> list = new ArrayList<>();
+ List<OpenOrderParam.OrderItem> orderItems = param.getOrderItems();
+ for (OpenOrderParam.OrderItem item : orderItems) {
+ OpenOrderParam.OrderItem orderItem = new OpenOrderParam.OrderItem(
+ item.getLineId(),
+ item.getMatNr(),
+ item.getMakTx(),
+ item.getAnfme(),
+ item.getSpec(),
+ item.getModel(),
+ item.getUnit(),
+ item.getBatch(),
+ item.getPalletId(),
+ item.getPlanNo(),
+ item.getTargetWareHouseId(),
+ item.getSourceWareHouseId()
+ );
+ if (OpenOrderParam.OrderItem.hasLineNumber(list, orderItem)) {
+ OpenOrderParam.OrderItem oi = OpenOrderParam.OrderItem.findLineNumber(
+ list,
+ item.getLineId(),
+ item.getMatNr(),
+ item.getMakTx(),
+ item.getAnfme(),
+ item.getSpec(),
+ item.getModel(),
+ item.getUnit(),
+ item.getBatch(),
+ item.getPalletId(),
+ item.getPlanNo(),
+ item.getTargetWareHouseId(),
+ item.getSourceWareHouseId()
+ );
+ assert oi != null;
+ oi.setAnfme(oi.getAnfme() + orderItem.getAnfme());
+ } else {
+ list.add(orderItem);
+ }
+ }
+ for (OpenOrderParam.OrderItem orderItem : list) {
+ Mat mat = matService.selectByMatnr(orderItem.getMatNr());
+ if (Cools.isEmpty(mat)) {
+ throw new CoolException("璁㈠崟鏄庣粏涓殑鍟嗗搧缂栧彿涓嶅瓨鍦細" + orderItem.getMatNr());
+ }
+ OrderDetl orderDetl = new OrderDetl();
+ orderDetl.sync(mat);
+ orderDetl.setOrderNo(order.getOrderNo()); // 璁㈠崟缂栧彿
+ orderDetl.setOrderId(order.getId()); // 璁㈠崟鍐呯爜
+ orderDetl.setStandby1(order.getTel()); // 琛屽唴鐮� 鍞竴鏍囪瘑
+ orderDetl.setAnfme(orderItem.getAnfme()); // 璁㈠崟鏁伴噺
+ orderDetl.setBarcode(orderItem.getBatch()); // 鎵规
+ orderDetl.setStandby2(orderItem.getPalletId()); // 鎵樼洏鐮�
+ orderDetl.setStandby3(orderItem.getPlanNo()); // 璁″垝璺熻釜鍙�
+ orderDetl.setBoxType1(orderItem.getSourceWareHouseId()); // 寤鸿鍏ュ簱浠撳簱
+ orderDetl.setBoxType2(orderItem.getTargetWareHouseId()); // 寤鸿鍑哄簱浠撳簱
+ orderDetl.setCreateBy(9527L);
+ orderDetl.setCreateTime(now);
+ orderDetl.setUpdateBy(9527L);
+ orderDetl.setUpdateTime(now);
+ orderDetl.setStatus(1);
+ orderDetl.setQty(0.0D);
+// orderDetl.setPakinPakoutStatus(1);
+ if (!orderDetlService.insert(orderDetl)) {
+ throw new CoolException("淇濆瓨璁㈠崟鏄庣粏澶辫触,璇疯仈绯荤鐞嗗憳锛�" + orderDetl);
+ }
+ }
+ }
}
--
Gitblit v1.9.1