关联关系临时解决

dev_unify
yewj 7 months ago
parent 9341f2bdf0
commit edad8988dd

@ -206,7 +206,18 @@ public class IoCollectOrderCodeManController extends BaseController {
if (bindingResult.hasErrors()) { if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
} }
List<IoCollectOrderCodeMan> collectOrderCodeMEN = addTagCodeReqeust.getCollectOrderCodeManList(); List<IoCollectOrderCodeMan> collectOrderCodeMEN = new ArrayList<>();
if (CollUtil.isNotEmpty(addTagCodeReqeust.getCodeList())) {
for (String code : addTagCodeReqeust.getCodeList()) {
IoCollectOrderCodeMan collectOrderCodeMan = collectOrderCodeManService.findByCode(addTagCodeReqeust.getBillNo(), code);
if (collectOrderCodeMan == null) {
return ResultVOUtils.error("非此单追溯码!");
} else {
collectOrderCodeMEN.add(collectOrderCodeMan);
}
}
} else collectOrderCodeMEN = addTagCodeReqeust.getCollectOrderCodeManList();
if (CollUtil.isNotEmpty(collectOrderCodeMEN)) { if (CollUtil.isNotEmpty(collectOrderCodeMEN)) {
for (IoCollectOrderCodeMan collectOrderCodeMan : collectOrderCodeMEN) { for (IoCollectOrderCodeMan collectOrderCodeMan : collectOrderCodeMEN) {
collectOrderCodeManService.updateById(collectOrderCodeMan); collectOrderCodeManService.updateById(collectOrderCodeMan);
@ -218,33 +229,36 @@ public class IoCollectOrderCodeManController extends BaseController {
return ResultVOUtils.success("更新成功!"); return ResultVOUtils.success("更新成功!");
} }
if (CollUtil.isNotEmpty(addTagCodeReqeust.getCodeList())) {
List<String> codeList = addTagCodeReqeust.getCodeList(); return ResultVOUtils.error("扫码不能为空!");
String billNo = addTagCodeReqeust.getBillNo();
List<IoCollectOrderCodeMan> ioCollectOrderCodeMEN = collectOrderCodeManService.listByBillNo(billNo); // if (CollUtil.isNotEmpty(addTagCodeReqeust.getCodeList())) {
Map<String, IoCollectOrderCodeMan> codeManMap = ioCollectOrderCodeMEN.stream().collect(Collectors.toMap(IoCollectOrderCodeMan::getUdiCode, x -> x)); // List<String> codeList = addTagCodeReqeust.getCodeList();
List<Long> bizIdFks = new ArrayList<>(); // String billNo = addTagCodeReqeust.getBillNo();
//codeList 拆零确认码 对 单据的biz进行匹配 匹配上标记是拆零码 // List<IoCollectOrderCodeMan> ioCollectOrderCodeMEN = collectOrderCodeManService.listByBillNo(billNo);
for (int i = 0; i < codeList.size(); i++) { // Map<String, IoCollectOrderCodeMan> codeManMap = ioCollectOrderCodeMEN.stream().collect(Collectors.toMap(IoCollectOrderCodeMan::getUdiCode, x -> x));
String code = codeList.get(i); // List<Long> bizIdFks = new ArrayList<>();
IoCollectOrderCodeMan ioCollectOrderCodeMan = codeManMap.get(code); // //codeList 拆零确认码 对 单据的biz进行匹配 匹配上标记是拆零码
if (ioCollectOrderCodeMan != null) { // for (int i = 0; i < codeList.size(); i++) {
//更新业务表为无需确认拆零码、码明细确认拆零字段为true // String code = codeList.get(i);
ioCollectOrderCodeMan.setIsSplitCode(true); // IoCollectOrderCodeMan ioCollectOrderCodeMan = codeManMap.get(code);
collectOrderCodeManService.updateById(ioCollectOrderCodeMan); // if (ioCollectOrderCodeMan != null) {
bizIdFks.add(ioCollectOrderCodeMan.getBizIdFk()); // //更新业务表为无需确认拆零码、码明细确认拆零字段为true
} // ioCollectOrderCodeMan.setIsSplitCode(true);
} // collectOrderCodeManService.updateById(ioCollectOrderCodeMan);
if (bizIdFks.size() > 0) { // bizIdFks.add(ioCollectOrderCodeMan.getBizIdFk());
UpdateWrapper<IoCollectOrderBiz> updateWrapper = new UpdateWrapper<>(); // }
updateWrapper.set("splitUnCheck", false); // }
updateWrapper.in("id", bizIdFks); // if (bizIdFks.size() > 0) {
collectOrderBizService.update(updateWrapper); // UpdateWrapper<IoCollectOrderBiz> updateWrapper = new UpdateWrapper<>();
} // updateWrapper.set("splitUnCheck", false);
return ResultVOUtils.success("更新成功"); // updateWrapper.in("id", bizIdFks);
} else { // collectOrderBizService.update(updateWrapper);
return ResultVOUtils.error("数据不能为空"); // }
} // return ResultVOUtils.success("更新成功");
// } else {
// return ResultVOUtils.error("数据不能为空");
// }
} }
public String countSameErrMsg(List<VailCodeResultResponse> vailCodeResultResponses) { public String countSameErrMsg(List<VailCodeResultResponse> vailCodeResultResponses) {

@ -38,6 +38,7 @@ import com.glxp.api.util.StringUtils;
import com.glxp.api.util.udi.FilterUdiUtils; import com.glxp.api.util.udi.FilterUdiUtils;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.glxp.api.dao.collect.RelCodeBatchMapper; import com.glxp.api.dao.collect.RelCodeBatchMapper;
@ -101,7 +102,6 @@ public class RelCodeBatchService extends ServiceImpl<RelCodeBatchMapper, RelCode
} }
/** /**
* *
* *
@ -280,6 +280,7 @@ public class RelCodeBatchService extends ServiceImpl<RelCodeBatchMapper, RelCode
SpsDirectClient spsDirectClient; SpsDirectClient spsDirectClient;
@Resource @Resource
private SpGetHttpClient spGetHttpClient; private SpGetHttpClient spGetHttpClient;
/** /**
* spms * spms
*/ */
@ -299,11 +300,14 @@ public class RelCodeBatchService extends ServiceImpl<RelCodeBatchMapper, RelCode
UdiProductService udiProductService; UdiProductService udiProductService;
public void threadUpdateIoCodeTempEntity(String parentCode) { public void threadUpdateIoCodeTempEntity(String parentCode) {
ThreadUtil.execAsync(() -> {
List<IoCodeTempEntity> ioCodeTempEntities = ioCodeTempDao.selectList(new LambdaQueryWrapper<IoCodeTempEntity>().eq(IoCodeTempEntity::getCode, parentCode)); List<IoCodeTempEntity> ioCodeTempEntities = ioCodeTempDao.selectList(new LambdaQueryWrapper<IoCodeTempEntity>().eq(IoCodeTempEntity::getCode, parentCode));
if (CollUtil.isNotEmpty(ioCodeTempEntities)) { if (CollUtil.isNotEmpty(ioCodeTempEntities)) {
IoCodeTempEntity codeTempEntity = ioCodeTempEntities.get(0); IoCodeTempEntity codeTempEntity = ioCodeTempEntities.get(0);
//1、排除掉层级是1的 //1、排除掉层级是1的
UdiEntity udi = FilterUdiUtils.getUdi(parentCode); UdiEntity udi = FilterUdiUtils.getUdi(parentCode);
if (udi == null) if (udi == null)
return; return;
String udi1 = udi.getUdi(); String udi1 = udi.getUdi();
@ -314,7 +318,7 @@ public class RelCodeBatchService extends ServiceImpl<RelCodeBatchMapper, RelCode
.eq(RelCodeBatch::getParentCode, parentCode)); .eq(RelCodeBatch::getParentCode, parentCode));
// //
if(navList == null || navList.size() == 0 ){ if (navList == null || navList.size() == 0) {
CompanyEntity companyEntity = companyService.findCompany(); CompanyEntity companyEntity = companyService.findCompany();
BasicCorpEntity basicCorpEntity = basicCorpService.selectByErpId(codeTempEntity.getSupId()); BasicCorpEntity basicCorpEntity = basicCorpService.selectByErpId(codeTempEntity.getSupId());
AlihealthRelCodeInsertReqeust alihealthRelCodeInsertReqeust = new AlihealthRelCodeInsertReqeust(); AlihealthRelCodeInsertReqeust alihealthRelCodeInsertReqeust = new AlihealthRelCodeInsertReqeust();
@ -326,31 +330,31 @@ public class RelCodeBatchService extends ServiceImpl<RelCodeBatchMapper, RelCode
alihealthRelCodeInsertReqeust.setRefEntId(companyEntity.getRefEntId()); alihealthRelCodeInsertReqeust.setRefEntId(companyEntity.getRefEntId());
BaseResponse baseResponse = spGetHttpClient.relCodeInsert(alihealthRelCodeInsertReqeust); BaseResponse baseResponse = spGetHttpClient.relCodeInsert(alihealthRelCodeInsertReqeust);
if(baseResponse.getCode() == 20000){ if (baseResponse.getCode() == 20000) {
System.out.println("sda"+baseResponse.getData().toString()); System.out.println("sda" + baseResponse.getData().toString());
AlihealthKytSinglerelationResponse alihealthKytSinglerelationResponse = JSONUtil.toBean(baseResponse.getData().toString(),AlihealthKytSinglerelationResponse.class); AlihealthKytSinglerelationResponse alihealthKytSinglerelationResponse = JSONUtil.toBean(baseResponse.getData().toString(), AlihealthKytSinglerelationResponse.class);
// 返回的码关联关系进行插入 // 返回的码关联关系进行插入
RelCodeBatch relCodeBatch = alihealthKytSinglerelationResponse.disposeRelCodeBatch( alihealthRelCodeInsertReqeust.getCustomerId()); RelCodeBatch relCodeBatch = alihealthKytSinglerelationResponse.disposeRelCodeBatch(alihealthRelCodeInsertReqeust.getCustomerId());
RelCodeBatch relCodeBatchOne = relCodeBatchService.getOne(new QueryWrapper<RelCodeBatch>().eq("productCode",relCodeBatch.getProductCode()) RelCodeBatch relCodeBatchOne = relCodeBatchService.getOne(new QueryWrapper<RelCodeBatch>().eq("productCode", relCodeBatch.getProductCode())
.last("limit 1") .last("limit 1")
); );
if(Objects.isNull(relCodeBatchOne)){ if (Objects.isNull(relCodeBatchOne)) {
relCodeBatch.setCreateUser(alihealthRelCodeInsertReqeust.getCustomerId()); relCodeBatch.setCreateUser(alihealthRelCodeInsertReqeust.getCustomerId());
relCodeBatch.setCreateTime(new Date()); relCodeBatch.setCreateTime(new Date());
relCodeBatchService.save(relCodeBatch); relCodeBatchService.save(relCodeBatch);
}else { } else {
relCodeBatchService.update(relCodeBatch,new QueryWrapper<RelCodeBatch>().eq("productCode",relCodeBatch.getProductCode())); relCodeBatchService.update(relCodeBatch, new QueryWrapper<RelCodeBatch>().eq("productCode", relCodeBatch.getProductCode()));
} }
Integer id = Objects.isNull(relCodeBatch.getId()) ? relCodeBatchOne.getId() :relCodeBatch.getId(); Integer id = Objects.isNull(relCodeBatch.getId()) ? relCodeBatchOne.getId() : relCodeBatch.getId();
// 进行查询 // 进行查询
List<RelCodeDetail> list = alihealthKytSinglerelationResponse.disposeRelRodeDetailList(id); List<RelCodeDetail> list = alihealthKytSinglerelationResponse.disposeRelRodeDetailList(id);
if(list!=null && list.size()>0){ if (list != null && list.size() > 0) {
List curCodeList = new ArrayList(); List curCodeList = new ArrayList();
for (RelCodeDetail relCodeDetail : list) { for (RelCodeDetail relCodeDetail : list) {
curCodeList.add(relCodeDetail.getCurCode()); curCodeList.add(relCodeDetail.getCurCode());
} }
relCodeDetailService.remove(new QueryWrapper<RelCodeDetail>().in("curCode",curCodeList)); relCodeDetailService.remove(new QueryWrapper<RelCodeDetail>().in("curCode", curCodeList));
relCodeDetailService.saveBatch(list); relCodeDetailService.saveBatch(list);
} }
@ -359,12 +363,12 @@ public class RelCodeBatchService extends ServiceImpl<RelCodeBatchMapper, RelCode
navList = this.list(new LambdaQueryWrapper<RelCodeBatch>() navList = this.list(new LambdaQueryWrapper<RelCodeBatch>()
.eq(RelCodeBatch::getCurCode, parentCode)); .eq(RelCodeBatch::getCurCode, parentCode));
if(StringUtils.isEmpty(companyEntity.getRefEntId())){ if (StringUtils.isEmpty(companyEntity.getRefEntId())) {
companyEntity.setRefEntId(alihealthKytSinglerelationResponse.getRefEntId()); companyEntity.setRefEntId(alihealthKytSinglerelationResponse.getRefEntId());
companyService.modifyCompany(companyEntity); companyService.modifyCompany(companyEntity);
} }
}else { } else {
if(StringUtils.isNotEmpty(companyEntity.getRefEntId())){ if (StringUtils.isNotEmpty(companyEntity.getRefEntId())) {
companyEntity.setRefEntId(null); companyEntity.setRefEntId(null);
companyService.modifyCompany(companyEntity); companyService.modifyCompany(companyEntity);
} }
@ -381,11 +385,11 @@ public class RelCodeBatchService extends ServiceImpl<RelCodeBatchMapper, RelCode
ioCodeTempDao.updateById(ioCodeTempEntity); ioCodeTempDao.updateById(ioCodeTempEntity);
} }
} else { } else {
ThreadUtil.execAsync(() -> {
asynThreadUpdateIoCodeTempEntity(parentCode, ioCodeTempEntities); asynThreadUpdateIoCodeTempEntity(parentCode, ioCodeTempEntities);
});
} }
} }
});
} }
@ -411,7 +415,7 @@ public class RelCodeBatchService extends ServiceImpl<RelCodeBatchMapper, RelCode
} }
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
void ProcessData(Element rootElement){ void ProcessData(Element rootElement) {
//截取Relation //截取Relation
NodeList relation = rootElement.getElementsByTagName("Relation"); NodeList relation = rootElement.getElementsByTagName("Relation");
if (relation == null) { if (relation == null) {
@ -484,19 +488,19 @@ public class RelCodeBatchService extends ServiceImpl<RelCodeBatchMapper, RelCode
relCodeDetail.setFlag(Integer.valueOf(flag)); relCodeDetail.setFlag(Integer.valueOf(flag));
//判断是否已存在 //判断是否已存在
List<RelCodeDetail> relCodeDetails = codeMap.get(StrUtil.isNotBlank(parentCode) ? parentCode : "0"); List<RelCodeDetail> relCodeDetails = codeMap.get(StrUtil.isNotBlank(parentCode) ? parentCode : "0");
if (relCodeDetails == null){ if (relCodeDetails == null) {
List<RelCodeDetail> newRelCodeDetails = new ArrayList<>(); List<RelCodeDetail> newRelCodeDetails = new ArrayList<>();
newRelCodeDetails.add(relCodeDetail); newRelCodeDetails.add(relCodeDetail);
codeMap.put(StrUtil.isNotBlank(parentCode) ? parentCode : "0",newRelCodeDetails); codeMap.put(StrUtil.isNotBlank(parentCode) ? parentCode : "0", newRelCodeDetails);
}else { } else {
relCodeDetails.add(relCodeDetail); relCodeDetails.add(relCodeDetail);
codeMap.put(StrUtil.isNotBlank(parentCode) ? parentCode : "0",relCodeDetails); codeMap.put(StrUtil.isNotBlank(parentCode) ? parentCode : "0", relCodeDetails);
} }
} }
} }
//开始处理codeMap //开始处理codeMap
if (!codeMap.isEmpty()){ if (!codeMap.isEmpty()) {
Map<String, Integer> batchIdFkMap = new HashMap<>(); Map<String, Integer> batchIdFkMap = new HashMap<>();
List<RelCodeDetail> addRelCodeDetail = new ArrayList<>(); List<RelCodeDetail> addRelCodeDetail = new ArrayList<>();
RelCodeBatch updateDrugLevelRelCodeBatch = null; RelCodeBatch updateDrugLevelRelCodeBatch = null;
@ -506,9 +510,9 @@ public class RelCodeBatchService extends ServiceImpl<RelCodeBatchMapper, RelCode
List<RelCodeDetail> list = entry.getValue(); List<RelCodeDetail> list = entry.getValue();
RelCodeBatch addRelCodeBatch = new RelCodeBatch(); RelCodeBatch addRelCodeBatch = new RelCodeBatch();
BeanUtils.copyProperties(relCodeBatch,addRelCodeBatch); BeanUtils.copyProperties(relCodeBatch, addRelCodeBatch);
addRelCodeBatch.setParentCode(key); addRelCodeBatch.setParentCode(key);
if ("0".equals(key)){ if ("0".equals(key)) {
RelCodeDetail relCodeDetail = list.get(0); RelCodeDetail relCodeDetail = list.get(0);
String curCode = relCodeDetail.getCurCode(); String curCode = relCodeDetail.getCurCode();
String diStr = FilterUdiUtils.getUdi(curCode).getUdi(); String diStr = FilterUdiUtils.getUdi(curCode).getUdi();
@ -517,14 +521,14 @@ public class RelCodeBatchService extends ServiceImpl<RelCodeBatchMapper, RelCode
addRelCodeBatch.setThreeLevelCount(1); addRelCodeBatch.setThreeLevelCount(1);
this.save(addRelCodeBatch); this.save(addRelCodeBatch);
batchIdFkMap.put(curCode,addRelCodeBatch.getId()); batchIdFkMap.put(curCode, addRelCodeBatch.getId());
updateDrugLevelRelCodeBatch = addRelCodeBatch; updateDrugLevelRelCodeBatch = addRelCodeBatch;
}else { } else {
for (RelCodeDetail detail : list) { for (RelCodeDetail detail : list) {
Integer packLayer = detail.getPackLayer(); Integer packLayer = detail.getPackLayer();
if (packLayer == 2){ if (packLayer == 2) {
RelCodeBatch addRelCodeBatch2 = new RelCodeBatch(); RelCodeBatch addRelCodeBatch2 = new RelCodeBatch();
BeanUtils.copyProperties(relCodeBatch,addRelCodeBatch2); BeanUtils.copyProperties(relCodeBatch, addRelCodeBatch2);
addRelCodeBatch2.setParentCode(key); addRelCodeBatch2.setParentCode(key);
String curCode = detail.getCurCode(); String curCode = detail.getCurCode();
String diStr = FilterUdiUtils.getUdi(curCode).getUdi(); String diStr = FilterUdiUtils.getUdi(curCode).getUdi();
@ -534,12 +538,12 @@ public class RelCodeBatchService extends ServiceImpl<RelCodeBatchMapper, RelCode
addRelCodeBatch2.setTwoLevelCount(1); addRelCodeBatch2.setTwoLevelCount(1);
this.save(addRelCodeBatch2); this.save(addRelCodeBatch2);
batchIdFkMap.put(curCode,addRelCodeBatch2.getId()); batchIdFkMap.put(curCode, addRelCodeBatch2.getId());
//同时也是上面的明细 //同时也是上面的明细
detail.setBatchIdFk(batchIdFkMap.get(key)); detail.setBatchIdFk(batchIdFkMap.get(key));
addRelCodeDetail.add(detail); addRelCodeDetail.add(detail);
}else if (packLayer == 1){ } else if (packLayer == 1) {
//直接明细 //直接明细
detail.setBatchIdFk(batchIdFkMap.get(key)); detail.setBatchIdFk(batchIdFkMap.get(key));
addRelCodeDetail.add(detail); addRelCodeDetail.add(detail);
@ -547,7 +551,7 @@ public class RelCodeBatchService extends ServiceImpl<RelCodeBatchMapper, RelCode
} }
} }
} }
if (CollUtil.isNotEmpty(addRelCodeDetail)){ if (CollUtil.isNotEmpty(addRelCodeDetail)) {
relCodeDetailService.saveBatch(addRelCodeDetail); relCodeDetailService.saveBatch(addRelCodeDetail);
//更新层级关系的数量 //更新层级关系的数量
this.updateDrugLevelCount(updateDrugLevelRelCodeBatch); this.updateDrugLevelCount(updateDrugLevelRelCodeBatch);
@ -561,15 +565,16 @@ public class RelCodeBatchService extends ServiceImpl<RelCodeBatchMapper, RelCode
/** /**
* curCode * curCode
* *
*
* @param item * @param item
*/ */
private void updateDrugLevelCount(RelCodeBatch item) { private void updateDrugLevelCount(RelCodeBatch item) {
String curCode = item.getCurCode(); String curCode = item.getCurCode();
List<RelCodeDetail> list = relCodeDetailService.list(new LambdaQueryWrapper<RelCodeDetail>().eq(RelCodeDetail::getParentCode, curCode)); List<RelCodeDetail> list = relCodeDetailService.list(new LambdaQueryWrapper<RelCodeDetail>().eq(RelCodeDetail::getParentCode, curCode));
if (CollUtil.isNotEmpty(list)){ if (CollUtil.isNotEmpty(list)) {
RelCodeDetail relCodeDetail = list.get(0); RelCodeDetail relCodeDetail = list.get(0);
Integer packLayer = relCodeDetail.getPackLayer(); Integer packLayer = relCodeDetail.getPackLayer();
if (packLayer == 2){ if (packLayer == 2) {
item.setThreeLevelCount(1); item.setThreeLevelCount(1);
item.setTwoLevelCount(list.size()); item.setTwoLevelCount(list.size());
@ -580,12 +585,12 @@ public class RelCodeBatchService extends ServiceImpl<RelCodeBatchMapper, RelCode
//更新下 二级单 //更新下 二级单
List<RelCodeBatch> twoRelCodeBatchs = this.list(new LambdaQueryWrapper<RelCodeBatch>().in(RelCodeBatch::getCurCode, twoCurCodes)); List<RelCodeBatch> twoRelCodeBatchs = this.list(new LambdaQueryWrapper<RelCodeBatch>().in(RelCodeBatch::getCurCode, twoCurCodes));
if (CollUtil.isNotEmpty(twoRelCodeBatchs)){ if (CollUtil.isNotEmpty(twoRelCodeBatchs)) {
twoRelCodeBatchs.forEach( t -> { twoRelCodeBatchs.forEach(t -> {
this.updateDrugLevelCount(t); this.updateDrugLevelCount(t);
}); });
} }
}else if (packLayer == 1){ } else if (packLayer == 1) {
item.setThreeLevelCount(0); item.setThreeLevelCount(0);
item.setTwoLevelCount(1); item.setTwoLevelCount(1);
item.setOneLevelCount(list.size()); item.setOneLevelCount(list.size());

Loading…
Cancel
Save