Commit 77a00448 authored by 竹天卫's avatar 竹天卫

委托 平行样可以派发给三个以上的人检测

parent df036b76
......@@ -33,6 +33,12 @@ public class SampleCheckVo {
@ApiModelProperty("检测组名称")
private String teamGroupName;
@ApiModelProperty("主样校核计算结果json串")
private String mainMap;
@ApiModelProperty("次样校核计算结果json串")
private String secondaryMap;
@ApiModelProperty("最终校核计算结果json串")
private String countResult;
......
......@@ -59,7 +59,7 @@ public class CommonServiceImpl {
Integer counts = Integer.parseInt(cementCodes[1])+1;
String tailNo = counts<10?("000"+counts):
counts<100?("00"+counts):
counts<1000?("000"+counts):
counts<1000?("0"+counts):
String.valueOf(counts);
String resultCode = cementCodes[0]+"-"+tailNo;
return resultCode;
......@@ -95,7 +95,7 @@ public class CommonServiceImpl {
public String getCementCode(Integer counts){
String tailNo = counts<10?("000"+counts):
counts<100?("00"+counts):
counts<1000?("000"+counts):
counts<1000?("0"+counts):
String.valueOf(counts);
return tailNo;
}
......
......@@ -773,20 +773,23 @@ public class EntrustServiceImpl extends ServiceImpl<EntrustMapper, Entrust> impl
}
if (query.getSampleList() != null && query.getSampleList().size() > 0) {
List<Sample> sampleList = new ArrayList<>();
QueryWrapper<Sample> sampleQueryWrapper = new QueryWrapper<>();
String maxCementCode = ""; //最大本所编号对应的平行样编号
//当前平行样编号最大值
Integer integerMaxCode = commonService.getIntegerCode(getMaxCementCode().getData());
for (SampleQuery sampleQuery : query.getSampleList()) {
if (StringUtils.isEmpty(sampleQuery.getCementCode())) {
return BaseResponse.errorMsg("本所编号不能为空");
}
//前端传入的本所编号
Integer cementCodeInteger = commonService.getIntegerCode(sampleQuery.getCementCode());
if (cementCodeInteger <= integerMaxCode) {
return BaseResponse.errorMsg("本所编号必须大于最大值");
}
integerMaxCode = cementCodeInteger > integerMaxCode ? cementCodeInteger : integerMaxCode;
String yearStr = commonService.getIntegerYear(maxCementCode);
maxCementCode = yearStr + "-" + commonService.getCementCode(integerMaxCode);
if(sampleQuery.getIsParallel() == null){
return BaseResponse.errorMsg("请选择是否需要平行样");
}
if (sampleQuery.getIsParallel() == 0) { //非平行样
maxCementCode = sampleQuery.getCementCode();
Sample sample = new Sample();
BeanUtils.copyProperties(sampleQuery, sample);
sample.setId(null)
......@@ -795,23 +798,32 @@ public class EntrustServiceImpl extends ServiceImpl<EntrustMapper, Entrust> impl
.setCreateTime(LocalDateTime.now())
.setIsHandle(0)//样品处理未完成状态
.setIsDistribution(0)//任务派发未完成状态
.setIsCheck(0);//样品校核未完成状态
if (sampleQuery.getIsParallel() == 1) { //平行样
//生成平行样编号 (如果是平行样,会生成两条记录,本所编号是相同的,
// 第一个平行样编号和本所编号相同,第二个平行样的平行样编号会在本所编号上+1)
sample.setParallelCode(sampleQuery.getCementCode());
.setIsCheck(0)//样品校核未完成状态
.setParallelCode(sampleQuery.getCementCode());
sampleList.add(sample);
Sample sample2 = new Sample();
BeanUtils.copyProperties(sample, sample2);
sample2.setParallelCode(commonService.createParallelCode(sampleQuery.getCementCode()));
sampleList.add(sample2);
maxCementCode = sample2.getParallelCode();
} else if (sampleQuery.getIsParallel() == 0) { //非平行样
//如果不是平行样,本所编号和平行样编号是相同的。且就一条记录
sample.setParallelCode(sampleQuery.getCementCode());
}else{ //是平行样
if (sampleQuery.getIsParallel() < 2 ){
return BaseResponse.errorMsg("平行样数量至少2条");
}
if (sampleQuery.getIsParallel() > 4 ){
return BaseResponse.errorMsg("平行样数量最多4条");
}
for(int i=0; i<sampleQuery.getIsParallel(); i++){
integerMaxCode = cementCodeInteger > integerMaxCode ? cementCodeInteger : integerMaxCode+1;
String yearStr = commonService.getIntegerYear(sampleQuery.getCementCode());
maxCementCode = yearStr + "-" + commonService.getCementCode(integerMaxCode);
Sample sample = new Sample();
BeanUtils.copyProperties(sampleQuery, sample);
sample.setId(null)
.setSampleId(sampleQuery.getId())
.setStatus(0) //样品状态为未领用状态
.setCreateTime(LocalDateTime.now())
.setIsHandle(0)//样品处理未完成状态
.setIsDistribution(0)//任务派发未完成状态
.setIsCheck(0)//样品校核未完成状态
.setParallelCode(maxCementCode);
sampleList.add(sample);
} else {
return BaseResponse.errorMsg("请选择是否需要平行样");
}
}
}
sampleService.saveBatch(sampleList);
......@@ -1380,23 +1392,6 @@ public class EntrustServiceImpl extends ServiceImpl<EntrustMapper, Entrust> impl
BeanUtils.copyProperties(sample, sampleVo);
List<SampleDistributionTeamVo> sampleDistributionTeamVoList =
distributionMapper.getDistributionTeamList(sample.getId(), loginUser.getId());
//判断是否为平行样
/* List<SampleDistributionTeamVo> sampleDistributionTeamVoList = null;
if (sample.getIsParallel() == 0) {
//检测人员只能看到自己则的检测内容
sampleDistributionTeamVoList =
distributionMapper.getDistributionTeamList(sample.getId(), null, loginUser.getId());
} else if (sample.getIsParallel() == 1) {
List<Sample> sampleList1 = sampleMapper.getByCementCode(entrust.getId(), sample.getCementCode());
//检测人员只能看到自己则的检测内容
if (sampleList1.size() == 2) {
sampleDistributionTeamVoList =
distributionMapper.getDistributionTeamList(sampleList1.get(0).getId(), sampleList1.get(1).getId(), loginUser.getId());
} else {
sampleDistributionTeamVoList =
distributionMapper.getDistributionTeamList(sample.getId(), null, loginUser.getId());
}
}*/
if (sampleDistributionTeamVoList != null && sampleDistributionTeamVoList.size() > 0) {
sampleVo.setSampleDistributionTeamVoList(sampleDistributionTeamVoList);
for (SampleDistributionTeamVo sdVo : sampleDistributionTeamVoList) {
......@@ -1757,6 +1752,8 @@ public class EntrustServiceImpl extends ServiceImpl<EntrustMapper, Entrust> impl
sampleCheckVo.setCementCode(cementCode);
sampleCheckVo.setTeamGroupId(sampleCheck.getTeamGroupId());
sampleCheckVo.setTeamGroupName(sampleCheck.getTeamGroupName());
sampleCheckVo.setMainMap(sampleCheck.getMainMap());
sampleCheckVo.setSecondaryMap(sampleCheck.getSecondaryMap());
sampleCheckVo.setCountResult(sampleCheck.getCountResult());
sampleCheckVo.setIsParallel(sampleOne.getIsParallel());
QueryWrapper<SampleCheckTeam> sampleCheckTeamQW = new QueryWrapper<>();
......
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