Commit be1066ca by wangweidong

Merge remote-tracking branch 'origin/master'

parents 1d273c1c ad5beab0
...@@ -2,27 +2,18 @@ package com.patzn.cloud.service.lims.hmhj.controller; ...@@ -2,27 +2,18 @@ package com.patzn.cloud.service.lims.hmhj.controller;
import com.baomidou.kisso.annotation.Action; import com.baomidou.kisso.annotation.Action;
import com.baomidou.kisso.annotation.Login; import com.baomidou.kisso.annotation.Login;
import com.patzn.cloud.service.hmhj.entity.EntrustAnnex;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.plugins.Page;
import com.patzn.cloud.commons.api.RestConstants; import com.patzn.cloud.commons.api.RestConstants;
import com.patzn.cloud.commons.api.RestResult; import com.patzn.cloud.commons.api.RestResult;
import com.patzn.cloud.commons.controller.ServiceController; import com.patzn.cloud.commons.controller.ServiceController;
import com.patzn.cloud.service.hmhj.entity.EntrustAnnex;
import com.patzn.cloud.service.lims.hmhj.service.IEntrustAnnexService; import com.patzn.cloud.service.lims.hmhj.service.IEntrustAnnexService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; 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 org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest; import org.springframework.web.multipart.MultipartHttpServletRequest;
...@@ -115,4 +106,12 @@ public class EntrustAnnexController extends ServiceController { ...@@ -115,4 +106,12 @@ public class EntrustAnnexController extends ServiceController {
public void view(String objectKey) { public void view(String objectKey) {
entrustAnnexService.view(response, objectKey); entrustAnnexService.view(response, objectKey);
} }
@ApiOperation(value = "根据委托id获取ObjectKey", notes = "获取key")
@Login(action = Action.Skip)
@PostMapping("/get_key_by_businessId")
RestResult<String> getKeyByBusinessId(@RequestBody String businessId){
return success(entrustAnnexService.getLastKey(businessId));
}
} }
package com.patzn.cloud.service.lims.hmhj.controller; package com.patzn.cloud.service.lims.hmhj.controller;
import com.baomidou.kisso.annotation.Action;
import com.baomidou.kisso.annotation.Login;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.patzn.cloud.service.hmhj.dto.EntrustDTO; import com.patzn.cloud.service.hmhj.dto.EntrustDTO;
import com.patzn.cloud.service.hmhj.entity.Entrust; import com.patzn.cloud.service.hmhj.entity.Entrust;
...@@ -168,6 +170,32 @@ public class EntrustController extends ServiceController { ...@@ -168,6 +170,32 @@ public class EntrustController extends ServiceController {
return success(entrustService.page(getPage(), entrust)); return success(entrustService.page(getPage(), entrust));
} }
@ApiOperation("委托修改审批分页列表")
@ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class),
@ApiImplicitParam(name = RestConstants.PAGE_ROWS, value = "每页条数", required = true, paramType = "query", dataTypeClass = Integer.class),
@ApiImplicitParam(name = RestConstants.PAGE_SIDX, value = "排序字段", paramType = "query", dataTypeClass = String.class),
@ApiImplicitParam(name = RestConstants.PAGE_SORD, value = "排序方式", paramType = "query", dataTypeClass = String.class),
})
@PostMapping("/page_change_approve")
public RestResult<Page<Entrust>> getPageChangeApprove(Entrust entrust) {
entrust.setApproveStatus(EntrustApproveStatusEnum.APPROVE);
return success(entrustService.page(getPage(), entrust));
}
@ApiOperation("委托修改审批历史分页列表")
@ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class),
@ApiImplicitParam(name = RestConstants.PAGE_ROWS, value = "每页条数", required = true, paramType = "query", dataTypeClass = Integer.class),
@ApiImplicitParam(name = RestConstants.PAGE_SIDX, value = "排序字段", paramType = "query", dataTypeClass = String.class),
@ApiImplicitParam(name = RestConstants.PAGE_SORD, value = "排序方式", paramType = "query", dataTypeClass = String.class),
})
@PostMapping("/page_change_approve_his")
public RestResult<Page<Entrust>> getPageChangeApproveHis(Entrust entrust) {
return success(entrustService.pageChangeApproveHis(getPage(), entrust));
}
@ApiOperation("委托样品待制备分页列表") @ApiOperation("委托样品待制备分页列表")
@ApiImplicitParams({ @ApiImplicitParams({
...@@ -333,9 +361,22 @@ public class EntrustController extends ServiceController { ...@@ -333,9 +361,22 @@ public class EntrustController extends ServiceController {
} }
@ApiOperation("提交修改审批申请") @ApiOperation("提交修改审批申请")
@PostMapping("/submit_update_apply") @PostMapping("/submit_change_apply")
public RestResult<Boolean> submitUpdateApply(@RequestParam("id") Long id, String reason) { public RestResult<Boolean> submitChangeApply(@RequestParam("id") Long id, @RequestParam("approveId") Long approveId,
return success(entrustService.submitUpdateApply(id, reason, getAccount())); @RequestParam("reason") String reason) {
return success(entrustService.submitChangeApply(id, approveId, reason, getAccount()));
}
@ApiOperation("审批修改申请")
@PostMapping("/approve_submit_apply")
public RestResult<Boolean> approveSubmitApply(@RequestParam("id") Long id) {
return success(entrustService.approveSubmitApply(id, getAccount()));
}
@ApiOperation("驳回修改申请")
@PostMapping("/reject_submit_apply")
public RestResult<Boolean> rejectSubmitApply(@RequestParam("id") Long id, @RequestParam("reason") String reason) {
return success(entrustService.rejectSubmitApply(id, reason, getAccount()));
} }
@ApiOperation("复制委托信息") @ApiOperation("复制委托信息")
...@@ -801,4 +842,17 @@ public class EntrustController extends ServiceController { ...@@ -801,4 +842,17 @@ public class EntrustController extends ServiceController {
return success(EntrustFlowEnum.values()); return success(EntrustFlowEnum.values());
} }
@ApiOperation("导出检测委托书")
@GetMapping("/export")
public RestResult<Boolean> exportEntrust(@RequestParam("ids") List<Long> ids) {
return success(entrustService.exportEntrust(ids,response));
}
/* 打印检测委托书完成后的ajax调用,先使用未登录方式 */
@ApiOperation("修改检测委托书打印状态")
@Login(action = Action.Skip)
@PostMapping("/update_print_status")
public RestResult<Boolean> updatePrintStatus(@RequestParam("ids") List<Long> ids) {
return success(entrustService.updatePrintStatus(ids));
}
} }
...@@ -81,7 +81,7 @@ public class EntrustSampleBackupController extends ServiceController { ...@@ -81,7 +81,7 @@ public class EntrustSampleBackupController extends ServiceController {
public RestResult<Page<EntrustSampleBackupVO>> getPageManage(EntrustSampleBackupVO entrustSampleBackup) { public RestResult<Page<EntrustSampleBackupVO>> getPageManage(EntrustSampleBackupVO entrustSampleBackup) {
entrustSampleBackup.setStatus(EntrustSampleBackupStatusEnum.MANAGE_ING); entrustSampleBackup.setStatus(EntrustSampleBackupStatusEnum.MANAGE_ING);
entrustSampleBackup.setType("YP"); entrustSampleBackup.setType("YP");
return success(entrustSampleBackupService.pageVO(getPage(), entrustSampleBackup)); return success(entrustSampleBackupService.pageManage(getPage(), entrustSampleBackup));
} }
@ApiOperation("样品管理历史分页列表") @ApiOperation("样品管理历史分页列表")
......
...@@ -100,6 +100,58 @@ public class EntrustSampleController extends ServiceController { ...@@ -100,6 +100,58 @@ public class EntrustSampleController extends ServiceController {
return success(entrustSampleService.pageVOForMake(getPage(), entrustSample)); return success(entrustSampleService.pageVOForMake(getPage(), entrustSample));
} }
@ApiOperation("报告审核样品分页列表")
@ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class),
@ApiImplicitParam(name = RestConstants.PAGE_ROWS, value = "每页条数", required = true, paramType = "query", dataTypeClass = Integer.class),
@ApiImplicitParam(name = RestConstants.PAGE_SIDX, value = "排序字段", paramType = "query", dataTypeClass = String.class),
@ApiImplicitParam(name = RestConstants.PAGE_SORD, value = "排序方式", paramType = "query", dataTypeClass = String.class),
})
@PostMapping("/page_report_check")
public RestResult<Page<EntrustSample>> getPageReportCheck(EntrustSample entrustSample) {
entrustSample.setStatus(EntrustSampleStatusEnum.REPORT_CHECK);
return success(entrustSampleService.page(getPage(), entrustSample));
}
@ApiOperation("报告签发样品分页列表")
@ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class),
@ApiImplicitParam(name = RestConstants.PAGE_ROWS, value = "每页条数", required = true, paramType = "query", dataTypeClass = Integer.class),
@ApiImplicitParam(name = RestConstants.PAGE_SIDX, value = "排序字段", paramType = "query", dataTypeClass = String.class),
@ApiImplicitParam(name = RestConstants.PAGE_SORD, value = "排序方式", paramType = "query", dataTypeClass = String.class),
})
@PostMapping("/page_report_issue")
public RestResult<Page<EntrustSample>> getPageReportIssue(EntrustSample entrustSample) {
entrustSample.setStatus(EntrustSampleStatusEnum.REPORT_ISSUE);
return success(entrustSampleService.page(getPage(), entrustSample));
}
@ApiOperation("报告批准样品分页列表")
@ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class),
@ApiImplicitParam(name = RestConstants.PAGE_ROWS, value = "每页条数", required = true, paramType = "query", dataTypeClass = Integer.class),
@ApiImplicitParam(name = RestConstants.PAGE_SIDX, value = "排序字段", paramType = "query", dataTypeClass = String.class),
@ApiImplicitParam(name = RestConstants.PAGE_SORD, value = "排序方式", paramType = "query", dataTypeClass = String.class),
})
@PostMapping("/page_report_allow")
public RestResult<Page<EntrustSample>> getPageReportAllow(EntrustSample entrustSample) {
entrustSample.setStatus(EntrustSampleStatusEnum.REPORT_ALLOW);
return success(entrustSampleService.page(getPage(), entrustSample));
}
@ApiOperation("报告发放样品分页列表")
@ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class),
@ApiImplicitParam(name = RestConstants.PAGE_ROWS, value = "每页条数", required = true, paramType = "query", dataTypeClass = Integer.class),
@ApiImplicitParam(name = RestConstants.PAGE_SIDX, value = "排序字段", paramType = "query", dataTypeClass = String.class),
@ApiImplicitParam(name = RestConstants.PAGE_SORD, value = "排序方式", paramType = "query", dataTypeClass = String.class),
})
@PostMapping("/page_report_send")
public RestResult<Page<EntrustSample>> getPageReportSend(EntrustSample entrustSample) {
entrustSample.setStatus(EntrustSampleStatusEnum.REPORT_SEND);
return success(entrustSampleService.page(getPage(), entrustSample));
}
@ApiOperation("查询 id 信息") @ApiOperation("查询 id 信息")
@ApiImplicitParams({ @ApiImplicitParams({
......
...@@ -20,4 +20,6 @@ import java.util.List; ...@@ -20,4 +20,6 @@ import java.util.List;
public interface EntrustSampleBackupMapper extends BatchMapper<EntrustSampleBackup> { public interface EntrustSampleBackupMapper extends BatchMapper<EntrustSampleBackup> {
List<EntrustSampleBackupVO> selectVOList(RowBounds rowBounds, @Param("vo") EntrustSampleBackupVO entrustSampleBackup); List<EntrustSampleBackupVO> selectVOList(RowBounds rowBounds, @Param("vo") EntrustSampleBackupVO entrustSampleBackup);
List<EntrustSampleBackupVO> selectManageList(Page<EntrustSampleBackupVO> page, @Param("vo") EntrustSampleBackupVO entrustSampleBackup);
} }
...@@ -29,4 +29,7 @@ public interface IEntrustAnnexService extends IBaseService<EntrustAnnex> { ...@@ -29,4 +29,7 @@ public interface IEntrustAnnexService extends IBaseService<EntrustAnnex> {
void view(HttpServletResponse response, String objectKey); void view(HttpServletResponse response, String objectKey);
boolean uploadBath(MultipartHttpServletRequest httpServletRequest, Long entrustId, Account account); boolean uploadBath(MultipartHttpServletRequest httpServletRequest, Long entrustId, Account account);
/* 获取最近时间的附件的key */
String getLastKey(String businessId);
} }
...@@ -25,4 +25,6 @@ public interface IEntrustSampleBackupService extends IBaseService<EntrustSampleB ...@@ -25,4 +25,6 @@ public interface IEntrustSampleBackupService extends IBaseService<EntrustSampleB
Page<EntrustSampleBackupVO> pageVO(Page<EntrustSampleBackupVO> page, EntrustSampleBackupVO entrustSampleBackup); Page<EntrustSampleBackupVO> pageVO(Page<EntrustSampleBackupVO> page, EntrustSampleBackupVO entrustSampleBackup);
boolean submitToHandle(Long[] ids, Account account); boolean submitToHandle(Long[] ids, Account account);
Page<EntrustSampleBackupVO> pageManage(Page<EntrustSampleBackupVO> page, EntrustSampleBackupVO entrustSampleBackup);
} }
...@@ -7,6 +7,7 @@ import com.patzn.cloud.service.hmhj.dto.EntrustDTO; ...@@ -7,6 +7,7 @@ import com.patzn.cloud.service.hmhj.dto.EntrustDTO;
import com.patzn.cloud.service.hmhj.entity.Entrust; import com.patzn.cloud.service.hmhj.entity.Entrust;
import com.patzn.cloud.service.hmhj.vo.EntrustVO; import com.patzn.cloud.service.hmhj.vo.EntrustVO;
import javax.servlet.http.HttpServletResponse;
import java.util.List; import java.util.List;
/** /**
...@@ -83,5 +84,16 @@ public interface IEntrustService extends IBaseService<Entrust> { ...@@ -83,5 +84,16 @@ public interface IEntrustService extends IBaseService<Entrust> {
boolean backFromReceive(Long[] ids, Account account, String reason); boolean backFromReceive(Long[] ids, Account account, String reason);
boolean submitUpdateApply(Long id, String reason, Account account); boolean submitChangeApply(Long id, Long approveId, String reason, Account account);
Page<Entrust> pageChangeApproveHis(Page<Entrust> page, Entrust entrust);
boolean approveSubmitApply(Long id, Account account);
boolean rejectSubmitApply(Long id,String reason, Account account);
Boolean exportEntrust(List<Long> ids, HttpServletResponse response);
/* 修改检测委托书的打印状态 */
Boolean updatePrintStatus(List<Long> ids);
} }
package com.patzn.cloud.service.lims.hmhj.service.impl; package com.patzn.cloud.service.lims.hmhj.service.impl;
import com.baomidou.mybatisplus.mapper.Condition;
import com.baomidou.mybatisplus.toolkit.CollectionUtils;
import com.patzn.cloud.commons.api.RestAssert; import com.patzn.cloud.commons.api.RestAssert;
import com.patzn.cloud.commons.controller.Account; import com.patzn.cloud.commons.controller.Account;
import com.patzn.cloud.oss.starter.OssClient; import com.patzn.cloud.oss.starter.OssClient;
...@@ -21,6 +23,7 @@ import org.springframework.web.multipart.MultipartHttpServletRequest; ...@@ -21,6 +23,7 @@ import org.springframework.web.multipart.MultipartHttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
...@@ -103,4 +106,23 @@ public class EntrustAnnexServiceImpl extends BaseServiceImpl<EntrustAnnexMapper, ...@@ -103,4 +106,23 @@ public class EntrustAnnexServiceImpl extends BaseServiceImpl<EntrustAnnexMapper,
return true; return true;
} }
@Override
public String getLastKey(String businessId) {
if (StringUtils.isNotBlank(businessId)) {
List<EntrustAnnex> entrustAnnexes = new ArrayList<>();
String[] entrustIdAndType = businessId.split("#");
if (entrustIdAndType.length == 2) {
entrustAnnexes = this.list(Condition.create().eq("entrust_id", Long.parseLong(entrustIdAndType[0]))
.eq("type",entrustIdAndType[1].equals("word") ? "docx" : "")
/* 这个remark写死,保证取到是生成的检测委托书,不是用户自己上传的 */
.eq("remark","打印检测委托书时上传生成的文件")
.orderBy("ctime", false));
if (CollectionUtils.isNotEmpty(entrustAnnexes)) {
return entrustAnnexes.get(0).getObjectKey();
}
}
}
return null;
}
} }
...@@ -64,4 +64,9 @@ public class EntrustSampleBackupServiceImpl extends BaseServiceImpl<EntrustSampl ...@@ -64,4 +64,9 @@ public class EntrustSampleBackupServiceImpl extends BaseServiceImpl<EntrustSampl
return super.update(backup,Condition.create().in("id",ids)); return super.update(backup,Condition.create().in("id",ids));
} }
@Override
public Page<EntrustSampleBackupVO> pageManage(Page<EntrustSampleBackupVO> page, EntrustSampleBackupVO entrustSampleBackup) {
return page.setRecords(baseMapper.selectManageList(page,entrustSampleBackup));
}
} }
...@@ -97,7 +97,6 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe ...@@ -97,7 +97,6 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
@Override @Override
public Page<EntrustSample> page(Page<EntrustSample> page, EntrustSample entrustSample) { public Page<EntrustSample> page(Page<EntrustSample> page, EntrustSample entrustSample) {
Wrapper wrapper = new EntityWrapper<>(entrustSample); Wrapper wrapper = new EntityWrapper<>(entrustSample);
return this.page(page, wrapper); return this.page(page, wrapper);
} }
......
...@@ -5,10 +5,14 @@ import com.baomidou.mybatisplus.toolkit.IdWorker; ...@@ -5,10 +5,14 @@ import com.baomidou.mybatisplus.toolkit.IdWorker;
import com.patzn.cloud.commons.api.RestAssert; import com.patzn.cloud.commons.api.RestAssert;
import com.patzn.cloud.commons.controller.Account; import com.patzn.cloud.commons.controller.Account;
import com.patzn.cloud.commons.controller.LoginHelper; import com.patzn.cloud.commons.controller.LoginHelper;
import com.patzn.cloud.commons.toolkit.StringHandleUtils; import com.patzn.cloud.commons.toolkit.*;
import com.patzn.cloud.feign.base.client.SysOrgClient; import com.patzn.cloud.feign.base.client.SysOrgClient;
import com.patzn.cloud.feign.base.client.SysUserClient;
import com.patzn.cloud.feign.lims.hmhj.client.LmsChemicalCategoryClient; import com.patzn.cloud.feign.lims.hmhj.client.LmsChemicalCategoryClient;
import com.patzn.cloud.oss.starter.OssClient;
import com.patzn.cloud.oss.starter.OssFileResult;
import com.patzn.cloud.service.base.entity.SysOrg; import com.patzn.cloud.service.base.entity.SysOrg;
import com.patzn.cloud.service.base.entity.SysUser;
import com.patzn.cloud.service.hmhj.dto.EntrustDTO; import com.patzn.cloud.service.hmhj.dto.EntrustDTO;
import com.patzn.cloud.service.hmhj.dto.EntrustSampleDTO; import com.patzn.cloud.service.hmhj.dto.EntrustSampleDTO;
import com.patzn.cloud.service.hmhj.entity.*; import com.patzn.cloud.service.hmhj.entity.*;
...@@ -22,6 +26,8 @@ import com.patzn.cloud.service.lims.hmhj.common.EntrustFlowUtils; ...@@ -22,6 +26,8 @@ import com.patzn.cloud.service.lims.hmhj.common.EntrustFlowUtils;
import com.patzn.cloud.service.lims.hmhj.mapper.EntrustMapper; import com.patzn.cloud.service.lims.hmhj.mapper.EntrustMapper;
import com.patzn.cloud.service.lims.hmhj.service.*; import com.patzn.cloud.service.lims.hmhj.service.*;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl; import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
import com.patzn.poibox.utils.TableUtils;
import com.patzn.poibox.xwpf.XWPFTemplate;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
...@@ -32,6 +38,8 @@ import com.baomidou.mybatisplus.mapper.Wrapper; ...@@ -32,6 +38,8 @@ import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.plugins.Page;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.*; import java.util.*;
import java.util.concurrent.Executor; import java.util.concurrent.Executor;
...@@ -81,8 +89,17 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust> ...@@ -81,8 +89,17 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
private Executor executor1; private Executor executor1;
@Autowired @Autowired
private SysUserClient sysUserClient;
@Autowired
private LmsChemicalCategoryClient lmsChemicalCategoryClient; private LmsChemicalCategoryClient lmsChemicalCategoryClient;
@Autowired
private IEntrustAnnexService entrustAnnexService;
@Autowired
private OssClient ossClient;
@Override @Override
public Page<Entrust> page(Page<Entrust> page, Entrust entrust) { public Page<Entrust> page(Page<Entrust> page, Entrust entrust) {
...@@ -239,7 +256,7 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust> ...@@ -239,7 +256,7 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
} }
for (EntrustSampleItem sampleItem : experiments) { for (EntrustSampleItem sampleItem : experiments) {
if (null != sampleItem.getPrice()){ if (null != sampleItem.getPrice()) {
totalFee = totalFee.add(sampleItem.getPrice()); totalFee = totalFee.add(sampleItem.getPrice());
} }
...@@ -249,7 +266,7 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust> ...@@ -249,7 +266,7 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
} }
//计算费用 //计算费用
entrust.setTotalFee(totalFee); entrust.setTotalFee(totalFee);
if (saveEntrust(entrust)){ if (saveEntrust(entrust)) {
if (CollectionUtils.isNotEmpty(saveSampleList)) { if (CollectionUtils.isNotEmpty(saveSampleList)) {
entrustSampleService.saveBatch(saveSampleList); entrustSampleService.saveBatch(saveSampleList);
} }
...@@ -449,18 +466,18 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust> ...@@ -449,18 +466,18 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
} }
public void calTotalFee(Long id){ public void calTotalFee(Long id) {
//计算委托费用 //计算委托费用
List<EntrustSample> entrustSamples = entrustSampleService.list(Condition.create().setSqlSelect("id").eq("entrust_id",id)); List<EntrustSample> entrustSamples = entrustSampleService.list(Condition.create().setSqlSelect("id").eq("entrust_id", id));
if (CollectionUtils.isEmpty(entrustSamples)){ if (CollectionUtils.isEmpty(entrustSamples)) {
return ; return;
} }
List<Long> sampleIdList = entrustSamples.stream().map(e->{ List<Long> sampleIdList = entrustSamples.stream().map(e -> {
return e.getId(); return e.getId();
}).collect(Collectors.toList()); }).collect(Collectors.toList());
List<EntrustSampleItem> itemList = entrustSampleItemService.list(Condition.create().in("entrust_sample_id",sampleIdList).isNotNull("price")); List<EntrustSampleItem> itemList = entrustSampleItemService.list(Condition.create().in("entrust_sample_id", sampleIdList).isNotNull("price"));
BigDecimal totalFee=BigDecimal.ZERO; BigDecimal totalFee = BigDecimal.ZERO;
for (EntrustSampleItem item : itemList) { for (EntrustSampleItem item : itemList) {
totalFee = totalFee.add(item.getPrice()); totalFee = totalFee.add(item.getPrice());
...@@ -532,7 +549,8 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust> ...@@ -532,7 +549,8 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
@Override @Override
public Page<EntrustVO> pageEntrustSampleReceive(Page<EntrustVO> page, EntrustVO entrust) { public Page<EntrustVO> pageEntrustSampleReceive(Page<EntrustVO> page, EntrustVO entrust) {
List<EntrustSamplePrepare> prepareList = entrustSamplePrepareService.list(Condition.create().setSqlSelect("entrust_sample_id").eq("status", EntrustSamplePrepareStatusEnum.RECEIVE)); List<EntrustSamplePrepare> prepareList = entrustSamplePrepareService.list(Condition.create().setSqlSelect("entrust_sample_id")
.eq("status", EntrustSamplePrepareStatusEnum.RECEIVE).isNotNull("entrust_sample_id"));
if (CollectionUtils.isEmpty(prepareList)) { if (CollectionUtils.isEmpty(prepareList)) {
return page; return page;
...@@ -1154,10 +1172,65 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust> ...@@ -1154,10 +1172,65 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
return true; return true;
} }
@Transactional(rollbackFor = Exception.class)
@Override @Override
public boolean submitUpdateApply(Long id, String reason, Account account) { public boolean submitChangeApply(Long id, Long approveId, String reason, Account account) {
RestAssert.fail(null == id || 0 == id.longValue(), "请选择要申请修改的委托"); RestAssert.fail(null == id || 0 == id.longValue(), "请选择要申请修改的委托");
RestAssert.fail(null == approveId || 0 == approveId.longValue(), "请选择申请修改委托的审批人");
Entrust entrust = getById(id);
entrust.setApproveStatus(EntrustApproveStatusEnum.APPROVE);
entrust.setProposer(account.getUserName());
entrust.setProposerId(account.getUserId());
entrust.setApproverId(approveId);
SysUser sysUser = sysUserClient.get(approveId).getData();
entrust.setApprover(null == sysUser ? "" : sysUser.getUsername());
updateById(entrust);
// 添加操作记录
entrustRecordService.record(new Long[]{id}, entrust.getStatus().getDisplay(), entrust.getStatus().getDisplay(), 0, account, reason);
return true;
}
@Override
public Page<Entrust> pageChangeApproveHis(Page<Entrust> page, Entrust entrust) {
String code = entrust.getCode();
String client = entrust.getClient();
entrust.setCode(null).setClient(null);
Wrapper wrapper = new EntityWrapper<>(entrust);
if (StringUtils.isNotBlank(code)) {
wrapper.like("code", code);
}
if (StringUtils.isNotBlank(client)) {
wrapper.like("client", client);
}
wrapper.orderBy("code", false);
// 查询的数据为审批时间不为空,审批状态为初始状态,说明已经完成一轮审批操作
wrapper.isNotNull("approve_time").eq("approve_status", EntrustApproveStatusEnum.INIT.getValue());
return this.page(page, wrapper);
}
@Transactional(rollbackFor = Exception.class)
@Override
public boolean approveSubmitApply(Long id, Account account) {
RestAssert.fail(null == id || 0 == id.longValue(), "请选择要审批申请修改的委托");
Entrust entrust = getById(id);
entrust.setApproveStatus(EntrustApproveStatusEnum.END);
entrust.setApproveTime(new Date());
updateById(entrust);
// 添加操作记录
entrustRecordService.record(new Long[]{id}, entrust.getStatus().getDisplay(), entrust.getStatus().getDisplay(), 0, account, "审批人通过修改审批");
return true;
}
@Transactional(rollbackFor = Exception.class)
@Override
public boolean rejectSubmitApply(Long id, String reason, Account account) {
RestAssert.fail(null == id || 0 == id.longValue(), "请选择要驳回申请修改的委托");
Entrust entrust = getById(id); Entrust entrust = getById(id);
entrust.setApproveStatus(EntrustApproveStatusEnum.BACK_APPROVE);
entrust.setApproveTime(new Date());
updateById(entrust);
// 添加操作记录
entrustRecordService.record(new Long[]{id}, entrust.getStatus().getDisplay(), entrust.getStatus().getDisplay(), 0, account, "审批人驳回修改审批");
return true; return true;
} }
...@@ -1165,4 +1238,145 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust> ...@@ -1165,4 +1238,145 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
List<EntrustSampleDTO> sampleDTOList = baseMapper.listByContractId(entrustId); List<EntrustSampleDTO> sampleDTOList = baseMapper.listByContractId(entrustId);
return sampleDTOList.stream().filter(t -> (null == t.getType() ? 0 : t.getType().intValue()) == type).collect(Collectors.toList()); return sampleDTOList.stream().filter(t -> (null == t.getType() ? 0 : t.getType().intValue()) == type).collect(Collectors.toList());
} }
/* 导出检测委托书 */
@Override
public Boolean exportEntrust(List<Long> ids, HttpServletResponse response) {
RestAssert.fail(CollectionUtils.isEmpty(ids),"请选择至少一个委托");
ByteArrayOutputStream baos = getEntrustBaos();
List<File> files = null;
try {
files = getFiles(ids, baos);
// 不需要下载,可能需要先留着
// if (CollectionUtils.isNotEmpty(files)) {
// if (files.size() == 1) {
// FileUtils.download(new FileInputStream(files.get(0)),files.get(0).getName(),response);
// }
// else {
// FileUtils.downLoadFiles(files,"检测委托书.zip",response);
// }
// }
if (CollectionUtils.isNotEmpty(files)) {
return true;
}
} catch (IOException e) {
RestAssert.fail("检测委托书导出异常");
} finally {
FileUtils.deleteFiles(files);
}
return false;
}
/* 修改检测委托书的状态 */
@Override
public Boolean updatePrintStatus(List<Long> ids) {
if (CollectionUtils.isNotEmpty(ids)) {
List<Entrust> entrusts = ids.stream().map(id -> {
Entrust entrust = new Entrust();
entrust.setId(id);
entrust.setPrintStatus(1);
return entrust;
}).collect(Collectors.toList());
/* 删除上传的文件 */
List<EntrustAnnex> entrustAnnex = entrustAnnexService.list(Condition.create().in("entrust_id", ids));
ossClient.deleteObjects(entrustAnnex.stream().map(ea -> ea.getObjectKey()).collect(Collectors.toList()));
return this.updateBatchById(entrusts);
}
return true;
}
private ByteArrayOutputStream getEntrustBaos() {
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("\\templates.\\word.\\entrust.\\EntrustExportTemplate.docx");
RestAssert.fail(null == inputStream,"委托检测书模板获取失败");
byte[] buffer = new byte[1024];
int len;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
try {
while ((len = inputStream.read(buffer)) != -1) {
baos.write(buffer,0,len);
}
} catch (IOException e) {
logger.error("读取inputStream异常:{}",e);
} finally {
IoUtils.close(inputStream);
}
return baos;
}
private List<File> getFiles(List<Long> ids, ByteArrayOutputStream baos) throws IOException {
String gangCode = "/";
ArrayList<File> files = new ArrayList<>(ids.size());
String filePathPrefix = System.getProperty("java.io.tmpdir") + File.separator;
Map<String, Object> dataMap = new HashMap<>();
List<Entrust> entrustList = this.list(Condition.create().in("id", ids));
List<EntrustSample> entrustSamples = entrustSampleService.list(Condition.create().in("entrust_id", ids));
Set<Long> sampleIds = entrustSamples.stream().map(sample -> sample.getId()).collect(Collectors.toSet());
List<EntrustSampleItem> items = entrustSampleItemService.list(Condition.create().in("entrust_sample_id", sampleIds));
/*每个委托一个文件*/
for (Entrust entrust : entrustList) {
/* 样品 */
List<EntrustSample> samples = entrustSamples.stream().
filter(s -> entrust.getId().equals(s.getEntrustId())).
collect(Collectors.toList());
/* 该样品对应的项目 */
List<EntrustSampleItem> currItems = new ArrayList<>();
if (CollectionUtils.isNotEmpty(samples)) {
/* 该样品对应的项目 */
currItems = items.stream()
.filter(i -> samples.get(0).getId().equals(i.getEntrustSampleId()))
.collect(Collectors.toList());
dataMap.put("sample",samples.get(0));
} else {
dataMap.put("sample",new EntrustSample());
}
/* 委托*/
dataMap.put("entrust",entrust);
/* 项目名 */
Set<String> itemNames = currItems.stream().filter(i -> StringUtils.isNotEmpty(i.getName()))
.map(i -> i.getName()).collect(Collectors.toSet());
/* 执行标准 */
Set<String> standards = currItems.stream()
.filter(i -> StringUtils.isNotEmpty(i.getStandard()))
.map(i -> i.getStandard()).collect(Collectors.toSet());
dataMap.put("itemNames", ListToStringUtils.listToString(itemNames,"、",gangCode));
dataMap.put("standards",ListToStringUtils.listToString(standards,"、",gangCode));
/* 委托时间和样品接收时间 */
dataMap.put("entrustTimeStr", StringHandleUtils.parse(DateUtils.toYearMonthDay(entrust.getEntrustTime()),gangCode));
dataMap.put("entrustTimeStrCn", StringHandleUtils.parse(DateUtils.toYearMonthDayChinese(entrust.getEntrustTime()),gangCode));
dataMap.put("entrustTimeStrPoint", StringHandleUtils.parse(DateUtils.toYearMonthDayPoint(entrust.getEntrustTime()),gangCode));
dataMap.put("receiveTimeStr",StringHandleUtils.parse(DateUtils.toYearMonthDay(entrust.getReceiveTime()),gangCode));
dataMap.put("receiveTimeStrCn",StringHandleUtils.parse(DateUtils.toYearMonthDayChinese(entrust.getReceiveTime()),gangCode));
dataMap.put("receiveTimeStrPoint",StringHandleUtils.parse(DateUtils.toYearMonthDayPoint(entrust.getReceiveTime()),gangCode));
XWPFTemplate template = XWPFTemplate.compile(new ByteArrayInputStream(baos.toByteArray())).setDefaultValue("/").render(dataMap);
String filePath = filePathPrefix + entrust.getCode() + "检测委托书.docx";
File file = new File(filePath);
if (!file.getParentFile().exists()) {
file.getParentFile().mkdirs();
}
FileOutputStream fos = new FileOutputStream(file);
template.write(fos);
/* 上传文件 */
OssFileResult result = ossClient.upload(file);
EntrustAnnex annex = new EntrustAnnex();
annex.setEntrustId(entrust.getId());
annex.setFileName(result.getName());
annex.setObjectKey(result.getObjectKey());
annex.setType(result.getType());
annex.setRemark("打印检测委托书时上传生成的文件");
entrustAnnexService.save(annex);
files.add(file);
IoUtils.close(fos,template.getXWPFDocument());
}
return files;
}
} }
...@@ -37,7 +37,16 @@ spring: ...@@ -37,7 +37,16 @@ spring:
equip-check-msg: dev.topic.equip.check.msg equip-check-msg: dev.topic.equip.check.msg
report-make-msg: dev.topic.report.make.msg report-make-msg: dev.topic.report.make.msg
hmhj-work-msg: dev.topic.hmhj.work.msg hmhj-work-msg: dev.topic.hmhj.work.msg
# Mongodb GridFS
data:
mongodb:
uri: mongodb://limsAdmin:devpt12!mg@cn-zz-bgp-4.natfrp.cloud:18563/lims
grid-fs-database: lims
# Mongodb GridFS 存储
oss:
grid-fs: true
bucket-name: base
### jobs ### jobs
jobs: jobs:
...@@ -45,11 +54,11 @@ jobs: ...@@ -45,11 +54,11 @@ jobs:
# 对象存储配置 # 对象存储配置
oss: #oss:
bucket-name: pt-web-sys # bucket-name: pt-web-sys
aliyun: # aliyun:
endpoint: http://oss.test.patzn.com # endpoint: http://oss.test.patzn.com
folder: dev/hmhj # folder: dev/hmhj
#libreOffice 安装信息 #libreOffice 安装信息
libreOffice: libreOffice:
url: C:/Program Files/LibreOffice url: C:/Program Files/LibreOffice
......
...@@ -47,4 +47,51 @@ ...@@ -47,4 +47,51 @@
</where> </where>
order by b.ctime desc order by b.ctime desc
</select> </select>
<select id="selectManageList" resultType="com.patzn.cloud.service.hmhj.vo.EntrustSampleBackupVO">
SELECT
b.ID,
b.receive_time,
b.storage_location,
b.storage_method,
b.storage_period,
b.sample_id,
b.handler,
b.handle_time,
s.NAME AS "sampleName",
s.code AS "sampleCode" ,
e.client ,
e.code AS "entrustCode",
(case when e.sample_handle_advise = '检测完毕退还' and s.status &gt;20 then 1 else 0 end) "weights"
FROM
entrust_sample_backup b
JOIN entrust_sample s ON b.sample_id = s.ID
JOIN entrust e ON s.entrust_id = e.ID
<where>
AND b.deleted = 0 AND s.deleted = 0 AND e.deleted = 0
<if test="null!=vo.sampleCode">
AND s.code LIKE CONCAT('%',#{vo.sampleCode},'%')
</if>
<if test="null!=vo.status">
AND b.status =#{vo.status}
</if>
<if test="null!=vo.notStatus">
AND b.status !=#{vo.notStatus}
</if>
<if test="null!=vo.sampleName">
AND s.name LIKE CONCAT('%',#{vo.sampleName},'%')
</if>
<if test="null!=vo.client">
AND e.client LIKE CONCAT('%',#{vo.client},'%')
</if>
<if test="null!=vo.entrustCode">
AND e.code LIKE CONCAT('%',#{vo.entrustCode},'%')
</if>
</where>
order by (case when e.sample_handle_advise = '检测完毕退还' and s.status &gt;20 then 1 else 0 end) desc, b.ctime desc
</select>
</mapper> </mapper>
CREATE TABLE "public"."entrust_sample_record" ( CREATE TABLE "public"."entrust_sample_record" (
...@@ -42,7 +42,6 @@ ALTER TABLE "public"."entrust" ...@@ -42,7 +42,6 @@ ALTER TABLE "public"."entrust"
ADD COLUMN "live_witness" int2, ADD COLUMN "live_witness" int2,
ADD COLUMN "sample_size" varchar(64) COLLATE "pg_catalog"."default", ADD COLUMN "sample_size" varchar(64) COLLATE "pg_catalog"."default",
ADD COLUMN "priority" varchar(32) COLLATE "pg_catalog"."default", ADD COLUMN "priority" varchar(32) COLLATE "pg_catalog"."default",
ADD COLUMN "test_fee" numeric(10,2) default 0.00,
ADD COLUMN "test_time_s" timestamp(6), ADD COLUMN "test_time_s" timestamp(6),
ADD COLUMN "test_time_e" timestamp(6); ADD COLUMN "test_time_e" timestamp(6);
...@@ -50,7 +49,6 @@ COMMENT ON COLUMN "public"."entrust"."expect_send_time" IS '客户期望报告 ...@@ -50,7 +49,6 @@ COMMENT ON COLUMN "public"."entrust"."expect_send_time" IS '客户期望报告
COMMENT ON COLUMN "public"."entrust"."live_witness" IS '现场见证【0:否,1:是】'; COMMENT ON COLUMN "public"."entrust"."live_witness" IS '现场见证【0:否,1:是】';
COMMENT ON COLUMN "public"."entrust"."sample_size" IS '样品尺寸'; COMMENT ON COLUMN "public"."entrust"."sample_size" IS '样品尺寸';
COMMENT ON COLUMN "public"."entrust"."priority" IS '优先级'; COMMENT ON COLUMN "public"."entrust"."priority" IS '优先级';
COMMENT ON COLUMN "public"."entrust"."test_fee" IS '检测费用';
COMMENT ON COLUMN "public"."entrust"."test_time_s" IS '检测开始日期'; COMMENT ON COLUMN "public"."entrust"."test_time_s" IS '检测开始日期';
COMMENT ON COLUMN "public"."entrust"."test_time_e" IS '检测结束日期'; COMMENT ON COLUMN "public"."entrust"."test_time_e" IS '检测结束日期';
-- 新增样品字段 -- -- 新增样品字段 --
...@@ -64,3 +62,8 @@ ALTER TABLE "public"."entrust_sample_item" ...@@ -64,3 +62,8 @@ ALTER TABLE "public"."entrust_sample_item"
ADD COLUMN "price" numeric(10,2) default 0.00; ADD COLUMN "price" numeric(10,2) default 0.00;
COMMENT ON COLUMN "public"."entrust_sample_item"."price" IS '单价'; COMMENT ON COLUMN "public"."entrust_sample_item"."price" IS '单价';
ALTER TABLE "public"."material_item"
ADD COLUMN "price" numeric(10,2) default 0.00;
COMMENT ON COLUMN "public"."material_item"."price" IS '单价';
-- 新增委托字段 --
-- 新增委托字段 --
ALTER TABLE "public"."entrust"
ADD COLUMN "proposer_id" int8,
ADD COLUMN "approver_id" int8,
ADD COLUMN "proposer" varchar(64) COLLATE "pg_catalog"."default",
ADD COLUMN "approver" varchar(64) COLLATE "pg_catalog"."default",
-- ADD COLUMN "total_fee" numeric(10,2),
ADD COLUMN "approve_time" timestamp(6);
COMMENT ON COLUMN "public"."entrust"."proposer_id" IS '修改申请人ID';
COMMENT ON COLUMN "public"."entrust"."approver_id" IS '修改审批人ID';
COMMENT ON COLUMN "public"."entrust"."proposer" IS '修改申请人';
COMMENT ON COLUMN "public"."entrust"."approver" IS '修改审批人';
COMMENT ON COLUMN "public"."entrust"."approve_time" IS '审批日期';
-- COMMENT ON COLUMN "public"."entrust"."total_fee" IS '检测费用';
ALTER TABLE "public"."entrust"
ADD COLUMN "proposer_id" int8,
ADD COLUMN "approver_id" int8,
ADD COLUMN "proposer" varchar(64) COLLATE "pg_catalog"."default",
ADD COLUMN "approver" varchar(64) COLLATE "pg_catalog"."default",
-- ADD COLUMN "total_fee" numeric(10,2),
ADD COLUMN "approve_time" timestamp(6);
COMMENT ON COLUMN "public"."entrust"."proposer_id" IS '修改申请人ID';
COMMENT ON COLUMN "public"."entrust"."approver_id" IS '修改审批人ID';
COMMENT ON COLUMN "public"."entrust"."proposer" IS '修改申请人';
COMMENT ON COLUMN "public"."entrust"."approver" IS '修改审批人';
COMMENT ON COLUMN "public"."entrust"."approve_time" IS '审批日期';
-- COMMENT ON COLUMN "public"."entrust"."total_fee" IS '检测费用';
ALTER TABLE "public"."qualification"
ADD COLUMN "price" numeric(10,2) default 0.00;
COMMENT ON COLUMN "public"."qualification"."price" IS '单价';
--ghx
--ghx
ALTER TABLE "public"."entrust"
DROP COLUMN "print_status",
ADD COLUMN "print_status" int2 DEFAULT 0;
COMMENT ON COLUMN "public"."entrust"."print_status" IS '是否打印,0未打印,1已打印';
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