Merge branch '20231126-yw' into dev_ksck

# Conflicts:
#	src/main/java/com/glxp/api/service/basic/UdiRelevanceService.java
#	src/main/java/com/glxp/api/service/basic/impl/UdiProductServiceImpl.java
#	src/main/java/com/glxp/api/service/basic/impl/UdiRelevanceServiceImpl.java
dev_20240306
chenhc 1 year ago
commit eb02f7b4cc

@ -5,7 +5,9 @@ import com.glxp.api.annotation.RepeatSubmit;
import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.constant.Constant; import com.glxp.api.constant.Constant;
import com.glxp.api.entity.thrsys.ThrSystemDetailEntity;
import com.glxp.api.req.sync.BasicExportStatusRequest; import com.glxp.api.req.sync.BasicExportStatusRequest;
import com.glxp.api.service.thrsys.ThrInvOrderService;
import com.glxp.api.task.TestStatOrderService; import com.glxp.api.task.TestStatOrderService;
import com.glxp.api.util.MsDateUtil; import com.glxp.api.util.MsDateUtil;
import com.glxp.api.util.RedisUtil; import com.glxp.api.util.RedisUtil;
@ -21,6 +23,8 @@ import java.text.ParseException;
public class TestController { public class TestController {
@Resource @Resource
TestStatOrderService statOrderService; TestStatOrderService statOrderService;
@Resource
ThrInvOrderService thrInvOrderService;
@GetMapping("/test/stat/order") @GetMapping("/test/stat/order")
@ -67,4 +71,14 @@ public class TestController {
return ResultVOUtils.success("hello"); return ResultVOUtils.success("hello");
} }
@GetMapping("/test/downloadInvOrder")
public BaseResponse downloadInvOrder() {
ThrSystemDetailEntity thrSystemDetailEntity = new ThrSystemDetailEntity();
thrSystemDetailEntity.setThirdSysFk("thirdId");
thrInvOrderService.downloadInvOrder(thrSystemDetailEntity);
return ResultVOUtils.success("");
}
} }

@ -1,6 +1,7 @@
package com.glxp.api.dao.basic; package com.glxp.api.dao.basic;
import com.glxp.api.dao.BaseMapperPlus; import com.glxp.api.dao.BaseMapperPlus;
import com.glxp.api.entity.basic.BasicProductsEntity;
import com.glxp.api.entity.basic.UdiRelevanceEntity; import com.glxp.api.entity.basic.UdiRelevanceEntity;
import com.glxp.api.req.basic.FilterUdiRelRequest; import com.glxp.api.req.basic.FilterUdiRelRequest;
import com.glxp.api.res.basic.UdiRelevanceResponse; import com.glxp.api.res.basic.UdiRelevanceResponse;
@ -134,4 +135,5 @@ public interface UdiRelevanceDao extends BaseMapperPlus<UdiRelevanceDao, UdiRele
UdiRelevanceResponse selectOneUdi(FilterUdiRelRequest filterUdiRelRequest); UdiRelevanceResponse selectOneUdi(FilterUdiRelRequest filterUdiRelRequest);
List<BasicProductsEntity> selectProductByRelIds(@Param("relIds")List<Long> relIds);
} }

@ -79,28 +79,28 @@ public class ErpInvClient {
} }
public BaseResponse<PageSimpleResponse<ThrInvResultResponse>> getInvResult(FilterInvProductRequest invProductRequest) { public BaseResponse<PageSimpleResponse<ThrInvResultResponse>> 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() + "/udiwms/erp/inv/getInvResult";
String url = basicThirdSysEntity.getThridUrl() + invProductRequest.getThirdSysUrlValue(); // String url = basicThirdSysEntity.getThridUrl() + invProductRequest.getThirdSysUrlValue();
try { try {
String response = httpOkClient.uCloudPost(url, invProductRequest); // String response = httpOkClient.uCloudPost(url, invProductRequest);
// ThrInvResultResponse thrInvResultResponse = new ThrInvResultResponse(); ThrInvResultResponse thrInvResultResponse = new ThrInvResultResponse();
// thrInvResultResponse.setThrCode("11"); thrInvResultResponse.setThrCode("70151");
// thrInvResultResponse.setOutCount("2"); thrInvResultResponse.setOutCount("2");
// thrInvResultResponse.setBillType(ConstantType.TYPE_OUT); thrInvResultResponse.setBillType(ConstantType.TYPE_OUT);
// ArrayList<ThrInvResultResponse> objects = new ArrayList<>(); ArrayList<ThrInvResultResponse> objects = new ArrayList<>();
// objects.add(thrInvResultResponse); objects.add(thrInvResultResponse);
// PageSimpleResponse<ThrInvResultResponse> thrInvResultResponsePageSimpleResponse = new PageSimpleResponse<>(); PageSimpleResponse<ThrInvResultResponse> thrInvResultResponsePageSimpleResponse = new PageSimpleResponse<>();
// thrInvResultResponsePageSimpleResponse.setList(objects); thrInvResultResponsePageSimpleResponse.setList(objects);
// BaseResponse<PageSimpleResponse<ThrInvResultResponse>> pageSimpleResponseBaseResponse = new BaseResponse<>(); BaseResponse<PageSimpleResponse<ThrInvResultResponse>> pageSimpleResponseBaseResponse = new BaseResponse<>();
// pageSimpleResponseBaseResponse.setCode(20000); pageSimpleResponseBaseResponse.setCode(20000);
// pageSimpleResponseBaseResponse.setData(thrInvResultResponsePageSimpleResponse); pageSimpleResponseBaseResponse.setData(thrInvResultResponsePageSimpleResponse);
// return pageSimpleResponseBaseResponse; return pageSimpleResponseBaseResponse;
BaseResponse<PageSimpleResponse<ThrInvResultResponse>> listBaseResponse = // BaseResponse<PageSimpleResponse<ThrInvResultResponse>> listBaseResponse =
JSONObject.parseObject(response, new TypeReference<BaseResponse<PageSimpleResponse<ThrInvResultResponse>>>() { // JSONObject.parseObject(response, new TypeReference<BaseResponse<PageSimpleResponse<ThrInvResultResponse>>>() {
}); // });
//
return listBaseResponse; // return listBaseResponse;
} catch (Exception e) { } catch (Exception e) {
log.error("获取第三方库存明细异常", e); log.error("获取第三方库存明细异常", e);
return ResultVOUtils.error(500, "连接第三方系统接口服务出错"); return ResultVOUtils.error(500, "连接第三方系统接口服务出错");

@ -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<String,Long> mainIdRelIdMap;
private Map<Long, BasicProductsEntity> relIdBasicProductsEntityMap;
}

@ -4,10 +4,12 @@ package com.glxp.api.service.basic;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.glxp.api.entity.basic.UdiRelevanceEntity; import com.glxp.api.entity.basic.UdiRelevanceEntity;
import com.glxp.api.req.basic.FilterUdiRelRequest; 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.UdiRelevanceResponse;
import com.glxp.api.res.basic.UdiRlSupResponse; import com.glxp.api.res.basic.UdiRlSupResponse;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* *
@ -106,5 +108,7 @@ public interface UdiRelevanceService extends IService<UdiRelevanceEntity> {
UdiRelevanceResponse selectOneUdi(FilterUdiRelRequest filterUdiRelRequest); UdiRelevanceResponse selectOneUdi(FilterUdiRelRequest filterUdiRelRequest);
MainIdRelIdAndProductResponse selectMainIdRelIdAndProductMap(List<String> thrCodes, String thirdSys);
Integer findPurType(Long relId); Integer findPurType(Long relId);
} }

@ -234,6 +234,11 @@ public class UdiProductServiceImpl implements UdiProductService {
udiProductEntity.setNameCode(relId + ""); udiProductEntity.setNameCode(relId + "");
udiProductEntity.setUuid(IdUtil.getSnowflakeNextId() + ""); udiProductEntity.setUuid(IdUtil.getSnowflakeNextId() + "");
udiProductEntity.setCpmctymc(addProductRequest.getName());
udiProductEntity.setGgxh(addProductRequest.getSpec());
udiProductEntity.setZczbhhzbapzbh(addProductRequest.getRegisterNo());
UdiRelevanceEntity udiRelevanceEntity = new UdiRelevanceEntity(); UdiRelevanceEntity udiRelevanceEntity = new UdiRelevanceEntity();
udiRelevanceEntity.setId(IdUtil.getSnowflakeNextId()); udiRelevanceEntity.setId(IdUtil.getSnowflakeNextId());
udiRelevanceEntity.setIsDisable(false); udiRelevanceEntity.setIsDisable(false);
@ -244,6 +249,8 @@ public class UdiProductServiceImpl implements UdiProductService {
udiProductEntity.setDiType(ConstantStatus.DI_TYPE_MAIN); udiProductEntity.setDiType(ConstantStatus.DI_TYPE_MAIN);
// TODO: 2024/2/27 初始化其他字段 // TODO: 2024/2/27 初始化其他字段
setUpdateInfo(udiProductEntity, udiRelevanceEntity); setUpdateInfo(udiProductEntity, udiRelevanceEntity);
// TODO: 2024/2/27 初始化其他字段
setUpdateInfo(udiProductEntity,udiRelevanceEntity);
udiProductDao.insertUdiInfo(udiProductEntity); udiProductDao.insertUdiInfo(udiProductEntity);
udiRelevanceDao.insertUdiRelevance(udiRelevanceEntity); udiRelevanceDao.insertUdiRelevance(udiRelevanceEntity);

@ -1,17 +1,22 @@
package com.glxp.api.service.basic.impl; package com.glxp.api.service.basic.impl;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson2.util.JSONObject1O;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.glxp.api.constant.ConstantStatus; import com.glxp.api.constant.ConstantStatus;
import com.glxp.api.dao.basic.UdiRelevanceDao; 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.UdiEntity;
import com.glxp.api.entity.basic.UdiRelevanceEntity; import com.glxp.api.entity.basic.UdiRelevanceEntity;
import com.glxp.api.entity.thrsys.ThrSystemEntity; import com.glxp.api.entity.thrsys.ThrSystemEntity;
import com.glxp.api.req.basic.CompanyProductRelevanceRequest; import com.glxp.api.req.basic.CompanyProductRelevanceRequest;
import com.glxp.api.req.basic.FilterUdiRelRequest; 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.UdiRelevanceResponse;
import com.glxp.api.res.basic.UdiRlSupResponse; import com.glxp.api.res.basic.UdiRlSupResponse;
import com.glxp.api.service.basic.UdiRelevanceService; import com.glxp.api.service.basic.UdiRelevanceService;
@ -24,7 +29,10 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.Collections; import java.util.Collections;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Service @Service
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@ -416,6 +424,29 @@ public class UdiRelevanceServiceImpl extends ServiceImpl<UdiRelevanceDao, UdiRel
return udiRelevanceDao.selectOneUdi(filterUdiRelRequest); return udiRelevanceDao.selectOneUdi(filterUdiRelRequest);
} }
@Override
public MainIdRelIdAndProductResponse selectMainIdRelIdAndProductMap(List<String> thrCodes, String thirdSys) {
MainIdRelIdAndProductResponse mainIdRelIdAndProductResponse = new MainIdRelIdAndProductResponse();
Map<String, Long> mainIdRelIdMap = new HashMap<>();
Map<Long, BasicProductsEntity> relIdBasicProductsEntityMap = new HashMap<>();
QueryWrapper<UdiRelevanceEntity> qw = new QueryWrapper<>();
qw.in(thirdSys,thrCodes);
qw.select("id","mainId");
List<UdiRelevanceEntity> udiRelevanceEntityList = udiRelevanceDao.selectList(qw);
if (CollectionUtil.isNotEmpty(udiRelevanceEntityList)){
mainIdRelIdMap = udiRelevanceEntityList.stream().collect(Collectors.toMap(UdiRelevanceEntity::getMainId, UdiRelevanceEntity::getId));
// List<Long> relIds = udiRelevanceEntityList.stream().map(UdiRelevanceEntity::getId).collect(Collectors.toList());
// List<BasicProductsEntity> 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;
}
@Override @Override
public Integer findPurType(Long relId) { public Integer findPurType(Long relId) {
UdiRelevanceEntity udiRelevanceEntity = udiRelevanceDao.selectOne(new QueryWrapper<UdiRelevanceEntity>().select("purType").eq("id", relId).last("limit 1")); UdiRelevanceEntity udiRelevanceEntity = udiRelevanceDao.selectOne(new QueryWrapper<UdiRelevanceEntity>().select("purType").eq("id", relId).last("limit 1"));

@ -3,6 +3,7 @@ package com.glxp.api.service.thrsys.impl;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.IdUtil; 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.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.github.pagehelper.PageHelper; 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.Constant;
import com.glxp.api.constant.ConstantStatus; import com.glxp.api.constant.ConstantStatus;
import com.glxp.api.constant.ConstantType; 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.ThrInvOrderDetailMapper;
import com.glxp.api.dao.thrsys.ThrInvOrderMapper; 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.basic.BasicSkProjectDetailEntity;
import com.glxp.api.entity.inout.IoOrderDetailBizEntity; import com.glxp.api.entity.inout.IoOrderDetailBizEntity;
import com.glxp.api.entity.inout.IoOrderEntity; 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.FilterThrInvOrderRequest;
import com.glxp.api.req.thrsys.GenerateOrderRequest; import com.glxp.api.req.thrsys.GenerateOrderRequest;
import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.basic.MainIdRelIdAndProductResponse;
import com.glxp.api.res.inv.ThrInvResultResponse; import com.glxp.api.res.inv.ThrInvResultResponse;
import com.glxp.api.service.auth.CustomerService; 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.basic.impl.BasicDestinyRelService;
import com.glxp.api.service.inout.IoAddInoutService;
import com.glxp.api.service.inout.IoOrderDetailBizService; import com.glxp.api.service.inout.IoOrderDetailBizService;
import com.glxp.api.service.inout.IoOrderService; import com.glxp.api.service.inout.IoOrderService;
import com.glxp.api.service.system.SystemParamConfigService; import com.glxp.api.service.system.SystemParamConfigService;
@ -43,6 +50,7 @@ import javax.annotation.Resource;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
@Slf4j @Slf4j
@ -68,6 +76,13 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService {
IoOrderService ioOrderService; IoOrderService ioOrderService;
@Resource @Resource
IoOrderDetailBizService ioOrderDetailBizService; IoOrderDetailBizService ioOrderDetailBizService;
@Resource
UdiRelevanceDao udiRelevanceDao;
@Resource
IoAddInoutService ioAddInoutService;
@Resource
UdiRelevanceService udiRelevanceService;
// 设置要输出的日期格式 // 设置要输出的日期格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
@ -81,7 +96,8 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService {
String billNo = generateBillNo(filterInvProductRequest);//单据号 String billNo = generateBillNo(filterInvProductRequest);//单据号
//处理 返回实体 转换成 单据 和 单据明细 //处理 返回实体 转换成 单据 和 单据明细
List<ThrInvOrderDetail> thrInvOrderDetails = new ArrayList<>(); List<ThrInvOrderDetail> thrInvOrderDetails = new ArrayList<>();
handleExternalConvertThrInvOrderDetail(list, thrInvOrderDetails, billNo); String thirdSys = filterInvProductRequest.getThirdSys();
handleExternalConvertThrInvOrderDetail(list, thrInvOrderDetails, billNo, thirdSys);
if (CollectionUtil.isNotEmpty(thrInvOrderDetails)) { if (CollectionUtil.isNotEmpty(thrInvOrderDetails)) {
ThrInvOrder thrInvOrder = new ThrInvOrder(); ThrInvOrder thrInvOrder = new ThrInvOrder();
@ -133,17 +149,21 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService {
@Override @Override
public boolean generateOrder(GenerateOrderRequest generateOrderRequest) { public boolean generateOrder(GenerateOrderRequest generateOrderRequest) {
String billNo = generateOrderRequest.getBillNo(); String billNo = generateOrderRequest.getBillNo();
//通过单号获取单据信息 //通过单号获取单据信息
QueryWrapper<ThrInvOrder> qw = new QueryWrapper<>(); QueryWrapper<ThrInvOrder> qw = new QueryWrapper<>();
qw.eq("billNo",billNo); qw.eq("billNo", billNo);
ThrInvOrder thrInvOrder = thrInvOrderMapper.selectOne(qw); ThrInvOrder thrInvOrder = thrInvOrderMapper.selectOne(qw);
if (Objects.isNull(thrInvOrder)) return false; if (Objects.isNull(thrInvOrder) || thrInvOrder.getStatus() != ConstantStatus.SFIO_DRAFT) return false;
//通过单号获取单据明细信息 //通过单号获取单据明细信息
QueryWrapper<ThrInvOrderDetail> qwd = new QueryWrapper<>(); QueryWrapper<ThrInvOrderDetail> qwd = new QueryWrapper<>();
qwd.eq("orderIdFk",billNo); qwd.eq("orderIdFk", billNo);
List<ThrInvOrderDetail> thrInvOrderDetails = thrInvOrderDetailMapper.selectList(qwd); List<ThrInvOrderDetail> 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")); String newBillNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER, "yyyyMMdd"));
@ -154,6 +174,7 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService {
ioOrderEntity.setFromCorp(generateOrderRequest.getFromCorp()); ioOrderEntity.setFromCorp(generateOrderRequest.getFromCorp());
ioOrderEntity.setInvCode(thrInvOrder.getInvCode()); ioOrderEntity.setInvCode(thrInvOrder.getInvCode());
ioOrderEntity.setDeptCode(thrInvOrder.getDeptCode()); ioOrderEntity.setDeptCode(thrInvOrder.getDeptCode());
ioOrderEntity.setAction(generateOrderRequest.getAction());
ioOrderEntity.setFromType(ConstantStatus.FROM_THRORDER);//网页新增 ioOrderEntity.setFromType(ConstantStatus.FROM_THRORDER);//网页新增
ioOrderEntity.setStatus(ConstantStatus.ORDER_STATUS_TEMP_SAVE);//草稿 ioOrderEntity.setStatus(ConstantStatus.ORDER_STATUS_TEMP_SAVE);//草稿
@ -167,23 +188,81 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService {
ioOrderEntity.setOrderType(ConstantStatus.ORDER_TYPE_NORMAL);//正常单据处理 ioOrderEntity.setOrderType(ConstantStatus.ORDER_TYPE_NORMAL);//正常单据处理
List<IoOrderDetailBizEntity> newOrderDetailBiz = new ArrayList<>(thrInvOrderDetails.size()); List<IoOrderDetailBizEntity> newOrderDetailBiz = new ArrayList<>(thrInvOrderDetails.size());
if (!copyOrderDetailBiz(thrInvOrderDetails,newOrderDetailBiz)){ if (!copyOrderDetailBiz(thrInvOrderDetails, newOrderDetailBiz,newBillNo)) {
return false; return false;
} }
ioOrderService.insertOrder(ioOrderEntity); 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;
}
/**
* relIdfalse
*
* @param thrInvOrderDetails
* @return
*/
private boolean inspectionDocuments(List<ThrInvOrderDetail> 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<ThrInvOrderDetail> thrInvOrderDetails, List<IoOrderDetailBizEntity> newOrderDetailBiz) { /**
/** *
* 1 *
* 2 * @param thrInvOrderDetails
*/ * @param newOrderDetailBiz
* @return
*/
private boolean copyOrderDetailBiz(List<ThrInvOrderDetail> thrInvOrderDetails, List<IoOrderDetailBizEntity> newOrderDetailBiz,String newBillNo) {
List<Long> relIds = thrInvOrderDetails.stream().filter(x -> ObjectUtil.isNotNull(x.getRelId()))
.map(ThrInvOrderDetail::getRelId).collect(Collectors.toList());
List<BasicProductsEntity> basicProductsEntities = udiRelevanceDao.selectProductByRelIds(relIds);
if (CollectionUtil.isEmpty(basicProductsEntities)) return false;
Map<Long, BasicProductsEntity> 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; 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 * SFIO + 6 + 6 + 6
* *
@ -219,7 +298,7 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService {
thrInvOrder.setSpaceCode(thrInvResultResponse.getSpaceCode());//货位编码 thrInvOrder.setSpaceCode(thrInvResultResponse.getSpaceCode());//货位编码
thrInvOrder.setStatus(ConstantStatus.SFIO_DRAFT);//单据状态 草稿 thrInvOrder.setStatus(ConstantStatus.SFIO_DRAFT);//单据状态 草稿
thrInvOrder.setCreateTime(newDate); thrInvOrder.setCreateTime(newDate);
thrInvOrder.setCreateUser("系统自动"); thrInvOrder.setCreateUser("外部系统下载");
} }
@ -230,12 +309,19 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService {
* @param thrInvOrderDetails * @param thrInvOrderDetails
* @param billNo * @param billNo
*/ */
private void handleExternalConvertThrInvOrderDetail(List<ThrInvResultResponse> list, List<ThrInvOrderDetail> thrInvOrderDetails, String billNo) { private void handleExternalConvertThrInvOrderDetail(List<ThrInvResultResponse> list, List<ThrInvOrderDetail> thrInvOrderDetails, String billNo, String thirdSys) {
Integer inv_set_enable = Integer.valueOf(systemParamConfigService.selectValueByParamKey("inv_set_enable")); 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<String> thrCodes = list.stream().map(ThrInvResultResponse::getThrCode).collect(Collectors.toList());
MainIdRelIdAndProductResponse map = udiRelevanceService.selectMainIdRelIdAndProductMap(thrCodes, thirdSys);
Map<String, Long> mainIdRelIdMap = map.getMainIdRelIdMap();
list.forEach(item -> { list.forEach(item -> {
String mainAction = item.getMainAction(); String mainAction = item.getMainAction();
Integer count = 0; String thrCode = item.getThrCode();
Long relId = mainIdRelIdMap.get(thrCode);
Integer count;
if (ConstantType.TYPE_PUT.equals(mainAction)) { if (ConstantType.TYPE_PUT.equals(mainAction)) {
count = Integer.valueOf(item.getInCount()); count = Integer.valueOf(item.getInCount());
} else { } else {
@ -244,15 +330,16 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService {
ThrInvOrderDetail thrInvOrderDetail = new ThrInvOrderDetail(); ThrInvOrderDetail thrInvOrderDetail = new ThrInvOrderDetail();
BeanUtils.copyProperties(item, thrInvOrderDetail); BeanUtils.copyProperties(item, thrInvOrderDetail);
thrInvOrderDetail.setOrderIdFk(billNo); thrInvOrderDetail.setOrderIdFk(billNo);
thrInvOrderDetail.setRelId(Long.parseLong(item.getThrCode())); thrInvOrderDetail.setRelId(relId);
thrInvOrderDetail.setThrCode(thrCode);
thrInvOrderDetail.setReCount(String.valueOf(count)); thrInvOrderDetail.setReCount(String.valueOf(count));
thrInvOrderDetails.add(thrInvOrderDetail); thrInvOrderDetails.add(thrInvOrderDetail);
}); });
} else { } else {//走项目组套
list.forEach(item -> { list.forEach(item -> {
String thrCode = item.getThrCode(); String thrCode = item.getThrCode();
String mainAction = item.getMainAction(); String mainAction = item.getMainAction();
Integer count = 0; Integer count;
if (ConstantType.TYPE_PUT.equals(mainAction)) { if (ConstantType.TYPE_PUT.equals(mainAction)) {
count = Integer.valueOf(item.getInCount()); count = Integer.valueOf(item.getInCount());
} else { } else {
@ -270,8 +357,8 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService {
Integer skCount = sk.getCount(); Integer skCount = sk.getCount();
if (skCount != null && skCount > 0) { if (skCount != null && skCount > 0) {
thrInvOrderDetail.setReCount(String.valueOf(skCount * finalCount)); thrInvOrderDetail.setReCount(String.valueOf(skCount * finalCount));
thrInvOrderDetails.add(thrInvOrderDetail);
} }
thrInvOrderDetails.add(thrInvOrderDetail);
}); });
} }
}); });

@ -1808,4 +1808,74 @@
</where> </where>
limit 1 limit 1
</select> </select>
<select id="selectProductByRelIds" resultType="com.glxp.api.entity.basic.BasicProductsEntity">
select bu.id,
basic_products.originUuid,
basic_products.nameCode,
basic_products.deviceRecordKey,
basic_products.packRatio,
basic_products.packUnit,
basic_products.packLevel,
basic_products.bhxjsl,
basic_products.bhzxxsbzsl,
basic_products.zxxsbzbhsydysl,
basic_products.bhxjcpbm,
basic_products.bzcj,
basic_products.cpmctymc,
basic_products.cplb,
basic_products.flbm,
basic_products.ggxh,
basic_products.qxlb,
basic_products.tyshxydm,
basic_products.ylqxzcrbarmc,
basic_products.zczbhhzbapzbh,
basic_products.ylqxzcrbarywmc,
basic_products.sydycpbs,
basic_products.sjcpbm,
basic_products.versionNumber,
basic_products.diType,
basic_products.ybbm,
basic_products.sptm,
basic_products.manufactory,
basic_products.measname,
basic_products.productType,
basic_products.scbssfbhph,
basic_products.scbssfbhxlh,
basic_products.scbssfbhscrq,
basic_products.scbssfbhsxrq,
basic_products.cpms,
basic_products.allowNoBatch,
basic_products.allowNoExpire,
basic_products.allowNoProduct,
basic_products.allowNoSerial,
basic_products.spmc,
basic_products.cplx,
basic_products.hchzsb,
basic_products.cpdls,
basic_products.basicPrductRemak1,
basic_products.basicPrductRemak2,
basic_products.basicPrductRemak3,
basic_products.basicPrductRemak4,
basic_products.basicPrductRemak5,
basic_products.basicPrductRemak6,
basic_products.basicPrductRemak7,
basic_products.basicPrductRemak8,
basic_products.sfwblztlcp,
basic_products.cgzmraqxgxx,
basic_products.sfbjwycxsy,
basic_products.zdcfsycs,
basic_products.sfwwjbz,
basic_products.syqsfxyjxmj,
basic_products.mjfs,
basic_products.categoryName
from basic_udirel AS bu
LEFT JOIN basic_products
ON bu.uuid = basic_products.uuid
where bu.id in
<foreach collection="relIds" item="item" index="index" separator="," open="(" close=")">
#{item}
</foreach>
</select>
</mapper> </mapper>

Loading…
Cancel
Save