Commit 0862f296 by ghxdhr

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

 Conflicts:
	src/main/java/com/patzn/cloud/service/lims/hmhj/service/impl/EntrustSampleItemServiceImpl.java
parents b162e7b5 34c35e84
...@@ -8,7 +8,9 @@ import com.patzn.cloud.service.hmhj.entity.Entrust; ...@@ -8,7 +8,9 @@ import com.patzn.cloud.service.hmhj.entity.Entrust;
import com.patzn.cloud.service.hmhj.enums.*; import com.patzn.cloud.service.hmhj.enums.*;
import com.patzn.cloud.service.hmhj.vo.EntrustVO; import com.patzn.cloud.service.hmhj.vo.EntrustVO;
import com.patzn.cloud.service.lims.hmhj.service.impl.UserInfoServiceImpl; import com.patzn.cloud.service.lims.hmhj.service.impl.UserInfoServiceImpl;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.plugins.Page;
...@@ -22,6 +24,7 @@ import io.swagger.annotations.ApiImplicitParam; ...@@ -22,6 +24,7 @@ import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
...@@ -481,8 +484,10 @@ public class EntrustController extends ServiceController { ...@@ -481,8 +484,10 @@ public class EntrustController extends ServiceController {
@PostMapping("/page_entrust_test_data") @PostMapping("/page_entrust_test_data")
public RestResult<Page<EntrustVO>> getPageTaskTestData(EntrustVO entrust) { public RestResult<Page<EntrustVO>> getPageTaskTestData(EntrustVO entrust) {
entrust.setItemStatus(EntrustSampleItemStatusEnum.TEST); entrust.setItemStatus(EntrustSampleItemStatusEnum.TEST);
// 过滤当前人为检测人的委托数据 // 过滤当前人为检测人的委托数据 - 节点数据不为空,且为检测时,只查询当前人信息
entrust.setTesterId(getAccount().getUserId()); if(StringUtils.isNotBlank(entrust.getSource()) && EntrustFlowEnum.TEST.getName().equalsIgnoreCase(entrust.getSource())) {
entrust.setTesterId(getAccount().getUserId());
}
// 获取当前用户分组 // 获取当前用户分组
entrust.setGroupNameList(userInfoService.getCurGroupNameList()); entrust.setGroupNameList(userInfoService.getCurGroupNameList());
return success(entrustService.pageEntrustByItemData(getPage(), entrust)); return success(entrustService.pageEntrustByItemData(getPage(), entrust));
......
...@@ -52,9 +52,9 @@ public class EntrustSampleController extends ServiceController { ...@@ -52,9 +52,9 @@ public class EntrustSampleController 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<EntrustSample>> getPage(EntrustSample entrustSample) { public RestResult<Page<EntrustSample>> getPage(EntrustSample entrustSample) {
return success(entrustSampleService.page(getPage(), entrustSample)); return success(entrustSampleService.page(getPage(), entrustSample));
} }
@ApiOperation("制备样品分页列表") @ApiOperation("制备样品分页列表")
...@@ -71,7 +71,6 @@ public class EntrustSampleController extends ServiceController { ...@@ -71,7 +71,6 @@ public class EntrustSampleController extends ServiceController {
} }
@ApiOperation("制备历史样品分页列表") @ApiOperation("制备历史样品分页列表")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class), @ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class),
...@@ -86,7 +85,6 @@ public class EntrustSampleController extends ServiceController { ...@@ -86,7 +85,6 @@ public class EntrustSampleController extends ServiceController {
} }
@ApiOperation("报告编制样品分页列表") @ApiOperation("报告编制样品分页列表")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class), @ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class),
...@@ -167,34 +165,31 @@ public class EntrustSampleController extends ServiceController { ...@@ -167,34 +165,31 @@ public class EntrustSampleController extends ServiceController {
@ApiImplicitParam(name = "id", value = "主键", required = true, paramType = "path", dataTypeClass = Long.class), @ApiImplicitParam(name = "id", value = "主键", required = true, paramType = "path", dataTypeClass = Long.class),
}) })
@PutMapping("/{id}") @PutMapping("/{id}")
public RestResult<Boolean> edit(@PathVariable("id") Long id, EntrustSample entrustSample) { public RestResult<Boolean> edit(@PathVariable("id") Long id, EntrustSample entrustSample) {
entrustSample.setId(id); entrustSample.setId(id);
return success(entrustSampleService.updateById(entrustSample)); return success(entrustSampleService.updateById(entrustSample));
} }
@ApiOperation("根据 id 修改信息") @ApiOperation("根据 id 修改信息")
@PutMapping("/edit_sample") @PutMapping("/edit_sample")
public RestResult<Boolean> editSample(EntrustSample entrustSample,String source) { public RestResult<Boolean> editSample(EntrustSample entrustSample, String source) {
return success(entrustSampleService.updateSample(entrustSample,source,getAccount())); return success(entrustSampleService.updateSample(entrustSample, source, getAccount()));
} }
@ApiOperation("添加") @ApiOperation("添加")
@PostMapping("/") @PostMapping("/")
public RestResult<Boolean> add(EntrustSample entrustSample) { public RestResult<Boolean> add(EntrustSample entrustSample) {
return success(entrustSampleService.save(entrustSample)); return success(entrustSampleService.save(entrustSample));
} }
@ApiOperation("根据 ids 删除") @ApiOperation("根据 ids 删除")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = "ids", value = "主键列表", required = true, paramType = "query", allowMultiple = true, dataTypeClass = Long.class), @ApiImplicitParam(name = "ids", value = "主键列表", required = true, paramType = "query", allowMultiple = true, dataTypeClass = Long.class),
}) })
@DeleteMapping("/") @DeleteMapping("/")
public RestResult<Boolean> delete(@RequestParam("ids") List<Long> ids) { public RestResult<Boolean> delete(@RequestParam("ids") List<Long> ids) {
return success(entrustSampleService.removeByIds(ids)); return success(entrustSampleService.removeByIds(ids));
} }
@ApiOperation(value = "增加标样", notes = "增加标样") @ApiOperation(value = "增加标样", notes = "增加标样")
...@@ -206,7 +201,6 @@ public class EntrustSampleController extends ServiceController { ...@@ -206,7 +201,6 @@ public class EntrustSampleController extends ServiceController {
} }
@ApiOperation(value = "数据录入添加检测项目", notes = "数据录入添加检测项目") @ApiOperation(value = "数据录入添加检测项目", notes = "数据录入添加检测项目")
@PostMapping("/add_test_item_in_input") @PostMapping("/add_test_item_in_input")
public RestResult<Boolean> addTestItemInInput(@RequestBody EntrustSampleADDDTO dto) { public RestResult<Boolean> addTestItemInInput(@RequestBody EntrustSampleADDDTO dto) {
...@@ -214,18 +208,13 @@ public class EntrustSampleController extends ServiceController { ...@@ -214,18 +208,13 @@ public class EntrustSampleController extends ServiceController {
} }
@ApiOperation("获取制备信息") @ApiOperation("获取制备信息")
@PostMapping("/obtain_make_info") @PostMapping("/obtain_make_info")
public RestResult<List<EntrustSampleVO>> obtainMakeInfo(@RequestParam("ids") Long [] ids) { public RestResult<List<EntrustSampleVO>> obtainMakeInfo(@RequestParam("ids") Long[] ids) {
return success(entrustSampleService.obtainMakeInfo(ids,getAccount())); return success(entrustSampleService.obtainMakeInfo(ids, getAccount()));
} }
@ApiOperation("样品接收分页列表") @ApiOperation("样品接收分页列表")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class), @ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class),
...@@ -254,7 +243,6 @@ public class EntrustSampleController extends ServiceController { ...@@ -254,7 +243,6 @@ public class EntrustSampleController extends ServiceController {
} }
@ApiOperation("任务分配样品分页列表") @ApiOperation("任务分配样品分页列表")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class), @ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class),
...@@ -269,8 +257,6 @@ public class EntrustSampleController extends ServiceController { ...@@ -269,8 +257,6 @@ public class EntrustSampleController extends ServiceController {
} }
@ApiOperation("任务分配历史样品分页列表") @ApiOperation("任务分配历史样品分页列表")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class), @ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class),
...@@ -291,13 +277,18 @@ public class EntrustSampleController extends ServiceController { ...@@ -291,13 +277,18 @@ public class EntrustSampleController extends ServiceController {
} }
@ApiOperation("样品生成报告") @ApiOperation("样品生成报告")
@PostMapping("/make_report") @PostMapping("/make_report")
public RestResult<Boolean> makeReport(@RequestBody ReportDTO dto) { public RestResult<Boolean> makeReport(@RequestBody ReportDTO dto) {
return success(entrustSampleService.makeReport(dto,getAccount())); return success(entrustSampleService.makeReport(dto, getAccount()));
}
@ApiOperation("选择检测项目生成样品报告")
@PostMapping("/make_single_report")
public RestResult<Boolean> makeReport(@RequestParam("sampleId")Long sampleId, @RequestParam("itemIds")Long[] itemIds,@RequestParam("templateId")Long templateId) {
return success(entrustSampleService.makeSingleReport(sampleId,itemIds,templateId,getAccount()));
} }
...@@ -328,7 +319,7 @@ public class EntrustSampleController extends ServiceController { ...@@ -328,7 +319,7 @@ public class EntrustSampleController extends ServiceController {
public RestResult<Page<EntrustSample>> getPageSampleMakeHis(EntrustSample entrustSample) { public RestResult<Page<EntrustSample>> getPageSampleMakeHis(EntrustSample entrustSample) {
entrustSample.setStatus(EntrustSampleStatusEnum.END); entrustSample.setStatus(EntrustSampleStatusEnum.END);
Wrapper wrapper = new EntityWrapper<>(entrustSample); Wrapper wrapper = new EntityWrapper<>(entrustSample);
wrapper.in("judge_status",Lists.newArrayList(1,2)); wrapper.in("judge_status", Lists.newArrayList(1, 2));
return success(entrustSampleService.pageByWrapper(getPage(), wrapper)); return success(entrustSampleService.pageByWrapper(getPage(), wrapper));
} }
...@@ -380,34 +371,32 @@ public class EntrustSampleController extends ServiceController { ...@@ -380,34 +371,32 @@ public class EntrustSampleController extends ServiceController {
@ApiOperation("质量登记提交") @ApiOperation("质量登记提交")
@PostMapping("/submit_judge_register") @PostMapping("/submit_judge_register")
public RestResult<Boolean> submitJudgeRegister(@RequestParam("ids") Long [] ids) { public RestResult<Boolean> submitJudgeRegister(@RequestParam("ids") Long[] ids) {
return success(entrustSampleService.submitJudgeRegister(ids,getAccount())); return success(entrustSampleService.submitJudgeRegister(ids, getAccount()));
} }
@ApiOperation("质量审核通过") @ApiOperation("质量审核通过")
@PostMapping("/submit_judge_check") @PostMapping("/submit_judge_check")
public RestResult<Boolean> submitJudgeCheck(@RequestParam("ids") Long [] ids) { public RestResult<Boolean> submitJudgeCheck(@RequestParam("ids") Long[] ids) {
return success(entrustSampleService.submitJudgeCheck(ids,getAccount())); return success(entrustSampleService.submitJudgeCheck(ids, getAccount()));
} }
@ApiOperation("质量审核提交至验收结果录入") @ApiOperation("质量审核提交至验收结果录入")
@PostMapping("/submit_to_acceptance_result_input") @PostMapping("/submit_to_acceptance_result_input")
public RestResult<Boolean> submitToAcceptanceResultInput(@RequestParam("ids") Long [] ids) { public RestResult<Boolean> submitToAcceptanceResultInput(@RequestParam("ids") Long[] ids) {
return success(entrustSampleService.submitToAcceptanceResultInput(ids,getAccount())); return success(entrustSampleService.submitToAcceptanceResultInput(ids, getAccount()));
} }
@ApiOperation("质量审核驳回") @ApiOperation("质量审核驳回")
@PostMapping("/back_judge_check") @PostMapping("/back_judge_check")
public RestResult<Boolean> backJudgeCheck(@RequestParam("ids") Long [] ids,@RequestParam("remark") String remark) { public RestResult<Boolean> backJudgeCheck(@RequestParam("ids") Long[] ids, @RequestParam("remark") String remark) {
return success(entrustSampleService.backJudgeCheck(ids,remark,getAccount())); return success(entrustSampleService.backJudgeCheck(ids, remark, getAccount()));
} }
@ApiOperation("任务分配按照样品分配左侧分页列表") @ApiOperation("任务分配按照样品分配左侧分页列表")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class), @ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class),
...@@ -422,7 +411,6 @@ public class EntrustSampleController extends ServiceController { ...@@ -422,7 +411,6 @@ public class EntrustSampleController extends ServiceController {
} }
@ApiOperation("数据录入按照样品录入左侧分页列表") @ApiOperation("数据录入按照样品录入左侧分页列表")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class), @ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class),
...@@ -470,7 +458,6 @@ public class EntrustSampleController extends ServiceController { ...@@ -470,7 +458,6 @@ public class EntrustSampleController extends ServiceController {
} }
@ApiOperation("数据复核历史按照样品复核左侧分页列表") @ApiOperation("数据复核历史按照样品复核左侧分页列表")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class), @ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class),
...@@ -518,8 +505,6 @@ public class EntrustSampleController extends ServiceController { ...@@ -518,8 +505,6 @@ public class EntrustSampleController extends ServiceController {
} }
@ApiOperation("检测结果查询分页列表") @ApiOperation("检测结果查询分页列表")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class), @ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class),
...@@ -549,4 +534,10 @@ public class EntrustSampleController extends ServiceController { ...@@ -549,4 +534,10 @@ public class EntrustSampleController extends ServiceController {
public RestResult<Map> getPMakeFeStatsQuery(QueryDTO queryDTO) { public RestResult<Map> getPMakeFeStatsQuery(QueryDTO queryDTO) {
return success(entrustSampleService.getPMakeFeStatsQuery(queryDTO)); return success(entrustSampleService.getPMakeFeStatsQuery(queryDTO));
} }
@ApiOperation(value = "扫码接收", notes = "扫码接收")
@PostMapping("/scan_receive")
public RestResult<Boolean> scanReceive(@RequestParam("sampleCode") String sampleCode) {
return success(entrustSampleService.scanReceive(sampleCode, getAccount()));
}
} }
...@@ -80,7 +80,7 @@ public class EntrustSamplePrepareController extends ServiceController { ...@@ -80,7 +80,7 @@ public class EntrustSamplePrepareController extends ServiceController {
@ApiOperation("样品接收提交") @ApiOperation("样品接收提交")
@PostMapping("/submit_sample_receive") @PostMapping("/submit_sample_receive")
public RestResult<Boolean> submitSampleReceive(@RequestParam("ids")Long[] ids) { public RestResult<Boolean> submitSampleReceive(@RequestParam("ids")Long[] ids) {
return success(entrustSamplePrepareService.submitSampleReceive(ids,getAccount())); return success(entrustSamplePrepareService.submitSampleReceive(ids,null,getAccount()));
} }
......
package com.patzn.cloud.service.lims.hmhj.controller;
import com.baomidou.mybatisplus.plugins.Page;
import com.patzn.cloud.commons.api.RestConstants;
import com.patzn.cloud.commons.api.RestResult;
import com.patzn.cloud.commons.controller.ServiceController;
import com.patzn.cloud.service.hmhj.entity.Questionnaire;
import com.patzn.cloud.service.hmhj.vo.QuestionnaireVO;
import com.patzn.cloud.service.lims.hmhj.service.IQuestionnaireService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
* 满意度调查表 前端控制器
*
* @author meazty
* @since 2021-07-11
*/
@Api(tags = "满意度调查表")
@RestController
@RequestMapping("/v1/questionnaire")
public class QuestionnaireController extends ServiceController {
@Autowired
private IQuestionnaireService questionnaireService;
@ApiOperation("分页列表")
@ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class),
@ApiImplicitParam(name = RestConstants.PAGE_ROWS, value = "每页条数", required = true, paramType = "query", dataTypeClass = Integer.class),
})
@PostMapping("/page")
public RestResult<Page<Questionnaire>> getPage(QuestionnaireVO questionnaire) {
return success(questionnaireService.page(getPage(), questionnaire));
}
@ApiOperation("查询 id 信息")
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "主键", required = true, paramType = "path", dataTypeClass = Long.class),
})
@GetMapping("/{id}")
public RestResult<Questionnaire> get(@PathVariable("id") Long id) {
return success(questionnaireService.getById(id));
}
@ApiOperation("根据 id 修改信息")
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "主键", required = true, paramType = "path", dataTypeClass = Long.class),
})
@PutMapping("/{id}")
public RestResult<Boolean> edit(@PathVariable("id") Long id, Questionnaire questionnaire) {
questionnaire.setId(id);
return success(questionnaireService.updateById(questionnaire));
}
@ApiOperation("添加")
@PostMapping("/")
public RestResult<Boolean> add(Questionnaire questionnaire) {
return success(questionnaireService.save(questionnaire));
}
@ApiOperation("添加或修改调查表")
@PostMapping("/addOrUpdate")
public RestResult<Boolean> addQuestionnaire(Questionnaire questionnaire) {
return success(questionnaireService.saveOrUpdate(questionnaire, getAccount()));
}
@ApiOperation("根据 ids 删除")
@ApiImplicitParams({
@ApiImplicitParam(name = "ids", value = "主键列表", required = true, paramType = "query", allowMultiple = true, dataTypeClass = Long.class),
})
@DeleteMapping("/")
public RestResult<Boolean> delete(@RequestParam("ids") List<Long> ids) {
return success(questionnaireService.deleteByIds(ids));
}
@ApiOperation("提交满意度调查")
@PostMapping("/submit")
public RestResult<Boolean> submit(@RequestParam("id") Long id) {
return success(questionnaireService.submitQuestionnaire(id, getAccount()));
}
@ApiOperation("导出Excel")
@GetMapping("/export")
public void export(@RequestParam("ids") Long[] ids, HttpServletResponse response) {
questionnaireService.exportExcel(ids, response, getAccount());
}
@ApiOperation("导出统计Excel")
@GetMapping("/exportStatusExcel")
public void exportStatusExcel(@RequestParam("ids") Long[] ids, HttpServletResponse response) {
questionnaireService.exportStatusExcel(ids, response, getAccount());
}
}
package com.patzn.cloud.service.lims.hmhj.handler;
import com.patzn.cloud.service.hmhj.entity.Questionnaire;
import com.patzn.poibox.excel.AbstractExeclExportHandler;
import com.patzn.poibox.excel.IExcelTemplate;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class QuestionnaireExportHandler extends AbstractExeclExportHandler {
private List<Questionnaire> questionnaires = null;
public QuestionnaireExportHandler(List<Questionnaire> equipList) {
this.questionnaires = equipList;
}
@Override
public IExcelTemplate exportTemplate() {
return new IExcelTemplate() {
@Override
public String tplname() {
return "QuestionnaireTpl";
}
@Override
public String outname() {
return "客户满意度调查表";
}
};
}
@Override
protected Map<String, Object> renderData() {
Map<String, Object> objMap = new HashMap<>(1);
objMap.put("questionnaires", questionnaires);
return objMap;
}
}
\ No newline at end of file
...@@ -29,4 +29,6 @@ public interface EntrustMapper extends BatchMapper<Entrust> { ...@@ -29,4 +29,6 @@ public interface EntrustMapper extends BatchMapper<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);
} }
...@@ -34,6 +34,8 @@ public interface EntrustSampleItemMapper extends BatchMapper<EntrustSampleItem> ...@@ -34,6 +34,8 @@ public interface EntrustSampleItemMapper extends BatchMapper<EntrustSampleItem>
List<EntrustSampleItemVO> selectVOListBySampleIds(@Param("ids")Long[] ids); List<EntrustSampleItemVO> selectVOListBySampleIds(@Param("ids")Long[] ids);
List<EntrustSampleItemVO> selectVOListBySampleIdsAndIds(@Param("sampleIds")Long[] sampleIds,@Param("ids")Long[] ids);
List<EntrustSampleItemVO> selectVOListByIds(@Param("ids")Long[] ids); List<EntrustSampleItemVO> selectVOListByIds(@Param("ids")Long[] ids);
List<EntrustSampleItemVO> selectByEntrustSampleId(@Param("sampleId")Long sampleId); List<EntrustSampleItemVO> selectByEntrustSampleId(@Param("sampleId")Long sampleId);
......
package com.patzn.cloud.service.lims.hmhj.mapper;
import com.patzn.cloud.commons.mapper.BatchMapper;
import com.patzn.cloud.service.hmhj.entity.Questionnaire;
import com.patzn.cloud.service.hmhj.vo.QuestionnaireStatsVO;
import org.apache.ibatis.annotations.Param;
/**
* <p>
* 满意度调查表 Mapper 接口
* </p>
*
* @author meazty
* @since 2021-07-11
*/
public interface QuestionnaireMapper extends BatchMapper<Questionnaire> {
QuestionnaireStatsVO selectStatsList(@Param("ids") Long[] ids);
}
...@@ -51,6 +51,8 @@ public interface IEntrustSampleItemService extends IBaseService<EntrustSampleIte ...@@ -51,6 +51,8 @@ public interface IEntrustSampleItemService extends IBaseService<EntrustSampleIte
List<EntrustSampleItemVO> listBySampleIds(Long[] ids); List<EntrustSampleItemVO> listBySampleIds(Long[] ids);
List<EntrustSampleItemVO> listBySampleIdsAndIds(Long[] ids,Long [] itemIds);
OriginalRecord saveExcelOriginalRecord(Long[] ids, Long templateId, Account account); OriginalRecord saveExcelOriginalRecord(Long[] ids, Long templateId, Account account);
......
...@@ -25,7 +25,7 @@ public interface IEntrustSamplePrepareService extends IBaseService<EntrustSample ...@@ -25,7 +25,7 @@ public interface IEntrustSamplePrepareService extends IBaseService<EntrustSample
boolean makeEnd(SamplePrepareDTO dto, Account account); boolean makeEnd(SamplePrepareDTO dto, Account account);
boolean submitSampleReceive(Long[] ids, Account account); boolean submitSampleReceive(Long[] ids,String receiveType, Account account);
boolean addOrUpdateToSetStatus(Long[] sampleIds, EntrustSamplePrepareStatusEnum statusEnum); boolean addOrUpdateToSetStatus(Long[] sampleIds, EntrustSamplePrepareStatusEnum statusEnum);
......
...@@ -81,4 +81,8 @@ public interface IEntrustSampleService extends IBaseService<EntrustSample> { ...@@ -81,4 +81,8 @@ public interface IEntrustSampleService extends IBaseService<EntrustSample> {
boolean updateSample(EntrustSample entrustSample, String source, Account account); boolean updateSample(EntrustSample entrustSample, String source, Account account);
boolean addTestItemInInput(EntrustSampleADDDTO dto, Account account); boolean addTestItemInInput(EntrustSampleADDDTO dto, Account account);
boolean scanReceive(String sampleCode, Account account);
boolean makeSingleReport(Long sampleId, Long[] itemIds, Long templateId, Account account);
} }
package com.patzn.cloud.service.lims.hmhj.service;
import com.baomidou.mybatisplus.plugins.Page;
import com.patzn.cloud.commons.controller.Account;
import com.patzn.cloud.commons.service.IBaseService;
import com.patzn.cloud.service.hmhj.entity.Questionnaire;
import com.patzn.cloud.service.hmhj.vo.QuestionnaireVO;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
* 满意度调查表 服务类
*
* @author meazty
* @since 2021-07-11
*/
public interface IQuestionnaireService extends IBaseService<Questionnaire> {
Page<Questionnaire> page(Page<Questionnaire> page, QuestionnaireVO questionnaireVO);
boolean saveOrUpdate(Questionnaire questionnaire, Account account);
boolean removeByIds(List<Long> ids);
boolean submitQuestionnaire(Long id, Account account);
void exportExcel(Long[] ids, HttpServletResponse response, Account account);
void exportStatusExcel(Long[] ids, HttpServletResponse response, Account account);
boolean deleteByIds(List<Long> ids);
}
...@@ -20,11 +20,8 @@ import com.patzn.cloud.service.hmhj.enums.EntrustSampleItemStatusEnum; ...@@ -20,11 +20,8 @@ import com.patzn.cloud.service.hmhj.enums.EntrustSampleItemStatusEnum;
import com.patzn.cloud.service.hmhj.enums.EntrustSampleStatusEnum; import com.patzn.cloud.service.hmhj.enums.EntrustSampleStatusEnum;
import com.patzn.cloud.service.lims.hmhj.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.IEntrustReportRelSampleService; import com.patzn.cloud.service.lims.hmhj.service.*;
import com.patzn.cloud.service.lims.hmhj.service.IEntrustReportService;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl; import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
import com.patzn.cloud.service.lims.hmhj.service.IEntrustSampleService;
import com.patzn.cloud.service.lims.hmhj.service.IEntrustService;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.checkerframework.checker.units.qual.A; import org.checkerframework.checker.units.qual.A;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -37,10 +34,7 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -37,10 +34,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.io.File; import java.io.File;
import java.io.InputStream; import java.io.InputStream;
import java.util.ArrayList; import java.util.*;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.concurrent.Executor; import java.util.concurrent.Executor;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -62,6 +56,8 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe ...@@ -62,6 +56,8 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe
@Autowired @Autowired
private IEntrustService entrustService; private IEntrustService entrustService;
@Autowired @Autowired
private IEntrustRecordService entrustRecordService;
@Autowired
private Executor executor1; private Executor executor1;
@Value("${libreOffice.url}") @Value("${libreOffice.url}")
...@@ -150,7 +146,7 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe ...@@ -150,7 +146,7 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe
} }
// 存在的状态路径时,方可进入处理操作 // 存在的状态路径时,方可进入处理操作
executeSubmitOperation(getByReportId(ids[0]), account); executeSubmitOperation(getByReportId(ids[0]), EntrustFlowEnum.REPORT_MAKE, EntrustFlowEnum.REPORT_CHECK, account);
//转化PDF //转化PDF
...@@ -164,19 +160,19 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe ...@@ -164,19 +160,19 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe
} }
private void changeExcelReportToPdf(Long[] ids) { private void changeExcelReportToPdf(Long[] ids) {
List<EntrustReport> reportList = list(Condition.create().in("id",ids).isNotNull("object_key")); List<EntrustReport> reportList = list(Condition.create().in("id", ids).isNotNull("object_key"));
if (CollectionUtils.isEmpty(reportList)){ if (CollectionUtils.isEmpty(reportList)) {
return; return;
} }
List<File> deleteFileList = new ArrayList<>(); List<File> deleteFileList = new ArrayList<>();
List<EntrustReport> updateReportList = new ArrayList<>(); List<EntrustReport> updateReportList = new ArrayList<>();
for (EntrustReport report : reportList) { for (EntrustReport report : reportList) {
InputStream io= ossClient.download(report.getObjectKey()); InputStream io = ossClient.download(report.getObjectKey());
if (null == io) if (null == io)
continue; continue;
File file = LabreOfficeUtil.inputStream2File(io); File file = LabreOfficeUtil.inputStream2File(io);
File filePdf =LabreOfficeUtil.convertOffice2PDF(libreOfficeUrl,file); File filePdf = LabreOfficeUtil.convertOffice2PDF(libreOfficeUrl, file);
deleteFileList.add(file); deleteFileList.add(file);
deleteFileList.add(filePdf); deleteFileList.add(filePdf);
...@@ -186,7 +182,7 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe ...@@ -186,7 +182,7 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe
u.setId(report.getId()); u.setId(report.getId());
updateReportList.add(u); updateReportList.add(u);
} }
if (CollectionUtils.isNotEmpty(updateReportList)){ if (CollectionUtils.isNotEmpty(updateReportList)) {
updateBatchById(updateReportList); updateBatchById(updateReportList);
} }
FileUtils.deleteFiles(deleteFileList); FileUtils.deleteFiles(deleteFileList);
...@@ -201,12 +197,17 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe ...@@ -201,12 +197,17 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe
return entrustService.getById(report.getEntrustId()); return entrustService.getById(report.getEntrustId());
} }
private boolean executeSubmitOperation(Entrust entrust, Account account) { private boolean isToStatusPath(Entrust entrust) {
if (StringUtils.isBlank(entrust.getStatusPath())) { return StringUtils.isNotBlank(entrust.getStatusPath()) && entrust.getStatusPath().contains(entrust.getFlowStatus()) ? true : false;
logger.error("委托为空,或者委托路径为空不进行下一步操作"); }
return false;
private boolean executeSubmitOperation(Entrust entrust, EntrustFlowEnum fromFlowStatus, EntrustFlowEnum toFlowStatus, Account account) {
if (isToStatusPath(entrust)) {
entrustService.submitToNextNode(entrust, account);
} else {
String remark = (fromFlowStatus.getValue() < toFlowStatus.getValue() ? "提交至" : "驳回至") + toFlowStatus.getDisplay();
entrustRecordService.record(new Long[]{entrust.getId()}, fromFlowStatus.getDisplay(), toFlowStatus.getDisplay(), 0, account, remark);
} }
entrustService.submitToNextNode(entrust, account);
return true; return true;
} }
...@@ -237,7 +238,7 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe ...@@ -237,7 +238,7 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe
} }
// 存在的状态路径时,方可进入处理操作 // 存在的状态路径时,方可进入处理操作
executeSubmitOperation(getByReportId(ids[0]), account); executeSubmitOperation(getByReportId(ids[0]), EntrustFlowEnum.REPORT_CHECK, EntrustFlowEnum.REPORT_ALLOW, account);
return super.update(report, Condition.create().in("id", ids)); return super.update(report, Condition.create().in("id", ids));
} }
...@@ -272,7 +273,7 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe ...@@ -272,7 +273,7 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe
Entrust entrust = getByReportId(ids[0]); Entrust entrust = getByReportId(ids[0]);
entrust.setTestTimeE(new Date()); entrust.setTestTimeE(new Date());
entrustService.updateById(entrust); entrustService.updateById(entrust);
executeSubmitOperation(entrust, account); executeSubmitOperation(entrust, EntrustFlowEnum.REPORT_ALLOW, EntrustFlowEnum.REPORT_SEND, account);
return super.update(report, Condition.create().in("id", ids)); return super.update(report, Condition.create().in("id", ids));
} }
...@@ -309,7 +310,7 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe ...@@ -309,7 +310,7 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe
entrust.setTestTimeE(new Date()); entrust.setTestTimeE(new Date());
entrustService.updateById(entrust); entrustService.updateById(entrust);
executeSubmitOperation(entrust, account); executeSubmitOperation(entrust, EntrustFlowEnum.REPORT_ALLOW, EntrustFlowEnum.REPORT_ISSUE, account);
return super.update(report, Condition.create().in("id", ids)); return super.update(report, Condition.create().in("id", ids));
} }
...@@ -340,7 +341,7 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe ...@@ -340,7 +341,7 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe
} }
// 存在的状态路径时,方可进入处理操作 // 存在的状态路径时,方可进入处理操作
executeSubmitOperation(getByReportId(ids[0]), account); executeSubmitOperation(getByReportId(ids[0]), EntrustFlowEnum.REPORT_SEND, EntrustFlowEnum.QUALITY_JUDGE, account);
return super.update(report, Condition.create().in("id", ids)); return super.update(report, Condition.create().in("id", ids));
} }
...@@ -371,7 +372,7 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe ...@@ -371,7 +372,7 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe
} }
// 存在的状态路径时,方可进入处理操作 // 存在的状态路径时,方可进入处理操作
executeSubmitOperation(getByReportId(ids[0]), account); executeSubmitOperation(getByReportId(ids[0]), EntrustFlowEnum.REPORT_ISSUE, EntrustFlowEnum.QUALITY_JUDGE, account);
return super.update(report, Condition.create().in("id", ids)); return super.update(report, Condition.create().in("id", ids));
} }
...@@ -389,13 +390,14 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe ...@@ -389,13 +390,14 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe
private void rejectEntrustInfo(Long[] reportIds, String reason, EntrustReportStatusEnum reportStatusEnum, Account account) { private void rejectEntrustInfo(Long[] reportIds, String reason, EntrustReportStatusEnum reportStatusEnum, Account account) {
List<EntrustReport> reports = baseMapper.selectBatchIds(Arrays.asList(reportIds)); List<EntrustReport> reports = baseMapper.selectBatchIds(Arrays.asList(reportIds));
Map<Long, EntrustReport> reportMap = reports.stream().collect(Collectors.toMap(t -> t.getEntrustId(), t -> t));
List<Long> entrustIds = reports.stream().map(t -> t.getEntrustId()).collect(Collectors.toList()); List<Long> entrustIds = reports.stream().map(t -> t.getEntrustId()).collect(Collectors.toList());
List<Entrust> entrustList = entrustService.getBatchIds(entrustIds); List<Entrust> entrustList = entrustService.getBatchIds(entrustIds);
entrustList.stream().forEach(t -> { entrustList.stream().forEach(t -> {
if (StringUtils.isNotBlank(t.getStatusPath())) { if (isToStatusPath(t)) {
entrustService.rejectToPrevNode(t, reason, account); entrustService.rejectToPrevNode(t, reason, account);
} else { } else {
rejectByReportStatus(t, reportStatusEnum, account); rejectByReportStatus(t, reportMap.get(t.getId()), reportStatusEnum,reason, account);
} }
}); });
} }
...@@ -407,7 +409,7 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe ...@@ -407,7 +409,7 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe
* @param reportStatus * @param reportStatus
* @param account * @param account
*/ */
private void rejectByReportStatus(Entrust entrust, EntrustReportStatusEnum reportStatus, Account account) { private void rejectByReportStatus(Entrust entrust, EntrustReport entrustReport, EntrustReportStatusEnum reportStatus,String reason, Account account) {
EntrustSample entrustSample = new EntrustSample(); EntrustSample entrustSample = new EntrustSample();
EntrustSampleStatusEnum sampleStatusEnum = null; EntrustSampleStatusEnum sampleStatusEnum = null;
...@@ -427,6 +429,10 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe ...@@ -427,6 +429,10 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe
entrustSample.setStatus(sampleStatusEnum); entrustSample.setStatus(sampleStatusEnum);
entrustSample.setProgress(sampleStatusEnum); entrustSample.setProgress(sampleStatusEnum);
entrustSampleService.update(entrustSample, Condition.create().eq("entrust_id", entrust.getId())); entrustSampleService.update(entrustSample, Condition.create().eq("entrust_id", entrust.getId()));
if (null != entrustReport) {
reason = String.format("因【%s】,退回至%s",reason,sampleStatusEnum.getDisplay());
entrustRecordService.record(new Long[]{entrust.getId()}, entrustReport.getStatus().getDisplay(), sampleStatusEnum.getDisplay(), 2, account, reason);
}
} }
} }
......
...@@ -18,7 +18,7 @@ import org.springframework.web.multipart.MultipartFile; ...@@ -18,7 +18,7 @@ import org.springframework.web.multipart.MultipartFile;
import java.util.List; import java.util.List;
/** /**
* 服务实现类 * 服务实现类
* *
* @author wwd * @author wwd
* @since 2021-02-26 * @since 2021-02-26
...@@ -31,8 +31,12 @@ public class EntrustReportTemplateServiceImpl extends BaseServiceImpl<EntrustRep ...@@ -31,8 +31,12 @@ public class EntrustReportTemplateServiceImpl extends BaseServiceImpl<EntrustRep
@Override @Override
public Page<EntrustReportTemplate> page(Page<EntrustReportTemplate> page, EntrustReportTemplate entrustReportTemplate) { public Page<EntrustReportTemplate> page(Page<EntrustReportTemplate> page, EntrustReportTemplate entrustReportTemplate) {
String name = entrustReportTemplate.getName();
entrustReportTemplate.setName(null);
Wrapper wrapper = new EntityWrapper<>(entrustReportTemplate); Wrapper wrapper = new EntityWrapper<>(entrustReportTemplate);
if (StringUtils.isNotBlank(name)) {
wrapper.like("name", name);
}
return this.page(page, wrapper); return this.page(page, wrapper);
} }
...@@ -42,10 +46,10 @@ public class EntrustReportTemplateServiceImpl extends BaseServiceImpl<EntrustRep ...@@ -42,10 +46,10 @@ public class EntrustReportTemplateServiceImpl extends BaseServiceImpl<EntrustRep
} }
@Override @Override
public boolean uploadTemplate(MultipartFile file, String name,String classType, String remark) { public boolean uploadTemplate(MultipartFile file, String name, String classType, String remark) {
RestAssert.fail(StringUtils.isBlank(name),"模板名称不能为空"); RestAssert.fail(StringUtils.isBlank(name), "模板名称不能为空");
RestAssert.fail(StringUtils.isBlank(classType),"模板类别不能为空"); RestAssert.fail(StringUtils.isBlank(classType), "模板类别不能为空");
RestAssert.fail(StringUtils.isBlank(remark),"模板名称说明不能为空"); RestAssert.fail(StringUtils.isBlank(remark), "模板名称说明不能为空");
String fileName = file.getOriginalFilename(); String fileName = file.getOriginalFilename();
RestAssert.fail(StringUtils.isBlank(fileName), "请上传文件"); RestAssert.fail(StringUtils.isBlank(fileName), "请上传文件");
EntrustReportTemplate attachment = new EntrustReportTemplate(); EntrustReportTemplate attachment = new EntrustReportTemplate();
......
...@@ -15,6 +15,7 @@ import com.patzn.cloud.oss.starter.OssClient; ...@@ -15,6 +15,7 @@ import com.patzn.cloud.oss.starter.OssClient;
import com.patzn.cloud.oss.starter.OssFileResult; import com.patzn.cloud.oss.starter.OssFileResult;
import com.patzn.cloud.service.hmhj.dto.QueryDTO; import com.patzn.cloud.service.hmhj.dto.QueryDTO;
import com.patzn.cloud.service.hmhj.entity.*; import com.patzn.cloud.service.hmhj.entity.*;
import com.patzn.cloud.service.hmhj.enums.EntrustFlowEnum;
import com.patzn.cloud.service.hmhj.enums.EntrustSampleItemStatusEnum; import com.patzn.cloud.service.hmhj.enums.EntrustSampleItemStatusEnum;
import com.patzn.cloud.service.hmhj.enums.EntrustSampleStatusEnum; import com.patzn.cloud.service.hmhj.enums.EntrustSampleStatusEnum;
import com.patzn.cloud.service.hmhj.enums.EntrustStatusEnum; import com.patzn.cloud.service.hmhj.enums.EntrustStatusEnum;
...@@ -90,7 +91,6 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI ...@@ -90,7 +91,6 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
private IItemDeviateService itemDeviateService; private IItemDeviateService itemDeviateService;
@Autowired @Autowired
private IItemRelOriginalRecordService itemRelOriginalRecordService; private IItemRelOriginalRecordService itemRelOriginalRecordService;
...@@ -122,8 +122,8 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI ...@@ -122,8 +122,8 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
String name = entrustSampleItem.getName(); String name = entrustSampleItem.getName();
entrustSampleItem.setName(null); entrustSampleItem.setName(null);
Wrapper wrapper = new EntityWrapper<>(entrustSampleItem); Wrapper wrapper = new EntityWrapper<>(entrustSampleItem);
if(StringUtils.isNotBlank(name)){ if (StringUtils.isNotBlank(name)) {
wrapper.like("name",name); wrapper.like("name", name);
} }
return this.page(page, wrapper); return this.page(page, wrapper);
} }
...@@ -166,22 +166,28 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI ...@@ -166,22 +166,28 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
// 判定是否委托下的检测项目都已分配 // 判定是否委托下的检测项目都已分配
Entrust entrust = getEntrustByItemId(ids[0]); Entrust entrust = getEntrustByItemId(ids[0]);
if(null != entrust && isAllocatedByEntrustId(entrust.getId()) && StringUtils.isNotBlank(entrust.getStatusPath())){ if (null != entrust && isAllocatedByEntrustId(entrust.getId())) {
entrustService.submitToNextNode(entrust,account); // 添加流程数据录入节点
entrust.setFlowStatus(EntrustFlowEnum.TEST.getName());
if (StringUtils.isNotBlank(entrust.getStatusPath()) && entrust.getStatusPath().contains(entrust.getFlowStatus())) {
entrustService.submitToNextNode(entrust, account);
} else {
entrustRecordService.record(new Long[]{entrust.getId()}, "任务分配", "数据录入", 0, account, "提交至数据录入");
}
} }
return true; return true;
} }
private Entrust getEntrustByItemId(Long itemId){ private Entrust getEntrustByItemId(Long itemId) {
if(null == itemId){ if (null == itemId) {
return null; return null;
} }
EntrustSampleItem entrustSampleItem = baseMapper.selectById(itemId); EntrustSampleItem entrustSampleItem = baseMapper.selectById(itemId);
if(null == entrustSampleItem){ if (null == entrustSampleItem) {
return null; return null;
} }
EntrustSample entrustSample = entrustSampleService.getById(entrustSampleItem.getEntrustSampleId()); EntrustSample entrustSample = entrustSampleService.getById(entrustSampleItem.getEntrustSampleId());
if(null == entrustSample || null == entrustSample.getEntrustId()){ if (null == entrustSample || null == entrustSample.getEntrustId()) {
return null; return null;
} }
return entrustService.getById(entrustSample.getEntrustId()); return entrustService.getById(entrustSample.getEntrustId());
...@@ -252,9 +258,9 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI ...@@ -252,9 +258,9 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
// 若存在检测项目没有完成的,不可提交 // 若存在检测项目没有完成的,不可提交
// RestAssert.fail(itemList.stream().filter(t -> (null == t.getEndIndex() || 0 == t.getEndIndex().intValue())).count() > 0, "存在没有完成检测的检测项目"); // RestAssert.fail(itemList.stream().filter(t -> (null == t.getEndIndex() || 0 == t.getEndIndex().intValue())).count() > 0, "存在没有完成检测的检测项目");
// 若存在检测项目没有完成的,不可提交 // 若存在检测项目没有完成的,不可提交
for (EntrustSampleItemVO item : itemList) { for (EntrustSampleItemVO item : itemList) {
RestAssert.fail(null == item.getEndIndex() || 0 == item.getEndIndex().intValue(), "检测项目名称:" + item.getName() + "未填写检测值,请确认!"); RestAssert.fail(null == item.getEndIndex() || 0 == item.getEndIndex().intValue(), "检测项目名称:" + item.getName() + "未填写检测值,请确认!");
} }
EntrustSampleItem item = new EntrustSampleItem(); EntrustSampleItem item = new EntrustSampleItem();
item.setTestTime(new Date()); item.setTestTime(new Date());
...@@ -269,23 +275,23 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI ...@@ -269,23 +275,23 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
entrustSampleService.update(sample, Condition.create().eq("entrust_id", entrustId)); entrustSampleService.update(sample, Condition.create().eq("entrust_id", entrustId));
// 提交到下一节点,可能是不更改状态 // 提交到下一节点,可能是不更改状态
if(isConfigureStatusPath(entrust)){ if (isConfigureStatusPath(entrust)) {
entrustService.submitToNextNode(entrust,account); entrustService.submitToNextNode(entrust, account);
return true; return true;
} }
// 样品操作日志 // 样品操作日志
// 暂时不提供 // 暂时不提供
// 修改委托信息 // 修改委托信息
entrust.setLid(account.getUserId()).setLtime(new Date()).setProgress(EntrustStatusEnum.TEST).setStatus(EntrustStatusEnum.TEST); entrust.setLid(account.getUserId()).setLtime(new Date()).setFlowStatus(EntrustFlowEnum.REPORT_MAKE.getName()).setProgress(EntrustStatusEnum.TEST).setStatus(EntrustStatusEnum.TEST);
entrustService.updateById(entrust); entrustService.updateById(entrust);
// 添加委托日志 // 添加委托日志
entrustRecordService.record(new Long[]{entrustId}, EntrustStatusEnum.TEST.getDisplay(), EntrustStatusEnum.TEST.getDisplay(), 0, account, "提交至报告编制"); entrustRecordService.record(new Long[]{entrustId}, "数据录入", "报告编制", 0, account, "提交至报告编制");
//执行转PDF操作 //执行转PDF操作
executor1.execute(new Runnable() { executor1.execute(new Runnable() {
@Override @Override
public void run() { public void run() {
changeExcelToPdf(ids,list); changeExcelToPdf(ids, list);
} }
}); });
...@@ -293,19 +299,19 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI ...@@ -293,19 +299,19 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
} }
public void changeExcelToPdf(Long[] ids,List<EntrustSampleItem> list){ public void changeExcelToPdf(Long[] ids, List<EntrustSampleItem> list) {
List<ItemRelOriginalRecord> recordList = itemRelOriginalRecordService.list(Condition.create().setSqlSelect("record_id").in("item_id",ids).isNotNull("record_id").groupBy("record_id")); List<ItemRelOriginalRecord> recordList = itemRelOriginalRecordService.list(Condition.create().setSqlSelect("record_id").in("item_id", ids).isNotNull("record_id").groupBy("record_id"));
if (CollectionUtils.isEmpty(recordList)) if (CollectionUtils.isEmpty(recordList))
return; return;
List<Long> recordsList= recordList.stream().map(r->{ List<Long> recordsList = recordList.stream().map(r -> {
return r.getRecordId(); return r.getRecordId();
}).collect(Collectors.toList()); }).collect(Collectors.toList());
List<OriginalRecord> originalRecordList = originalRecordService.list(Condition.create().in("id",recordList).isNull("pdf_object_key")); List<OriginalRecord> originalRecordList = originalRecordService.list(Condition.create().in("id", recordList).isNull("pdf_object_key"));
if (CollectionUtils.isEmpty(originalRecordList)) if (CollectionUtils.isEmpty(originalRecordList))
return; return;
excelToPdf(originalRecordList); excelToPdf(originalRecordList);
} }
...@@ -314,9 +320,9 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI ...@@ -314,9 +320,9 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
List<OriginalRecord> updateList = new ArrayList<>(); List<OriginalRecord> updateList = new ArrayList<>();
List<File> deleteFileList = new ArrayList<>(); List<File> deleteFileList = new ArrayList<>();
for (OriginalRecord record : originalRecordList) { for (OriginalRecord record : originalRecordList) {
InputStream io = ossClient.download(record.getObjectKey()); InputStream io = ossClient.download(record.getObjectKey());
File file = LabreOfficeUtil.inputStream2File(io); File file = LabreOfficeUtil.inputStream2File(io);
File filePdf= LabreOfficeUtil.convertOffice2PDF(libreOfficeUrl,file); File filePdf = LabreOfficeUtil.convertOffice2PDF(libreOfficeUrl, file);
OssFileResult fileResult = ossClient.upload(filePdf); OssFileResult fileResult = ossClient.upload(filePdf);
...@@ -327,7 +333,7 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI ...@@ -327,7 +333,7 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
deleteFileList.add(file); deleteFileList.add(file);
deleteFileList.add(filePdf); deleteFileList.add(filePdf);
} }
if (CollectionUtils.isNotEmpty(updateList)){ if (CollectionUtils.isNotEmpty(updateList)) {
originalRecordService.updateBatchById(updateList); originalRecordService.updateBatchById(updateList);
} }
FileUtils.deleteFiles(deleteFileList); FileUtils.deleteFiles(deleteFileList);
...@@ -335,8 +341,6 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI ...@@ -335,8 +341,6 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
} }
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public boolean submitCheck(Long[] ids, Account account) { public boolean submitCheck(Long[] ids, Account account) {
...@@ -452,6 +456,12 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI ...@@ -452,6 +456,12 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
} }
@Override @Override
public List<EntrustSampleItemVO> listBySampleIdsAndIds(Long[] sampleIds,Long[] ids) {
return baseMapper.selectVOListBySampleIdsAndIds(sampleIds,ids);
}
@Override
public OriginalRecord saveExcelOriginalRecord(Long[] ids, Long templateId, Account account) { public OriginalRecord saveExcelOriginalRecord(Long[] ids, Long templateId, Account account) {
RestAssert.fail(ArrayUtils.isEmpty(ids), "请选择试验项目!"); RestAssert.fail(ArrayUtils.isEmpty(ids), "请选择试验项目!");
RestAssert.fail(null == templateId, "请选择原始记录模板"); RestAssert.fail(null == templateId, "请选择原始记录模板");
...@@ -481,7 +491,7 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI ...@@ -481,7 +491,7 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
Map<String, String> mapReplace = new HashMap<>(); Map<String, String> mapReplace = new HashMap<>();
mapReplace.put("#{nowDate}", DateUtils.toYearMonthDay(new Date())); mapReplace.put("#{nowDate}", DateUtils.toYearMonthDay(new Date()));
mapReplace.put("#{sampleNum}", entrustSampleService.countByEntrustId(entrust.getId())+""); mapReplace.put("#{sampleNum}", entrustSampleService.countByEntrustId(entrust.getId()) + "");
if (null != template.getMoreItem() && 1 == template.getMoreItem()) { if (null != template.getMoreItem() && 1 == template.getMoreItem()) {
Set<Long> sampleIdsList = new HashSet<>(); Set<Long> sampleIdsList = new HashSet<>();
...@@ -489,9 +499,9 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI ...@@ -489,9 +499,9 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
sampleIdsList.add(itemVO.getEntrustSampleId()); sampleIdsList.add(itemVO.getEntrustSampleId());
} }
List<EntrustSample> sampleList = entrustSampleService.list(Condition.create().in("id", sampleIdsList)); List<EntrustSample> sampleList = entrustSampleService.list(Condition.create().in("id", sampleIdsList));
if (CollectionUtils.isNotEmpty(sampleList)){ if (CollectionUtils.isNotEmpty(sampleList)) {
mapReplace.put("#{sampleFrom}",sampleList.get(0).getSampleFrom()); mapReplace.put("#{sampleFrom}", sampleList.get(0).getSampleFrom());
mapReplace.put("#{sampleName}",sampleList.get(0).getName()); mapReplace.put("#{sampleName}", sampleList.get(0).getName());
} }
List<EntrustSampleVO> sampleVOList = new ArrayList<>(sampleList.size()); List<EntrustSampleVO> sampleVOList = new ArrayList<>(sampleList.size());
...@@ -516,9 +526,9 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI ...@@ -516,9 +526,9 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
} else { } else {
if (CollectionUtils.isNotEmpty(voList)){ if (CollectionUtils.isNotEmpty(voList)) {
mapReplace.put("#{sampleFrom}",voList.get(0).getSampleFrom()); mapReplace.put("#{sampleFrom}", voList.get(0).getSampleFrom());
mapReplace.put("#{sampleName}",voList.get(0).getSampleName()); mapReplace.put("#{sampleName}", voList.get(0).getSampleName());
} }
OriginalFactory factory = new OriginalFactory(template, voList, entrust, configList, xssfWorkbook); OriginalFactory factory = new OriginalFactory(template, voList, entrust, configList, xssfWorkbook);
...@@ -529,8 +539,7 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI ...@@ -529,8 +539,7 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
} }
HSSFWorkbookUtil.replaceModel(mapReplace, xssfWorkbook, 0);
HSSFWorkbookUtil.replaceModel(mapReplace,xssfWorkbook,0);
FileOutputStream os = null; FileOutputStream os = null;
File file = null; File file = null;
...@@ -816,15 +825,15 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI ...@@ -816,15 +825,15 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
} }
@Override @Override
public boolean isAllocatedByEntrustId(Long entrustId){ public boolean isAllocatedByEntrustId(Long entrustId) {
if(null == entrustId || 0l== entrustId.longValue()){ if (null == entrustId || 0l == entrustId.longValue()) {
return false; return false;
} }
return baseMapper.selectUnallocatedCountByEntrustId(entrustId) == 0; return baseMapper.selectUnallocatedCountByEntrustId(entrustId) == 0;
} }
private boolean isConfigureStatusPath(Entrust entrust){ private boolean isConfigureStatusPath(Entrust entrust) {
return StringUtils.isBlank(entrust.getStatusPath()) ? false : true; return StringUtils.isNotBlank(entrust.getStatusPath()) && entrust.getStatusPath().contains(entrust.getFlowStatus()) ? true : false;
} }
@Override @Override
...@@ -834,7 +843,7 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI ...@@ -834,7 +843,7 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
} }
@Override @Override
public List<TesterWorkloadStatsVO> getTesterWorkloadStatusQuery(QueryDTO queryDTO){ public List<TesterWorkloadStatsVO> getTesterWorkloadStatusQuery(QueryDTO queryDTO) {
return baseMapper.selectTesterWorkloadStatus(queryDTO); return baseMapper.selectTesterWorkloadStatus(queryDTO);
} }
...@@ -845,7 +854,7 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI ...@@ -845,7 +854,7 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
@Override @Override
public List<EntrustSampleCalcResultVO> getSampleCalcResult(QueryDTO queryDTO){ public List<EntrustSampleCalcResultVO> getSampleCalcResult(QueryDTO queryDTO) {
return baseMapper.selectSampleCalcResult(queryDTO); return baseMapper.selectSampleCalcResult(queryDTO);
} }
......
...@@ -53,6 +53,10 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp ...@@ -53,6 +53,10 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp
@Autowired @Autowired
private IEntrustService entrustService; private IEntrustService entrustService;
@Autowired
private IEntrustRecordService entrustRecordService;
@Override @Override
public Page<EntrustSamplePrepare> page(Page<EntrustSamplePrepare> page, EntrustSamplePrepare entrustSamplePrepare) { public Page<EntrustSamplePrepare> page(Page<EntrustSamplePrepare> page, EntrustSamplePrepare entrustSamplePrepare) {
Wrapper wrapper = new EntityWrapper<>(entrustSamplePrepare); Wrapper wrapper = new EntityWrapper<>(entrustSamplePrepare);
...@@ -67,13 +71,13 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp ...@@ -67,13 +71,13 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp
@Override @Override
public boolean removeBySampleIds(Long[] sampleIds) { public boolean removeBySampleIds(Long[] sampleIds) {
if(null == sampleIds || sampleIds.length == 0){ if (null == sampleIds || sampleIds.length == 0) {
return false; return false;
} }
Account account = LoginHelper.getAccount(); Account account = LoginHelper.getAccount();
EntrustSamplePrepare samplePrepare = new EntrustSamplePrepare(); EntrustSamplePrepare samplePrepare = new EntrustSamplePrepare();
samplePrepare.setDeleted(1).setLid(account.getUserId()).setLtime(new Date()); samplePrepare.setDeleted(1).setLid(account.getUserId()).setLtime(new Date());
return update(samplePrepare,Condition.create().in("entrust_sample_id",sampleIds).eq("deleted",0)); return update(samplePrepare, Condition.create().in("entrust_sample_id", sampleIds).eq("deleted", 0));
} }
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
...@@ -91,7 +95,7 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp ...@@ -91,7 +95,7 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp
List<EntrustSampleBackup> saveBackupList = new ArrayList<>(); List<EntrustSampleBackup> saveBackupList = new ArrayList<>();
for (EntrustSampleVO vo : sampleVOList) { for (EntrustSampleVO vo : sampleVOList) {
if ("送检样".equalsIgnoreCase(vo.getMakeType())){ if ("送检样".equalsIgnoreCase(vo.getMakeType())) {
EntrustSamplePrepare prepare = vo.convert(EntrustSamplePrepare.class); EntrustSamplePrepare prepare = vo.convert(EntrustSamplePrepare.class);
prepare.setEntrustSampleId(vo.getEntrustSampleId()); prepare.setEntrustSampleId(vo.getEntrustSampleId());
prepare.setStatus(EntrustSamplePrepareStatusEnum.RECEIVE); prepare.setStatus(EntrustSamplePrepareStatusEnum.RECEIVE);
...@@ -102,7 +106,7 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp ...@@ -102,7 +106,7 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp
// 主要用来修改委托的复合型检测信息 // 主要用来修改委托的复合型检测信息
EntrustSample entrustSample = vo.convert(EntrustSample.class); EntrustSample entrustSample = vo.convert(EntrustSample.class);
entrustSampleService.updateById(entrustSample); entrustSampleService.updateById(entrustSample);
}else if ("备样".equalsIgnoreCase(vo.getMakeType())){ } else if ("备样".equalsIgnoreCase(vo.getMakeType())) {
EntrustSampleBackup backup = new EntrustSampleBackup(); EntrustSampleBackup backup = new EntrustSampleBackup();
EntrustSample sample = entrustSampleService.getById(vo.getId()); EntrustSample sample = entrustSampleService.getById(vo.getId());
backup.setEntrustId(vo.getEntrustId()); backup.setEntrustId(vo.getEntrustId());
...@@ -130,7 +134,6 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp ...@@ -130,7 +134,6 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp
}).collect(Collectors.toList()); }).collect(Collectors.toList());
for (EntrustSample sample : sampleList) { for (EntrustSample sample : sampleList) {
if (haveSampleIds.contains(sample.getId())) { if (haveSampleIds.contains(sample.getId())) {
continue; continue;
...@@ -151,7 +154,6 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp ...@@ -151,7 +154,6 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp
// saveBackupList.add(backup); // saveBackupList.add(backup);
// 添加样品管理数据 // 添加样品管理数据
EntrustSampleBackup manage = new EntrustSampleBackup(); EntrustSampleBackup manage = new EntrustSampleBackup();
BeanUtils.copyProperties(backup, manage); BeanUtils.copyProperties(backup, manage);
...@@ -187,7 +189,7 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp ...@@ -187,7 +189,7 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp
// updateEntrust.setId(entrust.getId()); // updateEntrust.setId(entrust.getId());
// entrustService.updateById(updateEntrust); // entrustService.updateById(updateEntrust);
// 根据流程状态提交 // 根据流程状态提交
if (StringUtils.isNotEmpty(entrust.getStatusPath())) { if (StringUtils.isNotEmpty(entrust.getStatusPath()) && entrust.getStatusPath().contains(entrust.getFlowStatus())) {
entrustService.submitToNextNode(entrust, account); entrustService.submitToNextNode(entrust, account);
} else { } else {
Entrust updateEntrust = new Entrust(); Entrust updateEntrust = new Entrust();
...@@ -196,8 +198,7 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp ...@@ -196,8 +198,7 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp
updateEntrust.setFlowStatus(EntrustFlowEnum.RECEIVE.getName()); updateEntrust.setFlowStatus(EntrustFlowEnum.RECEIVE.getName());
updateEntrust.setId(entrust.getId()); updateEntrust.setId(entrust.getId());
entrustService.updateById(updateEntrust); entrustService.updateById(updateEntrust);
// String remark = "提交至样品接收", title = "新的样品接收任务!"; entrustRecordService.record(new Long[]{entrust.getId()}, "样品制备", "样品接收", 0, account, "提交至样品接收");
// entrustRecordService.record(new Long[]{entrust.getId()}, status.getDisplay(), nextStatus.getDisplay(), 0, account, remark);
} }
} }
...@@ -207,11 +208,11 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp ...@@ -207,11 +208,11 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public boolean submitSampleReceive(Long[] ids, Account account) { public boolean submitSampleReceive(Long[] ids, String receiveType, Account account) {
RestAssert.fail(ArrayUtils.isEmpty(ids), "请选择检测样品"); RestAssert.fail(ArrayUtils.isEmpty(ids), "请选择检测样品");
List<EntrustSamplePrepare> prepareList = super.list(Condition.create().in("id", ids)); List<EntrustSamplePrepare> prepareList = super.list(Condition.create().in("id", ids));
RestAssert.fail(CollectionUtils.isEmpty(prepareList), "请选择检测样品"); RestAssert.fail(CollectionUtils.isEmpty(prepareList), "请选择检测样品");
// receiveType : 接收方式,手动或者扫码接收
List<Long> sampleIdsList = new ArrayList<>(); List<Long> sampleIdsList = new ArrayList<>();
for (EntrustSamplePrepare prepare : prepareList) { for (EntrustSamplePrepare prepare : prepareList) {
if (null != prepare.getEntrustSampleId() && null != prepare.getGroupId()) { if (null != prepare.getEntrustSampleId() && null != prepare.getGroupId()) {
...@@ -225,7 +226,7 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp ...@@ -225,7 +226,7 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp
EntrustSample entrustSample = entrustSampleService.getById(prepareList.get(0).getEntrustSampleId()); EntrustSample entrustSample = entrustSampleService.getById(prepareList.get(0).getEntrustSampleId());
Entrust entrust = entrustService.getById(entrustSample.getEntrustId()); Entrust entrust = entrustService.getById(entrustSample.getEntrustId());
if(null == entrust.getTestAddress()){ if (null == entrust.getTestAddress()) {
// entrust.setReceiveTime(new Date()); // entrust.setReceiveTime(new Date());
} }
...@@ -262,11 +263,13 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp ...@@ -262,11 +263,13 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp
if (CollectionUtils.isEmpty(notOkSampleIds)) { if (CollectionUtils.isEmpty(notOkSampleIds)) {
// 检测开始时间为接收时间 // 检测开始时间为接收时间
entrust.setTestTimeS(new Date()); entrust.setTestTimeS(new Date());
if (StringUtils.isNotEmpty(entrust.getStatusPath())) { if (StringUtils.isNotEmpty(entrust.getStatusPath()) && entrust.getStatusPath().contains(entrust.getFlowStatus())) {
entrustService.submitToNextNode(entrust, account); entrustService.submitToNextNode(entrust, account);
}else{ } else {
entrust.setFlowStatus(EntrustFlowEnum.TEST.getName()); entrust.setFlowStatus(EntrustFlowEnum.TEST.getName());
entrustService.updateById(entrust); entrustService.updateById(entrust);
// 添加委托操作记录
entrustRecordService.record(new Long[]{entrust.getId()}, "样品接收", "任务分配", 0, account, "提交至任务分配");
} }
} }
......
...@@ -117,32 +117,53 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe ...@@ -117,32 +117,53 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
List<EntrustSampleVO> sampleVOList = baseMapper.selectVOList(page, entrustSample); List<EntrustSampleVO> sampleVOList = baseMapper.selectVOList(page, entrustSample);
if (CollectionUtils.isEmpty(sampleVOList))return page; if (CollectionUtils.isEmpty(sampleVOList)) return page;
List<Long> sampleIdsList= sampleVOList.stream().map(s->{ List<Long> sampleIdsList = sampleVOList.stream().map(s -> {
return s.getId(); return s.getId();
}).collect(Collectors.toList()); }).collect(Collectors.toList());
List<EntrustSampleItem> itemList = entrustSampleItemService.list(Condition.create().setSqlSelect("id","entrust_sample_id","name").isNotNull("name").in("entrust_sample_id",sampleIdsList)); List<EntrustSampleItem> itemList = entrustSampleItemService.list(Condition.create().setSqlSelect("id", "entrust_sample_id", "name").isNotNull("name").in("entrust_sample_id", sampleIdsList));
Map<Long,Set<String>> itemMap = new HashMap<>(); Map<Long, List<String>> itemMap = new HashMap<>();
Map<Long, Set<String>> itemSetMap = new HashMap<>();
for (EntrustSampleItem item : itemList) { for (EntrustSampleItem item : itemList) {
if (itemMap.containsKey(item.getEntrustSampleId())){ if (itemMap.containsKey(item.getEntrustSampleId())) {
Set<String> set = itemMap.get(item.getEntrustSampleId()); List<String> list = itemMap.get(item.getEntrustSampleId());
list.add(item.getName());
itemMap.put(item.getEntrustSampleId(), list);
Set<String> set = itemSetMap.get(item.getEntrustSampleId());
set.add(item.getName()); set.add(item.getName());
itemMap.put(item.getEntrustSampleId(),set); itemSetMap.put(item.getEntrustSampleId(), set);
}else { } else {
List<String> list = new ArrayList<>();
list.add(item.getName());
itemMap.put(item.getEntrustSampleId(), list);
Set<String> set = new HashSet<>(); Set<String> set = new HashSet<>();
set.add(item.getName()); set.add(item.getName());
itemMap.put(item.getEntrustSampleId(),set); itemSetMap.put(item.getEntrustSampleId(), set);
} }
} }
for (EntrustSampleVO vo : sampleVOList) { for (EntrustSampleVO vo : sampleVOList) {
vo.setItemNames(StringHandleUtils.join(itemMap.get(vo.getId())));
List<String> nameList = itemMap.get(vo.getId());
if (CollectionUtils.isEmpty(nameList)) {
vo.setItemRepeat(false);
} else {
String itemNames = StringHandleUtils.join(nameList);
vo.setItemNames(itemNames);
if (nameList.size() != itemSetMap.get(vo.getId()).size()) {
vo.setItemRepeat(true);
} else {
vo.setItemRepeat(false);
}
}
} }
return page.setRecords(sampleVOList); return page.setRecords(sampleVOList);
} }
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public boolean submitToAcceptanceResultInput(Long[] ids, Account account) { public boolean submitToAcceptanceResultInput(Long[] ids, Account account) {
...@@ -202,7 +223,7 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe ...@@ -202,7 +223,7 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
vo.setIndexList(sampleIndexMap.get(vo.getId())); vo.setIndexList(sampleIndexMap.get(vo.getId()));
} }
// 数据排序,有结果的排在前面,无结果排后面 // 数据排序,有结果的排在前面,无结果排后面
Collections.sort(voList,Comparator.comparingInt(t->CollectionUtils.isNotEmpty(t.getIndexList()) ? 1 : 0)); Collections.sort(voList, Comparator.comparingInt(t -> CollectionUtils.isNotEmpty(t.getIndexList()) ? 1 : 0));
return page.setRecords(voList); return page.setRecords(voList);
} }
...@@ -386,9 +407,6 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe ...@@ -386,9 +407,6 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
} else if (nextFlowStatus == EntrustFlowEnum.QUALITY_JUDGE) { } else if (nextFlowStatus == EntrustFlowEnum.QUALITY_JUDGE) {
sampleStatus = EntrustSampleStatusEnum.END; sampleStatus = EntrustSampleStatusEnum.END;
itemStatus = EntrustSampleItemStatusEnum.END; itemStatus = EntrustSampleItemStatusEnum.END;
} else if (nextFlowStatus == EntrustFlowEnum.QUALITY_CHECK) {
sampleStatus = EntrustSampleStatusEnum.END;
itemStatus = EntrustSampleItemStatusEnum.END;
} }
if (null != sampleStatus) { if (null != sampleStatus) {
...@@ -966,6 +984,314 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe ...@@ -966,6 +984,314 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
return true; return true;
} }
@Override
public boolean makeSingleReport(Long sampleId, Long[] itemIds, Long templateId, Account account) {
Long[] ids = new Long[]{sampleId};
RestAssert.fail(ArrayUtils.isEmpty(ids), "请选择要生成报告的样品");
RestAssert.fail(ArrayUtils.isEmpty(itemIds), "请选择检测项目");
RestAssert.fail(null == templateId, "请选择报告模板!");
List<EntrustReportRelSample> relSamples = entrustReportRelSampleService.list(Condition.create().in("sample_id", ids));
if (CollectionUtils.isNotEmpty(relSamples)) {
RestAssert.fail("您选择的样品含有已经生成过报告的,请确认");
}
List<EntrustSample> sampleList = super.list(Condition.create().in("id", ids));
RestAssert.fail(CollectionUtils.isEmpty(sampleList), "样品不存在请确认!");
Long entrustId = sampleList.get(0).getEntrustId();
Entrust entrust = entrustService.getById(entrustId);
EntrustReportTemplate sysFileTemplate = entrustReportTemplateService.getById(templateId);
Set<String> sampleNameSet = new HashSet<>();
for (EntrustSample sample : sampleList) {
sampleNameSet.add(sample.getName());
}
String sampleName = StringHandleUtils.join(sampleNameSet);
if (sysFileTemplate.getObjectKey().contains(".docx")) {
RestAssert.fail(null == sysFileTemplate, "选择的报告模板不存在");
String sampleShape = sampleList.get(0).getSampleShape();
Map<String, Object> contractMap = new HashMap<>();
contractMap.put("s", entrust);
contractMap.put("sampleName", sampleName);
contractMap.put("sampleShape", sampleShape);
InputStream io = ossClient.download(sysFileTemplate.getObjectKey());
XWPFTemplate xwpfTemplate = null;
try {
xwpfTemplate = XWPFTemplate.compile(io).setDefaultValue("/").render(contractMap);
} catch (Exception e) {
logger.error("生成报告失败", e);
RestAssert.fail("报告生成失败:" + e.getMessage());
}
XWPFDocument baseDoc = xwpfTemplate.getXWPFDocument();
List<EntrustSampleItemVO> sampleItemVOList = entrustSampleItemService.listBySampleIdsAndIds(ids, itemIds);
List<XWPFTable> tableList = baseDoc.getTables();
for (XWPFTable xwpfTable : tableList) {
String text = xwpfTable.getText();
if (com.patzn.cloud.commons.toolkit.StringHandleUtils.containsString(text, "{name}", "{sampleCode}", "{agreedValue}", "{testValue}")) {
//检测内容
reportMakeTestContent(xwpfTable, sampleItemVOList.size(), 1, sampleItemVOList);
}
}
String generated = entrust.getCode();
FileOutputStream os = null;
File file = null;
try {
file = File.createTempFile(generated, ".docx");
os = new FileOutputStream(file);
baseDoc.write(os);
os.flush();
entrustReportService.uploadReportGenerateDocx(entrust, ids, account, StringHandleUtils.join(sampleNameSet), "报告生成", file);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
os.close();
baseDoc.close();
io.close();
FileUtils.deleteFiles(file);
} catch (Exception e) {
e.printStackTrace();
}
}
} else if (sysFileTemplate.getObjectKey().contains(".xlsx")) {
List<EntrustSampleItemVO> sampleItemVOList = entrustSampleItemService.listBySampleIdsAndIds(ids, itemIds);
List<EntrustSampleVO> sampleVOList = new ArrayList<>();
for (EntrustSample sample : sampleList) {
EntrustSampleVO vo = sample.convert(EntrustSampleVO.class);
List<EntrustSampleItemVO> sampleItemList = new ArrayList<>();
for (EntrustSampleItemVO itemVO : sampleItemVOList) {
if (sample.getId().equals(itemVO.getEntrustSampleId())) {
sampleItemList.add(itemVO);
}
}
vo.setItemVOList(sampleItemList);
sampleVOList.add(vo);
}
InputStream io = ossClient.download(sysFileTemplate.getObjectKey());
XSSFWorkbook xssfWorkbook = null;
try {
xssfWorkbook = new XSSFWorkbook(io);
} catch (IOException e) {
e.printStackTrace();
}
List<EntrustReportTemplateConfig> configList = entrustReportTemplateConfigService.list(Condition.create().eq("template_id", templateId));
OriginalUtil.doReplace(xssfWorkbook, entrust);
Map<String, String> mapReplace = new HashMap<>();
mapReplace.put("#{nowDate}", DateUtils.toYearMonthDay(new Date()));
mapReplace.put("#{sampleNum}", countByEntrustId(entrust.getId()) + "");
HSSFWorkbookUtil.replaceModel(mapReplace, xssfWorkbook, 0);
XSSFSheet sheetOne = xssfWorkbook.getSheetAt(0);
String sheetName = sheetOne.getSheetName();
System.out.println(sheetName);
sheetOne.setForceFormulaRecalculation(true);
int sampleMergerNum = sysFileTemplate.getSampleMergerNum();
int templateSampleNum = sysFileTemplate.getTemplateSampleNum();
if (templateSampleNum >= sampleVOList.size()) {
Integer beginRow = sysFileTemplate.getSampleBeginRow();
for (EntrustSampleVO vo : sampleVOList) {
List<EntrustSampleItemIndex> indexList = entrustSampleItemIndexService.listBySampleId(vo.getId());
vo.setIndexList(indexList);
XSSFRow xssfRow = sheetOne.getRow(beginRow);
for (EntrustReportTemplateConfig config : configList) {
XSSFCell cell = xssfRow.getCell(config.getColumnPlace());
if ("sn".equals(config.getDataAttribute())) {
continue;
}
if (StringUtils.isBlank(config.getDataAttribute())) {
continue;
}
String value = StringHandleUtils.getFieldValue(config.getDataAttribute(), vo);
cell.setCellValue(value);
}
beginRow += sampleMergerNum;
}
String generated = entrust.getCode();
FileOutputStream os = null;
File file = null;
try {
file = File.createTempFile(generated, ".xlsx");
os = new FileOutputStream(file);
xssfWorkbook.write(os);
os.flush();
entrustReportService.uploadReportGenerateDocx(entrust, ids, account, StringHandleUtils.join(sampleNameSet), "报告生成", file);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
os.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
xssfWorkbook.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
io.close();
} catch (IOException e) {
e.printStackTrace();
}
FileUtils.deleteFiles(file);
}
} else {
if (null != sysFileTemplate.getMoreSheet() && sysFileTemplate.getMoreSheet() == 1) {
int total = sampleVOList.size();
int totalSheetSize = (total + templateSampleNum - 1) / templateSampleNum;
List<List<EntrustSampleVO>> listList = Lists.partition(sampleVOList, templateSampleNum);
for (int i = 1; i < totalSheetSize; i++) {
xssfWorkbook.cloneSheet(0, sheetOne.getSheetName() + (i + 1));
}
for (int k = 0; k < listList.size(); k++) {
Integer beginRow = sysFileTemplate.getSampleBeginRow();
List<EntrustSampleVO> sampleVOListIndex = listList.get(k);
for (EntrustSampleVO vo : sampleVOListIndex) {
List<EntrustSampleItemIndex> indexList = entrustSampleItemIndexService.listBySampleId(vo.getId());
vo.setIndexList(indexList);
XSSFSheet sheetOneIndex = xssfWorkbook.getSheetAt(k);
XSSFRow xssfRow = sheetOneIndex.getRow(beginRow);
for (EntrustReportTemplateConfig config : configList) {
XSSFCell cell = xssfRow.getCell(config.getColumnPlace());
if ("sn".equals(config.getDataAttribute())) {
continue;
}
if (StringUtils.isBlank(config.getDataAttribute())) {
continue;
}
String value = StringHandleUtils.getFieldValue(config.getDataAttribute(), vo);
cell.setCellValue(value);
}
beginRow += sampleMergerNum;
}
}
} else {
Integer beginRow = sysFileTemplate.getSampleBeginRow();
int insertRow = beginRow + sampleMergerNum * templateSampleNum;
XSSFRow zeroRow = sheetOne.getRow(beginRow);
XSSFCellStyle cellStyle = zeroRow.getCell(0).getCellStyle();
int lastCellNum = zeroRow.getLastCellNum();
int insertCount = sampleVOList.size() - templateSampleNum;
for (int m = 0; m < insertCount; m++) {
for (int i = 0; i < sampleMergerNum; i++) {
sheetOne.shiftRows(insertRow, sheetOne.getLastRowNum(), 1, true, false);
XSSFRow row = sheetOne.createRow(insertRow);
row.setHeight(zeroRow.getHeight());
for (int j = 0; j < lastCellNum; j++) {
XSSFCell xssfCell = row.createCell(j);
xssfCell.setCellStyle(cellStyle);
}
insertRow++;
}
}
int sn = 1;
for (EntrustSampleVO vo : sampleVOList) {
XSSFRow xssfRow = sheetOne.getRow(beginRow);
List<EntrustSampleItemIndex> indexList = entrustSampleItemIndexService.listBySampleId(vo.getId());
vo.setIndexList(indexList);
for (EntrustReportTemplateConfig config : configList) {
if (null == config.getColumnPlace()) {
continue;
}
XSSFCell cell = xssfRow.getCell(config.getColumnPlace());
if ("sn".equals(config.getDataAttribute())) {
cell.setCellValue(sn);
} else {
cell.setCellValue(StringHandleUtils.getFieldValue(config.getDataAttribute(), vo));
}
}
beginRow += sampleMergerNum;
sn++;
}
for (EntrustReportTemplateConfig config : configList) {
if (null == config.getMergeRowNum()) {
config.setMergeRowNum(1);
}
if (null == config.getMergeBegin()) {
continue;
}
if (null == config.getMergeEnd()) {
continue;
}
int step = config.getMergeRowNum();
if (step == 1 && config.getMergeEnd() == config.getMergeBegin()) {
continue;
}
if (null != config.getColumnPlace() && null != config.getMergeRowNum()) {
Integer sampleBgMum = sysFileTemplate.getSampleBeginRow() + templateSampleNum * sampleMergerNum;
Integer sampleEnMum = sysFileTemplate.getSampleBeginRow() + sampleVOList.size() * sampleMergerNum - 1;
while (sampleBgMum <= sampleEnMum) {
sheetOne.addMergedRegion(new CellRangeAddress(sampleBgMum, sampleBgMum + step - 1, config.getMergeBegin(), config.getMergeEnd()));
sampleBgMum = sampleBgMum + step;
}
}
}
}
}
String generated = entrust.getCode();
FileOutputStream os = null;
File file = null;
try {
file = File.createTempFile(generated, ".xlsx");
os = new FileOutputStream(file);
xssfWorkbook.write(os);
os.flush();
entrustReportService.uploadReportGenerateDocx(entrust, ids, account, StringHandleUtils.join(sampleNameSet), "报告生成", file);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
os.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
xssfWorkbook.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
io.close();
} catch (IOException e) {
e.printStackTrace();
}
FileUtils.deleteFiles(file);
}
}
return true;
}
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public boolean submitJudgeRegister(Long[] ids, Account account) { public boolean submitJudgeRegister(Long[] ids, Account account) {
...@@ -1007,37 +1333,36 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe ...@@ -1007,37 +1333,36 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
if (null == sampleVO.getEntrustId()) { if (null == sampleVO.getEntrustId()) {
return page; return page;
} }
List<EntrustSampleItem> itemList = entrustSampleItemService.list(Condition.create().eq("status", sampleVO.getItemStatus())); // 去除查询样品编号,改为关联查询
if (CollectionUtils.isEmpty(itemList)) { // List<EntrustSampleItem> itemList = entrustSampleItemService.list(Condition.create().eq("status", sampleVO.getItemStatus()));
return page; // if (CollectionUtils.isEmpty(itemList)) {
} // return page;
List<Long> sampleIds = new ArrayList<>(); // }
for (EntrustSampleItem item : itemList) { // List<Long> sampleIds = new ArrayList<>();
sampleIds.add(item.getEntrustSampleId()); // for (EntrustSampleItem item : itemList) {
} // sampleIds.add(item.getEntrustSampleId());
// }
// sampleVO.setIds(sampleIds);
sampleVO.setIds(sampleIds);
return page.setRecords(baseMapper.selectVOList(page, sampleVO)); return page.setRecords(baseMapper.selectVOList(page, sampleVO));
} }
@Override @Override
public Page<EntrustSampleVO> pageBySampleLeftHis(Page<EntrustSampleVO> page, EntrustSampleVO sampleVO) { public Page<EntrustSampleVO> pageBySampleLeftHis(Page<EntrustSampleVO> page, EntrustSampleVO sampleVO) {
if (null == sampleVO.getEntrustId()) { //
return page; if (null == sampleVO.getEntrustId() || CollectionUtils.isEmpty(sampleVO.getItemStatusList())) {
}
List<EntrustSampleItem> itemList = entrustSampleItemService.list(Condition.create().in("status", sampleVO.getItemStatusList()));
if (CollectionUtils.isEmpty(itemList)) {
return page; return page;
} }
List<Long> sampleIds = new ArrayList<>(); // 去除查询样品编号,改为关联查询
for (EntrustSampleItem item : itemList) { // List<EntrustSampleItem> itemList = entrustSampleItemService.list(Condition.create().in("status", sampleVO.getItemStatusList()));
sampleIds.add(item.getEntrustSampleId()); // if (CollectionUtils.isEmpty(itemList)) {
} // return page;
// }
// List<Long> sampleIds = new ArrayList<>();
sampleVO.setIds(sampleIds); // for (EntrustSampleItem item : itemList) {
// sampleIds.add(item.getEntrustSampleId());
// }
// sampleVO.setIds(sampleIds);
return page.setRecords(baseMapper.selectVOList(page, sampleVO)); return page.setRecords(baseMapper.selectVOList(page, sampleVO));
} }
...@@ -1201,9 +1526,9 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe ...@@ -1201,9 +1526,9 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
public boolean addTestItemInInput(EntrustSampleADDDTO dto, Account account) { public boolean addTestItemInInput(EntrustSampleADDDTO dto, Account account) {
if (null == dto) return false; if (null == dto) return false;
List<Long> sampleIdsList = dto.getSampleIdsList(); List<Long> sampleIdsList = dto.getSampleIdsList();
if (CollectionUtils.isEmpty(sampleIdsList))return false; if (CollectionUtils.isEmpty(sampleIdsList)) return false;
List<EntrustSampleItem> itemList = dto.getItemList(); List<EntrustSampleItem> itemList = dto.getItemList();
if (CollectionUtils.isEmpty(itemList))return false; if (CollectionUtils.isEmpty(itemList)) return false;
List<EntrustSampleItem> saveItemList = new ArrayList<>(); List<EntrustSampleItem> saveItemList = new ArrayList<>();
...@@ -1222,10 +1547,26 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe ...@@ -1222,10 +1547,26 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
saveItemList.add(add); saveItemList.add(add);
} }
} }
if (CollectionUtils.isNotEmpty(saveItemList)){ if (CollectionUtils.isNotEmpty(saveItemList)) {
return entrustSampleItemService.saveBatch(saveItemList); return entrustSampleItemService.saveBatch(saveItemList);
} }
return false; return false;
} }
@Transactional(rollbackFor = Exception.class)
@Override
public boolean scanReceive(String sampleCode, Account account) {
RestAssert.fail(StringUtils.isBlank(sampleCode), "请扫描二维码");
String[] codeArray = sampleCode.split("~");
RestAssert.fail(codeArray.length != 3, "样品编号有误!");
// 样品编号ID,根据当前提供的样品编号和组号获取
EntrustSample sample = getOne(Condition.create().setSqlSelect("id").eq("code", codeArray[0]).last("LIMIT 1"));
List<EntrustSamplePrepare> prepareList = entrustSamplePrepareService.list(Condition.create().eq("entrust_sample_id", sample.getId()).eq("group_id", Long.parseLong(codeArray[1])));
RestAssert.fail(CollectionUtils.isEmpty(prepareList), "暂未查询到样品下的接收信息!");
Long[] sampleIds = prepareList.stream().map(EntrustSamplePrepare::getEntrustSampleId).toArray(size -> new Long[size]);
return entrustSamplePrepareService.submitSampleReceive(sampleIds, "扫码接收", account);
}
} }
\ No newline at end of file
...@@ -350,7 +350,7 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust> ...@@ -350,7 +350,7 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
boolean hasSendMessage = false; boolean hasSendMessage = false;
for (Entrust e : entrustList) { for (Entrust e : entrustList) {
// 若存在路径,根据状态路径处理数据 // 若存在路径,根据状态路径处理数据
if (StringUtils.isNotBlank(e.getStatusPath())) { if (StringUtils.isNotBlank(e.getStatusPath()) && e.getStatusPath().contains(e.getFlowStatus())) {
submitToNextNode(e, account); submitToNextNode(e, account);
hasSendMessage = true; hasSendMessage = true;
} else { } else {
...@@ -653,34 +653,10 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust> ...@@ -653,34 +653,10 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
@Override @Override
public Page<EntrustVO> pageEntrustByItemHis(Page<EntrustVO> page, EntrustVO entrust) { public Page<EntrustVO> pageEntrustByItemHis(Page<EntrustVO> page, EntrustVO entrust) {
if (CollectionUtils.isEmpty(entrust.getItemStatusEnumList())) { if (CollectionUtils.isEmpty(entrust.getItemStatusEnumList())) {
return page; return page;
} }
List<EntrustSampleItem> itemList = entrustSampleItemService.list(Condition.create().in("status", entrust.getItemStatusEnumList())); return page.setRecords(baseMapper.selectEntrustVOHisList(page, entrust));
if (CollectionUtils.isEmpty(itemList)) {
return page;
}
List<Long> sampleIdsList = itemList.stream().map(i -> {
return i.getEntrustSampleId();
}).collect(Collectors.toList());
if (CollectionUtils.isEmpty(sampleIdsList)) {
return page;
}
List<EntrustSample> sampleList = entrustSampleService.list(Condition.create().in("id", sampleIdsList));
if (CollectionUtils.isEmpty(sampleList)) {
return page;
}
List<Long> ids = sampleList.stream().map(s -> {
return s.getEntrustId();
}).collect(Collectors.toList());
if (CollectionUtils.isEmpty(ids)) {
return page;
}
entrust.setIdsList(ids);
return page.setRecords(baseMapper.selectVOList(page, entrust));
} }
@Override @Override
......
...@@ -5,6 +5,7 @@ import com.patzn.cloud.service.hmhj.entity.Material; ...@@ -5,6 +5,7 @@ import com.patzn.cloud.service.hmhj.entity.Material;
import com.patzn.cloud.service.lims.hmhj.mapper.MaterialMapper; import com.patzn.cloud.service.lims.hmhj.mapper.MaterialMapper;
import com.patzn.cloud.service.lims.hmhj.service.IMaterialService; import com.patzn.cloud.service.lims.hmhj.service.IMaterialService;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl; import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper; import com.baomidou.mybatisplus.mapper.Wrapper;
...@@ -23,8 +24,20 @@ public class MaterialServiceImpl extends BaseServiceImpl<MaterialMapper, Materia ...@@ -23,8 +24,20 @@ public class MaterialServiceImpl extends BaseServiceImpl<MaterialMapper, Materia
@Override @Override
public Page<Material> page(Page<Material> page, Material material) { public Page<Material> page(Page<Material> page, Material material) {
String name = material.getName();
String code = material.getCode();
String supplier = material.getSupplier();
material.setCode(null).setName(null).setSupplier(null);
Wrapper wrapper = new EntityWrapper<>(material); Wrapper wrapper = new EntityWrapper<>(material);
if (StringUtils.isNotBlank(name)) {
wrapper.like("name", name);
}
if (StringUtils.isNotBlank(code)) {
wrapper.like("code", code);
}
if (StringUtils.isNotBlank(supplier)) {
wrapper.like("supplier", supplier);
}
return this.page(page, wrapper); return this.page(page, wrapper);
} }
......
package com.patzn.cloud.service.lims.hmhj.service.impl;
import com.baomidou.mybatisplus.mapper.Condition;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.toolkit.ArrayUtils;
import com.baomidou.mybatisplus.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.toolkit.StringUtils;
import com.patzn.cloud.commons.api.RestAssert;
import com.patzn.cloud.commons.controller.Account;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
import com.patzn.cloud.commons.toolkit.DateUtils;
import com.patzn.cloud.feign.base.client.SysUserClient;
import com.patzn.cloud.feign.lims.base.client.LmsBaseDictClient;
import com.patzn.cloud.service.base.vo.SysUserOrgVO;
import com.patzn.cloud.service.hmhj.entity.Questionnaire;
import com.patzn.cloud.service.hmhj.vo.QuestionnaireStatsVO;
import com.patzn.cloud.service.hmhj.vo.QuestionnaireVO;
import com.patzn.cloud.service.lims.base.entity.LmsBaseDict;
import com.patzn.cloud.service.lims.common.service.IExportService;
import com.patzn.cloud.service.lims.hmhj.handler.QuestionnaireExportHandler;
import com.patzn.cloud.service.lims.hmhj.mapper.QuestionnaireMapper;
import com.patzn.cloud.service.lims.hmhj.service.IQuestionnaireService;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletResponse;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
/**
* 满意度调查表 服务实现类
*
* @author meazty
* @since 2021-07-11
*/
@Service
public class QuestionnaireServiceImpl extends BaseServiceImpl<QuestionnaireMapper, Questionnaire> implements IQuestionnaireService {
private static final String DICT_TYPE = "满意度间隔时间";
@Autowired
private LmsBaseDictClient lmsBaseDictClient;
@Autowired
private SysUserClient sysUserClient;
@Autowired
private IExportService exportService;
@Transactional(rollbackFor = Exception.class)
@Override
public boolean saveOrUpdate(Questionnaire questionnaire, Account account) {
calcScore(questionnaire);
List<SysUserOrgVO> list = sysUserClient.getUserOrg(Arrays.asList(account.getUserId())).serviceData();
SysUserOrgVO sysUserOrgVO = list.get(0);
questionnaire.setOrgName(sysUserOrgVO.getOrgName());
questionnaire.setLid(account.getUserId());
if (null != questionnaire.getStatus() && 1 == questionnaire.getStatus().intValue()) {
questionnaire.setSubmitTime(new Date());
questionnaire.setCreator(account.getUserName());
submitHandler(questionnaire, account);
}
if (null == questionnaire.getId()) {
return save(questionnaire);
}
return updateById(questionnaire);
}
@Override
public Page<Questionnaire> page(Page<Questionnaire> page, QuestionnaireVO questionnaireVO) {
Wrapper wrapper = new EntityWrapper<>(new Questionnaire());
if (StringUtils.isNotEmpty(questionnaireVO.getCreator())) {
wrapper.like("creator", questionnaireVO.getCreator());
}
if (null != questionnaireVO.getTimeS()) {
wrapper.ge("submit_time", questionnaireVO.getTimeS());
}
if (null != questionnaireVO.getTimeE()) {
wrapper.le("submit_time", questionnaireVO.getTimeE());
}
if (null != questionnaireVO.getStatus()) {
wrapper.eq("status", questionnaireVO.getStatus());
}
wrapper.orderBy("ctime", false);
return this.page(page, wrapper);
}
@Override
public boolean removeByIds(List<Long> ids) {
return baseMapper.deleteBatchIds(ids) > 0;
}
@Transactional(rollbackFor = Exception.class)
@Override
public boolean submitQuestionnaire(Long id, Account account) {
RestAssert.fail(null == id, "满意度调查表不能为空");
Questionnaire questionnaire = getById(id);
RestAssert.fail(null == questionnaire, "满意度调查表不能为空");
calcScore(questionnaire);
questionnaire.setSubmitTime(new Date());
submitHandler(questionnaire, account);
questionnaire.setStatus(1);
questionnaire.setCreator(account.getUserName());
return updateById(questionnaire);
}
private void submitHandler(Questionnaire questionnaire, Account account) {
LmsBaseDict baseDict = lmsBaseDictClient.getByType(DICT_TYPE, account.getCompanyId()).getData();
RestAssert.fail(null == baseDict, "未配置满意度调查间隔时间,请先配置默认间隔时间");
Integer seqDays = Integer.parseInt(baseDict.getCode());
// 提交时间与当前时间比较,若提交时间满足 + seqDays > new Date(),那么可以继续提交
RestAssert.fail(DateUtils.dateAddDays(questionnaire.getSubmitTime(), seqDays).after(new Date()), String.format("未满 %d 个月,无法继续提交满意度调查表。", seqDays / 30));
}
private void calcScore(Questionnaire questionnaire) {
RestAssert.fail(null == questionnaire.getAccuracy() || null == questionnaire.getClarity()
|| null == questionnaire.getCoordination() || null == questionnaire.getServiceAttitude()
|| null == questionnaire.getTimeliness(), "满意度调查表分数不能为空");
BigDecimal accuracy = questionnaire.getAccuracy();
BigDecimal clarity = questionnaire.getClarity();
BigDecimal coordination = questionnaire.getCoordination();
BigDecimal serviceAttitude = questionnaire.getServiceAttitude();
BigDecimal timeliness = questionnaire.getTimeliness();
BigDecimal score = accuracy.add(clarity).add(coordination).add(serviceAttitude).add(timeliness);
questionnaire.setScore(score);
}
@Override
public void exportExcel(Long[] ids, HttpServletResponse response, Account account) {
RestAssert.fail(ArrayUtils.isEmpty(ids), "请选择要导出的调查表");
List<Questionnaire> questionnaireList = getBatchIds(Arrays.asList(ids));
RestAssert.fail(CollectionUtils.isEmpty(questionnaireList), "请选择要导出的调查表");
new QuestionnaireExportHandler(questionnaireList).generater(response);
}
@Override
public void exportStatusExcel(Long[] ids, HttpServletResponse response, Account account) {
RestAssert.fail(ArrayUtils.isEmpty(ids), "请选择要导出的调查表");
QuestionnaireStatsVO questionnaireVO = baseMapper.selectStatsList(ids);
RestAssert.fail(null == questionnaireVO, "请选择要导出的调查表");
XSSFWorkbook xssfWorkbook = exportService.getXSSFWorkbook("QuestionnaireStatsExport.xlsx");
XSSFSheet sheet = xssfWorkbook.getSheetAt(0);
Integer numTotal = questionnaireVO.getNumTotal();
for (int i = 1; i < 7; i++) {
XSSFRow row = sheet.getRow(i);
double sumValue = 0.0, avgValue = 0.0;
switch (i) {
case 1:
sumValue = questionnaireVO.getFwtdSum();
avgValue = questionnaireVO.getFwtdAvg();
break;
case 2:
sumValue = questionnaireVO.getXtgtSum();
avgValue = questionnaireVO.getXtgtAvg();
break;
case 3:
sumValue = questionnaireVO.getRjsxSum();
avgValue = questionnaireVO.getRjsxAvg();
break;
case 4:
sumValue = questionnaireVO.getRzqxSum();
avgValue = questionnaireVO.getRzqxAvg();
break;
case 5:
sumValue = questionnaireVO.getQxzjSum();
avgValue = questionnaireVO.getQxzjAvg();
break;
case 6:
sumValue = questionnaireVO.getSumTotal();
avgValue = questionnaireVO.getAvgTotal();
break;
}
row.getCell(1).setCellValue(sumValue);
row.getCell(2).setCellValue(numTotal);
row.getCell(3).setCellValue(avgValue);
}
String fileName = null;
try {
fileName = java.net.URLEncoder.encode("客户满意度调查表", "UTF-8");
} catch (UnsupportedEncodingException e) {
fileName = "questionnaireExcel";
}
exportService.downloadXlsx(response, fileName + ".xlsx", xssfWorkbook);
}
@Override
public boolean deleteByIds(List<Long> ids) {
List list = list(Condition.create().in("id", ids).eq("status", 1).eq("deleted", 0));
RestAssert.fail(CollectionUtils.isNotEmpty(list), "已提交的调查表不能删除!");
return removeByIds(ids);
}
}
...@@ -58,6 +58,44 @@ ...@@ -58,6 +58,44 @@
order by entrust_time desc order by entrust_time desc
</select> </select>
<!--查询委托历史数据-->
<select id="selectEntrustVOHisList" resultType="com.patzn.cloud.service.hmhj.vo.EntrustVO">
SELECT * FROM entrust e WHERE e.deleted = 0
<if test="null!=vo.itemStatusEnumList">
AND exists (
select 1 from entrust_sample s,entrust_sample_item i where s.deleted = 0 and i.deleted = 0
and s.id = i.entrust_sample_id and e.id = s.entrust_id
and i.status IN
<foreach collection="vo.itemStatusEnumList" index="itemStats" item="id" open="(" separator="," close=")">
#{itemStats}
</foreach>
)
</if>
<if test="null!=vo.client">
AND e.client LIKE CONCAT('%',#{vo.client},'%')
</if>
<if test="null!=vo.code">
AND e.code LIKE CONCAT('%',#{vo.code},'%')
</if>
<if test="null!=vo.testSide">
AND e.test_side LIKE CONCAT('%',#{vo.testSide},'%')
</if>
<if test="null!=vo.statusList">
AND e.status IN
<foreach collection="vo.statusList" index="index" item="status" open="(" separator="," close=")">
#{status}
</foreach>
</if>
<if test="null!=vo.groupNameList">
AND e.test_side IN
<foreach collection="vo.groupNameList" index="index" item="groupName" open="(" separator="," close=")">
#{groupName}
</foreach>
</if>
order by entrust_time desc
</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 distinct e.* FROM
entrust e,entrust_sample s,entrust_sample_item i entrust e,entrust_sample s,entrust_sample_item i
......
...@@ -91,8 +91,8 @@ ...@@ -91,8 +91,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",COALESCE(s.third_code,s.code) AS "sampleCode",l.record_id,r.object_key AS "recordObjectKey",
s.compliance_test,s.sample_from,sample_shape s.compliance_test,s.sample_from,sample_shape,s.second_code,s.third_code
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
LEFT JOIN ( SELECT id,item_id,record_id FROM item_rel_original_record WHERE deleted = 0 ) l ON i.id = l.item_id LEFT JOIN ( SELECT id,item_id,record_id FROM item_rel_original_record WHERE deleted = 0 ) l ON i.id = l.item_id
...@@ -159,7 +159,7 @@ ...@@ -159,7 +159,7 @@
) )
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.compliance_test,s.second_code,s.third_code
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
JOIN (select t.id,t.code,t.test_side from entrust t where t.deleted = 0 ) e on s.entrust_id = e.id JOIN (select t.id,t.code,t.test_side from entrust t where t.deleted = 0 ) e on s.entrust_id = e.id
...@@ -189,9 +189,30 @@ ...@@ -189,9 +189,30 @@
ORDER BY s.code , i.name ORDER BY s.code , i.name
</select> </select>
<select id="selectVOListBySampleIdsAndIds" resultType="com.patzn.cloud.service.hmhj.vo.EntrustSampleItemVO">
SELECT i.id,i.name,i.agreed_value,i.test_value,i.entrust_sample_id,i.standard,s.code AS "sampleCode"
FROM
entrust_sample_item i
JOIN entrust_sample s ON i.entrust_sample_id = s.ID
WHERE i.deleted = 0 AND s.deleted = 0
AND i.entrust_sample_id IN
<foreach collection="sampleIds" index="index" item="sampleId" open="(" separator="," close=")">
#{sampleId}
</foreach>
AND i.id IN
<foreach collection="ids" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>
ORDER BY s.code , i.name
</select>
<select id="selectByItemDeviate" resultType="com.patzn.cloud.service.hmhj.vo.EntrustSampleItemVO"> <select id="selectByItemDeviate" resultType="com.patzn.cloud.service.hmhj.vo.EntrustSampleItemVO">
SELECT i.id,i.name,i.agreed_value,i.test_value,i.standard,s.code AS "sampleCode", SELECT i.id,i.name,i.agreed_value,i.test_value,i.standard,COALESCE(s.third_code,s.code) AS "sampleCode",
i.group_name,i.standard,s.name AS "sampleName",e.client,e.code AS "entrustCode", i.group_name,i.standard,s.name AS "sampleName",e.client,e.code AS "entrustCode",
...@@ -345,8 +366,8 @@ ...@@ -345,8 +366,8 @@
i.tester, i.tester,
o.org_name, o.org_name,
sum(case when i.status = 50 then 1 else 0 end ) "finish_num", sum(case when i.status = 50 then 1 else 0 end ) "finish_num",
sum(case when i.status = 20 and ii.fill_num > 0 then 1 else 0 end ) "testing_num", sum(case when i.status = 20 and coalesce (ii.fill_num,0) > 0 then 1 else 0 end ) "testing_num",
sum(case when i.status = 20 and ii.fill_num = 0 then 1 else 0 end ) "untest_num", sum(case when i.status = 20 and coalesce (ii.fill_num,0) = 0 then 1 else 0 end ) "untest_num",
sum(case when i.status = 50 and e.priority = '加急' then 1 else 0 end ) "urgent_finish_num", sum(case when i.status = 50 and e.priority = '加急' then 1 else 0 end ) "urgent_finish_num",
sum(case when i.status != 50 and e.priority = '加急' then 1 else 0 end ) "urgent_unfinish_num" sum(case when i.status != 50 and e.priority = '加急' then 1 else 0 end ) "urgent_unfinish_num"
...@@ -355,9 +376,9 @@ ...@@ -355,9 +376,9 @@
join entrust e on e.id = s.entrust_id join entrust e on e.id = s.entrust_id
join v_sys_user_org o on o.user_id = i.tester_Id join v_sys_user_org o on o.user_id = i.tester_Id
left join ( left join (
select ii.entrust_sample_item_id,count(1) "fill_num" from entrust_sample_item_index ii select ii.entrust_sample_item_id,count(1) "fill_num" from entrust_sample_item_index ii
where ii.deleted = 0 group by ii.entrust_sample_item_id where ii.deleted = 0 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 s.deleted = 0 and i.deleted = 0 and e.deleted = 0 where s.deleted = 0 and i.deleted = 0 and e.deleted = 0
and i.entrust_sample_id = s.id and i.entrust_sample_id = s.id
and o.user_id = i.tester_id and o.user_id = i.tester_id
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<select id="selectSampleReceiveList" resultType="com.patzn.cloud.service.hmhj.vo.EntrustSampleVO"> <select id="selectSampleReceiveList" resultType="com.patzn.cloud.service.hmhj.vo.EntrustSampleVO">
SELECT SELECT
p.id, p.entrust_sample_id,s.code,s.name,s.product_code,s.product_basis_name,s.compose_judge,s.product_standard_id,s.name_code, p.id, p.entrust_sample_id,COALESCE(s.third_code,s.code) "code",s.name,s.product_code,s.product_basis_name,s.compose_judge,s.product_standard_id,s.name_code,
s.compliance_test,p.group_id,p.group_name,p.make_type,p.make_quantity,p.store_way,p.store_location,p.maker,p.make_time s.compliance_test,p.group_id,p.group_name,p.make_type,p.make_quantity,p.store_way,p.store_location,p.maker,p.make_time
FROM FROM
entrust_sample_prepare entrust_sample_prepare
...@@ -27,41 +27,56 @@ ...@@ -27,41 +27,56 @@
<if test="null!=vo.entrustId"> <if test="null!=vo.entrustId">
AND s.entrust_id = #{vo.entrustId} AND s.entrust_id = #{vo.entrustId}
</if> </if>
</select> </select>
<select id="selectVOList" resultType="com.patzn.cloud.service.hmhj.vo.EntrustSampleVO"> <select id="selectVOList" resultType="com.patzn.cloud.service.hmhj.vo.EntrustSampleVO">
SELECT
s.*
FROM entrust_sample s WHERE deleted = 0
<if test="null != vo.entrustId">
AND s.entrust_id = #{vo.entrustId}
</if>
SELECT * FROM entrust_sample WHERE deleted = 0 <if test="null != vo.status">
<if test="null!=vo.entrustId"> AND s.status = #{vo.status}
AND entrust_id = #{vo.entrustId}
</if> </if>
<if test="null!=vo.status"> <if test="null != vo.code">
AND status = #{vo.status} AND s.code LIKE CONCAT('%',#{vo.code},'%')
</if> </if>
<if test="null!=vo.code"> <if test="null != vo.notStatus">
AND code LIKE CONCAT('%',#{vo.code},'%') AND s.status != #{vo.notStatus}
</if> </if>
<if test="null!=vo.notStatus"> <if test="null != vo.itemStatus">
AND status != #{vo.notStatus} AND exists (
select 1 from entrust_sample_item i where i.deleted = 0
and i.entrust_sample_id = s.id
and i.status = #{vo.itemStatus}
)
</if>
<if test="null != vo.itemStatusList">
AND exists (
select 1 from entrust_sample_item i where i.deleted = 0
and i.entrust_sample_id = s.id
and i.status IN
<foreach collection="vo.itemStatusList" index="index" item="itemStatus" open="(" separator="," close=")">
#{itemStatus}
</foreach>
)
</if> </if>
<if test="null!=vo.ids"> <if test="null!=vo.ids">
AND id IN AND s.id IN
<foreach collection="vo.ids" index="index" item="sampleId" open="(" separator="," close=")"> <foreach collection="vo.ids" index="index" item="sampleId" open="(" separator="," close=")">
#{sampleId} #{sampleId}
</foreach> </foreach>
</if> </if>
order by order_by asc, code ,ctime desc order by s.order_by asc, s.code ,s.ctime desc
</select> </select>
<select id="selectMinStatusByEntrustIds" resultType="com.patzn.cloud.service.hmhj.vo.EntrustSampleVO"> <select id="selectMinStatusByEntrustIds" resultType="com.patzn.cloud.service.hmhj.vo.EntrustSampleVO">
WITH summary AS ( WITH summary AS (
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.patzn.cloud.service.lims.hmhj.mapper.QuestionnaireMapper">
<select id="selectStatsList" resultType="com.patzn.cloud.service.hmhj.vo.QuestionnaireStatsVO">
select
sum(q.service_attitude) "fwtd_sum",
sum(q.coordination) "xtgt_sum",
sum(q.timeliness) "rjsx_sum",
sum(q.accuracy) "rzqx_sum",
sum(q.clarity) "qxzj_sum",
sum(q.score) "sum_total",
count(distinct q.service_attitude) "num_total",
round(cast((sum(q.service_attitude) / count(distinct q.service_attitude)) as numeric),1) "fwtd_avg",
round(cast((sum(q.coordination) / count(distinct q.service_attitude)) as numeric),1) "xtgt_avg",
round(cast((sum(q.timeliness) / count(distinct q.service_attitude))as numeric),1) "rjsx_avg",
round(cast((sum(q.accuracy) / count(distinct q.service_attitude))as numeric),1) "rzqx_avg",
round(cast((sum(q.clarity) / count(distinct q.service_attitude))as numeric),1) "qxzj_avg",
round(cast((sum(q.score) / count(distinct q.service_attitude))as numeric),1) "avg_total"
from questionnaire q where q.deleted = 0
<if test="null != ids">
AND id IN
<foreach collection="ids" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</if>
</select>
</mapper>
DROP TABLE IF EXISTS "public"."questionnaire";
DROP TABLE IF EXISTS "public"."questionnaire";
CREATE TABLE "public"."questionnaire" (
"id" int8 NOT NULL,
"service_attitude" numeric(3,1) DEFAULT 0.0,
"coordination" numeric(3,1) DEFAULT 0.0,
"timeliness" numeric(3,1) DEFAULT 0.0,
"accuracy" numeric(3,1) DEFAULT 0.0,
"clarity" numeric(3,1) DEFAULT 0.0,
"advice" varchar(512) COLLATE "pg_catalog"."default",
"status" int2 DEFAULT 0,
"score" numeric(10,1) DEFAULT 0.0,
"creator" varchar(64) COLLATE "pg_catalog"."default",
"org_name" varchar(64) COLLATE "pg_catalog"."default",
"company_id" int8,
"uid" int8,
"ctime" timestamp(0) DEFAULT NULL::timestamp without time zone,
"lid" int8,
"ltime" timestamp(0) DEFAULT NULL::timestamp without time zone,
"deleted" int2 DEFAULT 0,
"submit_time" timestamp(6)
)
;
COMMENT ON COLUMN "public"."questionnaire"."service_attitude" IS '服务态度';
COMMENT ON COLUMN "public"."questionnaire"."coordination" IS '协调沟通';
COMMENT ON COLUMN "public"."questionnaire"."timeliness" IS '报告及时性';
COMMENT ON COLUMN "public"."questionnaire"."accuracy" IS '报告准确性';
COMMENT ON COLUMN "public"."questionnaire"."clarity" IS '清晰度和整洁度';
COMMENT ON COLUMN "public"."questionnaire"."advice" IS '建议和意见';
COMMENT ON COLUMN "public"."questionnaire"."status" IS '状态【0:草稿,1:已提交】';
COMMENT ON COLUMN "public"."questionnaire"."score" IS '总分';
COMMENT ON COLUMN "public"."questionnaire"."creator" IS '提交人,创建人';
COMMENT ON COLUMN "public"."questionnaire"."org_name" IS '责任单位名称';
COMMENT ON COLUMN "public"."questionnaire"."company_id" IS '企业ID';
COMMENT ON COLUMN "public"."questionnaire"."uid" IS '创建者ID';
COMMENT ON COLUMN "public"."questionnaire"."ctime" IS '创建时间';
COMMENT ON COLUMN "public"."questionnaire"."lid" IS '最后修改人ID';
COMMENT ON COLUMN "public"."questionnaire"."ltime" IS '最后修改时间';
COMMENT ON COLUMN "public"."questionnaire"."deleted" IS '总分';
COMMENT ON COLUMN "public"."questionnaire"."submit_time" IS '提交时间';
COMMENT ON TABLE "public"."questionnaire" IS '满意度调查表';
-- ----------------------------
-- Primary Key structure for table questionnaire
-- ----------------------------
ALTER TABLE "public"."questionnaire" ADD CONSTRAINT "questionnaire_pkey" PRIMARY KEY ("id");
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment