Commit 8445c881 by lijingjing

添加优化字段;

parent 49baf927
package com.patzn.cloud.service.lims.common;
import org.apache.commons.beanutils.ConvertUtils;
import org.apache.commons.beanutils.converters.DateConverter;
import org.springframework.beans.BeanWrapper;
import org.springframework.beans.BeanWrapperImpl;
import java.beans.PropertyDescriptor;
import java.util.HashSet;
import java.util.Set;
public class BeanUtils {
public static String[] getNullPropertyNames(Object source) {
final BeanWrapper src = new BeanWrapperImpl(source);
PropertyDescriptor[] pds = src.getPropertyDescriptors();
Set<String> emptyNames = new HashSet<>();
for (PropertyDescriptor pd : pds) {
Object srcValue = src.getPropertyValue(pd.getName());
if (srcValue == null)
emptyNames.add(pd.getName());
}
String[] result = new String[emptyNames.size()];
return emptyNames.toArray(result);
}
public static void copyProperties(Object source, Object target) {
copyProperties(source, target, null);
}
public static void copyProperties(Object source, Object target, Boolean ignoreNull) {
ConvertUtils.register(new DateConverter(null), java.util.Date.class);
String[] ignoreArr = null != ignoreNull && ignoreNull.booleanValue() ? getNullPropertyNames(source) : null;
org.springframework.beans.BeanUtils.copyProperties(source, target, ignoreArr);
}
}
......@@ -306,6 +306,18 @@ public class EntrustController extends ServiceController {
return success(entrustService.backFromCheck(ids, getAccount(), reason));
}
@ApiOperation("委托制备退回")
@PostMapping("/back_from_make")
public RestResult<Boolean> backFromMake(@RequestParam("ids") Long[] ids, @RequestParam("reason") String reason) {
return success(entrustService.backFromMake(ids, getAccount(), reason));
}
@ApiOperation("委托接收退回")
@PostMapping("/back_from_receive")
public RestResult<Boolean> backFromReceive(@RequestParam("ids") Long[] ids, @RequestParam("reason") String reason) {
return success(entrustService.backFromReceive(ids, getAccount(), reason));
}
@ApiOperation("提交至样品制备")
@PostMapping("/submit_to_make")
......
......@@ -120,6 +120,12 @@ public class EntrustSampleController extends ServiceController {
return success(entrustSampleService.updateById(entrustSample));
}
@ApiOperation("根据 id 修改信息")
@PutMapping("/edit_sample")
public RestResult<Boolean> editSample(EntrustSample entrustSample,String source) {
return success(entrustSampleService.updateSample(entrustSample,source,getAccount()));
}
@ApiOperation("添加")
@PostMapping("/")
public RestResult<Boolean> add(EntrustSample entrustSample) {
......
package com.patzn.cloud.service.lims.hmhj.controller;
import com.baomidou.mybatisplus.plugins.Page;
import com.patzn.cloud.commons.api.RestConstants;
import com.patzn.cloud.commons.api.RestResult;
import com.patzn.cloud.commons.controller.ServiceController;
import com.patzn.cloud.service.hmhj.entity.EntrustSampleRecord;
import com.patzn.cloud.service.lims.hmhj.service.IEntrustSampleRecordService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 样品操作日志表 前端控制器
*
* @author meazty
* @since 2021-07-08
*/
@Api(tags = "样品操作日志表")
@RestController
@RequestMapping("/v1/entrust_sample_record")
public class EntrustSampleRecordController extends ServiceController {
@Autowired
private IEntrustSampleRecordService entrustSampleRecordService;
@ApiOperation("分页列表")
@ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class),
@ApiImplicitParam(name = RestConstants.PAGE_ROWS, value = "每页条数", required = true, paramType = "query", dataTypeClass = Integer.class),
})
@PostMapping("/page")
public RestResult<Page<EntrustSampleRecord>> getPage(EntrustSampleRecord entrustSampleRecord) {
return success(entrustSampleRecordService.page(getPage(), entrustSampleRecord));
}
@ApiOperation("查询 id 信息")
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "主键", required = true, paramType = "path", dataTypeClass = Long.class),
})
@GetMapping("/{id}")
public RestResult<EntrustSampleRecord> get(@PathVariable("id") Long id) {
return success(entrustSampleRecordService.getById(id));
}
@ApiOperation("根据 id 修改信息")
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "主键", required = true, paramType = "path", dataTypeClass = Long.class),
})
@PutMapping("/{id}")
public RestResult<Boolean> edit(@PathVariable("id") Long id, EntrustSampleRecord entrustSampleRecord) {
entrustSampleRecord.setId(id);
return success(entrustSampleRecordService.updateById(entrustSampleRecord));
}
@ApiOperation("添加")
@PostMapping("/")
public RestResult<Boolean> add(EntrustSampleRecord entrustSampleRecord) {
return success(entrustSampleRecordService.save(entrustSampleRecord));
}
@ApiOperation("根据 ids 删除")
@ApiImplicitParams({
@ApiImplicitParam(name = "ids", value = "主键列表", required = true, paramType = "query", allowMultiple = true, dataTypeClass = Long.class),
})
@DeleteMapping("/")
public RestResult<Boolean> delete(@RequestParam("ids") List<Long> ids) {
return success(entrustSampleRecordService.removeByIds(ids));
}
}
package com.patzn.cloud.service.lims.hmhj.mapper;
import com.patzn.cloud.commons.mapper.BatchMapper;
import com.patzn.cloud.service.hmhj.entity.EntrustSampleRecord;
/**
* <p>
* 样品操作日志表 Mapper 接口
* </p>
*
* @author meazty
* @since 2021-07-08
*/
public interface EntrustSampleRecordMapper extends BatchMapper<EntrustSampleRecord> {
}
......@@ -28,4 +28,6 @@ public interface IEntrustSamplePrepareService extends IBaseService<EntrustSample
boolean submitSampleReceive(Long[] ids, Account account);
boolean addOrUpdateToSetStatus(Long[] sampleIds, EntrustSamplePrepareStatusEnum statusEnum);
boolean removeBySampleIds(Long[] sampleIds);
}
package com.patzn.cloud.service.lims.hmhj.service;
import com.baomidou.mybatisplus.plugins.Page;
import com.patzn.cloud.commons.controller.Account;
import com.patzn.cloud.commons.service.IBaseService;
import com.patzn.cloud.service.hmhj.entity.EntrustSampleRecord;
import java.util.Collection;
import java.util.List;
/**
* 样品操作日志表 服务类
*
* @author meazty
* @since 2021-07-08
*/
public interface IEntrustSampleRecordService extends IBaseService<EntrustSampleRecord> {
Page<EntrustSampleRecord> page(Page<EntrustSampleRecord> page, EntrustSampleRecord entrustSampleRecord);
boolean removeByIds(List<Long> ids);
void record(Long[] ids, String from, String to, int type, Account account, String remark);
void record(Collection<Long> ids, String from, String to, int type, Account account, String remark);
}
......@@ -74,4 +74,10 @@ public interface IEntrustSampleService extends IBaseService<EntrustSample> {
boolean updateSamplePrevFlowInfo(Entrust entrust, EntrustFlowEnum prevFlowStatus, Account account);
boolean addStandardSampleDTO(EntrustSampleDTO dto, Account account);
List<EntrustSample> getByEntrustId(Long entrustId);
List<Long> getIdsByEntrustId(Long entrustId);
boolean updateSample(EntrustSample entrustSample, String source, Account account);
}
......@@ -78,4 +78,8 @@ public interface IEntrustService extends IBaseService<Entrust> {
boolean rejectToPrevNode(Entrust entrust,String reason, Account account);
boolean cloneEntrust(Long[] ids, Account account);
boolean backFromMake(Long[] ids, Account account, String reason);
boolean backFromReceive(Long[] ids, Account account, String reason);
}
......@@ -155,7 +155,7 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe
}
private boolean executeSubmitOperation(Entrust entrust, Account account) {
if (null == entrust || StringUtils.isBlank(entrust.getStatusPath())) {
if (StringUtils.isBlank(entrust.getStatusPath())) {
logger.error("委托为空,或者委托路径为空不进行下一步操作");
return false;
}
......@@ -222,7 +222,10 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe
}
// 存在的状态路径时,方可进入处理操作
executeSubmitOperation(getByReportId(ids[0]), account);
Entrust entrust = getByReportId(ids[0]);
entrust.setTestTimeE(new Date());
entrustService.updateById(entrust);
executeSubmitOperation(entrust, account);
return super.update(report, Condition.create().in("id", ids));
}
......@@ -254,7 +257,12 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe
}
// 存在的状态路径时,方可进入处理操作
executeSubmitOperation(getByReportId(ids[0]), account);
Entrust entrust = getByReportId(ids[0]);
// 报告批准,获取当前时间为检测结束时间
entrust.setTestTimeE(new Date());
entrustService.updateById(entrust);
executeSubmitOperation(entrust, account);
return super.update(report, Condition.create().in("id", ids));
}
......
......@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.toolkit.StringUtils;
import com.patzn.cloud.commons.api.RestAssert;
import com.patzn.cloud.commons.controller.Account;
import com.patzn.cloud.commons.controller.LoginHelper;
import com.patzn.cloud.service.hmhj.dto.SamplePrepareDTO;
import com.patzn.cloud.service.hmhj.entity.*;
import com.patzn.cloud.service.hmhj.enums.*;
......@@ -64,6 +65,17 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp
return baseMapper.deleteBatchIds(ids) > 0;
}
@Override
public boolean removeBySampleIds(Long[] sampleIds) {
if(null == sampleIds || sampleIds.length == 0){
return false;
}
Account account = LoginHelper.getAccount();
EntrustSamplePrepare samplePrepare = new EntrustSamplePrepare();
samplePrepare.setDeleted(1).setLid(account.getUserId()).setLtime(new Date());
return update(samplePrepare,Condition.create().in("entrust_sample_id",sampleIds).eq("deleted",0));
}
@Transactional(rollbackFor = Exception.class)
@Override
public boolean makeEnd(SamplePrepareDTO dto, Account account) {
......@@ -154,6 +166,7 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp
Entrust updateEntrust = new Entrust();
updateEntrust.setStatus(EntrustStatusEnum.TEST);
updateEntrust.setProgress(EntrustStatusEnum.TEST);
updateEntrust.setFlowStatus(EntrustFlowEnum.RECEIVE.getName());
updateEntrust.setId(entrust.getId());
entrustService.updateById(updateEntrust);
// String remark = "提交至样品接收", title = "新的样品接收任务!";
......@@ -183,6 +196,12 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp
sampleIdsList.add(prepare.getEntrustSampleId());
}
EntrustSample entrustSample = entrustSampleService.getById(prepareList.get(0).getEntrustSampleId());
Entrust entrust = entrustService.getById(entrustSample.getEntrustId());
if(null == entrust.getTestAddress()){
// entrust.setReceiveTime(new Date());
}
EntrustSamplePrepare prepare = new EntrustSamplePrepare();
prepare.setStatus(EntrustSamplePrepareStatusEnum.TEST);
prepare.setStatus(EntrustSamplePrepareStatusEnum.TEST);
......@@ -214,10 +233,13 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp
}
if (CollectionUtils.isEmpty(notOkSampleIds)) {
EntrustSample entrustSample = entrustSampleService.getById(prepareList.get(0).getEntrustSampleId());
Entrust entrust = entrustService.getById(entrustSample.getEntrustId());
// 检测开始时间为接收时间
entrust.setTestTimeS(new Date());
if (StringUtils.isNotEmpty(entrust.getStatusPath())) {
entrustService.submitToNextNode(entrust, account);
}else{
entrust.setFlowStatus(EntrustFlowEnum.TEST.getName());
entrustService.updateById(entrust);
}
}
......
package com.patzn.cloud.service.lims.hmhj.service.impl;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
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.service.impl.BaseServiceImpl;
import com.patzn.cloud.service.hmhj.entity.EntrustSampleRecord;
import com.patzn.cloud.service.lims.hmhj.mapper.EntrustSampleRecordMapper;
import com.patzn.cloud.service.lims.hmhj.service.IEntrustSampleRecordService;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
/**
* 样品操作日志表 服务实现类
*
* @author meazty
* @since 2021-07-08
*/
@Service
public class EntrustSampleRecordServiceImpl extends BaseServiceImpl<EntrustSampleRecordMapper, EntrustSampleRecord> implements IEntrustSampleRecordService {
@Override
public Page<EntrustSampleRecord> page(Page<EntrustSampleRecord> page, EntrustSampleRecord entrustSampleRecord) {
Wrapper wrapper = new EntityWrapper<>(entrustSampleRecord);
return this.page(page, wrapper);
}
@Override
public boolean removeByIds(List<Long> ids) {
return baseMapper.deleteBatchIds(ids) > 0;
}
@Override
public void record(Long[] ids, String from, String to, int type, Account account, String remark) {
record(Arrays.asList(ids), from, to, type, account, remark);
}
@Override
public void record(Collection<Long> ids, String from, String to, int type, Account account, String remark) {
RestAssert.fail(CollectionUtils.isEmpty(ids), "样品ID不能为空");
List<EntrustSampleRecord> saveRecord = new ArrayList<>();
for (Long entrustId : ids) {
EntrustSampleRecord sampleRecord = new EntrustSampleRecord();
sampleRecord.setSampleId(entrustId);
sampleRecord.setOperator(account.getUserName());
sampleRecord.setOperatorId(account.getUserId());
sampleRecord.setOrigin(from);
sampleRecord.setTarget(to);
sampleRecord.setType(type);
sampleRecord.setRemark(remark);
saveRecord.add(sampleRecord);
}
if (CollectionUtils.isNotEmpty(saveRecord)) {
saveBatch(saveRecord);
}
}
}
package com.patzn.cloud.service.lims.hmhj.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.Condition;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.toolkit.CollectionUtils;
import com.google.common.collect.Lists;
import com.patzn.cloud.commons.api.RestAssert;
import com.patzn.cloud.commons.controller.Account;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
import com.patzn.cloud.commons.toolkit.DateUtils;
import com.patzn.cloud.commons.toolkit.FileUtils;
import com.patzn.cloud.feign.base.client.SysFileTemplateClient;
import com.patzn.cloud.oss.starter.OssClient;
import com.patzn.cloud.service.base.entity.SysFileTemplate;
import com.patzn.cloud.service.hmhj.dto.EntrustSampleDTO;
import com.patzn.cloud.service.hmhj.dto.QueryDTO;
import com.patzn.cloud.service.hmhj.dto.ReportDTO;
......@@ -18,16 +20,14 @@ import com.patzn.cloud.service.hmhj.dto.StatsQueryDTO;
import com.patzn.cloud.service.hmhj.entity.*;
import com.patzn.cloud.service.hmhj.enums.*;
import com.patzn.cloud.service.hmhj.vo.*;
import com.patzn.cloud.service.lims.common.BeanUtils;
import com.patzn.cloud.service.lims.common.StringHandleUtils;
import com.patzn.cloud.service.lims.hmhj.common.HSSFWorkbookUtil;
import com.patzn.cloud.service.lims.hmhj.mapper.EntrustSampleMapper;
import com.patzn.cloud.service.lims.hmhj.original.OriginalUtil;
import com.patzn.cloud.service.lims.hmhj.service.*;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
import com.patzn.poibox.xwpf.PoiUtil2007;
import com.patzn.poibox.xwpf.XWPFTemplate;
import org.apache.commons.collections.ListUtils;
import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.util.CellRangeAddress;
......@@ -38,9 +38,6 @@ import org.apache.poi.xwpf.usermodel.XWPFTableCell;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STMerge;
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 java.io.File;
......@@ -48,7 +45,6 @@ import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
......@@ -63,6 +59,9 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
@Autowired
private SysFileTemplateClient sysFileTemplateClient;
@Autowired
private IEntrustSampleRecordService entrustSampleRecordService;
@Autowired
private IEntrustReportTemplateService entrustReportTemplateService;
......@@ -376,7 +375,7 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
@Override
public boolean updateSamplePrevFlowInfo(Entrust entrust, EntrustFlowEnum prevFlowStatus, Account account) {
EntrustStatusEnum statusEnum = entrust.getStatus();
List<EntrustSample> sampleList = list(Condition.create().eq("entrust_id", entrust.getId()).eq("deleted", 0));
List<EntrustSample> sampleList = getByEntrustId(entrust.getId());
RestAssert.fail(CollectionUtils.isEmpty(sampleList), String.format("编号为【%s】委托下样品为空", entrust.getCode()));
Long[] sampleIds = sampleList.stream().map(t -> t.getId()).toArray(size -> new Long[size]);
//
......@@ -433,12 +432,18 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
sampleStatus = EntrustSampleStatusEnum.REPORT_SEND;
}
if (statusEnum == EntrustStatusEnum.TEST && prevFlowStatus.getValue() < 5) {
entrustSamplePrepareService.removeBySampleIds(sampleIds);
}
if (null != sampleStatus) {
updateSample.setStatus(sampleStatus);
updateSample.setProgress(sampleStatus);
update(updateSample, Condition.create().eq("entrust_id", entrust.getId()));
}
if (null != itemStatus) {
updateItem.setStatus(itemStatus);
updateItem.setProgress(itemStatus);
entrustSampleItemService.update(updateItem, Condition.create().in("entrust_sample_id", sampleIds));
}
return false;
......@@ -480,6 +485,20 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
}
@Override
public List<EntrustSample> getByEntrustId(Long entrustId) {
return list(Condition.create().eq("entrust_id", entrustId).eq("deleted", 0));
}
@Override
public List<Long> getIdsByEntrustId(Long entrustId) {
List<EntrustSample> list = getByEntrustId(entrustId);
if (CollectionUtils.isEmpty(list)) {
return new ArrayList<>();
}
return list.stream().map(t -> t.getId()).collect(Collectors.toList());
}
@Override
public boolean removeByIds(List<Long> ids) {
return baseMapper.deleteBatchIds(ids) > 0;
}
......@@ -1104,7 +1123,34 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
cell.setText(StringHandleUtils.getFieldValueByFieldName(StringHandleUtils.getObjectFromMap(itemCellMap, k), object));
}
}
}
}
@Override
public boolean updateSample(EntrustSample entrustSample, String source, Account account) {
RestAssert.fail(StringUtils.isBlank(source), "来源节点不能为空");
EntrustFlowEnum flowStatus = EntrustFlowEnum.convert(source.toUpperCase());
EntrustSample sourceSample = getById(entrustSample.getId());
EntrustSample updateSample = new EntrustSample();
BeanUtils.copyProperties(sourceSample, updateSample);
BeanUtils.copyProperties(entrustSample, updateSample, true);
updateById(updateSample);
String sampleShape = null == entrustSample.getSampleShape() ? "" : entrustSample.getSampleShape();
String sampleFrom = null == entrustSample.getSampleFrom() ? "" : entrustSample.getSampleFrom();
StringBuffer sb = new StringBuffer();
String remark = "";
if (!sourceSample.getSampleShape().equals(sampleShape)) {
sb.append(String.format("样品状态:由【%s】 修改为 【%s】,", sourceSample.getSampleShape(), sampleShape));
}
if (!sourceSample.getSampleFrom().equals(sampleFrom)) {
sb.append(String.format("样品来源:由【%s】 修改为 【%s】,", sourceSample.getSampleFrom(), sampleFrom));
}
if (sb.length() > 0) {
remark = sb.substring(0, sb.length() - 1);
}
entrustSampleRecordService.record(new Long[]{entrustSample.getId()}, flowStatus.getDisplay(), flowStatus.getDisplay(), 2, account, remark);
return true;
}
}
\ No newline at end of file
......@@ -258,6 +258,7 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
Entrust entrust = new Entrust();
entrust.setStatus(EntrustStatusEnum.CHECK);
entrust.setProgress(EntrustStatusEnum.CHECK);
entrust.setFlowStatus(EntrustFlowEnum.CHECK.getName());
if (update(entrust, Condition.create().in("id", ids))) {
entrustRecordService.record(ids, EntrustStatusEnum.DRAFT.getDisplay(), EntrustStatusEnum.CHECK.getDisplay(), 0, account, "提交至委托审核");
lmsMsgService.sendMsg("/hmhj/entrust_manage/entrust_review", "有委托从委托登记提交过来,请及时审核", "新的委托审核任务!", account, null);
......@@ -298,6 +299,7 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
} else {
e.setStatus(EntrustStatusEnum.DRAFT);
e.setProgress(EntrustStatusEnum.BACK_CHECK);
e.setFlowStatus(EntrustFlowEnum.DRAFT.getName());
updateById(e);
entrustRecordService.record(new Long[]{e.getId()}, EntrustStatusEnum.CHECK.getDisplay(), EntrustStatusEnum.DRAFT.getDisplay(), 1, account, reason);
}
......@@ -324,6 +326,7 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
} else {
e.setStatus(EntrustStatusEnum.MAKE);
e.setProgress(EntrustStatusEnum.MAKE);
e.setFlowStatus(EntrustFlowEnum.MAKE.getName());
updateById(e);
entrustRecordService.record(new Long[]{e.getId()}, EntrustStatusEnum.CHECK.getDisplay(), EntrustStatusEnum.MAKE.getDisplay(), 0, account, "提交至样品待制备");
}
......@@ -349,6 +352,7 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
} else {
e.setStatus(EntrustStatusEnum.MAKE);
e.setProgress(EntrustStatusEnum.MAKE);
e.setFlowStatus(EntrustFlowEnum.MAKE.getName());
updateById(e);
entrustRecordService.record(new Long[]{e.getId()}, EntrustStatusEnum.DRAFT.getDisplay(), EntrustStatusEnum.MAKE.getDisplay(), 0, account, "委托登记提交至样品待制备");
}
......@@ -962,12 +966,15 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
} else if (prevStatus == EntrustStatusEnum.QUALITY_CHECK) {
uri = "/hmhj/quality_manage/quality_decide";
}
// 更新委托样品信息
entrustSampleService.updateSamplePrevFlowInfo(entrust, prevFlowStatus, account);
entrust.setStatus(prevStatus);
entrust.setProgress(EntrustStatusEnum.BACK_CHECK);
entrust.setFlowStatus(prevFlowStatus.getName());
updateById(entrust);
// 更新委托样品信息
entrustSampleService.updateSamplePrevFlowInfo(entrust, prevFlowStatus, account);
String title = String.format("新的%s任务!", prevFlowStatus.getDisplay()),
content = String.format("有%s驳回过来,请及时%s", EntrustFlowEnum.convert(flowStatus).getDisplay(), prevFlowStatus.getDisplay());
entrustRecordService.record(new Long[]{entrust.getId()}, status.getDisplay(), prevStatus.getDisplay(), 1, account, reason);
......@@ -1040,6 +1047,69 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
return true;
}
@Override
public boolean backFromMake(Long[] ids, Account account, String reason) {
RestAssert.fail(ArrayUtils.isEmpty(ids), "请选择要驳回的委托");
int count = super.count(Condition.create().in("id", ids).eq("status", EntrustStatusEnum.MAKE));
RestAssert.fail(ids.length != count, "请选择要退回至登记的委托");
List<Entrust> entrustList = getBatchIds(Arrays.asList(ids));
boolean hasSendMessage = false;
for (Entrust e : entrustList) {
e.setStatus(EntrustStatusEnum.DRAFT);
e.setProgress(EntrustStatusEnum.BACK_MAKE);
// 流程节点变更为登记
e.setFlowStatus(EntrustFlowEnum.DRAFT.getName());
updateById(e);
entrustRecordService.record(new Long[]{e.getId()}, EntrustStatusEnum.MAKE.getDisplay(), EntrustStatusEnum.DRAFT.getDisplay(), 1, account, reason);
// 更新样品状态
EntrustSample entrustSample = new EntrustSample();
entrustSample.setStatus(EntrustSampleStatusEnum.DRAFT);
entrustSample.setProgress(EntrustSampleStatusEnum.DRAFT);
EntrustSampleItem entrustSampleItem = new EntrustSampleItem();
entrustSampleItem.setStatus(EntrustSampleItemStatusEnum.DRAFT);
entrustSampleItem.setProgress(EntrustSampleItemStatusEnum.DRAFT);
List<Long> sampleIds = entrustSampleService.getIdsByEntrustId(e.getId());
entrustSampleService.update(entrustSample, Condition.create().eq("entrust_id", e.getId()));
if (sampleIds.size() > 0) {
entrustSampleItemService.update(entrustSampleItem, Condition.create().in("entrust_sample_id", sampleIds));
}
}
lmsMsgService.sendMsg("/hmhj/entrust_manage/entrust_register", "有委托从样品制备退回,请及时查看退回原因并处理", "新的样品制备退回任务!", account, null);
return true;
}
@Override
public boolean backFromReceive(Long[] ids, Account account, String reason) {
RestAssert.fail(ArrayUtils.isEmpty(ids), "请选择要驳回的委托");
int count = super.count(Condition.create().in("id", ids).eq("status", EntrustStatusEnum.TEST));
RestAssert.fail(ids.length != count, "请选择要退回至登记的委托");
List<Entrust> entrustList = getBatchIds(Arrays.asList(ids));
boolean hasSendMessage = false;
for (Entrust e : entrustList) {
e.setStatus(EntrustStatusEnum.DRAFT);
e.setProgress(EntrustStatusEnum.BACK_RECEIVE);
// 流程节点变更为登记
e.setFlowStatus(EntrustFlowEnum.DRAFT.getName());
updateById(e);
entrustRecordService.record(new Long[]{e.getId()}, EntrustStatusEnum.TEST.getDisplay(), EntrustStatusEnum.DRAFT.getDisplay(), 1, account, reason);
// 更新样品状态
EntrustSample entrustSample = new EntrustSample();
entrustSample.setStatus(EntrustSampleStatusEnum.DRAFT);
entrustSample.setProgress(EntrustSampleStatusEnum.DRAFT);
EntrustSampleItem entrustSampleItem = new EntrustSampleItem();
entrustSampleItem.setStatus(EntrustSampleItemStatusEnum.DRAFT);
entrustSampleItem.setProgress(EntrustSampleItemStatusEnum.DRAFT);
List<Long> sampleIds = entrustSampleService.getIdsByEntrustId(e.getId());
entrustSampleService.update(entrustSample, Condition.create().eq("entrust_id", e.getId()));
entrustSamplePrepareService.removeBySampleIds(sampleIds.toArray(new Long[sampleIds.size()]));
if (sampleIds.size() > 0) {
entrustSampleItemService.update(entrustSampleItem, Condition.create().in("entrust_sample_id", sampleIds));
}
}
lmsMsgService.sendMsg("/hmhj/entrust_manage/entrust_register", "有委托从样品接收退回,请及时查看退回原因并处理", "新的样品接收退回任务!", account, null);
return true;
}
private List<EntrustSampleDTO> listSampleDTOByType(Long entrustId, int type) {
List<EntrustSampleDTO> sampleDTOList = baseMapper.listByContractId(entrustId);
return sampleDTOList.stream().filter(t -> (null == t.getType() ? 0 : t.getType().intValue()) == type).collect(Collectors.toList());
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.patzn.cloud.service.lims.hmhj.mapper.EntrustSampleRecordMapper">
</mapper>
CREATE TABLE "public"."entrust_sample_record" (
CREATE TABLE "public"."entrust_sample_record" (
"id" int8 NOT NULL,
"sample_id" int8,
"remark" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying,
"ctime" timestamp(0) DEFAULT NULL::timestamp without time zone,
"uid" int8,
"lid" int8,
"ltime" timestamp(0) DEFAULT NULL::timestamp without time zone,
"deleted" int2 DEFAULT 0,
"company_id" int8,
"type" int2 DEFAULT 0,
"origin" varchar(50) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying,
"target" varchar(50) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying,
"operator" varchar(50) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying,
"operator_id" int8
)
;
COMMENT ON COLUMN "public"."entrust_sample_record"."id" IS '主键';
COMMENT ON COLUMN "public"."entrust_sample_record"."sample_id" IS '样品ID';
COMMENT ON COLUMN "public"."entrust_sample_record"."remark" IS '操作原因';
COMMENT ON COLUMN "public"."entrust_sample_record"."ctime" IS '创建时间';
COMMENT ON COLUMN "public"."entrust_sample_record"."uid" IS '创建人ID';
COMMENT ON COLUMN "public"."entrust_sample_record"."lid" IS '最后修改人ID';
COMMENT ON COLUMN "public"."entrust_sample_record"."ltime" IS '最后修改时间';
COMMENT ON COLUMN "public"."entrust_sample_record"."deleted" IS '是否删除0否1是';
COMMENT ON COLUMN "public"."entrust_sample_record"."company_id" IS '企业ID';
COMMENT ON COLUMN "public"."entrust_sample_record"."type" IS '类型 0流转 1回退 2更新';
COMMENT ON COLUMN "public"."entrust_sample_record"."origin" IS '操作阶段';
COMMENT ON COLUMN "public"."entrust_sample_record"."target" IS '目标阶段';
COMMENT ON COLUMN "public"."entrust_sample_record"."operator" IS '操作人';
COMMENT ON COLUMN "public"."entrust_sample_record"."operator_id" IS '操作人ID';
COMMENT ON TABLE "public"."entrust_sample_record" IS '样品操作日志表';
-- ----------------------------
-- Primary Key structure for table entrust_sample_record
-- ----------------------------
ALTER TABLE "public"."entrust_sample_record" ADD CONSTRAINT "entrust_sample_record_pkey" PRIMARY KEY ("id");
-- 新增委托字段 --
ALTER TABLE "public"."entrust"
ADD COLUMN "expect_send_time" timestamp(6),
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 default 0.00,
ADD COLUMN "expect_time_s" timestamp(6),
ADD COLUMN "expect_time_e" timestamp(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"."expect_time_s" IS '检测开始日期';
COMMENT ON COLUMN "public"."entrust"."expect_time_e" IS '检测结束日期';
-- 新增样品字段 --
ALTER TABLE "public"."entrust_sample"
ADD COLUMN "compliance_test" int2;
COMMENT ON COLUMN "public"."entrust_sample"."compliance_test" IS '符合性检测【0:否,1:是】';
-- 新增样品检测项目字段 --
ALTER TABLE "public"."entrust_sample_item"
ADD COLUMN "univalent" numeric default 0.00;
COMMENT ON COLUMN "public"."entrust_sample_item"."univalent" 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