From 9f095733d13185290cfedd242b5f299585fbcad0 Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期一, 07 四月 2025 10:05:34 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java | 268 +++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 256 insertions(+), 12 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 f84e478..bbf8a2e 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -13,16 +13,14 @@
import com.zy.asrs.mapper.ReportQueryMapper;
import com.zy.asrs.mapper.TagMapper;
import com.zy.asrs.service.*;
-import com.zy.asrs.task.core.ReturnT;
-import com.zy.asrs.task.handler.WorkLogHandler;
import com.zy.asrs.utils.MatUtils;
import com.zy.common.model.DetlDto;
-import com.zy.common.utils.ListUtils;
import com.zy.common.utils.NodeUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.StringUtils;
import java.util.*;
@@ -115,7 +113,7 @@
for (DetlDto detail : orderDetails) {
DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(), detail.getAnfme());
if (DetlDto.has(list, dto)) {
- DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch());
+ DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch(),dto.getCsocode(),dto.getIsoseq(),null);
assert detlDto != null;
detlDto.setAnfme(detlDto.getAnfme() + detail.getAnfme());
} else {
@@ -160,7 +158,7 @@
result.setOrderType(order.getDocType$());
List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
for (OrderDetl orderDetl : orderDetls) {
- result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty()));
+ //result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty()));
}
if (order.getSettle() == 4L) {
// 淇敼璁㈠崟鐘舵�� 4.瀹屾垚 ===>> 6.宸蹭笂鎶�
@@ -180,7 +178,7 @@
result.setOrderType(order.getDocType$());
List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
for (OrderDetl orderDetl : orderDetls) {
- result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty()));
+ //result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty()));
}
// 淇敼璁㈠崟鐘舵�� 4.瀹屾垚 ===>> 6.宸蹭笂鎶�
if (!orderService.updateSettle(order.getId(), 6L, null)) {
@@ -250,7 +248,7 @@
for (DetlDto detail : orderDetails) {
DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(), detail.getAnfme());
if (DetlDto.has(list, dto)) {
- DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch());
+ DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch(),dto.getCsocode(),dto.getIsoseq(),null);
assert detlDto != null;
detlDto.setAnfme(detlDto.getAnfme() + detail.getAnfme());
} else {
@@ -294,7 +292,7 @@
result.setOrderType(order.getDocType$());
List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
for (OrderDetl orderDetl : orderDetls) {
- result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty()));
+ //result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty()));
}
if (order.getSettle() == 4L) {
// 淇敼璁㈠崟鐘舵�� 4.瀹屾垚 ===>> 6.宸蹭笂鎶�
@@ -314,7 +312,7 @@
result.setOrderType(order.getDocType$());
List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
for (OrderDetl orderDetl : orderDetls) {
- result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty()));
+ //result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty()));
}
// 淇敼璁㈠崟鐘舵�� 4.瀹屾垚 ===>> 6.宸蹭笂鎶�
if (!orderService.updateSettle(order.getId(), 6L, null)) {
@@ -524,6 +522,16 @@
callApiLogSaveMES(param, null, param.getBarcode() + "锛氬伐浣滄槑缁嗘。宸插瓨鍦ㄦ鏁版嵁", false);
throw new CoolException("宸ヤ綔鏄庣粏妗e凡瀛樺湪姝ゆ暟鎹�===>>" + param.getBarcode());
}
+ List<CombParam.CombMat> combMats = param.getCombMats();
+ Map<String, String> map = new HashMap<>();
+ for (CombParam.CombMat combMat : combMats) {
+ String batch = Cools.isEmpty(combMat.getBatch()) ? "" : combMat.getBatch();
+ if (!Cools.isEmpty(map.get(combMat.getMatnr() + batch))) {
+ throw new CoolException(param.getBarcode() + "缁勬墭鐨勭墿鏂欐槑缁嗛噸澶�,璇锋鏌ユ槸鍚﹂噸澶嶆壂鐮�");
+ } else {
+ map.put(combMat.getMatnr() + batch, combMat.getMatnr());
+ }
+ }
Date now = new Date();
try{
@@ -531,8 +539,9 @@
List<DetlDto> detlDtos = new ArrayList<>();
param.getCombMats().forEach(elem -> {
DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme());
+ detlDto.setContainerCode(elem.getContainerCode());
if (DetlDto.has(detlDtos, detlDto)) {
- DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch());
+ DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch(),detlDto.getCsocode(),detlDto.getIsoseq(),detlDto.getContainerCode());
assert one != null;
one.setAnfme(one.getAnfme() + detlDto.getAnfme());
} else {
@@ -603,8 +612,243 @@
*/
@Override
@Transactional
- public void outlogERP() {
-
+ public List<ViewWorkInBean> outlogERP() {
+ List<ViewWorkInBean> viewWorkInERP = reportQueryMapper.getViewWorkOutERP();
+ ArrayList<ViewWorkInBean> viewWorkInBeans = new ArrayList<>();
+ for (ViewWorkInBean viewWorkInBean:viewWorkInERP){
+ viewWorkInBean.sype();
+ viewWorkInBeans.add(viewWorkInBean);
+ }
+ return viewWorkInBeans;
}
+ @Transactional
+ public boolean syncMat(MatInfoParam param) {
+ Date now = new Date();
+ Mat mat = matService.selectByMatnr(param.getCinvcode());
+ boolean update = true;
+ if(Cools.isEmpty(matService.selectByMatnr(param.getCinvcode()))){
+ //鐗╂枡鍙�
+ mat = new Mat();
+ mat.setMatnr(param.getCinvcode());
+ mat.setCreateTime(now);
+ mat.setCreateBy(9999L);
+ update = false;
+// callApiLogSave(param, "/open/asrs/mat/v1", "鎺ユ敹ERP涓嬪彂鍟嗗搧淇℃伅澶辫触锛侊紒锛佸晢鍝佸凡瀛樺湪锛侊紒锛�", false);
+// param.setType(false);
+// param.setMemo("鍟嗗搧宸插瓨鍦紒");
+// return false;
+ }
+ //Mat mat = new Mat();
+ //鐗╂枡鍙�
+ //mat.setMatnr(param.getCinvcode());
+ //鐗╂枡鍚嶇О
+ mat.setMaktx(param.getCinvname());
+ //瑙勬牸鍨嬪彿
+ mat.setSpecs(param.getCInvStd());
+ //瀛樿揣鍒嗙被缂栫爜
+ mat.setBrand(param.getCinvccode());
+ //瀛樿揣鍒嗙被鍚嶇О
+ mat.setColor(param.getCInvCName());
+ //璁¢噺鍗曚綅
+ mat.setUnit(param.getCComUnitName());
+ //杩涢」绋�
+ mat.setPrice(param.getIImpTaxRate());
+ //閿�椤圭◣
+ mat.setUnits(param.getITaxRate());
+ //鍚敤鏃ユ湡
+ mat.setDsDate(param.getDSDate());
+ //寤烘。浜�
+ mat.setSupp(param.getCCreatePerson());
+ //寤烘。鏃ユ湡
+ mat.setDInvCreateDatetime(param.getDInvCreateDatetime());
+ //閫氱敤鍨嬪彿
+ mat.setModel(param.getCinvdefine4());
+
+ //9999琛ㄧずerp涓嬪彂
+
+ mat.setUpdateBy(9999L);
+ mat.setTagId(1L);
+
+ mat.setUpdateTime(now);
+
+ if(update){
+ if (matService.updateById(mat)){
+ callApiLogSave(param, "/open/asrs/mat/v1", "鎺ユ敹ERP涓嬪彂鍟嗗搧淇℃伅鎴愬姛锛佹坊鍔犲晢鍝佷俊鎭垚鍔燂紒", true);
+ param.setUpdate(true);
+ } else {
+ callApiLogSave(param, "/open/asrs/mat/v1", "娣诲姞ERP涓嬪彂鍟嗗搧淇℃伅澶辫触锛侊紒锛佺姸鎬佸紓甯革紒锛侊紒", false);
+ param.setError(true);
+ param.setMemo("娣诲姞ERP涓嬪彂鍟嗗搧淇℃伅澶辫触锛�");
+ }
+ }else {
+ if (matService.insert(mat)) {
+ callApiLogSave(param, "/open/asrs/mat/v1", "鎺ユ敹ERP涓嬪彂鍟嗗搧淇℃伅鎴愬姛锛佹坊鍔犲晢鍝佷俊鎭垚鍔燂紒", true);
+ param.setInsert(true);
+ } else {
+ callApiLogSave(param, "/open/asrs/mat/v1", "娣诲姞ERP涓嬪彂鍟嗗搧淇℃伅澶辫触锛侊紒锛佺姸鎬佸紓甯革紒锛侊紒", false);
+ param.setError(true);
+ param.setMemo("娣诲姞ERP涓嬪彂鍟嗗搧淇℃伅澶辫触锛�");
+ }
+ }
+
+
+
+ return true;
+ }
+
+ @Transactional
+ public boolean syncOrder(Map<String, Object> param, boolean pakin) {
+ if(Cools.isEmpty(param) || Cools.isEmpty(param.get("orderDetails"))){
+ throw new CoolException("鍗曟嵁鍙傛暟涓虹┖鎴栬�呭崟鎹鎯呬负绌猴紝鏃犳硶鐢熸垚鍗曟嵁淇℃伅");
+ }
+
+ if(!Cools.isEmpty(orderService.selectByNo(param.get("id").toString()))){
+ throw new CoolException("璇ュ崟鎹凡瀛樺湪锛屾棤娉曠敓鎴愬崟鎹俊鎭�");
+ }
+ Date now = new Date();
+ Order order = orderMapping(param,now,pakin);
+ orderService.insert(order);
+ List<Map<String, Object>> orderDetails = (List<Map<String, Object>>) param.get("orderDetails");
+ orderDetails.forEach(odParam -> {
+ OrderDetl od = orderDetlMapping(order,odParam,now);
+ orderDetlService.insert(od);
+ });
+
+ return true;
+ }
+
+ @Transactional
+ public boolean orderDelete(String orderNo) {
+ Order order = orderService.selectByNo(orderNo);
+ if(Cools.isEmpty(order)){
+ throw new CoolException("鍗曟嵁涓嶅瓨鍦紝鏃犳硶鍒犻櫎鍗曟嵁");
+ }
+
+ if(order.getSettle() != 1){
+ return false;
+ }
+
+ orderService.deleteById(order);
+ orderDetlService.delete(new EntityWrapper<OrderDetl>().eq("order_no",orderNo));
+
+ return true;
+ }
+
+ private Order orderMapping(Map<String, Object> param, Date now, boolean pakin){
+ Order order = new Order();
+ //uuid
+ order.setUuid(String.valueOf(snowflakeIdWorker.nextId()));
+ //鏍哥畻涓讳綋
+ //order.setItemName(param.get("account").toString());
+ order.setItemName(toString(param.get("account")));
+ //鍗曟嵁鍞竴琛ㄧず
+ //order.setOrderNo(param.get("id").toString());
+ order.setOrderNo(toString(param.get("id")));
+ //涓氬姟绫诲瀷
+ //order.setDefNumber(param.get("cBusType").toString());
+ order.setDefNumber(toString(param.get("cVouchType")));
+ //鍗曟嵁绫诲瀷
+ DocType docType = docTypeService.selectOrAdd(param.get("cBusType").toString(), pakin);
+ order.setDocType(docType.getDocId());
+ //鍗曟嵁鏃ユ湡
+ //order.setOrderTime(param.get("dDate").toString());
+ order.setOrderTime(toString(param.get("dDate")));
+ //渚涘簲鍟�/瀹㈡埛缂栫爜
+ //order.setCstmrName(param.get("ks").toString());
+ order.setCstmrName(toString(param.get("ks")));
+ //浠撳簱
+ //order.setTel(param.get("cWhName").toString());
+ order.setTel(toString(param.get("cWhName")));
+ //鍑哄叆搴撶被鍒�
+ //setOperMemb(param.get("cRdName").toString());
+ order.setOperMemb(toString(param.get("cRdName")));
+ //閮ㄩ棬
+ //order.setSalesman(param.get("cDepCode").toString());
+ order.setSalesman(toString(param.get("cDepCode")));
+ //澶囨敞
+ //order.setMemo(param.get("cMemo").toString());
+ order.setMemo(toString(param.get("cMemo")));
+ //鍒跺崟浜�
+ //order.setShipCode(param.get("cMaker").toString());
+ order.setShipCode(toString(param.get("cMaker")));
+
+ order.setCreateTime(now);
+ order.setUpdateTime(now);
+
+ //璁㈠崟鐘舵��
+ order.setSettle(1L);
+ //鐘舵��
+ order.setStatus(1);
+ return order;
+ }
+
+ private OrderDetl orderDetlMapping(Order order, Map<String, Object> odParam, Date now){
+ OrderDetl od = new OrderDetl();
+ od.setOrderId(order.getId());
+ od.setOrderNo(order.getOrderNo());
+ //琛屽敮涓�鏍囪瘑
+ //od.setItemNum(odParam.get("autoId").toString());
+ od.setItemNum(toString(odParam.get("autoId")));
+ //瀛樿揣缂栫爜
+ //od.setMatnr(odParam.get("cInvCode").toString());
+ od.setMatnr(toString(odParam.get("cInvCode")));
+ //瀛樿揣鍚嶇О
+ //od.setMaktx(odParam.get("cInvName").toString());
+ od.setMaktx(toString(odParam.get("cInvName")));
+ //瑙勬牸鍨嬪彿
+ //od.setSpecs(odParam.get("cInvStd").toString());
+ od.setSpecs(toString(odParam.get("cInvStd")));
+ //璁¢噺鍗曚綅
+ //od.setUnit(odParam.get("cComUnitName").toString());
+ od.setUnit(toString(odParam.get("cComUnitName")));
+ //鏁伴噺
+ od.setAnfme(Double.parseDouble(odParam.get("iQuantity").toString()));
+ //od.setAnfme(toString(odParam.get("iQuantity")));
+ //琛屽彿
+ //od.setBrand(odParam.get("irowno").toString());
+ //od.setBrand(toString(odParam.get("irowno")));
+ od.setManu(toString(odParam.get("irowno")));
+ //閿�鍞鍗曞彿
+ //od.setColor(odParam.get("csocode").toString());
+ //od.setColor(toString(odParam.get("csocode")));
+ od.setThreeCode(toString(odParam.get("csocode")));
+ //閿�鍞鍗曡鍙�
+ //od.setOrigin(odParam.get("isoseq").toString());
+ //od.setOrigin(toString(odParam.get("isoseq")));
+ od.setDeadTime(toString(odParam.get("isoseq")));
+
+ od.setStatus(1);
+ od.setQty(0.0D);
+ od.setCreateBy(9999L);
+ od.setCreateTime(now);
+ od.setUpdateBy(9999L);
+ od.setUpdateTime(now);
+
+ return od;
+ }
+
+ private String toString(Object o){
+ if(StringUtils.isEmpty(o)){
+ return null;
+ }else{
+ return o.toString();
+ }
+ }
+
+
+ public void callApiLogSave(MatInfoParam matParam, String tableName, String response, Boolean bool) {
+ apiLogService.save("ERP涓嬪彂鍟嗗搧淇℃伅", tableName, "null", "10.10.10.1",
+ "鐗╂枡缂栫爜锛�" + matParam.getCinvcode() + "銆佺墿鏂欏悕绉帮細" + matParam.getCinvname() + "銆佽鏍硷細" + matParam.getCInvStd() + "銆佸娉細" + matParam.getMemo(),
+ response, bool);
+ }
+
+ public static void main(String[] args) {
+ Object s = null;
+ if(StringUtils.isEmpty(s)){
+ System.out.println("null");
+ }else {
+ System.out.println(s.toString());
+ }
+ }
}
--
Gitblit v1.9.1