Commit 56276086 by lijingjing

修改相关优化项目;

parent 4bc79874
......@@ -168,6 +168,32 @@ public class EntrustController extends ServiceController {
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("委托样品待制备分页列表")
@ApiImplicitParams({
......@@ -333,9 +359,22 @@ public class EntrustController extends ServiceController {
}
@ApiOperation("提交修改审批申请")
@PostMapping("/submit_update_apply")
public RestResult<Boolean> submitUpdateApply(@RequestParam("id") Long id, String reason) {
return success(entrustService.submitUpdateApply(id, reason, getAccount()));
@PostMapping("/submit_change_apply")
public RestResult<Boolean> submitChangeApply(@RequestParam("id") Long id, @RequestParam("approveId") Long approveId,
@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("复制委托信息")
......
......@@ -81,7 +81,7 @@ public class EntrustSampleBackupController extends ServiceController {
public RestResult<Page<EntrustSampleBackupVO>> getPageManage(EntrustSampleBackupVO entrustSampleBackup) {
entrustSampleBackup.setStatus(EntrustSampleBackupStatusEnum.MANAGE_ING);
entrustSampleBackup.setType("YP");
return success(entrustSampleBackupService.pageVO(getPage(), entrustSampleBackup));
return success(entrustSampleBackupService.pageManage(getPage(), entrustSampleBackup));
}
@ApiOperation("样品管理历史分页列表")
......
......@@ -100,6 +100,58 @@ public class EntrustSampleController extends ServiceController {
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_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 信息")
@ApiImplicitParams({
......
......@@ -20,4 +20,6 @@ import java.util.List;
public interface EntrustSampleBackupMapper extends BatchMapper<EntrustSampleBackup> {
List<EntrustSampleBackupVO> selectVOList(RowBounds rowBounds, @Param("vo") EntrustSampleBackupVO entrustSampleBackup);
List<EntrustSampleBackupVO> selectManageList(Page<EntrustSampleBackupVO> page, @Param("vo") EntrustSampleBackupVO entrustSampleBackup);
}
......@@ -25,4 +25,6 @@ public interface IEntrustSampleBackupService extends IBaseService<EntrustSampleB
Page<EntrustSampleBackupVO> pageVO(Page<EntrustSampleBackupVO> page, EntrustSampleBackupVO entrustSampleBackup);
boolean submitToHandle(Long[] ids, Account account);
Page<EntrustSampleBackupVO> pageManage(Page<EntrustSampleBackupVO> page, EntrustSampleBackupVO entrustSampleBackup);
}
......@@ -83,5 +83,11 @@ public interface IEntrustService extends IBaseService<Entrust> {
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);
}
......@@ -64,4 +64,9 @@ public class EntrustSampleBackupServiceImpl extends BaseServiceImpl<EntrustSampl
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));
}
}
......@@ -100,7 +100,6 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
@Override
public Page<EntrustSample> page(Page<EntrustSample> page, EntrustSample entrustSample) {
Wrapper wrapper = new EntityWrapper<>(entrustSample);
return this.page(page, wrapper);
}
......
......@@ -7,8 +7,10 @@ import com.patzn.cloud.commons.controller.Account;
import com.patzn.cloud.commons.controller.LoginHelper;
import com.patzn.cloud.commons.toolkit.StringHandleUtils;
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.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.EntrustSampleDTO;
import com.patzn.cloud.service.hmhj.entity.*;
......@@ -81,6 +83,9 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
private Executor executor1;
@Autowired
private SysUserClient sysUserClient;
@Autowired
private LmsChemicalCategoryClient lmsChemicalCategoryClient;
......@@ -220,44 +225,44 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
BigDecimal totalFee = BigDecimal.ZERO;
entrust.setId(IdWorker.getId());
if (CollectionUtils.isNotEmpty(sampleDTOList)) {
List<EntrustSample> saveSampleList = new ArrayList<>();
List<EntrustSampleItem> saveEntrustSampleItemList = new ArrayList<>();
for (int x = 0; x < sampleDTOList.size(); x++) {
EntrustSampleDTO sampleDTO = sampleDTOList.get(x);
EntrustSample sample = sampleDTO.convert(EntrustSample.class);
sample.setEntrustId(entrust.getId());
//生成样品编号
initSampleCode(sample);
sample.setId(IdWorker.getId());
sample.setOrderBy(x);
saveSampleList.add(sample);
List<EntrustSampleItem> experiments = sampleDTO.getItemList();
if (CollectionUtils.isEmpty(experiments)) {
continue;
}
for (EntrustSampleItem sampleItem : experiments) {
if (CollectionUtils.isNotEmpty(sampleDTOList)) {
if (null != sampleItem.getPrice()){
totalFee = totalFee.add(sampleItem.getPrice());
}
List<EntrustSample> saveSampleList = new ArrayList<>();
List<EntrustSampleItem> saveEntrustSampleItemList = new ArrayList<>();
for (int x = 0; x < sampleDTOList.size(); x++) {
EntrustSampleDTO sampleDTO = sampleDTOList.get(x);
EntrustSample sample = sampleDTO.convert(EntrustSample.class);
sample.setEntrustId(entrust.getId());
//生成样品编号
initSampleCode(sample);
sample.setId(IdWorker.getId());
sample.setOrderBy(x);
saveSampleList.add(sample);
List<EntrustSampleItem> experiments = sampleDTO.getItemList();
if (CollectionUtils.isEmpty(experiments)) {
continue;
}
for (EntrustSampleItem sampleItem : experiments) {
sampleItem.setEntrustSampleId(sample.getId());
saveEntrustSampleItemList.add(sampleItem);
if (null != sampleItem.getPrice()) {
totalFee = totalFee.add(sampleItem.getPrice());
}
sampleItem.setEntrustSampleId(sample.getId());
saveEntrustSampleItemList.add(sampleItem);
}
//计算费用
entrust.setTotalFee(totalFee);
if (saveEntrust(entrust)){
if (CollectionUtils.isNotEmpty(saveSampleList)) {
entrustSampleService.saveBatch(saveSampleList);
}
if (CollectionUtils.isNotEmpty(saveEntrustSampleItemList)) {
entrustSampleItemService.saveBatch(saveEntrustSampleItemList);
}
}
//计算费用
entrust.setTotalFee(totalFee);
if (saveEntrust(entrust)) {
if (CollectionUtils.isNotEmpty(saveSampleList)) {
entrustSampleService.saveBatch(saveSampleList);
}
if (CollectionUtils.isNotEmpty(saveEntrustSampleItemList)) {
entrustSampleItemService.saveBatch(saveEntrustSampleItemList);
}
}
}
return true;
}
......@@ -449,18 +454,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));
if (CollectionUtils.isEmpty(entrustSamples)){
return ;
List<EntrustSample> entrustSamples = entrustSampleService.list(Condition.create().setSqlSelect("id").eq("entrust_id", id));
if (CollectionUtils.isEmpty(entrustSamples)) {
return;
}
List<Long> sampleIdList = entrustSamples.stream().map(e->{
List<Long> sampleIdList = entrustSamples.stream().map(e -> {
return e.getId();
}).collect(Collectors.toList());
List<EntrustSampleItem> itemList = entrustSampleItemService.list(Condition.create().in("entrust_sample_id",sampleIdList).isNotNull("price"));
BigDecimal totalFee=BigDecimal.ZERO;
List<EntrustSampleItem> itemList = entrustSampleItemService.list(Condition.create().in("entrust_sample_id", sampleIdList).isNotNull("price"));
BigDecimal totalFee = BigDecimal.ZERO;
for (EntrustSampleItem item : itemList) {
totalFee = totalFee.add(item.getPrice());
......@@ -532,7 +537,8 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
@Override
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)) {
return page;
......@@ -1154,10 +1160,65 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
return true;
}
@Transactional(rollbackFor = Exception.class)
@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 == 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.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;
}
......
......@@ -47,4 +47,51 @@
</where>
order by b.ctime desc
</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>
CREATE TABLE "public"."entrust_sample_record" (
CREATE TABLE "public"."entrust_sample_record" (
......@@ -42,7 +42,6 @@ ALTER TABLE "public"."entrust"
ADD COLUMN "live_witness" int2,
ADD COLUMN "sample_size" varchar(64) 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_e" timestamp(6);
......@@ -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"."sample_size" 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_e" IS '检测结束日期';
-- 新增样品字段 --
......@@ -64,3 +62,8 @@ ALTER TABLE "public"."entrust_sample_item"
ADD COLUMN "price" numeric(10,2) default 0.00;
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 '检测费用';
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