Commit 287640ff by lijingjing

修改流程节点逻辑处理;

parent 1ba1fa62
...@@ -8,6 +8,7 @@ import org.springframework.cache.annotation.EnableCaching; ...@@ -8,6 +8,7 @@ import org.springframework.cache.annotation.EnableCaching;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.scheduling.annotation.EnableAsync; import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.transaction.annotation.EnableTransactionManagement; import org.springframework.transaction.annotation.EnableTransactionManagement;
import springfox.documentation.swagger2.annotations.EnableSwagger2; import springfox.documentation.swagger2.annotations.EnableSwagger2;
...@@ -20,6 +21,7 @@ import springfox.documentation.swagger2.annotations.EnableSwagger2; ...@@ -20,6 +21,7 @@ import springfox.documentation.swagger2.annotations.EnableSwagger2;
@EnableAsync @EnableAsync
@EnableCaching @EnableCaching
@EnableSwagger2 @EnableSwagger2
@EnableScheduling
@EnableDiscoveryClient @EnableDiscoveryClient
@SpringBootApplication @SpringBootApplication
@EnableTransactionManagement @EnableTransactionManagement
......
package com.patzn.cloud.service.lims.hmhj.common;
import com.baomidou.mybatisplus.toolkit.CollectionUtils;
import com.patzn.cloud.service.hmhj.enums.EntrustFlowEnum;
import com.patzn.cloud.service.hmhj.enums.EntrustStatusEnum;
import org.apache.commons.lang3.StringUtils;
import java.util.Arrays;
import java.util.List;
/**
* 委托流程控制(状态控制)
*/
public class EntrustFlowUtils {
public static final String SEQ = "->";
public static List<String> getFlowStatusList(String statusPath) {
if (StringUtils.isBlank(statusPath)) {
return null;
}
return Arrays.asList(statusPath.split(SEQ));
}
public static EntrustFlowEnum getPrevFlowStatus(String name, String statusPath) {
if (StringUtils.isBlank(name)) {
return null;
}
List<String> list = getFlowStatusList(statusPath);
if (CollectionUtils.isEmpty(list)) {
return null;
}
int index = list.indexOf(name);
if (0 == index) {
return null;
}
return EntrustFlowEnum.convert(list.get(index - 1));
}
public static EntrustStatusEnum getPrevStatus(String name, String statusPath) {
EntrustFlowEnum prevFlowEnum = getPrevFlowStatus(name, statusPath);
return null == prevFlowEnum ? null : getStatus(prevFlowEnum.getValue().intValue());
}
public static EntrustStatusEnum getStatus(EntrustFlowEnum flowEnum) {
return null == flowEnum ? null : getStatus(flowEnum.getValue().intValue());
}
public static EntrustFlowEnum getNextFlowStatus(String name, String statusPath) {
if (StringUtils.isBlank(name)) {
return null;
}
List<String> list = getFlowStatusList(statusPath);
if (CollectionUtils.isEmpty(list)) {
return null;
}
int index = list.indexOf(name);
if (list.size() - 1 == index) {
return null;
}
return EntrustFlowEnum.convert(list.get(index + 1));
}
public static EntrustStatusEnum getNextStatus(String name, String statusPath) {
EntrustFlowEnum flowEnum = getNextFlowStatus(name, statusPath);
return null == flowEnum ? null : getStatus(flowEnum.getValue().intValue());
}
/**
* 根据流程状态值获取委托状态
*
* @param flowValue
* @return
*/
public static EntrustStatusEnum getStatus(int flowValue) {
EntrustStatusEnum statusEnum = null;
switch (flowValue) {
case 1:
statusEnum = EntrustStatusEnum.DRAFT;
break;
case 2:
statusEnum = EntrustStatusEnum.OUT_DRAFT;
break;
case 3:
statusEnum = EntrustStatusEnum.CHECK;
break;
case 4:
statusEnum = EntrustStatusEnum.MAKE;
break;
case 5:
case 6:
case 7:
case 8:
case 9:
case 10:
case 11:
case 12:
statusEnum = EntrustStatusEnum.TEST;
break;
case 13:
statusEnum = EntrustStatusEnum.OUT_INPUT;
break;
case 14:
statusEnum = EntrustStatusEnum.QUALITY_CHECK;
break;
}
return statusEnum;
}
}
...@@ -84,8 +84,6 @@ public class EntrustController extends ServiceController { ...@@ -84,8 +84,6 @@ public class EntrustController extends ServiceController {
} }
@ApiOperation("委托登记历史分页列表") @ApiOperation("委托登记历史分页列表")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class), @ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class),
...@@ -105,8 +103,6 @@ public class EntrustController extends ServiceController { ...@@ -105,8 +103,6 @@ public class EntrustController extends ServiceController {
} }
@ApiOperation("委托评审历史分页列表") @ApiOperation("委托评审历史分页列表")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class), @ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class),
...@@ -125,9 +121,6 @@ public class EntrustController extends ServiceController { ...@@ -125,9 +121,6 @@ public class EntrustController extends ServiceController {
} }
@ApiOperation("外委数据录入分页列表") @ApiOperation("外委数据录入分页列表")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class), @ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class),
...@@ -142,7 +135,6 @@ public class EntrustController extends ServiceController { ...@@ -142,7 +135,6 @@ public class EntrustController extends ServiceController {
} }
@ApiOperation("外委数据录入历史分页列表") @ApiOperation("外委数据录入历史分页列表")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class), @ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class),
...@@ -163,7 +155,6 @@ public class EntrustController extends ServiceController { ...@@ -163,7 +155,6 @@ public class EntrustController extends ServiceController {
} }
@ApiOperation("委托审核分页列表") @ApiOperation("委托审核分页列表")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class), @ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class),
...@@ -178,7 +169,6 @@ public class EntrustController extends ServiceController { ...@@ -178,7 +169,6 @@ public class EntrustController extends ServiceController {
} }
@ApiOperation("委托样品待制备分页列表") @ApiOperation("委托样品待制备分页列表")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class), @ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class),
...@@ -193,7 +183,6 @@ public class EntrustController extends ServiceController { ...@@ -193,7 +183,6 @@ public class EntrustController extends ServiceController {
} }
@ApiOperation("委托制备历史分页列表") @ApiOperation("委托制备历史分页列表")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class), @ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class),
...@@ -208,7 +197,6 @@ public class EntrustController extends ServiceController { ...@@ -208,7 +197,6 @@ public class EntrustController extends ServiceController {
} }
@ApiOperation("查询 id 信息") @ApiOperation("查询 id 信息")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "主键", required = true, paramType = "path", dataTypeClass = Long.class), @ApiImplicitParam(name = "id", value = "主键", required = true, paramType = "path", dataTypeClass = Long.class),
...@@ -244,30 +232,28 @@ public class EntrustController extends ServiceController { ...@@ -244,30 +232,28 @@ public class EntrustController extends ServiceController {
} }
@ApiOperation(value = "添加委托单", notes = "添加委托单") @ApiOperation(value = "添加委托单", notes = "添加委托单")
@PostMapping("/add_entrust") @PostMapping("/add_entrust")
public RestResult<Boolean> addEntrust(@RequestBody EntrustDTO dto) { public RestResult<Boolean> addEntrust(@RequestBody EntrustDTO dto) {
dto.setStatus(EntrustStatusEnum.DRAFT); dto.setStatus(EntrustStatusEnum.DRAFT);
dto.setProgress(EntrustStatusEnum.DRAFT); dto.setProgress(EntrustStatusEnum.DRAFT);
return success(entrustService.saveEntrustDTO(dto,getAccount())); return success(entrustService.saveEntrustDTO(dto, getAccount()));
} }
@ApiOperation(value = "添加外委登记委托单", notes = "添加委托单") @ApiOperation(value = "添加外委登记委托单", notes = "添加委托单")
@PostMapping("/add_out_entrust") @PostMapping("/add_out_entrust")
public RestResult<Boolean> addOutEntrust(@RequestBody EntrustDTO dto) { public RestResult<Boolean> addOutEntrust(@RequestBody EntrustDTO dto) {
dto.setStatus(EntrustStatusEnum.OUT_DRAFT); dto.setStatus(EntrustStatusEnum.OUT_DRAFT);
dto.setProgress(EntrustStatusEnum.OUT_DRAFT); dto.setProgress(EntrustStatusEnum.OUT_DRAFT);
return success(entrustService.saveEntrustDTO(dto,getAccount())); return success(entrustService.saveEntrustDTO(dto, getAccount()));
} }
@ApiOperation(value = "编辑委托单", notes = "编辑报价单") @ApiOperation(value = "编辑委托单", notes = "编辑报价单")
@PostMapping("/edit_entrust") @PostMapping("/edit_entrust")
public RestResult<Boolean> editEntrust(@RequestBody EntrustDTO entrustDTO) { public RestResult<Boolean> editEntrust(@RequestBody EntrustDTO entrustDTO) {
return success(entrustService.editEntrust(entrustDTO,getAccount())); return success(entrustService.editEntrust(entrustDTO, getAccount()));
} }
...@@ -281,64 +267,60 @@ public class EntrustController extends ServiceController { ...@@ -281,64 +267,60 @@ public class EntrustController extends ServiceController {
} }
@ApiOperation("提交至外委数据录入") @ApiOperation("提交至外委数据录入")
@PostMapping("/submit_to_out_input") @PostMapping("/submit_to_out_input")
public RestResult<Boolean> submitToOutInput(@RequestParam("ids")Long [] ids) { public RestResult<Boolean> submitToOutInput(@RequestParam("ids") Long[] ids) {
return success(entrustService.submitToOutInput(ids,getAccount())); return success(entrustService.submitToOutInput(ids, getAccount()));
} }
@ApiOperation("提交质量判定") @ApiOperation("提交质量判定")
@PostMapping("/out_input_submit_to_quality_check") @PostMapping("/out_input_submit_to_quality_check")
public RestResult<Boolean> outInputSubmitToQualityCheck(@RequestParam("ids")Long [] ids) { public RestResult<Boolean> outInputSubmitToQualityCheck(@RequestParam("ids") Long[] ids) {
return success(entrustService.outInputSubmitToQualityCheck(ids,getAccount())); return success(entrustService.outInputSubmitToQualityCheck(ids, getAccount()));
} }
@ApiOperation("提交至委托评审") @ApiOperation("提交至委托评审")
@PostMapping("/submit_to_check") @PostMapping("/submit_to_check")
public RestResult<Boolean> submitToCheck(@RequestParam("ids")Long [] ids) { public RestResult<Boolean> submitToCheck(@RequestParam("ids") Long[] ids) {
return success(entrustService.submitToCheck(ids,getAccount())); return success(entrustService.submitToCheck(ids, getAccount()));
} }
@ApiOperation("提交至下一节点") @ApiOperation("提交至下一节点")
@PostMapping("/submit_to_next_node") @PostMapping("/submit_to_next_node")
public RestResult<Boolean> submitToNextNode(@RequestParam("ids")Long [] ids) { public RestResult<Boolean> submitToNextNode(@RequestParam("ids") Long[] ids) {
return success(entrustService.submitToNextNode(ids,getAccount())); return success(entrustService.submitToNextNode(ids, getAccount()));
} }
@ApiOperation("退回至上一节点") @ApiOperation("退回至上一节点")
@PostMapping("/reject_to_prev_node") @PostMapping("/reject_to_prev_node")
public RestResult<Boolean> rejectToPrevNode(@RequestParam("id")Long id,String reason) { public RestResult<Boolean> rejectToPrevNode(@RequestParam("id") Long id, String reason) {
return success(entrustService.rejectToPrevNode(id,reason,getAccount())); return success(entrustService.rejectToPrevNode(id, reason, getAccount()));
} }
@ApiOperation("委托评审退回") @ApiOperation("委托评审退回")
@PostMapping("/back_from_check") @PostMapping("/back_from_check")
public RestResult<Boolean> backFromCheck(@RequestParam("ids")Long [] ids,@RequestParam("reason") String reason) { public RestResult<Boolean> backFromCheck(@RequestParam("ids") Long[] ids, @RequestParam("reason") String reason) {
return success(entrustService.backFromCheck(ids,getAccount(),reason)); return success(entrustService.backFromCheck(ids, getAccount(), reason));
} }
@ApiOperation("提交至样品制备") @ApiOperation("提交至样品制备")
@PostMapping("/submit_to_make") @PostMapping("/submit_to_make")
public RestResult<Boolean> submitToMake(@RequestParam("ids")Long [] ids) { public RestResult<Boolean> submitToMake(@RequestParam("ids") Long[] ids) {
return success(entrustService.submitToMake(ids,getAccount())); return success(entrustService.submitToMake(ids, getAccount()));
} }
@ApiOperation("委托登记提交至委托评审") @ApiOperation("委托登记提交至委托评审")
@PostMapping("/register_submit_to_make") @PostMapping("/register_submit_to_make")
public RestResult<Boolean> registerSubmitToMake(@RequestParam("ids")Long [] ids) { public RestResult<Boolean> registerSubmitToMake(@RequestParam("ids") Long[] ids) {
return success(entrustService.registerSubmitToMake(ids,getAccount())); return success(entrustService.registerSubmitToMake(ids, getAccount()));
} }
@ApiOperation("样品接收委托分页列表") @ApiOperation("样品接收委托分页列表")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class), @ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class),
...@@ -355,7 +337,6 @@ public class EntrustController extends ServiceController { ...@@ -355,7 +337,6 @@ public class EntrustController extends ServiceController {
} }
@ApiOperation("样品接收历史委托分页列表") @ApiOperation("样品接收历史委托分页列表")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class), @ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class),
...@@ -372,7 +353,6 @@ public class EntrustController extends ServiceController { ...@@ -372,7 +353,6 @@ public class EntrustController extends ServiceController {
} }
@ApiOperation("任务分配委托分页列表") @ApiOperation("任务分配委托分页列表")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class), @ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class),
...@@ -422,10 +402,25 @@ public class EntrustController extends ServiceController { ...@@ -422,10 +402,25 @@ public class EntrustController extends ServiceController {
public RestResult<Page<EntrustVO>> getPageTaskTest(EntrustVO entrust) { public RestResult<Page<EntrustVO>> getPageTaskTest(EntrustVO entrust) {
entrust.setItemStatus(EntrustSampleItemStatusEnum.TEST); entrust.setItemStatus(EntrustSampleItemStatusEnum.TEST);
// 获取当前用户分组 // 获取当前用户分组
// entrust.setGroupNameList(userInfoService.getCurGroupNameList()); entrust.setGroupNameList(userInfoService.getCurGroupNameList());
return success(entrustService.pageEntrustByItem(getPage(), entrust)); return success(entrustService.pageEntrustByItem(getPage(), entrust));
} }
@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),
@ApiImplicitParam(name = RestConstants.PAGE_SIDX, value = "排序字段", paramType = "query", dataTypeClass = String.class),
@ApiImplicitParam(name = RestConstants.PAGE_SORD, value = "排序方式", paramType = "query", dataTypeClass = String.class),
})
@PostMapping("/page_entrust_test_data")
public RestResult<Page<EntrustVO>> getPageTaskTestData(EntrustVO entrust) {
entrust.setItemStatus(EntrustSampleItemStatusEnum.TEST);
// 获取当前用户分组
entrust.setGroupNameList(userInfoService.getCurGroupNameList());
return success(entrustService.pageEntrustByItemData(getPage(), entrust));
}
@ApiOperation("数据录入历史委托分页列表") @ApiOperation("数据录入历史委托分页列表")
@ApiImplicitParams({ @ApiImplicitParams({
...@@ -447,6 +442,25 @@ public class EntrustController extends ServiceController { ...@@ -447,6 +442,25 @@ public class EntrustController extends ServiceController {
return success(entrustService.pageEntrustByItemHis(getPage(), entrust)); return success(entrustService.pageEntrustByItemHis(getPage(), entrust));
} }
@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),
@ApiImplicitParam(name = RestConstants.PAGE_SIDX, value = "排序字段", paramType = "query", dataTypeClass = String.class),
@ApiImplicitParam(name = RestConstants.PAGE_SORD, value = "排序方式", paramType = "query", dataTypeClass = String.class),
})
@PostMapping("/page_entrust_test_data_his")
public RestResult<Page<EntrustVO>> getPageTaskTestDataHis(EntrustVO entrust) {
entrust.setItemStatusEnumList(Lists.newArrayList(
EntrustSampleItemStatusEnum.UPDATE_APPLY,
EntrustSampleItemStatusEnum.CHECK,
EntrustSampleItemStatusEnum.AUDIT,
EntrustSampleItemStatusEnum.END
));
// 获取当前用户分组
entrust.setGroupNameList(userInfoService.getCurGroupNameList());
return success(entrustService.pageEntrustByItemDataHis(getPage(), entrust));
}
@ApiOperation("数据复核委托分页列表") @ApiOperation("数据复核委托分页列表")
...@@ -480,7 +494,6 @@ public class EntrustController extends ServiceController { ...@@ -480,7 +494,6 @@ public class EntrustController extends ServiceController {
} }
@ApiOperation("数据审核委托分页列表") @ApiOperation("数据审核委托分页列表")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class), @ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class),
...@@ -509,8 +522,6 @@ public class EntrustController extends ServiceController { ...@@ -509,8 +522,6 @@ public class EntrustController extends ServiceController {
} }
@ApiOperation("报告编制委托分页列表") @ApiOperation("报告编制委托分页列表")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class), @ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class),
...@@ -525,7 +536,6 @@ public class EntrustController extends ServiceController { ...@@ -525,7 +536,6 @@ public class EntrustController extends ServiceController {
} }
@ApiOperation("报告编制历史委托分页列表") @ApiOperation("报告编制历史委托分页列表")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class), @ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class),
...@@ -540,9 +550,6 @@ public class EntrustController extends ServiceController { ...@@ -540,9 +550,6 @@ public class EntrustController extends ServiceController {
} }
@ApiOperation("报告审核委托分页列表") @ApiOperation("报告审核委托分页列表")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class), @ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class),
...@@ -577,7 +584,7 @@ public class EntrustController extends ServiceController { ...@@ -577,7 +584,7 @@ public class EntrustController extends ServiceController {
} }
/***********************************************************************************/ /***********************************************************************************/
@ApiOperation(value = "报告批准委托分页列表",notes = "报告批准委托分页列表") @ApiOperation(value = "报告批准委托分页列表", notes = "报告批准委托分页列表")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class), @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), @ApiImplicitParam(name = RestConstants.PAGE_ROWS, value = "每页条数", required = true, paramType = "query", dataTypeClass = Integer.class),
...@@ -591,7 +598,7 @@ public class EntrustController extends ServiceController { ...@@ -591,7 +598,7 @@ public class EntrustController extends ServiceController {
} }
@ApiOperation(value = "报告批准历史委托分页列表",notes = "报告批准历史委托分页列表") @ApiOperation(value = "报告批准历史委托分页列表", notes = "报告批准历史委托分页列表")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class), @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), @ApiImplicitParam(name = RestConstants.PAGE_ROWS, value = "每页条数", required = true, paramType = "query", dataTypeClass = Integer.class),
...@@ -609,7 +616,7 @@ public class EntrustController extends ServiceController { ...@@ -609,7 +616,7 @@ public class EntrustController extends ServiceController {
return success(entrustService.pageEntrustByReportHis(getPage(), entrust)); return success(entrustService.pageEntrustByReportHis(getPage(), entrust));
} }
@ApiOperation(value = "报告发放委托分页列表",notes = "报告发放委托分页列表") @ApiOperation(value = "报告发放委托分页列表", notes = "报告发放委托分页列表")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class), @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), @ApiImplicitParam(name = RestConstants.PAGE_ROWS, value = "每页条数", required = true, paramType = "query", dataTypeClass = Integer.class),
...@@ -623,7 +630,7 @@ public class EntrustController extends ServiceController { ...@@ -623,7 +630,7 @@ public class EntrustController extends ServiceController {
} }
@ApiOperation(value = "报告发放历史分页列表",notes = "报告发放历史分页列表") @ApiOperation(value = "报告发放历史分页列表", notes = "报告发放历史分页列表")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class), @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), @ApiImplicitParam(name = RestConstants.PAGE_ROWS, value = "每页条数", required = true, paramType = "query", dataTypeClass = Integer.class),
...@@ -642,7 +649,6 @@ public class EntrustController extends ServiceController { ...@@ -642,7 +649,6 @@ public class EntrustController extends ServiceController {
/******************************************************************/ /******************************************************************/
@ApiOperation("报告签发委托分页列表") @ApiOperation("报告签发委托分页列表")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class), @ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class),
...@@ -674,7 +680,6 @@ public class EntrustController extends ServiceController { ...@@ -674,7 +680,6 @@ public class EntrustController extends ServiceController {
} }
@ApiOperation("质量判定委托分页列表") @ApiOperation("质量判定委托分页列表")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class), @ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class),
...@@ -701,7 +706,7 @@ public class EntrustController extends ServiceController { ...@@ -701,7 +706,7 @@ public class EntrustController extends ServiceController {
public RestResult<Page<EntrustVO>> getPageEntrustJudgeHis(EntrustVO entrust) { public RestResult<Page<EntrustVO>> getPageEntrustJudgeHis(EntrustVO entrust) {
entrust.setSampleStatus(EntrustSampleStatusEnum.END); entrust.setSampleStatus(EntrustSampleStatusEnum.END);
entrust.setJudgeStatusList(Lists.newArrayList( entrust.setJudgeStatusList(Lists.newArrayList(
1,2 1, 2
)); ));
return success(entrustService.pageEntrustJudgeHis(getPage(), entrust)); return success(entrustService.pageEntrustJudgeHis(getPage(), entrust));
} }
...@@ -737,7 +742,6 @@ public class EntrustController extends ServiceController { ...@@ -737,7 +742,6 @@ public class EntrustController extends ServiceController {
} }
@ApiOperation("电子档案委托分页列表") @ApiOperation("电子档案委托分页列表")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class), @ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class),
...@@ -753,9 +757,6 @@ public class EntrustController extends ServiceController { ...@@ -753,9 +757,6 @@ public class EntrustController extends ServiceController {
} }
@ApiOperation("委托进度查询") @ApiOperation("委托进度查询")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class), @ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class),
...@@ -770,8 +771,8 @@ public class EntrustController extends ServiceController { ...@@ -770,8 +771,8 @@ public class EntrustController extends ServiceController {
@ApiOperation("获取委托状态列表") @ApiOperation("获取委托状态列表")
@GetMapping("/statusList") @GetMapping("/statusList")
public RestResult<EntrustStatusEnum[]> getStatusList() { public RestResult<EntrustFlowEnum[]> getStatusList() {
return success(EntrustStatusEnum.values()); return success(EntrustFlowEnum.values());
} }
} }
package com.patzn.cloud.service.lims.hmhj.controller; package com.patzn.cloud.service.lims.hmhj.controller;
import com.patzn.cloud.feign.lims.hmhj.client.LmsChemicalCategoryClient;
import com.patzn.cloud.service.hmhj.entity.Material; import com.patzn.cloud.service.hmhj.entity.Material;
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;
...@@ -38,6 +39,9 @@ public class MaterialController extends ServiceController { ...@@ -38,6 +39,9 @@ public class MaterialController extends ServiceController {
@Autowired @Autowired
private IMaterialService materialService; private IMaterialService materialService;
@Autowired
private LmsChemicalCategoryClient lmsChemicalCategoryClient;
@ApiOperation("分页列表") @ApiOperation("分页列表")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class), @ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class),
...@@ -83,4 +87,5 @@ public class MaterialController extends ServiceController { ...@@ -83,4 +87,5 @@ public class MaterialController extends ServiceController {
public RestResult<Boolean> delete(@RequestParam("ids") List<Long> ids) { public RestResult<Boolean> delete(@RequestParam("ids") List<Long> ids) {
return success(materialService.removeByIds(ids)); return success(materialService.removeByIds(ids));
} }
} }
...@@ -27,4 +27,6 @@ public interface EntrustMapper extends BatchMapper<Entrust> { ...@@ -27,4 +27,6 @@ public interface EntrustMapper extends BatchMapper<Entrust> {
List<EntrustVO> selectVOList(RowBounds rowBounds, @Param("vo")EntrustVO entrust); List<EntrustVO> selectVOList(RowBounds rowBounds, @Param("vo")EntrustVO entrust);
List<EntrustVO> selectEntrustProgressList(RowBounds rowBounds, @Param("vo")EntrustVO entrust); List<EntrustVO> selectEntrustProgressList(RowBounds rowBounds, @Param("vo")EntrustVO entrust);
List<EntrustVO> selectVOListByItem(Page<EntrustVO> page, @Param("vo") EntrustVO entrust);
} }
...@@ -42,4 +42,6 @@ public interface EntrustSampleItemMapper extends BatchMapper<EntrustSampleItem> ...@@ -42,4 +42,6 @@ public interface EntrustSampleItemMapper extends BatchMapper<EntrustSampleItem>
List<EntrustSampleItemVO> selectMinStatusBySampleIds(@Param("sampleIds")List<Long> sampleIds); List<EntrustSampleItemVO> selectMinStatusBySampleIds(@Param("sampleIds")List<Long> sampleIds);
List<EntrustSampleItemVO> selectByEntrustId(@Param("entrustId") Long entrustId); List<EntrustSampleItemVO> selectByEntrustId(@Param("entrustId") Long entrustId);
int selectUnallocatedCountByEntrustId(@Param("entrustId") Long entrustId);
} }
package com.patzn.cloud.service.lims.hmhj.mapper;
import com.patzn.cloud.commons.mapper.BatchMapper;
import com.patzn.cloud.service.lims.collection.entity.LmsOriginalRecordInfo;
import java.util.List;
import java.util.Map;
/**
* <p>
* 原始记录解析后的数据存储表 Mapper 接口
* </p>
*
* @author meazty
* @since 2021-07-04
*/
public interface LmsOriginalRecordInfoMapper extends BatchMapper<LmsOriginalRecordInfo> {
/**
* @return
*/
List<LmsOriginalRecordInfo> selectUnGeneratedEntrustData();
List<LmsOriginalRecordInfo> selectUnGeneratedSampleData();
}
...@@ -67,4 +67,6 @@ public interface IEntrustSampleItemService extends IBaseService<EntrustSampleIte ...@@ -67,4 +67,6 @@ public interface IEntrustSampleItemService extends IBaseService<EntrustSampleIte
boolean updateQualityJudge(Long[] ids, Account account); boolean updateQualityJudge(Long[] ids, Account account);
List<EntrustSampleItemVO> listMinStatusBySampleIds(List<Long> entrustIds); List<EntrustSampleItemVO> listMinStatusBySampleIds(List<Long> entrustIds);
public boolean isAllocatedByEntrustId(Long entrustId);
} }
...@@ -4,7 +4,10 @@ import com.baomidou.mybatisplus.plugins.Page; ...@@ -4,7 +4,10 @@ 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.SamplePrepareDTO; import com.patzn.cloud.service.hmhj.dto.SamplePrepareDTO;
import com.patzn.cloud.service.hmhj.entity.EntrustSample;
import com.patzn.cloud.service.hmhj.entity.EntrustSamplePrepare; import com.patzn.cloud.service.hmhj.entity.EntrustSamplePrepare;
import com.patzn.cloud.service.hmhj.enums.EntrustSampleItemStatusEnum;
import com.patzn.cloud.service.hmhj.enums.EntrustSamplePrepareStatusEnum;
import java.util.List; import java.util.List;
...@@ -23,4 +26,6 @@ public interface IEntrustSamplePrepareService extends IBaseService<EntrustSample ...@@ -23,4 +26,6 @@ public interface IEntrustSamplePrepareService extends IBaseService<EntrustSample
boolean makeEnd(SamplePrepareDTO dto, Account account); boolean makeEnd(SamplePrepareDTO dto, Account account);
boolean submitSampleReceive(Long[] ids, Account account); boolean submitSampleReceive(Long[] ids, Account account);
boolean addOrUpdateToSetStatus(Long[] sampleIds, EntrustSamplePrepareStatusEnum statusEnum);
} }
...@@ -7,7 +7,9 @@ import com.patzn.cloud.commons.service.IBaseService; ...@@ -7,7 +7,9 @@ import com.patzn.cloud.commons.service.IBaseService;
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;
import com.patzn.cloud.service.hmhj.entity.Entrust;
import com.patzn.cloud.service.hmhj.entity.EntrustSample; import com.patzn.cloud.service.hmhj.entity.EntrustSample;
import com.patzn.cloud.service.hmhj.enums.EntrustFlowEnum;
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;
...@@ -65,4 +67,8 @@ public interface IEntrustSampleService extends IBaseService<EntrustSample> { ...@@ -65,4 +67,8 @@ public interface IEntrustSampleService extends IBaseService<EntrustSample> {
List<ElectrolyteRatioStatsVO> getElectrolyteRatioStatsQuery(QueryDTO queryDTO); List<ElectrolyteRatioStatsVO> getElectrolyteRatioStatsQuery(QueryDTO queryDTO);
Map<String,Object> getPMakeFeStatsQuery(QueryDTO queryDTO); Map<String,Object> getPMakeFeStatsQuery(QueryDTO queryDTO);
boolean updateSampleNextFlowInfo(Entrust entrust, EntrustFlowEnum nextFlowStatus, Account account);
boolean updateSamplePrevFlowInfo(Entrust entrust, EntrustFlowEnum prevFlowStatus, Account account);
} }
...@@ -43,8 +43,12 @@ public interface IEntrustService extends IBaseService<Entrust> { ...@@ -43,8 +43,12 @@ public interface IEntrustService extends IBaseService<Entrust> {
Page<EntrustVO> pageEntrustByItem(Page<EntrustVO> page, EntrustVO entrust); Page<EntrustVO> pageEntrustByItem(Page<EntrustVO> page, EntrustVO entrust);
Page<EntrustVO> pageEntrustByItemData(Page<EntrustVO> page, EntrustVO entrust);
Page<EntrustVO> pageEntrustByItemHis(Page<EntrustVO> page, EntrustVO entrust); Page<EntrustVO> pageEntrustByItemHis(Page<EntrustVO> page, EntrustVO entrust);
Page<EntrustVO> pageEntrustByItemDataHis(Page<EntrustVO> page, EntrustVO entrust);
Page<EntrustVO> pageEntrustBySample(Page<EntrustVO> page, EntrustVO entrust); Page<EntrustVO> pageEntrustBySample(Page<EntrustVO> page, EntrustVO entrust);
Page<EntrustVO> pageEntrustByNotSample(Page<EntrustVO> page, EntrustVO entrust); Page<EntrustVO> pageEntrustByNotSample(Page<EntrustVO> page, EntrustVO entrust);
...@@ -67,5 +71,9 @@ public interface IEntrustService extends IBaseService<Entrust> { ...@@ -67,5 +71,9 @@ public interface IEntrustService extends IBaseService<Entrust> {
boolean submitToNextNode(Long[] ids, Account account); boolean submitToNextNode(Long[] ids, Account account);
boolean submitToNextNode(Entrust entrust, Account account);
boolean rejectToPrevNode(Long id,String reason, Account account); boolean rejectToPrevNode(Long id,String reason, Account account);
boolean rejectToPrevNode(Entrust entrust,String reason, Account account);
} }
package com.patzn.cloud.service.lims.hmhj.service;
import com.baomidou.mybatisplus.plugins.Page;
import com.patzn.cloud.commons.service.IBaseService;
import com.patzn.cloud.service.lims.collection.entity.LmsOriginalRecordInfo;
import java.util.List;
/**
* 原始记录解析后的数据存储表 服务类
*
* @author meazty
* @since 2021-07-04
*/
public interface ILmsOriginalRecordInfoService extends IBaseService<LmsOriginalRecordInfo> {
Page<LmsOriginalRecordInfo> page(Page<LmsOriginalRecordInfo> page, LmsOriginalRecordInfo lmsOriginalRecordInfo);
boolean removeByIds(List<Long> ids);
boolean generateOriginalRelData();
}
...@@ -3,21 +3,28 @@ package com.patzn.cloud.service.lims.hmhj.service.impl; ...@@ -3,21 +3,28 @@ package com.patzn.cloud.service.lims.hmhj.service.impl;
import com.baomidou.mybatisplus.mapper.Condition; import com.baomidou.mybatisplus.mapper.Condition;
import com.baomidou.mybatisplus.toolkit.ArrayUtils; import com.baomidou.mybatisplus.toolkit.ArrayUtils;
import com.baomidou.mybatisplus.toolkit.CollectionUtils; import com.baomidou.mybatisplus.toolkit.CollectionUtils;
import com.google.common.collect.Lists;
import com.patzn.cloud.commons.api.RestAssert; 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.oss.starter.OssClient; import com.patzn.cloud.oss.starter.OssClient;
import com.patzn.cloud.oss.starter.OssFileResult; import com.patzn.cloud.oss.starter.OssFileResult;
import com.patzn.cloud.service.hmhj.entity.Entrust; import com.patzn.cloud.service.hmhj.entity.Entrust;
import com.patzn.cloud.service.hmhj.entity.EntrustReport; import com.patzn.cloud.service.hmhj.entity.EntrustReport;
import com.patzn.cloud.service.hmhj.entity.EntrustReportRelSample; import com.patzn.cloud.service.hmhj.entity.EntrustReportRelSample;
import com.patzn.cloud.service.hmhj.entity.EntrustSample; import com.patzn.cloud.service.hmhj.entity.EntrustSample;
import com.patzn.cloud.service.hmhj.enums.EntrustFlowEnum;
import com.patzn.cloud.service.hmhj.enums.EntrustReportStatusEnum; import com.patzn.cloud.service.hmhj.enums.EntrustReportStatusEnum;
import com.patzn.cloud.service.hmhj.enums.EntrustSampleItemStatusEnum;
import com.patzn.cloud.service.hmhj.enums.EntrustSampleStatusEnum; import com.patzn.cloud.service.hmhj.enums.EntrustSampleStatusEnum;
import com.patzn.cloud.service.lims.hmhj.mapper.EntrustReportMapper; import com.patzn.cloud.service.lims.hmhj.mapper.EntrustReportMapper;
import com.patzn.cloud.service.lims.hmhj.service.IEntrustReportRelSampleService; import com.patzn.cloud.service.lims.hmhj.service.IEntrustReportRelSampleService;
import com.patzn.cloud.service.lims.hmhj.service.IEntrustReportService; import com.patzn.cloud.service.lims.hmhj.service.IEntrustReportService;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl; import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
import com.patzn.cloud.service.lims.hmhj.service.IEntrustSampleService; import com.patzn.cloud.service.lims.hmhj.service.IEntrustSampleService;
import com.patzn.cloud.service.lims.hmhj.service.IEntrustService;
import org.apache.commons.lang3.StringUtils;
import org.checkerframework.checker.units.qual.A;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.EntityWrapper;
...@@ -27,6 +34,7 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -27,6 +34,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.io.File; import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -46,6 +54,8 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe ...@@ -46,6 +54,8 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe
private IEntrustReportRelSampleService entrustReportRelSampleService; private IEntrustReportRelSampleService entrustReportRelSampleService;
@Autowired @Autowired
private IEntrustSampleService entrustSampleService; private IEntrustSampleService entrustSampleService;
@Autowired
private IEntrustService entrustService;
@Override @Override
...@@ -58,24 +68,24 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe ...@@ -58,24 +68,24 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe
@Override @Override
public Page<EntrustReport> pageStatus(Page<EntrustReport> page, List<EntrustReportStatusEnum> reportStatusList, EntrustReport entrustReport) { public Page<EntrustReport> pageStatus(Page<EntrustReport> page, List<EntrustReportStatusEnum> reportStatusList, EntrustReport entrustReport) {
Wrapper wrapper = new EntityWrapper<>(entrustReport); Wrapper wrapper = new EntityWrapper<>(entrustReport);
if (CollectionUtils.isNotEmpty(reportStatusList)){ if (CollectionUtils.isNotEmpty(reportStatusList)) {
wrapper.in("status",reportStatusList); wrapper.in("status", reportStatusList);
} }
return this.page(page, wrapper); return this.page(page, wrapper);
} }
@Override @Override
public boolean removeByIds(List<Long> ids) { public boolean removeByIds(List<Long> ids) {
entrustReportRelSampleService.remove(Condition.create().in("report_id",ids)); entrustReportRelSampleService.remove(Condition.create().in("report_id", ids));
return baseMapper.deleteBatchIds(ids) > 0; return baseMapper.deleteBatchIds(ids) > 0;
} }
@Override @Override
public void uploadReportGenerateDocx(Entrust entrust, Long[] ids, Account account, String name,String remark, File file) { public void uploadReportGenerateDocx(Entrust entrust, Long[] ids, Account account, String name, String remark, File file) {
OssFileResult fileResult = ossClient.upload(file); OssFileResult fileResult = ossClient.upload(file);
if (null !=fileResult){ if (null != fileResult) {
EntrustReport report = new EntrustReport(); EntrustReport report = new EntrustReport();
report.setEntrustId(entrust.getId()); report.setEntrustId(entrust.getId());
report.setRemark(remark); report.setRemark(remark);
...@@ -86,10 +96,10 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe ...@@ -86,10 +96,10 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe
report.setObjectKey(fileResult.getObjectKey()); report.setObjectKey(fileResult.getObjectKey());
report.setVersionId(fileResult.getVersionId()); report.setVersionId(fileResult.getVersionId());
report.setSampleName(name); report.setSampleName(name);
if (save(report)){ if (save(report)) {
List<EntrustReportRelSample> saveRel = new ArrayList<>(); List<EntrustReportRelSample> saveRel = new ArrayList<>();
for (Long sampleId:ids) { for (Long sampleId : ids) {
EntrustReportRelSample reportRelSample = new EntrustReportRelSample(); EntrustReportRelSample reportRelSample = new EntrustReportRelSample();
reportRelSample.setReportId(report.getId()); reportRelSample.setReportId(report.getId());
reportRelSample.setSampleId(sampleId); reportRelSample.setSampleId(sampleId);
...@@ -97,7 +107,7 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe ...@@ -97,7 +107,7 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe
saveRel.add(reportRelSample); saveRel.add(reportRelSample);
} }
if (CollectionUtils.isNotEmpty(saveRel)){ if (CollectionUtils.isNotEmpty(saveRel)) {
entrustReportRelSampleService.saveBatch(saveRel); entrustReportRelSampleService.saveBatch(saveRel);
} }
} }
...@@ -108,228 +118,305 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe ...@@ -108,228 +118,305 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public boolean submitReportMake(Long[] ids, Account account) { public boolean submitReportMake(Long[] ids, Account account) {
RestAssert.fail(ArrayUtils.isEmpty(ids),"请选择要提交的报告"); RestAssert.fail(ArrayUtils.isEmpty(ids), "请选择要提交的报告");
EntrustReport report = new EntrustReport(); EntrustReport report = new EntrustReport();
report.setStatus(EntrustReportStatusEnum.CHECK); report.setStatus(EntrustReportStatusEnum.CHECK);
report.setProgress(EntrustReportStatusEnum.CHECK); report.setProgress(EntrustReportStatusEnum.CHECK);
List<EntrustReportRelSample> relSamples = entrustReportRelSampleService.list(Condition.create().in("report_id",ids)); List<EntrustReportRelSample> relSamples = entrustReportRelSampleService.list(Condition.create().in("report_id", ids));
if (CollectionUtils.isNotEmpty(relSamples)){ if (CollectionUtils.isNotEmpty(relSamples)) {
List<Long> sampleIds = relSamples.stream().map(s->{ List<Long> sampleIds = relSamples.stream().map(s -> {
return s.getSampleId(); return s.getSampleId();
}).collect(Collectors.toList()); }).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(sampleIds)){ if (CollectionUtils.isNotEmpty(sampleIds)) {
EntrustSample sample = new EntrustSample(); EntrustSample sample = new EntrustSample();
sample.setStatus(EntrustSampleStatusEnum.REPORT_CHECK); sample.setStatus(EntrustSampleStatusEnum.REPORT_CHECK);
sample.setProgress(EntrustSampleStatusEnum.REPORT_CHECK); sample.setProgress(EntrustSampleStatusEnum.REPORT_CHECK);
entrustSampleService.update(sample,Condition.create().in("id",sampleIds)); entrustSampleService.update(sample, Condition.create().in("id", sampleIds));
}
} }
// 存在的状态路径时,方可进入处理操作
executeSubmitOperation(getByReportId(ids[0]), account);
return super.update(report, Condition.create().in("id", ids));
} }
private Entrust getByReportId(Long reportId) {
EntrustReport report = getById(reportId);
if (null == report) {
return null;
}
return entrustService.getById(report.getEntrustId());
}
return super.update(report, Condition.create().in("id",ids)); private boolean executeSubmitOperation(Entrust entrust, Account account) {
if (null == entrust || StringUtils.isBlank(entrust.getStatusPath())) {
logger.error("委托为空,或者委托路径为空不进行下一步操作");
return false;
}
entrustService.submitToNextNode(entrust, account);
return true;
} }
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public boolean submitReportCheck(Long[] ids, Account account) { public boolean submitReportCheck(Long[] ids, Account account) {
RestAssert.fail(ArrayUtils.isEmpty(ids),"请选择要提交的报告"); RestAssert.fail(ArrayUtils.isEmpty(ids), "请选择要提交的报告");
EntrustReport report = new EntrustReport(); EntrustReport report = new EntrustReport();
report.setStatus(EntrustReportStatusEnum.ALLOW); report.setStatus(EntrustReportStatusEnum.ALLOW);
report.setProgress(EntrustReportStatusEnum.ALLOW); report.setProgress(EntrustReportStatusEnum.ALLOW);
List<EntrustReportRelSample> relSamples = entrustReportRelSampleService.list(Condition.create().in("report_id",ids)); List<EntrustReportRelSample> relSamples = entrustReportRelSampleService.list(Condition.create().in("report_id", ids));
if (CollectionUtils.isNotEmpty(relSamples)){ if (CollectionUtils.isNotEmpty(relSamples)) {
List<Long> sampleIds = relSamples.stream().map(s->{ List<Long> sampleIds = relSamples.stream().map(s -> {
return s.getSampleId(); return s.getSampleId();
}).collect(Collectors.toList()); }).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(sampleIds)){ if (CollectionUtils.isNotEmpty(sampleIds)) {
EntrustSample sample = new EntrustSample(); EntrustSample sample = new EntrustSample();
sample.setStatus(EntrustSampleStatusEnum.REPORT_ALLOW); sample.setStatus(EntrustSampleStatusEnum.REPORT_ALLOW);
sample.setProgress(EntrustSampleStatusEnum.REPORT_ALLOW); sample.setProgress(EntrustSampleStatusEnum.REPORT_ALLOW);
entrustSampleService.update(sample,Condition.create().in("id",sampleIds)); entrustSampleService.update(sample, Condition.create().in("id", sampleIds));
} }
} }
return super.update(report, Condition.create().in("id",ids)); // 存在的状态路径时,方可进入处理操作
} executeSubmitOperation(getByReportId(ids[0]), account);
return super.update(report, Condition.create().in("id", ids));
}
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public boolean submitFromAllowToSend(Long[] ids, Account account) { public boolean submitFromAllowToSend(Long[] ids, Account account) {
RestAssert.fail(ArrayUtils.isEmpty(ids),"请选择要提交的报告"); RestAssert.fail(ArrayUtils.isEmpty(ids), "请选择要提交的报告");
EntrustReport report = new EntrustReport(); EntrustReport report = new EntrustReport();
report.setStatus(EntrustReportStatusEnum.SEND); report.setStatus(EntrustReportStatusEnum.SEND);
report.setProgress(EntrustReportStatusEnum.SEND); report.setProgress(EntrustReportStatusEnum.SEND);
List<EntrustReportRelSample> relSamples = entrustReportRelSampleService.list(Condition.create().in("report_id",ids)); List<EntrustReportRelSample> relSamples = entrustReportRelSampleService.list(Condition.create().in("report_id", ids));
if (CollectionUtils.isNotEmpty(relSamples)){ if (CollectionUtils.isNotEmpty(relSamples)) {
List<Long> sampleIds = relSamples.stream().map(s->{ List<Long> sampleIds = relSamples.stream().map(s -> {
return s.getSampleId(); return s.getSampleId();
}).collect(Collectors.toList()); }).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(sampleIds)){ if (CollectionUtils.isNotEmpty(sampleIds)) {
EntrustSample sample = new EntrustSample(); EntrustSample sample = new EntrustSample();
sample.setStatus(EntrustSampleStatusEnum.REPORT_SEND); sample.setStatus(EntrustSampleStatusEnum.REPORT_SEND);
sample.setProgress(EntrustSampleStatusEnum.REPORT_SEND); sample.setProgress(EntrustSampleStatusEnum.REPORT_SEND);
entrustSampleService.update(sample,Condition.create().in("id",sampleIds)); entrustSampleService.update(sample, Condition.create().in("id", sampleIds));
}
} }
return super.update(report, Condition.create().in("id",ids));
} }
// 存在的状态路径时,方可进入处理操作
executeSubmitOperation(getByReportId(ids[0]), account);
return super.update(report, Condition.create().in("id", ids));
}
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public boolean submitFromAllowToIssue(Long[] ids, Account account) { public boolean submitFromAllowToIssue(Long[] ids, Account account) {
RestAssert.fail(ArrayUtils.isEmpty(ids),"请选择要提交的报告"); RestAssert.fail(ArrayUtils.isEmpty(ids), "请选择要提交的报告");
EntrustReport report = new EntrustReport(); EntrustReport report = new EntrustReport();
report.setStatus(EntrustReportStatusEnum.ISSUE); report.setStatus(EntrustReportStatusEnum.ISSUE);
report.setProgress(EntrustReportStatusEnum.ISSUE); report.setProgress(EntrustReportStatusEnum.ISSUE);
List<EntrustReportRelSample> relSamples = entrustReportRelSampleService.list(Condition.create().in("report_id",ids)); List<EntrustReportRelSample> relSamples = entrustReportRelSampleService.list(Condition.create().in("report_id", ids));
if (CollectionUtils.isNotEmpty(relSamples)){ if (CollectionUtils.isNotEmpty(relSamples)) {
List<Long> sampleIds = relSamples.stream().map(s->{ List<Long> sampleIds = relSamples.stream().map(s -> {
return s.getSampleId(); return s.getSampleId();
}).collect(Collectors.toList()); }).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(sampleIds)){ if (CollectionUtils.isNotEmpty(sampleIds)) {
EntrustSample sample = new EntrustSample(); EntrustSample sample = new EntrustSample();
sample.setStatus(EntrustSampleStatusEnum.REPORT_ISSUE); sample.setStatus(EntrustSampleStatusEnum.REPORT_ISSUE);
sample.setProgress(EntrustSampleStatusEnum.REPORT_ISSUE); sample.setProgress(EntrustSampleStatusEnum.REPORT_ISSUE);
entrustSampleService.update(sample,Condition.create().in("id",sampleIds)); entrustSampleService.update(sample, Condition.create().in("id", sampleIds));
} }
} }
return super.update(report, Condition.create().in("id",ids)); // 存在的状态路径时,方可进入处理操作
executeSubmitOperation(getByReportId(ids[0]), account);
return super.update(report, Condition.create().in("id", ids));
} }
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public boolean submitFromSendToJudge(Long[] ids, Account account) { public boolean submitFromSendToJudge(Long[] ids, Account account) {
RestAssert.fail(ArrayUtils.isEmpty(ids),"请选择要提交的报告"); RestAssert.fail(ArrayUtils.isEmpty(ids), "请选择要提交的报告");
EntrustReport report = new EntrustReport(); EntrustReport report = new EntrustReport();
report.setStatus(EntrustReportStatusEnum.END); report.setStatus(EntrustReportStatusEnum.END);
report.setProgress(EntrustReportStatusEnum.END); report.setProgress(EntrustReportStatusEnum.END);
List<EntrustReportRelSample> relSamples = entrustReportRelSampleService.list(Condition.create().in("report_id",ids)); List<EntrustReportRelSample> relSamples = entrustReportRelSampleService.list(Condition.create().in("report_id", ids));
if (CollectionUtils.isNotEmpty(relSamples)){ if (CollectionUtils.isNotEmpty(relSamples)) {
List<Long> sampleIds = relSamples.stream().map(s->{ List<Long> sampleIds = relSamples.stream().map(s -> {
return s.getSampleId(); return s.getSampleId();
}).collect(Collectors.toList()); }).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(sampleIds)){ if (CollectionUtils.isNotEmpty(sampleIds)) {
EntrustSample sample = new EntrustSample(); EntrustSample sample = new EntrustSample();
sample.setStatus(EntrustSampleStatusEnum.END); sample.setStatus(EntrustSampleStatusEnum.END);
sample.setProgress(EntrustSampleStatusEnum.END); sample.setProgress(EntrustSampleStatusEnum.END);
entrustSampleService.update(sample,Condition.create().in("id",sampleIds)); entrustSampleService.update(sample, Condition.create().in("id", sampleIds));
} }
} }
return super.update(report, Condition.create().in("id",ids)); // 存在的状态路径时,方可进入处理操作
executeSubmitOperation(getByReportId(ids[0]), account);
return super.update(report, Condition.create().in("id", ids));
} }
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public boolean submitReportIssue(Long[] ids, Account account) { public boolean submitReportIssue(Long[] ids, Account account) {
RestAssert.fail(ArrayUtils.isEmpty(ids),"请选择要提交的报告"); RestAssert.fail(ArrayUtils.isEmpty(ids), "请选择要提交的报告");
EntrustReport report = new EntrustReport(); EntrustReport report = new EntrustReport();
report.setStatus(EntrustReportStatusEnum.END); report.setStatus(EntrustReportStatusEnum.END);
report.setProgress(EntrustReportStatusEnum.END); report.setProgress(EntrustReportStatusEnum.END);
List<EntrustReportRelSample> relSamples = entrustReportRelSampleService.list(Condition.create().in("report_id",ids)); List<EntrustReportRelSample> relSamples = entrustReportRelSampleService.list(Condition.create().in("report_id", ids));
if (CollectionUtils.isNotEmpty(relSamples)){ if (CollectionUtils.isNotEmpty(relSamples)) {
List<Long> sampleIds = relSamples.stream().map(s->{ List<Long> sampleIds = relSamples.stream().map(s -> {
return s.getSampleId(); return s.getSampleId();
}).collect(Collectors.toList()); }).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(sampleIds)){ if (CollectionUtils.isNotEmpty(sampleIds)) {
EntrustSample sample = new EntrustSample(); EntrustSample sample = new EntrustSample();
sample.setStatus(EntrustSampleStatusEnum.END); sample.setStatus(EntrustSampleStatusEnum.END);
sample.setProgress(EntrustSampleStatusEnum.END); sample.setProgress(EntrustSampleStatusEnum.END);
entrustSampleService.update(sample,Condition.create().in("id",sampleIds)); entrustSampleService.update(sample, Condition.create().in("id", sampleIds));
} }
} }
return super.update(report, Condition.create().in("id",ids));
// 存在的状态路径时,方可进入处理操作
executeSubmitOperation(getByReportId(ids[0]), account);
return super.update(report, Condition.create().in("id", ids));
} }
@Override @Override
public boolean backReportCheck(Long[] ids, String reason, Account account) { public boolean backReportCheck(Long[] ids, String reason, Account account) {
RestAssert.fail(ArrayUtils.isEmpty(ids),"请选择要退回的报告"); RestAssert.fail(ArrayUtils.isEmpty(ids), "请选择要退回的报告");
EntrustReport report = new EntrustReport(); EntrustReport report = new EntrustReport();
report.setStatus(EntrustReportStatusEnum.MAKING); report.setStatus(EntrustReportStatusEnum.MAKING);
report.setProgress(EntrustReportStatusEnum.BACK_CHECK); report.setProgress(EntrustReportStatusEnum.BACK_CHECK);
return super.update(report, Condition.create().in("id",ids)); rejectEntrustInfo(ids, reason, EntrustReportStatusEnum.MAKING, account);
return super.update(report, Condition.create().in("id", ids));
}
private void rejectEntrustInfo(Long[] reportIds, String reason, EntrustReportStatusEnum reportStatusEnum, Account account) {
List<EntrustReport> reports = baseMapper.selectBatchIds(Arrays.asList(reportIds));
List<Long> entrustIds = reports.stream().map(t -> t.getEntrustId()).collect(Collectors.toList());
List<Entrust> entrustList = entrustService.getBatchIds(entrustIds);
entrustList.stream().forEach(t -> {
if (StringUtils.isNotBlank(t.getStatusPath())) {
entrustService.rejectToPrevNode(t, reason, account);
} else {
rejectByReportStatus(t, reportStatusEnum, account);
}
});
}
/**
* 通过报告状态更改驳回的委托样品状态
*
* @param entrust
* @param reportStatus
* @param account
*/
private void rejectByReportStatus(Entrust entrust, EntrustReportStatusEnum reportStatus, Account account) {
EntrustSample entrustSample = new EntrustSample();
EntrustSampleStatusEnum sampleStatusEnum = null;
if (reportStatus == EntrustReportStatusEnum.MAKING) {
sampleStatusEnum = EntrustSampleStatusEnum.REPORT_MAKE;
} else if (reportStatus == EntrustReportStatusEnum.CHECK) {
sampleStatusEnum = EntrustSampleStatusEnum.REPORT_CHECK;
} else if (reportStatus == EntrustReportStatusEnum.ALLOW) {
sampleStatusEnum = EntrustSampleStatusEnum.REPORT_ALLOW;
} else if (reportStatus == EntrustReportStatusEnum.ISSUE) {
sampleStatusEnum = EntrustSampleStatusEnum.REPORT_ISSUE;
} else if (reportStatus == EntrustReportStatusEnum.SEND) {
sampleStatusEnum = EntrustSampleStatusEnum.REPORT_SEND;
}
if (null != sampleStatusEnum) {
entrustSample.setStatus(sampleStatusEnum);
entrustSample.setProgress(sampleStatusEnum);
entrustSampleService.update(entrustSample, Condition.create().eq("entrust_id", entrust.getId()));
}
} }
@Override @Override
public boolean backReportIssue(Long[] ids, String reason, Account account) { public boolean backReportIssue(Long[] ids, String reason, Account account) {
RestAssert.fail(ArrayUtils.isEmpty(ids),"请选择要退回的报告"); RestAssert.fail(ArrayUtils.isEmpty(ids), "请选择要退回的报告");
EntrustReport report = new EntrustReport(); EntrustReport report = new EntrustReport();
report.setStatus(EntrustReportStatusEnum.MAKING); report.setStatus(EntrustReportStatusEnum.MAKING);
report.setProgress(EntrustReportStatusEnum.BACK_ISSUE); report.setProgress(EntrustReportStatusEnum.BACK_ISSUE);
return super.update(report, Condition.create().in("id",ids)); rejectEntrustInfo(ids, reason, EntrustReportStatusEnum.MAKING, account);
return super.update(report, Condition.create().in("id", ids));
} }
@Override @Override
public boolean backFromReportSendToAllow(Long[] ids, String reason, Account account) { public boolean backFromReportSendToAllow(Long[] ids, String reason, Account account) {
RestAssert.fail(ArrayUtils.isEmpty(ids),"请选择要退回的报告"); RestAssert.fail(ArrayUtils.isEmpty(ids), "请选择要退回的报告");
EntrustReport report = new EntrustReport(); EntrustReport report = new EntrustReport();
report.setStatus(EntrustReportStatusEnum.ALLOW); report.setStatus(EntrustReportStatusEnum.ALLOW);
report.setProgress(EntrustReportStatusEnum.BACK_SEND); report.setProgress(EntrustReportStatusEnum.BACK_SEND);
return super.update(report, Condition.create().in("id",ids)); rejectEntrustInfo(ids, reason, EntrustReportStatusEnum.ALLOW, account);
return super.update(report, Condition.create().in("id", ids));
} }
@Override @Override
public boolean backFromReportAllowToCheck(Long[] ids, String reason, Account account) { public boolean backFromReportAllowToCheck(Long[] ids, String reason, Account account) {
RestAssert.fail(ArrayUtils.isEmpty(ids),"请选择要退回的报告"); RestAssert.fail(ArrayUtils.isEmpty(ids), "请选择要退回的报告");
EntrustReport report = new EntrustReport(); EntrustReport report = new EntrustReport();
report.setStatus(EntrustReportStatusEnum.CHECK); report.setStatus(EntrustReportStatusEnum.CHECK);
report.setProgress(EntrustReportStatusEnum.BACK_ALLOW); report.setProgress(EntrustReportStatusEnum.BACK_ALLOW);
return super.update(report, Condition.create().in("id",ids)); rejectEntrustInfo(ids, reason, EntrustReportStatusEnum.CHECK, account);
return super.update(report, Condition.create().in("id", ids));
} }
@Override @Override
public boolean backFromReportIssueToAllow(Long[] ids, String reason, Account account) { public boolean backFromReportIssueToAllow(Long[] ids, String reason, Account account) {
RestAssert.fail(ArrayUtils.isEmpty(ids),"请选择要退回的报告"); RestAssert.fail(ArrayUtils.isEmpty(ids), "请选择要退回的报告");
EntrustReport report = new EntrustReport(); EntrustReport report = new EntrustReport();
report.setStatus(EntrustReportStatusEnum.ALLOW); report.setStatus(EntrustReportStatusEnum.ALLOW);
report.setProgress(EntrustReportStatusEnum.BACK_ISSUE); report.setProgress(EntrustReportStatusEnum.BACK_ISSUE);
return super.update(report, Condition.create().in("id",ids)); rejectEntrustInfo(ids, reason, EntrustReportStatusEnum.ALLOW, account);
return super.update(report, Condition.create().in("id", ids));
} }
......
...@@ -16,6 +16,7 @@ import com.patzn.cloud.service.hmhj.enums.EntrustStatusEnum; ...@@ -16,6 +16,7 @@ import com.patzn.cloud.service.hmhj.enums.EntrustStatusEnum;
import com.patzn.cloud.service.hmhj.vo.EntrustSampleItemVO; import com.patzn.cloud.service.hmhj.vo.EntrustSampleItemVO;
import com.patzn.cloud.service.hmhj.vo.EntrustSampleVO; import com.patzn.cloud.service.hmhj.vo.EntrustSampleVO;
import com.patzn.cloud.service.lims.common.CompareUtils; import com.patzn.cloud.service.lims.common.CompareUtils;
import com.patzn.cloud.service.lims.hmhj.common.EntrustFlowUtils;
import com.patzn.cloud.service.lims.hmhj.common.HSSFWorkbookUtil; import com.patzn.cloud.service.lims.hmhj.common.HSSFWorkbookUtil;
import com.patzn.cloud.service.lims.hmhj.mapper.EntrustSampleItemMapper; import com.patzn.cloud.service.lims.hmhj.mapper.EntrustSampleItemMapper;
import com.patzn.cloud.service.lims.hmhj.original.*; import com.patzn.cloud.service.lims.hmhj.original.*;
...@@ -131,9 +132,30 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI ...@@ -131,9 +132,30 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
super.update(item, Condition.create().in("id", ids)); super.update(item, Condition.create().in("id", ids));
entrustSampleItemRecordService.record(ids, EntrustSampleItemStatusEnum.ALLOT.getDisplay(), EntrustSampleItemStatusEnum.TEST.getDisplay(), 0, "任务分配", account); entrustSampleItemRecordService.record(ids, EntrustSampleItemStatusEnum.ALLOT.getDisplay(), EntrustSampleItemStatusEnum.TEST.getDisplay(), 0, "任务分配", account);
// 判定是否委托下的检测项目都已分配
Entrust entrust = getEntrustByItemId(ids[0]);
if(null != entrust && isAllocatedByEntrustId(entrust.getId()) && StringUtils.isNotBlank(entrust.getStatusPath())){
entrustService.submitToNextNode(entrust,account);
}
return true; return true;
} }
private Entrust getEntrustByItemId(Long itemId){
if(null == itemId){
return null;
}
EntrustSampleItem entrustSampleItem = baseMapper.selectById(itemId);
if(null == entrustSampleItem){
return null;
}
EntrustSample entrustSample = entrustSampleService.getById(entrustSampleItem.getEntrustSampleId());
if(null == entrustSample || null == entrustSample.getEntrustId()){
return null;
}
return entrustService.getById(entrustSample.getEntrustId());
}
@Override @Override
public Page<EntrustSampleItemVO> pageByItemLeft(Page<EntrustSampleItemVO> page, EntrustSampleItemVO itemVO) { public Page<EntrustSampleItemVO> pageByItemLeft(Page<EntrustSampleItemVO> page, EntrustSampleItemVO itemVO) {
...@@ -214,13 +236,20 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI ...@@ -214,13 +236,20 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
// 提交为报告编制 // 提交为报告编制
EntrustSample sample = new EntrustSample().setStatus(EntrustSampleStatusEnum.REPORT_MAKE).setLid(account.getUserId()).setLtime(new Date()); EntrustSample sample = new EntrustSample().setStatus(EntrustSampleStatusEnum.REPORT_MAKE).setLid(account.getUserId()).setLtime(new Date());
entrustSampleService.update(sample, Condition.create().eq("entrust_id", entrustId)); entrustSampleService.update(sample, Condition.create().eq("entrust_id", entrustId));
// 提交到下一节点,可能是不更改状态
if(isConfigureStatusPath(entrust)){
entrustService.submitToNextNode(entrust,account);
return true;
}
// 样品操作日志 // 样品操作日志
// 暂时不提供 // 暂时不提供
// 修改委托信息 // 修改委托信息
// entrust.setLid(account.getUserId()).setLtime(new Date()).setProgress(EntrustStatusEnum.TEST).setStatus(EntrustStatusEnum.TEST); entrust.setLid(account.getUserId()).setLtime(new Date()).setProgress(EntrustStatusEnum.TEST).setStatus(EntrustStatusEnum.TEST);
// entrustService.updateById(entrust); entrustService.updateById(entrust);
// 添加委托日志 // 添加委托日志
entrustRecordService.record(new Long[]{entrustId}, EntrustStatusEnum.TEST.getDisplay(), EntrustStatusEnum.TEST.getDisplay(), 0, account, "提交至报告编制"); entrustRecordService.record(new Long[]{entrustId}, EntrustStatusEnum.TEST.getDisplay(), EntrustStatusEnum.TEST.getDisplay(), 0, account, "提交至报告编制");
return true; return true;
} }
...@@ -691,5 +720,15 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI ...@@ -691,5 +720,15 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
return baseMapper.selectVOListByIds(ids); return baseMapper.selectVOListByIds(ids);
} }
@Override
public boolean isAllocatedByEntrustId(Long entrustId){
if(null == entrustId || 0l== entrustId.longValue()){
return false;
}
return baseMapper.selectUnallocatedCountByEntrustId(entrustId) == 0;
}
private boolean isConfigureStatusPath(Entrust entrust){
return StringUtils.isBlank(entrust.getStatusPath()) ? false : true;
}
} }
package com.patzn.cloud.service.lims.hmhj.service.impl; package com.patzn.cloud.service.lims.hmhj.service.impl;
import com.baomidou.mybatisplus.mapper.Condition; import com.baomidou.mybatisplus.mapper.Condition;
import com.baomidou.mybatisplus.toolkit.ArrayUtils; import com.baomidou.mybatisplus.toolkit.ArrayUtils;
import com.baomidou.mybatisplus.toolkit.CollectionUtils; import com.baomidou.mybatisplus.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.toolkit.StringUtils;
import com.patzn.cloud.commons.api.RestAssert; 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.service.hmhj.dto.SamplePrepareDTO; import com.patzn.cloud.service.hmhj.dto.SamplePrepareDTO;
...@@ -9,6 +11,7 @@ import com.patzn.cloud.service.hmhj.entity.*; ...@@ -9,6 +11,7 @@ import com.patzn.cloud.service.hmhj.entity.*;
import com.patzn.cloud.service.hmhj.enums.*; import com.patzn.cloud.service.hmhj.enums.*;
import com.patzn.cloud.service.hmhj.vo.EntrustSampleBackupVO; import com.patzn.cloud.service.hmhj.vo.EntrustSampleBackupVO;
import com.patzn.cloud.service.hmhj.vo.EntrustSampleVO; import com.patzn.cloud.service.hmhj.vo.EntrustSampleVO;
import com.patzn.cloud.service.lims.hmhj.common.EntrustFlowUtils;
import com.patzn.cloud.service.lims.hmhj.mapper.EntrustSamplePrepareMapper; import com.patzn.cloud.service.lims.hmhj.mapper.EntrustSamplePrepareMapper;
import com.patzn.cloud.service.lims.hmhj.service.*; import com.patzn.cloud.service.lims.hmhj.service.*;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl; import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
...@@ -21,6 +24,7 @@ import com.baomidou.mybatisplus.plugins.Page; ...@@ -21,6 +24,7 @@ import com.baomidou.mybatisplus.plugins.Page;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -63,16 +67,16 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp ...@@ -63,16 +67,16 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public boolean makeEnd(SamplePrepareDTO dto, Account account) { public boolean makeEnd(SamplePrepareDTO dto, Account account) {
RestAssert.fail(null == dto,"请填写制备信息"); RestAssert.fail(null == dto, "请填写制备信息");
List<EntrustSampleVO> sampleVOList = dto.getSampleVOList(); List<EntrustSampleVO> sampleVOList = dto.getSampleVOList();
RestAssert.fail(CollectionUtils.isEmpty(sampleVOList),"请填写制备信息"); RestAssert.fail(CollectionUtils.isEmpty(sampleVOList), "请填写制备信息");
List<EntrustSamplePrepare> savePrepare = new ArrayList<>(); List<EntrustSamplePrepare> savePrepare = new ArrayList<>();
List<Long> sampleIdsList = new ArrayList<>(); List<Long> sampleIdsList = new ArrayList<>();
for (EntrustSampleVO vo: sampleVOList) { for (EntrustSampleVO vo : sampleVOList) {
EntrustSamplePrepare prepare = vo.convert(EntrustSamplePrepare.class); EntrustSamplePrepare prepare = vo.convert(EntrustSamplePrepare.class);
prepare.setEntrustSampleId(vo.getEntrustSampleId()); prepare.setEntrustSampleId(vo.getEntrustSampleId());
prepare.setStatus(EntrustSamplePrepareStatusEnum.RECEIVE); prepare.setStatus(EntrustSamplePrepareStatusEnum.RECEIVE);
...@@ -88,16 +92,15 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp ...@@ -88,16 +92,15 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp
Entrust entrust = entrustService.getById(sampleList.get(0).getEntrustId()); Entrust entrust = entrustService.getById(sampleList.get(0).getEntrustId());
List<EntrustSampleBackup> backupList = entrustSampleBackupService.list(Condition.create().in("sample_id", sampleIdsList));
List<EntrustSampleBackup> backupList = entrustSampleBackupService.list(Condition.create().in("sample_id",sampleIdsList)); List<Long> haveSampleIds = backupList.stream().map(b -> {
List<Long> haveSampleIds = backupList.stream().map(b->{
return b.getSampleId(); return b.getSampleId();
}).collect(Collectors.toList()); }).collect(Collectors.toList());
List<EntrustSampleBackup> saveBackupList = new ArrayList<>(); List<EntrustSampleBackup> saveBackupList = new ArrayList<>();
for (EntrustSample sample:sampleList) { for (EntrustSample sample : sampleList) {
if (haveSampleIds.contains(sample.getId())){ if (haveSampleIds.contains(sample.getId())) {
continue; continue;
} }
EntrustSampleBackup backup = new EntrustSampleBackup(); EntrustSampleBackup backup = new EntrustSampleBackup();
...@@ -112,30 +115,40 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp ...@@ -112,30 +115,40 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp
saveBackupList.add(backup); saveBackupList.add(backup);
// 添加样品管理数据 // 添加样品管理数据
EntrustSampleBackup manage = new EntrustSampleBackup(); EntrustSampleBackup manage = new EntrustSampleBackup();
BeanUtils.copyProperties(backup,manage); BeanUtils.copyProperties(backup, manage);
// 类型:样品 // 类型:样品
manage.setType("YP"); manage.setType("YP");
manage.setStatus(EntrustSampleBackupStatusEnum.MANAGE_ING); manage.setStatus(EntrustSampleBackupStatusEnum.MANAGE_ING);
manage.setProgress(EntrustSampleBackupStatusEnum.MANAGE_ING); manage.setProgress(EntrustSampleBackupStatusEnum.MANAGE_ING);
saveBackupList.add(manage); saveBackupList.add(manage);
} }
if (CollectionUtils.isNotEmpty(saveBackupList)){ if (CollectionUtils.isNotEmpty(saveBackupList)) {
entrustSampleBackupService.saveBatch(saveBackupList); entrustSampleBackupService.saveBatch(saveBackupList);
} }
EntrustSample sample = new EntrustSample(); EntrustSample sample = new EntrustSample();
sample.setStatus(EntrustSampleStatusEnum.RECEIVE); sample.setStatus(EntrustSampleStatusEnum.RECEIVE);
sample.setProgress(EntrustSampleStatusEnum.RECEIVE); sample.setProgress(EntrustSampleStatusEnum.RECEIVE);
entrustSampleService.update(sample,Condition.create().in("id",sampleIdsList)); entrustSampleService.update(sample, Condition.create().in("id", sampleIdsList));
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)){ if (CollectionUtils.isEmpty(checkMakeList) && StringUtils.isNotEmpty(entrust.getStatusPath())) {
Entrust updateEntrust = new Entrust(); // String flowStatus = entrust.getFlowStatus();
updateEntrust.setStatus(EntrustStatusEnum.TEST); // String statusPath = entrust.getStatusPath();
updateEntrust.setProgress(EntrustStatusEnum.TEST); // // 获取委托的状态
updateEntrust.setId(entrust.getId()); // EntrustStatusEnum nextStatus = EntrustFlowUtils.getNextStatus(flowStatus,statusPath);
entrustService.updateById(updateEntrust); // Entrust updateEntrust = new Entrust();
// updateEntrust.setStatus(EntrustStatusEnum.TEST);
// updateEntrust.setProgress(EntrustStatusEnum.TEST);
// if(null != nextStatus){
// updateEntrust.setStatus(nextStatus);
// updateEntrust.setProgress(nextStatus);
// }
// updateEntrust.setId(entrust.getId());
// entrustService.updateById(updateEntrust);
// 根据流程状态提交
entrustService.submitToNextNode(entrust, account);
} }
...@@ -145,17 +158,17 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp ...@@ -145,17 +158,17 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public boolean submitSampleReceive(Long[] ids, Account account) { public boolean submitSampleReceive(Long[] ids, Account account) {
RestAssert.fail(ArrayUtils.isEmpty(ids),"请选择检测样品"); RestAssert.fail(ArrayUtils.isEmpty(ids), "请选择检测样品");
List<EntrustSamplePrepare> prepareList = super.list(Condition.create().in("id",ids)); List<EntrustSamplePrepare> prepareList = super.list(Condition.create().in("id", ids));
RestAssert.fail(CollectionUtils.isEmpty(prepareList),"请选择检测样品"); RestAssert.fail(CollectionUtils.isEmpty(prepareList), "请选择检测样品");
List<Long> sampleIdsList = new ArrayList<>(); List<Long> sampleIdsList = new ArrayList<>();
for (EntrustSamplePrepare prepare:prepareList) { for (EntrustSamplePrepare prepare : prepareList) {
if (null != prepare.getEntrustSampleId() && null != prepare.getGroupId() ){ if (null != prepare.getEntrustSampleId() && null != prepare.getGroupId()) {
EntrustSampleItem item = new EntrustSampleItem(); EntrustSampleItem item = new EntrustSampleItem();
item.setStatus(EntrustSampleItemStatusEnum.ALLOT); item.setStatus(EntrustSampleItemStatusEnum.ALLOT);
item.setProgress(EntrustSampleItemStatusEnum.ALLOT); item.setProgress(EntrustSampleItemStatusEnum.ALLOT);
entrustSampleItemService.update(item,Condition.create().eq("entrust_sample_id",prepare.getEntrustSampleId()).eq("group_id",prepare.getGroupId())); entrustSampleItemService.update(item, Condition.create().eq("entrust_sample_id", prepare.getEntrustSampleId()).eq("group_id", prepare.getGroupId()));
} }
sampleIdsList.add(prepare.getEntrustSampleId()); sampleIdsList.add(prepare.getEntrustSampleId());
} }
...@@ -164,32 +177,72 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp ...@@ -164,32 +177,72 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp
prepare.setStatus(EntrustSamplePrepareStatusEnum.TEST); prepare.setStatus(EntrustSamplePrepareStatusEnum.TEST);
prepare.setStatus(EntrustSamplePrepareStatusEnum.TEST); prepare.setStatus(EntrustSamplePrepareStatusEnum.TEST);
super.update(prepare,Condition.create().in("id",ids)); super.update(prepare, Condition.create().in("id", ids));
List<EntrustSamplePrepareStatusEnum> statusNotOkList = new ArrayList<>(); List<EntrustSamplePrepareStatusEnum> statusNotOkList = new ArrayList<>();
statusNotOkList.add(EntrustSamplePrepareStatusEnum.RECEIVE); statusNotOkList.add(EntrustSamplePrepareStatusEnum.RECEIVE);
statusNotOkList.add(EntrustSamplePrepareStatusEnum.RECEIVE_OK); statusNotOkList.add(EntrustSamplePrepareStatusEnum.RECEIVE_OK);
List<EntrustSamplePrepare> preparesNotOkList =super.list(Condition.create().in("id",sampleIdsList).in("status",statusNotOkList)); List<EntrustSamplePrepare> preparesNotOkList = super.list(Condition.create().in("id", sampleIdsList).in("status", statusNotOkList));
List<Long> notOkSampleIds = preparesNotOkList.stream().map(i->{ List<Long> notOkSampleIds = preparesNotOkList.stream().map(i -> {
return i.getEntrustSampleId(); return i.getEntrustSampleId();
}).collect(Collectors.toList()); }).collect(Collectors.toList());
List<Long> changeList = new ArrayList<>(); List<Long> changeList = new ArrayList<>();
for (Long id:sampleIdsList) { for (Long id : sampleIdsList) {
if (!notOkSampleIds.contains(id)){ if (!notOkSampleIds.contains(id)) {
changeList.add(id); changeList.add(id);
} }
} }
if (CollectionUtils.isNotEmpty(changeList)){ if (CollectionUtils.isNotEmpty(changeList)) {
EntrustSample sample = new EntrustSample(); EntrustSample sample = new EntrustSample();
sample.setStatus(EntrustSampleStatusEnum.TEST); sample.setStatus(EntrustSampleStatusEnum.TEST);
sample.setProgress(EntrustSampleStatusEnum.TEST); sample.setProgress(EntrustSampleStatusEnum.TEST);
entrustSampleService.update(sample,Condition.create().in("id",changeList)); entrustSampleService.update(sample, Condition.create().in("id", changeList));
}
if (CollectionUtils.isEmpty(notOkSampleIds)) {
EntrustSample entrustSample = entrustSampleService.getById(prepareList.get(0).getEntrustSampleId());
Entrust entrust = entrustService.getById(entrustSample.getEntrustId());
if (StringUtils.isNotEmpty(entrust.getStatusPath())) {
entrustService.submitToNextNode(entrust, account);
}
} }
return true; return true;
} }
@Override
public boolean addOrUpdateToSetStatus(Long[] sampleIds, EntrustSamplePrepareStatusEnum statusEnum) {
List<EntrustSample> sampleList = entrustSampleService.getBatchIds(Arrays.asList(sampleIds));
if (CollectionUtils.isEmpty(sampleList)) {
return false;
}
// 默认为:待接收
statusEnum = null == statusEnum ? EntrustSamplePrepareStatusEnum.RECEIVE : statusEnum;
List<EntrustSamplePrepare> prepareList = list(Condition.create().in("entrust_sample_id", sampleIds).eq("deleted", 0));
// 判定是否为空,为空新建数据并设置状态保存,不为空更改状态更新
if (CollectionUtils.isEmpty(prepareList)) {
EntrustSamplePrepareStatusEnum finalStatusEnum = statusEnum;
prepareList = sampleList.stream().map(t -> {
EntrustSamplePrepare prepare = new EntrustSamplePrepare();
prepare.setEntrustSampleId(t.getId()).setStatus(finalStatusEnum)
//.setGroupId(1401433878527459329l).setGroupName("化验室")
.setProgress(finalStatusEnum)
.setCompanyId(t.getCompanyId()).setPrintNum(1).setMakeType("送检样");
return prepare;
}).collect(Collectors.toList());
saveBatch(prepareList);
} else {
EntrustSamplePrepare prepare = new EntrustSamplePrepare();
prepare.setStatus(statusEnum).setStatus(statusEnum);
update(prepare,Condition.create().in("entrust_sample_id",sampleIds).eq("deleted", 0));
}
return false;
}
} }
...@@ -14,7 +14,7 @@ import com.patzn.cloud.service.hmhj.dto.QueryDTO; ...@@ -14,7 +14,7 @@ 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;
import com.patzn.cloud.service.hmhj.entity.*; import com.patzn.cloud.service.hmhj.entity.*;
import com.patzn.cloud.service.hmhj.enums.ContractSampleStatusEnum; import com.patzn.cloud.service.hmhj.enums.*;
import com.patzn.cloud.service.hmhj.vo.*; import com.patzn.cloud.service.hmhj.vo.*;
import com.patzn.cloud.service.lims.common.StringHandleUtils; import com.patzn.cloud.service.lims.common.StringHandleUtils;
import com.patzn.cloud.service.lims.hmhj.common.HSSFWorkbookUtil; import com.patzn.cloud.service.lims.hmhj.common.HSSFWorkbookUtil;
...@@ -92,6 +92,8 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe ...@@ -92,6 +92,8 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
@Autowired @Autowired
private IContractSampleService contractSampleService; private IContractSampleService contractSampleService;
@Autowired @Autowired
private IEntrustSamplePrepareService entrustSamplePrepareService;
@Autowired
private IContractSampleRecordService contractSampleRecordService; private IContractSampleRecordService contractSampleRecordService;
@Override @Override
...@@ -179,8 +181,12 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe ...@@ -179,8 +181,12 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
return super.count(Condition.create().eq("entrust_id", id)); return super.count(Condition.create().eq("entrust_id", id));
} }
private void handleTotalData(AlTasteStatsVO vo, AlTasteStatsVO prevVO, Map<String, List<AlTasteStatsVO>> resultMap, boolean isLast) { private Long getValSum(Long val1, Long val2) {
return (null == val1 ? 0l : val1) + (null == val2 ? 0l : val2);
}
private Double getValSum(Double val1, Double val2) {
return (null == val1 ? 0.0000 : val1) + (null == val2 ? 0.0000 : val2);
} }
private AlTasteStatsVO getTotalData(List<AlTasteStatsVO> voList) { private AlTasteStatsVO getTotalData(List<AlTasteStatsVO> voList) {
...@@ -188,23 +194,23 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe ...@@ -188,23 +194,23 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
bpStatsVO.setPlant("合计"); bpStatsVO.setPlant("合计");
bpStatsVO.setBranch(voList.get(0).getBranch()); bpStatsVO.setBranch(voList.get(0).getBranch());
for (AlTasteStatsVO t : voList) { for (AlTasteStatsVO t : voList) {
bpStatsVO.setTotal((null == bpStatsVO.getTotal() ? 0l : bpStatsVO.getTotal()) + t.getTotal()); bpStatsVO.setTotal(getValSum(bpStatsVO.getTotal(), t.getTotal()));
bpStatsVO.setSlotsNum((null == bpStatsVO.getSlotsNum() ? 0l : bpStatsVO.getSlotsNum()) + t.getSlotsNum()); bpStatsVO.setSlotsNum(getValSum(bpStatsVO.getSlotsNum(), t.getSlotsNum()));
bpStatsVO.setAl85Num((null == bpStatsVO.getAl85Num() ? 0l : bpStatsVO.getAl85Num()) + t.getAl85Num()); bpStatsVO.setAl85Num(getValSum(bpStatsVO.getAl85Num(), t.getAl85Num()));
bpStatsVO.setAl85Per((null == bpStatsVO.getAl85Per() ? 0.0000 : bpStatsVO.getAl85Per()) + t.getAl85Per()); bpStatsVO.setAl85Per(getValSum(bpStatsVO.getAl85Per(), t.getAl85Per()));
bpStatsVO.setAl85SlotsNum((null == bpStatsVO.getAl85SlotsNum() ? 0l : bpStatsVO.getAl85SlotsNum()) + t.getAl85SlotsNum()); bpStatsVO.setAl85SlotsNum(getValSum(bpStatsVO.getAl85SlotsNum(), t.getAl85SlotsNum()));
bpStatsVO.setAl70Num((null == bpStatsVO.getAl70Num() ? 0l : bpStatsVO.getAl70Num()) + t.getAl70Num()); bpStatsVO.setAl70Num(getValSum(bpStatsVO.getAl70Num(), t.getAl70Num()));
bpStatsVO.setAl70Per((null == bpStatsVO.getAl70Per() ? 0.0000 : bpStatsVO.getAl70Per()) + t.getAl70Per()); bpStatsVO.setAl70Per(getValSum(bpStatsVO.getAl70Per(), t.getAl70Per()));
bpStatsVO.setAl70SlotsNum((null == bpStatsVO.getAl70SlotsNum() ? 0l : bpStatsVO.getAl70SlotsNum()) + t.getAl70SlotsNum()); bpStatsVO.setAl70SlotsNum(getValSum(bpStatsVO.getAl70SlotsNum(), t.getAl70SlotsNum()));
bpStatsVO.setFe10Num((null == bpStatsVO.getFe10Num() ? 0l : bpStatsVO.getFe10Num()) + t.getFe10Num()); bpStatsVO.setFe10Num(getValSum(bpStatsVO.getFe10Num(), t.getFe10Num()));
bpStatsVO.setFe10Per((null == bpStatsVO.getFe10Per() ? 0.0000 : bpStatsVO.getFe10Per()) + t.getFe10Per()); bpStatsVO.setFe10Per(getValSum(bpStatsVO.getFe10Per(), t.getFe10Per()));
bpStatsVO.setFe10SlotsNum((null == bpStatsVO.getFe10SlotsNum() ? 0l : bpStatsVO.getFe10SlotsNum()) + t.getFe10SlotsNum()); bpStatsVO.setFe10SlotsNum(getValSum(bpStatsVO.getFe10SlotsNum(), t.getFe10SlotsNum()));
bpStatsVO.setFe08Num((null == bpStatsVO.getFe08Num() ? 0l : bpStatsVO.getFe08Num()) + t.getFe08Num()); bpStatsVO.setFe08Num(getValSum(bpStatsVO.getFe08Num(), t.getFe08Num()));
bpStatsVO.setFe08Per((null == bpStatsVO.getFe08Per() ? 0.0000 : bpStatsVO.getFe08Per()) + t.getFe08Per()); bpStatsVO.setFe08Per(getValSum(bpStatsVO.getFe08Per(), t.getFe08Per()));
bpStatsVO.setFe08SlotsNum((null == bpStatsVO.getFe08SlotsNum() ? 0l : bpStatsVO.getFe08SlotsNum()) + t.getFe08SlotsNum()); bpStatsVO.setFe08SlotsNum(getValSum(bpStatsVO.getFe08SlotsNum(), t.getFe08SlotsNum()));
} }
return bpStatsVO; return bpStatsVO;
} }
...@@ -274,11 +280,11 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe ...@@ -274,11 +280,11 @@ 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(), per = new PMakeFeVO(), ltNum = new PMakeFeVO(), gtNum = new 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()).setSVal(vo.getSLtNum()); ltNum.setCVal(vo.getCLtNum() + "").setMnVal(vo.getMnLtNum() + "").setSiVal(vo.getSiLtNum() + "").setPVal(vo.getPLtNum() + "");
inNum.setCVal(vo.getCInNum()).setMnVal(vo.getMnInNum()).setSiVal(vo.getSiInNum()).setPVal(vo.getPInNum()).setSVal(vo.getSInNum()); inNum.setCVal(vo.getCInNum() + "").setMnVal(vo.getMnInNum() + "").setSiVal(vo.getSiInNum() + "").setPVal(vo.getPInNum() + "").setSVal(vo.getSInNum() + "");
gtNum.setCVal(vo.getCGtNum()).setMnVal(vo.getMnGtNum()).setSiVal(vo.getSiGtNum()).setPVal(vo.getPGtNum()).setSVal(vo.getSGtNum()); gtNum.setCVal(vo.getCGtNum() + "").setMnVal(vo.getMnGtNum() + "").setSiVal(vo.getSiGtNum() + "").setPVal(vo.getPGtNum() + "").setSVal(vo.getSGtNum() + "");
result.put(vo.getPeriod(), Lists.newArrayList(val, per, ltNum, inNum, gtNum)); result.put(vo.getPeriod(), Lists.newArrayList(val, per, ltNum, inNum, gtNum));
} }
...@@ -287,6 +293,138 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe ...@@ -287,6 +293,138 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
} }
@Override @Override
public boolean updateSampleNextFlowInfo(Entrust entrust, EntrustFlowEnum nextFlowStatus, Account account) {
List<EntrustSample> sampleList = list(Condition.create().eq("entrust_id", entrust.getId()).eq("deleted", 0));
RestAssert.fail(CollectionUtils.isEmpty(sampleList), String.format("编号为【%s】委托下样品为空", entrust.getCode()));
Long[] sampleIds = sampleList.stream().map(t -> t.getId()).toArray(size -> new Long[size]);
//
EntrustSample updateSample = new EntrustSample();
EntrustSampleItem updateItem = new EntrustSampleItem();
EntrustSampleStatusEnum sampleStatus = null;
EntrustSampleItemStatusEnum itemStatus = null;
if (nextFlowStatus == EntrustFlowEnum.CHECK || nextFlowStatus == EntrustFlowEnum.MAKE) {
sampleStatus = EntrustSampleStatusEnum.DRAFT;
itemStatus = EntrustSampleItemStatusEnum.DRAFT;
} else if (nextFlowStatus == EntrustFlowEnum.RECEIVE) {
sampleStatus = EntrustSampleStatusEnum.RECEIVE;
itemStatus = EntrustSampleItemStatusEnum.DRAFT;
entrustSamplePrepareService.addOrUpdateToSetStatus(sampleIds,EntrustSamplePrepareStatusEnum.RECEIVE);
} else if (nextFlowStatus == EntrustFlowEnum.ALLOT) {
sampleStatus = EntrustSampleStatusEnum.TEST;
itemStatus = EntrustSampleItemStatusEnum.ALLOT;
entrustSamplePrepareService.addOrUpdateToSetStatus(sampleIds,EntrustSamplePrepareStatusEnum.RECEIVE_OK);
} else if (nextFlowStatus == EntrustFlowEnum.TEST) {
sampleStatus = EntrustSampleStatusEnum.TEST;
itemStatus = EntrustSampleItemStatusEnum.TEST;
entrustSamplePrepareService.addOrUpdateToSetStatus(sampleIds,EntrustSamplePrepareStatusEnum.TEST);
} else if (nextFlowStatus == EntrustFlowEnum.REPORT_MAKE) {
sampleStatus = EntrustSampleStatusEnum.REPORT_MAKE;
itemStatus = EntrustSampleItemStatusEnum.END;
} else if (nextFlowStatus == EntrustFlowEnum.REPORT_CHECK) {
sampleStatus = EntrustSampleStatusEnum.REPORT_CHECK;
itemStatus = EntrustSampleItemStatusEnum.END;
} else if (nextFlowStatus == EntrustFlowEnum.REPORT_ALLOW) {
sampleStatus = EntrustSampleStatusEnum.REPORT_ALLOW;
itemStatus = EntrustSampleItemStatusEnum.END;
} else if (nextFlowStatus == EntrustFlowEnum.REPORT_ISSUE) {
sampleStatus = EntrustSampleStatusEnum.REPORT_ISSUE;
itemStatus = EntrustSampleItemStatusEnum.END;
} else if (nextFlowStatus == EntrustFlowEnum.REPORT_SEND) {
sampleStatus = EntrustSampleStatusEnum.REPORT_SEND;
itemStatus = EntrustSampleItemStatusEnum.END;
} else if (nextFlowStatus == EntrustFlowEnum.QUALITY_JUDGE) {
sampleStatus = EntrustSampleStatusEnum.END;
itemStatus = EntrustSampleItemStatusEnum.END;
} else if (nextFlowStatus == EntrustFlowEnum.QUALITY_CHECK) {
sampleStatus = EntrustSampleStatusEnum.END;
itemStatus = EntrustSampleItemStatusEnum.END;
}
if (null != sampleStatus) {
updateSample.setStatus(sampleStatus);
update(updateSample, Condition.create().eq("entrust_id", entrust.getId()));
}
if (null != itemStatus) {
updateItem.setStatus(itemStatus);
entrustSampleItemService.update(updateItem, Condition.create().in("entrust_sample_id", sampleIds));
}
return false;
}
@Override
public boolean updateSamplePrevFlowInfo(Entrust entrust, EntrustFlowEnum prevFlowStatus, Account account) {
EntrustStatusEnum statusEnum = entrust.getStatus();
List<EntrustSample> sampleList = list(Condition.create().eq("entrust_id", entrust.getId()).eq("deleted", 0));
RestAssert.fail(CollectionUtils.isEmpty(sampleList), String.format("编号为【%s】委托下样品为空", entrust.getCode()));
Long[] sampleIds = sampleList.stream().map(t -> t.getId()).toArray(size -> new Long[size]);
//
EntrustSample updateSample = new EntrustSample();
EntrustSampleItem updateItem = new EntrustSampleItem();
EntrustSampleStatusEnum sampleStatus = null;
EntrustSampleItemStatusEnum itemStatus = null;
// 驳回样品状态
// DRAFT(1, "委托登记"),
// CHECK(3, "委托评审"),
// MAKE(4, "样品制备"),
// RECEIVE(5, "样品接收"),
// ALLOT(6, "任务分配"),
// TEST(7, "项目检测"),
// REPORT_MAKE(8, "报告编制"),
// REPORT_CHECK(9, "报告审核"),
// REPORT_ALLOW(10, "报告批准"),
// REPORT_ISSUE(11, "报告签发"),
// REPORT_SEND(12, "报告发放"),
// QUALITY_JUDGE(14, "质量判定"),
// 驳回检测项目状态
// DRAFT(0, "草稿"),
// ALLOT(10, "任务分配"),
// TEST(20, "检测中"),
// UPDATE_APPLY(15, "偏离申请"),
// CHECK(30, "数据复核"),
// AUDIT(40, "数据审核"),
// END(50, "检测完成"),
// BACK_CHECK(-30, "数据复核退回"),
// BACK_AUDIT(-40, "数据审核退回"),
// UPDATE_APPLY_BACK(-15, "偏离申请退回"),
// UPDATE_APPLY_PASS(-16, "偏离申请通过");
if (prevFlowStatus == EntrustFlowEnum.DRAFT || prevFlowStatus == EntrustFlowEnum.CHECK || prevFlowStatus == EntrustFlowEnum.MAKE) {
sampleStatus = EntrustSampleStatusEnum.DRAFT;
itemStatus = EntrustSampleItemStatusEnum.DRAFT;
} else if (prevFlowStatus == EntrustFlowEnum.RECEIVE) {
sampleStatus = EntrustSampleStatusEnum.RECEIVE;
itemStatus = EntrustSampleItemStatusEnum.DRAFT;
} else if (prevFlowStatus == EntrustFlowEnum.ALLOT || prevFlowStatus == EntrustFlowEnum.TEST) {
sampleStatus = EntrustSampleStatusEnum.TEST;
itemStatus = EntrustSampleItemStatusEnum.TEST;
} else if (prevFlowStatus == EntrustFlowEnum.REPORT_MAKE) {
sampleStatus = EntrustSampleStatusEnum.REPORT_MAKE;
itemStatus = EntrustSampleItemStatusEnum.END;
} else if (prevFlowStatus == EntrustFlowEnum.REPORT_CHECK) {
sampleStatus = EntrustSampleStatusEnum.REPORT_CHECK;
} else if (prevFlowStatus == EntrustFlowEnum.REPORT_ALLOW) {
sampleStatus = EntrustSampleStatusEnum.REPORT_ALLOW;
} else if (prevFlowStatus == EntrustFlowEnum.REPORT_ISSUE) {
sampleStatus = EntrustSampleStatusEnum.REPORT_ISSUE;
} else if (prevFlowStatus == EntrustFlowEnum.REPORT_SEND) {
sampleStatus = EntrustSampleStatusEnum.REPORT_SEND;
}
if (null != sampleStatus) {
updateSample.setStatus(sampleStatus);
update(updateSample, Condition.create().eq("entrust_id", entrust.getId()));
}
if (null != itemStatus) {
updateItem.setStatus(itemStatus);
entrustSampleItemService.update(updateItem, Condition.create().in("entrust_sample_id", sampleIds));
}
return false;
}
@Override
public boolean removeByIds(List<Long> ids) { public boolean removeByIds(List<Long> ids) {
return baseMapper.deleteBatchIds(ids) > 0; return baseMapper.deleteBatchIds(ids) > 0;
} }
......
...@@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.toolkit.IdWorker; ...@@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.toolkit.IdWorker;
import com.patzn.cloud.commons.api.RestAssert; 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.commons.toolkit.DateUtils;
import com.patzn.cloud.commons.toolkit.StringHandleUtils; import com.patzn.cloud.commons.toolkit.StringHandleUtils;
import com.patzn.cloud.feign.base.client.SysOrgClient; import com.patzn.cloud.feign.base.client.SysOrgClient;
import com.patzn.cloud.feign.lims.hmhj.client.LmsChemicalCategoryClient; import com.patzn.cloud.feign.lims.hmhj.client.LmsChemicalCategoryClient;
...@@ -19,13 +18,13 @@ import com.patzn.cloud.service.hmhj.vo.EntrustSampleVO; ...@@ -19,13 +18,13 @@ import com.patzn.cloud.service.hmhj.vo.EntrustSampleVO;
import com.patzn.cloud.service.hmhj.vo.EntrustVO; import com.patzn.cloud.service.hmhj.vo.EntrustVO;
import com.patzn.cloud.service.lims.chemical.entity.LmsChemicalCategory; import com.patzn.cloud.service.lims.chemical.entity.LmsChemicalCategory;
import com.patzn.cloud.service.lims.common.service.ILmsMsgService; import com.patzn.cloud.service.lims.common.service.ILmsMsgService;
import com.patzn.cloud.service.lims.hmhj.common.EntrustFlowUtils;
import com.patzn.cloud.service.lims.hmhj.mapper.EntrustMapper; import com.patzn.cloud.service.lims.hmhj.mapper.EntrustMapper;
import com.patzn.cloud.service.lims.hmhj.service.*; import com.patzn.cloud.service.lims.hmhj.service.*;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl; import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.jfree.data.DataUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.EntityWrapper;
...@@ -83,6 +82,7 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust> ...@@ -83,6 +82,7 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
public Page<Entrust> page(Page<Entrust> page, Entrust entrust) { public Page<Entrust> page(Page<Entrust> page, Entrust entrust) {
Wrapper wrapper = new EntityWrapper<>(entrust); Wrapper wrapper = new EntityWrapper<>(entrust);
wrapper.orderBy("entrust_time", false); wrapper.orderBy("entrust_time", false);
wrapper.orderBy("code", false);
return this.page(page, wrapper); return this.page(page, wrapper);
} }
...@@ -126,10 +126,10 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust> ...@@ -126,10 +126,10 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
case "电解质": case "电解质":
codeType = CodeTypeEnum.SAMPLE_DJZ_CODE; codeType = CodeTypeEnum.SAMPLE_DJZ_CODE;
break; break;
case "外委检测物": case "外委检测物":
codeType = CodeTypeEnum.SAMPLE_WWJC_CODE; codeType = CodeTypeEnum.SAMPLE_WWJC_CODE;
break; break;
case "三级编码物": case "三级编码物":
codeType = CodeTypeEnum.SAMPLE_YFL_CODE; codeType = CodeTypeEnum.SAMPLE_YFL_CODE;
break; break;
default: default:
...@@ -137,8 +137,12 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust> ...@@ -137,8 +137,12 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
break; break;
} }
String sampleCode = codeRuleService.getKey((Integer) codeType.getValue(), codeType.getName(), sample); String sampleCode = null;
String replaceStr = "XX", inspectNo = "", secondCode = "", thirdCode = ""; String replaceStr = "XX", inspectNo = "", secondCode = "", thirdCode = "";
if ("已有编码物资".equals(parentCategory)) {
sampleCode = sample.getCode();
} else {
sampleCode = codeRuleService.getKey((Integer) codeType.getValue(), codeType.getName(), sample);
// 若为外委检测和三级编码,则查询质检编号 // 若为外委检测和三级编码,则查询质检编号
if (CodeTypeEnum.SAMPLE_WWJC_CODE == codeType || CodeTypeEnum.SAMPLE_YFL_CODE == codeType) { if (CodeTypeEnum.SAMPLE_WWJC_CODE == codeType || CodeTypeEnum.SAMPLE_YFL_CODE == codeType) {
List<UserInspectionCode> userInspectionCodeList = userInspectionCodeService.list(Condition.create().eq("user_id", account.getUserId()).eq("type", "ZJ").eq("deleted", 0)); List<UserInspectionCode> userInspectionCodeList = userInspectionCodeService.list(Condition.create().eq("user_id", account.getUserId()).eq("type", "ZJ").eq("deleted", 0));
...@@ -163,6 +167,7 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust> ...@@ -163,6 +167,7 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
thirdCode = sampleCode.replace("A", "C").replace(replaceStr, "HY"); thirdCode = sampleCode.replace("A", "C").replace(replaceStr, "HY");
sampleCode = sampleCode.replace(replaceStr, inspectNo); sampleCode = sampleCode.replace(replaceStr, inspectNo);
} }
}
if (StringUtils.isNotBlank(sampleCode)) { if (StringUtils.isNotBlank(sampleCode)) {
sample.setCode(sampleCode); sample.setCode(sampleCode);
...@@ -191,6 +196,12 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust> ...@@ -191,6 +196,12 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
if (null == entrust.getEntrustTime()) { if (null == entrust.getEntrustTime()) {
entrust.setEntrustTime(new Date()); entrust.setEntrustTime(new Date());
} }
// 配置初始状态
String flowStatus = EntrustFlowEnum.DRAFT.getName();
if (StringUtils.isNotBlank(entrust.getStatusPath())) {
flowStatus = entrust.getStatusPath().split("->")[0];
}
entrust.setFlowStatus(flowStatus);
if (saveEntrust(entrust)) { if (saveEntrust(entrust)) {
if (CollectionUtils.isNotEmpty(sampleDTOList)) { if (CollectionUtils.isNotEmpty(sampleDTOList)) {
...@@ -269,13 +280,23 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust> ...@@ -269,13 +280,23 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
RestAssert.fail(ArrayUtils.isEmpty(ids), "请选择要驳回的委托"); RestAssert.fail(ArrayUtils.isEmpty(ids), "请选择要驳回的委托");
int count = super.count(Condition.create().in("id", ids).eq("status", EntrustStatusEnum.CHECK)); int count = super.count(Condition.create().in("id", ids).eq("status", EntrustStatusEnum.CHECK));
RestAssert.fail(ids.length != count, "请选择退回委托审核的委托"); RestAssert.fail(ids.length != count, "请选择退回委托审核的委托");
Entrust entrust = new Entrust(); List<Entrust> entrustList = getBatchIds(Arrays.asList(ids));
entrust.setStatus(EntrustStatusEnum.DRAFT); boolean hasSendMessage = false;
entrust.setProgress(EntrustStatusEnum.BACK_CHECK); for (Entrust e : entrustList) {
if (update(entrust, Condition.create().in("id", ids))) { if (StringUtils.isNotBlank(e.getStatusPath())) {
entrustRecordService.record(ids, EntrustStatusEnum.CHECK.getDisplay(), EntrustStatusEnum.DRAFT.getDisplay(), 1, account, reason); rejectToPrevNode(e, reason, account);
hasSendMessage = true;
} else {
e.setStatus(EntrustStatusEnum.DRAFT);
e.setProgress(EntrustStatusEnum.BACK_CHECK);
updateById(e);
entrustRecordService.record(new Long[]{e.getId()}, EntrustStatusEnum.CHECK.getDisplay(), EntrustStatusEnum.DRAFT.getDisplay(), 1, account, reason);
}
}
if (!hasSendMessage) {
lmsMsgService.sendMsg("/hmhj/entrust_manage/entrust_register", "有委托从委托审核驳回,请及时查看退回原因并处理", "新的委托审核退回任务!", account, null); lmsMsgService.sendMsg("/hmhj/entrust_manage/entrust_register", "有委托从委托审核驳回,请及时查看退回原因并处理", "新的委托审核退回任务!", account, null);
} }
return true; return true;
} }
...@@ -284,29 +305,50 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust> ...@@ -284,29 +305,50 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
RestAssert.fail(ArrayUtils.isEmpty(ids), "请选择要提交到制备的委托"); RestAssert.fail(ArrayUtils.isEmpty(ids), "请选择要提交到制备的委托");
int count = super.count(Condition.create().in("id", ids).eq("status", EntrustStatusEnum.CHECK)); int count = super.count(Condition.create().in("id", ids).eq("status", EntrustStatusEnum.CHECK));
RestAssert.fail(ids.length != count, "请选择委托审核的委托"); RestAssert.fail(ids.length != count, "请选择委托审核的委托");
Entrust entrust = new Entrust(); List<Entrust> entrustList = getBatchIds(Arrays.asList(ids));
entrust.setStatus(EntrustStatusEnum.MAKE); boolean hasSendMessage = false;
entrust.setProgress(EntrustStatusEnum.MAKE); for (Entrust e : entrustList) {
if (update(entrust, Condition.create().in("id", ids))) { // 若存在路径,根据状态路径处理数据
entrustRecordService.record(ids, EntrustStatusEnum.CHECK.getDisplay(), EntrustStatusEnum.MAKE.getDisplay(), 0, account, "提交至样品待制备"); if (StringUtils.isNotBlank(e.getStatusPath())) {
submitToNextNode(e, account);
hasSendMessage = true;
} else {
e.setStatus(EntrustStatusEnum.MAKE);
e.setProgress(EntrustStatusEnum.MAKE);
updateById(e);
entrustRecordService.record(new Long[]{e.getId()}, EntrustStatusEnum.CHECK.getDisplay(), EntrustStatusEnum.MAKE.getDisplay(), 0, account, "提交至样品待制备");
}
}
if (!hasSendMessage) {
lmsMsgService.sendMsg("/hmhj/sample_manage/sample_prepare", "有委托审核通过,请及时进行样品的制备", "新的样品制备任务!", account, null); lmsMsgService.sendMsg("/hmhj/sample_manage/sample_prepare", "有委托审核通过,请及时进行样品的制备", "新的样品制备任务!", account, null);
} }
return true; return true;
} }
@Override @Override
public boolean registerSubmitToMake(Long[] ids, Account account) { public boolean registerSubmitToMake(Long[] ids, Account account) {
RestAssert.fail(ArrayUtils.isEmpty(ids), "请选择要提交到制备的委托"); RestAssert.fail(ArrayUtils.isEmpty(ids), "请选择要提交到制备的委托");
int count = super.count(Condition.create().in("id", ids).eq("status", EntrustStatusEnum.DRAFT)); int count = super.count(Condition.create().in("id", ids).eq("status", EntrustStatusEnum.DRAFT));
RestAssert.fail(ids.length != count, "请选择委托登记的委托"); RestAssert.fail(ids.length != count, "请选择委托登记的委托");
Entrust entrust = new Entrust(); List<Entrust> entrustList = getBatchIds(Arrays.asList(ids));
entrust.setStatus(EntrustStatusEnum.MAKE); boolean hasSendMessage = false;
entrust.setProgress(EntrustStatusEnum.MAKE); for (Entrust e : entrustList) {
if (update(entrust, Condition.create().in("id", ids))) { // 若存在路径,根据状态路径处理数据
entrustRecordService.record(ids, EntrustStatusEnum.DRAFT.getDisplay(), EntrustStatusEnum.MAKE.getDisplay(), 0, account, "委托登记提交至样品待制备"); if (StringUtils.isNotBlank(e.getStatusPath())) {
submitToNextNode(e, account);
hasSendMessage = true;
} else {
e.setStatus(EntrustStatusEnum.MAKE);
e.setProgress(EntrustStatusEnum.MAKE);
updateById(e);
entrustRecordService.record(new Long[]{e.getId()}, EntrustStatusEnum.DRAFT.getDisplay(), EntrustStatusEnum.MAKE.getDisplay(), 0, account, "委托登记提交至样品待制备");
}
}
if (!hasSendMessage) {
lmsMsgService.sendMsg("/hmhj/sample_manage/sample_prepare", "有委托登记提交至样品待制备,请及时进行样品的制备", "新的样品制备任务!", account, null); lmsMsgService.sendMsg("/hmhj/sample_manage/sample_prepare", "有委托登记提交至样品待制备,请及时进行样品的制备", "新的样品制备任务!", account, null);
} }
return true; return true;
} }
...@@ -526,6 +568,14 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust> ...@@ -526,6 +568,14 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
return page.setRecords(baseMapper.selectVOList(page, entrust)); return page.setRecords(baseMapper.selectVOList(page, entrust));
} }
@Override
public Page<EntrustVO> pageEntrustByItemData(Page<EntrustVO> page, EntrustVO entrust) {
if (null == entrust.getItemStatus()) {
return page;
}
return page.setRecords(baseMapper.selectVOListByItem(page, entrust));
}
@Override @Override
public Page<EntrustVO> pageEntrustByItemHis(Page<EntrustVO> page, EntrustVO entrust) { public Page<EntrustVO> pageEntrustByItemHis(Page<EntrustVO> page, EntrustVO entrust) {
...@@ -559,6 +609,14 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust> ...@@ -559,6 +609,14 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
return page.setRecords(baseMapper.selectVOList(page, entrust)); return page.setRecords(baseMapper.selectVOList(page, entrust));
} }
@Override
public Page<EntrustVO> pageEntrustByItemDataHis(Page<EntrustVO> page, EntrustVO entrust) {
if (CollectionUtils.isEmpty(entrust.getItemStatusEnumList())) {
return page;
}
return page.setRecords(baseMapper.selectVOListByItem(page, entrust));
}
@Override @Override
public Page<EntrustVO> pageEntrustBySample(Page<EntrustVO> page, EntrustVO entrust) { public Page<EntrustVO> pageEntrustBySample(Page<EntrustVO> page, EntrustVO entrust) {
...@@ -804,114 +862,109 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust> ...@@ -804,114 +862,109 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
return page.setRecords(voList); return page.setRecords(voList);
} }
@Transactional(rollbackFor = Exception.class)
@Override @Override
public boolean submitToNextNode(Long[] ids, Account account) { public boolean submitToNextNode(Long[] ids, Account account) {
RestAssert.fail(ArrayUtils.isEmpty(ids), "请选择要提交的委托"); RestAssert.fail(ArrayUtils.isEmpty(ids), "请选择要提交的委托");
List<Entrust> entrustList = super.list(Condition.create().in("id", ids).eq("deleted", 0)); List<Entrust> entrustList = super.list(Condition.create().in("id", ids).eq("deleted", 0));
RestAssert.fail(CollectionUtils.isEmpty(entrustList), "请选择要提交的委托"); RestAssert.fail(CollectionUtils.isEmpty(entrustList), "请选择要提交的委托");
for (Entrust e : entrustList) { for (Entrust e : entrustList) {
String statusPath = e.getStatusPath(); submitToNextNode(e, account);
RestAssert.fail(StringUtils.isBlank(statusPath), String.format("编号为【%s】的委托,未配置状态信息!", e.getCode()));
String[] statusArr = statusPath.split("->");
EntrustStatusEnum status = e.getStatus();
int statusCode = status.getIntValue();
// 获取状态所处于状态路径的位置
int index = ArrayUtils.indexOf(statusArr, statusCode + "");
// 判定是否未最后一个状态
RestAssert.fail(index == statusArr.length - 1, String.format("编号为【%s】的委托此刻状态为最终状态,无法提交到下一步流程!", e.getCode()));
EntrustStatusEnum nextStatus = EntrustStatusEnum.valueOf(statusArr[index + 1]);
Entrust entrust = new Entrust();
entrust.setStatus(nextStatus);
entrust.setProgress(nextStatus);
if (update(entrust, Condition.create().in("id", ids))) {
// 判定当前状态(赋值后下一的状态)为何种状态
if (nextStatus == EntrustStatusEnum.OUT_INPUT) {
entrustRecordService.record(ids, status.getDisplay(), EntrustStatusEnum.OUT_INPUT.getDisplay(), 0, account, "提交至外委数据录入");
lmsMsgService.sendMsg("/hmhj/accept_manage/sub_input", "有外委登记提交过来,请及时填写外委数据", "新的委托外委数据录入任务!", account, null);
} else if (nextStatus == EntrustStatusEnum.CHECK) {
entrustRecordService.record(ids, status.getDisplay(), EntrustStatusEnum.CHECK.getDisplay(), 0, account, "提交至委托审核");
lmsMsgService.sendMsg("/hmhj/entrust_manage/entrust_review", "有委托从委托登记提交过来,请及时审核", "新的委托审核任务!", account, null);
} else if (nextStatus == EntrustStatusEnum.MAKE) {
// 判定当前状态是哪一个状态
if (status == EntrustStatusEnum.DRAFT) {
entrustRecordService.record(ids, status.getDisplay(), EntrustStatusEnum.MAKE.getDisplay(), 0, account, "委托登记提交至样品待制备");
lmsMsgService.sendMsg("/hmhj/sample_manage/sample_prepare", "有委托登记提交至样品待制备,请及时进行样品的制备", "新的样品制备任务!", account, null);
} else if (status == EntrustStatusEnum.CHECK) {
entrustRecordService.record(ids, status.getDisplay(), EntrustStatusEnum.MAKE.getDisplay(), 0, account, "提交至样品待制备");
lmsMsgService.sendMsg("/hmhj/sample_manage/sample_prepare", "有委托审核通过,请及时进行样品的制备", "新的样品制备任务!", account, null);
} }
return true;
} }
// else if (nextStatus == EntrustStatusEnum.TEST) {
// 此步骤实现是在提交检测处理时实现
// 验证是否全部提交检测项目,若提交全部样品下的检测项目,则提交委托信息
// 提交时,仍需要根据状态路径更改状态
// }
else if (nextStatus == EntrustStatusEnum.QUALITY_CHECK) {
EntrustSample entrustSample = new EntrustSample(); @Transactional(rollbackFor = Exception.class)
entrustSample.setStatus(EntrustSampleStatusEnum.END); @Override
entrustSample.setProgress(EntrustSampleStatusEnum.END); public boolean submitToNextNode(Entrust entrust, Account account) {
entrustSampleService.update(entrustSample, Condition.create().in("entrust_id", ids)); String statusPath = entrust.getStatusPath(), flowStatus = entrust.getFlowStatus();
entrustRecordService.record(ids, EntrustStatusEnum.OUT_INPUT.getDisplay(), EntrustStatusEnum.QUALITY_CHECK.getDisplay(), 0, account, "外委数据录入提交至质量判定"); RestAssert.fail(StringUtils.isBlank(statusPath), String.format("编号为【%s】的委托,未配置流程状态路径信息!", entrust.getCode()));
lmsMsgService.sendMsg("/hmhj/quality_manage/quality_decide", "有外委数据录入提交过来进行质量判定,请及时进行质量判定", "新的质量判定任务!", account, null); // 只有初始状态才进行赋值
} if (StringUtils.isBlank(flowStatus) && entrust.getStatus() == EntrustStatusEnum.DRAFT) {
} flowStatus = EntrustFlowEnum.DRAFT.getName();
}
RestAssert.fail(StringUtils.isBlank(flowStatus), String.format("编号为【%s】的委托,未配置流程状态信息!", entrust.getCode()));
EntrustFlowEnum nextFlowStatus = EntrustFlowUtils.getNextFlowStatus(flowStatus, statusPath);
EntrustStatusEnum nextStatus = EntrustFlowUtils.getStatus(nextFlowStatus);
RestAssert.fail(null == nextStatus, String.format("编号为【%s】的委托,未配置下一流程状态信息!", entrust.getCode()));
// 当前委托状态
EntrustStatusEnum status = entrust.getStatus();
// 是否特殊需求
boolean isSpecAsk = null == entrust.getSpecialAsk() ? false : ("是".equals(entrust.getSpecialAsk()));
// 若为特殊需求,必须要走评审
String uri = "";
if (isSpecAsk || nextStatus == EntrustStatusEnum.CHECK) {
uri = "/hmhj/entrust_manage/entrust_review";
} else if (nextStatus == EntrustStatusEnum.MAKE) {
uri = "/hmhj/sample_manage/sample_prepare";
} else if (nextStatus == EntrustStatusEnum.OUT_INPUT) {
uri = "/hmhj/accept_manage/sub_input";
} else if (nextStatus == EntrustStatusEnum.QUALITY_CHECK) {
uri = "/hmhj/quality_manage/quality_decide";
}
// 处理样品以及检测项目的流程状态
entrustSampleService.updateSampleNextFlowInfo(entrust, nextFlowStatus, account);
entrust.setStatus(nextStatus);
entrust.setProgress(nextStatus);
entrust.setFlowStatus(nextFlowStatus.getName());
updateById(entrust);
//
String remark = "提交至" + nextFlowStatus.getDisplay(),
title = String.format("新的%s任务!", nextFlowStatus.getDisplay()),
content = String.format("有%s提交过来,请及时%s", EntrustFlowEnum.convert(flowStatus).getDisplay(), nextFlowStatus.getDisplay());
entrustRecordService.record(new Long[]{entrust.getId()}, status.getDisplay(), nextStatus.getDisplay(), 0, account, remark);
if (StringUtils.isNotBlank(uri)) {
lmsMsgService.sendMsg(uri, content, title, account, null);
} }
return true; return true;
} }
@Transactional(rollbackFor = Exception.class)
@Override @Override
public boolean rejectToPrevNode(Long id, String reason, Account account) { public boolean rejectToPrevNode(Long id, String reason, Account account) {
RestAssert.fail(null == id, "请选择要驳回的委托"); RestAssert.fail(null == id, "请选择要驳回的委托");
Entrust e = super.getById(id); Entrust entrust = super.getById(id);
RestAssert.fail(null == e, "请选择要驳回的委托"); return rejectToPrevNode(entrust, reason, account);
String statusPath = e.getStatusPath(); }
RestAssert.fail(StringUtils.isBlank(statusPath), String.format("编号为【%s】的委托,未配置状态信息!", e.getCode()));
String[] statusArr = statusPath.split("->");
EntrustStatusEnum status = e.getStatus();
int statusCode = status.getIntValue();
// 获取状态所处于状态路径的位置
int index = ArrayUtils.indexOf(statusArr, statusCode + "");
// 判定是否为第一个状态
RestAssert.fail(index == statusArr.length - 1, String.format("编号为【%s】的委托此刻状态为最初始状态,无法驳回到上一步流程!", e.getCode()));
EntrustStatusEnum prevStatus = EntrustStatusEnum.valueOf(statusArr[index - 1]);
Entrust entrust = new Entrust();
entrust.setStatus(prevStatus);
entrust.setProgress(EntrustStatusEnum.BACK_CHECK);
Long[] ids = new Long[]{id};
if (update(entrust, Condition.create().eq("id", id))) {
//
entrustRecordService.record(ids, status.getDisplay(), prevStatus.getDisplay(), 1, account, reason);
// 判定当前状态(退回后上一状态)为何种状态
if (prevStatus == EntrustStatusEnum.DRAFT) {
lmsMsgService.sendMsg("/hmhj/entrust_manage/entrust_register", "有委托从委托审核驳回,请及时查看退回原因并处理", "新的委托审核退回任务!", account, null);
} else if (prevStatus == EntrustStatusEnum.OUT_DRAFT) {
lmsMsgService.sendMsg("/hmhj/entrust_manage/entrust_register", "有委托从委托审核驳回,请及时查看退回原因并处理", "新的委托审核退回任务!", account, null);
} else if (prevStatus == EntrustStatusEnum.OUT_INPUT) {
@Transactional(rollbackFor = Exception.class)
@Override
public boolean rejectToPrevNode(Entrust entrust, String reason, Account account) {
RestAssert.fail(null == entrust, "请选择要驳回的委托");
String statusPath = entrust.getStatusPath(), flowStatus = entrust.getFlowStatus();
// 为空不进行下一步处理
if (StringUtils.isBlank(statusPath)) {
return false;
}
RestAssert.fail(StringUtils.isBlank(statusPath), String.format("编号为【%s】的委托,未配置流程状态路径信息!", entrust.getCode()));
EntrustFlowEnum prevFlowStatus = EntrustFlowUtils.getPrevFlowStatus(flowStatus, statusPath);
EntrustStatusEnum prevStatus = EntrustFlowUtils.getStatus(prevFlowStatus);
RestAssert.fail(null == prevStatus, String.format("编号为【%s】的委托,未配置上一流程状态信息!", entrust.getCode()));
// 当前委托状态
EntrustStatusEnum status = entrust.getStatus();
String uri = "";
if (prevStatus == EntrustStatusEnum.DRAFT) {
uri = "/hmhj/entrust_manage/entrust_register";
} else if (prevStatus == EntrustStatusEnum.CHECK) { } else if (prevStatus == EntrustStatusEnum.CHECK) {
} else if (prevStatus == EntrustStatusEnum.MAKE) { } else if (prevStatus == EntrustStatusEnum.MAKE) {
} else if (prevStatus == EntrustStatusEnum.OUT_INPUT) {
} else if (prevStatus == EntrustStatusEnum.QUALITY_CHECK) { } else if (prevStatus == EntrustStatusEnum.QUALITY_CHECK) {
uri = "/hmhj/quality_manage/quality_decide";
} }
entrust.setStatus(prevStatus);
entrust.setProgress(EntrustStatusEnum.BACK_CHECK);
entrust.setFlowStatus(prevFlowStatus.getName());
updateById(entrust);
// 更新委托样品信息
entrustSampleService.updateSamplePrevFlowInfo(entrust, prevFlowStatus, account);
String title = String.format("新的%s任务!", prevFlowStatus.getDisplay()),
content = String.format("有%s驳回过来,请及时%s", EntrustFlowEnum.convert(flowStatus).getDisplay(), prevFlowStatus.getDisplay());
entrustRecordService.record(new Long[]{entrust.getId()}, status.getDisplay(), prevStatus.getDisplay(), 1, account, reason);
if (StringUtils.isNotBlank(uri)) {
lmsMsgService.sendMsg(uri, content, title, account, null);
} }
return true; return true;
} }
......
package com.patzn.cloud.service.lims.hmhj.service.impl;
import com.baomidou.mybatisplus.mapper.Condition;
import com.baomidou.mybatisplus.toolkit.CollectionUtils;
import com.patzn.cloud.commons.controller.Account;
import com.patzn.cloud.commons.controller.LoginHelper;
import com.patzn.cloud.service.hmhj.entity.Entrust;
import com.patzn.cloud.service.hmhj.entity.EntrustSample;
import com.patzn.cloud.service.hmhj.enums.EntrustSampleStatusEnum;
import com.patzn.cloud.service.hmhj.enums.EntrustStatusEnum;
import com.patzn.cloud.service.lims.collection.entity.LmsOriginalRecordInfo;
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.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 org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 原始记录解析后的数据存储表 服务实现类
*
* @author meazty
* @since 2021-07-04
*/
@Service
public class LmsOriginalRecordInfoServiceImpl extends BaseServiceImpl<LmsOriginalRecordInfoMapper, LmsOriginalRecordInfo> implements ILmsOriginalRecordInfoService {
@Autowired
private IEntrustService entrustService;
@Autowired
private IEntrustSampleService entrustSampleService;
@Autowired
private IEntrustSampleItemService entrustSampleItemService;
@Override
public Page<LmsOriginalRecordInfo> page(Page<LmsOriginalRecordInfo> page, LmsOriginalRecordInfo lmsOriginalRecordInfo) {
Wrapper wrapper = new EntityWrapper<>(lmsOriginalRecordInfo);
return this.page(page, wrapper);
}
@Override
public boolean removeByIds(List<Long> ids) {
return baseMapper.deleteBatchIds(ids) > 0;
}
/**
* 生成从委托到原始记录相关数据
*
* @return
*/
@Override
public boolean generateOriginalRelData() {
Account account = LoginHelper.getAccount();
// 查询未生成的委托数据
List<LmsOriginalRecordInfo> entrustList = baseMapper.selectUnGeneratedEntrustData();
if (CollectionUtils.isNotEmpty(entrustList)) {
List<Entrust> entrusts = entrustList.stream().map(t -> {
return new Entrust().setStatus(EntrustStatusEnum.TEST).setProgress(EntrustStatusEnum.TEST)
.setCode(t.getContractCode()).setCompanyId(account.getCompanyId()).setUid(account.getUserId());
}).collect(Collectors.toList());
entrustService.saveBatch(entrusts);
}
// 查询未生成的样品数据
List<LmsOriginalRecordInfo> sampleList = baseMapper.selectUnGeneratedSampleData();
if (CollectionUtils.isNotEmpty(sampleList)) {
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;
}
}
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();
}
}
...@@ -58,6 +58,38 @@ ...@@ -58,6 +58,38 @@
order by entrust_time desc order by entrust_time desc
</select> </select>
<select id="selectVOListByItem" resultType="com.patzn.cloud.service.hmhj.vo.EntrustVO">
SELECT distinct e.* FROM
entrust e,entrust_sample s,entrust_sample_item i
WHERE e.deleted = 0 and s.deleted = 0 and i.deleted = 0
and s.entrust_id = e.id and i.entrust_sample_id = s.id
<if test="null!=vo.itemStatus">
and i.status = #{vo.itemStatus}
</if>
<if test="null!=vo.itemStatusEnumList">
AND i.status IN
<foreach collection="vo.itemStatusEnumList" index="index" item="status" open="(" separator="," close=")">
#{status}
</foreach>
</if>
<if test="null!=vo.groupNameList">
AND e.test_side IN
<foreach collection="vo.groupNameList" index="index" item="groupName" open="(" separator="," close=")">
#{groupName}
</foreach>
</if>
<if test="null!=vo.client">
AND e.client LIKE CONCAT('%',#{vo.client},'%')
</if>
<if test="null!=vo.code">
AND e.code LIKE CONCAT('%',#{vo.code},'%')
</if>
<if test="null!=vo.testSide">
AND e.test_side LIKE CONCAT('%',#{vo.testSide},'%')
</if>
order by e.entrust_time desc,e.code desc
</select>
<select id="selectEntrustProgressList" resultType="com.patzn.cloud.service.hmhj.vo.EntrustVO"> <select id="selectEntrustProgressList" resultType="com.patzn.cloud.service.hmhj.vo.EntrustVO">
SELECT id,code,client,client_tel,entrust_time,assignor,test_side,status,progress, SELECT id,code,client,client_tel,entrust_time,assignor,test_side,status,progress,
......
...@@ -315,4 +315,12 @@ ...@@ -315,4 +315,12 @@
WHERE i.deleted = 0 AND s.deleted = 0 WHERE i.deleted = 0 AND s.deleted = 0
AND s.entrust_id = #{entrustId} AND s.entrust_id = #{entrustId}
</select> </select>
<select id="selectUnallocatedCountByEntrustId" resultType="int">
select count(1) from entrust_sample_item i
join entrust_sample s ON i.entrust_sample_id = s.ID
where i.deleted = 0 AND s.deleted = 0
and i.status = 0
AND s.entrust_id = #{entrustId}
</select>
</mapper> </mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!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">
<!--获取未生成的委托数据-->
<select id="selectUnGeneratedEntrustData"
resultType="com.patzn.cloud.service.lims.collection.entity.LmsOriginalRecordInfo">
select o.file_id,o.contract_code from lms_original_record_info o
where o.deleted = 0
and o.contract_code is not null
and not exists (select 1 from entrust e where e.deleted = 0 and e.code = o.contract_code)
group by o.file_id, o.contract_code order by o.file_id
</select>
<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>
</mapper>
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