Commit 8e6a9177 by lijingjing

添加复制委托功能;

修改统计原铝品味展示问题;
parent 9d81f9ad
...@@ -320,6 +320,12 @@ public class EntrustController extends ServiceController { ...@@ -320,6 +320,12 @@ public class EntrustController extends ServiceController {
return success(entrustService.registerSubmitToMake(ids, getAccount())); return success(entrustService.registerSubmitToMake(ids, getAccount()));
} }
@ApiOperation("复制委托信息")
@PostMapping("/clone_entrust")
public RestResult<Boolean> clone(@RequestParam("ids") Long[] ids) {
return success(entrustService.cloneEntrust(ids, getAccount()));
}
@ApiOperation("样品接收委托分页列表") @ApiOperation("样品接收委托分页列表")
@ApiImplicitParams({ @ApiImplicitParams({
......
...@@ -76,4 +76,6 @@ public interface IEntrustService extends IBaseService<Entrust> { ...@@ -76,4 +76,6 @@ public interface IEntrustService extends IBaseService<Entrust> {
boolean rejectToPrevNode(Long id,String reason, Account account); boolean rejectToPrevNode(Long id,String reason, Account account);
boolean rejectToPrevNode(Entrust entrust,String reason, Account account); boolean rejectToPrevNode(Entrust entrust,String reason, Account account);
boolean cloneEntrust(Long[] ids, Account account);
} }
package com.patzn.cloud.service.lims.hmhj.service.impl; package com.patzn.cloud.service.lims.hmhj.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.Condition; import com.baomidou.mybatisplus.mapper.Condition;
import com.baomidou.mybatisplus.toolkit.CollectionUtils; import com.baomidou.mybatisplus.toolkit.CollectionUtils;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
...@@ -222,41 +223,54 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe ...@@ -222,41 +223,54 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
long days = DateUtils.getDaysBetweenTwoDate(queryDTO.getTimeS(), queryDTO.getTimeE()); long days = DateUtils.getDaysBetweenTwoDate(queryDTO.getTimeS(), queryDTO.getTimeE());
queryDTO.setDays(days); queryDTO.setDays(days);
List<AlTasteStatsVO> list = baseMapper.selectAlTasteStats(queryDTO); List<AlTasteStatsVO> list = baseMapper.selectAlTasteStats(queryDTO);
List<AlTasteStatsVO> resultList = new ArrayList<>();
if (CollectionUtils.isEmpty(list)) { if (CollectionUtils.isEmpty(list)) {
return resultList; return list;
} }
List<AlTasteStatsVO> resultList = new ArrayList<>();
Map<String, List<AlTasteStatsVO>> dataMap = new HashMap<>(); Map<String, List<AlTasteStatsVO>> dataMap = new HashMap<>();
for (int i = 0; i < list.size(); i++) { for (int i = 0; i < list.size(); i++) {
AlTasteStatsVO vo = list.get(i); AlTasteStatsVO curr = list.get(i);
String key = vo.getBranch() + vo.getPlant(); // 以【分厂+厂房】作为获取上一条记录的KEY
if (dataMap.isEmpty()) { String key = curr.getBranch() + curr.getPlant();
List<AlTasteStatsVO> newList = new ArrayList<>(); // 是否存在同KEY数据
newList.add(vo); if (dataMap.containsKey(key)) {
dataMap.put(key, newList); List<AlTasteStatsVO> voList = dataMap.get(key);
voList.add(curr);
// 若当前的条数为最后一条,那么处理统计数据
if (i == list.size() - 1) { if (i == list.size() - 1) {
resultList.add(vo); // 将列表数据加入集合中
resultList.add(getTotalData(list)); resultList.addAll(voList);
// 将统计数据加入集合中
resultList.add(getTotalData(voList));
} }
continue;
} }
if (!dataMap.containsKey(key)) { // 若不包含当前数据,取出前条数据进行统计后加入集合中,后将当前数据加入map
AlTasteStatsVO prevVO = list.get(i - 1); else {
List<AlTasteStatsVO> prevList = dataMap.get(prevVO.getBranch() + prevVO.getPlant()); // 是否需要取出数据处理
resultList.addAll(prevList); if (i > 0) {
resultList.add(getTotalData(prevList)); AlTasteStatsVO prev = list.get(i - 1);
} else { List<AlTasteStatsVO> voList = dataMap.get(prev.getBranch() + prev.getPlant());
List<AlTasteStatsVO> lists = dataMap.get(key); // 将列表数据加入集合中
lists.add(vo); resultList.addAll(voList);
// 将统计数据加入集合中
resultList.add(getTotalData(voList));
}
// 将当前数据加入mapData中
List<AlTasteStatsVO> voList = new ArrayList<>();
if (i == list.size() - 1) { if (i == list.size() - 1) {
resultList.addAll(lists); resultList.add(curr);
resultList.add(getTotalData(lists)); voList.add(curr);
resultList.add(getTotalData(voList));
} else {
voList.add(curr);
dataMap.put(key, voList);
} }
} }
} }
// 汇总所有 // 汇总所有查询出的列表数据
AlTasteStatsVO alTasteStatsVO = getTotalData(list); AlTasteStatsVO alTasteStatsVO = getTotalData(list);
alTasteStatsVO.setBranch(null); alTasteStatsVO.setBranch(null);
resultList.add(alTasteStatsVO); resultList.add(alTasteStatsVO);
...@@ -316,15 +330,15 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe ...@@ -316,15 +330,15 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
} else if (nextFlowStatus == EntrustFlowEnum.RECEIVE) { } else if (nextFlowStatus == EntrustFlowEnum.RECEIVE) {
sampleStatus = EntrustSampleStatusEnum.RECEIVE; sampleStatus = EntrustSampleStatusEnum.RECEIVE;
itemStatus = EntrustSampleItemStatusEnum.DRAFT; itemStatus = EntrustSampleItemStatusEnum.DRAFT;
entrustSamplePrepareService.addOrUpdateToSetStatus(sampleIds,EntrustSamplePrepareStatusEnum.RECEIVE); entrustSamplePrepareService.addOrUpdateToSetStatus(sampleIds, EntrustSamplePrepareStatusEnum.RECEIVE);
} else if (nextFlowStatus == EntrustFlowEnum.ALLOT) { } else if (nextFlowStatus == EntrustFlowEnum.ALLOT) {
sampleStatus = EntrustSampleStatusEnum.TEST; sampleStatus = EntrustSampleStatusEnum.TEST;
itemStatus = EntrustSampleItemStatusEnum.ALLOT; itemStatus = EntrustSampleItemStatusEnum.ALLOT;
entrustSamplePrepareService.addOrUpdateToSetStatus(sampleIds,EntrustSamplePrepareStatusEnum.RECEIVE_OK); entrustSamplePrepareService.addOrUpdateToSetStatus(sampleIds, EntrustSamplePrepareStatusEnum.RECEIVE_OK);
} else if (nextFlowStatus == EntrustFlowEnum.TEST) { } else if (nextFlowStatus == EntrustFlowEnum.TEST) {
sampleStatus = EntrustSampleStatusEnum.TEST; sampleStatus = EntrustSampleStatusEnum.TEST;
itemStatus = EntrustSampleItemStatusEnum.TEST; itemStatus = EntrustSampleItemStatusEnum.TEST;
entrustSamplePrepareService.addOrUpdateToSetStatus(sampleIds,EntrustSamplePrepareStatusEnum.TEST); entrustSamplePrepareService.addOrUpdateToSetStatus(sampleIds, EntrustSamplePrepareStatusEnum.TEST);
} else if (nextFlowStatus == EntrustFlowEnum.REPORT_MAKE) { } else if (nextFlowStatus == EntrustFlowEnum.REPORT_MAKE) {
sampleStatus = EntrustSampleStatusEnum.REPORT_MAKE; sampleStatus = EntrustSampleStatusEnum.REPORT_MAKE;
itemStatus = EntrustSampleItemStatusEnum.END; itemStatus = EntrustSampleItemStatusEnum.END;
...@@ -432,15 +446,15 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe ...@@ -432,15 +446,15 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
@Override @Override
public boolean addStandardSampleDTO(EntrustSampleDTO dto, Account account) { public boolean addStandardSampleDTO(EntrustSampleDTO dto, Account account) {
if (null == dto){ if (null == dto) {
return false; return false;
} }
// 添加后排序,不论是否成功添加标样 // 添加后排序,不论是否成功添加标样
List<EntrustSample> sampleList = list(Condition.create().eq("entrust_id",dto.getEntrustId()) List<EntrustSample> sampleList = list(Condition.create().eq("entrust_id", dto.getEntrustId())
.orderBy("order_by",true).orderBy("ctime",false)); .orderBy("order_by", true).orderBy("ctime", false));
// 若为一个样品,则不进行排序处理 // 若为一个样品,则不进行排序处理
if(CollectionUtils.isNotEmpty(sampleList) && sampleList.size() > 1){ if (CollectionUtils.isNotEmpty(sampleList) && sampleList.size() > 1) {
for(int i=0;i< sampleList.size();i++){ for (int i = 0; i < sampleList.size(); i++) {
sampleList.get(i).setOrderBy(i); sampleList.get(i).setOrderBy(i);
} }
updateBatchById(sampleList); updateBatchById(sampleList);
...@@ -449,19 +463,19 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe ...@@ -449,19 +463,19 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
EntrustSample sample = dto.convert(EntrustSample.class); EntrustSample sample = dto.convert(EntrustSample.class);
//标样 //标样
sample.setType(1); sample.setType(1);
if (save(sample)){ if (save(sample)) {
List<EntrustSampleItem> itemList = dto.getItemList(); List<EntrustSampleItem> itemList = dto.getItemList();
if (CollectionUtils.isNotEmpty(itemList)){ if (CollectionUtils.isNotEmpty(itemList)) {
for (EntrustSampleItem item : itemList) { for (EntrustSampleItem item : itemList) {
item.setEntrustSampleId(sample.getId()); item.setEntrustSampleId(sample.getId());
item.setStatus(EntrustSampleItemStatusEnum.TEST); item.setStatus(EntrustSampleItemStatusEnum.TEST);
item.setProgress(EntrustSampleItemStatusEnum.TEST); item.setProgress(EntrustSampleItemStatusEnum.TEST);
item.setTester(account.getUserName()); item.setTester(account.getUserName());
item.setTesterId(account.getUserId()); item.setTesterId(account.getUserId());
} }
entrustSampleItemService.saveBatch(itemList); entrustSampleItemService.saveBatch(itemList);
} }
} }
return true; return true;
} }
......
...@@ -149,7 +149,6 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust> ...@@ -149,7 +149,6 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
String replaceStr = "XX", inspectNo = "", secondCode = "", thirdCode = ""; String replaceStr = "XX", inspectNo = "", secondCode = "", thirdCode = "";
if ("已有编码物资".equals(parentCategory)) { if ("已有编码物资".equals(parentCategory)) {
sampleCode = sample.getCode(); sampleCode = sample.getCode();
RestAssert.fail(StringUtils.isBlank(sampleCode), "样品编码不能为空");
} else { } else {
sampleCode = codeRuleService.getKey((Integer) codeType.getValue(), codeType.getName(), sample); sampleCode = codeRuleService.getKey((Integer) codeType.getValue(), codeType.getName(), sample);
// 若为外委检测和三级编码,则查询质检编号 // 若为外委检测和三级编码,则查询质检编号
...@@ -432,7 +431,7 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust> ...@@ -432,7 +431,7 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
if (null != entrust) { if (null != entrust) {
EntrustDTO vo = entrust.convert(EntrustDTO.class); EntrustDTO vo = entrust.convert(EntrustDTO.class);
// 只查询正常样品,不查询标样 // 只查询正常样品,不查询标样
List<EntrustSampleDTO> sampleList = listSampleDTOByType(id,0); List<EntrustSampleDTO> sampleList = listSampleDTOByType(id, 0);
if (CollectionUtils.isNotEmpty(sampleList)) { if (CollectionUtils.isNotEmpty(sampleList)) {
List<Long> sampleIdList = sampleList.stream().map(s -> { List<Long> sampleIdList = sampleList.stream().map(s -> {
return s.getId(); return s.getId();
...@@ -978,6 +977,69 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust> ...@@ -978,6 +977,69 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
return true; return true;
} }
@Override
public boolean cloneEntrust(Long[] ids, Account account) {
RestAssert.fail(null == ids || ids.length == 0, "请选择要复制的委托记录");
List<Entrust> entrustList = getBatchIds(Arrays.asList(ids));
RestAssert.fail(CollectionUtils.isEmpty(entrustList), "请选择要复制的委托记录");
// 循环遍历设置委托及其样品信息
List<EntrustSample> entrustSampleList = new ArrayList<>();
List<EntrustSampleItem> entrustSampleItemList = new ArrayList<>();
for (Entrust entrust : entrustList) {
// ==
List<EntrustSample> sampleList = entrustSampleService.list(Condition.create().eq("entrust_id", entrust.getId()).eq("deleted", 0));
if (CollectionUtils.isEmpty(sampleList)) {
continue;
}
entrust.setId(null);
entrust.setCode(null).setStatus(EntrustStatusEnum.DRAFT).setProgress(EntrustStatusEnum.DRAFT);
entrust.setUid(account.getUserId()).setCtime(new Date()).setLid(null).setLtime(null);
// 配置初始状态
String flowStatus = EntrustFlowEnum.DRAFT.getName();
if (StringUtils.isNotBlank(entrust.getStatusPath())) {
flowStatus = entrust.getStatusPath().split("->")[0];
}
entrust.setFlowStatus(flowStatus);
// 保存委托信息
saveEntrust(entrust);
int sampleIndex = 0;
for (EntrustSample sample : sampleList) {
List<EntrustSampleItem> itemList = entrustSampleItemService.list(Condition.create().eq("entrust_sample_id", sample.getId()).eq("deleted", 0));
if (CollectionUtils.isEmpty(itemList)) {
continue;
}
//生成样品编号,可能存在为空的情况
initSampleCode(sample);
sample.setId(IdWorker.getId());
sample.setEntrustId(entrust.getId()).setOrderBy(sampleIndex);
sample.setStatus(EntrustSampleStatusEnum.DRAFT).setProgress(EntrustSampleStatusEnum.DRAFT);
sample.setUid(account.getUserId()).setCtime(new Date()).setLid(null).setLtime(null);
for (EntrustSampleItem item : itemList) {
item.setId(null);
item.setEntrustSampleId(sample.getId());
item.setStatus(EntrustSampleItemStatusEnum.DRAFT);
item.setProgress(EntrustSampleItemStatusEnum.DRAFT);
item.setUid(account.getUserId()).setCtime(new Date()).setLid(null).setLtime(null);
}
entrustSampleItemList.addAll(itemList);
sampleIndex += 1;
}
entrustSampleList.addAll(sampleList);
}
if (entrustSampleList.size() > 0) {
entrustSampleService.saveBatch(entrustSampleList);
}
if (entrustSampleItemList.size() > 0) {
entrustSampleItemService.saveBatch(entrustSampleItemList);
}
// 操作记录
entrustRecordService.record(ids, EntrustStatusEnum.DRAFT.getDisplay(), EntrustStatusEnum.DRAFT.getDisplay(), 0, account, "复制初始化委托");
return true;
}
private List<EntrustSampleDTO> listSampleDTOByType(Long entrustId, int type) { private List<EntrustSampleDTO> listSampleDTOByType(Long entrustId, int type) {
List<EntrustSampleDTO> sampleDTOList = baseMapper.listByContractId(entrustId); List<EntrustSampleDTO> sampleDTOList = baseMapper.listByContractId(entrustId);
return sampleDTOList.stream().filter(t -> (null == t.getType() ? 0 : t.getType().intValue()) == type).collect(Collectors.toList()); return sampleDTOList.stream().filter(t -> (null == t.getType() ? 0 : t.getType().intValue()) == type).collect(Collectors.toList());
......
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