From da429ea7dc30b0fb050b4cfff1a0062601589e86 Mon Sep 17 00:00:00 2001 From: chenhc <2369838784@qq.com> Date: Fri, 1 Mar 2024 11:14:56 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20=E4=BA=A7=E5=93=81=E6=96=B0?= =?UTF-8?q?=E5=A2=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../glxp/api/service/basic/impl/UdiProductServiceImpl.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/glxp/api/service/basic/impl/UdiProductServiceImpl.java b/src/main/java/com/glxp/api/service/basic/impl/UdiProductServiceImpl.java index 55025073e..1c2560e1d 100644 --- a/src/main/java/com/glxp/api/service/basic/impl/UdiProductServiceImpl.java +++ b/src/main/java/com/glxp/api/service/basic/impl/UdiProductServiceImpl.java @@ -234,11 +234,16 @@ public class UdiProductServiceImpl implements UdiProductService { udiProductEntity.setNameCode(relId+ ""); udiProductEntity.setUuid(IdUtil.getSnowflakeNextId()+""); + udiProductEntity.setCpmctymc(addProductRequest.getName()); + udiProductEntity.setGgxh(addProductRequest.getSpec()); + udiProductEntity.setZczbhhzbapzbh(addProductRequest.getRegisterNo()); + + UdiRelevanceEntity udiRelevanceEntity = new UdiRelevanceEntity(); udiRelevanceEntity.setId(IdUtil.getSnowflakeNextId()); udiRelevanceEntity.setUuid(udiProductEntity.getUuid()); udiProductEntity.setDiType(ConstantStatus.DI_TYPE_MAIN); - // TODO: 2024/2/27 初始化其他字段 + // TODO: 2024/2/27 初始化其他字段 setUpdateInfo(udiProductEntity,udiRelevanceEntity); udiProductDao.insertUdiInfo(udiProductEntity); From 8a1f122230c202aca84d63b14111bf7571d23894 Mon Sep 17 00:00:00 2001 From: chenhc <2369838784@qq.com> Date: Fri, 1 Mar 2024 15:41:01 +0800 Subject: [PATCH 2/2] =?UTF-8?q?feat:=20=E4=BB=A3=E7=A0=81=E6=8F=90?= =?UTF-8?q?=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../glxp/api/controller/TestController.java | 14 ++ .../glxp/api/dao/basic/UdiRelevanceDao.java | 2 + .../java/com/glxp/api/http/ErpInvClient.java | 40 +++--- .../basic/MainIdRelIdAndProductResponse.java | 15 +++ .../service/basic/UdiRelevanceService.java | 4 + .../basic/impl/UdiRelevanceServiceImpl.java | 31 +++++ .../thrsys/impl/ThrInvOrderServiceImpl.java | 127 +++++++++++++++--- .../mybatis/mapper/basic/UdiRelevanceDao.xml | 70 ++++++++++ 8 files changed, 263 insertions(+), 40 deletions(-) create mode 100644 src/main/java/com/glxp/api/res/basic/MainIdRelIdAndProductResponse.java diff --git a/src/main/java/com/glxp/api/controller/TestController.java b/src/main/java/com/glxp/api/controller/TestController.java index 57a40fb84..d19662884 100644 --- a/src/main/java/com/glxp/api/controller/TestController.java +++ b/src/main/java/com/glxp/api/controller/TestController.java @@ -5,7 +5,9 @@ import com.glxp.api.annotation.RepeatSubmit; import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.constant.Constant; +import com.glxp.api.entity.thrsys.ThrSystemDetailEntity; import com.glxp.api.req.sync.BasicExportStatusRequest; +import com.glxp.api.service.thrsys.ThrInvOrderService; import com.glxp.api.task.TestStatOrderService; import com.glxp.api.util.MsDateUtil; import com.glxp.api.util.RedisUtil; @@ -21,6 +23,8 @@ import java.text.ParseException; public class TestController { @Resource TestStatOrderService statOrderService; + @Resource + ThrInvOrderService thrInvOrderService; @GetMapping("/test/stat/order") @@ -67,4 +71,14 @@ public class TestController { return ResultVOUtils.success("hello"); } + @GetMapping("/test/downloadInvOrder") + public BaseResponse downloadInvOrder() { + ThrSystemDetailEntity thrSystemDetailEntity = new ThrSystemDetailEntity(); + thrSystemDetailEntity.setThirdSysFk("thirdId"); + thrInvOrderService.downloadInvOrder(thrSystemDetailEntity); + + return ResultVOUtils.success(""); + } + + } diff --git a/src/main/java/com/glxp/api/dao/basic/UdiRelevanceDao.java b/src/main/java/com/glxp/api/dao/basic/UdiRelevanceDao.java index a20019616..1a86a3d89 100644 --- a/src/main/java/com/glxp/api/dao/basic/UdiRelevanceDao.java +++ b/src/main/java/com/glxp/api/dao/basic/UdiRelevanceDao.java @@ -1,6 +1,7 @@ package com.glxp.api.dao.basic; import com.glxp.api.dao.BaseMapperPlus; +import com.glxp.api.entity.basic.BasicProductsEntity; import com.glxp.api.entity.basic.UdiRelevanceEntity; import com.glxp.api.req.basic.FilterUdiRelRequest; import com.glxp.api.res.basic.UdiRelevanceResponse; @@ -134,4 +135,5 @@ public interface UdiRelevanceDao extends BaseMapperPlus selectProductByRelIds(@Param("relIds")List relIds); } diff --git a/src/main/java/com/glxp/api/http/ErpInvClient.java b/src/main/java/com/glxp/api/http/ErpInvClient.java index f4cbb2508..1b947d411 100644 --- a/src/main/java/com/glxp/api/http/ErpInvClient.java +++ b/src/main/java/com/glxp/api/http/ErpInvClient.java @@ -79,28 +79,28 @@ public class ErpInvClient { } public BaseResponse> getInvResult(FilterInvProductRequest invProductRequest) { - ThrSystemEntity basicThirdSysEntity = basicThirdSysService.selectByThirdId(invProductRequest.getThirdSys()); +// ThrSystemEntity basicThirdSysEntity = basicThirdSysService.selectByThirdId(invProductRequest.getThirdSys()); // String url = basicThirdSysEntity.getThridUrl() + "/udiwms/erp/inv/getInvResult"; - String url = basicThirdSysEntity.getThridUrl() + invProductRequest.getThirdSysUrlValue(); +// String url = basicThirdSysEntity.getThridUrl() + invProductRequest.getThirdSysUrlValue(); try { - String response = httpOkClient.uCloudPost(url, invProductRequest); -// ThrInvResultResponse thrInvResultResponse = new ThrInvResultResponse(); -// thrInvResultResponse.setThrCode("11"); -// thrInvResultResponse.setOutCount("2"); -// thrInvResultResponse.setBillType(ConstantType.TYPE_OUT); -// ArrayList objects = new ArrayList<>(); -// objects.add(thrInvResultResponse); -// PageSimpleResponse thrInvResultResponsePageSimpleResponse = new PageSimpleResponse<>(); -// thrInvResultResponsePageSimpleResponse.setList(objects); -// BaseResponse> pageSimpleResponseBaseResponse = new BaseResponse<>(); -// pageSimpleResponseBaseResponse.setCode(20000); -// pageSimpleResponseBaseResponse.setData(thrInvResultResponsePageSimpleResponse); -// return pageSimpleResponseBaseResponse; - BaseResponse> listBaseResponse = - JSONObject.parseObject(response, new TypeReference>>() { - }); - - return listBaseResponse; +// String response = httpOkClient.uCloudPost(url, invProductRequest); + ThrInvResultResponse thrInvResultResponse = new ThrInvResultResponse(); + thrInvResultResponse.setThrCode("70151"); + thrInvResultResponse.setOutCount("2"); + thrInvResultResponse.setBillType(ConstantType.TYPE_OUT); + ArrayList objects = new ArrayList<>(); + objects.add(thrInvResultResponse); + PageSimpleResponse thrInvResultResponsePageSimpleResponse = new PageSimpleResponse<>(); + thrInvResultResponsePageSimpleResponse.setList(objects); + BaseResponse> pageSimpleResponseBaseResponse = new BaseResponse<>(); + pageSimpleResponseBaseResponse.setCode(20000); + pageSimpleResponseBaseResponse.setData(thrInvResultResponsePageSimpleResponse); + return pageSimpleResponseBaseResponse; +// BaseResponse> listBaseResponse = +// JSONObject.parseObject(response, new TypeReference>>() { +// }); +// +// return listBaseResponse; } catch (Exception e) { log.error("获取第三方库存明细异常", e); return ResultVOUtils.error(500, "连接第三方系统接口服务出错"); diff --git a/src/main/java/com/glxp/api/res/basic/MainIdRelIdAndProductResponse.java b/src/main/java/com/glxp/api/res/basic/MainIdRelIdAndProductResponse.java new file mode 100644 index 000000000..8d7b43481 --- /dev/null +++ b/src/main/java/com/glxp/api/res/basic/MainIdRelIdAndProductResponse.java @@ -0,0 +1,15 @@ +package com.glxp.api.res.basic; + +import com.glxp.api.entity.basic.BasicProductsEntity; +import lombok.Data; + +import java.util.Map; + +@Data +public class MainIdRelIdAndProductResponse { + + private Map mainIdRelIdMap; + + private Map relIdBasicProductsEntityMap; + +} diff --git a/src/main/java/com/glxp/api/service/basic/UdiRelevanceService.java b/src/main/java/com/glxp/api/service/basic/UdiRelevanceService.java index b7120143f..d491a5b7c 100644 --- a/src/main/java/com/glxp/api/service/basic/UdiRelevanceService.java +++ b/src/main/java/com/glxp/api/service/basic/UdiRelevanceService.java @@ -4,10 +4,12 @@ package com.glxp.api.service.basic; import com.baomidou.mybatisplus.extension.service.IService; import com.glxp.api.entity.basic.UdiRelevanceEntity; import com.glxp.api.req.basic.FilterUdiRelRequest; +import com.glxp.api.res.basic.MainIdRelIdAndProductResponse; import com.glxp.api.res.basic.UdiRelevanceResponse; import com.glxp.api.res.basic.UdiRlSupResponse; import java.util.List; +import java.util.Map; /** * 耗材字典关联 @@ -105,4 +107,6 @@ public interface UdiRelevanceService extends IService { String getRelIdByUdiCode(String code); UdiRelevanceResponse selectOneUdi(FilterUdiRelRequest filterUdiRelRequest); + + MainIdRelIdAndProductResponse selectMainIdRelIdAndProductMap(List thrCodes, String thirdSys); } diff --git a/src/main/java/com/glxp/api/service/basic/impl/UdiRelevanceServiceImpl.java b/src/main/java/com/glxp/api/service/basic/impl/UdiRelevanceServiceImpl.java index 12a0a2bee..3a2345944 100644 --- a/src/main/java/com/glxp/api/service/basic/impl/UdiRelevanceServiceImpl.java +++ b/src/main/java/com/glxp/api/service/basic/impl/UdiRelevanceServiceImpl.java @@ -1,16 +1,21 @@ package com.glxp.api.service.basic.impl; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson2.util.JSONObject1O; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.pagehelper.PageHelper; import com.glxp.api.constant.ConstantStatus; import com.glxp.api.dao.basic.UdiRelevanceDao; +import com.glxp.api.entity.basic.BasicProductsEntity; import com.glxp.api.entity.basic.UdiEntity; import com.glxp.api.entity.basic.UdiRelevanceEntity; import com.glxp.api.entity.thrsys.ThrSystemEntity; import com.glxp.api.req.basic.CompanyProductRelevanceRequest; import com.glxp.api.req.basic.FilterUdiRelRequest; +import com.glxp.api.res.basic.MainIdRelIdAndProductResponse; import com.glxp.api.res.basic.UdiRelevanceResponse; import com.glxp.api.res.basic.UdiRlSupResponse; import com.glxp.api.service.basic.UdiRelevanceService; @@ -22,7 +27,10 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.Collections; +import java.util.HashMap; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; @Service @Transactional(rollbackFor = Exception.class) @@ -414,4 +422,27 @@ public class UdiRelevanceServiceImpl extends ServiceImpl thrCodes, String thirdSys) { + MainIdRelIdAndProductResponse mainIdRelIdAndProductResponse = new MainIdRelIdAndProductResponse(); + Map mainIdRelIdMap = new HashMap<>(); + Map relIdBasicProductsEntityMap = new HashMap<>(); + QueryWrapper qw = new QueryWrapper<>(); + qw.in(thirdSys,thrCodes); + qw.select("id","mainId"); + List udiRelevanceEntityList = udiRelevanceDao.selectList(qw); + if (CollectionUtil.isNotEmpty(udiRelevanceEntityList)){ + mainIdRelIdMap = udiRelevanceEntityList.stream().collect(Collectors.toMap(UdiRelevanceEntity::getMainId, UdiRelevanceEntity::getId)); +// List relIds = udiRelevanceEntityList.stream().map(UdiRelevanceEntity::getId).collect(Collectors.toList()); +// List basicProductsEntities = udiRelevanceDao.selectProductByRelIds(relIds); +// if (CollectionUtil.isNotEmpty(basicProductsEntities)){ +// relIdBasicProductsEntityMap = basicProductsEntities.stream().collect(Collectors.toMap(BasicProductsEntity::getId, x -> x)); +// } + } + + mainIdRelIdAndProductResponse.setMainIdRelIdMap(mainIdRelIdMap); + mainIdRelIdAndProductResponse.setRelIdBasicProductsEntityMap(relIdBasicProductsEntityMap); + return mainIdRelIdAndProductResponse; + } + } diff --git a/src/main/java/com/glxp/api/service/thrsys/impl/ThrInvOrderServiceImpl.java b/src/main/java/com/glxp/api/service/thrsys/impl/ThrInvOrderServiceImpl.java index 700526337..cadaea59e 100644 --- a/src/main/java/com/glxp/api/service/thrsys/impl/ThrInvOrderServiceImpl.java +++ b/src/main/java/com/glxp/api/service/thrsys/impl/ThrInvOrderServiceImpl.java @@ -3,6 +3,7 @@ package com.glxp.api.service.thrsys.impl; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.github.pagehelper.PageHelper; @@ -10,8 +11,10 @@ import com.glxp.api.common.res.BaseResponse; import com.glxp.api.constant.Constant; import com.glxp.api.constant.ConstantStatus; import com.glxp.api.constant.ConstantType; +import com.glxp.api.dao.basic.UdiRelevanceDao; import com.glxp.api.dao.thrsys.ThrInvOrderDetailMapper; import com.glxp.api.dao.thrsys.ThrInvOrderMapper; +import com.glxp.api.entity.basic.BasicProductsEntity; import com.glxp.api.entity.basic.BasicSkProjectDetailEntity; import com.glxp.api.entity.inout.IoOrderDetailBizEntity; import com.glxp.api.entity.inout.IoOrderEntity; @@ -25,9 +28,13 @@ import com.glxp.api.req.inv.FilterInvProductRequest; import com.glxp.api.req.thrsys.FilterThrInvOrderRequest; import com.glxp.api.req.thrsys.GenerateOrderRequest; import com.glxp.api.res.PageSimpleResponse; +import com.glxp.api.res.basic.MainIdRelIdAndProductResponse; import com.glxp.api.res.inv.ThrInvResultResponse; import com.glxp.api.service.auth.CustomerService; +import com.glxp.api.service.basic.ProductInfoService; +import com.glxp.api.service.basic.UdiRelevanceService; import com.glxp.api.service.basic.impl.BasicDestinyRelService; +import com.glxp.api.service.inout.IoAddInoutService; import com.glxp.api.service.inout.IoOrderDetailBizService; import com.glxp.api.service.inout.IoOrderService; import com.glxp.api.service.system.SystemParamConfigService; @@ -43,6 +50,7 @@ import javax.annotation.Resource; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; +import java.util.stream.Collectors; @Slf4j @@ -68,6 +76,13 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService { IoOrderService ioOrderService; @Resource IoOrderDetailBizService ioOrderDetailBizService; + @Resource + UdiRelevanceDao udiRelevanceDao; + @Resource + IoAddInoutService ioAddInoutService; + @Resource + UdiRelevanceService udiRelevanceService; + // 设置要输出的日期格式 SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); @@ -81,7 +96,8 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService { String billNo = generateBillNo(filterInvProductRequest);//单据号 //处理 返回实体 转换成 单据 和 单据明细 List thrInvOrderDetails = new ArrayList<>(); - handleExternalConvertThrInvOrderDetail(list, thrInvOrderDetails, billNo); + String thirdSys = filterInvProductRequest.getThirdSys(); + handleExternalConvertThrInvOrderDetail(list, thrInvOrderDetails, billNo, thirdSys); if (CollectionUtil.isNotEmpty(thrInvOrderDetails)) { ThrInvOrder thrInvOrder = new ThrInvOrder(); @@ -133,17 +149,21 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService { @Override public boolean generateOrder(GenerateOrderRequest generateOrderRequest) { String billNo = generateOrderRequest.getBillNo(); + //通过单号获取单据信息 QueryWrapper qw = new QueryWrapper<>(); - qw.eq("billNo",billNo); + qw.eq("billNo", billNo); ThrInvOrder thrInvOrder = thrInvOrderMapper.selectOne(qw); - if (Objects.isNull(thrInvOrder)) return false; + if (Objects.isNull(thrInvOrder) || thrInvOrder.getStatus() != ConstantStatus.SFIO_DRAFT) return false; //通过单号获取单据明细信息 QueryWrapper qwd = new QueryWrapper<>(); - qwd.eq("orderIdFk",billNo); + qwd.eq("orderIdFk", billNo); List thrInvOrderDetails = thrInvOrderDetailMapper.selectList(qwd); - if (CollectionUtil.isNotEmpty(thrInvOrderDetails)) return false; + if (CollectionUtil.isEmpty(thrInvOrderDetails)) return false; + + //校验单据的relId有null不生成单据 + if (!inspectionDocuments(thrInvOrderDetails)) return false; //新单号 String newBillNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER, "yyyyMMdd")); @@ -154,6 +174,7 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService { ioOrderEntity.setFromCorp(generateOrderRequest.getFromCorp()); ioOrderEntity.setInvCode(thrInvOrder.getInvCode()); ioOrderEntity.setDeptCode(thrInvOrder.getDeptCode()); + ioOrderEntity.setAction(generateOrderRequest.getAction()); ioOrderEntity.setFromType(ConstantStatus.FROM_THRORDER);//网页新增 ioOrderEntity.setStatus(ConstantStatus.ORDER_STATUS_TEMP_SAVE);//草稿 @@ -167,23 +188,81 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService { ioOrderEntity.setOrderType(ConstantStatus.ORDER_TYPE_NORMAL);//正常单据处理 List newOrderDetailBiz = new ArrayList<>(thrInvOrderDetails.size()); - if (!copyOrderDetailBiz(thrInvOrderDetails,newOrderDetailBiz)){ + if (!copyOrderDetailBiz(thrInvOrderDetails, newOrderDetailBiz,newBillNo)) { return false; } ioOrderService.insertOrder(ioOrderEntity); - return ioOrderDetailBizService.batchInsertBizs(newOrderDetailBiz); + thrInvOrder.setStatus(ConstantStatus.SFIO_CFMD);//已确认 + thrInvOrder.setUpdateTime(new Date()); + thrInvOrder.setCreateTime(new Date()); + thrInvOrder.setCreateUser(userId + ""); + thrInvOrder.setUpdateUser(userId + ""); + thrInvOrderMapper.updateByPrimaryKey(thrInvOrder); + ioOrderDetailBizService.batchInsertBizs(newOrderDetailBiz); + + ioAddInoutService.stockGenScan(ioOrderEntity); + return true; + } + + /** + * 校验relId字段有空返回false + * + * @param thrInvOrderDetails + * @return + */ + private boolean inspectionDocuments(List thrInvOrderDetails) { + for (int i = 0; i < thrInvOrderDetails.size(); i++) { + ThrInvOrderDetail thrInvOrderDetail = thrInvOrderDetails.get(0); + if (ObjectUtil.isNull(thrInvOrderDetail.getRelId())) return false; + } + return true; } - private boolean copyOrderDetailBiz(List thrInvOrderDetails, List newOrderDetailBiz) { - /** - * 1、获取产品的集合列表信息 - * 2、遍历封装 - */ + /** + * 复制列表 + * + * @param thrInvOrderDetails + * @param newOrderDetailBiz + * @return + */ + private boolean copyOrderDetailBiz(List thrInvOrderDetails, List newOrderDetailBiz,String newBillNo) { + List relIds = thrInvOrderDetails.stream().filter(x -> ObjectUtil.isNotNull(x.getRelId())) + .map(ThrInvOrderDetail::getRelId).collect(Collectors.toList()); + List basicProductsEntities = udiRelevanceDao.selectProductByRelIds(relIds); + if (CollectionUtil.isEmpty(basicProductsEntities)) return false; + Map relIdBasicProductsEntityMap = basicProductsEntities.stream().collect(Collectors.toMap(BasicProductsEntity::getId, x -> x)); + for (int i = 0; i < thrInvOrderDetails.size(); i++) { + ThrInvOrderDetail thrInvOrderDetail = thrInvOrderDetails.get(i); + Long relId = thrInvOrderDetail.getRelId(); + BasicProductsEntity basicProductsEntity = relIdBasicProductsEntityMap.get(relId); + IoOrderDetailBizEntity ioOrderDetailBizEntity = new IoOrderDetailBizEntity(); + parameterPackag(basicProductsEntity,ioOrderDetailBizEntity,thrInvOrderDetail); + ioOrderDetailBizEntity.setOrderIdFk(newBillNo); + newOrderDetailBiz.add(ioOrderDetailBizEntity); + } return true; } + /** + * 实体参数包装 + * + * @param basicProductsEntity + * @param ioOrderDetailBizEntity + */ + private void parameterPackag(BasicProductsEntity basicProductsEntity, IoOrderDetailBizEntity ioOrderDetailBizEntity,ThrInvOrderDetail thrInvOrderDetail) { + ioOrderDetailBizEntity.setId(IdUtil.getSnowflakeNextId()); + if (ObjectUtil.isNotNull(basicProductsEntity)) { + BeanUtils.copyProperties(basicProductsEntity, ioOrderDetailBizEntity); + ioOrderDetailBizEntity.setId(IdUtil.getSnowflakeNextId()); + ioOrderDetailBizEntity.setUuidFk(basicProductsEntity.getUuid()); + ioOrderDetailBizEntity.setBindRlFk(basicProductsEntity.getId()); + ioOrderDetailBizEntity.setNameCode(basicProductsEntity.getNameCode()); + ioOrderDetailBizEntity.setCount(Integer.valueOf(thrInvOrderDetail.getReCount())); + } + } + /** * 生成单号 SFIO + 6位起始日期 + 6位结束日期 + 6位随机 * @@ -219,7 +298,7 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService { thrInvOrder.setSpaceCode(thrInvResultResponse.getSpaceCode());//货位编码 thrInvOrder.setStatus(ConstantStatus.SFIO_DRAFT);//单据状态 草稿 thrInvOrder.setCreateTime(newDate); - thrInvOrder.setCreateUser("系统自动"); + thrInvOrder.setCreateUser("外部系统下载"); } @@ -230,12 +309,19 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService { * @param thrInvOrderDetails * @param billNo */ - private void handleExternalConvertThrInvOrderDetail(List list, List thrInvOrderDetails, String billNo) { + private void handleExternalConvertThrInvOrderDetail(List list, List thrInvOrderDetails, String billNo, String thirdSys) { Integer inv_set_enable = Integer.valueOf(systemParamConfigService.selectValueByParamKey("inv_set_enable")); - if (inv_set_enable == null || inv_set_enable == 0) { + if (inv_set_enable == null || inv_set_enable == 0) {//直接明细 不走项目组套 + + List thrCodes = list.stream().map(ThrInvResultResponse::getThrCode).collect(Collectors.toList()); + MainIdRelIdAndProductResponse map = udiRelevanceService.selectMainIdRelIdAndProductMap(thrCodes, thirdSys); + Map mainIdRelIdMap = map.getMainIdRelIdMap(); + list.forEach(item -> { String mainAction = item.getMainAction(); - Integer count = 0; + String thrCode = item.getThrCode(); + Long relId = mainIdRelIdMap.get(thrCode); + Integer count; if (ConstantType.TYPE_PUT.equals(mainAction)) { count = Integer.valueOf(item.getInCount()); } else { @@ -244,15 +330,16 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService { ThrInvOrderDetail thrInvOrderDetail = new ThrInvOrderDetail(); BeanUtils.copyProperties(item, thrInvOrderDetail); thrInvOrderDetail.setOrderIdFk(billNo); - thrInvOrderDetail.setRelId(Long.parseLong(item.getThrCode())); + thrInvOrderDetail.setRelId(relId); + thrInvOrderDetail.setThrCode(thrCode); thrInvOrderDetail.setReCount(String.valueOf(count)); thrInvOrderDetails.add(thrInvOrderDetail); }); - } else { + } else {//走项目组套 list.forEach(item -> { String thrCode = item.getThrCode(); String mainAction = item.getMainAction(); - Integer count = 0; + Integer count; if (ConstantType.TYPE_PUT.equals(mainAction)) { count = Integer.valueOf(item.getInCount()); } else { @@ -270,8 +357,8 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService { Integer skCount = sk.getCount(); if (skCount != null && skCount > 0) { thrInvOrderDetail.setReCount(String.valueOf(skCount * finalCount)); - thrInvOrderDetails.add(thrInvOrderDetail); } + thrInvOrderDetails.add(thrInvOrderDetail); }); } }); diff --git a/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml b/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml index eae9305f1..67165bc11 100644 --- a/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml +++ b/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml @@ -1802,4 +1802,74 @@ limit 1 + + +