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 | 556 +++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 536 insertions(+), 20 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 5a50fce..bbf8a2e 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -1,26 +1,28 @@
package com.zy.asrs.service.impl;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.BaseRes;
import com.core.common.Cools;
import com.core.common.DateUtils;
import com.core.common.SnowflakeIdWorker;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
-import com.zy.asrs.entity.param.OpenOrderCompleteParam;
-import com.zy.asrs.entity.param.OpenOrderPakinParam;
-import com.zy.asrs.entity.param.OpenOrderPakoutParam;
+import com.zy.asrs.entity.param.*;
import com.zy.asrs.entity.result.OpenOrderCompeteResult;
import com.zy.asrs.entity.result.StockVo;
+import com.zy.asrs.mapper.ReportQueryMapper;
+import com.zy.asrs.mapper.TagMapper;
import com.zy.asrs.service.*;
+import com.zy.asrs.utils.MatUtils;
import com.zy.common.model.DetlDto;
+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.ArrayList;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
/**
* Created by vincent on 2022/4/9
@@ -43,6 +45,18 @@
private LocDetlService locDetlService;
@Autowired
private PackService packService;
+ @Autowired
+ private TagService tagService;
+ @Autowired
+ private TagMapper tagMapper;
+ @Autowired
+ private ApiLogService apiLogService;
+ @Autowired
+ private WaitPakinService waitPakinService;
+ @Autowired
+ private WrkDetlService wrkDetlService;
+ @Autowired
+ private ReportQueryMapper reportQueryMapper;
@Override
@Transactional
@@ -99,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 {
@@ -144,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.宸蹭笂鎶�
@@ -164,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)) {
@@ -176,10 +190,15 @@
}
@Override
+ @Transactional
public void pakoutOrderCreate(OpenOrderPakoutParam param) {
Order order = orderService.selectByNo(param.getOrderNo());
+ // 濡傛灉鍗曟嵁涓嶅瓨鍦ㄥ垯娣诲姞锛涘鏋滃崟鎹瓨鍦紝浣滀笟涓棤娉曚慨鏀癸紝鍙嶄箣鍒欎慨鏀瑰崟鎹�
if (!Cools.isEmpty(order)) {
- throw new CoolException(param.getOrderNo() + "鍗曟嵁宸插瓨鍦紝璇峰嬁閲嶅鎻愪氦");
+ if (order.getSettle() > 1L) {
+ throw new CoolException(param.getOrderNo() + "姝e湪鍑哄簱锛屾棤娉曚慨鏀瑰崟鎹�");
+ }
+ orderService.remove(order.getId());
}
DocType docType = docTypeService.selectOrAdd(param.getOrderType(), Boolean.FALSE);
Date now = new Date();
@@ -229,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 {
@@ -273,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.宸蹭笂鎶�
@@ -293,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)) {
@@ -311,17 +330,21 @@
}
@Override
- public void packageUp(String barcode) {
- Pack pack = packService.selectByBarcode(barcode);
+ @Transactional
+ public void packageUp(PackParam param) {
+ if (Cools.isEmpty(param.getBarcode())) {
+ throw new CoolException("barcode涓嶈兘涓虹┖");
+ }
+ Mat analyse = MatUtils.analyseMat(param.getBarcode());
+ Pack pack = packService.selectByBarcode(param.getBarcode());
if (null != pack) {
- throw new CoolException(barcode + "閲嶅鎻愪氦");
+ throw new CoolException(param.getBarcode() + "閲嶅鎻愪氦");
}
Date now = new Date();
- // todo:luxiaotao 瑙f瀽鏉$爜瑙勫垯锛岃幏鍙栫墿鏂欎唬鐮�
pack = new Pack(
- barcode, // 鏉$爜[闈炵┖]
- null, // 鍟嗗搧缂栧彿
- null, // 鎵瑰彿
+ param.getBarcode(), // 鏉$爜[闈炵┖]
+ analyse.getMatnr(), // 鐗╂枡鍙�
+ analyse.getBarcode(), // 搴忓垪鐮�
1L, // 璁㈠崟鐘舵��
1, // 鐘舵��
now, // 娣诲姞鏃堕棿
@@ -333,6 +356,499 @@
if (!packService.insert(pack)) {
throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
}
+
+ Mat mat = matService.selectByMatnr(analyse.getMatnr());
+ if (mat == null) {
+ mat = new Mat();
+ // 鍒嗙被
+ Long tagId;
+ // 涓�绾у垎绫�
+ if (!Cools.isEmpty(param.getGroupCode()) && !Cools.isEmpty(param.getGroupName())) {
+ Tag priTag = tagService.selectByName(param.getGroupCode(), 2);
+ if (priTag == null) {
+ Tag top = tagService.getTop();
+ NodeUtils nodeUtils = new NodeUtils();
+ nodeUtils.executePath(top.getId());
+ priTag = new Tag(
+ null, // 缂栧彿
+ param.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(param.getGroupName(), 3);
+ if (secTag == null) {
+ NodeUtils nodeUtils = new NodeUtils();
+ nodeUtils.executePath(priTag.getId());
+ secTag = new Tag(
+ null, // 缂栧彿
+ param.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.setTagId(tagId);
+ mat.setMatnr(analyse.getMatnr());
+ mat.setMaktx(param.getMaterialName());
+ mat.setSpecs(param.getConfigureDesc());
+ mat.setModel(analyse.getModel());
+ mat.setStatus(1);
+ mat.setCreateTime(now);
+ mat.setUpdateTime(now);
+ if (!matService.insert(mat)) {
+ throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
+ } else {
+ log.info("鎵撳寘涓婄嚎娣诲姞鏂扮墿鏂橻鐗╂枡鍙凤細{}]", mat.getMatnr());
+ }
+ }
+ }
+ @Override
+ @Transactional
+ public MatSyncParam syncMat(MatSyncParam param) {
+ if (Cools.isEmpty(param.getMats()) || param.getMats().size() <=0 ) {
+ throw new CoolException("鍟嗗搧鏁版嵁涓虹┖");
+ }
+ MatSyncParam matSyncParam = new MatSyncParam();
+ ArrayList<MatSyncParam.Mats> matParams = new ArrayList<>();
+ Tag tag = tagService.selectByName("鍏ㄩ儴", 1);
+ for (MatSyncParam.Mats matParam : param.getMats()){
+ Date date = new Date();
+ Mat mat = matService.selectByMatnr(matParam.getMatnr());
+ if (Cools.isEmpty(mat)) {
+ Mat matNew = new Mat();
+ matNew.setTagId(tag.getId());
+ matNew.setMatnr(matParam.getMatnr());//鐗╂枡缂栫爜
+ matNew.setMaktx(matParam.getMaktx());//鐗╂枡鍚嶇О
+ matNew.setSpecs(matParam.getSpecs());//瑙勬牸
+ matNew.setModel(matParam.getModel());//鍨嬪彿
+ matNew.setColor(matParam.getColor());//棰滆壊
+ matNew.setUnit(matParam.getUnit());//鍗曚綅
+ matNew.setMemo(matParam.getMemo());//澶囨敞
+ matNew.setCreateBy(9999L);//9999琛ㄧずerp涓嬪彂
+ matNew.setCreateTime(date);
+ matNew.setUpdateBy(9999L);//9999琛ㄧずerp涓嬪彂
+ matNew.setUpdateTime(date);
+ if (matService.insert(matNew)) {
+ callApiLogSave(matParam, "/open/asrs/mat/v1", "鎺ユ敹ERP涓嬪彂鍟嗗搧淇℃伅鎴愬姛锛佹坊鍔犲晢鍝佷俊鎭垚鍔燂紒", true);
+ matParam.setType(true);
+ } else {
+ callApiLogSave(matParam, "/open/asrs/mat/v1", "娣诲姞ERP涓嬪彂鍟嗗搧淇℃伅澶辫触锛侊紒锛佺姸鎬佸紓甯革紒锛侊紒", false);
+ matParam.setType(false);
+ matParam.setMemo("娣诲姞ERP涓嬪彂鍟嗗搧淇℃伅澶辫触锛�");
+ }
+ } else {
+ callApiLogSave(matParam, "/open/asrs/mat/v1", "鎺ユ敹ERP涓嬪彂鍟嗗搧淇℃伅澶辫触锛侊紒锛佸晢鍝佸凡瀛樺湪锛侊紒锛�", false);
+ matParam.setType(false);
+ matParam.setMemo("鍟嗗搧宸插瓨鍦紒");
+ }
+ matParams.add(matParam);
+ }
+ matSyncParam.setMats(matParams);
+ return matSyncParam;
+ }
+ public void callApiLogSave(MatSyncParam.Mats matParam, String tableName, String response, Boolean bool) {
+ apiLogService.save("ERP涓嬪彂鍟嗗搧淇℃伅", tableName, "null", "10.10.10.1",
+ "鐗╂枡缂栫爜锛�" + matParam.getMatnr() + "銆佺墿鏂欏悕绉帮細" + matParam.getMaktx() + "銆佽鏍硷細" + matParam.getSpecs() + "銆佸娉細" + matParam.getMemo(),
+ response, bool);
}
+
+ @Override
+ @Transactional
+ public void combMes(CombParam param) {
+ Long userId=9999l;
+ if (Cools.isEmpty(param.getBarcode(), param.getCombMats())) {
+ callApiLogSaveMES(null, null, BaseRes.PARAM, false);
+ throw new CoolException(BaseRes.PARAM);
+ }
+ if(param.getBarcode().length()!=8){
+ callApiLogSaveMES(param, null, param.getBarcode() + "锛氭潯鐮侀暱搴︿笉鏄�8浣�", false);
+ throw new CoolException("鏉$爜闀垮害涓嶆槸8浣�===>>" + param.getBarcode());
+ }
+ // 鍒ゆ柇鏄惁鏈夌浉鍚屾潯鐮佺殑鏁版嵁
+ if (waitPakinService.selectCount(new EntityWrapper<WaitPakin>().
+ eq("zpallet", param.getBarcode()).eq("io_status", "N")) > 0) {
+ callApiLogSaveMES(param, null, param.getBarcode() + "鏁版嵁姝e湪杩涜鍏ュ簱", false);
+ throw new CoolException(param.getBarcode() + "鏁版嵁姝e湪杩涜鍏ュ簱");
+ }
+
+ int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet",param.getBarcode()));
+ int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet",param.getBarcode()));
+ if (countLoc > 0) {
+ callApiLogSaveMES(param, null, param.getBarcode() + "锛氬簱瀛樻潯鐮佹暟鎹凡瀛樺湪", false);
+ throw new CoolException("搴撳瓨鏉$爜鏁版嵁宸插瓨鍦�===>>" + param.getBarcode());
+ }else if (countWrk > 0){
+ 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{
+ // 鐢熸垚鍏ュ簱閫氱煡妗�
+ 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.getCsocode(),detlDto.getIsoseq(),detlDto.getContainerCode());
+ assert one != null;
+ one.setAnfme(one.getAnfme() + detlDto.getAnfme());
+ } else {
+ detlDtos.add(detlDto);
+ }
+ });
+
+ for (DetlDto detlDto : detlDtos) {
+ Mat mat = matService.selectByMatnr(detlDto.getMatnr());
+ if (Cools.isEmpty(mat)) {
+ callApiLogSaveMES(param, null,mat.getMatnr()+"鍟嗗搧妗f涓嶅瓨鍦�", false);
+ throw new CoolException(detlDto.getMatnr() + "鍟嗗搧妗f涓嶅瓨鍦�");
+ }
+ WaitPakin waitPakin = new WaitPakin();
+ waitPakin.sync(mat);
+ waitPakin.setBatch(detlDto.getBatch());
+ waitPakin.setZpallet(param.getBarcode()); // 鎵樼洏鐮�
+ waitPakin.setIoStatus("N"); // 鍏ュ嚭鐘舵��
+ waitPakin.setAnfme(detlDto.getAnfme()); // 鏁伴噺
+ waitPakin.setStatus("Y"); // 鐘舵��
+ waitPakin.setAppeUser(userId);
+ waitPakin.setAppeTime(now);
+ waitPakin.setModiUser(userId);
+ waitPakin.setModiTime(now);
+ if (!waitPakinService.insert(waitPakin)) {
+ callApiLogSaveMES(param, null,mat.getMatnr()+"淇濆瓨鍏ュ簱閫氱煡妗eけ璐�", false);
+ throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�");
+ }
+ }
+ }catch (Exception e){
+ callApiLogSaveMES(null, null,""+e, false);
+ }
+ callApiLogSaveMES(param, param.getCombMats().get(0),"缁勬墭鎴愬姛", true);
+ }
+ public void callApiLogSaveMES(CombParam combParam,CombParam.CombMat combMat, String response, Boolean bool) {
+ if (Cools.isEmpty(combParam)){
+ apiLogService.save("MES涓嬪彂鍏ュ簱閫氱煡鍗�", "/open/asrs/comb/v1", "null", "10.10.10.1",
+ "",
+ response, bool);
+ }else if (Cools.isEmpty(combMat)){
+ apiLogService.save("MES涓嬪彂鍏ュ簱閫氱煡鍗�", "/open/asrs/comb/v1", "null", "10.10.10.1",
+ "鎵樼洏鐮侊細" + combParam.getBarcode(),
+ response, bool);
+ }else {
+ apiLogService.save("MES涓嬪彂鍏ュ簱閫氱煡鍗�", "/open/asrs/comb/v1", "null", "10.10.10.1",
+ "鎵樼洏鐮侊細" + combParam.getBarcode() + "銆佺墿鏂欑紪鍙凤細" + combMat.getMatnr() + "銆佹暟閲忥細" + combMat.getAnfme(),
+ response, bool);
+ }
+ }
+
+ /**
+ * 鍏ュ簱璁板綍鑾峰彇
+ */
+ @Override
+ @Transactional
+ public List<ViewWorkInBean> inlogERP() {
+ List<ViewWorkInBean> viewWorkInERP = reportQueryMapper.getViewWorkInERP();
+ ArrayList<ViewWorkInBean> viewWorkInBeans = new ArrayList<>();
+ for (ViewWorkInBean viewWorkInBean:viewWorkInERP){
+ viewWorkInBean.sype();
+ viewWorkInBeans.add(viewWorkInBean);
+ }
+ return viewWorkInBeans;
+ }
+
+ /**
+ * 鍑哄簱璁板綍鑾峰彇
+ */
+ @Override
+ @Transactional
+ 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