Commit 337d86fe by lijingjing

修改委托检测项目验证及出入库字段错误问题;

parent 57ad5dd4
......@@ -346,25 +346,29 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe
@Transactional(rollbackFor = Exception.class)
protected void generateCompareItems(Long[] ids, Account account) {
if (ArrayUtils.isEmpty(ids)) {
logger.error("report ids is empty ");
logger.error("✦✦✦✦ EntrustReportServiceImpl ✦✦✦✦ generateCompareItems ✦✦✦✈ 报告IDS数据为空!");
return;
}
List<EntrustReportRelSample> relSamples = entrustReportRelSampleService.list(Condition.create().in("report_id", ids));
if (CollectionUtils.isEmpty(relSamples)) {
logger.error("No rel samples found");
logger.error("✦✦✦✦ EntrustReportServiceImpl ✦✦✦✦ generateCompareItems ✦✦✦✈ rel samples not found!");
return;
}
List<Long> sampleIds = relSamples.stream().map(EntrustReportRelSample::getSampleId).distinct().collect(Collectors.toList());
EntrustSample sample = entrustSampleService.getById(sampleIds.get(0));
logger.error("print sample name:{} ", sample.getName());
if (!(Objects.equals(sample.getName(), "原铝") || Objects.equals(sample.getName(), "铝成品"))) {
String sampleName = sample.getName();
logger.info("✦✦✦✦ EntrustReportServiceImpl ✦✦✦✦ generateCompareItems ✦✦✦✈ [sampleName]: {}", sampleName);
if (!(Objects.equals(sampleName, "原铝") || Objects.equals(sampleName, "铝成品"))) {
logger.info("✦✦✦✦ EntrustReportServiceImpl ✦✦✦✦ generateCompareItems ✦✦✦✈ 非【原铝,铝成品】样品,不予处理!");
return;
}
logger.error("begin compare item test value...");
logger.info("✦✦✦✦ EntrustReportServiceImpl ✦✦✦✦ generateCompareItems ✦✦✦✈ 开始比对检测项目数据!");
SlotQueryDTO slotQuery = new SlotQueryDTO();
slotQuery.setSampleIds(sampleIds);
// 每次提交编制报告时,添加对比记录
itemComparisonService.saveCompareDataBatch(slotQuery,account);
itemComparisonService.saveCompareDataBatch(slotQuery, account);
}
@Override
......
......@@ -510,7 +510,7 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
List<EntrustSample> saveSampleList = new ArrayList<>();
List<EntrustSampleItem> saveEntrustSampleItemList = new ArrayList<>();
List<Long> contractSampleIds = new ArrayList<>();
int incNum = 10;
int incNum = 10, index = 1;
for (EntrustSampleDTO sampleDTO : sampleDTOList) {
if (null != sampleDTO.getContractSampleId()) {
contractSampleIds.add(sampleDTO.getContractSampleId());
......@@ -540,9 +540,12 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
incNum += 10;
List<EntrustSampleItem> itemList = sampleDTO.getItemList();
if (CollectionUtils.isEmpty(itemList)) {
RestAssert.fail(isSubmit, String.format("第【%d】行样品,检测项目为空!", index));
index++;
logger.error("✦✦✦✦ EntrustServiceImpl ✦✦✦✦ saveEntrustDTO ✦✦✦✈ 【{},{}】检测项目数据为空!", sample.getId(), sample.getCode());
continue;
}
index++;
for (EntrustSampleItem sampleItem : itemList) {
if (null != sampleItem.getPrice()) {
totalFee = totalFee.add(sampleItem.getPrice());
......@@ -759,7 +762,7 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
List<EntrustSample> saveSampleList = new ArrayList<>();
List<EntrustSampleItem> saveItemList = new ArrayList<>();
int incNum = 10;
int incNum = 10, index = 1;
for (EntrustSampleDTO sto : sampleList) {
EntrustSample sample = sto.convert(EntrustSample.class);
boolean isInsert = initSampleJudgeNew(entrustId, incNum, sample);
......@@ -803,8 +806,10 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
}
}
} else {
RestAssert.fail(isSubmit, String.format("第【%d】行样品,检测项目为空!", index));
logger.error("✦✦✦✦ EntrustServiceImpl ✦✦✦✦ editEntrust ✦✦✦✈ 【{},{}】检测项目数据为空!", sample.getId(), sample.getCode());
}
index++;
}
logger.error("样品添加{}个,修改{}个,总共前端提交{}个。", saveSampleList.size(), updateSampleList.size(), sampleList.size());
......@@ -1777,11 +1782,13 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
RestAssert.fail(CollectionUtils.isEmpty(itemList), "提交的检测项目数据为空!");
Map<Long, List<EntrustSampleItem>> sampleItemMap = new HashMap<>();
itemList.forEach(it -> MapMergeUtils.getorCreateMapArrayList(it.getEntrustSampleId(), sampleItemMap, it));
for (Entrust entrust : entrustList) {
RestAssert.fail(!Objects.equals(entrust.getFlowStatus(), EntrustFlowEnum.DRAFT.name()), "只能提交草稿状态的委托!");
List<EntrustSample> sampleList = entrustSampleMap.get(entrust.getId());
RestAssert.fail(CollectionUtils.isEmpty(sampleList), String.format("委托编号为的【%s】样品为空!", entrust.getCode()));
// 若存在任何一个样品的编号为空,那么需要自动生成其编号
int index = 1;
for (EntrustSample sample : sampleList) {
sample.setSlotNo(StringHandleUtils.nvlBlank(sample.getSlotNo()));
if (StringUtils.isBlank(sample.getCode()) || Objects.nonNull(sample.getSamplingId())) {
......@@ -1792,7 +1799,8 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
// 处理重取原编号
retakeSourceCodeHandle(sample);
RestAssert.fail(entrustSampleService.isRepeatSampleCode(sample), String.format("样品编号【%s】重复!", sample.getCode()));
RestAssert.fail(CollectionUtils.isEmpty(sampleItemMap.get(sample.getId())), String.format("【%s】样品对应的检测项目为空!", sample.getCode()));
RestAssert.fail(CollectionUtils.isEmpty(sampleItemMap.get(sample.getId())), String.format("第【%d】行样品对应的检测项目为空!", index));
index++;
}
entrustSampleService.updateBatchById(sampleList);
......
......@@ -21,7 +21,6 @@ import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
/**
* 检测项目比对表 服务实现类
......@@ -153,9 +152,11 @@ public class ItemComparisonServiceImpl extends BaseServiceImpl<ItemComparisonMap
@Override
public boolean saveCompareDataBatch(SlotQueryDTO queryDTO, Account account) {
logger.info("✦✦✦✦ ItemComparisonServiceImpl ✦✦✦✦ saveCompareDataBatch ✦✦✦✈ [queryDTO]: {}", JacksonUtils.toJSONString(queryDTO));
List<ItemComparison> comparisonList = listCompareItems(queryDTO);
logger.error("saveCompareDataBatch -- search data : {}", JacksonUtils.toJSONString(comparisonList));
logger.info("✦✦✦✦ ItemComparisonServiceImpl ✦✦✦✦ saveCompareDataBatch ✦✦✦✈ [comparisonList]: {}", JacksonUtils.toJSONString(comparisonList));
if (CollectionUtils.isEmpty(comparisonList)) {
logger.error("✦✦✦✦ ItemComparisonServiceImpl ✦✦✦✦ saveCompareDataBatch ✦✦✦✈ 比对的检测项目数据为空!");
return false;
}
// ==
......@@ -164,25 +165,33 @@ public class ItemComparisonServiceImpl extends BaseServiceImpl<ItemComparisonMap
ItemComparison comparison = comparisonList.get(0);
queryDTO.setQueryDate(DateUtils.str2Date(comparison.getCompareDate()));
queryDTO.setSampleName(comparison.getSampleName());
logger.error("saveCompareDataBatch condition is: {}", JacksonUtils.toJSONString(queryDTO));
logger.info("✦✦✦✦ ItemComparisonServiceImpl ✦✦✦✦ saveCompareDataBatch ✦✦✦✈ [ItemComparison.queryDTO]: {}", JacksonUtils.toJSONString(queryDTO));
// 根据时间查询是否有存在的数据
List<ItemComparison> itemComparisonList = baseMapper.selectDataPage(new Page(1, Integer.MAX_VALUE), queryDTO);
logger.error("saveCompareDataBatch compare data list is : {}", JacksonUtils.toJSONString(itemComparisonList));
logger.info("✦✦✦✦ ItemComparisonServiceImpl ✦✦✦✦ saveCompareDataBatch ✦✦✦✈ [itemComparisonList]: {}", JacksonUtils.toJSONString(itemComparisonList));
// 老数据Map组信息,用来取Id
Map<String, ItemComparison> comparisonMap = new HashMap<>(4);
// 组list,过滤重复数据
if (CollectionUtils.isNotEmpty(itemComparisonList)) {
List<String> sampleCodeList = itemComparisonList.stream()
.map(ItemComparison::getSampleCode)
.filter(Objects::nonNull)
.collect(Collectors.toList());
// ==
// comparisonList.removeIf(item -> sampleCodeList.contains(item.getSampleCode()));
comparisonList = comparisonList.stream().filter(item -> !sampleCodeList.contains(item.getSampleCode())).collect(Collectors.toList());
// 处理老数据,组key用来获取ID
itemComparisonList.forEach(ic -> {
String key = ic.getSampleCode() + ic.getName();
comparisonMap.put(key, ic);
});
// 新数据,存在对应的改ID
comparisonList.forEach(d -> {
String key = d.getSampleCode() + d.getName();
ItemComparison source = comparisonMap.get(key);
if (Objects.nonNull(source)) {
d.setId(source.getId());
d.setCtime(new Date());
d.setUid(account.getUserId());
}
logger.error("saveCompareDataBatch -- handler data is: {}", comparisonList);
if (CollectionUtils.isEmpty(comparisonList)) {
return true;
});
logger.info("✦✦✦✦ ItemComparisonServiceImpl ✦✦✦✦ saveCompareDataBatch ✦✦✦✈ data handler: {}", JacksonUtils.toJSONString(comparisonList));
}
return super.saveBatch(comparisonList);
return super.saveOrUpdateBatch(comparisonList);
}
@Override
......
......@@ -23,6 +23,7 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.*;
import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors;
......@@ -291,6 +292,29 @@ public class StatisticsServiceImpl extends BaseServiceImpl<StatisticsMapper, Sta
map.put("Unit", dto.getUnit());
}
dataList = getMockData();
if (true) {
return dataList.stream().filter(d -> {
boolean f = true;
if (StringUtils.isNotBlank(dto.getType())) {
f = d.getType().equals(dto.getType());
}
if (StringUtils.isNotBlank(dto.getMaterialName())) {
f = f && d.getMaterialName().contains(dto.getMaterialName());
}
if (StringUtils.isNotBlank(dto.getSpecification())) {
f = f && d.getSpecification().contains(dto.getSpecification());
}
if (StringUtils.isNotBlank(dto.getUnit())) {
f = f && d.getUnit().contains(dto.getUnit());
}
return f;
}).collect(Collectors.toList());
}
try {
List<WmsInventoryData> inventoryList = WmsRequest.sendPost(url, map, new TypeReference<WmsRespResult<List<WmsInventoryData>>>() {
});
......@@ -303,6 +327,24 @@ public class StatisticsServiceImpl extends BaseServiceImpl<StatisticsMapper, Sta
return dataList;
}
private List<WmsInventory> getMockData() {
List<WmsInventory> list = new ArrayList<>();
int i = 0;
while (i < 9) {
WmsInventory inventory = new WmsInventory();
inventory.setType(i > 3 ? "年出库" : "年入库");
inventory.setNumber(new BigDecimal(i * 100));
inventory.setMaterialName("物料" + i);
inventory.setUnit("个");
inventory.setSpecification("10 * " + i + 1);
inventory.setPrice(new BigDecimal(i + 20));
inventory.setSumPrice(inventory.getPrice().multiply(inventory.getNumber()));
list.add(inventory);
i++;
}
return list;
}
@Override
public Statistics getItemSamesChainQuantity(RangeStatsQueryDTO queryDTO) {
handleSamesChainTimeRange(queryDTO);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment