Commit fb6e0fc3 by wangweidong

土工试验平台修改

parent cdbb52cb
......@@ -33,6 +33,7 @@ public class ExcelController extends ServiceController {
ExcelController.TPL.put("MeterAptitudeImport", "授权资质导入模板");
ExcelController.TPL.put("MeterOutAptitudeImport", "资质外计量器具导入模板");
ExcelController.TPL.put("MeterSendSampleImport", "出检样品导入模板");
ExcelController.TPL.put("SoilEntrustImport", "试验委托单导入模板");
}
@ApiOperation(value = "根据模板名称下载模板", notes = "根据模板名称下载导入模板")
......
......@@ -86,13 +86,32 @@ public class SoilEntrustController extends ServiceController {
@ApiImplicitParam(name = RestConstants.PAGE_SORD, value = "排序方式", paramType = "query", dataType = "String"),
})
@PostMapping("/page_report_make")
public RestResult<Page<SoilEntrust>> getPageReportMake(SoilEntrust soilEntrust) {
public RestResult<Page<SoilEntrustVO>> getPageReportMake(SoilEntrustVO soilEntrust) {
soilEntrust.setStatus(SoilEntrustStatusEnum.REPORT);
return success(soilEntrustService.page(getPage(), soilEntrust));
return success(soilEntrustService.pageReportMake(getPage(), soilEntrust));
}
@ApiOperation(value = "报告编制历史分页列表", notes = "报告编制历史分页列表")
@ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataType = "int"),
@ApiImplicitParam(name = RestConstants.PAGE_ROWS, value = "每页条数", required = true, paramType = "query", dataType = "int"),
@ApiImplicitParam(name = RestConstants.PAGE_SIDX, value = "排序字段", paramType = "query", dataType = "String"),
@ApiImplicitParam(name = RestConstants.PAGE_SORD, value = "排序方式", paramType = "query", dataType = "String"),
})
@PostMapping("/page_report_make_his")
public RestResult<Page<SoilEntrustVO>> getPageReportMakeHis(SoilEntrustVO soilEntrust) {
soilEntrust.setStatusList(Lists.newArrayList(
SoilEntrustStatusEnum.REPORT_CHECK,
SoilEntrustStatusEnum.REPORT_ISSUE,
SoilEntrustStatusEnum.END
));
return success(soilEntrustService.pageReportMake(getPage(), soilEntrust));
}
@ApiOperation(value = "报告审核分页列表", notes = "报告审核分页查询数据列表")
@ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataType = "int"),
......@@ -107,6 +126,23 @@ public class SoilEntrustController extends ServiceController {
}
@ApiOperation(value = "报告审核历史分页列表", notes = "报告审核历史分页列表")
@ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataType = "int"),
@ApiImplicitParam(name = RestConstants.PAGE_ROWS, value = "每页条数", required = true, paramType = "query", dataType = "int"),
@ApiImplicitParam(name = RestConstants.PAGE_SIDX, value = "排序字段", paramType = "query", dataType = "String"),
@ApiImplicitParam(name = RestConstants.PAGE_SORD, value = "排序方式", paramType = "query", dataType = "String"),
})
@PostMapping("/page_report_check_his")
public RestResult<Page<SoilEntrustVO>> getPageReportCheckHis(SoilEntrustVO soilEntrust) {
soilEntrust.setStatusList(Lists.newArrayList(
SoilEntrustStatusEnum.REPORT_ISSUE,
SoilEntrustStatusEnum.END
));
return success(soilEntrustService.pageReportMake(getPage(), soilEntrust));
}
@ApiOperation(value = "报告签发分页列表", notes = "报告签发分页查询数据列表")
@ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataType = "int"),
......@@ -121,6 +157,20 @@ public class SoilEntrustController extends ServiceController {
}
@ApiOperation(value = "报告签发历史分页列表", notes = "报告签发历史分页列表")
@ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataType = "int"),
@ApiImplicitParam(name = RestConstants.PAGE_ROWS, value = "每页条数", required = true, paramType = "query", dataType = "int"),
@ApiImplicitParam(name = RestConstants.PAGE_SIDX, value = "排序字段", paramType = "query", dataType = "String"),
@ApiImplicitParam(name = RestConstants.PAGE_SORD, value = "排序方式", paramType = "query", dataType = "String"),
})
@PostMapping("/page_report_issue_his")
public RestResult<Page<SoilEntrustVO>> getPageReportIssueHis(SoilEntrustVO soilEntrust) {
soilEntrust.setStatus(SoilEntrustStatusEnum.END);
return success(soilEntrustService.pageReportMake(getPage(), soilEntrust));
}
@ApiOperation(value = "样品接收委托分页列表", notes = "分页查询数据列表")
@ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataType = "int"),
......@@ -374,4 +424,44 @@ public class SoilEntrustController extends ServiceController {
return success(soilEntrustService.importEntrust(file,getAccount()));
}
@ApiOperation(value = "报告编制提交", notes = "报告编制提交")
@PostMapping("/report_make_submit")
public RestResult<Boolean> reportMakeSubmit(@RequestParam("ids")Long [] ids) {
return success(soilEntrustService.reportMakeSubmit(ids,getAccount()));
}
@ApiOperation(value = "报告审核提交", notes = "报告审核提交")
@PostMapping("/report_check_submit")
public RestResult<Boolean> reportCheckSubmit(@RequestParam("ids")Long [] ids) {
return success(soilEntrustService.reportCheckSubmit(ids,getAccount()));
}
@ApiOperation(value = "报告签发提交", notes = "报告签发提交")
@PostMapping("/report_issue_submit")
public RestResult<Boolean> reportIssueSubmit(@RequestParam("ids")Long [] ids) {
return success(soilEntrustService.reportIssueSubmit(ids,getAccount()));
}
@ApiOperation(value = "报告审核退回", notes = "报告审核退回")
@PostMapping("/report_check_back")
public RestResult<Boolean> reportCheckBack(@RequestParam("ids")Long [] ids,@RequestParam("reason") String reason) {
return success(soilEntrustService.reportCheckBack(ids,reason,getAccount()));
}
@ApiOperation(value = "报告签发退回", notes = "报告签发退回")
@PostMapping("/report_issue_back")
public RestResult<Boolean> reportIssueBack(@RequestParam("ids")Long [] ids,@RequestParam("reason") String reason) {
return success(soilEntrustService.reportIssueBack(ids,reason,getAccount()));
}
}
......@@ -316,4 +316,19 @@ public class SoilExperimentController extends ServiceController {
return success(soilExperimentService.pageTestByExp(getPage(),vo));
}
@ApiOperation(value = "试验项目通过委托单查询的分页列表", notes = "试验项目通过委托单查询的分页列表")
@ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataType = "int"),
@ApiImplicitParam(name = RestConstants.PAGE_ROWS, value = "每页条数", required = true, paramType = "query", dataType = "int"),
@ApiImplicitParam(name = RestConstants.PAGE_SIDX, value = "排序字段", paramType = "query", dataType = "String"),
@ApiImplicitParam(name = RestConstants.PAGE_SORD, value = "排序方式", paramType = "query", dataType = "String"),
})
@PostMapping("/page_by_entrust")
public RestResult<Page<SoilExperimentVO>> getPageByEntrust(SoilExperimentVO vo) {
return success(soilExperimentService.pageByByEntrust(getPage(),vo));
}
}
......@@ -97,6 +97,24 @@ public class SoilPrepareController extends ServiceController {
@ApiOperation(value = "余样样品历史分页列表", notes = "余样样品历史分页列表")
@ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataType = "int"),
@ApiImplicitParam(name = RestConstants.PAGE_ROWS, value = "每页条数", required = true, paramType = "query", dataType = "int"),
@ApiImplicitParam(name = RestConstants.PAGE_SIDX, value = "排序字段", paramType = "query", dataType = "String"),
@ApiImplicitParam(name = RestConstants.PAGE_SORD, value = "排序方式", paramType = "query", dataType = "String"),
})
@PostMapping("/page_surplus_his")
public RestResult<Page<SoilPrepareVO>> getPageSurplusHis(SoilPrepareVO soilPrepare) {
soilPrepare.setType(1);
soilPrepare.setStatusList(Lists.newArrayList(
SoilPrepareStatusEnum.HANDLE_END
));
return success(soilPrepareService.pagePrepareVO(getPage(), soilPrepare));
}
@ApiOperation(value = "查询列表", notes = "查询数据列表")
@PostMapping("/list")
public RestResult<List<SoilPrepare>> getList(SoilPrepare soilPrepare) {
......
......@@ -33,7 +33,7 @@ import io.swagger.annotations.ApiOperation;
* @author wwd
* @since 2020-10-19
*/
@Api(tags = "${table.comment}")
@Api(tags = "余样操作日志")
@RestController
@RequestMapping("/v1/prepare_record")
public class SoilPrepareRecordController extends ServiceController {
......
package com.patzn.cloud.service.lims.soil.controller;
import java.util.List;
import com.patzn.cloud.service.soil.dto.SoilReportDTO;
import com.patzn.cloud.service.soil.entity.SoilReport;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.mapper.Condition;
import com.baomidou.mybatisplus.plugins.Page;
import com.patzn.cloud.commons.api.RestConstants;
import com.patzn.cloud.commons.api.RestResult;
import com.patzn.cloud.commons.controller.ServiceController;
import com.patzn.cloud.service.lims.soil.service.ISoilReportService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.multipart.MultipartFile;
/**
* <p>
* 报告信息表 前端控制器
* </p>
*
* @author wwd
* @since 2020-10-21
*/
@Api(tags = "报告信息表")
@RestController
@RequestMapping("/v1/report")
public class SoilReportController extends ServiceController {
@Autowired
private ISoilReportService soilReportService;
@ApiOperation(value = "分页列表", notes = "分页查询数据列表")
@ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class),
@ApiImplicitParam(name = RestConstants.PAGE_ROWS, value = "每页条数", required = true, paramType = "query", dataTypeClass = Integer.class),
@ApiImplicitParam(name = RestConstants.PAGE_SIDX, value = "排序字段", paramType = "query", dataTypeClass = String.class),
@ApiImplicitParam(name = RestConstants.PAGE_SORD, value = "排序方式", paramType = "query", dataTypeClass = String.class),
})
@PostMapping("/page")
public RestResult<Page<SoilReport>> getPage(SoilReport soilReport) {
return success(soilReportService.page(getPage(), soilReport));
}
@ApiOperation(value = "查询列表", notes = "查询数据列表")
@PostMapping("/list")
public RestResult<List<SoilReport>> getList(SoilReport soilReport) {
return success(soilReportService.list(soilReport));
}
@ApiOperation(value = "查询 id 信息", notes = "查询指定 id 的数据内容")
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "主键", required = true, paramType = "path", dataTypeClass = Long.class),
})
@GetMapping("/{id}")
public RestResult<SoilReport> get(@PathVariable("id") Long id) {
return success(soilReportService.getById(id));
}
@ApiOperation(value = "根据 id 修改信息", notes = "根据指定 id 修改该条数据内容")
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "主键", required = true, paramType = "path", dataTypeClass = Long.class),
})
@PutMapping("/{id}")
public RestResult<Boolean> edit(@PathVariable("id") Long id, SoilReport soilReport) {
soilReport.setId(id);
return success(soilReportService.updateById(soilReport));
}
@ApiOperation(value = "添加", notes = "添加一条数据")
@PostMapping("/")
public RestResult<Boolean> add(SoilReport soilReport) {
return success(soilReportService.save(soilReport));
}
@ApiOperation(value = "根据 ids 删除", notes = "根据 id 数组删除指定的数据内容")
@ApiImplicitParams({
@ApiImplicitParam(name = "ids", value = "主键数组", required = true, paramType = "query", allowMultiple = true, dataTypeClass = Long.class),
})
@DeleteMapping("/")
public RestResult<Boolean> delete(@RequestParam("ids") Long[] ids) {
return success(soilReportService.remove(Condition.create().in("id", ids)));
}
@ApiOperation(value = "添加", notes = "添加一条数据")
@PostMapping("/make_report")
public RestResult<Boolean> makeReport(@RequestBody SoilReportDTO dto) {
return success(soilReportService.makeReport(dto,response,getAccount()));
}
@ApiOperation(value = "报告上传", notes = "报告上传")
@PostMapping("/upload/{id}")
public RestResult<Boolean> uploadReport(@PathVariable("id") Long id,@RequestParam("reason")String reason, MultipartFile file) {
return success(soilReportService.uploadReport(file, id,reason,getAccount()));
}
@ApiOperation(value = "获取报告", notes = "获取报告")
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "主键", required = true, paramType = "path", dataTypeClass = Long.class),
})
@GetMapping("/get_report_{id}")
public RestResult<SoilReport> getReport(@PathVariable("id") Long id) {
return success(soilReportService.getReport(id));
}
}
......@@ -78,6 +78,22 @@ public class SoilSampleBackupController extends ServiceController {
}
@ApiOperation(value = "备样历史分页列表", notes = "备样历史分页列表")
@ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class),
@ApiImplicitParam(name = RestConstants.PAGE_ROWS, value = "每页条数", required = true, paramType = "query", dataTypeClass = Integer.class),
@ApiImplicitParam(name = RestConstants.PAGE_SIDX, value = "排序字段", paramType = "query", dataTypeClass = String.class),
@ApiImplicitParam(name = RestConstants.PAGE_SORD, value = "排序方式", paramType = "query", dataTypeClass = String.class),
})
@PostMapping("/page_backup_his")
public RestResult<Page<SoilSampleBackupVO>> getPageBackupHis(SoilSampleBackupVO soilSampleBackup) {
soilSampleBackup.setStatusList(Lists.newArrayList(
SoilBackupStatusEnum.HANDLE_END
));
return success(soilSampleBackupService.pageVO(getPage(), soilSampleBackup));
}
@ApiOperation(value = "查询列表", notes = "查询数据列表")
@PostMapping("/list")
public RestResult<List<SoilSampleBackup>> getList(SoilSampleBackup soilSampleBackup) {
......
......@@ -2,6 +2,7 @@ package com.patzn.cloud.service.lims.soil.controller;
import java.util.List;
import com.patzn.cloud.service.soil.vo.SoilStandardVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
......@@ -50,8 +51,8 @@ public class SoilStandardController extends ServiceController {
@ApiImplicitParam(name = RestConstants.PAGE_SORD, value = "排序方式", paramType = "query", dataType = "String"),
})
@PostMapping("/page")
public RestResult<Page<SoilStandard>> getPage(SoilStandard soilStandard) {
return success(soilStandardService.page(getPage(), soilStandard));
public RestResult<Page<SoilStandardVO>> getPage(SoilStandardVO soilStandard) {
return success(soilStandardService.pageVO(getPage(), soilStandard));
}
......
......@@ -65,7 +65,7 @@ public class SoilStatisticsController extends ServiceController {
}
@ApiOperation(value = "委托登记历史分页列表", notes = "委托登记历史分页列表")
@ApiOperation(value = "委托坐标登记历史分页列表", notes = "委托坐标分页列表")
@ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataType = "int"),
@ApiImplicitParam(name = RestConstants.PAGE_ROWS, value = "每页条数", required = true, paramType = "query", dataType = "int"),
......
......@@ -21,6 +21,8 @@ public interface SoilExperimentMapper extends BaseMapper<SoilExperiment> {
List<SoilExperimentVO> selectListBySampleIds(RowBounds rowBounds, @Param("sampleIds") Long[] sampleIds, @Param("vo") SoilExperimentVO vo);
List<SoilExperimentVO> selectListBySampleIds(RowBounds rowBounds, @Param("sampleIds") List<Long> sampleIds, @Param("vo") SoilExperimentVO vo);
List<SoilExperimentVO> selectTestByExp(RowBounds rowBounds,@Param("vo") SoilExperimentVO vo);
List<SoilExperimentVO> selectExpRight(RowBounds rowBounds, @Param("vo")SoilExperimentVO vo);
......
package com.patzn.cloud.service.lims.soil.mapper;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.patzn.cloud.service.soil.entity.SoilReport;
/**
* <p>
* Mapper 接口
* </p>
*
* @author wwd
* @since 2020-10-21
*/
public interface SoilReportMapper extends BaseMapper<SoilReport> {
}
package com.patzn.cloud.service.lims.soil.mapper;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.patzn.cloud.service.soil.entity.SoilStandard;
import com.patzn.cloud.service.soil.vo.SoilStandardVO;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.session.RowBounds;
import java.util.List;
/**
* <p>
......@@ -13,4 +19,5 @@ import com.patzn.cloud.service.soil.entity.SoilStandard;
*/
public interface SoilStandardMapper extends BaseMapper<SoilStandard> {
List<SoilStandardVO> selectVOList(RowBounds rowBounds, @Param("vo") SoilStandardVO soilStandard);
}
......@@ -27,4 +27,11 @@ public interface ISoilEntrustOperationService extends IBaseService<SoilEntrustOp
void recordEntrustSubmitter(Long[] ids, Account account);
void recordEntrustReviewer(Long[] ids, Account account);
void recordRmSubmitter(Long[] ids, Account account);
void recordRcSubmitter(Long[] ids, Account account);
void recordRiSubmitter(Long[] ids, Account account);
}
......@@ -58,4 +58,17 @@ public interface ISoilEntrustService extends IBaseService<SoilEntrust> {
boolean importEntrust(MultipartFile file, Account account);
List<SoilEntrustVO> listCoordinateVO(SoilEntrustVO soilEntrust);
Page<SoilEntrustVO> pageReportMake(Page<SoilEntrustVO> page, SoilEntrustVO soilEntrust);
boolean reportMakeSubmit(Long[] ids, Account account);
boolean reportIssueSubmit(Long[] ids, Account account);
boolean reportCheckSubmit(Long[] ids, Account account);
boolean reportCheckBack(Long[] ids, String reason, Account account);
boolean reportIssueBack(Long[] ids, String reason, Account account);
}
......@@ -45,4 +45,6 @@ public interface ISoilExperimentService extends IBaseService<SoilExperiment> {
boolean expCheckBack(Long[] ids, String remark, Account account);
boolean expAuditBack(Long[] ids, String remark, Account account);
Page<SoilExperimentVO> pageByByEntrust(Page<SoilExperimentVO> page, SoilExperimentVO vo);
}
package com.patzn.cloud.service.lims.soil.service;
import java.util.List;
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.soil.dto.SoilReportDTO;
import com.patzn.cloud.service.soil.entity.SoilReport;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
/**
* <p>
* 服务类
* </p>
*
* @author wwd
* @since 2020-10-21
*/
public interface ISoilReportService extends IBaseService<SoilReport> {
Page<SoilReport> page(Page<SoilReport> page, SoilReport soilReport);
List<SoilReport> list(SoilReport soilReport);
boolean makeReport(SoilReportDTO dto, HttpServletResponse response,Account account);
SoilReport getReport(Long id);
boolean uploadReport(MultipartFile file, Long id, String reason, Account account);
}
......@@ -5,6 +5,7 @@ import java.util.List;
import com.baomidou.mybatisplus.plugins.Page;
import com.patzn.cloud.commons.service.IBaseService;
import com.patzn.cloud.service.soil.entity.SoilStandard;
import com.patzn.cloud.service.soil.vo.SoilStandardVO;
/**
* <p>
......@@ -21,4 +22,6 @@ public interface ISoilStandardService extends IBaseService<SoilStandard> {
List<SoilStandard> list(SoilStandard soilStandard);
Page<SoilStandardVO> pageVO(Page<SoilStandardVO> page, SoilStandardVO soilStandard);
}
......@@ -64,4 +64,43 @@ public class SoilEntrustOperationServiceImpl extends BaseServiceImpl<SoilEntrust
operation.setReviewTime(new Date());
super.update(operation, Condition.create().in("entrust_id",ids));
}
@Override
public void recordRmSubmitter(Long[] ids, Account account) {
if (ArrayUtils.isEmpty(ids)){
return;
}
SoilEntrustOperation operation = new SoilEntrustOperation();
operation.setRmSubmitter(account.getUserName());
operation.setRmSubmitterId(account.getUserId());
operation.setRmSubmitTime(new Date());
super.update(operation, Condition.create().in("entrust_id",ids));
}
@Override
public void recordRcSubmitter(Long[] ids, Account account) {
if (ArrayUtils.isEmpty(ids)){
return;
}
SoilEntrustOperation operation = new SoilEntrustOperation();
operation.setRcSubmitter(account.getUserName());
operation.setRcSubmitterId(account.getUserId());
operation.setRcSubmitTime(new Date());
super.update(operation, Condition.create().in("entrust_id",ids));
}
@Override
public void recordRiSubmitter(Long[] ids, Account account) {
if (ArrayUtils.isEmpty(ids)){
return;
}
SoilEntrustOperation operation = new SoilEntrustOperation();
operation.setRiSubmitter(account.getUserName());
operation.setRiSubmitterId(account.getUserId());
operation.setRiSubmitTime(new Date());
super.update(operation, Condition.create().in("entrust_id",ids));
}
}
......@@ -3,6 +3,7 @@ package com.patzn.cloud.service.lims.soil.service.impl;
import java.io.InputStream;
import java.math.BigDecimal;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
import com.baomidou.mybatisplus.mapper.Condition;
......@@ -87,6 +88,11 @@ public class SoilEntrustServiceImpl extends BaseServiceImpl<SoilEntrustMapper, S
@Autowired
private ISoilEntrustOperationService soilEntrustOperationService;
@Autowired
private ISoilReportService soilReportService;
@Override
public Page<SoilEntrust> page(Page<SoilEntrust> page, SoilEntrust soilEntrust) {
Wrapper wrapper = new EntityWrapper<>(soilEntrust);
......@@ -221,6 +227,35 @@ public class SoilEntrustServiceImpl extends BaseServiceImpl<SoilEntrustMapper, S
if (null != entrust){
SoilEntrustDTO vo =entrust.convert(SoilEntrustDTO.class);
List<SoilSampleDTO> sampleList = baseMapper.listByContractId(id);
if (CollectionUtils.isNotEmpty(sampleList)){
List<Long> sampleIdList = sampleList.stream().map(s->{
return s.getId();
}).collect(Collectors.toList());
List<SoilExperiment> experimentList = soilExperimentService.list(Condition.create().setSqlSelect("name","sample_id").in("sample_id",sampleIdList));
Map<Long,Set<String>> itemSetMap = new HashMap<>();
for (SoilExperiment experiment:experimentList) {
if (!itemSetMap.containsKey(experiment.getSampleId())){
Set<String> set = new TreeSet<>();
set.add(experiment.getName());
itemSetMap.put(experiment.getSampleId(),set);
}else{
Set<String> set = itemSetMap.get(experiment.getSampleId());
set.add(experiment.getName());
itemSetMap.put(experiment.getSampleId(),set);
}
}
for (SoilSampleDTO sampleDTO:sampleList) {
if (itemSetMap.containsKey(sampleDTO.getId())){
sampleDTO.setExperiments(StringHandleUtils.join(itemSetMap.get(sampleDTO.getId())));
}
}
}
vo.setSampleList(sampleList);
return vo;
}
......@@ -409,6 +444,112 @@ public class SoilEntrustServiceImpl extends BaseServiceImpl<SoilEntrustMapper, S
return baseMapper.selectCoordinateVOList(soilEntrust);
}
@Override
public Page<SoilEntrustVO> pageReportMake(Page<SoilEntrustVO> page, SoilEntrustVO soilEntrust) {
List<SoilEntrustVO> entrustList= baseMapper.selectVOList(page,soilEntrust);
if (CollectionUtils.isEmpty(entrustList)){
return page;
}
List<Long> entrustIds=entrustList.stream().map(s->{
return s.getId();
}).collect(Collectors.toList());
List<SoilReport> reportList= soilReportService.list(Condition.create().setSqlSelect("entrust_id").in("entrust_id",entrustIds));
Map<Long, Long> maps = new HashMap<>();
for (SoilReport report:reportList) {
maps.put(report.getEntrustId(),report.getEntrustId());
}
for (SoilEntrustVO entrust:entrustList) {
if (maps.containsKey(entrust.getId())){
entrust.setReported("是");
}else{
entrust.setReported("否");
}
}
return page.setRecords(entrustList);
}
@Transactional(rollbackFor = Exception.class)
@Override
public boolean reportMakeSubmit(Long[] ids, Account account) {
RestAssert.fail(ArrayUtils.isEmpty(ids),"请选择要提交至审核的试验任务");
int count = super.count(Condition.create().in("id",ids).eq("status",SoilEntrustStatusEnum.REPORT));
RestAssert.fail(count!=ids.length,"请提交报告编制的任务");
soilEntrustRecordService.record(SoilEntrustStatusEnum.REPORT,SoilEntrustStatusEnum.REPORT_CHECK,ids,0,account,"报告编制提交!'");
soilEntrustOperationService.recordRcSubmitter(ids,account);
SoilEntrust soilEntrust = new SoilEntrust();
soilEntrust.setStatus(SoilEntrustStatusEnum.REPORT_CHECK);
soilEntrust.setProgress(SoilEntrustStatusEnum.REPORT_CHECK);
return super.update(soilEntrust,Condition.create().in("id",ids));
}
@Transactional(rollbackFor = Exception.class)
@Override
public boolean reportIssueSubmit(Long[] ids, Account account) {
RestAssert.fail(ArrayUtils.isEmpty(ids),"请选择要签发完成的试验任务");
int count = super.count(Condition.create().in("id",ids).eq("status",SoilEntrustStatusEnum.REPORT_ISSUE));
RestAssert.fail(count!=ids.length,"请提交报告签发的任务");
soilEntrustRecordService.record(SoilEntrustStatusEnum.REPORT_ISSUE,SoilEntrustStatusEnum.END,ids,0,account,"报告签发提交!'");
soilEntrustOperationService.recordRiSubmitter(ids,account);
SoilEntrust soilEntrust = new SoilEntrust();
soilEntrust.setStatus(SoilEntrustStatusEnum.END);
soilEntrust.setProgress(SoilEntrustStatusEnum.END);
return super.update(soilEntrust,Condition.create().in("id",ids));
}
@Transactional(rollbackFor = Exception.class)
@Override
public boolean reportCheckSubmit(Long[] ids, Account account) {
RestAssert.fail(ArrayUtils.isEmpty(ids),"请选择要提交至签发的试验任务");
int count = super.count(Condition.create().in("id",ids).eq("status",SoilEntrustStatusEnum.REPORT_CHECK));
RestAssert.fail(count!=ids.length,"请提交报告审核的任务");
soilEntrustRecordService.record(SoilEntrustStatusEnum.REPORT_CHECK,SoilEntrustStatusEnum.REPORT_ISSUE,ids,0,account,"报告审核提交!'");
soilEntrustOperationService.recordRcSubmitter(ids,account);
SoilEntrust soilEntrust = new SoilEntrust();
soilEntrust.setStatus(SoilEntrustStatusEnum.REPORT_ISSUE);
soilEntrust.setProgress(SoilEntrustStatusEnum.REPORT_ISSUE);
return super.update(soilEntrust,Condition.create().in("id",ids));
}
@Transactional(rollbackFor = Exception.class)
@Override
public boolean reportCheckBack(Long[] ids, String reason, Account account) {
RestAssert.fail(ArrayUtils.isEmpty(ids),"请选择报告审核的试验任务");
RestAssert.fail(StringUtils.isBlank(reason),"请填写退回原因");
int count = super.count(Condition.create().in("id",ids).eq("status",SoilEntrustStatusEnum.REPORT_CHECK));
RestAssert.fail(count!=ids.length,"请选择报告审核的试验任务");
soilEntrustRecordService.record(SoilEntrustStatusEnum.REPORT_CHECK,SoilEntrustStatusEnum.REPORT,ids,1,account,"报告审核退回:"+reason);
SoilEntrust soilEntrust = new SoilEntrust();
soilEntrust.setStatus(SoilEntrustStatusEnum.REPORT);
soilEntrust.setProgress(SoilEntrustStatusEnum.BACK_REPORT_CHECK);
return super.update(soilEntrust,Condition.create().in("id",ids));
}
@Transactional(rollbackFor = Exception.class)
@Override
public boolean reportIssueBack(Long[] ids, String reason, Account account) {
RestAssert.fail(ArrayUtils.isEmpty(ids),"请选择报告签发的试验任务");
RestAssert.fail(StringUtils.isBlank(reason),"请填写退回原因");
int count = super.count(Condition.create().in("id",ids).eq("status",SoilEntrustStatusEnum.REPORT_ISSUE));
RestAssert.fail(count!=ids.length,"请选择报告签发的试验任务");
soilEntrustRecordService.record(SoilEntrustStatusEnum.REPORT_ISSUE,SoilEntrustStatusEnum.REPORT,ids,1,account,"报告签发退回:"+reason);
SoilEntrust soilEntrust = new SoilEntrust();
soilEntrust.setStatus(SoilEntrustStatusEnum.REPORT);
soilEntrust.setProgress(SoilEntrustStatusEnum.BACK_REPORT_ISSUE);
return super.update(soilEntrust,Condition.create().in("id",ids));
}
@Transactional(rollbackFor = Exception.class)
@Override
......
......@@ -275,6 +275,18 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
return true;
}
@Override
public Page<SoilExperimentVO> pageByByEntrust(Page<SoilExperimentVO> page, SoilExperimentVO vo) {
RestAssert.fail(null == vo.getEntrustId(),"委托单ID不能为空");
List<SoilSample> sampleList = soilSampleService.listByContractId(vo.getEntrustId());
if (CollectionUtils.isEmpty(sampleList)){
return page;
}
List<Long> sampleIds= sampleList.stream().map(s->{
return s.getId();
}).collect(Collectors.toList());
return page.setRecords(baseMapper.selectListBySampleIds(page,sampleIds,vo));
}
public List<SoilExperimentVO> initOriginalRecord(List<SoilExperimentVO> voList){
......
......@@ -66,6 +66,14 @@ public class SoilPrepareServiceImpl extends BaseServiceImpl<SoilPrepareMapper, S
RestAssert.fail(null==soilPrepare.getApplyHandleTime(),"请选择处理时间");
RestAssert.fail(StringUtils.isBlank(soilPrepare.getHandleWay()),"请选择处理方式");
List<SoilPrepare> backupList = super.list(Condition.create().setSqlSelect("status").in("id",ids));
for (SoilPrepare backup:backupList) {
if (!(backup.getStatus().equals(SoilPrepareStatusEnum.PREPARED)||backup.getStatus().equals(SoilPrepareStatusEnum.DISPOSAL_FAIL))){
RestAssert.fail("申请请申请余样留存中或者审批驳回的数据");
}
}
List<SoilPrepare> updateList = new ArrayList<>();
for (Long id:ids) {
SoilPrepare backupUpdate = soilPrepare.convert(SoilPrepare.class);
......
package com.patzn.cloud.service.lims.soil.service.impl;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.util.*;
import com.baomidou.mybatisplus.mapper.Condition;
import com.baomidou.mybatisplus.toolkit.CollectionUtils;
import com.patzn.cloud.commons.api.RestAssert;
import com.patzn.cloud.commons.controller.Account;
import com.patzn.cloud.commons.toolkit.FileUtils;
import com.patzn.cloud.feign.lims.print.client.ElnFormClient;
import com.patzn.cloud.oss.starter.OssClient;
import com.patzn.cloud.oss.starter.OssFileResult;
import com.patzn.cloud.service.eln.entity.ElnForm;
import com.patzn.cloud.service.lims.common.service.IExportService;
import com.patzn.cloud.service.lims.soil.mapper.SoilReportMapper;
import com.patzn.cloud.service.lims.soil.service.ISoilOriginalRecordService;
import com.patzn.cloud.service.lims.soil.service.ISoilReportService;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
import com.patzn.cloud.service.soil.dto.SoilReportDTO;
import com.patzn.cloud.service.soil.entity.SoilOriginalRecord;
import com.patzn.cloud.service.soil.entity.SoilReport;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.ss.usermodel.DateUtil;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
/**
* <p>
* 服务实现类
* </p>
*
* @author wwd
* @since 2020-10-21
*/
@Service
public class SoilReportServiceImpl extends BaseServiceImpl<SoilReportMapper, SoilReport> implements ISoilReportService {
@Autowired
private ISoilOriginalRecordService soilOriginalRecordService;
@Autowired
private ElnFormClient elnFormClient;
@Autowired
private OssClient ossClient;
@Autowired
private IExportService exportService;
@Override
public Page<SoilReport> page(Page<SoilReport> page, SoilReport soilReport) {
Wrapper wrapper = new EntityWrapper<>(soilReport);
return this.page(page, wrapper);
}
@Override
public List<SoilReport> list(SoilReport soilReport) {
return this.list(new EntityWrapper<>(soilReport));
}
@Transactional(rollbackFor = Exception.class)
@Override
public boolean makeReport(SoilReportDTO dto, HttpServletResponse response, Account account) {
RestAssert.fail(null == dto,"数据有误");
RestAssert.fail(null == dto.getEntrustId(),"委托单ID不能为空!");
RestAssert.fail(CollectionUtils.isEmpty(dto.getOriginalList()),"请选择原始记录!");
List<SoilOriginalRecord> originalRecordList= soilOriginalRecordService.list(Condition.create().in("id",dto.getOriginalList()));
try {
XSSFWorkbook reportBook = new XSSFWorkbook();
Map<String,Integer> map = new HashMap<>();
for (SoilOriginalRecord record:originalRecordList) {
ElnForm form= elnFormClient.getExcelById(record.getOriginalRecordId()).serviceData();
String excelKey= form.getExcelObjectKey();
InputStream io = ossClient.download(excelKey);
XSSFWorkbook workbook = new XSSFWorkbook(io);
XSSFSheet sheet= workbook.getSheetAt(0);
if (!map.containsKey(sheet.getSheetName())){
map.put(sheet.getSheetName(),1);
XSSFSheet xssfSheet= reportBook.createSheet(sheet.getSheetName());
copySheet(reportBook,sheet,xssfSheet);
}else{
XSSFSheet xssfSheet= reportBook.createSheet(sheet.getSheetName()+(map.get(sheet.getSheetName())+1));
map.put(sheet.getSheetName(),map.get(sheet.getSheetName())+1);
copySheet(reportBook,sheet,xssfSheet);
}
io.close();
}
List<File> deleteList = new ArrayList<>();
File fileNew = null;
FileOutputStream os;
fileNew = File.createTempFile(dto.getEntrustId()+"", ".xlsx");
os = new FileOutputStream(fileNew);
reportBook.write(os);
os.flush();
os.close();
reportBook.close();
deleteList.add(fileNew);
OssFileResult result= ossClient.upload(fileNew);
int count = super.count(Condition.create().eq("entrust_id",dto.getEntrustId()));
SoilReport report = new SoilReport();
report.setEntrustId(dto.getEntrustId());
report.setUname(account.getUserName());
report.setVersion(1+count);
report.setBucketName(result.getBucketName());
report.setObjectKey(result.getObjectKey());
report.setUri(result.getUri());
report.setVersionId(result.getVersionId());
save(report);
FileUtils.deleteFiles(deleteList);
}catch (Exception e){
e.printStackTrace();
}
return true;
}
@Override
public SoilReport getReport(Long id) {
SoilReport report= super.getOne(Condition.create().setSqlSelect("object_key","version_id").eq("entrust_id",id).orderBy("version",false).last("LIMIT 1"));
if (null == report){
RestAssert.fail("报告暂未生成");
}
return report;
}
@Override
public boolean uploadReport(MultipartFile file, Long id, String reason, Account account) {
if (!file.getOriginalFilename().contains(".xlsx")){
RestAssert.fail("请上传 .xlsx 格式的报告");
}
RestAssert.fail(StringUtils.isBlank(reason),"请填写上传备注");
OssFileResult result= ossClient.upload(file);
int count = super.count(Condition.create().eq("entrust_id",id));
SoilReport report = new SoilReport();
report.setRemark(reason);
report.setEntrustId(id);
report.setUname(account.getUserName());
report.setVersion(1+count);
report.setBucketName(result.getBucketName());
report.setObjectKey(result.getObjectKey());
report.setUri(result.getUri());
report.setVersionId(result.getVersionId());
return save(report);
}
private static void copySheet(XSSFWorkbook wb, XSSFSheet fromSheet, XSSFSheet toSheet) {
mergeSheetAllRegion(fromSheet, toSheet);
// 设置列宽
int length = fromSheet.getRow(fromSheet.getFirstRowNum()).getLastCellNum();
for (int i = 0; i <= length; i++) {
toSheet.setColumnWidth(i, fromSheet.getColumnWidth(i));
}
for (Iterator rowIt = fromSheet.rowIterator(); rowIt.hasNext(); ) {
XSSFRow oldRow = (XSSFRow) rowIt.next();
XSSFRow newRow = toSheet.createRow(oldRow.getRowNum());
copyRow(wb, oldRow, newRow);
}
}
private static void copyRow(XSSFWorkbook wb, XSSFRow oldRow, XSSFRow toRow) {
toRow.setHeight(oldRow.getHeight());
for (Iterator cellIt = oldRow.cellIterator(); cellIt.hasNext(); ) {
XSSFCell tmpCell = (XSSFCell) cellIt.next();
XSSFCell newCell = toRow.createCell(tmpCell.getColumnIndex());
copyCell(wb, tmpCell, newCell);
}
}
/**
* 复制单元格
*
* @param wb
* @param fromCell
* @param toCell
*/
private static void copyCell(XSSFWorkbook wb, XSSFCell fromCell, XSSFCell toCell) {
XSSFCellStyle newstyle = wb.createCellStyle();
// 复制单元格样式
newstyle.cloneStyleFrom(fromCell.getCellStyle());
// 样式
toCell.setCellStyle(newstyle);
if (fromCell.getCellComment() != null) {
toCell.setCellComment(fromCell.getCellComment());
}
// 不同数据类型处理
CellType fromCellType = fromCell.getCellType();
toCell.setCellType(fromCellType);
if (fromCellType == CellType.NUMERIC) {
if (DateUtil.isCellDateFormatted(fromCell)) {
toCell.setCellValue(fromCell.getDateCellValue());
} else {
toCell.setCellValue(fromCell.getNumericCellValue());
}
} else if (fromCellType == CellType.STRING) {
toCell.setCellValue(fromCell.getRichStringCellValue());
} else if (fromCellType == CellType.BLANK) {
// nothing21
} else if (fromCellType == CellType.BOOLEAN) {
toCell.setCellValue(fromCell.getBooleanCellValue());
} else if (fromCellType == CellType.ERROR) {
toCell.setCellErrorValue(fromCell.getErrorCellValue());
} else if (fromCellType == CellType.FORMULA) {
toCell.setCellFormula(fromCell.getCellFormula());
} else {
// nothing29
}
}
private static void mergeSheetAllRegion(XSSFSheet fromSheet, XSSFSheet toSheet) {
int num = fromSheet.getNumMergedRegions();
CellRangeAddress cellR = null;
for (int i = 0; i < num; i++) {
cellR = fromSheet.getMergedRegion(i);
toSheet.addMergedRegion(cellR);
}
}
}
......@@ -84,6 +84,13 @@ public class SoilSampleBackupServiceImpl extends BaseServiceImpl<SoilSampleBacku
RestAssert.fail(null==soilSampleBackup.getApplyHandleTime(),"请选择处理时间");
RestAssert.fail(StringUtils.isBlank(soilSampleBackup.getHandleWay()),"请选择处理方式");
List<SoilSampleBackup> backupList = super.list(Condition.create().setSqlSelect("status").in("id",ids));
for (SoilSampleBackup backup:backupList) {
if (!(backup.getStatus().equals(SoilBackupStatusEnum.DRAFT)||backup.getStatus().equals(SoilBackupStatusEnum.DISPOSAL_FAIL))){
RestAssert.fail("申请请申请备样中或者审批驳回的数据");
}
}
List<SoilSampleBackup> updateList = new ArrayList<>();
for (Long id:ids) {
SoilSampleBackup backupUpdate = soilSampleBackup.convert(SoilSampleBackup.class);
......
package com.patzn.cloud.service.lims.soil.service.impl;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import com.baomidou.mybatisplus.mapper.Condition;
import com.baomidou.mybatisplus.toolkit.CollectionUtils;
import com.patzn.cloud.service.lims.soil.service.ISoilStandardAnnexService;
import com.patzn.cloud.service.soil.entity.SoilStandard;
import com.patzn.cloud.service.lims.soil.mapper.SoilStandardMapper;
import com.patzn.cloud.service.lims.soil.service.ISoilStandardService;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
import com.patzn.cloud.service.soil.entity.SoilStandardAnnex;
import com.patzn.cloud.service.soil.vo.SoilStandardVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
......@@ -22,6 +31,8 @@ import com.baomidou.mybatisplus.plugins.Page;
@Service
public class SoilStandardServiceImpl extends BaseServiceImpl<SoilStandardMapper, SoilStandard> implements ISoilStandardService {
@Autowired
private ISoilStandardAnnexService soilStandardAnnexService;
@Override
public Page<SoilStandard> page(Page<SoilStandard> page, SoilStandard soilStandard) {
......@@ -35,4 +46,26 @@ public class SoilStandardServiceImpl extends BaseServiceImpl<SoilStandardMapper,
public List<SoilStandard> list(SoilStandard soilStandard) {
return this.list(new EntityWrapper<>(soilStandard));
}
@Override
public Page<SoilStandardVO> pageVO(Page<SoilStandardVO> page, SoilStandardVO soilStandard) {
List<SoilStandardVO> vos = baseMapper.selectVOList(page,soilStandard);
if (CollectionUtils.isEmpty(vos)){
return page;
}
List<Long> sample= vos.stream().map(v->{
return v.getId();
}).collect(Collectors.toList());
Map<Long,Long> map = new HashMap<>();
List<SoilStandardAnnex> annexList= soilStandardAnnexService.list(Condition.create().setSqlSelect("id","standard_id").in("standard_id",sample));
for (SoilStandardAnnex standardAnnex:annexList) {
map.put(standardAnnex.getStandardId(),standardAnnex.getStandardId());
}
for (SoilStandardVO vo:vos) {
vo.setUploaded(null == map.get(vo.getId())?"否":"是");
}
return page.setRecords(vos);
}
}
......@@ -43,6 +43,9 @@
</foreach>
</if>
ORDER BY t.name ,s.sample_code
</select>
......
......@@ -5,5 +5,8 @@
SELECT r.id,r.original_record_id,r.title,r.ctime,r.uname,r.remark,e.entrust_code FROM soil_original_record r
JOIN soil_entrust e ON r.entrust_id = e.id
WHERE r.deleted = 0 AND e.deleted = 0
<if test="vo.entrustId!=null">
AND e.id = #{vo.entrustId}
</if>
</select>
</mapper>
......@@ -49,6 +49,13 @@
p.unit,
p.status,
p.progress,
p.handle_way,
p.handler,
p.handle_time,
p.apply_remark,
p.preparer,
p.prepare_date,
p.keep_container,
s.sample_code,
s.sample_pack,
s.sample_describe,
......@@ -56,6 +63,7 @@
FROM
soil_prepare p
JOIN soil_sample s ON p.sample_id = s.id
JOIN soil_entrust e ON s.entrust_id = e.id
WHERE
p.deleted = 0
AND s.deleted = 0
......
<?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.soil.mapper.SoilReportMapper">
</mapper>
......@@ -2,4 +2,7 @@
<!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.soil.mapper.SoilStandardMapper">
<select id="selectVOList" resultType="com.patzn.cloud.service.soil.vo.SoilStandardVO">
SELECT * FROM soil_standard WHERE deleted = 0
</select>
</mapper>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment