|
|
|
@ -430,7 +430,7 @@ public class RelCodeBatchService extends ServiceImpl<RelCodeBatchMapper, RelCode
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
|
void ProcessData(Element rootElement){
|
|
|
|
|
void ProcessData(Element rootElement) {
|
|
|
|
|
//截取Relation
|
|
|
|
|
NodeList relation = rootElement.getElementsByTagName("Relation");
|
|
|
|
|
if (relation == null) {
|
|
|
|
@ -482,7 +482,7 @@ public class RelCodeBatchService extends ServiceImpl<RelCodeBatchMapper, RelCode
|
|
|
|
|
relCodeBatch.setUpdateTime(new Date());
|
|
|
|
|
relCodeBatch.setUpdateUser(user.getUserName());
|
|
|
|
|
relCodeBatch.setErpId(customerId);
|
|
|
|
|
relCodeBatch.setUploadFlagDown(1);
|
|
|
|
|
relCodeBatch.setUploadFlagDown(0);
|
|
|
|
|
relCodeBatch.setUploadFlagUp(0);
|
|
|
|
|
|
|
|
|
|
//batch下的节点code
|
|
|
|
@ -503,19 +503,19 @@ public class RelCodeBatchService extends ServiceImpl<RelCodeBatchMapper, RelCode
|
|
|
|
|
relCodeDetail.setFlag(Integer.valueOf(flag));
|
|
|
|
|
//判断是否已存在
|
|
|
|
|
List<RelCodeDetail> relCodeDetails = codeMap.get(StrUtil.isNotBlank(parentCode) ? parentCode : "0");
|
|
|
|
|
if (relCodeDetails == null){
|
|
|
|
|
if (relCodeDetails == null) {
|
|
|
|
|
List<RelCodeDetail> newRelCodeDetails = new ArrayList<>();
|
|
|
|
|
newRelCodeDetails.add(relCodeDetail);
|
|
|
|
|
codeMap.put(StrUtil.isNotBlank(parentCode) ? parentCode : "0",newRelCodeDetails);
|
|
|
|
|
}else {
|
|
|
|
|
codeMap.put(StrUtil.isNotBlank(parentCode) ? parentCode : "0", newRelCodeDetails);
|
|
|
|
|
} else {
|
|
|
|
|
relCodeDetails.add(relCodeDetail);
|
|
|
|
|
codeMap.put(StrUtil.isNotBlank(parentCode) ? parentCode : "0",relCodeDetails);
|
|
|
|
|
codeMap.put(StrUtil.isNotBlank(parentCode) ? parentCode : "0", relCodeDetails);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//开始处理codeMap
|
|
|
|
|
if (!codeMap.isEmpty()){
|
|
|
|
|
if (!codeMap.isEmpty()) {
|
|
|
|
|
|
|
|
|
|
Map<String, List<RelCodeDetail>> sortedCodeMap = codeMap.entrySet()
|
|
|
|
|
.stream()
|
|
|
|
@ -540,10 +540,10 @@ public class RelCodeBatchService extends ServiceImpl<RelCodeBatchMapper, RelCode
|
|
|
|
|
String key = entry.getKey();
|
|
|
|
|
List<RelCodeDetail> list = entry.getValue();
|
|
|
|
|
|
|
|
|
|
if ("0".equals(key)){
|
|
|
|
|
if ("0".equals(key)) {
|
|
|
|
|
for (RelCodeDetail relCodeDetail : list) {
|
|
|
|
|
RelCodeBatch addRelCodeBatch = new RelCodeBatch();
|
|
|
|
|
BeanUtils.copyProperties(relCodeBatch,addRelCodeBatch);
|
|
|
|
|
BeanUtils.copyProperties(relCodeBatch, addRelCodeBatch);
|
|
|
|
|
addRelCodeBatch.setParentCode(key);
|
|
|
|
|
String curCode = relCodeDetail.getCurCode();
|
|
|
|
|
String diStr = FilterUdiUtils.getUdi(curCode).getUdi();
|
|
|
|
@ -553,16 +553,16 @@ public class RelCodeBatchService extends ServiceImpl<RelCodeBatchMapper, RelCode
|
|
|
|
|
addRelCodeBatch.setId(null);
|
|
|
|
|
|
|
|
|
|
this.save(addRelCodeBatch);
|
|
|
|
|
batchIdFkMap.put(curCode,addRelCodeBatch.getId());
|
|
|
|
|
batchIdFkMap.put(curCode, addRelCodeBatch.getId());
|
|
|
|
|
updateDrugLevelRelCodeBatch.add(addRelCodeBatch);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}else {
|
|
|
|
|
} else {
|
|
|
|
|
for (RelCodeDetail detail : list) {
|
|
|
|
|
Integer packLayer = detail.getPackLayer();
|
|
|
|
|
if (packLayer == 2){
|
|
|
|
|
if (packLayer == 2) {
|
|
|
|
|
RelCodeBatch addRelCodeBatch2 = new RelCodeBatch();
|
|
|
|
|
BeanUtils.copyProperties(relCodeBatch,addRelCodeBatch2);
|
|
|
|
|
BeanUtils.copyProperties(relCodeBatch, addRelCodeBatch2);
|
|
|
|
|
String curCode = detail.getCurCode();
|
|
|
|
|
String parentCode = detail.getParentCode();
|
|
|
|
|
addRelCodeBatch2.setParentCode(parentCode);
|
|
|
|
@ -574,12 +574,12 @@ public class RelCodeBatchService extends ServiceImpl<RelCodeBatchMapper, RelCode
|
|
|
|
|
addRelCodeBatch2.setId(null);
|
|
|
|
|
|
|
|
|
|
this.save(addRelCodeBatch2);
|
|
|
|
|
batchIdFkMap.put(curCode,addRelCodeBatch2.getId());
|
|
|
|
|
batchIdFkMap.put(curCode, addRelCodeBatch2.getId());
|
|
|
|
|
|
|
|
|
|
//同时也是上面的明细
|
|
|
|
|
detail.setBatchIdFk(batchIdFkMap.get(parentCode));
|
|
|
|
|
addRelCodeDetail.add(detail);
|
|
|
|
|
}else if (packLayer == 1){
|
|
|
|
|
} else if (packLayer == 1) {
|
|
|
|
|
//直接明细
|
|
|
|
|
String parentCode = detail.getParentCode();
|
|
|
|
|
detail.setBatchIdFk(batchIdFkMap.get(parentCode));
|
|
|
|
@ -588,10 +588,10 @@ public class RelCodeBatchService extends ServiceImpl<RelCodeBatchMapper, RelCode
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (CollUtil.isNotEmpty(addRelCodeDetail)){
|
|
|
|
|
if (CollUtil.isNotEmpty(addRelCodeDetail)) {
|
|
|
|
|
relCodeDetailService.saveBatch(addRelCodeDetail);
|
|
|
|
|
//更新层级关系的数量
|
|
|
|
|
updateDrugLevelRelCodeBatch.forEach( item -> {
|
|
|
|
|
updateDrugLevelRelCodeBatch.forEach(item -> {
|
|
|
|
|
this.updateDrugLevelCount(item);
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
@ -604,15 +604,16 @@ public class RelCodeBatchService extends ServiceImpl<RelCodeBatchMapper, RelCode
|
|
|
|
|
/**
|
|
|
|
|
* 通过curCode 获取明细的数量 如果是 三级 需要先去计算二级单下的一级数量 在算出二级数量
|
|
|
|
|
* 如果是 二级 直接计算出 一级
|
|
|
|
|
*
|
|
|
|
|
* @param item
|
|
|
|
|
*/
|
|
|
|
|
private void updateDrugLevelCount(RelCodeBatch item) {
|
|
|
|
|
String curCode = item.getCurCode();
|
|
|
|
|
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);
|
|
|
|
|
Integer packLayer = relCodeDetail.getPackLayer();
|
|
|
|
|
if (packLayer == 2){
|
|
|
|
|
if (packLayer == 2) {
|
|
|
|
|
item.setThreeLevelCount(1);
|
|
|
|
|
item.setTwoLevelCount(list.size());
|
|
|
|
|
|
|
|
|
@ -623,12 +624,12 @@ public class RelCodeBatchService extends ServiceImpl<RelCodeBatchMapper, RelCode
|
|
|
|
|
|
|
|
|
|
//更新下 二级单
|
|
|
|
|
List<RelCodeBatch> twoRelCodeBatchs = this.list(new LambdaQueryWrapper<RelCodeBatch>().in(RelCodeBatch::getCurCode, twoCurCodes));
|
|
|
|
|
if (CollUtil.isNotEmpty(twoRelCodeBatchs)){
|
|
|
|
|
twoRelCodeBatchs.forEach( t -> {
|
|
|
|
|
if (CollUtil.isNotEmpty(twoRelCodeBatchs)) {
|
|
|
|
|
twoRelCodeBatchs.forEach(t -> {
|
|
|
|
|
this.updateDrugLevelCount(t);
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}else if (packLayer == 1){
|
|
|
|
|
} else if (packLayer == 1) {
|
|
|
|
|
item.setThreeLevelCount(0);
|
|
|
|
|
item.setTwoLevelCount(1);
|
|
|
|
|
item.setOneLevelCount(list.size());
|
|
|
|
|