Commit 98f3001a by lijingjing

修改报告审批中因为标样的问题;

parent 1c897ad5
package com.patzn.cloud.service.lims.hmhj.common; package com.patzn.cloud.service.lims.hmhj.common;
import com.baomidou.mybatisplus.toolkit.CollectionUtils; import com.baomidou.mybatisplus.toolkit.CollectionUtils;
import com.patzn.cloud.service.hmhj.enums.EntrustFlowEnum; import com.patzn.cloud.service.hmhj.enums.*;
import com.patzn.cloud.service.hmhj.enums.EntrustStatusEnum;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import java.util.Arrays; import java.util.Arrays;
...@@ -113,7 +112,90 @@ public class EntrustFlowUtils { ...@@ -113,7 +112,90 @@ public class EntrustFlowUtils {
if (StringUtils.isBlank(statusPath) || StringUtils.isBlank(flowStatus)) { if (StringUtils.isBlank(statusPath) || StringUtils.isBlank(flowStatus)) {
return false; return false;
} }
List<String> flowList = Arrays.asList(statusPath.split("->")); List<String> flowList = Arrays.asList(statusPath.split(SEQ));
return flowList.stream().anyMatch(t -> t.equals(flowStatus)); return flowList.stream().anyMatch(t -> t.equals(flowStatus));
} }
public static EntrustSampleStatusEnum getSampleStatus(EntrustFlowEnum flowEnum) {
if (null == flowEnum) {
return null;
}
int flowStatus = flowEnum.getValue().intValue();
EntrustSampleStatusEnum sampleStatusEnum = null;
switch (flowStatus) {
case 1:
case 2:
case 3:
case 4:
sampleStatusEnum = EntrustSampleStatusEnum.DRAFT;
break;
case 5:
sampleStatusEnum = EntrustSampleStatusEnum.RECEIVE;
break;
case 6:
case 7:
sampleStatusEnum = EntrustSampleStatusEnum.TEST;
break;
case 8:
sampleStatusEnum = EntrustSampleStatusEnum.REPORT_MAKE;
break;
case 9:
sampleStatusEnum = EntrustSampleStatusEnum.REPORT_CHECK;
break;
case 10:
sampleStatusEnum = EntrustSampleStatusEnum.REPORT_ALLOW;
break;
case 11:
sampleStatusEnum = EntrustSampleStatusEnum.REPORT_ISSUE;
break;
case 12:
sampleStatusEnum = EntrustSampleStatusEnum.REPORT_SEND;
break;
case 14:
case 15:
sampleStatusEnum = EntrustSampleStatusEnum.END;
break;
}
return sampleStatusEnum;
}
public static EntrustSampleItemStatusEnum getItemStatus(EntrustFlowEnum flowEnum) {
if (null == flowEnum) {
return null;
}
int flowStatus = flowEnum.getValue().intValue();
EntrustSampleItemStatusEnum itemStatusEnum;
if (flowStatus > 7) {
itemStatusEnum = EntrustSampleItemStatusEnum.END;
} else if (flowStatus > 6) {
itemStatusEnum = EntrustSampleItemStatusEnum.TEST;
} else if (flowStatus > 5) {
itemStatusEnum = EntrustSampleItemStatusEnum.ALLOT;
} else {
itemStatusEnum = EntrustSampleItemStatusEnum.DRAFT;
}
return itemStatusEnum;
}
public static EntrustReportStatusEnum getReportStatus(EntrustFlowEnum flowEnum) {
if (null == flowEnum) {
return null;
}
if (flowEnum == EntrustFlowEnum.REPORT_MAKE) {
return EntrustReportStatusEnum.MAKING;
} else if (flowEnum == EntrustFlowEnum.REPORT_CHECK) {
return EntrustReportStatusEnum.CHECK;
} else if (flowEnum == EntrustFlowEnum.REPORT_ALLOW) {
return EntrustReportStatusEnum.ALLOW;
} else if (flowEnum == EntrustFlowEnum.REPORT_ISSUE) {
return EntrustReportStatusEnum.ISSUE;
} else if (flowEnum == EntrustFlowEnum.REPORT_SEND) {
return EntrustReportStatusEnum.SEND;
} else if (flowEnum == EntrustFlowEnum.QUALITY_JUDGE) {
return EntrustReportStatusEnum.END;
} else if (flowEnum == EntrustFlowEnum.ARCHIVES) {
return EntrustReportStatusEnum.END;
}
return null;
}
} }
...@@ -52,10 +52,10 @@ public class EntrustController extends ServiceController { ...@@ -52,10 +52,10 @@ public class EntrustController extends ServiceController {
@ApiImplicitParam(name = RestConstants.PAGE_SORD, value = "排序方式", paramType = "query", dataTypeClass = String.class), @ApiImplicitParam(name = RestConstants.PAGE_SORD, value = "排序方式", paramType = "query", dataTypeClass = String.class),
}) })
@PostMapping("/page") @PostMapping("/page")
public RestResult<Page<Entrust>> getPage(Entrust entrust) { public RestResult<Page<EntrustVO>> getPage(EntrustVO entrust) {
entrust.setStatus(EntrustStatusEnum.DRAFT); entrust.setStatus(EntrustStatusEnum.DRAFT);
entrust.setUid(getAccount().getUserId()); entrust.setUid(getAccount().getUserId());
return success(entrustService.page(getPage(), entrust)); return success(entrustService.pageVO(getPage(), entrust));
} }
@ApiOperation("外委登记分页列表") @ApiOperation("外委登记分页列表")
...@@ -491,6 +491,8 @@ public class EntrustController extends ServiceController { ...@@ -491,6 +491,8 @@ public class EntrustController extends ServiceController {
} }
// 获取当前用户分组 // 获取当前用户分组
entrust.setGroupNameList(userInfoService.getCurGroupNameList()); entrust.setGroupNameList(userInfoService.getCurGroupNameList());
//
entrust.setFlowStatus(EntrustFlowEnum.TEST.getName());
return success(entrustService.pageEntrustByItemData(getPage(), entrust)); return success(entrustService.pageEntrustByItemData(getPage(), entrust));
} }
...@@ -635,7 +637,6 @@ public class EntrustController extends ServiceController { ...@@ -635,7 +637,6 @@ public class EntrustController extends ServiceController {
@PostMapping("/page_entrust_report_check") @PostMapping("/page_entrust_report_check")
public RestResult<Page<EntrustVO>> getPageReportCheck(EntrustVO entrust) { public RestResult<Page<EntrustVO>> getPageReportCheck(EntrustVO entrust) {
entrust.setReportStatus(EntrustReportStatusEnum.CHECK); entrust.setReportStatus(EntrustReportStatusEnum.CHECK);
entrust.setFlowStatus(EntrustFlowEnum.REPORT_CHECK.getName());
return success(entrustService.pageEntrustByReport(getPage(), entrust)); return success(entrustService.pageEntrustByReport(getPage(), entrust));
} }
...@@ -670,7 +671,6 @@ public class EntrustController extends ServiceController { ...@@ -670,7 +671,6 @@ public class EntrustController extends ServiceController {
@PostMapping("/page_entrust_report_approve") @PostMapping("/page_entrust_report_approve")
public RestResult<Page<EntrustVO>> getPageReportApprove(EntrustVO entrust) { public RestResult<Page<EntrustVO>> getPageReportApprove(EntrustVO entrust) {
entrust.setReportStatus(EntrustReportStatusEnum.ALLOW); entrust.setReportStatus(EntrustReportStatusEnum.ALLOW);
entrust.setFlowStatus(EntrustFlowEnum.REPORT_ALLOW.getName());
return success(entrustService.pageEntrustByReport(getPage(), entrust)); return success(entrustService.pageEntrustByReport(getPage(), entrust));
} }
...@@ -736,7 +736,6 @@ public class EntrustController extends ServiceController { ...@@ -736,7 +736,6 @@ public class EntrustController extends ServiceController {
@PostMapping("/page_entrust_report_issue") @PostMapping("/page_entrust_report_issue")
public RestResult<Page<EntrustVO>> getPageReportIssue(EntrustVO entrust) { public RestResult<Page<EntrustVO>> getPageReportIssue(EntrustVO entrust) {
entrust.setReportStatus(EntrustReportStatusEnum.ISSUE); entrust.setReportStatus(EntrustReportStatusEnum.ISSUE);
entrust.setFlowStatus(EntrustFlowEnum.REPORT_ISSUE.getName());
return success(entrustService.pageEntrustByReport(getPage(), entrust)); return success(entrustService.pageEntrustByReport(getPage(), entrust));
} }
......
...@@ -2,14 +2,7 @@ package com.patzn.cloud.service.lims.hmhj.controller; ...@@ -2,14 +2,7 @@ package com.patzn.cloud.service.lims.hmhj.controller;
import com.patzn.cloud.service.hmhj.entity.OriginalTemplateConfig; import com.patzn.cloud.service.hmhj.entity.OriginalTemplateConfig;
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.*;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.plugins.Page;
import com.patzn.cloud.commons.api.RestConstants; import com.patzn.cloud.commons.api.RestConstants;
...@@ -67,6 +60,12 @@ public class OriginalTemplateConfigController extends ServiceController { ...@@ -67,6 +60,12 @@ public class OriginalTemplateConfigController extends ServiceController {
return success(originalTemplateConfigService.updateById(originalTemplateConfig)); return success(originalTemplateConfigService.updateById(originalTemplateConfig));
} }
@ApiOperation("根据 id 修改信息")
@PostMapping("/update")
public RestResult<Boolean> edit(@RequestBody OriginalTemplateConfig originalTemplateConfig) {
return success(originalTemplateConfigService.updateConfigById(originalTemplateConfig, getAccount()));
}
@ApiOperation("添加") @ApiOperation("添加")
@PostMapping("/") @PostMapping("/")
public RestResult<Boolean> add(OriginalTemplateConfig originalTemplateConfig) { public RestResult<Boolean> add(OriginalTemplateConfig originalTemplateConfig) {
......
...@@ -62,7 +62,16 @@ public class OriginalTemplateController extends ServiceController implements Ori ...@@ -62,7 +62,16 @@ public class OriginalTemplateController extends ServiceController implements Ori
@PutMapping("/{id}") @PutMapping("/{id}")
public RestResult<Boolean> edit(@PathVariable("id") Long id, OriginalTemplate originalTemplate) { public RestResult<Boolean> edit(@PathVariable("id") Long id, OriginalTemplate originalTemplate) {
originalTemplate.setId(id); originalTemplate.setId(id);
return success(originalTemplateService.updateById(originalTemplate)); return success(originalTemplateService.updateTemplateById(originalTemplate));
}
@ApiOperation("根据 id 修改信息")
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "主键", required = true, paramType = "path", dataTypeClass = Long.class),
})
@PostMapping("/update")
public RestResult<Boolean> update(@RequestBody OriginalTemplate originalTemplate) {
return success(originalTemplateService.updateTemplateById(originalTemplate));
} }
@ApiOperation("添加") @ApiOperation("添加")
...@@ -82,8 +91,8 @@ public class OriginalTemplateController extends ServiceController implements Ori ...@@ -82,8 +91,8 @@ public class OriginalTemplateController extends ServiceController implements Ori
@ApiOperation(value = "附件上传", notes = "附件上传") @ApiOperation(value = "附件上传", notes = "附件上传")
@PostMapping("/upload_template/") @PostMapping("/upload_template/")
public RestResult<Boolean> uploadTemplate(@RequestParam("classType") String classType,@RequestParam("name") String name,@RequestParam("remark") String remark, MultipartFile file) { public RestResult<Boolean> uploadTemplate(@RequestParam("classType") String classType, @RequestParam("name") String name, @RequestParam("remark") String remark, MultipartFile file) {
return success(originalTemplateService.uploadTemplate(file, classType,name,remark,0)); return success(originalTemplateService.uploadTemplate(file, classType, name, remark, 0));
} }
......
...@@ -22,13 +22,15 @@ public interface EntrustMapper extends BatchMapper<Entrust> { ...@@ -22,13 +22,15 @@ public interface EntrustMapper extends BatchMapper<Entrust> {
List<EntrustSampleDTO> listByContractId(@Param("entrustId") Long id); List<EntrustSampleDTO> listByContractId(@Param("entrustId") Long id);
List<EntrustVO> selectEntrustSampleReceive(RowBounds rowBounds, @Param("vo")EntrustVO entrust); List<EntrustVO> selectEntrustSampleReceive(RowBounds rowBounds, @Param("vo") EntrustVO 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); List<EntrustVO> selectVOListByItem(Page<EntrustVO> page, @Param("vo") EntrustVO entrust);
List<EntrustVO> selectEntrustVOHisList(Page<EntrustVO> page,@Param("vo") EntrustVO entrust); List<EntrustVO> selectEntrustVOHisList(Page<EntrustVO> page, @Param("vo") EntrustVO entrust);
Integer updateEntrustById(@Param("vo") Entrust entrust);
} }
...@@ -66,4 +66,7 @@ public interface EntrustSampleItemMapper extends BatchMapper<EntrustSampleItem> ...@@ -66,4 +66,7 @@ public interface EntrustSampleItemMapper extends BatchMapper<EntrustSampleItem>
List<SampleItemStatsVO> selectSampleItemStats(@Param("vo") SampleItemDTO sampleItemDTO); List<SampleItemStatsVO> selectSampleItemStats(@Param("vo") SampleItemDTO sampleItemDTO);
List<EntrustSampleItemVO> listIndexReplaceItemBySampleId(@Param("sampleId") Long sampleId); List<EntrustSampleItemVO> listIndexReplaceItemBySampleId(@Param("sampleId") Long sampleId);
List<EntrustSampleItemVO> selectUnfinishItemList(@Param("vo") QueryDTO dto);
} }
...@@ -31,7 +31,7 @@ public interface EntrustSampleMapper extends BatchMapper<EntrustSample> { ...@@ -31,7 +31,7 @@ public interface EntrustSampleMapper extends BatchMapper<EntrustSample> {
List<EntrustSampleVO> selectMinStatusByEntrustIds(@Param("entrustIds") List<Long> entrustIds); List<EntrustSampleVO> selectMinStatusByEntrustIds(@Param("entrustIds") List<Long> entrustIds);
List<EntrustSampleVO> selectTestResultQuery(RowBounds rowBounds,@Param("vo") EntrustSampleVO entrustSample); List<EntrustSampleVO> selectTestResultQuery(RowBounds rowBounds, @Param("vo") EntrustSampleVO entrustSample);
List<AlTasteStatsVO> selectAlTasteStats(@Param("vo") StatsQueryDTO queryDTO); List<AlTasteStatsVO> selectAlTasteStats(@Param("vo") StatsQueryDTO queryDTO);
...@@ -40,4 +40,6 @@ public interface EntrustSampleMapper extends BatchMapper<EntrustSample> { ...@@ -40,4 +40,6 @@ public interface EntrustSampleMapper extends BatchMapper<EntrustSample> {
List<PMakeFeStatsVO> selectPMakeFeStats(@Param("vo") QueryDTO queryDTO); List<PMakeFeStatsVO> selectPMakeFeStats(@Param("vo") QueryDTO queryDTO);
Map<String, Object> selectAlBrandsRateStatus(@Param("vo") QueryDTO queryDTO); Map<String, Object> selectAlBrandsRateStatus(@Param("vo") QueryDTO queryDTO);
List<EntrustSample> selectByReportIds(@Param("reportIds") Long[] reportIds);
} }
...@@ -2,6 +2,7 @@ package com.patzn.cloud.service.lims.hmhj.mapper; ...@@ -2,6 +2,7 @@ package com.patzn.cloud.service.lims.hmhj.mapper;
import com.patzn.cloud.service.hmhj.entity.OriginalTemplateConfig; import com.patzn.cloud.service.hmhj.entity.OriginalTemplateConfig;
import com.patzn.cloud.commons.mapper.BatchMapper; import com.patzn.cloud.commons.mapper.BatchMapper;
import org.apache.ibatis.annotations.Param;
/** /**
* <p> * <p>
...@@ -12,5 +13,5 @@ import com.patzn.cloud.commons.mapper.BatchMapper; ...@@ -12,5 +13,5 @@ import com.patzn.cloud.commons.mapper.BatchMapper;
* @since 2021-03-15 * @since 2021-03-15
*/ */
public interface OriginalTemplateConfigMapper extends BatchMapper<OriginalTemplateConfig> { public interface OriginalTemplateConfigMapper extends BatchMapper<OriginalTemplateConfig> {
Integer updateConfigById(@Param("vo") OriginalTemplateConfig config);
} }
...@@ -2,6 +2,7 @@ package com.patzn.cloud.service.lims.hmhj.mapper; ...@@ -2,6 +2,7 @@ package com.patzn.cloud.service.lims.hmhj.mapper;
import com.patzn.cloud.service.hmhj.entity.OriginalTemplate; import com.patzn.cloud.service.hmhj.entity.OriginalTemplate;
import com.patzn.cloud.commons.mapper.BatchMapper; import com.patzn.cloud.commons.mapper.BatchMapper;
import org.apache.ibatis.annotations.Param;
/** /**
* <p> * <p>
...@@ -13,4 +14,5 @@ import com.patzn.cloud.commons.mapper.BatchMapper; ...@@ -13,4 +14,5 @@ import com.patzn.cloud.commons.mapper.BatchMapper;
*/ */
public interface OriginalTemplateMapper extends BatchMapper<OriginalTemplate> { public interface OriginalTemplateMapper extends BatchMapper<OriginalTemplate> {
Integer updateTemplateById(@Param("vo") OriginalTemplate originalTemplate);
} }
...@@ -54,4 +54,5 @@ public interface IEntrustReportService extends IBaseService<EntrustReport> { ...@@ -54,4 +54,5 @@ public interface IEntrustReportService extends IBaseService<EntrustReport> {
Page<EntrustReport> pageBranchReport(Page<EntrustReport> page, EntrustReportVO entrustReportVO, Account account); Page<EntrustReport> pageBranchReport(Page<EntrustReport> page, EntrustReportVO entrustReportVO, Account account);
boolean updateLastFlowCheckByEntrustId(Long entrustId, Account account); boolean updateLastFlowCheckByEntrustId(Long entrustId, Account account);
} }
...@@ -9,6 +9,7 @@ import com.patzn.cloud.service.hmhj.entity.Entrust; ...@@ -9,6 +9,7 @@ import com.patzn.cloud.service.hmhj.entity.Entrust;
import com.patzn.cloud.service.hmhj.entity.EntrustSampleItem; import com.patzn.cloud.service.hmhj.entity.EntrustSampleItem;
import com.patzn.cloud.service.hmhj.entity.ItemDeviate; import com.patzn.cloud.service.hmhj.entity.ItemDeviate;
import com.patzn.cloud.service.hmhj.entity.OriginalRecord; import com.patzn.cloud.service.hmhj.entity.OriginalRecord;
import com.patzn.cloud.service.hmhj.enums.EntrustFlowEnum;
import com.patzn.cloud.service.hmhj.vo.EntrustSampleCalcResultVO; import com.patzn.cloud.service.hmhj.vo.EntrustSampleCalcResultVO;
import com.patzn.cloud.service.hmhj.vo.EntrustSampleItemVO; import com.patzn.cloud.service.hmhj.vo.EntrustSampleItemVO;
import com.patzn.cloud.service.hmhj.vo.TesterWorkloadStatsVO; import com.patzn.cloud.service.hmhj.vo.TesterWorkloadStatsVO;
...@@ -97,4 +98,6 @@ public interface IEntrustSampleItemService extends IBaseService<EntrustSampleIte ...@@ -97,4 +98,6 @@ public interface IEntrustSampleItemService extends IBaseService<EntrustSampleIte
Map<String, Object> getSampleItemStatsQuery(SampleItemDTO sampleItemDTO); Map<String, Object> getSampleItemStatsQuery(SampleItemDTO sampleItemDTO);
boolean autoAllotItem(Long[] ids, Account account); boolean autoAllotItem(Long[] ids, Account account);
boolean autoAllotItemFromFlowStatus(Long entrustId, EntrustFlowEnum flowEnum, Account account);
} }
...@@ -76,6 +76,8 @@ public interface IEntrustSampleService extends IBaseService<EntrustSample> { ...@@ -76,6 +76,8 @@ public interface IEntrustSampleService extends IBaseService<EntrustSample> {
List<EntrustSample> getByEntrustId(Long entrustId); List<EntrustSample> getByEntrustId(Long entrustId);
List<EntrustSample> getNormalByEntrustId(Long entrustId);
List<EntrustSampleVO> getVOListByEntrustId(Long entrustId); List<EntrustSampleVO> getVOListByEntrustId(Long entrustId);
List<EntrustSampleVO> getVOListByIds(List<Long> sampleIdList); List<EntrustSampleVO> getVOListByIds(List<Long> sampleIdList);
...@@ -109,4 +111,6 @@ public interface IEntrustSampleService extends IBaseService<EntrustSample> { ...@@ -109,4 +111,6 @@ public interface IEntrustSampleService extends IBaseService<EntrustSample> {
boolean delStandardSampleByIds(List<Long> ids); boolean delStandardSampleByIds(List<Long> ids);
boolean updateSampleInfo(EntrustSample entrustSample); boolean updateSampleInfo(EntrustSample entrustSample);
List<EntrustSample> getByReportIds(Long[] reportIds);
} }
...@@ -104,4 +104,6 @@ public interface IEntrustService extends IBaseService<Entrust> { ...@@ -104,4 +104,6 @@ public interface IEntrustService extends IBaseService<Entrust> {
boolean isCanIntoPrevNode(Entrust entrust); boolean isCanIntoPrevNode(Entrust entrust);
Page<EntrustVO> pageEntrustSampleMake(Page<EntrustVO> page, EntrustVO entrust); Page<EntrustVO> pageEntrustSampleMake(Page<EntrustVO> page, EntrustVO entrust);
boolean updateEntrustById(Entrust entrust);
} }
package com.patzn.cloud.service.lims.hmhj.service; package com.patzn.cloud.service.lims.hmhj.service;
import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.plugins.Page;
import com.patzn.cloud.commons.controller.Account;
import com.patzn.cloud.commons.service.IBaseService; import com.patzn.cloud.commons.service.IBaseService;
import com.patzn.cloud.service.hmhj.entity.OriginalTemplate;
import com.patzn.cloud.service.hmhj.entity.OriginalTemplateConfig; import com.patzn.cloud.service.hmhj.entity.OriginalTemplateConfig;
import java.util.List; import java.util.List;
...@@ -17,4 +19,6 @@ public interface IOriginalTemplateConfigService extends IBaseService<OriginalTem ...@@ -17,4 +19,6 @@ public interface IOriginalTemplateConfigService extends IBaseService<OriginalTem
Page<OriginalTemplateConfig> page(Page<OriginalTemplateConfig> page, OriginalTemplateConfig originalTemplateConfig); Page<OriginalTemplateConfig> page(Page<OriginalTemplateConfig> page, OriginalTemplateConfig originalTemplateConfig);
boolean removeByIds(List<Long> ids); boolean removeByIds(List<Long> ids);
boolean updateConfigById(OriginalTemplateConfig config, Account account);
} }
...@@ -31,4 +31,6 @@ public interface IOriginalTemplateService extends IBaseService<OriginalTemplate> ...@@ -31,4 +31,6 @@ public interface IOriginalTemplateService extends IBaseService<OriginalTemplate>
boolean editReportTemplate(String someParam, OssFileResult obsFileResult); boolean editReportTemplate(String someParam, OssFileResult obsFileResult);
boolean editEntrustReport(String someParam, OssFileResult obsFileResult); boolean editEntrustReport(String someParam, OssFileResult obsFileResult);
boolean updateTemplateById(OriginalTemplate originalTemplate);
} }
...@@ -29,7 +29,7 @@ public class EntrustRecordServiceImpl extends BaseServiceImpl<EntrustRecordMappe ...@@ -29,7 +29,7 @@ public class EntrustRecordServiceImpl extends BaseServiceImpl<EntrustRecordMappe
@Override @Override
public Page<EntrustRecord> page(Page<EntrustRecord> page, EntrustRecord entrustRecord) { public Page<EntrustRecord> page(Page<EntrustRecord> page, EntrustRecord entrustRecord) {
Wrapper wrapper = new EntityWrapper<>(entrustRecord); Wrapper wrapper = new EntityWrapper<>(entrustRecord);
wrapper.orderBy("ctime",false);
return this.page(page, wrapper); return this.page(page, wrapper);
} }
......
...@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.mapper.Wrapper; ...@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.plugins.Page;
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.commons.service.impl.BaseServiceImpl; import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
...@@ -14,20 +15,13 @@ import com.patzn.cloud.feign.base.client.SysUserClient; ...@@ -14,20 +15,13 @@ import com.patzn.cloud.feign.base.client.SysUserClient;
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.base.vo.SysUserOrgVO; import com.patzn.cloud.service.base.vo.SysUserOrgVO;
import com.patzn.cloud.service.hmhj.entity.Entrust; import com.patzn.cloud.service.hmhj.entity.*;
import com.patzn.cloud.service.hmhj.entity.EntrustReport; import com.patzn.cloud.service.hmhj.enums.*;
import com.patzn.cloud.service.hmhj.entity.EntrustReportRelSample;
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.EntrustSampleStatusEnum;
import com.patzn.cloud.service.hmhj.enums.EntrustStatusEnum;
import com.patzn.cloud.service.hmhj.vo.EntrustReportVO; import com.patzn.cloud.service.hmhj.vo.EntrustReportVO;
import com.patzn.cloud.service.lims.hmhj.common.EntrustFlowUtils; import com.patzn.cloud.service.lims.hmhj.common.EntrustFlowUtils;
import com.patzn.cloud.service.lims.hmhj.common.LabreOfficeUtil; import com.patzn.cloud.service.lims.hmhj.common.LabreOfficeUtil;
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.*; import com.patzn.cloud.service.lims.hmhj.service.*;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -55,6 +49,8 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe ...@@ -55,6 +49,8 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe
@Autowired @Autowired
private IEntrustSampleService entrustSampleService; private IEntrustSampleService entrustSampleService;
@Autowired @Autowired
private IEntrustSampleItemService entrustSampleItemService;
@Autowired
private IEntrustService entrustService; private IEntrustService entrustService;
@Autowired @Autowired
private IEntrustRecordService entrustRecordService; private IEntrustRecordService entrustRecordService;
...@@ -124,7 +120,6 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe ...@@ -124,7 +120,6 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe
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());
...@@ -152,36 +147,12 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe ...@@ -152,36 +147,12 @@ 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), "请选择要提交的报告"); return doExecuteSubmit(ids, EntrustFlowEnum.REPORT_MAKE, EntrustFlowEnum.REPORT_CHECK, account);
EntrustReport report = new EntrustReport();
report.setStatus(EntrustReportStatusEnum.CHECK);
report.setProgress(EntrustReportStatusEnum.CHECK);
List<EntrustReportRelSample> relSamples = entrustReportRelSampleService.list(Condition.create().in("report_id", ids));
if (CollectionUtils.isNotEmpty(relSamples)) {
List<Long> sampleIds = relSamples.stream().map(EntrustReportRelSample::getSampleId).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(sampleIds)) {
EntrustSample sample = new EntrustSample();
sample.setStatus(EntrustSampleStatusEnum.REPORT_CHECK);
sample.setProgress(EntrustSampleStatusEnum.REPORT_CHECK);
entrustSampleService.update(sample, Condition.create().in("id", sampleIds));
}
}
// 存在的状态路径时,方可进入处理操作
executeSubmitOperation(getByReportId(ids[0]), EntrustFlowEnum.REPORT_MAKE, EntrustFlowEnum.REPORT_CHECK, account);
return super.update(report, Condition.create().in("id", ids));
} }
private void changeExcelReportToPdf(Long[] ids) { private void changeExcelReportToPdf(Long[] ids) {
...@@ -214,6 +185,14 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe ...@@ -214,6 +185,14 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe
} }
private void deleteReportPdf(Long[] ids) {
List<EntrustReport> reportList = list(Condition.create().in("id", ids).isNotNull("object_key"));
if (CollectionUtils.isEmpty(reportList)) {
return;
}
ossClient.deleteObjects(reportList.stream().map(EntrustReport::getPdfObjectKey).collect(Collectors.toList()));
}
private Entrust getByReportId(Long reportId) { private Entrust getByReportId(Long reportId) {
EntrustReport report = getById(reportId); EntrustReport report = getById(reportId);
if (null == report) { if (null == report) {
...@@ -222,11 +201,32 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe ...@@ -222,11 +201,32 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe
return entrustService.getById(report.getEntrustId()); return entrustService.getById(report.getEntrustId());
} }
private void executeSubmitOperation(Entrust entrust, EntrustFlowEnum fromFlowStatus, EntrustFlowEnum toFlowStatus, Account account) { private Entrust handleConditionGetEntrust(Long[] ids) {
if (entrustService.isCanIntoNextNode(entrust)) { RestAssert.fail(null == ids, "请选择要操作的报告");
Entrust entrust = getByReportId(ids[0]);
RestAssert.fail(null == entrust, "委托信息为空");
return entrust;
}
private boolean doExecuteSubmit(Long[] ids, EntrustFlowEnum fromFlowStatus, EntrustFlowEnum toFlowStatus, Account account) {
Entrust entrust = handleConditionGetEntrust(ids);
List<Long> sampleIds = getSampleIds(ids);
RestAssert.fail(null == sampleIds || sampleIds.isEmpty(), "报告样品信息为空");
// 判断配置了路径可能出现错的情况
if (fromFlowStatus == EntrustFlowEnum.REPORT_ALLOW &&
(toFlowStatus == EntrustFlowEnum.REPORT_ISSUE || toFlowStatus == EntrustFlowEnum.REPORT_SEND)) {
judgeStatusPath(entrust, toFlowStatus);
}
// 是否可以进入下一步流程,一旦为空,直接正常流程处理
EntrustFlowEnum flowStatus = EntrustFlowUtils.getNextFlowStatus(entrust.getFlowStatus(), entrust.getStatusPath());
// 报告的审核状态不再走submitToNextNode
if (null != flowStatus) {
toFlowStatus = flowStatus;
if (flowStatus == EntrustFlowEnum.QUALITY_JUDGE) {
entrustService.submitToNextNode(entrust, account); entrustService.submitToNextNode(entrust, account);
} else { }
String remark = (fromFlowStatus.getValue() < toFlowStatus.getValue() ? "提交至" : "驳回至") + toFlowStatus.getDisplay(); }
// 若提交至 -> 质量判定,那么需要更改委托状态 // 若提交至 -> 质量判定,那么需要更改委托状态
if (toFlowStatus == EntrustFlowEnum.QUALITY_JUDGE) { if (toFlowStatus == EntrustFlowEnum.QUALITY_JUDGE) {
entrust.setStatus(EntrustStatusEnum.QUALITY_CHECK); entrust.setStatus(EntrustStatusEnum.QUALITY_CHECK);
...@@ -237,41 +237,161 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe ...@@ -237,41 +237,161 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe
// 更改样品编码显示形式,由三级变为一级 // 更改样品编码显示形式,由三级变为一级
entrustSampleService.updateSampleCodeByEntrustId(entrust.getId(), 1); entrustSampleService.updateSampleCodeByEntrustId(entrust.getId(), 1);
} }
// 流程状态
// 此处只转换报告相关的状态
EntrustSampleStatusEnum sampleStatusEnum = EntrustFlowUtils.getSampleStatus(toFlowStatus);
EntrustReportStatusEnum reportStatusEnum = EntrustFlowUtils.getReportStatus(toFlowStatus);
// 若从批准往后提交,则生成报告
if (fromFlowStatus == EntrustFlowEnum.REPORT_ALLOW) {
//转化PDF
executor1.execute(() -> changeExcelReportToPdf(ids));
}
EntrustReport entrustReport = new EntrustReport();
entrustReport.setStatus(reportStatusEnum);
entrustReport.setProgress(reportStatusEnum);
// 更新对应样品的状态
updateReportRelSamples(ids, toFlowStatus);
// 更新对应委托流程状态
// 过滤掉标样,空白样
List<EntrustSample> entrustSamples = entrustSampleService.getNormalByEntrustId(entrust.getId());
// ==
EntrustSampleStatusEnum finalSampleStatusEnum = sampleStatusEnum;
if (CollectionUtils.isNotEmpty(entrustSamples) &&
entrustSamples.stream().filter(t ->
!sampleIds.contains(t.getId())
).noneMatch(t -> (int) t.getStatus().getValue() < (int) finalSampleStatusEnum.getValue())) {
entrust.setFlowStatus(toFlowStatus.getName()); entrust.setFlowStatus(toFlowStatus.getName());
entrustService.updateById(entrust); entrustService.updateById(entrust);
entrustRecordService.record(new Long[]{entrust.getId()}, fromFlowStatus.getDisplay(), toFlowStatus.getDisplay(), 0, account, remark); entrustRecordService.record(Collections.singletonList(entrust.getId()), fromFlowStatus.getDisplay(),
toFlowStatus.getDisplay(), 0, account, "提交至" + toFlowStatus.getDisplay());
} }
// 更新报告状态
return super.update(entrustReport, Condition.create().in("id", ids));
} }
private List<Long> getSampleIds(Long[] reportIds) {
List<EntrustSample> entrustSampleList = entrustSampleService.getByReportIds(reportIds);
return CollectionUtils.isEmpty(entrustSampleList) ? null : entrustSampleList.stream().map(EntrustSample::getId).collect(Collectors.toList());
}
@Transactional(rollbackFor = Exception.class) private boolean doExecuteBack(Long[] ids, EntrustFlowEnum fromFlowStatus, EntrustFlowEnum toFlowStatus, String reason, Account account) {
@Override Entrust entrust = handleConditionGetEntrust(ids);
public boolean submitReportCheck(Long[] ids, Account account) { // 是否可以进入上一步流程
RestAssert.fail(ArrayUtils.isEmpty(ids), "请选择要提交的报告"); EntrustFlowEnum flowStatus = EntrustFlowUtils.getPrevFlowStatus(entrust.getFlowStatus(), entrust.getStatusPath());
List<Long> sampleIds = getSampleIds(ids);
RestAssert.fail(CollectionUtils.isEmpty(sampleIds), "报告样品信息为空");
// 过滤掉空白样和标样
List<EntrustSample> entrustSamples = entrustSampleService.getNormalByEntrustId(entrust.getId());
if (null != flowStatus) {
toFlowStatus = flowStatus;
// 若驳回的状态不在报告状态范围内
if (flowStatus.getValue().intValue() < 8) {
// 对应样品状态
EntrustSampleStatusEnum sampleStatusEnum = EntrustFlowUtils.getSampleStatus(toFlowStatus);
EntrustReport report = new EntrustReport(); // 若前置状态不再报告范围,删除报告
report.setStatus(EntrustReportStatusEnum.ALLOW); removeByIds(Arrays.asList(ids));
report.setProgress(EntrustReportStatusEnum.ALLOW);
List<EntrustReportRelSample> relSamples = entrustReportRelSampleService.list(Condition.create().in("report_id", ids)); // 删除对应的附件
executor1.execute(() -> deleteReportPdf(ids));
if (CollectionUtils.isNotEmpty(relSamples)) { // 更新对应样品的状态
List<Long> sampleIds = relSamples.stream().map(EntrustReportRelSample::getSampleId).collect(Collectors.toList()); updateReportRelSamples(ids, toFlowStatus);
if (CollectionUtils.isNotEmpty(sampleIds)) { // 主要处理流程状态及日志
EntrustSample sample = new EntrustSample(); List<EntrustSample> filterList = entrustSamples.stream().filter(t ->
!sampleIds.contains(t.getId())
).collect(Collectors.toList());
sample.setStatus(EntrustSampleStatusEnum.REPORT_ALLOW); if (CollectionUtils.isEmpty(filterList) || filterList.stream().noneMatch(t -> {
sample.setProgress(EntrustSampleStatusEnum.REPORT_ALLOW); return (int) t.getStatus().getValue() > (int) sampleStatusEnum.getValue();
entrustSampleService.update(sample, Condition.create().in("id", sampleIds)); })) {
entrust.setFlowStatus(toFlowStatus.getName());
entrustService.updateById(entrust);
entrust.setFlowStatus(toFlowStatus.getName());
entrustRecordService.record(Collections.singletonList(entrust.getId()), fromFlowStatus.getDisplay(),
toFlowStatus.getDisplay(), 1, account, String.format("因【%s】,退回至%s", reason, toFlowStatus.getDisplay()));
entrustService.rejectToPrevNode(entrust, reason, account);
} }
return true;
} }
}
// 此处只转换报告相关的状态
EntrustSampleStatusEnum sampleStatusEnum = null;
EntrustReportStatusEnum reportStatusEnum = null;
EntrustReportStatusEnum reportProgress = null;
// 存在的状态路径时,方可进入处理操作 if (fromFlowStatus == EntrustFlowEnum.REPORT_SEND) {
executeSubmitOperation(getByReportId(ids[0]), EntrustFlowEnum.REPORT_CHECK, EntrustFlowEnum.REPORT_ALLOW, account); reportProgress = EntrustReportStatusEnum.BACK_SEND;
} else if (fromFlowStatus == EntrustFlowEnum.REPORT_ISSUE) {
reportProgress = EntrustReportStatusEnum.BACK_ISSUE;
} else if (fromFlowStatus == EntrustFlowEnum.REPORT_ALLOW) {
reportProgress = EntrustReportStatusEnum.BACK_ALLOW;
} else if (fromFlowStatus == EntrustFlowEnum.REPORT_CHECK) {
reportProgress = EntrustReportStatusEnum.CHECK;
}
return super.update(report, Condition.create().in("id", ids)); if (EntrustFlowEnum.REPORT_MAKE == toFlowStatus) {
sampleStatusEnum = EntrustSampleStatusEnum.REPORT_MAKE;
reportStatusEnum = EntrustReportStatusEnum.MAKING;
entrust.setTestTimeE(null);
} else if (EntrustFlowEnum.REPORT_CHECK == toFlowStatus) {
sampleStatusEnum = EntrustSampleStatusEnum.REPORT_CHECK;
reportStatusEnum = EntrustReportStatusEnum.CHECK;
entrust.setTestTimeE(null);
} else if (EntrustFlowEnum.REPORT_ALLOW == toFlowStatus) {
sampleStatusEnum = EntrustSampleStatusEnum.REPORT_ALLOW;
reportStatusEnum = EntrustReportStatusEnum.ALLOW;
entrust.setTestTimeE(null);
} else if (EntrustFlowEnum.REPORT_ISSUE == toFlowStatus) {
sampleStatusEnum = EntrustSampleStatusEnum.REPORT_ISSUE;
reportStatusEnum = EntrustReportStatusEnum.ISSUE;
}
EntrustSampleStatusEnum finalSampleStatusEnum = sampleStatusEnum;
// 主要处理流程状态及日志
List<EntrustSample> filterList = entrustSamples.stream().filter(t ->
!sampleIds.contains(t.getId())
).collect(Collectors.toList());
if (CollectionUtils.isEmpty(filterList) || filterList.stream().noneMatch(t -> {
return (int) t.getStatus().getValue() > (int) finalSampleStatusEnum.getValue();
})) {
entrust.setFlowStatus(toFlowStatus.getName());
entrustService.updateById(entrust);
entrust.setFlowStatus(toFlowStatus.getName());
entrustRecordService.record(Collections.singletonList(entrust.getId()), fromFlowStatus.getDisplay(),
toFlowStatus.getDisplay(), 1, account, String.format("因【%s】,退回至%s", reason, toFlowStatus.getDisplay()));
}
// 若从签收或批准往前驳回,则删除的PDF文件
if (fromFlowStatus == EntrustFlowEnum.REPORT_ISSUE || fromFlowStatus == EntrustFlowEnum.REPORT_SEND) {
executor1.execute(() -> deleteReportPdf(ids));
}
EntrustReport entrustReport = new EntrustReport();
entrustReport.setStatus(reportStatusEnum);
entrustReport.setProgress(reportProgress);
// 更新对应样品的状态
updateReportRelSamples(ids, toFlowStatus);
// 更新报告状态
return super.update(entrustReport, Condition.create().in("id", ids));
}
@Transactional(rollbackFor = Exception.class)
@Override
public boolean submitReportCheck(Long[] ids, Account account) {
return doExecuteSubmit(ids, EntrustFlowEnum.REPORT_CHECK, EntrustFlowEnum.REPORT_ALLOW, account);
} }
private void judgeStatusPath(Entrust entrust, EntrustFlowEnum nextStatus) { private void judgeStatusPath(Entrust entrust, EntrustFlowEnum nextStatus) {
...@@ -286,142 +406,63 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe ...@@ -286,142 +406,63 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe
RestAssert.fail(null != nextFlowStatus && nextFlowStatus != nextStatus, String.format("状态路径配置的下一节点为【%s】,无法进行下一步", nextFlowStatus.getDisplay())); RestAssert.fail(null != nextFlowStatus && nextFlowStatus != nextStatus, String.format("状态路径配置的下一节点为【%s】,无法进行下一步", nextFlowStatus.getDisplay()));
} }
@Transactional(rollbackFor = Exception.class)
@Override @Override
@Transactional(rollbackFor = Exception.class)
public boolean submitFromAllowToSend(Long[] ids, Account account) { public boolean submitFromAllowToSend(Long[] ids, Account account) {
RestAssert.fail(ArrayUtils.isEmpty(ids), "请选择要提交的报告"); return doExecuteSubmit(ids, EntrustFlowEnum.REPORT_ALLOW, EntrustFlowEnum.REPORT_SEND, account);
Entrust entrust = getByReportId(ids[0]);
judgeStatusPath(entrust, EntrustFlowEnum.REPORT_SEND);
EntrustReport report = new EntrustReport();
report.setStatus(EntrustReportStatusEnum.SEND);
report.setProgress(EntrustReportStatusEnum.SEND);
List<EntrustReportRelSample> relSamples = entrustReportRelSampleService.list(Condition.create().in("report_id", ids));
if (CollectionUtils.isNotEmpty(relSamples)) {
List<Long> sampleIds = relSamples.stream().map(EntrustReportRelSample::getSampleId).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(sampleIds)) {
EntrustSample sample = new EntrustSample();
sample.setStatus(EntrustSampleStatusEnum.REPORT_SEND);
sample.setProgress(EntrustSampleStatusEnum.REPORT_SEND);
entrustSampleService.update(sample, Condition.create().in("id", sampleIds));
}
}
// 存在的状态路径时,方可进入处理操作
entrust.setTestTimeE(new Date());
entrustService.updateById(entrust);
executeSubmitOperation(entrust, EntrustFlowEnum.REPORT_ALLOW, EntrustFlowEnum.REPORT_SEND, account);
//转化PDF
executor1.execute(() -> changeExcelReportToPdf(ids));
return super.update(report, Condition.create().in("id", ids));
} }
@Transactional(rollbackFor = Exception.class)
@Override @Override
@Transactional(rollbackFor = Exception.class)
public boolean submitFromAllowToIssue(Long[] ids, Account account) { public boolean submitFromAllowToIssue(Long[] ids, Account account) {
RestAssert.fail(ArrayUtils.isEmpty(ids), "请选择要提交的报告"); return doExecuteSubmit(ids, EntrustFlowEnum.REPORT_ALLOW, EntrustFlowEnum.REPORT_ISSUE, account);
Entrust entrust = getByReportId(ids[0]);
judgeStatusPath(entrust, EntrustFlowEnum.REPORT_ISSUE);
EntrustReport report = new EntrustReport();
report.setStatus(EntrustReportStatusEnum.ISSUE);
report.setProgress(EntrustReportStatusEnum.ISSUE);
List<EntrustReportRelSample> relSamples = entrustReportRelSampleService.list(Condition.create().in("report_id", ids));
if (CollectionUtils.isNotEmpty(relSamples)) {
List<Long> sampleIds = relSamples.stream().map(EntrustReportRelSample::getSampleId).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(sampleIds)) {
EntrustSample sample = new EntrustSample();
sample.setStatus(EntrustSampleStatusEnum.REPORT_ISSUE);
sample.setProgress(EntrustSampleStatusEnum.REPORT_ISSUE);
entrustSampleService.update(sample, Condition.create().in("id", sampleIds));
}
}
// 存在的状态路径时,方可进入处理操作
// 报告批准,获取当前时间为检测结束时间
entrust.setTestTimeE(new Date());
entrustService.updateById(entrust);
executeSubmitOperation(entrust, EntrustFlowEnum.REPORT_ALLOW, EntrustFlowEnum.REPORT_ISSUE, account);
//转化PDF
executor1.execute(() -> changeExcelReportToPdf(ids));
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), "请选择要提交的报告"); return doExecuteSubmit(ids, EntrustFlowEnum.REPORT_SEND, EntrustFlowEnum.QUALITY_JUDGE, account);
EntrustReport report = new EntrustReport();
report.setStatus(EntrustReportStatusEnum.END);
report.setProgress(EntrustReportStatusEnum.END);
List<EntrustReportRelSample> relSamples = entrustReportRelSampleService.list(Condition.create().in("report_id", ids));
if (CollectionUtils.isNotEmpty(relSamples)) {
List<Long> sampleIds = relSamples.stream().map(EntrustReportRelSample::getSampleId).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(sampleIds)) {
EntrustSample sample = new EntrustSample();
sample.setStatus(EntrustSampleStatusEnum.END);
sample.setProgress(EntrustSampleStatusEnum.END);
entrustSampleService.update(sample, Condition.create().in("id", sampleIds));
}
}
// 存在的状态路径时,方可进入处理操作
executeSubmitOperation(getByReportId(ids[0]), EntrustFlowEnum.REPORT_SEND, EntrustFlowEnum.QUALITY_JUDGE, 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), "请选择要提交的报告"); return doExecuteSubmit(ids, EntrustFlowEnum.REPORT_ISSUE, EntrustFlowEnum.QUALITY_JUDGE, account);
}
EntrustReport report = new EntrustReport();
report.setStatus(EntrustReportStatusEnum.END); private void updateReportRelSamples(Long[] reportIds, EntrustFlowEnum flowEnum) {
report.setProgress(EntrustReportStatusEnum.END);
List<EntrustReportRelSample> relSamples = entrustReportRelSampleService.list(Condition.create().in("report_id", ids)); RestAssert.fail(null == reportIds, "更新样品状态时报告Id为空");
RestAssert.fail(null == flowEnum, "更新样品状态时状态为空");
List<EntrustReportRelSample> relSamples = entrustReportRelSampleService.list(Condition.create().in("report_id", reportIds));
if (CollectionUtils.isNotEmpty(relSamples)) { if (CollectionUtils.isNotEmpty(relSamples)) {
List<Long> sampleIds = relSamples.stream().map(EntrustReportRelSample::getSampleId).collect(Collectors.toList()); List<Long> sampleIds = relSamples.stream().map(EntrustReportRelSample::getSampleId).collect(Collectors.toList());
EntrustSampleStatusEnum sampleStatus = EntrustFlowUtils.getSampleStatus(flowEnum);
if (CollectionUtils.isNotEmpty(sampleIds)) { if (CollectionUtils.isNotEmpty(sampleIds)) {
EntrustSample sample = new EntrustSample(); EntrustSample sample = new EntrustSample();
sample.setStatus(sampleStatus);
sample.setStatus(EntrustSampleStatusEnum.END); sample.setProgress(sampleStatus);
sample.setProgress(EntrustSampleStatusEnum.END);
entrustSampleService.update(sample, Condition.create().in("id", sampleIds)); entrustSampleService.update(sample, Condition.create().in("id", sampleIds));
// 获取检测项目状态
EntrustSampleItemStatusEnum itemStatusEnum = EntrustFlowUtils.getItemStatus(flowEnum);
// 更新检测项目状态 - 只有在胡乱配置状态路径的时候才触发,一般走不到这一步
if (EntrustSampleItemStatusEnum.END != itemStatusEnum) {
EntrustSampleItem item = new EntrustSampleItem();
item.setStatus(itemStatusEnum);
item.setProgress(itemStatusEnum);
entrustSampleItemService.update(item, Condition.create().in("entrust_sample_id", sampleIds));
}
} }
} }
// 存在的状态路径时,方可进入处理操作
executeSubmitOperation(getByReportId(ids[0]), EntrustFlowEnum.REPORT_ISSUE, EntrustFlowEnum.QUALITY_JUDGE, 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), "请选择要退回的报告"); return doExecuteBack(ids, EntrustFlowEnum.REPORT_CHECK, EntrustFlowEnum.REPORT_MAKE, reason, account);
EntrustReport report = new EntrustReport();
report.setStatus(EntrustReportStatusEnum.MAKING);
report.setProgress(EntrustReportStatusEnum.BACK_CHECK);
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) { private void rejectEntrustInfo(Long[] reportIds, String reason, EntrustReportStatusEnum reportStatusEnum, Account account) {
...@@ -438,7 +479,6 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe ...@@ -438,7 +479,6 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe
}); });
} }
/** /**
* 通过报告状态更改驳回的委托样品状态 * 通过报告状态更改驳回的委托样品状态
* *
...@@ -475,47 +515,21 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe ...@@ -475,47 +515,21 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe
@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), "请选择要退回的报告"); return doExecuteBack(ids, EntrustFlowEnum.REPORT_ISSUE, EntrustFlowEnum.REPORT_MAKE, reason, account);
EntrustReport report = new EntrustReport();
report.setStatus(EntrustReportStatusEnum.MAKING);
report.setProgress(EntrustReportStatusEnum.BACK_ISSUE);
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), "请选择要退回的报告"); return doExecuteBack(ids, EntrustFlowEnum.REPORT_SEND, EntrustFlowEnum.REPORT_ALLOW, reason, account);
EntrustReport report = new EntrustReport();
report.setStatus(EntrustReportStatusEnum.ALLOW);
report.setProgress(EntrustReportStatusEnum.BACK_SEND);
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), "请选择要退回的报告"); return doExecuteBack(ids, EntrustFlowEnum.REPORT_ALLOW, EntrustFlowEnum.REPORT_CHECK, reason, account);
EntrustReport report = new EntrustReport();
report.setStatus(EntrustReportStatusEnum.CHECK);
report.setProgress(EntrustReportStatusEnum.BACK_ALLOW);
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), "请选择要退回的报告"); return doExecuteBack(ids, EntrustFlowEnum.REPORT_ISSUE, EntrustFlowEnum.REPORT_ALLOW, reason, account);
EntrustReport report = new EntrustReport();
report.setStatus(EntrustReportStatusEnum.ALLOW);
report.setProgress(EntrustReportStatusEnum.BACK_ISSUE);
rejectEntrustInfo(ids, reason, EntrustReportStatusEnum.ALLOW, account);
return super.update(report, Condition.create().in("id", ids));
} }
} }
...@@ -282,12 +282,10 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI ...@@ -282,12 +282,10 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
} }
@Transactional(rollbackFor = Exception.class)
@Override @Override
@Transactional(rollbackFor = Exception.class)
public boolean submitTest(Long[] ids, Account account) { public boolean submitTest(Long[] ids, Account account) {
RestAssert.fail(ArrayUtils.isEmpty(ids), "请选择要提交的检测项目"); RestAssert.fail(ArrayUtils.isEmpty(ids), "请选择要提交的检测项目");
// List<EntrustSampleItem> list = super.list(Condition.create().in("id", ids).eq("status", EntrustSampleItemStatusEnum.TEST));
// RestAssert.fail(list.size() != ids.length, "请选择待检测的检测项目");
List<EntrustSampleItem> list = super.list(Condition.create().in("id", ids)); List<EntrustSampleItem> list = super.list(Condition.create().in("id", ids));
// 获取样品信息 // 获取样品信息
...@@ -296,37 +294,60 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI ...@@ -296,37 +294,60 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
// 获取委托编号 // 获取委托编号
long entrustId = entrustSample.getEntrustId(); long entrustId = entrustSample.getEntrustId();
// 委托信息
Entrust entrust = entrustService.getById(entrustId); // 判断提交的检测项目是否完成检测
// == List<EntrustSampleItemVO> unfinishItemList = baseMapper.selectUnfinishItemList(new QueryDTO().setEntrustId(entrustId).setIds(ids));
List<EntrustSampleItemVO> itemList = baseMapper.selectByEntrustId(entrustId);
// 若存在检测项目没有完成的,不可提交 if (CollectionUtils.isNotEmpty(unfinishItemList)) {
// RestAssert.fail(itemList.stream().filter(t -> (null == t.getEndIndex() || 0 == t.getEndIndex().intValue())).count() > 0, "存在没有完成检测的检测项目"); EntrustSampleItemVO vo = unfinishItemList.get(0);
// 若存在检测项目没有完成的,不可提交 RestAssert.fail(String.format("样品编号【%s】的检测项目【%s】未填写检测值,无法提交!", vo.getSampleCode(), vo.getName()));
for (EntrustSampleItemVO item : itemList) {
long testerId = null == item.getTesterId() ? 0l : item.getTesterId().longValue();
boolean noSubmit = null == item.getEndIndex() || 0 == item.getEndIndex();
if (noSubmit) {
String message = String.format("检测项目【%s】未填写检测值!", item.getName());
if (testerId != account.getUserId().longValue()) {
message = "其他用户的" + message;
} }
RestAssert.fail(message);
EntrustSampleItem sampleItem = new EntrustSampleItem();
sampleItem.setTestTime(new Date());
sampleItem.setStatus(EntrustSampleItemStatusEnum.END);
sampleItem.setProgress(EntrustSampleItemStatusEnum.END);
super.update(sampleItem, Condition.create().in("id", ids));
entrustSampleItemRecordService.record(ids, EntrustSampleItemStatusEnum.TEST.getDisplay(), EntrustSampleItemStatusEnum.END.getDisplay(), 0, "数据录入提交", account);
// 若存在委托下没有完成的检测项目,那么直接返回
unfinishItemList = baseMapper.selectUnfinishItemList(new QueryDTO().setEntrustId(entrustId).setNonIds(ids));
if (CollectionUtils.isNotEmpty(unfinishItemList)) {
return true;
} }
unfinishItemList = baseMapper.selectByEntrustId(entrustId);
unfinishItemList = unfinishItemList.stream().filter(t -> !Arrays.asList(ids).contains(t.getId())).collect(Collectors.toList());
// 存在未完成的检测项目,则返回
if (CollectionUtils.isNotEmpty(unfinishItemList) && unfinishItemList.stream().anyMatch(t -> t.getStatus() != EntrustSampleItemStatusEnum.END)) {
return true;
} }
EntrustSampleItem item = new EntrustSampleItem(); // ==
item.setTestTime(new Date()); // List<EntrustSampleItemVO> itemList = baseMapper.selectByEntrustId(entrustId);
item.setStatus(EntrustSampleItemStatusEnum.END); // // 若存在检测项目没有完成的,不可提交
item.setProgress(EntrustSampleItemStatusEnum.END); // for (EntrustSampleItemVO item : itemList) {
// long testerId = null == item.getTesterId() ? 0l : item.getTesterId().longValue();
// boolean noSubmit = null == item.getEndIndex() || 0 == item.getEndIndex();
// if (noSubmit) {
// String message = String.format("检测项目【%s】未填写检测值,无法提交!", item.getName());
// if (testerId != account.getUserId().longValue()) {
// message = "其他用户的" + message;
// }
// RestAssert.fail(message);
// }
// }
super.update(item, Condition.create().in("id", ids));
entrustSampleItemRecordService.record(ids, EntrustSampleItemStatusEnum.TEST.getDisplay(), EntrustSampleItemStatusEnum.END.getDisplay(), 0, "数据录入提交", account);
// 提交为报告编制 // 提交为报告编制
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));
// 委托信息
Entrust entrust = entrustService.getById(entrustId);
// 提交到下一节点,可能是不更改状态 // 提交到下一节点,可能是不更改状态
if (entrustService.isCanIntoNextNode(entrust)) { if (entrustService.isCanIntoNextNode(entrust)) {
entrustService.submitToNextNode(entrust, account); entrustService.submitToNextNode(entrust, account);
...@@ -338,16 +359,11 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI ...@@ -338,16 +359,11 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
// 添加委托日志 // 添加委托日志
entrustRecordService.record(new Long[]{entrustId}, "数据录入", "报告编制", 0, account, "提交至报告编制"); entrustRecordService.record(new Long[]{entrustId}, "数据录入", "报告编制", 0, account, "提交至报告编制");
//执行转PDF操作 // 执行转PDF操作
executor1.execute(new Runnable() { executor1.execute(() -> changeExcelToPdf(ids, list));
@Override
public void run() {
changeExcelToPdf(ids, list);
}
});
// 提交后执行组合判定 // 提交后执行组合判定
executor1.execute(() -> updateComposeJudgeByTestValue(entrustId)); executor1.execute(() -> updateComposeJudgeByTestValue(entrustId));
return true; return true;
} }
...@@ -895,6 +911,7 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI ...@@ -895,6 +911,7 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public boolean updateQualityJudge(Long[] ids, Account account) { public boolean updateQualityJudge(Long[] ids, Account account) {
RestAssert.fail(null == ids || ids.length == 0, "样品编号不能为空"); RestAssert.fail(null == ids || ids.length == 0, "样品编号不能为空");
// == // ==
List<EntrustSampleVO> sampleList = entrustSampleService.getVOListByIds(Arrays.asList(ids)); List<EntrustSampleVO> sampleList = entrustSampleService.getVOListByIds(Arrays.asList(ids));
...@@ -911,7 +928,7 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI ...@@ -911,7 +928,7 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
// 若为此标准,需要判断是否需要过滤掉稀有元素的判断 // 若为此标准,需要判断是否需要过滤掉稀有元素的判断
boolean isSpecStandard = "GB/T 1196 2017".equalsIgnoreCase(sampleVO.getProductCode()); boolean isSpecStandard = "GB/T 1196 2017".equalsIgnoreCase(sampleVO.getProductCode());
// 检测值【内部检测值实际为指标表中数据,外委检测值为检测项目数据】 // 检测值【内部检测值实际为指标表中数据,外委检测值为检测项目数据】
List<EntrustSampleItemVO> sampleItemList = null; List<EntrustSampleItemVO> sampleItemList;
// 若为外部检测 // 若为外部检测
if (isOutEntrustData) { if (isOutEntrustData) {
sampleItemList = entrustSampleItemService.getListBySampleId(sampleVO.getId()); sampleItemList = entrustSampleItemService.getListBySampleId(sampleVO.getId());
...@@ -1186,6 +1203,50 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI ...@@ -1186,6 +1203,50 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
return true; return true;
} }
@Override
@Transactional(rollbackFor = Exception.class)
public boolean autoAllotItemFromFlowStatus(Long entrustId, EntrustFlowEnum flowEnum, Account account) {
if (null == entrustId) {
return false;
}
List<EntrustSampleItemVO> sampleItemList = baseMapper.selectByEntrustId(entrustId);
if (CollectionUtils.isEmpty(sampleItemList)) {
return false;
}
List<Long> itemIds = sampleItemList.stream().map(EntrustSampleItem::getId).collect(Collectors.toList());
//
List<String> itemNameList = sampleItemList.stream().map(EntrustSampleItem::getName).collect(Collectors.toList());
// 检测项目基础数据
List<Qualification> qualifications = qualificationService.list(Condition.create().in("name", itemNameList));
sampleItemList.forEach(t -> {
AtomicReference<Qualification> qualificationAtomic = new AtomicReference<>();
if (qualifications.stream().anyMatch(q -> {
if (q.getName().equals(t.getName())) {
qualificationAtomic.set(q);
return true;
}
return false;
})) {
Qualification qua = qualificationAtomic.get();
RestAssert.fail(null == qua.getMainTesterId(), String.format("检测项目【%s】主检人为空", t.getName()));
t.setTester(qua.getMainTester()).setTesterId(qua.getMainTesterId())
.setStatus(EntrustSampleItemStatusEnum.TEST).setProgress(EntrustSampleItemStatusEnum.TEST);
} else {
RestAssert.fail(String.format("检测项目【%s】找不到对应的数据", t.getName()));
}
});
List<EntrustSampleItem> itemList = sampleItemList.stream().map(t -> t.convert(EntrustSampleItem.class)).collect(Collectors.toList());
updateBatchById(itemList);
// 判断是否都已经分配,若全部已经分配,那么更改样品和委托状态
entrustSampleItemRecordService.record(itemIds, flowEnum.getDisplay(), EntrustSampleItemStatusEnum.TEST.getDisplay(), 0, "任务分配", account);
// ==
entrustRecordService.record(new Long[]{entrustId}, flowEnum.getDisplay(), "数据录入", 0, account, "提交至数据录入");
return true;
}
/** /**
* 处理 原铝等标准为 * 处理 原铝等标准为
*/ */
......
...@@ -393,6 +393,10 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe ...@@ -393,6 +393,10 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
sampleStatus = EntrustSampleStatusEnum.TEST; sampleStatus = EntrustSampleStatusEnum.TEST;
itemStatus = EntrustSampleItemStatusEnum.TEST; itemStatus = EntrustSampleItemStatusEnum.TEST;
entrustSamplePrepareService.addOrUpdateToSetStatus(sampleIds, EntrustSamplePrepareStatusEnum.TEST); entrustSamplePrepareService.addOrUpdateToSetStatus(sampleIds, EntrustSamplePrepareStatusEnum.TEST);
// 若没有分配任务到人,那么将执行自动分配
if (!entrustSampleItemService.isAllocatedByEntrustId(entrust.getId(), null)) {
entrustSampleItemService.autoAllotItemFromFlowStatus(entrust.getId(), nextFlowStatus, account);
}
} else if (nextFlowStatus == EntrustFlowEnum.REPORT_MAKE) { } else if (nextFlowStatus == EntrustFlowEnum.REPORT_MAKE) {
sampleStatus = EntrustSampleStatusEnum.REPORT_MAKE; sampleStatus = EntrustSampleStatusEnum.REPORT_MAKE;
itemStatus = EntrustSampleItemStatusEnum.END; itemStatus = EntrustSampleItemStatusEnum.END;
...@@ -457,7 +461,7 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe ...@@ -457,7 +461,7 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
updateBatchById(sampleList); updateBatchById(sampleList);
} }
if (null != itemStatus) { if (null != itemStatus) {
updateItem.setStatus(itemStatus); updateItem.setStatus(itemStatus).setProgress(itemStatus);
entrustSampleItemService.update(updateItem, Condition.create().in("entrust_sample_id", sampleIds)); entrustSampleItemService.update(updateItem, Condition.create().in("entrust_sample_id", sampleIds));
} }
return false; return false;
...@@ -595,6 +599,11 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe ...@@ -595,6 +599,11 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
} }
@Override @Override
public List<EntrustSample> getNormalByEntrustId(Long entrustId) {
return list(Condition.create().eq("entrust_id", entrustId).eq("type", 0));
}
@Override
public List<EntrustSampleVO> getVOListByEntrustId(Long entrustId) { public List<EntrustSampleVO> getVOListByEntrustId(Long entrustId) {
if (null == entrustId) { if (null == entrustId) {
return null; return null;
...@@ -949,7 +958,7 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe ...@@ -949,7 +958,7 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
mapReplace.put("#{nowDate}", DateUtils.toYearMonthDay(new Date())); mapReplace.put("#{nowDate}", DateUtils.toYearMonthDay(new Date()));
mapReplace.put("#{sampleNum}", countByEntrustId(entrust.getId()) + ""); mapReplace.put("#{sampleNum}", countByEntrustId(entrust.getId()) + "");
List<EntrustSample> list = sampleList.stream().filter(s -> StringUtils.isNotEmpty(s.getSampleFrom())).collect(Collectors.toList()); List<EntrustSample> list = sampleList.stream().filter(s -> StringUtils.isNotEmpty(s.getSampleFrom())).collect(Collectors.toList());
mapReplace.put("#{sampleFrom}",list.size() > 0 ? list.get(0).getSampleFrom() : " - " ); mapReplace.put("#{sampleFrom}", list.size() > 0 ? list.get(0).getSampleFrom() : " - ");
HSSFWorkbookUtil.replaceModel(mapReplace, xssfWorkbook, 0); HSSFWorkbookUtil.replaceModel(mapReplace, xssfWorkbook, 0);
XSSFSheet sheetOne = xssfWorkbook.getSheetAt(0); XSSFSheet sheetOne = xssfWorkbook.getSheetAt(0);
String sheetName = sheetOne.getSheetName(); String sheetName = sheetOne.getSheetName();
...@@ -1857,4 +1866,9 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe ...@@ -1857,4 +1866,9 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
}), String.format("样品编号【%s】的顺序号【%d】已存在", sampleCodeAtomic.get(), orderByAtomic.get())); }), String.format("样品编号【%s】的顺序号【%d】已存在", sampleCodeAtomic.get(), orderByAtomic.get()));
return updateById(entrustSample); return updateById(entrustSample);
} }
@Override
public List<EntrustSample> getByReportIds(Long[] reportIds) {
return baseMapper.selectByReportIds(reportIds);
}
} }
\ No newline at end of file
...@@ -246,7 +246,7 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust> ...@@ -246,7 +246,7 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
List<EntrustSample> saveSampleList = new ArrayList<>(); List<EntrustSample> saveSampleList = new ArrayList<>();
List<EntrustSampleItem> saveEntrustSampleItemList = new ArrayList<>(); List<EntrustSampleItem> saveEntrustSampleItemList = new ArrayList<>();
int incNum = 0; int incNum = 10;
for (EntrustSampleDTO sampleDTO : sampleDTOList) { for (EntrustSampleDTO sampleDTO : sampleDTOList) {
EntrustSample sample = sampleDTO.convert(EntrustSample.class); EntrustSample sample = sampleDTO.convert(EntrustSample.class);
sample.setEntrustId(entrust.getId()); sample.setEntrustId(entrust.getId());
...@@ -434,10 +434,11 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust> ...@@ -434,10 +434,11 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
List<EntrustSample> saveSampleList = new ArrayList<>(); List<EntrustSample> saveSampleList = new ArrayList<>();
List<EntrustSampleItem> saveItemList = new ArrayList<>(); List<EntrustSampleItem> saveItemList = new ArrayList<>();
for (int x = 0; x < sampleList.size(); x++) { int incNum = 10;
EntrustSampleDTO dto = sampleList.get(x); for (EntrustSampleDTO dto : sampleList) {
EntrustSample sample = dto.convert(EntrustSample.class); EntrustSample sample = dto.convert(EntrustSample.class);
sample.setOrderBy(x); sample.setOrderBy(incNum);
incNum += 10;
if (null != sample.getId()) { if (null != sample.getId()) {
updateSampleList.add(sample); updateSampleList.add(sample);
sampleIdsList.add(sample.getId()); sampleIdsList.add(sample.getId());
...@@ -833,8 +834,8 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust> ...@@ -833,8 +834,8 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
return true; return true;
} }
@Transactional(rollbackFor = Exception.class)
@Override @Override
@Transactional(rollbackFor = Exception.class)
public boolean submitToNextNode(Entrust entrust, Account account) { public boolean submitToNextNode(Entrust entrust, Account account) {
String statusPath = entrust.getStatusPath(), flowStatus = entrust.getFlowStatus(); String statusPath = entrust.getStatusPath(), flowStatus = entrust.getFlowStatus();
RestAssert.fail(StringUtils.isBlank(statusPath), String.format("编号为【%s】的委托,未配置流程状态路径信息!", entrust.getCode())); RestAssert.fail(StringUtils.isBlank(statusPath), String.format("编号为【%s】的委托,未配置流程状态路径信息!", entrust.getCode()));
...@@ -843,12 +844,16 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust> ...@@ -843,12 +844,16 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
flowStatus = EntrustFlowEnum.DRAFT.getName(); flowStatus = EntrustFlowEnum.DRAFT.getName();
} }
EntrustFlowEnum nextFlowStatus = EntrustFlowUtils.getNextFlowStatus(flowStatus, statusPath); EntrustFlowEnum nextFlowStatus = EntrustFlowUtils.getNextFlowStatus(flowStatus, statusPath);
RestAssert.fail(null == nextFlowStatus, String.format("编号为【%s】的委托,未配置下一流程状态信息!", entrust.getCode()));
int nextFlowValue = nextFlowStatus.getValue().intValue();
EntrustStatusEnum nextStatus = EntrustFlowUtils.getStatus(nextFlowStatus); EntrustStatusEnum nextStatus = EntrustFlowUtils.getStatus(nextFlowStatus);
RestAssert.fail(null == nextStatus, String.format("编号为【%s】的委托,未配置下一流程状态信息!", entrust.getCode())); RestAssert.fail(null == nextStatus, String.format("编号为【%s】的委托,未配置下一流程状态信息!", entrust.getCode()));
// 当前委托状态 // 当前委托状态
EntrustStatusEnum status = entrust.getStatus(); EntrustStatusEnum status = entrust.getStatus();
// 是否特殊需求 // 是否特殊需求
boolean isSpecAsk = null == entrust.getSpecialAsk() ? false : ("是".equals(entrust.getSpecialAsk())); boolean isSpecAsk = null == entrust.getSpecialAsk() ? false : ("是".equals(entrust.getSpecialAsk()));
// 是否需要修改样品和检测项目(由于报告处只会修改部分样品)
boolean isUpdateSampleInfo = nextFlowValue < 9 || nextFlowValue > 12;
// 若为特殊需求,必须要走评审 // 若为特殊需求,必须要走评审
String uri = ""; String uri = "";
if (isSpecAsk || nextStatus == EntrustStatusEnum.CHECK) { if (isSpecAsk || nextStatus == EntrustStatusEnum.CHECK) {
...@@ -861,7 +866,11 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust> ...@@ -861,7 +866,11 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
uri = "/hmhj/quality_manage/quality_decide"; uri = "/hmhj/quality_manage/quality_decide";
} }
// 处理样品以及检测项目的流程状态 // 处理样品以及检测项目的流程状态
if (!isUpdateSampleInfo) {
return true;
}
entrustSampleService.updateSampleNextFlowInfo(entrust, nextFlowStatus, account); entrustSampleService.updateSampleNextFlowInfo(entrust, nextFlowStatus, account);
entrust.setStatus(nextStatus); entrust.setStatus(nextStatus);
entrust.setProgress(nextStatus); entrust.setProgress(nextStatus);
entrust.setFlowStatus(nextFlowStatus.getName()); entrust.setFlowStatus(nextFlowStatus.getName());
...@@ -1000,6 +1009,7 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust> ...@@ -1000,6 +1009,7 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
} }
@Override @Override
@Transactional(rollbackFor = Exception.class)
public boolean backFromMake(Long[] ids, Account account, String reason) { public boolean backFromMake(Long[] ids, Account account, String reason) {
RestAssert.fail(ArrayUtils.isEmpty(ids), "请选择要驳回的委托"); RestAssert.fail(ArrayUtils.isEmpty(ids), "请选择要驳回的委托");
int count = super.count(Condition.create().in("id", ids).eq("status", EntrustStatusEnum.MAKE)); int count = super.count(Condition.create().in("id", ids).eq("status", EntrustStatusEnum.MAKE));
...@@ -1031,12 +1041,12 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust> ...@@ -1031,12 +1041,12 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
} }
@Override @Override
@Transactional(rollbackFor = Exception.class)
public boolean backFromReceive(Long[] ids, Account account, String reason) { public boolean backFromReceive(Long[] ids, Account account, String reason) {
RestAssert.fail(ArrayUtils.isEmpty(ids), "请选择要驳回的委托"); RestAssert.fail(ArrayUtils.isEmpty(ids), "请选择要驳回的委托");
int count = super.count(Condition.create().in("id", ids).eq("status", EntrustStatusEnum.TEST)); int count = super.count(Condition.create().in("id", ids).eq("status", EntrustStatusEnum.TEST));
RestAssert.fail(ids.length != count, "请选择要退回至登记的委托"); RestAssert.fail(ids.length != count, "请选择要退回至登记的委托");
List<Entrust> entrustList = getBatchIds(Arrays.asList(ids)); List<Entrust> entrustList = getBatchIds(Arrays.asList(ids));
boolean hasSendMessage = false;
for (Entrust e : entrustList) { for (Entrust e : entrustList) {
e.setStatus(EntrustStatusEnum.DRAFT); e.setStatus(EntrustStatusEnum.DRAFT);
e.setProgress(EntrustStatusEnum.BACK_RECEIVE); e.setProgress(EntrustStatusEnum.BACK_RECEIVE);
...@@ -1307,4 +1317,9 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust> ...@@ -1307,4 +1317,9 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
return page.setRecords(baseMapper.selectVOList(page, entrust)); return page.setRecords(baseMapper.selectVOList(page, entrust));
} }
@Override
public boolean updateEntrustById(Entrust entrust) {
return baseMapper.updateEntrustById(entrust) > 0;
}
} }
package com.patzn.cloud.service.lims.hmhj.service.impl; package com.patzn.cloud.service.lims.hmhj.service.impl;
import com.patzn.cloud.commons.api.RestAssert;
import com.patzn.cloud.commons.controller.Account;
import com.patzn.cloud.service.hmhj.entity.OriginalTemplateConfig; import com.patzn.cloud.service.hmhj.entity.OriginalTemplateConfig;
import com.patzn.cloud.service.lims.hmhj.mapper.OriginalTemplateConfigMapper; import com.patzn.cloud.service.lims.hmhj.mapper.OriginalTemplateConfigMapper;
import com.patzn.cloud.service.lims.hmhj.service.IOriginalTemplateConfigService; import com.patzn.cloud.service.lims.hmhj.service.IOriginalTemplateConfigService;
...@@ -9,6 +11,7 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; ...@@ -9,6 +11,7 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper; import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.plugins.Page;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
...@@ -31,4 +34,11 @@ public class OriginalTemplateConfigServiceImpl extends BaseServiceImpl<OriginalT ...@@ -31,4 +34,11 @@ public class OriginalTemplateConfigServiceImpl extends BaseServiceImpl<OriginalT
public boolean removeByIds(List<Long> ids) { public boolean removeByIds(List<Long> ids) {
return baseMapper.deleteBatchIds(ids) > 0; return baseMapper.deleteBatchIds(ids) > 0;
} }
@Override
public boolean updateConfigById(OriginalTemplateConfig config, Account account) {
RestAssert.fail(null == config.getId(), "配置项ID为空");
config.setLid(account.getUserId()).setLtime(new Date());
return baseMapper.updateConfigById(config) > 0;
}
} }
...@@ -83,7 +83,7 @@ public class OriginalTemplateServiceImpl extends BaseServiceImpl<OriginalTemplat ...@@ -83,7 +83,7 @@ public class OriginalTemplateServiceImpl extends BaseServiceImpl<OriginalTemplat
@Override @Override
public Page<OriginalTemplate> page(Page<OriginalTemplate> page, OriginalTemplate originalTemplate) { public Page<OriginalTemplate> page(Page<OriginalTemplate> page, OriginalTemplate originalTemplate) {
String name = originalTemplate.getName() , alias = originalTemplate.getAlias(); String name = originalTemplate.getName(), alias = originalTemplate.getAlias();
// 支持模糊搜索 // 支持模糊搜索
originalTemplate.setAlias(null); originalTemplate.setAlias(null);
originalTemplate.setName(null); originalTemplate.setName(null);
...@@ -100,6 +100,12 @@ public class OriginalTemplateServiceImpl extends BaseServiceImpl<OriginalTemplat ...@@ -100,6 +100,12 @@ public class OriginalTemplateServiceImpl extends BaseServiceImpl<OriginalTemplat
} }
@Override @Override
public boolean updateTemplateById(OriginalTemplate originalTemplate) {
RestAssert.fail(null == originalTemplate.getId(), "原始记录模板ID为空");
return baseMapper.updateTemplateById(originalTemplate) > 0;
}
@Override
public boolean uploadTemplate(MultipartFile file, String classType, String name, String remark, int templateType) { public boolean uploadTemplate(MultipartFile file, String classType, String name, String remark, int templateType) {
RestAssert.fail(StringUtils.isBlank(classType), "模板类别不能为空"); RestAssert.fail(StringUtils.isBlank(classType), "模板类别不能为空");
RestAssert.fail(StringUtils.isBlank(name), "请填写原始记录名称"); RestAssert.fail(StringUtils.isBlank(name), "请填写原始记录名称");
...@@ -235,8 +241,8 @@ public class OriginalTemplateServiceImpl extends BaseServiceImpl<OriginalTemplat ...@@ -235,8 +241,8 @@ public class OriginalTemplateServiceImpl extends BaseServiceImpl<OriginalTemplat
return true; return true;
} }
public void addVersionRecord( OriginalRecord report){ public void addVersionRecord(OriginalRecord report) {
OriginalRecordVersion recordVersion =report.convert(OriginalRecordVersion.class); OriginalRecordVersion recordVersion = report.convert(OriginalRecordVersion.class);
recordVersion.setId(null); recordVersion.setId(null);
recordVersion.setOriginalRecordId(report.getId()); recordVersion.setOriginalRecordId(report.getId());
originalRecordVersionService.save(recordVersion); originalRecordVersionService.save(recordVersion);
...@@ -286,11 +292,6 @@ public class OriginalTemplateServiceImpl extends BaseServiceImpl<OriginalTemplat ...@@ -286,11 +292,6 @@ public class OriginalTemplateServiceImpl extends BaseServiceImpl<OriginalTemplat
int sheetSize = xssfWorkbook.getNumberOfSheets(); int sheetSize = xssfWorkbook.getNumberOfSheets();
Integer moreSheet = template.getMoreSheet(); Integer moreSheet = template.getMoreSheet();
List<OriginalTemplateConfig> configList = originalTemplateConfigService.list(Condition.create().eq("template_id", template.getId())); List<OriginalTemplateConfig> configList = originalTemplateConfigService.list(Condition.create().eq("template_id", template.getId()));
...@@ -335,7 +336,7 @@ public class OriginalTemplateServiceImpl extends BaseServiceImpl<OriginalTemplat ...@@ -335,7 +336,7 @@ public class OriginalTemplateServiceImpl extends BaseServiceImpl<OriginalTemplat
for (OriginalTemplateConfig config : configList) { for (OriginalTemplateConfig config : configList) {
if ("sampleCode".equals(config.getDataAttribute())||"code".equals(config.getDataAttribute())) { if ("sampleCode".equals(config.getDataAttribute()) || "code".equals(config.getDataAttribute())) {
sampleCol = config.getColumnPlace(); sampleCol = config.getColumnPlace();
break; break;
} }
...@@ -361,10 +362,10 @@ public class OriginalTemplateServiceImpl extends BaseServiceImpl<OriginalTemplat ...@@ -361,10 +362,10 @@ public class OriginalTemplateServiceImpl extends BaseServiceImpl<OriginalTemplat
collectEntity.setItemMegerRow(config.getMergeRowNum()); collectEntity.setItemMegerRow(config.getMergeRowNum());
collectEntity.setAttribute(config.getDataAttribute()); collectEntity.setAttribute(config.getDataAttribute());
if (StringUtils.isBlank(config.getDataAttribute())){ if (StringUtils.isBlank(config.getDataAttribute())) {
collectEntity.setName(config.getAttributeName()); collectEntity.setName(config.getAttributeName());
}else{ } else {
if (config.getDataAttribute().startsWith("clc.")){ if (config.getDataAttribute().startsWith("clc.")) {
collectEntity.setName(config.getAttributeName()); collectEntity.setName(config.getAttributeName());
} else { } else {
collectEntity.setName(config.getDataAttribute()); collectEntity.setName(config.getDataAttribute());
...@@ -383,10 +384,10 @@ public class OriginalTemplateServiceImpl extends BaseServiceImpl<OriginalTemplat ...@@ -383,10 +384,10 @@ public class OriginalTemplateServiceImpl extends BaseServiceImpl<OriginalTemplat
collectEntity.setItemMegerRow(config.getMergeRowNum()); collectEntity.setItemMegerRow(config.getMergeRowNum());
collectEntity.setAttribute(config.getDataAttribute()); collectEntity.setAttribute(config.getDataAttribute());
if (StringUtils.isBlank(config.getDataAttribute())){ if (StringUtils.isBlank(config.getDataAttribute())) {
collectEntity.setName(config.getAttributeName()); collectEntity.setName(config.getAttributeName());
}else{ } else {
if (config.getDataAttribute().startsWith("clc.")){ if (config.getDataAttribute().startsWith("clc.")) {
collectEntity.setName(config.getAttributeName()); collectEntity.setName(config.getAttributeName());
} else { } else {
collectEntity.setName(config.getDataAttribute()); collectEntity.setName(config.getDataAttribute());
...@@ -488,10 +489,10 @@ public class OriginalTemplateServiceImpl extends BaseServiceImpl<OriginalTemplat ...@@ -488,10 +489,10 @@ public class OriginalTemplateServiceImpl extends BaseServiceImpl<OriginalTemplat
exp = expList.get(0); exp = expList.get(0);
} else if (expList.size() > 1) { } else if (expList.size() > 1) {
for (EntrustSampleItem item : expList) { for (EntrustSampleItem item : expList) {
if (StringUtils.isBlank(item.getName())||StringUtils.isBlank(soilItemCollectData.getAttraute())){ if (StringUtils.isBlank(item.getName()) || StringUtils.isBlank(soilItemCollectData.getAttraute())) {
continue; continue;
} }
if (item.getName().equals(soilItemCollectData.getAttraute())){ if (item.getName().equals(soilItemCollectData.getAttraute())) {
exp = item; exp = item;
break; break;
} }
...@@ -581,11 +582,10 @@ public class OriginalTemplateServiceImpl extends BaseServiceImpl<OriginalTemplat ...@@ -581,11 +582,10 @@ public class OriginalTemplateServiceImpl extends BaseServiceImpl<OriginalTemplat
originalRecord.setId(businessId); originalRecord.setId(businessId);
originalRecord.setObjectKey(obsFileResult.getObjectKey()); originalRecord.setObjectKey(obsFileResult.getObjectKey());
return originalTemplateService.updateById(originalRecord); return originalTemplateService.updateTemplateById(originalRecord);
} }
@Override @Override
public boolean editReportTemplate(String someParam, OssFileResult obsFileResult) { public boolean editReportTemplate(String someParam, OssFileResult obsFileResult) {
RestAssert.fail(StringUtils.isBlank(someParam), "业务ID不能为空"); RestAssert.fail(StringUtils.isBlank(someParam), "业务ID不能为空");
......
...@@ -48,7 +48,12 @@ ...@@ -48,7 +48,12 @@
</select> </select>
<select id="selectEntrustSampleReceive" resultType="com.patzn.cloud.service.hmhj.vo.EntrustVO"> <select id="selectEntrustSampleReceive" resultType="com.patzn.cloud.service.hmhj.vo.EntrustVO">
SELECT e.* FROM entrust e WHERE e.deleted = 0 SELECT e.*,s.sample_name
FROM entrust e
LEFT JOIN (
select s.entrust_id, max(s.name) "sample_name" from entrust_sample s where s.deleted = 0 group by s.entrust_id
) s on s.entrust_id = e.id
WHERE e.deleted = 0
<include refid="basicCondition"/> <include refid="basicCondition"/>
<if test="null != vo.prepareStatus"> <if test="null != vo.prepareStatus">
and exists ( and exists (
...@@ -72,13 +77,18 @@ ...@@ -72,13 +77,18 @@
<select id="selectVOList" resultType="com.patzn.cloud.service.hmhj.vo.EntrustVO"> <select id="selectVOList" resultType="com.patzn.cloud.service.hmhj.vo.EntrustVO">
SELECT e.* FROM entrust e WHERE e.deleted = 0 SELECT e.*,s.sample_name
FROM entrust e
LEFT JOIN (
select s.entrust_id, max(s.name) "sample_name" from entrust_sample s where s.deleted = 0 group by s.entrust_id
) s on s.entrust_id = e.id
WHERE e.deleted = 0
<include refid="basicCondition"/> <include refid="basicCondition"/>
<if test="null != vo.sampleStatus"> <if test="null != vo.sampleStatus">
AND exists ( AND exists (
select 1 from entrust_sample s where s.deleted = 0 select 1 from entrust_sample s where s.deleted = 0
and s.entrust_id = e.id and s.status = #{vo.sampleStatus} and s.entrust_id = e.id and s.type = 0 and s.status = #{vo.sampleStatus}
) )
</if> </if>
...@@ -137,23 +147,43 @@ ...@@ -137,23 +147,43 @@
</select> </select>
<select id="selectVOListByItem" resultType="com.patzn.cloud.service.hmhj.vo.EntrustVO"> <select id="selectVOListByItem" resultType="com.patzn.cloud.service.hmhj.vo.EntrustVO">
SELECT distinct e.* FROM SELECT
entrust e,entrust_sample s,entrust_sample_item i e.*,s.sample_name
WHERE e.deleted = 0 and s.deleted = 0 and i.deleted = 0 FROM entrust e
and s.entrust_id = e.id and i.entrust_sample_id = s.id left join (
select s.company_id,s.entrust_id,max(s.name) "sample_name"
from entrust_sample s where s.deleted = 0
group by s.company_id, s.entrust_id
) s on s.entrust_id = e.id
WHERE e.deleted = 0 and s.entrust_id = e.id
<include refid="basicCondition"/> <include refid="basicCondition"/>
<if test="null!=vo.itemStatus"> <if test="null!=vo.itemStatus">
and i.status = #{vo.itemStatus} and exists (
select 1 from entrust_sample es,entrust_sample_item esi
where es.id = esi.entrust_sample_id
and es.deleted = 0 and esi.deleted = 0
and esi.status = #{vo.itemStatus}
)
</if> </if>
<if test="null!=vo.itemStatusEnumList"> <if test="null!=vo.itemStatusEnumList">
AND i.status IN and exists (
select 1 from entrust_sample es,entrust_sample_item esi
where es.id = esi.entrust_sample_id
and es.deleted = 0 and esi.deleted = 0
and esi.status IN
<foreach collection="vo.itemStatusEnumList" index="index" item="status" open="(" separator="," close=")"> <foreach collection="vo.itemStatusEnumList" index="index" item="status" open="(" separator="," close=")">
#{status} #{status}
</foreach> </foreach>
)
</if> </if>
<if test="null!=vo.testerId"> <if test="null!=vo.testerId">
AND i.tester_id = #{vo.testerId} and exists (
select 1 from entrust_sample es,entrust_sample_item esi
where es.id = esi.entrust_sample_id
and es.deleted = 0 and esi.deleted = 0
and esi.tester_id = #{vo.testerId}
)
</if> </if>
order by e.entrust_time desc,e.code desc order by e.entrust_time desc,e.code desc
</select> </select>
...@@ -177,5 +207,51 @@ ...@@ -177,5 +207,51 @@
order by e.entrust_time desc order by e.entrust_time desc
</select> </select>
<update id="updateEntrustById">
update entrust
set
client = #{vo.client}
,ltime = #{vo.ltime}
,lid = #{vo.lid}
,client_address = #{vo.clientAddress}
,client_tel = #{vo.clientTel}
,assignor = #{vo.assignor}
,assignor_id = #{vo.assignorId}
,entrust_time = #{vo.entrustTime}
,report_get_way = #{vo.reportGetWay}
,sample_handle_advise = #{vo.sampleHandleAdvise}
,surplus_sample_limit = #{vo.surplusSampleLimit}
,test_side = #{vo.testSide}
,test_address = #{vo.testAddress}
,test_contact = #{vo.testContact}
,test_tel = #{vo.testTel}
,test_instructions = #{vo.testInstructions}
,test_ask = #{vo.testAsk}
,receiver = #{vo.receiver}
,receiver_id = #{vo.receiverId}
,receive_time = #{vo.receiveTime}
,status = #{vo.status}
,progress = #{vo.progress}
,special_ask = #{vo.specialAsk}
,type = #{vo.type}
,status_path = #{vo.statusPath}
,flow_status = #{vo.flowStatus}
,expect_send_time = #{vo.expectSendTime}
,live_witness = #{vo.liveWitness}
,sample_size = #{vo.sampleSize}
,priority = #{vo.priority}
,test_time_s = #{vo.testTimeS}
,test_time_e = #{vo.testTimeE}
,proposer_id = #{vo.proposerId}
,approver_id = #{vo.approverId}
,proposer = #{vo.proposer}
,approver = #{vo.approver}
,total_fee = #{vo.totalFee}
,approve_time = #{vo.approveTime}
,approve_status = #{vo.approveStatus}
,print_status = #{vo.printStatus}
where id = #{vo.id}
</update>
</mapper> </mapper>
...@@ -92,7 +92,8 @@ ...@@ -92,7 +92,8 @@
</if> </if>
) )
SELECT i.*,s.name AS "sampleName",e.test_side "testSide",s.code AS "sampleCode",l.record_id,r.object_key AS "recordObjectKey", SELECT i.*,s.name AS "sampleName",e.test_side "testSide",s.code AS "sampleCode",l.record_id,r.object_key AS
"recordObjectKey",
s.compliance_test,s.sample_from,sample_shape,s.first_code,s.second_code,s.third_code,i.in_report s.compliance_test,s.sample_from,sample_shape,s.first_code,s.second_code,s.third_code,i.in_report
FROM i FROM i
JOIN entrust_sample s ON i.entrust_sample_id = s.id JOIN entrust_sample s ON i.entrust_sample_id = s.id
...@@ -159,7 +160,8 @@ ...@@ -159,7 +160,8 @@
</if> </if>
) )
SELECT i.*,s.name AS "sampleName",s.code AS "sampleCode",e.test_side "testSide",l.record_id,r.object_key AS "recordObjectKey", SELECT i.*,s.name AS "sampleName",s.code AS "sampleCode",e.test_side "testSide",l.record_id,r.object_key AS
"recordObjectKey",
s.compliance_test,s.second_code,s.third_code,i.in_report s.compliance_test,s.second_code,s.third_code,i.in_report
FROM i FROM i
JOIN entrust_sample s ON i.entrust_sample_id = s.id JOIN entrust_sample s ON i.entrust_sample_id = s.id
...@@ -270,32 +272,60 @@ ...@@ -270,32 +272,60 @@
</select> </select>
<select id="selectByOriginalRecordId" resultType="com.patzn.cloud.service.hmhj.vo.EntrustSampleItemVO"> <select id="selectByOriginalRecordId" resultType="com.patzn.cloud.service.hmhj.vo.EntrustSampleItemVO">
SELECT SELECT i.id,
i.id,i.name,i.entrust_sample_id,s.entrust_id,i.agreed_value,i.test_value,i.standard,s.code AS i.name,
"sampleCode",s.name AS "sampleName", s.sample_shape ,s.sample_quantity, s.standard, s.sample_from, i.entrust_sample_id,
s.product_code,s.name_code s.entrust_id,
FROM i.agreed_value,
entrust_sample_item i i.test_value,
i.standard,
s.code AS
"sampleCode",
s.name AS "sampleName",
s.sample_shape,
s.sample_quantity,
s.standard,
s.sample_from,
s.product_code,
s.name_code
FROM entrust_sample_item i
JOIN entrust_sample s ON i.entrust_sample_id = s.ID JOIN entrust_sample s ON i.entrust_sample_id = s.ID
JOIN item_rel_original_record rr on i.id = rr.item_id JOIN item_rel_original_record rr on i.id = rr.item_id
WHERE i.deleted = 0 AND s.deleted = 0 and rr.deleted = 0 and rr.record_id = #{originalRecordId} limit 1 WHERE i.deleted = 0
AND s.deleted = 0
and rr.deleted = 0
and rr.record_id = #{originalRecordId} limit 1
</select> </select>
<select id="selectByEntrustSampleId" resultType="com.patzn.cloud.service.hmhj.vo.EntrustSampleItemVO"> <select id="selectByEntrustSampleId" resultType="com.patzn.cloud.service.hmhj.vo.EntrustSampleItemVO">
SELECT SELECT i.id,
i.id,i.name,i.entrust_sample_id,s.entrust_id,i.agreed_value,i.test_value,i.standard,i.compose_judge, i.name,
s.code AS "sampleCode",s.name AS "sampleName", s.sample_shape ,s.sample_quantity, s.standard, s.sample_from, i.entrust_sample_id,
s.product_code,s.name_code s.entrust_id,
FROM i.agreed_value,
entrust_sample_item i i.test_value,
i.standard,
i.compose_judge,
s.code AS "sampleCode",
s.name AS "sampleName",
s.sample_shape,
s.sample_quantity,
s.standard,
s.sample_from,
s.product_code,
s.name_code
FROM entrust_sample_item i
JOIN entrust_sample s ON i.entrust_sample_id = s.ID JOIN entrust_sample s ON i.entrust_sample_id = s.ID
WHERE i.deleted = 0 AND s.deleted = 0 and i.entrust_sample_id = #{sampleId} WHERE i.deleted = 0
AND s.deleted = 0
and i.entrust_sample_id = #{sampleId}
order by i.name asc order by i.name asc
</select> </select>
<select id="selectListVOByIds" resultType="com.patzn.cloud.service.hmhj.vo.EntrustSampleItemVO"> <select id="selectListVOByIds" resultType="com.patzn.cloud.service.hmhj.vo.EntrustSampleItemVO">
SELECT i.id,i.name,i.entrust_sample_id,s.entrust_id,i.agreed_value,i.test_value,i.standard,s.code AS "sampleCode",s.name AS "sampleName", SELECT i.id,i.name,i.entrust_sample_id,s.entrust_id,i.agreed_value,i.test_value,i.standard,s.code AS
"sampleCode",s.name AS "sampleName",
s.sample_shape ,s.sample_quantity, s.standard, s.sample_from,s.product_code,s.name_code s.sample_shape ,s.sample_quantity, s.standard, s.sample_from,s.product_code,s.name_code
FROM FROM
...@@ -337,34 +367,91 @@ ...@@ -337,34 +367,91 @@
WHERE s.ranks = 1 WHERE s.ranks = 1
</select> </select>
<!--根据委托ID查询检测项目数据--> <!--根据委托ID查询检测项目数据-->
<select id="selectByEntrustId" resultType="com.patzn.cloud.service.hmhj.vo.EntrustSampleItemVO"> <select id="selectByEntrustId" resultType="com.patzn.cloud.service.hmhj.vo.EntrustSampleItemVO">
SELECT i.id,i.name,i.entrust_sample_id,s.entrust_id,i.agreed_value,i.test_value,i.standard,s.code AS "sampleCode" SELECT i.id,
,s.name AS "sampleName", s.sample_shape ,s.sample_quantity, s.standard, s.sample_from,s.product_code,s.name_code, i.name,
i.tester_id,i.tester, i.entrust_sample_id,
(case when COALESCE(ii."END_INDEX",0) = 0 then 0 else 1 end) "endIndex" s.entrust_id,
FROM i.status,
entrust_sample_item i i.agreed_value,
i.test_value,
i.standard,
s.code AS "sampleCode",
s.name AS "sampleName",
s.sample_shape,
s.sample_quantity,
s.standard,
s.sample_from,
s.product_code,
s.name_code,
i.tester_id,
i.tester,
COALESCE(ii."END_INDEX", 0) "endIndex"
FROM entrust_sample_item i
JOIN entrust_sample s ON i.entrust_sample_id = s.ID JOIN entrust_sample s ON i.entrust_sample_id = s.ID
left join ( left join (
SELECT ii.entrust_sample_item_id, (CASE WHEN COUNT (1) = 0 THEN 0 ELSE 1 END) "END_INDEX" SELECT ii.entrust_sample_item_id,
FROM entrust_sample_item_index ii WHERE ii.deleted = 0 AND ii.test_value is not null (case
when count(1) =
sum(CASE WHEN (ii.test_value IS NULL OR LENGTH(TRIM(ii.test_value)) = 0) THEN 0 ELSE 1 END)
then 1
else 0 end) "END_INDEX"
FROM entrust_sample_item_index ii
WHERE ii.deleted = 0
GROUP BY ii.entrust_sample_item_id GROUP BY ii.entrust_sample_item_id
) ii on ii.entrust_sample_item_id = i.id ) ii on ii.entrust_sample_item_id = i.id
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="selectUnfinishItemList" resultType="com.patzn.cloud.service.hmhj.vo.EntrustSampleItemVO">
select
i.*,s.name "sample_name", s.code "sample_code", e.id "entrust_id"
from entrust_sample_item i
join entrust_sample s on s.id = i.entrust_sample_id
join entrust e on e.id = s.entrust_id
left join (
SELECT
ii.entrust_sample_item_id,
(case when count(1) = sum(CASE WHEN (ii.test_value IS NULL OR LENGTH(TRIM(ii.test_value)) = 0) THEN 0 ELSE 1
END) then 1 else 0 end) "END_INDEX"
FROM entrust_sample_item_index ii
WHERE ii.deleted = 0
GROUP BY ii.entrust_sample_item_id
) ii on ii.entrust_sample_item_id = i.id
where e.deleted = 0 and s.deleted = 0 and i.deleted = 0
and coalesce(ii."END_INDEX",0) = 0
<if test="null != vo.entrustId">
and e.id = #{vo.entrustId}
</if>
<if test="null != vo.sampleId">
and s.id = #{vo.sampleId}
</if>
<if test="null != vo.ids">
and i.id in
<foreach collection="vo.ids" index="index" item="itemId" open="(" separator="," close=")">
#{itemId}
</foreach>
</if>
<if test="null != vo.nonIds">
and i.id not in
<foreach collection="vo.nonIds" index="index" item="itemId" open="(" separator="," close=")">
#{itemId}
</foreach>
</if>
order by s.order_by asc,i.id asc
</select>
<select id="selectUnallocatedCountByEntrustId" resultType="int"> <select id="selectUnallocatedCountByEntrustId" resultType="int">
select count(1) from entrust_sample_item i select count(1) from entrust_sample_item i
join entrust_sample s ON i.entrust_sample_id = s.ID join entrust_sample s ON i.entrust_sample_id = s.ID
where i.deleted = 0 AND s.deleted = 0 where i.deleted = 0 AND s.deleted = 0
and coalesce(i.status,0) &lt; 20 and (coalesce(i.status,0) &lt; 20 or i.tester_id is null)
AND s.entrust_id = #{entrustId} AND s.entrust_id = #{entrustId}
<if test="null != itemIds"> <if test="null != itemIds">
and i.id not in and i.id not in
...@@ -416,8 +503,10 @@ ...@@ -416,8 +503,10 @@
t.sum_compare, t.sum_compare,
t.sum_value, t.sum_value,
(case when t.compose_judge = 1 and min(t.calc_result) > 0 then (case when t.compose_judge = 1 and min(t.calc_result) > 0 then
(case when strpos(t.sum_compare,'>') > 0 then sum(case when t.item_compose_judge = 1 then to_number(t.test_value,'9999.99') else 0 end ) - t.sum_value (case when strpos(t.sum_compare,'>') > 0 then sum(case when t.item_compose_judge = 1 then
else t.sum_value - sum(case when t.item_compose_judge = 1 then to_number(t.test_value,'9999.99') else 0 end ) end) to_number(t.test_value,'9999.99') else 0 end ) - t.sum_value
else t.sum_value - sum(case when t.item_compose_judge = 1 then to_number(t.test_value,'9999.99') else 0 end )
end)
else min(t.calc_result) end ) "calcResult" else min(t.calc_result) end ) "calcResult"
from ( from (
with gspi as ( with gspi as (
...@@ -442,7 +531,8 @@ ...@@ -442,7 +531,8 @@
group by gp.grading_standard_id,gs.compose_judge , gp.sum_compare group by gp.grading_standard_id,gs.compose_judge , gp.sum_compare
order by gp.grading_standard_id order by gp.grading_standard_id
) g ) g
join grading_product gpt on (g.grading_standard_id = gpt.grading_standard_id and g.sum_compare = gpt.sum_compare and g.sum_value = gpt.sum_value) join grading_product gpt on (g.grading_standard_id = gpt.grading_standard_id and g.sum_compare = gpt.sum_compare
and g.sum_value = gpt.sum_value)
join grading_item gi on gi.grading_product_id = gpt.id join grading_item gi on gi.grading_product_id = gpt.id
where gpt.deleted = 0 and gi.deleted = 0 where gpt.deleted = 0 and gi.deleted = 0
) )
...@@ -454,7 +544,8 @@ ...@@ -454,7 +544,8 @@
i.name "item_name", i.name "item_name",
ii.test_value, ii.test_value,
g.*, g.*,
(case when strpos(g.decision_symbol,'>') > 0 then to_number(ii.test_value,'9999.99') - to_number(g.limit_value,'9999.99') (case when strpos(g.decision_symbol,'>') > 0 then to_number(ii.test_value,'9999.99') -
to_number(g.limit_value,'9999.99')
else to_number(ii.test_value,'9999.99') - to_number(g.limit_value,'9999.99') end ) "calc_result" else to_number(ii.test_value,'9999.99') - to_number(g.limit_value,'9999.99') end ) "calc_result"
from entrust_sample_item i from entrust_sample_item i
join entrust_sample_item_index ii on ii.entrust_sample_item_id = i.id join entrust_sample_item_index ii on ii.entrust_sample_item_id = i.id
...@@ -505,8 +596,7 @@ ...@@ -505,8 +596,7 @@
<!--更新委托下检测项目的组合判定状态--> <!--更新委托下检测项目的组合判定状态-->
<update id="updateItemJudgeByEntrustId"> <update id="updateItemJudgeByEntrustId">
update entrust_sample_item i update entrust_sample_item i
set compose_judge = spi.compose_judge set compose_judge = spi.compose_judge from (
from (
SELECT SELECT
distinct distinct
s.entrust_id, s.entrust_id,
...@@ -536,7 +626,8 @@ ...@@ -536,7 +626,8 @@
<select id="selectSampleItemStats" resultType="com.patzn.cloud.service.hmhj.vo.SampleItemStatsVO"> <select id="selectSampleItemStats" resultType="com.patzn.cloud.service.hmhj.vo.SampleItemStatsVO">
SELECT SELECT
s.code "sample_code", s.code "sample_code",
'[' || string_agg('{"key":"'||replace(ii.name,'-result','')||'","value":'||COALESCE(ii.test_value,'0')||'}',',') || ']' "itemJson" '[' || string_agg('{"key":"'||replace(ii.name,'-result','')||'","value":'||COALESCE(ii.test_value,'0')||'}',',')
|| ']' "itemJson"
FROM FROM
entrust_sample_item_index ii entrust_sample_item_index ii
JOIN entrust_sample_item i ON i.ID = ii.entrust_sample_item_id JOIN entrust_sample_item i ON i.ID = ii.entrust_sample_item_id
...@@ -570,15 +661,16 @@ ...@@ -570,15 +661,16 @@
<!--旨在质量判定时统一结构使用,其他位置勿用--> <!--旨在质量判定时统一结构使用,其他位置勿用-->
<select id="listIndexReplaceItemBySampleId" resultType="com.patzn.cloud.service.hmhj.vo.EntrustSampleItemVO"> <select id="listIndexReplaceItemBySampleId" resultType="com.patzn.cloud.service.hmhj.vo.EntrustSampleItemVO">
select select ii.*,
ii.*,
i.compose_judge, i.compose_judge,
s.code "sample_code", s.code "sample_code",
s.entrust_id s.entrust_id
FROM entrust_sample_item_index ii FROM entrust_sample_item_index ii
JOIN entrust_sample_item i on ii.entrust_sample_item_id = i.id JOIN entrust_sample_item i on ii.entrust_sample_item_id = i.id
JOIN entrust_sample s ON i.entrust_sample_id = s.id JOIN entrust_sample s ON i.entrust_sample_id = s.id
WHERE ii.deleted =0 AND i.deleted = 0 AND s.deleted = 0 WHERE ii.deleted = 0
AND i.deleted = 0
AND s.deleted = 0
AND s.id = #{sampleId} AND s.id = #{sampleId}
</select> </select>
</mapper> </mapper>
...@@ -127,6 +127,7 @@ ...@@ -127,6 +127,7 @@
e.test_side, e.test_side,
s.supplier, s.supplier,
s.manufacturer, s.manufacturer,
s.slot_no,
(case when cr.calc_result is null then null else (case when cr.calc_result > 0 then 1 else 0 end) end) "isQualified" (case when cr.calc_result is null then null else (case when cr.calc_result > 0 then 1 else 0 end) end) "isQualified"
FROM entrust_sample s FROM entrust_sample s
JOIN entrust e ON s.entrust_id = e.ID JOIN entrust e ON s.entrust_id = e.ID
...@@ -158,6 +159,10 @@ ...@@ -158,6 +159,10 @@
AND s.code LIKE CONCAT('%',#{vo.code},'%') AND s.code LIKE CONCAT('%',#{vo.code},'%')
</if> </if>
<if test="null!=vo.slotNo">
AND s.slot_no LIKE CONCAT('%',#{vo.slotNo},'%')
</if>
ORDER BY e.code,s.code ORDER BY e.code,s.code
</select> </select>
...@@ -389,4 +394,14 @@ ...@@ -389,4 +394,14 @@
group by pi.period group by pi.period
</select> </select>
<select id="selectByReportIds" resultType="com.patzn.cloud.service.hmhj.vo.EntrustSampleVO">
select distinct s.* from entrust_sample s
join entrust_report_rel_sample rs on rs.sample_id = s.id
where s.deleted = 0 and rs.deleted = 0
and rs.report_id in
<foreach collection="reportIds" index="index" item="reportId" open="(" separator="," close=")">
#{reportId}
</foreach>
</select>
</mapper> </mapper>
...@@ -2,4 +2,23 @@ ...@@ -2,4 +2,23 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.patzn.cloud.service.lims.hmhj.mapper.OriginalTemplateConfigMapper"> <mapper namespace="com.patzn.cloud.service.lims.hmhj.mapper.OriginalTemplateConfigMapper">
<update id="updateConfigById">
update original_template_config t
set
attribute_name = #{vo.attributeName}
,data_attribute = #{vo.dataAttribute}
,column_place = #{vo.columnPlace}
,template_id = #{vo.templateId}
,company_id = #{vo.companyId}
,lid = #{vo.lid}
,ltime = #{vo.ltime}
,merge_begin = #{vo.mergeBegin}
,merge_end = #{vo.mergeEnd}
,merge_row_num = #{vo.mergeRowNum}
,formula = #{vo.formula}
,itemed = #{vo.itemed}
,unit = #{vo.unit}
,round_num = #{vo.roundNum}
where id = #{vo.id}
</update>
</mapper> </mapper>
...@@ -2,4 +2,31 @@ ...@@ -2,4 +2,31 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.patzn.cloud.service.lims.hmhj.mapper.OriginalTemplateMapper"> <mapper namespace="com.patzn.cloud.service.lims.hmhj.mapper.OriginalTemplateMapper">
<update id="updateTemplateById">
update original_template t
set
name = #{vo.name},
alias = #{vo.alias},
bucket_name = #{vo.bucketName},
object_key = #{vo.objectKey},
version_id = #{vo.versionId},
type = #{vo.type},
classify_id = #{vo.classifyId},
service = #{vo.service},
sort = #{vo.sort},
class_type = #{vo.classType},
remark = #{vo.remark},
sample_begin_row = #{vo.sampleBeginRow},
sample_begin_col = #{vo.sampleBeginCol},
sample_merger_num = #{vo.sampleMergerNum},
template_sample_num = #{vo.templateSampleNum},
more_sheet = #{vo.moreSheet},
template_type = #{vo.templateType},
more_item = #{vo.moreItem},
tail_num = #{vo.tailNum},
curve_begin_num = #{vo.curveBeginNum},
blank_begin_num = #{vo.blankBeginNum},
collection_type = #{vo.collectionType}
where id = #{vo.id}
</update>
</mapper> </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