From dc152414c2c5ef35ec0a228190b7313da9f28a62 Mon Sep 17 00:00:00 2001 From: litao Date: Fri, 21 Jul 2023 17:28:31 +0800 Subject: [PATCH] =?UTF-8?q?2023=E5=B9=B47=E6=9C=8821=E6=97=A517:28:06?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/springblade/lims/entry/Entrust.java | 13 + .../springblade/lims/entry/HandleSample.java | 100 ++++ .../springblade/system/feign/ISysClient.java | 8 + .../system/feign/ISysClientFallback.java | 4 + .../goods/service/impl/ApplyServiceImpl.java | 1 - .../lims/controller/EntrustController.java | 14 +- .../controller/HandleSampleController.java | 88 ++++ .../lims/excel/SimpleReceiveExcel.java | 1 - .../lims/mapper/EntrustMapper.java | 7 +- .../springblade/lims/mapper/EntrustMapper.xml | 73 ++- .../lims/mapper/HandleSampleMapper.java | 13 + .../lims/service/IEntrtrustService.java | 7 +- .../lims/service/IHandleSampleService.java | 29 ++ .../lims/service/impl/EntrustServiceImpl.java | 60 +-- .../service/impl/HandleSampleServiceImpl.java | 432 ++++++++++++++++++ .../springblade/system/feign/SysClient.java | 5 + .../system/service/IParamService.java | 1 + .../system/service/impl/ParamServiceImpl.java | 10 + 18 files changed, 816 insertions(+), 50 deletions(-) create mode 100644 lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/HandleSample.java create mode 100644 lab-service/lab-lims/src/main/java/org/springblade/lims/controller/HandleSampleController.java create mode 100644 lab-service/lab-lims/src/main/java/org/springblade/lims/mapper/HandleSampleMapper.java create mode 100644 lab-service/lab-lims/src/main/java/org/springblade/lims/service/IHandleSampleService.java create mode 100644 lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/HandleSampleServiceImpl.java diff --git a/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/Entrust.java b/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/Entrust.java index 94a8bd3..44acc5c 100644 --- a/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/Entrust.java +++ b/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/Entrust.java @@ -212,6 +212,11 @@ public class Entrust extends BaseEntity implements Serializable { // 审批时间 private Date approvalDate; + /** + * 样品处理情况 + */ + private String sampleHandle; + @TableField(exist = false) private List contractSamples; @@ -235,4 +240,12 @@ public class Entrust extends BaseEntity implements Serializable { // 领养日期 @TableField(exist = false) private Date simpleReceiverTime; + + // 过期时间 + @TableField(exist = false) + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date beyondTime; + + // 留样处理状态(0待申请 1待处理 2已处理) + private Integer handleState; } diff --git a/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/HandleSample.java b/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/HandleSample.java new file mode 100644 index 0000000..35c03c5 --- /dev/null +++ b/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/HandleSample.java @@ -0,0 +1,100 @@ +package org.springblade.lims.entry; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springblade.core.mp.base.BaseEntity; + +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +@Data +@SuppressWarnings("all") +@TableName("f_handle_sample") +public class HandleSample extends BaseEntity implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * + */ + private Long entrustId; + + /** + * 处理意见 + */ + private String handleOpinion; + + /** + * 申请人id + */ + private Long applicantId; + + /** + * 申请人 + */ + private String applicant; + + /** + * 申请时间 + */ + private Date applicantTime; + + /** + * 审批意见 + */ + private String approveOpinion; + + /** + * 审批人id + */ + private Long opinionId; + + /** + * 审批人 + */ + private String opinionBy; + + /** + * 审批时间 + */ + private Date opinionTime; + + /** + * 当前30天之前的时间 + */ + @TableField(exist = false) + private Date starTime; + + @TableField(exist = false) + private List simpleList; + + // 10.样品名称 + @TableField(exist = false) + private String simpleName; + + // 11.样品数量 + @TableField(exist = false) + private Integer simpleCount; + + // 18.接样日期 + @TableField(exist = false) + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date samplingDate; + + // 过期时间 + @TableField(exist = false) + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date beyondTime; + + // 检测编号 + @TableField(exist = false) + private String experieNum; + + // 留样处理状态(0待申请 1待处理 2已处理) + @TableField(exist = false) + private Integer handleState; + +} diff --git a/lab-service-api/lab-system-api/src/main/java/org/springblade/system/feign/ISysClient.java b/lab-service-api/lab-system-api/src/main/java/org/springblade/system/feign/ISysClient.java index 8fd0d2a..5a1cbe4 100644 --- a/lab-service-api/lab-system-api/src/main/java/org/springblade/system/feign/ISysClient.java +++ b/lab-service-api/lab-system-api/src/main/java/org/springblade/system/feign/ISysClient.java @@ -6,6 +6,8 @@ import org.springblade.core.tool.api.R; import org.springblade.system.entity.*; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import java.util.List; @@ -261,6 +263,12 @@ public interface ISysClient { @GetMapping(PARAM_VALUE) R getParamValue(@RequestParam("paramKey") String paramKey); + /** + * 修改参数配置 + */ + @PostMapping("/updateParam") + void updateParam(@RequestBody Param param); + /** * 获取行政区划 * diff --git a/lab-service-api/lab-system-api/src/main/java/org/springblade/system/feign/ISysClientFallback.java b/lab-service-api/lab-system-api/src/main/java/org/springblade/system/feign/ISysClientFallback.java index 75fb1e5..069d290 100644 --- a/lab-service-api/lab-system-api/src/main/java/org/springblade/system/feign/ISysClientFallback.java +++ b/lab-service-api/lab-system-api/src/main/java/org/springblade/system/feign/ISysClientFallback.java @@ -130,6 +130,10 @@ public class ISysClientFallback implements ISysClient { return R.fail("获取数据失败"); } + @Override + public void updateParam(Param param) { + } + @Override public R getRegion(String code) { return R.fail("获取数据失败"); diff --git a/lab-service/lab-capital/src/main/java/org/springblade/lims/goods/service/impl/ApplyServiceImpl.java b/lab-service/lab-capital/src/main/java/org/springblade/lims/goods/service/impl/ApplyServiceImpl.java index 526d244..7f80516 100644 --- a/lab-service/lab-capital/src/main/java/org/springblade/lims/goods/service/impl/ApplyServiceImpl.java +++ b/lab-service/lab-capital/src/main/java/org/springblade/lims/goods/service/impl/ApplyServiceImpl.java @@ -257,7 +257,6 @@ public class ApplyServiceImpl extends BaseServiceImpl implem list.add(0); list.add(1); list.add(2); - list.add(3); // 当天之前为确认的申领单数量 int count = this.count(new LambdaQueryWrapper() diff --git a/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/EntrustController.java b/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/EntrustController.java index d51275e..6dec880 100644 --- a/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/EntrustController.java +++ b/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/EntrustController.java @@ -1169,11 +1169,11 @@ public class EntrustController extends BladeController { /** - * 17.留样登记表打印 + * 17.样品处理登记表下载 */ @GetMapping("/simpleRegisterPrint") - public void simpleRegisterPrint(String id, HttpServletResponse response) throws IOException { - service.simpleRegisterPrint(id, response); + public void simpleRegisterPrint(String ids, HttpServletResponse response) throws IOException { + service.simpleRegisterPrint(ids, response); } @@ -1209,8 +1209,8 @@ public class EntrustController extends BladeController { * 21.留样处理(销毁)申请表打印 */ @GetMapping("/simpleHandlePrint") - public void simpleHandlePrint(String id, HttpServletResponse response) throws IOException { - service.simpleHandlePrint(id, response); + public void simpleHandlePrint(String ids, HttpServletResponse response) throws IOException { + service.simpleHandlePrint(ids, response); } /** @@ -1767,9 +1767,9 @@ public class EntrustController extends BladeController { * 样品接收/发放统计导出 */ @GetMapping("/simpleReceiveExport") - public void simpleReceiveExport(HttpServletResponse response, Entrust entry) { + public void simpleReceiveExport(HttpServletResponse response, Entrust ent) { List excels = new ArrayList<>(); - List entrusts = service.simpleReceiveExport(entry); + List entrusts = service.simpleReceiveExport(ent); if (CollectionUtils.isNotEmpty(entrusts)) { SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日"); for (Entrust entrust : entrusts) { diff --git a/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/HandleSampleController.java b/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/HandleSampleController.java new file mode 100644 index 0000000..cd31eb9 --- /dev/null +++ b/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/HandleSampleController.java @@ -0,0 +1,88 @@ + +package org.springblade.lims.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import lombok.AllArgsConstructor; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.api.R; +import org.springblade.lims.entry.Entrust; +import org.springblade.lims.entry.HandleSample; +import org.springblade.lims.service.IHandleSampleService; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.Date; + + +/** + * @author litao + * @since 2023年7月17日 + */ +@RestController +@AllArgsConstructor +@RequestMapping("/handleSample") +public class HandleSampleController extends BladeController { + + private IHandleSampleService handleSampleService; + + /** + * 留样处理申请列表 + */ + @GetMapping("/entrustList") + public R> entrustList(Query query, HandleSample handleSample) { + return R.data(handleSampleService.entrustList(handleSample, Condition.getPage(query))); + } + + /** + * 留样处理申请列表 + */ + @GetMapping("/queryList") + public R> queryList(Query query, Entrust entrust) { + return R.data(handleSampleService.queryList(entrust, Condition.getPage(query))); + } + + /** + * 留样处理申请详情 + */ + @GetMapping("/detail") + public R detail(String id) { + return R.data(handleSampleService.getById(id)); + } + + /** + * 留样处理申请提交 + */ + @PostMapping("/save") + public R save(@RequestBody HandleSample handleSample) { + return R.status(handleSampleService.insert(handleSample)); + } + + /** + * 留样处理申请审批 + */ + @PostMapping("/update") + public R update(@RequestBody HandleSample handleSample) { + return R.status(handleSampleService.updateBy(handleSample)); + } + + /** + * 留样处理(销毁)申请表打印 + */ + @GetMapping("/simpleHandlePrint") + public void simpleHandlePrint(String id, HttpServletResponse response) { + handleSampleService.simpleHandlePrint(id, response); + } + + /** + * 样品处理登记表下载 + */ + @GetMapping("/simpleRegisterPrint") + public void simpleRegisterPrint(String id, HttpServletResponse response) { + handleSampleService.simpleRegisterPrint(id, response); + } + +} diff --git a/lab-service/lab-lims/src/main/java/org/springblade/lims/excel/SimpleReceiveExcel.java b/lab-service/lab-lims/src/main/java/org/springblade/lims/excel/SimpleReceiveExcel.java index 5cd1eb7..45e2082 100644 --- a/lab-service/lab-lims/src/main/java/org/springblade/lims/excel/SimpleReceiveExcel.java +++ b/lab-service/lab-lims/src/main/java/org/springblade/lims/excel/SimpleReceiveExcel.java @@ -6,7 +6,6 @@ import com.alibaba.excel.annotation.write.style.ContentRowHeight; import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; -import org.springframework.format.annotation.DateTimeFormat; import java.util.Date; diff --git a/lab-service/lab-lims/src/main/java/org/springblade/lims/mapper/EntrustMapper.java b/lab-service/lab-lims/src/main/java/org/springblade/lims/mapper/EntrustMapper.java index 005d623..441a55a 100644 --- a/lab-service/lab-lims/src/main/java/org/springblade/lims/mapper/EntrustMapper.java +++ b/lab-service/lab-lims/src/main/java/org/springblade/lims/mapper/EntrustMapper.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import feign.Param; import org.springblade.lims.entry.Entrust; +import org.springblade.lims.entry.HandleSample; import java.util.List; @@ -20,5 +21,9 @@ public interface EntrustMapper extends BaseMapper { List simpleReceive(IPage page, Entrust entry); - List simpleReceiveExport(Entrust entry); + List simpleReceiveExport(@Param Entrust ent); + + List entrustList(IPage page, HandleSample handleSample); + + List queryList(IPage page, Entrust entrust); } diff --git a/lab-service/lab-lims/src/main/java/org/springblade/lims/mapper/EntrustMapper.xml b/lab-service/lab-lims/src/main/java/org/springblade/lims/mapper/EntrustMapper.xml index 494fe55..d7373ec 100644 --- a/lab-service/lab-lims/src/main/java/org/springblade/lims/mapper/EntrustMapper.xml +++ b/lab-service/lab-lims/src/main/java/org/springblade/lims/mapper/EntrustMapper.xml @@ -5,7 +5,6 @@ - SELECT - a.* - b.simple_receiver AS simpleReceiverTime, + a.*, + b.simple_receiver_time AS simpleReceiverTime, b.experie_num AS experieNum, b.simple_receiver_name AS simpleReceiverName FROM @@ -39,14 +39,19 @@ WHERE c.is_deleted = 0 GROUP BY c.entrust_id ) AS b ON a.id = b.entrust_id - WHERE - a.is_deleted = 0 AND a.entrust_status != '-1' + + + a.sampling_date = ]]> #{entry.startTime} AND a.sampling_date #{entry.endTime} + + AND a.is_deleted = 0 AND a.entrust_status != '-1' + ORDER BY a.sampling_date ASC + + + + + diff --git a/lab-service/lab-lims/src/main/java/org/springblade/lims/mapper/HandleSampleMapper.java b/lab-service/lab-lims/src/main/java/org/springblade/lims/mapper/HandleSampleMapper.java new file mode 100644 index 0000000..c5d86d0 --- /dev/null +++ b/lab-service/lab-lims/src/main/java/org/springblade/lims/mapper/HandleSampleMapper.java @@ -0,0 +1,13 @@ + +package org.springblade.lims.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.lims.entry.HandleSample; + +/** + * @author litao + * @since 2023年7月17日 + */ +public interface HandleSampleMapper extends BaseMapper { + +} diff --git a/lab-service/lab-lims/src/main/java/org/springblade/lims/service/IEntrtrustService.java b/lab-service/lab-lims/src/main/java/org/springblade/lims/service/IEntrtrustService.java index 99100fd..923ee6c 100644 --- a/lab-service/lab-lims/src/main/java/org/springblade/lims/service/IEntrtrustService.java +++ b/lab-service/lab-lims/src/main/java/org/springblade/lims/service/IEntrtrustService.java @@ -5,6 +5,7 @@ package org.springblade.lims.service; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.lims.entry.Entrust; import org.springblade.core.mp.base.BaseService; +import org.springblade.lims.entry.HandleSample; import javax.servlet.http.HttpServletResponse; import java.util.List; @@ -29,13 +30,13 @@ public interface IEntrtrustService extends BaseService { void reportPrint(String examineId, HttpServletResponse response); - void simpleRegisterPrint(String id, HttpServletResponse response); + void simpleRegisterPrint(String ids, HttpServletResponse response); void simpleNumberPrint(String id, HttpServletResponse response); void eTaskPrint(String id, String deptId, HttpServletResponse response); - void simpleHandlePrint(String id, HttpServletResponse response); + void simpleHandlePrint(String ids, HttpServletResponse response); void simpleReceivePrint(String id, HttpServletResponse response); @@ -47,6 +48,6 @@ public interface IEntrtrustService extends BaseService { IPage simpleReceive(IPage page, Entrust entry); - List simpleReceiveExport(Entrust entry); + List simpleReceiveExport(Entrust ent); } diff --git a/lab-service/lab-lims/src/main/java/org/springblade/lims/service/IHandleSampleService.java b/lab-service/lab-lims/src/main/java/org/springblade/lims/service/IHandleSampleService.java new file mode 100644 index 0000000..1ec63c8 --- /dev/null +++ b/lab-service/lab-lims/src/main/java/org/springblade/lims/service/IHandleSampleService.java @@ -0,0 +1,29 @@ + +package org.springblade.lims.service; + + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseService; +import org.springblade.lims.entry.Entrust; +import org.springblade.lims.entry.HandleSample; + +import javax.servlet.http.HttpServletResponse; + +/** + * @author litao + * @since 2023年7月17日 + */ +public interface IHandleSampleService extends BaseService { + IPage entrustList(HandleSample handleSample, IPage page); + + boolean insert(HandleSample handleSample); + + boolean updateBy(HandleSample handleSample); + + IPage queryList(Entrust entrust, IPage page); + + void simpleHandlePrint(String id, HttpServletResponse response); + + void simpleRegisterPrint(String id, HttpServletResponse response); + +} diff --git a/lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/EntrustServiceImpl.java b/lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/EntrustServiceImpl.java index 07fb9ce..3d088bc 100644 --- a/lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/EntrustServiceImpl.java +++ b/lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/EntrustServiceImpl.java @@ -15,6 +15,7 @@ import org.apache.poi.xwpf.usermodel.*; import org.springblade.common.utils.ZipCompressUtil; import org.springblade.core.mp.support.Condition; import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; import org.springblade.core.tool.utils.StringUtil; import org.springblade.lims.entry.*; import org.springblade.lims.excel.*; @@ -23,6 +24,7 @@ import org.springblade.lims.service.*; import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.system.cache.DictBizCache; import org.springblade.system.enums.DictBizEnum; +import org.springblade.system.feign.IDictBizClient; import org.springblade.system.feign.ISysClient; import org.springblade.system.user.entity.User; import org.springblade.system.user.feign.IUserClient; @@ -3792,7 +3794,6 @@ public class EntrustServiceImpl extends BaseServiceImpl //模板地址 // String handleUrl = "C://Users//AAA//Desktop//烁今//打印模板//留样登记表(模板).docx"; - String url = DictBizCache.getKey(DictBizEnum.PRINT_URL.getName(), "simpleRegisterPrint"); XWPFDocument doc = null; // FileOutputStream fos = null; @@ -4174,18 +4175,17 @@ public class EntrustServiceImpl extends BaseServiceImpl @Override @Transactional(rollbackFor = Exception.class) - public void simpleHandlePrint(String id, HttpServletResponse response) { - Entrust entrust = this.getById(id); - entrust.setIsHandle("1"); - this.updateById(entrust); - + public void simpleHandlePrint(String ids, HttpServletResponse response) { Map result = new HashMap<>(); List> resultList = new ArrayList<>(); + Entrust entrust = this.getById(ids); + entrust.setIsHandle("1"); + this.updateById(entrust); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(Simple::getEntrustId, id); + wrapper.eq(Simple::getEntrustId, ids); wrapper.eq(Simple::getStatus, 1); - // position1 wrapper.eq(Simple::getIsReagent, "1"); List simpleList = simpleService.list(wrapper); if (CollectionUtils.isNotEmpty(simpleList)) { @@ -4194,21 +4194,23 @@ public class EntrustServiceImpl extends BaseServiceImpl map.put("experieNum", simple.getExperieNum()); map.put("reagentNum", "1"); map.put("simpleName", simple.getSimpleName()); - map.put("", "");//保存期 resultList.add(map); } result.put("resultList", resultList); result.put("1", entrust.getAcceptanceNum()); } + + + //模板地址 // String handleUrl = "C://Users//AAA//Desktop//烁今//打印模板//留样处理(销毁)申请表(模板).docx"; String url = DictBizCache.getKey(DictBizEnum.PRINT_URL.getName(), "simpleHandlePrint"); XWPFDocument doc = null; - FileOutputStream fos = null; +// FileOutputStream fos = null; try { doc = WordExportUtil.exportWord07(url, result); - fos = new FileOutputStream("C://Users//AAA//Desktop//烁今//打印模板//留样处理(销毁)申请表.docx"); +// fos = new FileOutputStream("C://Users//AAA//Desktop//烁今//打印模板//留样处理(销毁)申请表.docx"); String filename = "测试.docx"; response.setContentType("application/octet-stream"); @@ -4219,21 +4221,21 @@ public class EntrustServiceImpl extends BaseServiceImpl } catch (Exception e) { e.printStackTrace(); } finally { - if (null != doc) { -// doc.close(); - try { - doc.write(fos); - } catch (IOException e) { - e.printStackTrace(); - } - } - if (null != fos) { - try { - fos.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } +// if (null != doc) { +//// doc.close(); +// try { +// doc.write(fos); +// } catch (IOException e) { +// e.printStackTrace(); +// } +// } +// if (null != fos) { +// try { +// fos.close(); +// } catch (IOException e) { +// e.printStackTrace(); +// } +// } if (null != doc) { try { doc.close(); @@ -4872,12 +4874,12 @@ public class EntrustServiceImpl extends BaseServiceImpl entrust.setExperieNum(split[0] + "-" + split[split.length - 1]); } } - return page.setRecords(entrustMapper.simpleReceive(page, entry)); + return page.setRecords(entrusts); } @Override - public List simpleReceiveExport(Entrust entry) { - return entrustMapper.simpleReceiveExport(entry); + public List simpleReceiveExport(Entrust ent) { + return entrustMapper.simpleReceiveExport(ent); } /** diff --git a/lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/HandleSampleServiceImpl.java b/lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/HandleSampleServiceImpl.java new file mode 100644 index 0000000..8c00a8e --- /dev/null +++ b/lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/HandleSampleServiceImpl.java @@ -0,0 +1,432 @@ + +package org.springblade.lims.service.impl; + +import cn.afterturn.easypoi.entity.ImageEntity; +import cn.afterturn.easypoi.word.WordExportUtil; +import com.alibaba.nacos.common.utils.CollectionUtils; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.AllArgsConstructor; +import org.apache.commons.lang3.time.DateUtils; +import org.apache.poi.xwpf.usermodel.XWPFDocument; +import org.springblade.core.cache.utils.CacheUtil; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.utils.Func; +import org.springblade.lims.entry.Entrust; +import org.springblade.lims.entry.HandleSample; +import org.springblade.lims.entry.Simple; +import org.springblade.lims.mapper.EntrustMapper; +import org.springblade.lims.mapper.HandleSampleMapper; +import org.springblade.lims.service.IEntrtrustService; +import org.springblade.lims.service.IHandleSampleService; +import org.springblade.lims.service.ISimpleService; +import org.springblade.system.cache.DictBizCache; +import org.springblade.system.entity.Param; +import org.springblade.system.enums.DictBizEnum; +import org.springblade.system.feign.ISysClient; +import org.springblade.system.user.entity.User; +import org.springblade.system.user.feign.IUserClient; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.text.SimpleDateFormat; +import java.time.LocalDateTime; +import java.util.*; + +import static org.springblade.core.cache.constant.CacheConstant.PARAM_CACHE; + +/** + * @author litao + * @since 2023年7月17日 + */ +@Service +@AllArgsConstructor +public class HandleSampleServiceImpl extends BaseServiceImpl implements IHandleSampleService { + + private EntrustMapper entrustMapper; + + private IUserClient userClient; + + private ISimpleService simpleService; + + private ISysClient sysClient; + + @Override + public IPage entrustList(HandleSample handleSample, IPage page) { + // 获取当前30天之前的时间 + handleSample.setStarTime(DateUtils.addDays(new Date(), -30)); + + List entrusts = entrustMapper.entrustList(page, handleSample); + if (CollectionUtils.isNotEmpty(entrusts)) { + for (HandleSample entrust : entrusts) { + String experieNum = entrust.getExperieNum(); + String[] split = experieNum.split(","); + entrust.setExperieNum(split[0] + "-" + split[split.length - 1]); + entrust.setBeyondTime(DateUtils.addDays(entrust.getSamplingDate(), 30)); + } + } + return page.setRecords(entrusts); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean insert(HandleSample handleSample) { + Entrust entrust = new Entrust(); + entrust.setId(handleSample.getEntrustId()); + entrust.setHandleState(1); + entrustMapper.updateById(entrust); + + handleSample.setApplicantId(AuthUtil.getUserId()); + handleSample.setApplicant(userClient.userInfoById(AuthUtil.getUserId()).getData().getName()); + handleSample.setApplicantTime(new Date()); + return this.save(handleSample); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean updateBy(HandleSample handleSample) { + Entrust entrust = new Entrust(); + entrust.setId(handleSample.getEntrustId()); + entrust.setHandleState(2); + entrust.setSampleHandle("交济南滕笙环保公司处理"); + entrustMapper.updateById(entrust); + + handleSample.setOpinionId(AuthUtil.getUserId()); + handleSample.setOpinionBy(userClient.userInfoById(AuthUtil.getUserId()).getData().getName()); + handleSample.setOpinionTime(new Date()); + return this.updateById(handleSample); + } + + @Override + public IPage queryList(Entrust entrust, IPage page) { +// List entrusts = entrustMapper.queryList(page, entrust); + List ins = new ArrayList<>(); + ins.add(2); + ins.add(3); + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); + if (entrust.getStartTime() != null && entrust.getEndTime() != null) { + wrapper.between(Entrust::getSamplingDate, entrust.getStartTime(), entrust.getEndTime()); + } + if (entrust.getHandleState() != null) { + wrapper.eq(Entrust::getHandleState, entrust.getHandleState()); + } else { + wrapper.in(Entrust::getHandleState, ins); + } + wrapper.orderByAsc(Entrust::getSamplingDate); + IPage iPage = entrustMapper.selectPage(page, wrapper); + List entrusts = iPage.getRecords(); + if (CollectionUtils.isNotEmpty(entrusts)) { + entrusts.forEach(entry -> { + entry.setBeyondTime(DateUtils.addDays(entry.getSamplingDate(), 30)); + }); + } + return iPage; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void simpleHandlePrint(String id, HttpServletResponse response) { + Map result = new HashMap<>(); + String path = sysClient.getParamValue("electronic_signature_real_path").getData(); + SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日"); + + HandleSample handleSample = this.getById(id); + + String count = sysClient.getParamValue("interface_count1").getData(); + String[] split1 = count.split("-"); + int newCount = Integer.parseInt(split1[1]); + int year = LocalDateTime.now().getYear(); + if (!String.valueOf(year).equals(split1[0])) { + newCount = 0; + } + newCount++; + Param param = new Param(); + param.setParamKey("interface_count1"); + param.setParamValue(split1[0] + "-" + newCount); + CacheUtil.clear(PARAM_CACHE); + sysClient.updateParam(param); + + if (newCount >= 0 && newCount < 9) { + result.put("1", year + "000" + newCount); + } else if (newCount >= 9 && newCount < 99) { + result.put("1", year + "00" + newCount); + } else if (newCount >= 99 && newCount < 999) { + result.put("1", year + "0" + newCount); + } else{ + result.put("1", year + "" + newCount); + } + + result.put("2", handleSample.getHandleOpinion()); + + User user = userClient.userInfoById(handleSample.getApplicantId()).getData(); + if (user != null) { + ImageEntity farView = new ImageEntity(); + farView.setHeight(50);//设置高度 + farView.setWidth(90);//设置宽度 + farView.setType(ImageEntity.Data);//类型 + String s1 = path + user.getElectronicSignature(); + FileInputStream fis = null; + try { + fis = new FileInputStream(new File(s1)); + byte[] bytes = readInputStream(fis); + farView.setData(bytes); + } catch (Exception e) { + e.printStackTrace(); + } + result.put("3", farView); + } + + result.put("4", format.format(handleSample.getApplicantTime())); + result.put("5", handleSample.getApproveOpinion()); + + User user1 = userClient.userInfoById(handleSample.getOpinionId()).getData(); + if (user1 != null) { + ImageEntity farView = new ImageEntity(); + farView.setHeight(50);//设置高度 + farView.setWidth(90);//设置宽度 + farView.setType(ImageEntity.Data);//类型 + String s1 = path + user1.getElectronicSignature(); + FileInputStream fis = null; + try { + fis = new FileInputStream(new File(s1)); + byte[] bytes = readInputStream(fis); + farView.setData(bytes); + } catch (Exception e) { + e.printStackTrace(); + } + result.put("6", farView); + } + + result.put("7", format.format(handleSample.getOpinionTime())); + + // 对应委托单 + Entrust entrust = entrustMapper.selectById(handleSample.getEntrustId()); + entrust.setIsHandle("1"); + entrustMapper.updateById(entrust); + result.put("9", entrust.getSimpleCount()); + result.put("10", entrust.getSimpleName()); + + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(Simple::getEntrustId, entrust.getId()).eq(Simple::getIsReagent, "0").eq(Simple::getSort, 1); + List simpleList = simpleService.list(wrapper); + System.out.println("simpleList===" + simpleList); + String num = ""; + if (CollectionUtils.isNotEmpty(simpleList)) { + String experieNum = simpleList.get(0).getExperieNum(); + num += experieNum + "-"; + String[] split = experieNum.split("-"); + for (int i = 0; i < split.length - 1; i++) { + num += split[i] + "-"; + } + num += entrust.getSimpleCount(); + System.out.println("num===" + num); + result.put("8", num); + } + + System.out.println("result===" + result); + String url = DictBizCache.getKey(DictBizEnum.PRINT_URL.getName(), "simpleHandlePrint"); + XWPFDocument doc = null; +// FileOutputStream fos = null; + try { + doc = WordExportUtil.exportWord07(url, result); +// fos = new FileOutputStream("C://Users//AAA//Desktop//烁今//打印模板//留样处理(销毁)申请表.docx"); + String filename = "测试.docx"; + + response.setContentType("application/octet-stream"); + response.setHeader("content-disposition", "attachment;filename=12344.docx"); + + doc.write(response.getOutputStream()); + + } catch (Exception e) { + e.printStackTrace(); + } finally { +// if (null != doc) { +//// doc.close(); +// try { +// doc.write(fos); +// } catch (IOException e) { +// e.printStackTrace(); +// } +// } +// if (null != fos) { +// try { +// fos.close(); +// } catch (IOException e) { +// e.printStackTrace(); +// } +// } + if (null != doc) { + try { + doc.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void simpleRegisterPrint(String id, HttpServletResponse response) { + Map result = new HashMap<>(); + List> resultList = new ArrayList<>(); + + String count = sysClient.getParamValue("interface_count2").getData(); + String[] split1 = count.split("-"); + int newCount = Integer.parseInt(split1[1]); + int year = LocalDateTime.now().getYear(); + if (!String.valueOf(year).equals(split1[0])) { + newCount = 0; + } + newCount++; + Param param = new Param(); + param.setParamKey("interface_count2"); + param.setParamValue(split1[0] + "-" + newCount); + CacheUtil.clear(PARAM_CACHE); + sysClient.updateParam(param); + + if (newCount >= 0 && newCount < 9) { + result.put("1", year + "000" + newCount); + } else if (newCount >= 9 && newCount < 99) { + result.put("1", year + "00" + newCount); + } else if (newCount >= 99 && newCount < 999) { + result.put("1", year + "0" + newCount); + } else{ + result.put("1", year + "" + newCount); + } + + List list = Func.toLongList(id); + + for (Long aLong : list) { + // 修改为已导出 + Entrust entrust = entrustMapper.selectById(aLong); + entrust.setHandleState(3); + entrustMapper.updateById(entrust); + + // 该委托单样品信息 + List simples = simpleService.list(Wrappers.lambdaQuery().eq(Simple::getEntrustId, aLong).eq(Simple::getIsReagent, "0").orderByAsc(Simple::getSort)); + + System.out.println("simples===" + simples.size()); + if (CollectionUtils.isNotEmpty(simples)) { + String num = ""; + String experieNum = simples.get(0).getExperieNum(); + String[] split = experieNum.split("-"); + for (int i = 0; i < split.length - 1; i++) { + num += split[i] + "-"; + } + + int start = 1; + int size = 0; + for (int i = 0; i < simples.size(); i++) { + Simple simple = simples.get(i); + if (simple.getOriginalNum().equals(String.valueOf(i + 1))) { + size++; + if (size == simples.size()) { + Map map = new HashMap<>(); + map.put("originalNum", start + "-" + (start + size)); + map.put("experieNum", num + start + "-" + num + (start + size)); + map.put("simpleName", simple.getSimpleName()); + map.put("sampleHandle", entrust.getSampleHandle()); + map.put("a", "~"); + map.put("b", "接样室"); + map.put("c", "李玉杰"); + resultList.add(map); + } + continue; + } + if (size > 0) { + Map map = new HashMap<>(); + if (size == 1) { + map.put("originalNum", start); + map.put("experieNum", num + start); + } else { + map.put("originalNum", start + "-" + (start + size)); + map.put("experieNum", num + start + "-" + num + (start + size)); + } + map.put("simpleName", simple.getSimpleName()); + map.put("sampleHandle", entrust.getSampleHandle()); + map.put("a", "~"); + map.put("b", "接样室"); + map.put("c", "李玉杰"); + resultList.add(map); + } + start = i + 2; + Map map = new HashMap<>(); + map.put("originalNum", simple.getOriginalNum()); + map.put("experieNum", simple.getExperieNum()); + map.put("simpleName", simple.getSimpleName()); + map.put("sampleHandle", entrust.getSampleHandle()); + map.put("a", "~"); + map.put("b", "接样室"); + map.put("c", "李玉杰"); + resultList.add(map); + } + } + } + + result.put("resultList", resultList); + System.out.println("result===" + result); + + //模板地址 +// String handleUrl = "C://Users//AAA//Desktop//烁今//打印模板//留样登记表(模板).docx"; + String url = DictBizCache.getKey(DictBizEnum.PRINT_URL.getName(), "simpleRegisterPrint"); + XWPFDocument doc = null; +// FileOutputStream fos = null; + try { + doc = WordExportUtil.exportWord07(url, result); +// fos = new FileOutputStream("C://Users//AAA//Desktop//烁今//打印模板//留样登记表.docx"); + String filename = "测试.docx"; + + response.setContentType("application/octet-stream"); + response.setHeader("content-disposition", "attachment;filename=12344.docx"); + + doc.write(response.getOutputStream()); + + + } catch (Exception e) { + e.printStackTrace(); + } finally { +// if (null != doc) { +//// doc.close(); +// try { +// doc.write(fos); +// } catch (IOException e) { +// e.printStackTrace(); +// } +// } +// if (null != fos) { +// try { +// fos.close(); +// } catch (IOException e) { +// e.printStackTrace(); +// } +// } + if (null != doc) { + try { + doc.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + } + + /** + * 读输入流 + */ + private static byte[] readInputStream(InputStream inStream) throws Exception { + ByteArrayOutputStream outStream = new ByteArrayOutputStream(); + byte[] buffer = new byte[1024]; + int len = 0; + while ((len = inStream.read(buffer)) != -1) { + outStream.write(buffer, 0, len); + } + inStream.close(); + return outStream.toByteArray(); + } + +} diff --git a/lab-service/lab-system/src/main/java/org/springblade/system/feign/SysClient.java b/lab-service/lab-system/src/main/java/org/springblade/system/feign/SysClient.java index 0b933cb..d77fde0 100644 --- a/lab-service/lab-system/src/main/java/org/springblade/system/feign/SysClient.java +++ b/lab-service/lab-system/src/main/java/org/springblade/system/feign/SysClient.java @@ -168,6 +168,11 @@ public class SysClient implements ISysClient { return R.data(paramService.getValue(paramKey)); } + @Override + public void updateParam(Param param) { + paramService.updateParam(param); + } + @Override @GetMapping(REGION) public R getRegion(String code) { diff --git a/lab-service/lab-system/src/main/java/org/springblade/system/service/IParamService.java b/lab-service/lab-system/src/main/java/org/springblade/system/service/IParamService.java index 1edc274..50e926b 100644 --- a/lab-service/lab-system/src/main/java/org/springblade/system/service/IParamService.java +++ b/lab-service/lab-system/src/main/java/org/springblade/system/service/IParamService.java @@ -19,4 +19,5 @@ public interface IParamService extends BaseService { */ String getValue(String paramKey); + void updateParam(Param param); } diff --git a/lab-service/lab-system/src/main/java/org/springblade/system/service/impl/ParamServiceImpl.java b/lab-service/lab-system/src/main/java/org/springblade/system/service/impl/ParamServiceImpl.java index de2ee1a..2c63f52 100644 --- a/lab-service/lab-system/src/main/java/org/springblade/system/service/impl/ParamServiceImpl.java +++ b/lab-service/lab-system/src/main/java/org/springblade/system/service/impl/ParamServiceImpl.java @@ -22,4 +22,14 @@ public class ParamServiceImpl extends BaseServiceImpl implem return param.getParamValue(); } + @Override + public void updateParam(Param param) { + System.out.println("param===" + param); + Param one = this.getOne(Wrappers.query().lambda().eq(Param::getParamKey, param.getParamKey())); + one.setParamValue(param.getParamValue()); + System.out.println("one===" + one); + boolean b = this.updateById(one); + System.out.println("one===" + b); + } + }