Commit 41ccb500 by ghxdhr

Merge branch 'master' of git.patzn.com:wangweidong/patzn-cloud-service-hmhj

 Conflicts:
	src/main/java/com/patzn/cloud/service/lims/hmhj/service/IEntrustService.java
	src/main/java/com/patzn/cloud/service/lims/hmhj/service/impl/EntrustServiceImpl.java
parents ddf21198 8e6a9177
...@@ -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({
...@@ -416,6 +422,8 @@ public class EntrustController extends ServiceController { ...@@ -416,6 +422,8 @@ public class EntrustController extends ServiceController {
@PostMapping("/page_entrust_test_data") @PostMapping("/page_entrust_test_data")
public RestResult<Page<EntrustVO>> getPageTaskTestData(EntrustVO entrust) { public RestResult<Page<EntrustVO>> getPageTaskTestData(EntrustVO entrust) {
entrust.setItemStatus(EntrustSampleItemStatusEnum.TEST); entrust.setItemStatus(EntrustSampleItemStatusEnum.TEST);
// 过滤当前人为检测人的委托数据
entrust.setTesterId(getAccount().getUserId());
// 获取当前用户分组 // 获取当前用户分组
entrust.setGroupNameList(userInfoService.getCurGroupNameList()); entrust.setGroupNameList(userInfoService.getCurGroupNameList());
return success(entrustService.pageEntrustByItemData(getPage(), entrust)); return success(entrustService.pageEntrustByItemData(getPage(), entrust));
......
...@@ -3,13 +3,12 @@ package com.patzn.cloud.service.lims.hmhj.controller; ...@@ -3,13 +3,12 @@ package com.patzn.cloud.service.lims.hmhj.controller;
import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper; import com.baomidou.mybatisplus.mapper.Wrapper;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.patzn.cloud.service.hmhj.dto.QueryDTO; import com.patzn.cloud.service.hmhj.dto.*;
import com.patzn.cloud.service.hmhj.dto.ReportDTO;
import com.patzn.cloud.service.hmhj.dto.StatsQueryDTO;
import com.patzn.cloud.service.hmhj.entity.EntrustSample; import com.patzn.cloud.service.hmhj.entity.EntrustSample;
import com.patzn.cloud.service.hmhj.enums.EntrustSampleItemStatusEnum; import com.patzn.cloud.service.hmhj.enums.EntrustSampleItemStatusEnum;
import com.patzn.cloud.service.hmhj.enums.EntrustSamplePrepareStatusEnum; import com.patzn.cloud.service.hmhj.enums.EntrustSamplePrepareStatusEnum;
import com.patzn.cloud.service.hmhj.enums.EntrustSampleStatusEnum; import com.patzn.cloud.service.hmhj.enums.EntrustSampleStatusEnum;
import com.patzn.cloud.service.hmhj.enums.EntrustStatusEnum;
import com.patzn.cloud.service.hmhj.vo.AlTasteStatsVO; import com.patzn.cloud.service.hmhj.vo.AlTasteStatsVO;
import com.patzn.cloud.service.hmhj.vo.ElectrolyteRatioStatsVO; import com.patzn.cloud.service.hmhj.vo.ElectrolyteRatioStatsVO;
import com.patzn.cloud.service.hmhj.vo.EntrustSampleVO; import com.patzn.cloud.service.hmhj.vo.EntrustSampleVO;
...@@ -139,6 +138,18 @@ public class EntrustSampleController extends ServiceController { ...@@ -139,6 +138,18 @@ public class EntrustSampleController extends ServiceController {
@ApiOperation(value = "增加标样", notes = "增加标样")
@PostMapping("/add_standard_sample")
public RestResult<Boolean> addStandardSample(@RequestBody EntrustSampleDTO dto) {
dto.setStatus(EntrustSampleStatusEnum.TEST);
dto.setProgress(EntrustSampleStatusEnum.TEST);
return success(entrustSampleService.addStandardSampleDTO(dto, getAccount()));
}
@ApiOperation("获取制备信息") @ApiOperation("获取制备信息")
@PostMapping("/obtain_make_info") @PostMapping("/obtain_make_info")
public RestResult<List<EntrustSampleVO>> obtainMakeInfo(@RequestParam("ids") Long [] ids) { public RestResult<List<EntrustSampleVO>> obtainMakeInfo(@RequestParam("ids") Long [] ids) {
......
...@@ -167,6 +167,7 @@ public class EntrustSampleItemController extends ServiceController { ...@@ -167,6 +167,7 @@ public class EntrustSampleItemController extends ServiceController {
@PostMapping("/page_input_by_sample_right") @PostMapping("/page_input_by_sample_right")
public RestResult<Page<EntrustSampleItemVO>> getPageInputBySampleRight(EntrustSampleItemVO entrustSampleItem) { public RestResult<Page<EntrustSampleItemVO>> getPageInputBySampleRight(EntrustSampleItemVO entrustSampleItem) {
entrustSampleItem.setStatus(EntrustSampleItemStatusEnum.TEST); entrustSampleItem.setStatus(EntrustSampleItemStatusEnum.TEST);
entrustSampleItem.setTesterId(getAccount().getUserId());
return success(entrustSampleItemService.pageAllotBySampleRight(getPage(), entrustSampleItem)); return success(entrustSampleItemService.pageAllotBySampleRight(getPage(), entrustSampleItem));
} }
...@@ -306,6 +307,7 @@ public class EntrustSampleItemController extends ServiceController { ...@@ -306,6 +307,7 @@ public class EntrustSampleItemController extends ServiceController {
@PostMapping("/page_test_by_item_left") @PostMapping("/page_test_by_item_left")
public RestResult<Page<EntrustSampleItemVO>> getPageTestByItemLeft(EntrustSampleItemVO entrustSampleItem) { public RestResult<Page<EntrustSampleItemVO>> getPageTestByItemLeft(EntrustSampleItemVO entrustSampleItem) {
entrustSampleItem.setStatus(EntrustSampleItemStatusEnum.TEST); entrustSampleItem.setStatus(EntrustSampleItemStatusEnum.TEST);
entrustSampleItem.setTesterId(getAccount().getUserId());
return success(entrustSampleItemService.pageByItemLeft(getPage(), entrustSampleItem)); return success(entrustSampleItemService.pageByItemLeft(getPage(), entrustSampleItem));
} }
...@@ -339,6 +341,8 @@ public class EntrustSampleItemController extends ServiceController { ...@@ -339,6 +341,8 @@ public class EntrustSampleItemController extends ServiceController {
@PostMapping("/page_test_by_item_right") @PostMapping("/page_test_by_item_right")
public RestResult<Page<EntrustSampleItemVO>> getPageTestByItemRight(EntrustSampleItemVO entrustSampleItem) { public RestResult<Page<EntrustSampleItemVO>> getPageTestByItemRight(EntrustSampleItemVO entrustSampleItem) {
entrustSampleItem.setStatus(EntrustSampleItemStatusEnum.TEST); entrustSampleItem.setStatus(EntrustSampleItemStatusEnum.TEST);
// 限制只有当前人为检测人方可见
entrustSampleItem.setTesterId(getAccount().getUserId());
return success(entrustSampleItemService.pageByItemRight(getPage(), entrustSampleItem)); return success(entrustSampleItemService.pageByItemRight(getPage(), entrustSampleItem));
} }
......
...@@ -2,6 +2,7 @@ package com.patzn.cloud.service.lims.hmhj.controller; ...@@ -2,6 +2,7 @@ package com.patzn.cloud.service.lims.hmhj.controller;
import com.patzn.cloud.service.hmhj.entity.OriginalRecord; import com.patzn.cloud.service.hmhj.entity.OriginalRecord;
import com.patzn.cloud.service.hmhj.vo.OriginalRecordVO; import com.patzn.cloud.service.hmhj.vo.OriginalRecordVO;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
...@@ -56,6 +57,10 @@ public class OriginalRecordController extends ServiceController { ...@@ -56,6 +57,10 @@ public class OriginalRecordController extends ServiceController {
}) })
@PostMapping("/pageVO") @PostMapping("/pageVO")
public RestResult<Page<OriginalRecordVO>> getPageVO(OriginalRecordVO originalRecordVO) { public RestResult<Page<OriginalRecordVO>> getPageVO(OriginalRecordVO originalRecordVO) {
// 数据检测只能当前人看
if(StringUtils.isNotBlank(originalRecordVO.getSource()) && "test".equalsIgnoreCase(originalRecordVO.getSource())) {
originalRecordVO.setTesterId(getAccount().getUserId());
}
return success(originalRecordService.pageVO(getPage(), originalRecordVO)); return success(originalRecordService.pageVO(getPage(), originalRecordVO));
} }
......
package com.patzn.cloud.service.lims.hmhj.controller;
import com.baomidou.mybatisplus.plugins.Page;
import com.patzn.cloud.commons.api.RestConstants;
import com.patzn.cloud.commons.api.RestResult;
import com.patzn.cloud.commons.controller.ServiceController;
import com.patzn.cloud.service.lims.collection.entity.LmsOriginalRecordInfo;
import com.patzn.cloud.service.lims.hmhj.service.ILmsOriginalRecordInfoService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 原始记录解析后的数据存储表 前端控制器
*
* @author meazty
* @since 2021-07-05
*/
@Api(tags = "原始记录解析后的数据存储表")
@RestController
@RequestMapping("/v1/original_record_info")
public class OriginalRecordInfoController extends ServiceController {
@Autowired
private ILmsOriginalRecordInfoService lmsOriginalRecordInfoService;
@ApiOperation("分页列表")
@ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class),
@ApiImplicitParam(name = RestConstants.PAGE_ROWS, value = "每页条数", required = true, paramType = "query", dataTypeClass = Integer.class),
})
@PostMapping("/page")
public RestResult<Page<LmsOriginalRecordInfo>> getPage(LmsOriginalRecordInfo lmsOriginalRecordInfo) {
return success(lmsOriginalRecordInfoService.page(getPage(), lmsOriginalRecordInfo));
}
@ApiOperation("查询 id 信息")
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "主键", required = true, paramType = "path", dataTypeClass = Long.class),
})
@GetMapping("/{id}")
public RestResult<LmsOriginalRecordInfo> get(@PathVariable("id") Long id) {
return success(lmsOriginalRecordInfoService.getById(id));
}
@ApiOperation("根据 id 修改信息")
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "主键", required = true, paramType = "path", dataTypeClass = Long.class),
})
@PutMapping("/{id}")
public RestResult<Boolean> edit(@PathVariable("id") Long id, LmsOriginalRecordInfo lmsOriginalRecordInfo) {
lmsOriginalRecordInfo.setId(id);
return success(lmsOriginalRecordInfoService.updateById(lmsOriginalRecordInfo));
}
@ApiOperation("添加")
@PostMapping("/")
public RestResult<Boolean> add(LmsOriginalRecordInfo lmsOriginalRecordInfo) {
return success(lmsOriginalRecordInfoService.save(lmsOriginalRecordInfo));
}
@ApiOperation("根据 ids 删除")
@ApiImplicitParams({
@ApiImplicitParam(name = "ids", value = "主键列表", required = true, paramType = "query", allowMultiple = true, dataTypeClass = Long.class),
})
@DeleteMapping("/")
public RestResult<Boolean> delete(@RequestParam("ids") List<Long> ids) {
return success(lmsOriginalRecordInfoService.removeByIds(ids));
}
@ApiOperation("解析采集原始数据信息")
@PostMapping("/analysisOriginalData")
public RestResult<Boolean> analysisOriginalData(@RequestParam("templateId") Long templateId, @RequestParam("itemIds") Long[] itemIds) {
return success(lmsOriginalRecordInfoService.analysisOriginalData(templateId, itemIds, getAccount()));
}
}
package com.patzn.cloud.service.lims.hmhj.mapper; package com.patzn.cloud.service.lims.hmhj.mapper;
import com.patzn.cloud.commons.mapper.BatchMapper; import com.patzn.cloud.commons.mapper.BatchMapper;
import com.patzn.cloud.service.hmhj.vo.OriginalRecordInfoVO;
import com.patzn.cloud.service.lims.collection.entity.LmsOriginalRecordInfo; import com.patzn.cloud.service.lims.collection.entity.LmsOriginalRecordInfo;
import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -16,10 +18,5 @@ import java.util.Map; ...@@ -16,10 +18,5 @@ import java.util.Map;
*/ */
public interface LmsOriginalRecordInfoMapper extends BatchMapper<LmsOriginalRecordInfo> { public interface LmsOriginalRecordInfoMapper extends BatchMapper<LmsOriginalRecordInfo> {
/** List<OriginalRecordInfoVO> selectByItem(@Param("itemIds") Long[] itemIds);
* @return
*/
List<LmsOriginalRecordInfo> selectUnGeneratedEntrustData();
List<LmsOriginalRecordInfo> selectUnGeneratedSampleData();
} }
...@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.mapper.Wrapper; ...@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.plugins.Page;
import com.patzn.cloud.commons.controller.Account; import com.patzn.cloud.commons.controller.Account;
import com.patzn.cloud.commons.service.IBaseService; import com.patzn.cloud.commons.service.IBaseService;
import com.patzn.cloud.service.hmhj.dto.EntrustSampleDTO;
import com.patzn.cloud.service.hmhj.dto.QueryDTO; import com.patzn.cloud.service.hmhj.dto.QueryDTO;
import com.patzn.cloud.service.hmhj.dto.ReportDTO; import com.patzn.cloud.service.hmhj.dto.ReportDTO;
import com.patzn.cloud.service.hmhj.dto.StatsQueryDTO; import com.patzn.cloud.service.hmhj.dto.StatsQueryDTO;
...@@ -71,4 +72,6 @@ public interface IEntrustSampleService extends IBaseService<EntrustSample> { ...@@ -71,4 +72,6 @@ public interface IEntrustSampleService extends IBaseService<EntrustSample> {
boolean updateSampleNextFlowInfo(Entrust entrust, EntrustFlowEnum nextFlowStatus, Account account); boolean updateSampleNextFlowInfo(Entrust entrust, EntrustFlowEnum nextFlowStatus, Account account);
boolean updateSamplePrevFlowInfo(Entrust entrust, EntrustFlowEnum prevFlowStatus, Account account); boolean updateSamplePrevFlowInfo(Entrust entrust, EntrustFlowEnum prevFlowStatus, Account account);
boolean addStandardSampleDTO(EntrustSampleDTO dto, Account account);
} }
...@@ -78,5 +78,7 @@ public interface IEntrustService extends IBaseService<Entrust> { ...@@ -78,5 +78,7 @@ public interface IEntrustService extends IBaseService<Entrust> {
boolean rejectToPrevNode(Entrust entrust,String reason, Account account); boolean rejectToPrevNode(Entrust entrust,String reason, Account account);
boolean cloneEntrust(Long[] ids, Account account);
void exportEntrust(List<Long> ids, HttpServletResponse response); void exportEntrust(List<Long> ids, HttpServletResponse response);
} }
package com.patzn.cloud.service.lims.hmhj.service; package com.patzn.cloud.service.lims.hmhj.service;
import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.plugins.Page;
import com.patzn.cloud.commons.controller.Account;
import com.patzn.cloud.commons.service.IBaseService; import com.patzn.cloud.commons.service.IBaseService;
import com.patzn.cloud.service.lims.collection.entity.LmsOriginalRecordInfo; import com.patzn.cloud.service.lims.collection.entity.LmsOriginalRecordInfo;
...@@ -18,5 +19,6 @@ public interface ILmsOriginalRecordInfoService extends IBaseService<LmsOriginalR ...@@ -18,5 +19,6 @@ public interface ILmsOriginalRecordInfoService extends IBaseService<LmsOriginalR
boolean removeByIds(List<Long> ids); boolean removeByIds(List<Long> ids);
boolean generateOriginalRelData(); boolean analysisOriginalData(Long templateId, Long[] itemIds, Account account);
} }
...@@ -5,6 +5,7 @@ import com.patzn.cloud.service.hmhj.entity.ContractSampleItem; ...@@ -5,6 +5,7 @@ import com.patzn.cloud.service.hmhj.entity.ContractSampleItem;
import com.patzn.cloud.service.lims.hmhj.mapper.ContractSampleItemMapper; import com.patzn.cloud.service.lims.hmhj.mapper.ContractSampleItemMapper;
import com.patzn.cloud.service.lims.hmhj.service.IContractSampleItemService; import com.patzn.cloud.service.lims.hmhj.service.IContractSampleItemService;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl; import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper; import com.baomidou.mybatisplus.mapper.Wrapper;
...@@ -23,8 +24,12 @@ public class ContractSampleItemServiceImpl extends BaseServiceImpl<ContractSampl ...@@ -23,8 +24,12 @@ public class ContractSampleItemServiceImpl extends BaseServiceImpl<ContractSampl
@Override @Override
public Page<ContractSampleItem> page(Page<ContractSampleItem> page, ContractSampleItem contractSampleItem) { public Page<ContractSampleItem> page(Page<ContractSampleItem> page, ContractSampleItem contractSampleItem) {
String name = contractSampleItem.getName();
contractSampleItem.setName(null);
Wrapper wrapper = new EntityWrapper<>(contractSampleItem); Wrapper wrapper = new EntityWrapper<>(contractSampleItem);
if(StringUtils.isNotBlank(name)){
wrapper.like("name",name);
}
return this.page(page, wrapper); return this.page(page, wrapper);
} }
......
...@@ -59,7 +59,17 @@ public class ContractSampleServiceImpl extends BaseServiceImpl<ContractSampleMap ...@@ -59,7 +59,17 @@ public class ContractSampleServiceImpl extends BaseServiceImpl<ContractSampleMap
@Override @Override
public Page<ContractSample> page(Page<ContractSample> page, ContractSample contractSample) { public Page<ContractSample> page(Page<ContractSample> page, ContractSample contractSample) {
String code = contractSample.getCode();
String materialName = contractSample.getMaterialName();
contractSample.setCode(null).setMaterialName(null);
Wrapper wrapper = new EntityWrapper<>(contractSample); Wrapper wrapper = new EntityWrapper<>(contractSample);
if(StringUtils.isNotBlank(code)){
wrapper.like("code",code);
}
if(StringUtils.isNotBlank(materialName)){
wrapper.like("material_name",materialName);
}
wrapper.orderBy("ctime",false); wrapper.orderBy("ctime",false);
return this.page(page, wrapper); return this.page(page, wrapper);
} }
......
...@@ -92,8 +92,12 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI ...@@ -92,8 +92,12 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
@Override @Override
public Page<EntrustSampleItem> page(Page<EntrustSampleItem> page, EntrustSampleItem entrustSampleItem) { public Page<EntrustSampleItem> page(Page<EntrustSampleItem> page, EntrustSampleItem entrustSampleItem) {
String name = entrustSampleItem.getName();
entrustSampleItem.setName(null);
Wrapper wrapper = new EntityWrapper<>(entrustSampleItem); Wrapper wrapper = new EntityWrapper<>(entrustSampleItem);
if(StringUtils.isNotBlank(name)){
wrapper.like("name",name);
}
return this.page(page, wrapper); return this.page(page, wrapper);
} }
......
...@@ -133,7 +133,7 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp ...@@ -133,7 +133,7 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp
saveBatch(savePrepare); saveBatch(savePrepare);
List<EntrustSample> checkMakeList = entrustSampleService.list(Condition.create().eq("entrust_id", entrust.getId()).eq("status", EntrustSampleStatusEnum.DRAFT)); List<EntrustSample> checkMakeList = entrustSampleService.list(Condition.create().eq("entrust_id", entrust.getId()).eq("status", EntrustSampleStatusEnum.DRAFT));
if (CollectionUtils.isEmpty(checkMakeList) && StringUtils.isNotEmpty(entrust.getStatusPath())) { if (CollectionUtils.isEmpty(checkMakeList)) {
// String flowStatus = entrust.getFlowStatus(); // String flowStatus = entrust.getFlowStatus();
// String statusPath = entrust.getStatusPath(); // String statusPath = entrust.getStatusPath();
// // 获取委托的状态 // // 获取委托的状态
...@@ -148,7 +148,17 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp ...@@ -148,7 +148,17 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp
// updateEntrust.setId(entrust.getId()); // updateEntrust.setId(entrust.getId());
// entrustService.updateById(updateEntrust); // entrustService.updateById(updateEntrust);
// 根据流程状态提交 // 根据流程状态提交
entrustService.submitToNextNode(entrust, account); if (StringUtils.isNotEmpty(entrust.getStatusPath())) {
entrustService.submitToNextNode(entrust, account);
} else {
Entrust updateEntrust = new Entrust();
updateEntrust.setStatus(EntrustStatusEnum.TEST);
updateEntrust.setProgress(EntrustStatusEnum.TEST);
updateEntrust.setId(entrust.getId());
entrustService.updateById(updateEntrust);
// String remark = "提交至样品接收", title = "新的样品接收任务!";
// entrustRecordService.record(new Long[]{entrust.getId()}, status.getDisplay(), nextStatus.getDisplay(), 0, account, remark);
}
} }
...@@ -241,7 +251,7 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp ...@@ -241,7 +251,7 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp
} else { } else {
EntrustSamplePrepare prepare = new EntrustSamplePrepare(); EntrustSamplePrepare prepare = new EntrustSamplePrepare();
prepare.setStatus(statusEnum).setStatus(statusEnum); prepare.setStatus(statusEnum).setStatus(statusEnum);
update(prepare,Condition.create().in("entrust_sample_id",sampleIds).eq("deleted", 0)); update(prepare, Condition.create().in("entrust_sample_id", sampleIds).eq("deleted", 0));
} }
return false; return false;
} }
......
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;
...@@ -10,6 +11,7 @@ import com.patzn.cloud.commons.toolkit.FileUtils; ...@@ -10,6 +11,7 @@ import com.patzn.cloud.commons.toolkit.FileUtils;
import com.patzn.cloud.feign.base.client.SysFileTemplateClient; import com.patzn.cloud.feign.base.client.SysFileTemplateClient;
import com.patzn.cloud.oss.starter.OssClient; import com.patzn.cloud.oss.starter.OssClient;
import com.patzn.cloud.service.base.entity.SysFileTemplate; import com.patzn.cloud.service.base.entity.SysFileTemplate;
import com.patzn.cloud.service.hmhj.dto.EntrustSampleDTO;
import com.patzn.cloud.service.hmhj.dto.QueryDTO; import com.patzn.cloud.service.hmhj.dto.QueryDTO;
import com.patzn.cloud.service.hmhj.dto.ReportDTO; import com.patzn.cloud.service.hmhj.dto.ReportDTO;
import com.patzn.cloud.service.hmhj.dto.StatsQueryDTO; import com.patzn.cloud.service.hmhj.dto.StatsQueryDTO;
...@@ -221,41 +223,54 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe ...@@ -221,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);
...@@ -279,7 +294,12 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe ...@@ -279,7 +294,12 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
for (PMakeFeStatsVO vo : list) { for (PMakeFeStatsVO vo : list) {
PMakeFeVO val = new PMakeFeVO(), per = new PMakeFeVO(), ltNum = new PMakeFeVO(), gtNum = new PMakeFeVO(), inNum = new PMakeFeVO(); PMakeFeVO val = new PMakeFeVO();
PMakeFeVO per = new PMakeFeVO();
PMakeFeVO ltNum = new PMakeFeVO();
PMakeFeVO gtNum = new PMakeFeVO();
PMakeFeVO inNum = new PMakeFeVO();
val.setCVal(vo.getCVal() + "").setMnVal(vo.getMnVal() + "").setSiVal(vo.getSiVal() + "").setPVal(vo.getPVal() + "").setSVal(vo.getSVal() + ""); val.setCVal(vo.getCVal() + "").setMnVal(vo.getMnVal() + "").setSiVal(vo.getSiVal() + "").setPVal(vo.getPVal() + "").setSVal(vo.getSVal() + "");
per.setCVal(vo.getCPer() + "").setMnVal(vo.getMnPer() + "").setSiVal(vo.getSiPer() + "").setPVal(vo.getPPer() + "").setSVal(vo.getSPer() + ""); per.setCVal(vo.getCPer() + "").setMnVal(vo.getMnPer() + "").setSiVal(vo.getSiPer() + "").setPVal(vo.getPPer() + "").setSVal(vo.getSPer() + "");
ltNum.setCVal(vo.getCLtNum() + "").setMnVal(vo.getMnLtNum() + "").setSiVal(vo.getSiLtNum() + "").setPVal(vo.getPLtNum() + ""); ltNum.setCVal(vo.getCLtNum() + "").setMnVal(vo.getMnLtNum() + "").setSiVal(vo.getSiLtNum() + "").setPVal(vo.getPLtNum() + "");
...@@ -310,15 +330,15 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe ...@@ -310,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;
...@@ -425,6 +445,41 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe ...@@ -425,6 +445,41 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
} }
@Override @Override
public boolean addStandardSampleDTO(EntrustSampleDTO dto, Account account) {
if (null == dto) {
return false;
}
// 添加后排序,不论是否成功添加标样
List<EntrustSample> sampleList = list(Condition.create().eq("entrust_id", dto.getEntrustId())
.orderBy("order_by", true).orderBy("ctime", false));
// 若为一个样品,则不进行排序处理
if (CollectionUtils.isNotEmpty(sampleList) && sampleList.size() > 1) {
for (int i = 0; i < sampleList.size(); i++) {
sampleList.get(i).setOrderBy(i);
}
updateBatchById(sampleList);
}
EntrustSample sample = dto.convert(EntrustSample.class);
//标样
sample.setType(1);
if (save(sample)) {
List<EntrustSampleItem> itemList = dto.getItemList();
if (CollectionUtils.isNotEmpty(itemList)) {
for (EntrustSampleItem item : itemList) {
item.setEntrustSampleId(sample.getId());
item.setStatus(EntrustSampleItemStatusEnum.TEST);
item.setProgress(EntrustSampleItemStatusEnum.TEST);
item.setTester(account.getUserName());
item.setTesterId(account.getUserId());
}
entrustSampleItemService.saveBatch(itemList);
}
}
return true;
}
@Override
public boolean removeByIds(List<Long> ids) { public boolean removeByIds(List<Long> ids) {
return baseMapper.deleteBatchIds(ids) > 0; return baseMapper.deleteBatchIds(ids) > 0;
} }
......
...@@ -84,8 +84,16 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust> ...@@ -84,8 +84,16 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
@Override @Override
public Page<Entrust> page(Page<Entrust> page, Entrust entrust) { public Page<Entrust> page(Page<Entrust> page, Entrust entrust) {
String code = entrust.getCode();
String client = entrust.getClient();
entrust.setCode(null).setClient(null);
Wrapper wrapper = new EntityWrapper<>(entrust); Wrapper wrapper = new EntityWrapper<>(entrust);
wrapper.orderBy("entrust_time", false); if (StringUtils.isNotBlank(code)) {
wrapper.like("code", code);
}
if (StringUtils.isNotBlank(client)) {
wrapper.like("client", client);
}
wrapper.orderBy("code", false); wrapper.orderBy("code", false);
return this.page(page, wrapper); return this.page(page, wrapper);
} }
...@@ -211,13 +219,14 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust> ...@@ -211,13 +219,14 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
List<EntrustSample> saveSampleList = new ArrayList<>(); List<EntrustSample> saveSampleList = new ArrayList<>();
List<EntrustSampleItem> saveEntrustSampleItemList = new ArrayList<>(); List<EntrustSampleItem> saveEntrustSampleItemList = new ArrayList<>();
for (EntrustSampleDTO sampleDTO : sampleDTOList) { for (int x = 0; x < sampleDTOList.size(); x++) {
EntrustSampleDTO sampleDTO = sampleDTOList.get(x);
EntrustSample sample = sampleDTO.convert(EntrustSample.class); EntrustSample sample = sampleDTO.convert(EntrustSample.class);
sample.setEntrustId(entrust.getId()); sample.setEntrustId(entrust.getId());
//生成样品编号 //生成样品编号
initSampleCode(sample); initSampleCode(sample);
sample.setId(IdWorker.getId()); sample.setId(IdWorker.getId());
sample.setOrderBy(x);
saveSampleList.add(sample); saveSampleList.add(sample);
List<EntrustSampleItem> experiments = sampleDTO.getItemList(); List<EntrustSampleItem> experiments = sampleDTO.getItemList();
if (CollectionUtils.isEmpty(experiments)) { if (CollectionUtils.isEmpty(experiments)) {
...@@ -377,20 +386,18 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust> ...@@ -377,20 +386,18 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
List<EntrustSample> saveSampleList = new ArrayList<>(); List<EntrustSample> saveSampleList = new ArrayList<>();
List<EntrustSampleItem> saveItemList = new ArrayList<>(); List<EntrustSampleItem> saveItemList = new ArrayList<>();
for (EntrustSampleDTO dto : sampleList) { for (int x = 0; x < sampleList.size(); x++) {
EntrustSampleDTO dto = sampleList.get(x);
EntrustSample sample = dto.convert(EntrustSample.class); EntrustSample sample = dto.convert(EntrustSample.class);
sample.setOrderBy(x);
if (null != sample.getId()) { if (null != sample.getId()) {
updateSampleList.add(sample); updateSampleList.add(sample);
sampleIdsList.add(sample.getId()); sampleIdsList.add(sample.getId());
} else { } else {
sample.setEntrustId(entrust.getId()); sample.setEntrustId(entrust.getId());
initSampleCode(sample); initSampleCode(sample);
sample.setId(IdWorker.getId()); sample.setId(IdWorker.getId());
saveSampleList.add(sample); saveSampleList.add(sample);
} }
List<EntrustSampleItem> viewItemList = dto.getItemList(); List<EntrustSampleItem> viewItemList = dto.getItemList();
...@@ -427,7 +434,8 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust> ...@@ -427,7 +434,8 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
Entrust entrust = getById(id); Entrust entrust = getById(id);
if (null != entrust) { if (null != entrust) {
EntrustDTO vo = entrust.convert(EntrustDTO.class); EntrustDTO vo = entrust.convert(EntrustDTO.class);
List<EntrustSampleDTO> sampleList = baseMapper.listByContractId(id); // 只查询正常样品,不查询标样
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();
...@@ -973,6 +981,73 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust> ...@@ -973,6 +981,73 @@ 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) {
List<EntrustSampleDTO> sampleDTOList = baseMapper.listByContractId(entrustId);
return sampleDTOList.stream().filter(t -> (null == t.getType() ? 0 : t.getType().intValue()) == type).collect(Collectors.toList());
}
/* 导出检测委托书 */ /* 导出检测委托书 */
@Override @Override
public void exportEntrust(List<Long> ids, HttpServletResponse response) { public void exportEntrust(List<Long> ids, HttpServletResponse response) {
......
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.patzn.cloud.commons.api.RestAssert;
import com.patzn.cloud.commons.controller.Account; import com.patzn.cloud.commons.controller.Account;
import com.patzn.cloud.commons.controller.LoginHelper; import com.patzn.cloud.commons.controller.LoginHelper;
import com.patzn.cloud.service.hmhj.entity.Entrust; import com.patzn.cloud.service.hmhj.entity.*;
import com.patzn.cloud.service.hmhj.entity.EntrustSample;
import com.patzn.cloud.service.hmhj.enums.EntrustSampleStatusEnum; import com.patzn.cloud.service.hmhj.enums.EntrustSampleStatusEnum;
import com.patzn.cloud.service.hmhj.enums.EntrustStatusEnum; import com.patzn.cloud.service.hmhj.enums.EntrustStatusEnum;
import com.patzn.cloud.service.hmhj.vo.CollectionVO;
import com.patzn.cloud.service.hmhj.vo.OriginalRecordInfoVO;
import com.patzn.cloud.service.lims.collection.entity.LmsOriginalRecordInfo; import com.patzn.cloud.service.lims.collection.entity.LmsOriginalRecordInfo;
import com.patzn.cloud.service.lims.collection.entity.OriginalAtlas;
import com.patzn.cloud.service.lims.hmhj.mapper.LmsOriginalRecordInfoMapper; import com.patzn.cloud.service.lims.hmhj.mapper.LmsOriginalRecordInfoMapper;
import com.patzn.cloud.service.lims.hmhj.service.IEntrustSampleItemService; import com.patzn.cloud.service.lims.hmhj.service.*;
import com.patzn.cloud.service.lims.hmhj.service.IEntrustSampleService;
import com.patzn.cloud.service.lims.hmhj.service.IEntrustService;
import com.patzn.cloud.service.lims.hmhj.service.ILmsOriginalRecordInfoService;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl; import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -21,6 +22,8 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; ...@@ -21,6 +22,8 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper; import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.plugins.Page;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -38,11 +41,20 @@ public class LmsOriginalRecordInfoServiceImpl extends BaseServiceImpl<LmsOrigina ...@@ -38,11 +41,20 @@ public class LmsOriginalRecordInfoServiceImpl extends BaseServiceImpl<LmsOrigina
private IEntrustService entrustService; private IEntrustService entrustService;
@Autowired @Autowired
private IOriginalTemplateService originalTemplateService;
@Autowired
private IOriginalTemplateConfigService originalTemplateConfigService;
@Autowired
private IEntrustSampleService entrustSampleService; private IEntrustSampleService entrustSampleService;
@Autowired @Autowired
private IEntrustSampleItemService entrustSampleItemService; private IEntrustSampleItemService entrustSampleItemService;
@Autowired
private IEntrustSampleItemIndexService entrustSampleItemIndexService;
@Override @Override
public Page<LmsOriginalRecordInfo> page(Page<LmsOriginalRecordInfo> page, LmsOriginalRecordInfo lmsOriginalRecordInfo) { public Page<LmsOriginalRecordInfo> page(Page<LmsOriginalRecordInfo> page, LmsOriginalRecordInfo lmsOriginalRecordInfo) {
Wrapper wrapper = new EntityWrapper<>(lmsOriginalRecordInfo); Wrapper wrapper = new EntityWrapper<>(lmsOriginalRecordInfo);
...@@ -54,36 +66,79 @@ public class LmsOriginalRecordInfoServiceImpl extends BaseServiceImpl<LmsOrigina ...@@ -54,36 +66,79 @@ public class LmsOriginalRecordInfoServiceImpl extends BaseServiceImpl<LmsOrigina
return baseMapper.deleteBatchIds(ids) > 0; return baseMapper.deleteBatchIds(ids) > 0;
} }
/**
* 生成从委托到原始记录相关数据
*
* @return
*/
@Override @Override
public boolean generateOriginalRelData() { public boolean analysisOriginalData(Long templateId, Long[] itemIds, Account account) {
Account account = LoginHelper.getAccount(); RestAssert.fail(null == templateId, "原始记录模板编号为空");
// 查询未生成的委托数据 RestAssert.fail(null == itemIds || 0 == itemIds.length, "检测项目为空");
List<LmsOriginalRecordInfo> entrustList = baseMapper.selectUnGeneratedEntrustData();
if (CollectionUtils.isNotEmpty(entrustList)) { OriginalTemplate template = originalTemplateService.getById(templateId);
List<Entrust> entrusts = entrustList.stream().map(t -> { RestAssert.fail(null == template, "原始记录模板为空");
return new Entrust().setStatus(EntrustStatusEnum.TEST).setProgress(EntrustStatusEnum.TEST) String tempName = template.getName();
.setCode(t.getContractCode()).setCompanyId(account.getCompanyId()).setUid(account.getUserId()); // 需要采集的指标项
}).collect(Collectors.toList()); List<OriginalTemplateConfig> configList = originalTemplateConfigService.list(Condition.create()
.eq("template_id", template).eq("itemed", 1).eq("deleted", 0));
entrustService.saveBatch(entrusts); RestAssert.fail(CollectionUtils.isEmpty(configList), "原始记录模板指标未配置");
// 根据检测项目ID查询采集数据
List<OriginalRecordInfoVO> originalRecordInfoList = baseMapper.selectByItem(itemIds);
RestAssert.fail(CollectionUtils.isEmpty(originalRecordInfoList), "所选检测项目对应的采集数据不存在");
List<EntrustSampleItemIndex> itemIndexList = new ArrayList<>();
// 具体逻辑需要额外处理
// 目前不清楚字段content和abs代表的含义
// and so on ...
//
for (OriginalRecordInfoVO vo : originalRecordInfoList) {
// OriginalAtlas data = JSONObject.parseObject(vo.getData(),OriginalAtlas.class);
CollectionVO data = JSONObject.parseObject(vo.getData(), CollectionVO.class);
for (OriginalTemplateConfig config : configList) {
EntrustSampleItemIndex itemIndex = new EntrustSampleItemIndex();
itemIndex.setStatus(0);
itemIndex.setProgress(0);
itemIndex.setUid(account.getUserId());
itemIndex.setName(config.getAttributeName());
itemIndex.setCompanyId(account.getCompanyId());
itemIndex.setEntrustSampleItemId(vo.getItemId());
String attrName = config.getAttributeName();
// 取值待定
if (attrName.contains("一次浓度")) {
itemIndex.setTestValue(data.getOneContent());
} else if (attrName.contains("二次浓度")) {
itemIndex.setTestValue(data.getTwoContent());
} else if (attrName.contains("三次浓度")) {
itemIndex.setTestValue(data.getThreeContent());
} else if (attrName.contains("四次浓度")) {
itemIndex.setTestValue(data.getFourContent());
} else if (attrName.contains("浓度") || attrName.contains("初晶温度")) {
itemIndex.setTestValue(data.getContent());
} else if (attrName.contains("校准后荧光强度")) {
itemIndex.setTestValue(data.getCorrectedContent());
} else if (attrName.contains("荧光强度")) {
itemIndex.setTestValue(data.getAbs());
} else if (attrName.contains("分析日期")) {
itemIndex.setTestValue(data.getDateTime());
} else if (attrName.contains("耐压/抗折强度")) {
itemIndex.setTestValue(data.getStrength());
} else if (attrName.contains("最大载荷")) {
itemIndex.setTestValue(data.getMaxLoad());
} else if (attrName.contains("面积")) {
itemIndex.setTestValue(data.getArea());
}
itemIndexList.add(itemIndex);
}
// 曲线信息
if (CollectionUtils.isNotEmpty(data.getCurveData())) {
}
} }
// 查询未生成的样品数据
List<LmsOriginalRecordInfo> sampleList = baseMapper.selectUnGeneratedSampleData(); if (CollectionUtils.isNotEmpty(itemIndexList)) {
if (CollectionUtils.isNotEmpty(sampleList)) { entrustSampleItemIndexService.saveBatch(itemIndexList);
List<EntrustSample> samples = sampleList.stream().map(t -> {
return new EntrustSample().setStatus(EntrustSampleStatusEnum.TEST).setProgress(EntrustSampleStatusEnum.TEST)
.setCode(t.getSampleNum()).setCompanyId(account.getCompanyId()).setUid(account.getUserId());
}).collect(Collectors.toList());
List<Entrust> entrusts = entrustService.list(Condition.create().setSqlSelect(new String[]{"id","code"})
.eq("status", EntrustStatusEnum.TEST.getValue())
.eq("deleted", 0));
entrustSampleService.saveBatch(samples);
} }
return false;
return true;
} }
} }
package com.patzn.cloud.service.lims.schedule;
import com.patzn.cloud.service.lims.hmhj.service.ILmsOriginalRecordInfoService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@Component
public class LmsOriginalRecordInfoSchedule {
private Logger logger = LoggerFactory.getLogger(LmsOriginalRecordInfoSchedule.class);
@Autowired
private ILmsOriginalRecordInfoService lmsOriginalRecordInfoService;
/**
* 每隔5分钟,执行生成委托->样品->检测项目->原始记录数据
*/
@Scheduled(cron = "0 */50 * * * ?")
public void execute(){
logger.info("------每隔5分钟,执行生成委托->样品->检测项目->原始记录数据------");
// lmsOriginalRecordInfoService.generateOriginalRelData();
}
}
...@@ -87,6 +87,9 @@ ...@@ -87,6 +87,9 @@
<if test="null!=vo.testSide"> <if test="null!=vo.testSide">
AND e.test_side LIKE CONCAT('%',#{vo.testSide},'%') AND e.test_side LIKE CONCAT('%',#{vo.testSide},'%')
</if> </if>
<if test="null!=vo.testerId">
AND i.tester_id = #{vo.testerId}
</if>
order by e.entrust_time desc,e.code desc order by e.entrust_time desc,e.code desc
</select> </select>
......
...@@ -28,6 +28,11 @@ ...@@ -28,6 +28,11 @@
#{sampleId} #{sampleId}
</foreach> </foreach>
</if> </if>
<if test="null != vo.testerId">
AND tester_id = #{vo.testerId}
</if>
GROUP BY name ORDER BY name GROUP BY name ORDER BY name
</select> </select>
...@@ -81,6 +86,9 @@ ...@@ -81,6 +86,9 @@
</foreach> </foreach>
</if> </if>
<if test="null!=vo.testerId">
AND tester_id = #{vo.testerId}
</if>
) )
SELECT i.*,s.name AS "sampleName",e.test_side "testSide",s.code AS "sampleCode",l.record_id,r.object_key AS "recordObjectKey" FROM i SELECT i.*,s.name AS "sampleName",e.test_side "testSide",s.code AS "sampleCode",l.record_id,r.object_key AS "recordObjectKey" FROM i
...@@ -142,6 +150,10 @@ ...@@ -142,6 +150,10 @@
#{sampleId} #{sampleId}
</foreach> </foreach>
</if> </if>
<if test="null != vo.testerId">
AND tester_id = #{vo.testerId}
</if>
) )
SELECT i.*,s.name AS "sampleName",s.code AS "sampleCode",e.test_side "testSide",l.record_id,r.object_key AS "recordObjectKey" SELECT i.*,s.name AS "sampleName",s.code AS "sampleCode",e.test_side "testSide",l.record_id,r.object_key AS "recordObjectKey"
......
...@@ -58,6 +58,7 @@ ...@@ -58,6 +58,7 @@
#{sampleId} #{sampleId}
</foreach> </foreach>
</if> </if>
order by order_by asc,ctime desc
</select> </select>
...@@ -100,13 +101,28 @@ ...@@ -100,13 +101,28 @@
<select id="selectTestResultQuery" resultType="com.patzn.cloud.service.hmhj.vo.EntrustSampleVO"> <select id="selectTestResultQuery" resultType="com.patzn.cloud.service.hmhj.vo.EntrustSampleVO">
SELECT SELECT
s.id,s.name,s.code,e.code AS "entrustCode",e.client,e.entrust_time,e.test_side,s.supplier,s.manufacturer s.ID,
FROM s.NAME,
entrust_sample s s.code,
JOIN entrust e ON s.entrust_id = e.ID e.code AS "entrustCode",
e.client,
WHERE s.deleted = 0 e.entrust_time,
AND e.deleted = 0 e.test_side,
s.supplier,
s.manufacturer
FROM entrust_sample s
JOIN entrust e ON s.entrust_id = e.ID
JOIN (
SELECT i.entrust_sample_id FROM entrust_sample_item i
JOIN entrust_sample_item_index x ON i.ID = x.entrust_sample_item_id
WHERE i.deleted = 0 AND x.deleted = 0 AND x.test_value IS NOT NULL
GROUP BY i.entrust_sample_id
) k ON s.ID = k.entrust_sample_id
WHERE
s.deleted = 0
AND e.deleted = 0
<if test="vo.name!=null"> <if test="vo.name!=null">
AND s.name LIKE CONCAT('%',#{vo.name},'%') AND s.name LIKE CONCAT('%',#{vo.name},'%')
</if> </if>
...@@ -122,6 +138,8 @@ ...@@ -122,6 +138,8 @@
AND s.code LIKE CONCAT('%',#{vo.code},'%') AND s.code LIKE CONCAT('%',#{vo.code},'%')
</if> </if>
ORDER BY e.code,s.code
</select> </select>
<!--原铝品味统计查询--> <!--原铝品味统计查询-->
......
...@@ -2,30 +2,27 @@ ...@@ -2,30 +2,27 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.patzn.cloud.service.lims.hmhj.mapper.LmsOriginalRecordInfoMapper"> <mapper namespace="com.patzn.cloud.service.lims.hmhj.mapper.LmsOriginalRecordInfoMapper">
<!--获取未生成的委托数据--> <select id="selectByItem"
<select id="selectUnGeneratedEntrustData" resultType="com.patzn.cloud.service.hmhj.vo.OriginalRecordInfoVO">
resultType="com.patzn.cloud.service.lims.collection.entity.LmsOriginalRecordInfo"> with item as (
select o.file_id,o.contract_code from lms_original_record_info o select
i.id "item_id",i.name "item_name",s.id "sample_id",s.code "sample_code",
e.id "entrust_id" ,e.code "entrust_code",i.company_id
from entrust_sample_item i,entrust_sample s,entrust e
where i.deleted = 0 and s.deleted = 0 and e.deleted = 0
and i.entrust_sample_id = s.id and s.entrust_id = e.id
AND i.id IN
<foreach collection="itemIds" index="index" item="itemId" open="(" separator="," close=")">
#{itemId}
</foreach>
)
select
o.*,i.item_id,i.sample_id,i.entrust_id
from lms_original_record_info o, item i
where o.deleted = 0 where o.deleted = 0
and o.contract_code is not null and o.item_name = i.item_name
and not exists (select 1 from entrust e where e.deleted = 0 and e.code = o.contract_code) and o.contract_code = i.entrust_code
group by o.file_id, o.contract_code order by o.file_id and o.sample_num = i.sample_code
</select> and o.data is not null
<select id="selectUnGeneratedSampleData"
resultType="com.patzn.cloud.service.lims.collection.entity.LmsOriginalRecordInfo">
select o.file_id,o.contract_code,o.sample_num from lms_original_record_info o
where o.deleted = 0
and o.contract_code is not null
and o.sample_num is not null
and not exists (
select 1 from entrust e,entrust_sample s
where
e.deleted = 0
and e.code = o.contract_code
and s.entrust_id = e.id
and s.code = o.sample_num
)
group by o.file_id, o.contract_code, o.sample_num order by o.file_id
</select> </select>
</mapper> </mapper>
...@@ -16,6 +16,13 @@ ...@@ -16,6 +16,13 @@
<if test="null != vo.entrustCode"> <if test="null != vo.entrustCode">
AND e.code LIKE CONCAT('%',#{vo.entrustCode},'%') AND e.code LIKE CONCAT('%',#{vo.entrustCode},'%')
</if> </if>
<if test="null != vo.testerId">
AND exists (
select 1 from entrust_sample_item i,item_rel_original_record rr
where i.deleted = 0 and rr.deleted = 0 and rr.item_id = i.id
and r.id = rr.record_id and i.tester_id = #{vo.testerId}
)
</if>
order by r.id desc order by r.id desc
</select> </select>
......
package com.patzn.cloud.service.lims.test;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.patzn.cloud.service.hmhj.vo.CollectionVO;
public class JsonObjectTest {
public static void main(String[] args) {
String str = "{\"abs\":\"-0.000\",\"content\":\"-0.0007\",\"curveData\":[{\"content\":\"0.0000\",\"abs\":\"0.001\"},{\"content\":\"0.0030\",\"abs\":\"0.012\"},{\"content\":\"0.0060\",\"abs\":\"0.022\"},{\"content\":\"0.0100\",\"abs\":\"0.034\"},{\"content\":\"0.0150\",\"abs\":\"0.049\"}]}";
CollectionVO collectionVO = JSONObject.parseObject(str,CollectionVO.class);
System.out.println(collectionVO);
}
}
ALTER TABLE "public"."entrust_sample"
ALTER TABLE "public"."entrust_sample"
ADD COLUMN "type" int2 DEFAULT 0;
COMMENT ON COLUMN "public"."entrust_sample"."type" IS '样品类别(0,正常 1标样)';
ALTER TABLE "public"."entrust_sample"
ADD COLUMN "order_by" int2 DEFAULT 0;
COMMENT ON COLUMN "public"."entrust_sample"."order_by" IS '排序';
\ No newline at end of file
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