Commit 7cac6acc by ghxdhr

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

 Conflicts:
	src/main/java/com/patzn/cloud/service/lims/hmhj/service/IEntrustService.java
	src/main/java/com/patzn/cloud/service/lims/hmhj/service/impl/EntrustServiceImpl.java
parents 6769ef02 56276086
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);
}
}
package com.patzn.cloud.service.lims.hmhj.common;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.*;
public class LabreOfficeUtil {
private static final Logger logger = LoggerFactory.getLogger(LabreOfficeUtil.class);
public static void main(String[] args) {
convertOffice2PDF("D:/program/libreoffice",new File("D:/二氧化碳.xlsx"));
}
public static File inputStream2File (InputStream is) {
File file = null;
try {
file = File.createTempFile("original",".xlsx");
} catch (IOException e) {
e.printStackTrace();
}
OutputStream os = null;
try {
try {
os = new FileOutputStream(file);
int len = 0;
byte[] buffer = new byte[8192];
while ((len = is.read(buffer)) != -1) {
os.write(buffer, 0, len);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} finally {
try {
if (null!=os)
os.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
if (null!=is)
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return file;
}
public static synchronized File convertOffice2PDF(String url,File inputFile){
long start = System.currentTimeMillis();
boolean flag;
String parent= inputFile.getParent();
String pdfFile = parent+"/"+(inputFile.getName().replace(".xlsx",".pdf"));
// String osName = System.getProperty("os.name");
// if (osName.contains("Windows")) {
// }else {
// command = "libreoffice --headless --invisible --convert-to pdf:writer_pdf_Export " + inputFile + " --outdir " + pdfFile;
// }
String osName = System.getProperty("os.name");
String command="";
if(osName.contains("win")||osName.contains("Win")){
command = "cmd /c soffice --headless --invisible --convert-to pdf " + inputFile.getPath() + " --outdir " + parent;
flag = executeLibreOfficeCommand(command,url);
}else{
command = "libreoffice6.2 --headless --invisible --convert-to pdf:writer_pdf_Export " + inputFile.getPath() + " --outdir " + parent;
flag = executeLibreOfficeCommand(command);
}
long end = System.currentTimeMillis();
logger.debug("用时:{} ms", end - start);
if (true){
return new File(pdfFile);
}
return null;
}
public static synchronized File convertOfficeWord2PDF(String url,File inputFile){
long start = System.currentTimeMillis();
boolean flag;
String parent= inputFile.getParent();
String pdfFile = parent+"/"+(inputFile.getName().replace(".docx",".pdf"));
// String osName = System.getProperty("os.name");
// if (osName.contains("Windows")) {
// }else {
// command = "libreoffice --headless --invisible --convert-to pdf:writer_pdf_Export " + inputFile + " --outdir " + pdfFile;
// }
String osName = System.getProperty("os.name");
String command="";
if(osName.contains("win")||osName.contains("Win")){
command = "cmd /c soffice --headless --invisible --convert-to pdf " + inputFile.getPath() + " --outdir " + parent;
flag = executeLibreOfficeCommand(command,url);
}else{
command = "libreoffice6.2 --headless --invisible --convert-to pdf:writer_pdf_Export " + inputFile.getPath() + " --outdir " + parent;
flag = executeLibreOfficeCommand(command);
}
long end = System.currentTimeMillis();
logger.debug("用时:{} ms", end - start);
if (true){
return new File(pdfFile);
}
return null;
}
/**
* 执行command指令
* @param command
* @return
*/
public static boolean executeLibreOfficeCommand(String command,String url) {
logger.info("开始进行转化.......");
Process process;// Process可以控制该子进程的执行或获取该子进程的信息
try {
logger.debug("convertOffice2PDF cmd : {}", command);
process = Runtime.getRuntime().exec(command,null,new File(url+"/program"));// exec()方法指示Java虚拟机创建一个子进程执行指定的可执行程序,并返回与该子进程对应的Process对象实例。
// 下面两个可以获取输入输出流
// InputStream errorStream = process.getErrorStream();
// InputStream inputStream = process.getInputStream();
} catch (IOException e) {
logger.error(" convertOffice2PDF {} error", command, e);
return false;
}
int exitStatus = 0;
try {
exitStatus = process.waitFor();// 等待子进程完成再往下执行,返回值是子线程执行完毕的返回值,返回0表示正常结束
// 第二种接受返回值的方法
int i = process.exitValue(); // 接收执行完毕的返回值
logger.debug("i----" + i);
} catch (InterruptedException e) {
logger.error("InterruptedException convertOffice2PDF {}", command, e);
return false;
}
if (exitStatus != 0) {
logger.error("convertOffice2PDF cmd exitStatus {}", exitStatus);
} else {
logger.debug("convertOffice2PDF cmd exitStatus {}", exitStatus);
}
process.destroy(); // 销毁子进程
logger.info("转化结束.......");
return true;
}
public static boolean executeLibreOfficeCommand(String command) {
logger.info("开始进行转化.......");
Process process;// Process可以控制该子进程的执行或获取该子进程的信息
try {
logger.debug("convertOffice2PDF cmd : {}", command);
process = Runtime.getRuntime().exec(command);// exec()方法指示Java虚拟机创建一个子进程执行指定的可执行程序,并返回与该子进程对应的Process对象实例。
// 下面两个可以获取输入输出流
// InputStream errorStream = process.getErrorStream();
// InputStream inputStream = process.getInputStream();
} catch (IOException e) {
logger.error(" convertOffice2PDF {} error", command, e);
return false;
}
int exitStatus = 0;
try {
exitStatus = process.waitFor();// 等待子进程完成再往下执行,返回值是子线程执行完毕的返回值,返回0表示正常结束
// 第二种接受返回值的方法
int i = process.exitValue(); // 接收执行完毕的返回值
logger.debug("i----" + i);
} catch (InterruptedException e) {
logger.error("InterruptedException convertOffice2PDF {}", command, e);
return false;
}
if (exitStatus != 0) {
logger.error("convertOffice2PDF cmd exitStatus {}", exitStatus);
} else {
logger.debug("convertOffice2PDF cmd exitStatus {}", exitStatus);
}
process.destroy(); // 销毁子进程
logger.info("转化结束.......");
return true;
}
}
...@@ -584,4 +584,13 @@ public class ContractSampleController extends ServiceController { ...@@ -584,4 +584,13 @@ public class ContractSampleController extends ServiceController {
return success(contractSampleService.passToSecondJudgeCheck(dto,getAccount())); return success(contractSampleService.passToSecondJudgeCheck(dto,getAccount()));
} }
@ApiOperation("任务判定增加")
@PostMapping("/add_judgement_type")
public RestResult<Boolean> addJudgementType(@RequestParam("ids")Long[] ids, @RequestParam("judgement") String judgement) {
return success(contractSampleService.addJudgementType(ids,judgement,getAccount()));
}
} }
...@@ -168,6 +168,32 @@ public class EntrustController extends ServiceController { ...@@ -168,6 +168,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({
...@@ -306,6 +332,18 @@ public class EntrustController extends ServiceController { ...@@ -306,6 +332,18 @@ public class EntrustController extends ServiceController {
return success(entrustService.backFromCheck(ids, getAccount(), reason)); 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("提交至样品制备") @ApiOperation("提交至样品制备")
@PostMapping("/submit_to_make") @PostMapping("/submit_to_make")
...@@ -320,6 +358,25 @@ public class EntrustController extends ServiceController { ...@@ -320,6 +358,25 @@ public class EntrustController extends ServiceController {
return success(entrustService.registerSubmitToMake(ids, getAccount())); return success(entrustService.registerSubmitToMake(ids, getAccount()));
} }
@ApiOperation("提交修改审批申请")
@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("复制委托信息") @ApiOperation("复制委托信息")
@PostMapping("/clone_entrust") @PostMapping("/clone_entrust")
public RestResult<Boolean> clone(@RequestParam("ids") Long[] ids) { public RestResult<Boolean> clone(@RequestParam("ids") Long[] ids) {
...@@ -338,7 +395,7 @@ public class EntrustController extends ServiceController { ...@@ -338,7 +395,7 @@ public class EntrustController extends ServiceController {
public RestResult<Page<EntrustVO>> getPageEntrustSampleReceive(EntrustVO entrust) { public RestResult<Page<EntrustVO>> getPageEntrustSampleReceive(EntrustVO entrust) {
entrust.setPrepareStatus(EntrustSamplePrepareStatusEnum.RECEIVE); entrust.setPrepareStatus(EntrustSamplePrepareStatusEnum.RECEIVE);
// 设置用户编组 // 设置用户编组
//entrust.setGroupNameList(userInfoService.getCurGroupNameList()); entrust.setGroupNameList(userInfoService.getCurGroupNameList());
return success(entrustService.pageEntrustSampleReceive(getPage(), entrust)); return success(entrustService.pageEntrustSampleReceive(getPage(), entrust));
} }
...@@ -370,7 +427,7 @@ public class EntrustController extends ServiceController { ...@@ -370,7 +427,7 @@ public class EntrustController extends ServiceController {
public RestResult<Page<EntrustVO>> getPageTaskAllot(EntrustVO entrust) { public RestResult<Page<EntrustVO>> getPageTaskAllot(EntrustVO entrust) {
entrust.setItemStatus(EntrustSampleItemStatusEnum.ALLOT); entrust.setItemStatus(EntrustSampleItemStatusEnum.ALLOT);
// 获取当前用户分组 // 获取当前用户分组
//entrust.setGroupNameList(userInfoService.getCurGroupNameList()); entrust.setGroupNameList(userInfoService.getCurGroupNameList());
return success(entrustService.pageEntrustByItem(getPage(), entrust)); return success(entrustService.pageEntrustByItem(getPage(), entrust));
} }
......
...@@ -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.page(getPage(), entrustSample)); 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 信息") @ApiOperation("查询 id 信息")
@ApiImplicitParams({ @ApiImplicitParams({
...@@ -120,6 +172,12 @@ public class EntrustSampleController extends ServiceController { ...@@ -120,6 +172,12 @@ public class EntrustSampleController extends ServiceController {
return success(entrustSampleService.updateById(entrustSample)); 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("添加") @ApiOperation("添加")
@PostMapping("/") @PostMapping("/")
public RestResult<Boolean> add(EntrustSample entrustSample) { public RestResult<Boolean> add(EntrustSample entrustSample) {
......
...@@ -6,6 +6,8 @@ import com.patzn.cloud.service.hmhj.entity.ItemDeviate; ...@@ -6,6 +6,8 @@ import com.patzn.cloud.service.hmhj.entity.ItemDeviate;
import com.patzn.cloud.service.hmhj.entity.OriginalRecord; import com.patzn.cloud.service.hmhj.entity.OriginalRecord;
import com.patzn.cloud.service.hmhj.enums.EntrustSampleItemStatusEnum; import com.patzn.cloud.service.hmhj.enums.EntrustSampleItemStatusEnum;
import com.patzn.cloud.service.hmhj.vo.EntrustSampleItemVO; import com.patzn.cloud.service.hmhj.vo.EntrustSampleItemVO;
import com.patzn.cloud.service.lims.base.entity.LmsUserRelGroup;
import com.patzn.cloud.service.lims.base.vo.LmsUserRelGroupVO;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
...@@ -582,4 +584,18 @@ public class EntrustSampleItemController extends ServiceController { ...@@ -582,4 +584,18 @@ public class EntrustSampleItemController extends ServiceController {
return success(entrustSampleItemService.updateQualityJudge(ids, getAccount())); return success(entrustSampleItemService.updateQualityJudge(ids, getAccount()));
} }
@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_group_user")
public RestResult<Page<LmsUserRelGroupVO>> getPageGroupUser(LmsUserRelGroup soilExperiment) {
return success(entrustSampleItemService.pageGroupUser(getPage(), soilExperiment));
}
} }
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.controller;
import com.patzn.cloud.service.hmhj.entity.OriginalRecordVersion;
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.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.hmhj.service.IOriginalRecordVersionService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import java.util.List;
/**
* ${table.comment} 前端控制器
*
* @author wwd
* @since 2021-07-08
*/
@Api(tags = "${table.comment}")
@RestController
@RequestMapping("/v1/record_version")
public class OriginalRecordVersionController extends ServiceController {
@Autowired
private IOriginalRecordVersionService originalRecordVersionService;
@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<OriginalRecordVersion>> getPage(OriginalRecordVersion originalRecordVersion) {
return success(originalRecordVersionService.page(getPage(), originalRecordVersion));
}
@ApiOperation("查询 id 信息")
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "主键", required = true, paramType = "path", dataTypeClass = Long.class),
})
@GetMapping("/{id}")
public RestResult<OriginalRecordVersion> get(@PathVariable("id") Long id) {
return success(originalRecordVersionService.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, OriginalRecordVersion originalRecordVersion) {
originalRecordVersion.setId(id);
return success(originalRecordVersionService.updateById(originalRecordVersion));
}
@ApiOperation("添加")
@PostMapping("/")
public RestResult<Boolean> add(OriginalRecordVersion originalRecordVersion) {
return success(originalRecordVersionService.save(originalRecordVersion));
}
@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(originalRecordVersionService.removeByIds(ids));
}
}
...@@ -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);
} }
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> {
}
package com.patzn.cloud.service.lims.hmhj.mapper;
import com.patzn.cloud.commons.mapper.BatchMapper;
import com.patzn.cloud.service.hmhj.entity.OriginalRecordVersion;
/**
* <p>
* Mapper 接口
* </p>
*
* @author wwd
* @since 2021-07-08
*/
public interface OriginalRecordVersionMapper extends BatchMapper<OriginalRecordVersion> {
}
...@@ -65,4 +65,6 @@ public interface IContractSampleService extends IBaseService<ContractSample> { ...@@ -65,4 +65,6 @@ public interface IContractSampleService extends IBaseService<ContractSample> {
boolean backSecondJudgeCheck(Long[] ids, String reason, Account account); boolean backSecondJudgeCheck(Long[] ids, String reason, Account account);
boolean passToSecondJudgeCheck(ContractSampleVODTO dto, Account account); boolean passToSecondJudgeCheck(ContractSampleVODTO dto, Account account);
boolean addJudgementType(Long[] ids, String judgement, Account account);
} }
...@@ -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,8 @@ import com.patzn.cloud.service.hmhj.entity.EntrustSampleItem; ...@@ -7,6 +7,8 @@ import com.patzn.cloud.service.hmhj.entity.EntrustSampleItem;
import com.patzn.cloud.service.hmhj.entity.ItemDeviate; import com.patzn.cloud.service.hmhj.entity.ItemDeviate;
import com.patzn.cloud.service.hmhj.entity.OriginalRecord; import com.patzn.cloud.service.hmhj.entity.OriginalRecord;
import com.patzn.cloud.service.hmhj.vo.EntrustSampleItemVO; import com.patzn.cloud.service.hmhj.vo.EntrustSampleItemVO;
import com.patzn.cloud.service.lims.base.entity.LmsUserRelGroup;
import com.patzn.cloud.service.lims.base.vo.LmsUserRelGroupVO;
import java.util.List; import java.util.List;
...@@ -69,4 +71,7 @@ public interface IEntrustSampleItemService extends IBaseService<EntrustSampleIte ...@@ -69,4 +71,7 @@ public interface IEntrustSampleItemService extends IBaseService<EntrustSampleIte
List<EntrustSampleItemVO> listMinStatusBySampleIds(List<Long> entrustIds); List<EntrustSampleItemVO> listMinStatusBySampleIds(List<Long> entrustIds);
public boolean isAllocatedByEntrustId(Long entrustId); public boolean isAllocatedByEntrustId(Long entrustId);
Page<LmsUserRelGroupVO> pageGroupUser(Page<LmsUserRelGroupVO> page, LmsUserRelGroup soilExperiment);
} }
...@@ -28,4 +28,6 @@ public interface IEntrustSamplePrepareService extends IBaseService<EntrustSample ...@@ -28,4 +28,6 @@ public interface IEntrustSamplePrepareService extends IBaseService<EntrustSample
boolean submitSampleReceive(Long[] ids, Account account); boolean submitSampleReceive(Long[] ids, Account account);
boolean addOrUpdateToSetStatus(Long[] sampleIds, EntrustSamplePrepareStatusEnum statusEnum); 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> { ...@@ -74,4 +74,10 @@ public interface IEntrustSampleService extends IBaseService<EntrustSample> {
boolean updateSamplePrevFlowInfo(Entrust entrust, EntrustFlowEnum prevFlowStatus, Account account); boolean updateSamplePrevFlowInfo(Entrust entrust, EntrustFlowEnum prevFlowStatus, Account account);
boolean addStandardSampleDTO(EntrustSampleDTO dto, 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);
} }
...@@ -80,5 +80,17 @@ public interface IEntrustService extends IBaseService<Entrust> { ...@@ -80,5 +80,17 @@ public interface IEntrustService extends IBaseService<Entrust> {
boolean cloneEntrust(Long[] ids, Account account); boolean cloneEntrust(Long[] ids, Account account);
boolean backFromMake(Long[] ids, Account account, String reason);
boolean backFromReceive(Long[] ids, Account account, String reason);
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 exportEntrust(List<Long> ids, HttpServletResponse response);
} }
package com.patzn.cloud.service.lims.hmhj.service;
import com.baomidou.mybatisplus.plugins.Page;
import com.patzn.cloud.commons.service.IBaseService;
import com.patzn.cloud.service.hmhj.entity.OriginalRecordVersion;
import java.util.List;
/**
* 服务类
*
* @author wwd
* @since 2021-07-08
*/
public interface IOriginalRecordVersionService extends IBaseService<OriginalRecordVersion> {
Page<OriginalRecordVersion> page(Page<OriginalRecordVersion> page, OriginalRecordVersion originalRecordVersion);
boolean removeByIds(List<Long> ids);
}
...@@ -379,5 +379,24 @@ public class ContractSampleServiceImpl extends BaseServiceImpl<ContractSampleMap ...@@ -379,5 +379,24 @@ public class ContractSampleServiceImpl extends BaseServiceImpl<ContractSampleMap
return true; return true;
} }
@Transactional(rollbackFor = Exception.class)
@Override
public boolean addJudgementType(Long[] ids, String judgement, Account account) {
RestAssert.fail(ArrayUtils.isEmpty(ids),"请选择数据!");
RestAssert.fail(StringUtils.isBlank(judgement),"请选择判定类型");
List<ContractSample> updateList = new ArrayList<>();
for (Long id : ids) {
ContractSample sample = new ContractSample();
sample.setId(id);
sample.setJudgmentType(judgement);
updateList.add(sample);
}
if (CollectionUtils.isNotEmpty(updateList)){
return updateBatchById(updateList);
}
return false;
}
} }
...@@ -7,6 +7,7 @@ import com.google.common.collect.Lists; ...@@ -7,6 +7,7 @@ import com.google.common.collect.Lists;
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.FileUtils;
import com.patzn.cloud.oss.starter.OssClient; import com.patzn.cloud.oss.starter.OssClient;
import com.patzn.cloud.oss.starter.OssFileResult; import com.patzn.cloud.oss.starter.OssFileResult;
import com.patzn.cloud.service.hmhj.entity.Entrust; import com.patzn.cloud.service.hmhj.entity.Entrust;
...@@ -17,6 +18,7 @@ import com.patzn.cloud.service.hmhj.enums.EntrustFlowEnum; ...@@ -17,6 +18,7 @@ import com.patzn.cloud.service.hmhj.enums.EntrustFlowEnum;
import com.patzn.cloud.service.hmhj.enums.EntrustReportStatusEnum; import com.patzn.cloud.service.hmhj.enums.EntrustReportStatusEnum;
import com.patzn.cloud.service.hmhj.enums.EntrustSampleItemStatusEnum; import com.patzn.cloud.service.hmhj.enums.EntrustSampleItemStatusEnum;
import com.patzn.cloud.service.hmhj.enums.EntrustSampleStatusEnum; import com.patzn.cloud.service.hmhj.enums.EntrustSampleStatusEnum;
import com.patzn.cloud.service.lims.hmhj.common.LabreOfficeUtil;
import com.patzn.cloud.service.lims.hmhj.mapper.EntrustReportMapper; import com.patzn.cloud.service.lims.hmhj.mapper.EntrustReportMapper;
import com.patzn.cloud.service.lims.hmhj.service.IEntrustReportRelSampleService; import com.patzn.cloud.service.lims.hmhj.service.IEntrustReportRelSampleService;
import com.patzn.cloud.service.lims.hmhj.service.IEntrustReportService; import com.patzn.cloud.service.lims.hmhj.service.IEntrustReportService;
...@@ -26,6 +28,7 @@ import com.patzn.cloud.service.lims.hmhj.service.IEntrustService; ...@@ -26,6 +28,7 @@ import com.patzn.cloud.service.lims.hmhj.service.IEntrustService;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.checkerframework.checker.units.qual.A; import org.checkerframework.checker.units.qual.A;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper; import com.baomidou.mybatisplus.mapper.Wrapper;
...@@ -33,10 +36,12 @@ import com.baomidou.mybatisplus.plugins.Page; ...@@ -33,10 +36,12 @@ import com.baomidou.mybatisplus.plugins.Page;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.io.File; import java.io.File;
import java.io.InputStream;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.concurrent.Executor;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -56,7 +61,11 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe ...@@ -56,7 +61,11 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe
private IEntrustSampleService entrustSampleService; private IEntrustSampleService entrustSampleService;
@Autowired @Autowired
private IEntrustService entrustService; private IEntrustService entrustService;
@Autowired
private Executor executor1;
@Value("${libreOffice.url}")
private String libreOfficeUrl;
@Override @Override
public Page<EntrustReport> page(Page<EntrustReport> page, EntrustReport entrustReport) { public Page<EntrustReport> page(Page<EntrustReport> page, EntrustReport entrustReport) {
...@@ -143,9 +152,47 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe ...@@ -143,9 +152,47 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe
// 存在的状态路径时,方可进入处理操作 // 存在的状态路径时,方可进入处理操作
executeSubmitOperation(getByReportId(ids[0]), account); executeSubmitOperation(getByReportId(ids[0]), account);
//转化PDF
executor1.execute(new Runnable() {
@Override
public void run() {
changeExcelReportToPdf(ids);
}
});
return super.update(report, Condition.create().in("id", ids)); return super.update(report, Condition.create().in("id", ids));
} }
private void changeExcelReportToPdf(Long[] ids) {
List<EntrustReport> reportList = list(Condition.create().in("id",ids).isNotNull("object_key"));
if (CollectionUtils.isEmpty(reportList)){
return;
}
List<File> deleteFileList = new ArrayList<>();
List<EntrustReport> updateReportList = new ArrayList<>();
for (EntrustReport report : reportList) {
InputStream io= ossClient.download(report.getObjectKey());
if (null == io)
continue;
File file = LabreOfficeUtil.inputStream2File(io);
File filePdf =LabreOfficeUtil.convertOffice2PDF(libreOfficeUrl,file);
deleteFileList.add(file);
deleteFileList.add(filePdf);
OssFileResult fileResult = ossClient.upload(filePdf);
EntrustReport u = new EntrustReport();
u.setPdfObjectKey(fileResult.getObjectKey());
u.setId(report.getId());
updateReportList.add(u);
}
if (CollectionUtils.isNotEmpty(updateReportList)){
updateBatchById(updateReportList);
}
FileUtils.deleteFiles(deleteFileList);
}
private Entrust getByReportId(Long reportId) { private Entrust getByReportId(Long reportId) {
EntrustReport report = getById(reportId); EntrustReport report = getById(reportId);
if (null == report) { if (null == report) {
...@@ -155,7 +202,7 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe ...@@ -155,7 +202,7 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe
} }
private boolean executeSubmitOperation(Entrust entrust, Account account) { private boolean executeSubmitOperation(Entrust entrust, Account account) {
if (null == entrust || StringUtils.isBlank(entrust.getStatusPath())) { if (StringUtils.isBlank(entrust.getStatusPath())) {
logger.error("委托为空,或者委托路径为空不进行下一步操作"); logger.error("委托为空,或者委托路径为空不进行下一步操作");
return false; return false;
} }
...@@ -222,7 +269,10 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe ...@@ -222,7 +269,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)); return super.update(report, Condition.create().in("id", ids));
} }
...@@ -254,7 +304,12 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe ...@@ -254,7 +304,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)); return super.update(report, Condition.create().in("id", ids));
} }
......
...@@ -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));
}
} }
...@@ -8,16 +8,21 @@ import com.patzn.cloud.commons.controller.Account; ...@@ -8,16 +8,21 @@ 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.DateUtils; import com.patzn.cloud.commons.toolkit.DateUtils;
import com.patzn.cloud.commons.toolkit.FileUtils; import com.patzn.cloud.commons.toolkit.FileUtils;
import com.patzn.cloud.feign.lims.base.client.LmsUserRelGroupClient;
import com.patzn.cloud.oss.starter.OssClient; import com.patzn.cloud.oss.starter.OssClient;
import com.patzn.cloud.oss.starter.OssFileResult;
import com.patzn.cloud.service.hmhj.entity.*; import com.patzn.cloud.service.hmhj.entity.*;
import com.patzn.cloud.service.hmhj.enums.EntrustSampleItemStatusEnum; import com.patzn.cloud.service.hmhj.enums.EntrustSampleItemStatusEnum;
import com.patzn.cloud.service.hmhj.enums.EntrustSampleStatusEnum; import com.patzn.cloud.service.hmhj.enums.EntrustSampleStatusEnum;
import com.patzn.cloud.service.hmhj.enums.EntrustStatusEnum; import com.patzn.cloud.service.hmhj.enums.EntrustStatusEnum;
import com.patzn.cloud.service.hmhj.vo.EntrustSampleItemVO; import com.patzn.cloud.service.hmhj.vo.EntrustSampleItemVO;
import com.patzn.cloud.service.hmhj.vo.EntrustSampleVO; import com.patzn.cloud.service.hmhj.vo.EntrustSampleVO;
import com.patzn.cloud.service.lims.base.entity.LmsUserRelGroup;
import com.patzn.cloud.service.lims.base.vo.LmsUserRelGroupVO;
import com.patzn.cloud.service.lims.common.CompareUtils; import com.patzn.cloud.service.lims.common.CompareUtils;
import com.patzn.cloud.service.lims.hmhj.common.EntrustFlowUtils; import com.patzn.cloud.service.lims.hmhj.common.EntrustFlowUtils;
import com.patzn.cloud.service.lims.hmhj.common.HSSFWorkbookUtil; import com.patzn.cloud.service.lims.hmhj.common.HSSFWorkbookUtil;
import com.patzn.cloud.service.lims.hmhj.common.LabreOfficeUtil;
import com.patzn.cloud.service.lims.hmhj.mapper.EntrustSampleItemMapper; import com.patzn.cloud.service.lims.hmhj.mapper.EntrustSampleItemMapper;
import com.patzn.cloud.service.lims.hmhj.original.*; import com.patzn.cloud.service.lims.hmhj.original.*;
import com.patzn.cloud.service.lims.hmhj.service.*; import com.patzn.cloud.service.lims.hmhj.service.*;
...@@ -26,19 +31,18 @@ import org.apache.commons.lang3.ArrayUtils; ...@@ -26,19 +31,18 @@ import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.poi.xssf.usermodel.*; import org.apache.poi.xssf.usermodel.*;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper; import com.baomidou.mybatisplus.mapper.Wrapper;
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 java.io.File; import java.io.*;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
import java.util.concurrent.Executor;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -78,6 +82,11 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI ...@@ -78,6 +82,11 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
@Autowired @Autowired
private IItemDeviateService itemDeviateService; private IItemDeviateService itemDeviateService;
@Autowired
private IItemRelOriginalRecordService itemRelOriginalRecordService;
@Autowired @Autowired
private IGradingStandardService gradingStandardService; private IGradingStandardService gradingStandardService;
...@@ -90,6 +99,17 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI ...@@ -90,6 +99,17 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
@Autowired @Autowired
private OssClient ossClient; private OssClient ossClient;
@Autowired
private Executor executor1;
@Autowired
private LmsUserRelGroupClient lmsUserRelGroupClient;
@Value("${libreOffice.url}")
private String libreOfficeUrl;
@Override @Override
public Page<EntrustSampleItem> page(Page<EntrustSampleItem> page, EntrustSampleItem entrustSampleItem) { public Page<EntrustSampleItem> page(Page<EntrustSampleItem> page, EntrustSampleItem entrustSampleItem) {
String name = entrustSampleItem.getName(); String name = entrustSampleItem.getName();
...@@ -254,9 +274,62 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI ...@@ -254,9 +274,62 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
// 添加委托日志 // 添加委托日志
entrustRecordService.record(new Long[]{entrustId}, EntrustStatusEnum.TEST.getDisplay(), EntrustStatusEnum.TEST.getDisplay(), 0, account, "提交至报告编制"); entrustRecordService.record(new Long[]{entrustId}, EntrustStatusEnum.TEST.getDisplay(), EntrustStatusEnum.TEST.getDisplay(), 0, account, "提交至报告编制");
//执行转PDF操作
executor1.execute(new Runnable() {
@Override
public void run() {
changeExcelToPdf(ids,list);
}
});
return true; return true;
} }
public void changeExcelToPdf(Long[] ids,List<EntrustSampleItem> list){
List<ItemRelOriginalRecord> recordList = itemRelOriginalRecordService.list(Condition.create().setSqlSelect("record_id").in("item_id",ids).isNotNull("record_id").groupBy("record_id"));
if (CollectionUtils.isEmpty(recordList))
return;
List<Long> recordsList= recordList.stream().map(r->{
return r.getRecordId();
}).collect(Collectors.toList());
List<OriginalRecord> originalRecordList = originalRecordService.list(Condition.create().in("id",recordList).isNull("pdf_object_key"));
if (CollectionUtils.isEmpty(originalRecordList))
return;
excelToPdf(originalRecordList);
}
private void excelToPdf(List<OriginalRecord> originalRecordList) {
List<OriginalRecord> updateList = new ArrayList<>();
List<File> deleteFileList = new ArrayList<>();
for (OriginalRecord record : originalRecordList) {
InputStream io = ossClient.download(record.getObjectKey());
File file = LabreOfficeUtil.inputStream2File(io);
File filePdf= LabreOfficeUtil.convertOffice2PDF(libreOfficeUrl,file);
OssFileResult fileResult = ossClient.upload(filePdf);
OriginalRecord u = new OriginalRecord();
u.setId(record.getId());
u.setPdfObjectKey(fileResult.getObjectKey());
updateList.add(u);
deleteFileList.add(file);
deleteFileList.add(filePdf);
}
if (CollectionUtils.isNotEmpty(updateList)){
originalRecordService.updateBatchById(updateList);
}
FileUtils.deleteFiles(deleteFileList);
}
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public boolean submitCheck(Long[] ids, Account account) { public boolean submitCheck(Long[] ids, Account account) {
...@@ -746,4 +819,40 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI ...@@ -746,4 +819,40 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
private boolean isConfigureStatusPath(Entrust entrust){ private boolean isConfigureStatusPath(Entrust entrust){
return StringUtils.isBlank(entrust.getStatusPath()) ? false : true; return StringUtils.isBlank(entrust.getStatusPath()) ? false : true;
} }
@Override
public Page<LmsUserRelGroupVO> pageGroupUser(Page<LmsUserRelGroupVO> page, LmsUserRelGroup userRelGroup) {
Page<LmsUserRelGroup> relGroupPage = lmsUserRelGroupClient.getPageUser(userRelGroup).serviceData();
List<LmsUserRelGroup> groupList = relGroupPage.getRecords();
if (CollectionUtils.isEmpty(groupList)){
return page;
}
List<Long> userIdsList = groupList.stream().map(r->{
return r.getUserId();
}).collect(Collectors.toList());
List<EntrustSampleItem> experimentList = super.list(Condition.create().in("tester_id",userIdsList).eq("status",EntrustSampleItemStatusEnum.TEST));
List<LmsUserRelGroupVO> groupVOS = new ArrayList<>();
for (LmsUserRelGroup group:groupList) {
LmsUserRelGroupVO vo = group.convert(LmsUserRelGroupVO.class);
int num = 0;
for (EntrustSampleItem experiment:experimentList) {
if (experiment.getTesterId().equals(group.getUserId())){
num++;
}
}
vo.setTotal(num);
groupVOS.add(vo);
}
page.setRecords(groupVOS);
page.setCurrent(relGroupPage.getCurrent());
page.setSize(relGroupPage.getSize());
page.setTotal(relGroupPage.getTotal());
return page;
}
} }
...@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.toolkit.CollectionUtils; ...@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.toolkit.StringUtils; import com.baomidou.mybatisplus.toolkit.StringUtils;
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.service.hmhj.dto.SamplePrepareDTO; import com.patzn.cloud.service.hmhj.dto.SamplePrepareDTO;
import com.patzn.cloud.service.hmhj.entity.*; import com.patzn.cloud.service.hmhj.entity.*;
import com.patzn.cloud.service.hmhj.enums.*; import com.patzn.cloud.service.hmhj.enums.*;
...@@ -64,6 +65,17 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp ...@@ -64,6 +65,17 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp
return baseMapper.deleteBatchIds(ids) > 0; 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) @Transactional(rollbackFor = Exception.class)
@Override @Override
public boolean makeEnd(SamplePrepareDTO dto, Account account) { public boolean makeEnd(SamplePrepareDTO dto, Account account) {
...@@ -76,14 +88,32 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp ...@@ -76,14 +88,32 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp
List<Long> sampleIdsList = new ArrayList<>(); List<Long> sampleIdsList = new ArrayList<>();
List<EntrustSampleBackup> saveBackupList = new ArrayList<>();
for (EntrustSampleVO vo : sampleVOList) { for (EntrustSampleVO vo : sampleVOList) {
EntrustSamplePrepare prepare = vo.convert(EntrustSamplePrepare.class); if ("送检样".equalsIgnoreCase(vo.getMakeType())){
prepare.setEntrustSampleId(vo.getEntrustSampleId()); EntrustSamplePrepare prepare = vo.convert(EntrustSamplePrepare.class);
prepare.setStatus(EntrustSamplePrepareStatusEnum.RECEIVE); prepare.setEntrustSampleId(vo.getEntrustSampleId());
prepare.setProgress(EntrustSamplePrepareStatusEnum.RECEIVE); prepare.setStatus(EntrustSamplePrepareStatusEnum.RECEIVE);
prepare.setId(null); prepare.setProgress(EntrustSamplePrepareStatusEnum.RECEIVE);
savePrepare.add(prepare); prepare.setId(null);
sampleIdsList.add(vo.getEntrustSampleId()); savePrepare.add(prepare);
sampleIdsList.add(vo.getEntrustSampleId());
// 主要用来修改委托的复合型检测信息
EntrustSample entrustSample = vo.convert(EntrustSample.class);
entrustSampleService.updateById(entrustSample);
}else if ("备样".equalsIgnoreCase(vo.getMakeType())){
EntrustSampleBackup backup = new EntrustSampleBackup();
backup.setEntrustId(vo.getEntrustId());
backup.setSampleId(vo.getId());
backup.setStatus(EntrustSampleBackupStatusEnum.BACKUP_ING);
backup.setProgress(EntrustSampleBackupStatusEnum.BACKUP_ING);
backup.setReceiveTime(new Date());
// 添加类型,区分样品管理
// 类型:备样
backup.setType("BY");
saveBackupList.add(backup);
}
} }
...@@ -98,11 +128,13 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp ...@@ -98,11 +128,13 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp
}).collect(Collectors.toList()); }).collect(Collectors.toList());
List<EntrustSampleBackup> saveBackupList = new ArrayList<>();
for (EntrustSample sample : sampleList) { for (EntrustSample sample : sampleList) {
if (haveSampleIds.contains(sample.getId())) { if (haveSampleIds.contains(sample.getId())) {
continue; continue;
} }
//由制备的时候选择备样
EntrustSampleBackup backup = new EntrustSampleBackup(); EntrustSampleBackup backup = new EntrustSampleBackup();
backup.setEntrustId(sample.getEntrustId()); backup.setEntrustId(sample.getEntrustId());
backup.setSampleId(sample.getId()); backup.setSampleId(sample.getId());
...@@ -112,7 +144,12 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp ...@@ -112,7 +144,12 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp
// 添加类型,区分样品管理 // 添加类型,区分样品管理
// 类型:备样 // 类型:备样
backup.setType("BY"); backup.setType("BY");
saveBackupList.add(backup);
//由制备的时候选择备样
// saveBackupList.add(backup);
// 添加样品管理数据 // 添加样品管理数据
EntrustSampleBackup manage = new EntrustSampleBackup(); EntrustSampleBackup manage = new EntrustSampleBackup();
BeanUtils.copyProperties(backup, manage); BeanUtils.copyProperties(backup, manage);
...@@ -154,6 +191,7 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp ...@@ -154,6 +191,7 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp
Entrust updateEntrust = new Entrust(); Entrust updateEntrust = new Entrust();
updateEntrust.setStatus(EntrustStatusEnum.TEST); updateEntrust.setStatus(EntrustStatusEnum.TEST);
updateEntrust.setProgress(EntrustStatusEnum.TEST); updateEntrust.setProgress(EntrustStatusEnum.TEST);
updateEntrust.setFlowStatus(EntrustFlowEnum.RECEIVE.getName());
updateEntrust.setId(entrust.getId()); updateEntrust.setId(entrust.getId());
entrustService.updateById(updateEntrust); entrustService.updateById(updateEntrust);
// String remark = "提交至样品接收", title = "新的样品接收任务!"; // String remark = "提交至样品接收", title = "新的样品接收任务!";
...@@ -183,6 +221,12 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp ...@@ -183,6 +221,12 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp
sampleIdsList.add(prepare.getEntrustSampleId()); 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(); EntrustSamplePrepare prepare = new EntrustSamplePrepare();
prepare.setStatus(EntrustSamplePrepareStatusEnum.TEST); prepare.setStatus(EntrustSamplePrepareStatusEnum.TEST);
prepare.setStatus(EntrustSamplePrepareStatusEnum.TEST); prepare.setStatus(EntrustSamplePrepareStatusEnum.TEST);
...@@ -214,10 +258,13 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp ...@@ -214,10 +258,13 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp
} }
if (CollectionUtils.isEmpty(notOkSampleIds)) { 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())) { if (StringUtils.isNotEmpty(entrust.getStatusPath())) {
entrustService.submitToNextNode(entrust, account); 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; 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.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.baomidou.mybatisplus.toolkit.CollectionUtils;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
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.service.impl.BaseServiceImpl;
import com.patzn.cloud.commons.toolkit.DateUtils; import com.patzn.cloud.commons.toolkit.DateUtils;
import com.patzn.cloud.commons.toolkit.FileUtils; import com.patzn.cloud.commons.toolkit.FileUtils;
import com.patzn.cloud.feign.base.client.SysFileTemplateClient; import com.patzn.cloud.feign.base.client.SysFileTemplateClient;
import com.patzn.cloud.oss.starter.OssClient; 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.EntrustSampleDTO;
import com.patzn.cloud.service.hmhj.dto.QueryDTO; import com.patzn.cloud.service.hmhj.dto.QueryDTO;
import com.patzn.cloud.service.hmhj.dto.ReportDTO; import com.patzn.cloud.service.hmhj.dto.ReportDTO;
...@@ -18,16 +20,14 @@ import com.patzn.cloud.service.hmhj.dto.StatsQueryDTO; ...@@ -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.entity.*;
import com.patzn.cloud.service.hmhj.enums.*; import com.patzn.cloud.service.hmhj.enums.*;
import com.patzn.cloud.service.hmhj.vo.*; 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.common.StringHandleUtils;
import com.patzn.cloud.service.lims.hmhj.common.HSSFWorkbookUtil; 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.mapper.EntrustSampleMapper;
import com.patzn.cloud.service.lims.hmhj.original.OriginalUtil; import com.patzn.cloud.service.lims.hmhj.original.OriginalUtil;
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.poibox.xwpf.PoiUtil2007; import com.patzn.poibox.xwpf.PoiUtil2007;
import com.patzn.poibox.xwpf.XWPFTemplate; 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.ArrayUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.ss.util.CellRangeAddress;
...@@ -38,9 +38,6 @@ import org.apache.poi.xwpf.usermodel.XWPFTableCell; ...@@ -38,9 +38,6 @@ import org.apache.poi.xwpf.usermodel.XWPFTableCell;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STMerge; import org.openxmlformats.schemas.wordprocessingml.x2006.main.STMerge;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; 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.transaction.annotation.Transactional;
import java.io.File; import java.io.File;
...@@ -48,7 +45,6 @@ import java.io.FileOutputStream; ...@@ -48,7 +45,6 @@ import java.io.FileOutputStream;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.util.*; import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -63,6 +59,9 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe ...@@ -63,6 +59,9 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
@Autowired @Autowired
private SysFileTemplateClient sysFileTemplateClient; private SysFileTemplateClient sysFileTemplateClient;
@Autowired
private IEntrustSampleRecordService entrustSampleRecordService;
@Autowired @Autowired
private IEntrustReportTemplateService entrustReportTemplateService; private IEntrustReportTemplateService entrustReportTemplateService;
...@@ -101,7 +100,6 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe ...@@ -101,7 +100,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);
} }
...@@ -376,7 +374,7 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe ...@@ -376,7 +374,7 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
@Override @Override
public boolean updateSamplePrevFlowInfo(Entrust entrust, EntrustFlowEnum prevFlowStatus, Account account) { public boolean updateSamplePrevFlowInfo(Entrust entrust, EntrustFlowEnum prevFlowStatus, Account account) {
EntrustStatusEnum statusEnum = entrust.getStatus(); 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())); RestAssert.fail(CollectionUtils.isEmpty(sampleList), String.format("编号为【%s】委托下样品为空", entrust.getCode()));
Long[] sampleIds = sampleList.stream().map(t -> t.getId()).toArray(size -> new Long[size]); Long[] sampleIds = sampleList.stream().map(t -> t.getId()).toArray(size -> new Long[size]);
// //
...@@ -433,12 +431,18 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe ...@@ -433,12 +431,18 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
sampleStatus = EntrustSampleStatusEnum.REPORT_SEND; sampleStatus = EntrustSampleStatusEnum.REPORT_SEND;
} }
if (statusEnum == EntrustStatusEnum.TEST && prevFlowStatus.getValue() < 5) {
entrustSamplePrepareService.removeBySampleIds(sampleIds);
}
if (null != sampleStatus) { if (null != sampleStatus) {
updateSample.setStatus(sampleStatus); updateSample.setStatus(sampleStatus);
updateSample.setProgress(sampleStatus);
update(updateSample, Condition.create().eq("entrust_id", entrust.getId())); update(updateSample, Condition.create().eq("entrust_id", entrust.getId()));
} }
if (null != itemStatus) { if (null != itemStatus) {
updateItem.setStatus(itemStatus); updateItem.setStatus(itemStatus);
updateItem.setProgress(itemStatus);
entrustSampleItemService.update(updateItem, Condition.create().in("entrust_sample_id", sampleIds)); entrustSampleItemService.update(updateItem, Condition.create().in("entrust_sample_id", sampleIds));
} }
return false; return false;
...@@ -480,6 +484,20 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe ...@@ -480,6 +484,20 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
} }
@Override @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) { public boolean removeByIds(List<Long> ids) {
return baseMapper.deleteBatchIds(ids) > 0; return baseMapper.deleteBatchIds(ids) > 0;
} }
...@@ -534,6 +552,7 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe ...@@ -534,6 +552,7 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
sampleVO.setId(null); sampleVO.setId(null);
sampleVO.setGroupId(g.getKey()); sampleVO.setGroupId(g.getKey());
sampleVO.setGroupName(g.getValue()); sampleVO.setGroupName(g.getValue());
sampleVO.setMakeType("送检样");
Set<String> itemNameSet = new HashSet<>(); Set<String> itemNameSet = new HashSet<>();
for (EntrustSampleItem item : itemList) { for (EntrustSampleItem item : itemList) {
...@@ -545,6 +564,12 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe ...@@ -545,6 +564,12 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
sampleVO.setEntrustSampleId(sample.getId()); sampleVO.setEntrustSampleId(sample.getId());
list.add(sampleVO); list.add(sampleVO);
} }
//备样
EntrustSampleVO sampleVO = sample.convert(EntrustSampleVO.class);
sampleVO.setMakeType("备样");
list.add(sampleVO);
} }
return list; return list;
} }
...@@ -1104,7 +1129,39 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe ...@@ -1104,7 +1129,39 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
cell.setText(StringHandleUtils.getFieldValueByFieldName(StringHandleUtils.getObjectFromMap(itemCellMap, k), object)); 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 = entrustSample.getSampleShape();
String sampleFrom = entrustSample.getSampleFrom();
Integer complianceTest = entrustSample.getComplianceTest();
StringBuffer sb = new StringBuffer();
String remark = "";
if (StringUtils.isNotBlank(sampleShape) && !sourceSample.getSampleShape().equals(sampleShape)) {
sb.append(String.format("样品状态:由【%s】 修改为 【%s】,", sourceSample.getSampleShape(), sampleShape));
}
if (StringUtils.isNotBlank(sampleFrom) && !sourceSample.getSampleFrom().equals(sampleFrom)) {
sb.append(String.format("样品来源:由【%s】 修改为 【%s】,", sourceSample.getSampleFrom(), sampleFrom));
}
if (null != complianceTest && sourceSample.getComplianceTest() != complianceTest) {
sb.append(String.format("现场见证:由【%s】 修改为 【%s】,", sourceSample.getComplianceTest(), complianceTest));
} }
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
...@@ -7,10 +7,12 @@ import com.patzn.cloud.commons.controller.Account; ...@@ -7,10 +7,12 @@ 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.*; 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.OssClient;
import com.patzn.cloud.oss.starter.OssFileResult; 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.*;
...@@ -38,7 +40,9 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -38,7 +40,9 @@ import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.*; import java.io.*;
import java.math.BigDecimal;
import java.util.*; import java.util.*;
import java.util.concurrent.Executor;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -80,6 +84,13 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust> ...@@ -80,6 +84,13 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
@Autowired @Autowired
private SysOrgClient sysOrgClient; private SysOrgClient sysOrgClient;
@Autowired
private Executor executor1;
@Autowired
private SysUserClient sysUserClient;
@Autowired @Autowired
private LmsChemicalCategoryClient lmsChemicalCategoryClient; private LmsChemicalCategoryClient lmsChemicalCategoryClient;
...@@ -222,40 +233,47 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust> ...@@ -222,40 +233,47 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
flowStatus = entrust.getStatusPath().split("->")[0]; flowStatus = entrust.getStatusPath().split("->")[0];
} }
entrust.setFlowStatus(flowStatus); entrust.setFlowStatus(flowStatus);
if (saveEntrust(entrust)) {
if (CollectionUtils.isNotEmpty(sampleDTOList)) { BigDecimal totalFee = BigDecimal.ZERO;
entrust.setId(IdWorker.getId());
List<EntrustSample> saveSampleList = new ArrayList<>();
List<EntrustSampleItem> saveEntrustSampleItemList = new ArrayList<>(); if (CollectionUtils.isNotEmpty(sampleDTOList)) {
for (int x = 0; x < sampleDTOList.size(); x++) {
EntrustSampleDTO sampleDTO = sampleDTOList.get(x); List<EntrustSample> saveSampleList = new ArrayList<>();
EntrustSample sample = sampleDTO.convert(EntrustSample.class); List<EntrustSampleItem> saveEntrustSampleItemList = new ArrayList<>();
sample.setEntrustId(entrust.getId()); for (int x = 0; x < sampleDTOList.size(); x++) {
//生成样品编号 EntrustSampleDTO sampleDTO = sampleDTOList.get(x);
initSampleCode(sample); EntrustSample sample = sampleDTO.convert(EntrustSample.class);
sample.setId(IdWorker.getId()); sample.setEntrustId(entrust.getId());
sample.setOrderBy(x); //生成样品编号
saveSampleList.add(sample); initSampleCode(sample);
List<EntrustSampleItem> experiments = sampleDTO.getItemList(); sample.setId(IdWorker.getId());
if (CollectionUtils.isEmpty(experiments)) { sample.setOrderBy(x);
continue; saveSampleList.add(sample);
} List<EntrustSampleItem> experiments = sampleDTO.getItemList();
for (EntrustSampleItem sampleItem : experiments) { if (CollectionUtils.isEmpty(experiments)) {
sampleItem.setEntrustSampleId(sample.getId()); continue;
saveEntrustSampleItemList.add(sampleItem);
}
} }
for (EntrustSampleItem sampleItem : experiments) {
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)) { if (CollectionUtils.isNotEmpty(saveSampleList)) {
entrustSampleService.saveBatch(saveSampleList); entrustSampleService.saveBatch(saveSampleList);
} }
if (CollectionUtils.isNotEmpty(saveEntrustSampleItemList)) { if (CollectionUtils.isNotEmpty(saveEntrustSampleItemList)) {
entrustSampleItemService.saveBatch(saveEntrustSampleItemList); entrustSampleItemService.saveBatch(saveEntrustSampleItemList);
} }
} }
} }
return true; return true;
} }
...@@ -270,6 +288,7 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust> ...@@ -270,6 +288,7 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
Entrust entrust = new Entrust(); Entrust entrust = new Entrust();
entrust.setStatus(EntrustStatusEnum.CHECK); entrust.setStatus(EntrustStatusEnum.CHECK);
entrust.setProgress(EntrustStatusEnum.CHECK); entrust.setProgress(EntrustStatusEnum.CHECK);
entrust.setFlowStatus(EntrustFlowEnum.CHECK.getName());
if (update(entrust, Condition.create().in("id", ids))) { if (update(entrust, Condition.create().in("id", ids))) {
entrustRecordService.record(ids, EntrustStatusEnum.DRAFT.getDisplay(), EntrustStatusEnum.CHECK.getDisplay(), 0, account, "提交至委托审核"); entrustRecordService.record(ids, EntrustStatusEnum.DRAFT.getDisplay(), EntrustStatusEnum.CHECK.getDisplay(), 0, account, "提交至委托审核");
lmsMsgService.sendMsg("/hmhj/entrust_manage/entrust_review", "有委托从委托登记提交过来,请及时审核", "新的委托审核任务!", account, null); lmsMsgService.sendMsg("/hmhj/entrust_manage/entrust_review", "有委托从委托登记提交过来,请及时审核", "新的委托审核任务!", account, null);
...@@ -310,6 +329,7 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust> ...@@ -310,6 +329,7 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
} else { } else {
e.setStatus(EntrustStatusEnum.DRAFT); e.setStatus(EntrustStatusEnum.DRAFT);
e.setProgress(EntrustStatusEnum.BACK_CHECK); e.setProgress(EntrustStatusEnum.BACK_CHECK);
e.setFlowStatus(EntrustFlowEnum.DRAFT.getName());
updateById(e); updateById(e);
entrustRecordService.record(new Long[]{e.getId()}, EntrustStatusEnum.CHECK.getDisplay(), EntrustStatusEnum.DRAFT.getDisplay(), 1, account, reason); entrustRecordService.record(new Long[]{e.getId()}, EntrustStatusEnum.CHECK.getDisplay(), EntrustStatusEnum.DRAFT.getDisplay(), 1, account, reason);
} }
...@@ -336,6 +356,7 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust> ...@@ -336,6 +356,7 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
} else { } else {
e.setStatus(EntrustStatusEnum.MAKE); e.setStatus(EntrustStatusEnum.MAKE);
e.setProgress(EntrustStatusEnum.MAKE); e.setProgress(EntrustStatusEnum.MAKE);
e.setFlowStatus(EntrustFlowEnum.MAKE.getName());
updateById(e); updateById(e);
entrustRecordService.record(new Long[]{e.getId()}, EntrustStatusEnum.CHECK.getDisplay(), EntrustStatusEnum.MAKE.getDisplay(), 0, account, "提交至样品待制备"); entrustRecordService.record(new Long[]{e.getId()}, EntrustStatusEnum.CHECK.getDisplay(), EntrustStatusEnum.MAKE.getDisplay(), 0, account, "提交至样品待制备");
} }
...@@ -361,6 +382,7 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust> ...@@ -361,6 +382,7 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
} else { } else {
e.setStatus(EntrustStatusEnum.MAKE); e.setStatus(EntrustStatusEnum.MAKE);
e.setProgress(EntrustStatusEnum.MAKE); e.setProgress(EntrustStatusEnum.MAKE);
e.setFlowStatus(EntrustFlowEnum.MAKE.getName());
updateById(e); updateById(e);
entrustRecordService.record(new Long[]{e.getId()}, EntrustStatusEnum.DRAFT.getDisplay(), EntrustStatusEnum.MAKE.getDisplay(), 0, account, "委托登记提交至样品待制备"); entrustRecordService.record(new Long[]{e.getId()}, EntrustStatusEnum.DRAFT.getDisplay(), EntrustStatusEnum.MAKE.getDisplay(), 0, account, "委托登记提交至样品待制备");
} }
...@@ -433,10 +455,41 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust> ...@@ -433,10 +455,41 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
entrustSampleItemService.saveBatch(saveItemList); entrustSampleItemService.saveBatch(saveItemList);
} }
} }
executor1.execute(new Runnable() {
@Override
public void run() {
calTotalFee(entrust.getId());
}
});
return true; return true;
} }
public void calTotalFee(Long id) {
//计算委托费用
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 -> {
return e.getId();
}).collect(Collectors.toList());
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());
}
Entrust entrust = new Entrust();
entrust.setId(id);
entrust.setTotalFee(totalFee);
updateById(entrust);
}
@Override @Override
public EntrustDTO getDTOById(Long id) { public EntrustDTO getDTOById(Long id) {
Entrust entrust = getById(id); Entrust entrust = getById(id);
...@@ -496,7 +549,8 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust> ...@@ -496,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;
...@@ -974,12 +1028,15 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust> ...@@ -974,12 +1028,15 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
} else if (prevStatus == EntrustStatusEnum.QUALITY_CHECK) { } else if (prevStatus == EntrustStatusEnum.QUALITY_CHECK) {
uri = "/hmhj/quality_manage/quality_decide"; uri = "/hmhj/quality_manage/quality_decide";
} }
// 更新委托样品信息
entrustSampleService.updateSamplePrevFlowInfo(entrust, prevFlowStatus, account);
entrust.setStatus(prevStatus); entrust.setStatus(prevStatus);
entrust.setProgress(EntrustStatusEnum.BACK_CHECK); entrust.setProgress(EntrustStatusEnum.BACK_CHECK);
entrust.setFlowStatus(prevFlowStatus.getName()); entrust.setFlowStatus(prevFlowStatus.getName());
updateById(entrust); updateById(entrust);
// 更新委托样品信息
entrustSampleService.updateSamplePrevFlowInfo(entrust, prevFlowStatus, account);
String title = String.format("新的%s任务!", prevFlowStatus.getDisplay()), String title = String.format("新的%s任务!", prevFlowStatus.getDisplay()),
content = String.format("有%s驳回过来,请及时%s", EntrustFlowEnum.convert(flowStatus).getDisplay(), 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); entrustRecordService.record(new Long[]{entrust.getId()}, status.getDisplay(), prevStatus.getDisplay(), 1, account, reason);
...@@ -1052,6 +1109,131 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust> ...@@ -1052,6 +1109,131 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
return true; 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;
}
@Transactional(rollbackFor = Exception.class)
@Override
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;
}
private List<EntrustSampleDTO> listSampleDTOByType(Long entrustId, int type) { private List<EntrustSampleDTO> listSampleDTOByType(Long entrustId, int type) {
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());
......
...@@ -2,31 +2,30 @@ package com.patzn.cloud.service.lims.hmhj.service.impl; ...@@ -2,31 +2,30 @@ package com.patzn.cloud.service.lims.hmhj.service.impl;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.Condition; 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.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.commons.controller.LoginHelper; import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
import com.patzn.cloud.service.hmhj.entity.*; import com.patzn.cloud.service.hmhj.entity.EntrustSampleItemIndex;
import com.patzn.cloud.service.hmhj.enums.EntrustSampleStatusEnum; import com.patzn.cloud.service.hmhj.entity.OriginalTemplate;
import com.patzn.cloud.service.hmhj.enums.EntrustStatusEnum; import com.patzn.cloud.service.hmhj.entity.OriginalTemplateConfig;
import com.patzn.cloud.service.hmhj.vo.CollectionVO; import com.patzn.cloud.service.hmhj.vo.CollectionVO;
import com.patzn.cloud.service.hmhj.vo.OriginalRecordInfoVO; import com.patzn.cloud.service.hmhj.vo.OriginalRecordInfoVO;
import com.patzn.cloud.service.lims.collection.entity.LmsOriginalRecordInfo; import com.patzn.cloud.service.lims.collection.entity.LmsOriginalRecordInfo;
import com.patzn.cloud.service.lims.collection.entity.OriginalAtlas; import com.patzn.cloud.service.lims.collection.entity.OriginalAtlas;
import com.patzn.cloud.service.lims.hmhj.mapper.LmsOriginalRecordInfoMapper; import com.patzn.cloud.service.lims.hmhj.mapper.LmsOriginalRecordInfoMapper;
import com.patzn.cloud.service.lims.hmhj.service.*; import com.patzn.cloud.service.lims.hmhj.service.IEntrustSampleItemIndexService;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl; import com.patzn.cloud.service.lims.hmhj.service.ILmsOriginalRecordInfoService;
import com.patzn.cloud.service.lims.hmhj.service.IOriginalTemplateConfigService;
import com.patzn.cloud.service.lims.hmhj.service.IOriginalTemplateService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/** /**
* 原始记录解析后的数据存储表 服务实现类 * 原始记录解析后的数据存储表 服务实现类
...@@ -38,21 +37,12 @@ import java.util.stream.Collectors; ...@@ -38,21 +37,12 @@ import java.util.stream.Collectors;
public class LmsOriginalRecordInfoServiceImpl extends BaseServiceImpl<LmsOriginalRecordInfoMapper, LmsOriginalRecordInfo> implements ILmsOriginalRecordInfoService { public class LmsOriginalRecordInfoServiceImpl extends BaseServiceImpl<LmsOriginalRecordInfoMapper, LmsOriginalRecordInfo> implements ILmsOriginalRecordInfoService {
@Autowired @Autowired
private IEntrustService entrustService;
@Autowired
private IOriginalTemplateService originalTemplateService; private IOriginalTemplateService originalTemplateService;
@Autowired @Autowired
private IOriginalTemplateConfigService originalTemplateConfigService; private IOriginalTemplateConfigService originalTemplateConfigService;
@Autowired @Autowired
private IEntrustSampleService entrustSampleService;
@Autowired
private IEntrustSampleItemService entrustSampleItemService;
@Autowired
private IEntrustSampleItemIndexService entrustSampleItemIndexService; private IEntrustSampleItemIndexService entrustSampleItemIndexService;
@Override @Override
...@@ -73,7 +63,7 @@ public class LmsOriginalRecordInfoServiceImpl extends BaseServiceImpl<LmsOrigina ...@@ -73,7 +63,7 @@ public class LmsOriginalRecordInfoServiceImpl extends BaseServiceImpl<LmsOrigina
OriginalTemplate template = originalTemplateService.getById(templateId); OriginalTemplate template = originalTemplateService.getById(templateId);
RestAssert.fail(null == template, "原始记录模板为空"); RestAssert.fail(null == template, "原始记录模板为空");
String tempName = template.getName(); // String tempName = template.getName();
// 需要采集的指标项 // 需要采集的指标项
List<OriginalTemplateConfig> configList = originalTemplateConfigService.list(Condition.create() List<OriginalTemplateConfig> configList = originalTemplateConfigService.list(Condition.create()
.eq("template_id", template).eq("itemed", 1).eq("deleted", 0)); .eq("template_id", template).eq("itemed", 1).eq("deleted", 0));
...@@ -84,8 +74,6 @@ public class LmsOriginalRecordInfoServiceImpl extends BaseServiceImpl<LmsOrigina ...@@ -84,8 +74,6 @@ public class LmsOriginalRecordInfoServiceImpl extends BaseServiceImpl<LmsOrigina
RestAssert.fail(CollectionUtils.isEmpty(originalRecordInfoList), "所选检测项目对应的采集数据不存在"); RestAssert.fail(CollectionUtils.isEmpty(originalRecordInfoList), "所选检测项目对应的采集数据不存在");
List<EntrustSampleItemIndex> itemIndexList = new ArrayList<>(); List<EntrustSampleItemIndex> itemIndexList = new ArrayList<>();
// 具体逻辑需要额外处理 // 具体逻辑需要额外处理
// 目前不清楚字段content和abs代表的含义
// and so on ...
// //
for (OriginalRecordInfoVO vo : originalRecordInfoList) { for (OriginalRecordInfoVO vo : originalRecordInfoList) {
// OriginalAtlas data = JSONObject.parseObject(vo.getData(),OriginalAtlas.class); // OriginalAtlas data = JSONObject.parseObject(vo.getData(),OriginalAtlas.class);
...@@ -128,11 +116,6 @@ public class LmsOriginalRecordInfoServiceImpl extends BaseServiceImpl<LmsOrigina ...@@ -128,11 +116,6 @@ public class LmsOriginalRecordInfoServiceImpl extends BaseServiceImpl<LmsOrigina
itemIndexList.add(itemIndex); itemIndexList.add(itemIndex);
} }
// 曲线信息
if (CollectionUtils.isNotEmpty(data.getCurveData())) {
}
} }
if (CollectionUtils.isNotEmpty(itemIndexList)) { if (CollectionUtils.isNotEmpty(itemIndexList)) {
......
package com.patzn.cloud.service.lims.hmhj.service.impl;
import com.patzn.cloud.service.hmhj.entity.OriginalRecordVersion;
import com.patzn.cloud.service.lims.hmhj.mapper.OriginalRecordVersionMapper;
import com.patzn.cloud.service.lims.hmhj.service.IOriginalRecordVersionService;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import java.util.List;
/**
* 服务实现类
*
* @author wwd
* @since 2021-07-08
*/
@Service
public class OriginalRecordVersionServiceImpl extends BaseServiceImpl<OriginalRecordVersionMapper, OriginalRecordVersion> implements IOriginalRecordVersionService {
@Override
public Page<OriginalRecordVersion> page(Page<OriginalRecordVersion> page, OriginalRecordVersion originalRecordVersion) {
Wrapper wrapper = new EntityWrapper<>(originalRecordVersion);
return this.page(page, wrapper);
}
@Override
public boolean removeByIds(List<Long> ids) {
return baseMapper.deleteBatchIds(ids) > 0;
}
}
...@@ -56,6 +56,11 @@ public class OriginalTemplateServiceImpl extends BaseServiceImpl<OriginalTemplat ...@@ -56,6 +56,11 @@ public class OriginalTemplateServiceImpl extends BaseServiceImpl<OriginalTemplat
@Autowired @Autowired
private IEntrustSampleItemService entrustSampleItemService; private IEntrustSampleItemService entrustSampleItemService;
@Autowired
private IOriginalRecordVersionService originalRecordVersionService;
@Autowired @Autowired
private IOriginalTemplateConfigService originalTemplateConfigService; private IOriginalTemplateConfigService originalTemplateConfigService;
...@@ -227,6 +232,14 @@ public class OriginalTemplateServiceImpl extends BaseServiceImpl<OriginalTemplat ...@@ -227,6 +232,14 @@ public class OriginalTemplateServiceImpl extends BaseServiceImpl<OriginalTemplat
return true; return true;
} }
public void addVersionRecord( OriginalRecord report){
OriginalRecordVersion recordVersion =report.convert(OriginalRecordVersion.class);
recordVersion.setId(null);
recordVersion.setOriginalRecordId(report.getId());
originalRecordVersionService.save(recordVersion);
}
@Override @Override
public boolean editOriginal(String someParam, OssFileResult obsFileResult) { public boolean editOriginal(String someParam, OssFileResult obsFileResult) {
RestAssert.fail(StringUtils.isBlank(someParam), "业务ID不能为空"); RestAssert.fail(StringUtils.isBlank(someParam), "业务ID不能为空");
...@@ -243,6 +256,7 @@ public class OriginalTemplateServiceImpl extends BaseServiceImpl<OriginalTemplat ...@@ -243,6 +256,7 @@ public class OriginalTemplateServiceImpl extends BaseServiceImpl<OriginalTemplat
if (null == report) { if (null == report) {
RestAssert.fail("数据有误"); RestAssert.fail("数据有误");
} }
addVersionRecord(report);
OriginalRecord originalRecord = new OriginalRecord(); OriginalRecord originalRecord = new OriginalRecord();
originalRecord.setId(businessId); originalRecord.setId(businessId);
originalRecord.setObjectKey(obsFileResult.getObjectKey()); originalRecord.setObjectKey(obsFileResult.getObjectKey());
......
package com.patzn.cloud.service.lims.hmhj.threadpool;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import java.util.concurrent.Executor;
import java.util.concurrent.ThreadPoolExecutor;
@Configuration
@EnableAsync
public class ExecutorConfig {
@Bean
public Executor executor1() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setThreadNamePrefix("executor1-thread-");
executor.setMaxPoolSize(20);
executor.setCorePoolSize(15);
executor.setQueueCapacity(0);
executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
return executor;
}
}
...@@ -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>
...@@ -91,7 +91,9 @@ ...@@ -91,7 +91,9 @@
</if> </if>
) )
SELECT i.*,s.name AS "sampleName",e.test_side "testSide",s.code AS "sampleCode",l.record_id,r.object_key AS "recordObjectKey" FROM i SELECT i.*,s.name AS "sampleName",e.test_side "testSide",s.code AS "sampleCode",l.record_id,r.object_key AS "recordObjectKey",
s.compliance_test
FROM i
JOIN entrust_sample s ON i.entrust_sample_id = s.id JOIN entrust_sample s ON i.entrust_sample_id = s.id
LEFT JOIN ( SELECT id,item_id,record_id FROM item_rel_original_record WHERE deleted = 0 ) l ON i.id = l.item_id LEFT JOIN ( SELECT id,item_id,record_id FROM item_rel_original_record WHERE deleted = 0 ) l ON i.id = l.item_id
LEFT JOIN ( SELECT id,object_key FROM original_record WHERE deleted = 0 ) r ON l.record_id = r.id LEFT JOIN ( SELECT id,object_key FROM original_record WHERE deleted = 0 ) r ON l.record_id = r.id
...@@ -156,7 +158,8 @@ ...@@ -156,7 +158,8 @@
</if> </if>
) )
SELECT i.*,s.name AS "sampleName",s.code AS "sampleCode",e.test_side "testSide",l.record_id,r.object_key AS "recordObjectKey" SELECT i.*,s.name AS "sampleName",s.code AS "sampleCode",e.test_side "testSide",l.record_id,r.object_key AS "recordObjectKey",
s.compliance_test
FROM i FROM i
JOIN entrust_sample s ON i.entrust_sample_id = s.id JOIN entrust_sample s ON i.entrust_sample_id = s.id
JOIN (select t.id,t.code,t.test_side from entrust t where t.deleted = 0 ) e on s.entrust_id = e.id JOIN (select t.id,t.code,t.test_side from entrust t where t.deleted = 0 ) e on s.entrust_id = e.id
......
...@@ -6,8 +6,7 @@ ...@@ -6,8 +6,7 @@
SELECT SELECT
p.id, p.entrust_sample_id,s.code,s.name,s.product_code,s.product_basis_name,s.compose_judge,s.product_standard_id,s.name_code, p.id, p.entrust_sample_id,s.code,s.name,s.product_code,s.product_basis_name,s.compose_judge,s.product_standard_id,s.name_code,
s.compliance_test,p.group_id,p.group_name,p.make_type,p.make_quantity,p.store_way,p.store_location,p.maker,p.make_time
p.group_id,p.group_name,p.make_type,p.make_quantity,p.store_way,p.store_location,p.maker,p.make_time
FROM FROM
entrust_sample_prepare entrust_sample_prepare
P JOIN entrust_sample s ON P.entrust_sample_id = s.ID P JOIN entrust_sample s ON P.entrust_sample_id = s.ID
......
<?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>
<?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.OriginalRecordVersionMapper">
</mapper>
CREATE TABLE "public"."original_record_version" (
CREATE TABLE "public"."original_record_version" (
"id" int8 NOT NULL,
"original_record_id" int8,
"entrust_id" int8,
"template_id" int8,
"title" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying,
"company_id" int8,
"uid" int8,
"ctime" timestamp(6) DEFAULT NULL::timestamp without time zone,
"lid" int8,
"ltime" timestamp(6) DEFAULT NULL::timestamp without time zone,
"deleted" int2 DEFAULT 0,
"uname" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying,
"remark" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying,
"object_key" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying,
"version" int2
)
;
COMMENT ON COLUMN "public"."original_record_version"."id" IS '主键';
COMMENT ON COLUMN "public"."original_record_version"."original_record_id" IS '原始记录ID';
COMMENT ON COLUMN "public"."original_record_version"."entrust_id" IS '试验委托单ID';
COMMENT ON COLUMN "public"."original_record_version"."template_id" IS '原始记录模板ID';
COMMENT ON COLUMN "public"."original_record_version"."title" IS '标题';
COMMENT ON COLUMN "public"."original_record_version"."company_id" IS '企业ID';
COMMENT ON COLUMN "public"."original_record_version"."uid" IS '创建人';
COMMENT ON COLUMN "public"."original_record_version"."ctime" IS '创建时间';
COMMENT ON COLUMN "public"."original_record_version"."lid" IS '最后修改时间';
COMMENT ON COLUMN "public"."original_record_version"."ltime" IS '最后修改人ID';
COMMENT ON COLUMN "public"."original_record_version"."deleted" IS '是否删除';
COMMENT ON COLUMN "public"."original_record_version"."object_key" IS '原始记录key';
COMMENT ON COLUMN "public"."original_record_version"."version" IS '版本';
-- ----------------------------
-- Primary Key structure for table original_record_version
-- ----------------------------
ALTER TABLE "public"."original_record_version" ADD CONSTRAINT "original_record_version_pkey" PRIMARY KEY ("id");
ALTER TABLE "public"."original_record"
ADD COLUMN "pdf_object_key" varchar(255);
COMMENT ON COLUMN "public"."original_record"."pdf_object_key" IS 'PDF原始记录key';
ALTER TABLE "public"."original_record_version"
ADD COLUMN "pdf_object_key" varchar(255) COLLATE "pg_catalog"."default";
COMMENT ON COLUMN "public"."original_record_version"."pdf_object_key" IS 'PDF原始记录key';
ALTER TABLE "public"."qualification"
ALTER TABLE "public"."qualification"
ADD COLUMN "price" decimal(10,1);
COMMENT ON COLUMN "public"."qualification"."price" IS '单价';
ALTER TABLE "public"."material_item"
ADD COLUMN "price" decimal(10,1);
COMMENT ON COLUMN "public"."material_item"."price" IS '单价';
ALTER TABLE "public"."entrust_sample_item"
ADD COLUMN "price" decimal(10,1);
COMMENT ON COLUMN "public"."entrust_sample_item"."price" IS '单价';
ALTER TABLE "public"."entrust"
ADD COLUMN "total_fee" decimal(10,1);
COMMENT ON COLUMN "public"."entrust"."total_fee" IS '委托费用';
\ No newline at end of file
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_time_s" timestamp(6),
ADD COLUMN "test_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_time_s" IS '检测开始日期';
COMMENT ON COLUMN "public"."entrust"."test_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 "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"."contract_sample"
ALTER TABLE "public"."contract_sample"
ADD COLUMN "judgment_type" varchar(50);
COMMENT ON COLUMN "public"."contract_sample"."judgment_type" IS '判定类型';
\ No newline at end of file
-- 新增委托字段 --
-- 新增委托字段 --
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