From ebc594f48f4010fa8b61cd3c871a17f3149607ec Mon Sep 17 00:00:00 2001 From: 李宇 <986321569@qq.com> Date: 星期二, 22 十二月 2020 16:28:22 +0800 Subject: [PATCH] 添加危化品编码接口 --- src/main/java/com/nanometer/smartlab/model/ResponseModel.java | 7 + src/main/java/com/nanometer/smartlab/dao/DangerousEncodeMapper.xml | 30 +++++++ src/main/java/com/nanometer/smartlab/dao/DangerousEncodeMapper.java | 5 + src/main/java/com/nanometer/smartlab/service/DangerousEncodeService.java | 5 + src/main/java/com/nanometer/smartlab/api/ApiAction.java | 113 ++++++++++++++++++++++++++++ src/main/java/com/nanometer/smartlab/entity/DangerousEncodeVo.java | 14 +++ src/main/java/com/nanometer/smartlab/service/DangerousEncodeServiceImpl.java | 11 ++ 7 files changed, 184 insertions(+), 1 deletions(-) diff --git a/src/main/java/com/nanometer/smartlab/api/ApiAction.java b/src/main/java/com/nanometer/smartlab/api/ApiAction.java index 3221c0c..6d25ef8 100644 --- a/src/main/java/com/nanometer/smartlab/api/ApiAction.java +++ b/src/main/java/com/nanometer/smartlab/api/ApiAction.java @@ -78,6 +78,8 @@ private SysLaboratoryContainerDao sysLaboratoryContainerDao; @Resource private SysWarehouseContainerDao sysWarehouseContainerDao; + @Resource + private DangerousEncodeService dangerousEncodeService; @Value("${institute.url}") String instituteUrl; @@ -1073,4 +1075,115 @@ logger.info("getUserInfo end..."); return ResponseModel.getOkInstence(datalist); } + + + //危化品编码接口 + @ResponseBody + @RequestMapping(value = "/dangerousEncodeInfo") + public Object getDangerousEncodeInfo(@RequestParam String reagentName, @RequestParam String cas) { + List<DangerousEncodeVo> datalist = new ArrayList<>(); + if (StringUtils.isNotBlank(reagentName) || StringUtils.isNotBlank(cas)){ + datalist = dangerousEncodeService.selectByReagentName(reagentName,cas); + for (DangerousEncodeVo dangerousEncodeVo : datalist){ + if (StringUtils.isNotBlank(dangerousEncodeVo.getContainerNumber())){ + if (dangerousEncodeVo.getContainerNumber().startsWith("0")){ + dangerousEncodeVo.setContainerName("普通型"); + }else if (dangerousEncodeVo.getContainerNumber().startsWith("1")){ + dangerousEncodeVo.setContainerName("阻燃型"); + }else if (dangerousEncodeVo.getContainerNumber().startsWith("2")){ + dangerousEncodeVo.setContainerName("抗腐蚀型"); + }else if (dangerousEncodeVo.getContainerNumber().startsWith("3")){ + dangerousEncodeVo.setContainerName("防爆型"); + }else if (dangerousEncodeVo.getContainerNumber().startsWith("4")){ + dangerousEncodeVo.setContainerName("有毒称重型"); + } + } + } + }else { + return ResponseModel.getParamInstence("reagentName,cas"); + } + + return ResponseModel.getOkInstence(datalist); + } + + //生成24位危化品编码 + @ResponseBody + @RequestMapping(value = "/generatorCode") + public Object generatorCode(@RequestParam String reagentName,@RequestParam String containerName, + @RequestParam String factory, @RequestParam String specs,@RequestParam String pack) { + String code = ""; + int count = 0; + DangerousEncode dangerousEncode = new DangerousEncode(); + if (StringUtils.isNotBlank(reagentName)){ + dangerousEncode = dangerousEncodeService.selectByName(reagentName); + if (null != dangerousEncode){ + code = dangerousEncode.getCode(); + count = dangerousEncode.getCount(); + }else { + return ResponseModel.getErrInstance("无法找到该试剂"); + } + }else { + return ResponseModel.getParamInstence("reagentName"); + } + + StringBuffer buffer = new StringBuffer(code); + + if (StringUtils.isNotBlank(containerName)){ + if (containerName.equals("普通型")){ + buffer.replace(0, 1, "0"); + }else if (containerName.equals("阻燃型")){ + buffer.replace(0, 1, "1"); + }else if (containerName.equals("抗腐蚀型")){ + buffer.replace(0, 1, "2"); + }else if (containerName.equals("防爆型")){ + buffer.replace(0, 1, "3"); + }else if (containerName.equals("有毒称重型")){ + buffer.replace(0, 1, "4"); + } + }else { + return ResponseModel.getParamInstence("containerName"); + } + + String regex="^[A-F0-9]+$"; + + if (StringUtils.isNotBlank(factory) && factory.matches(regex)){ + buffer.replace(2, 3, factory); + }else { + return ResponseModel.getParamInstence("factory"); + } + + if (StringUtils.isNotBlank(specs) && specs.matches(regex)){ + buffer.replace(3, 4, specs); + }else { + return ResponseModel.getParamInstence("specs"); + } + + if (StringUtils.isNotBlank(pack) && pack.matches(regex)){ + buffer.replace(18, 19, pack); + }else { + return ResponseModel.getParamInstence("pack"); + } + + String countHex = Integer.toHexString(count).toUpperCase(); + if (countHex.length() == 1){ + buffer.replace(23, 24, countHex); + }else if (countHex.length() == 2){ + buffer.replace(22, 24, countHex); + }else if (countHex.length() == 3){ + buffer.replace(21, 24, countHex); + }else if (countHex.length() == 4){ + buffer.replace(20, 24, countHex); + }else if (countHex.length() == 5){ + buffer.replace(19, 24, countHex); + } + code = buffer.toString(); + + dangerousEncode.setCount(dangerousEncode.getCount()+1); + dangerousEncodeService.updateOne(dangerousEncode); + + return ResponseModel.getOkInstence(code); + } + + + } diff --git a/src/main/java/com/nanometer/smartlab/dao/DangerousEncodeMapper.java b/src/main/java/com/nanometer/smartlab/dao/DangerousEncodeMapper.java index ae4c1fe..4b2e093 100644 --- a/src/main/java/com/nanometer/smartlab/dao/DangerousEncodeMapper.java +++ b/src/main/java/com/nanometer/smartlab/dao/DangerousEncodeMapper.java @@ -1,6 +1,7 @@ package com.nanometer.smartlab.dao; import com.nanometer.smartlab.entity.DangerousEncode; +import com.nanometer.smartlab.entity.DangerousEncodeVo; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -26,4 +27,8 @@ List<Map> selectExportList(Map params); List<DangerousEncode> selectByCodeAndName(@Param("reagentcode") String reagentcode,@Param("reagentname") String reagentname,@Param("cas") String cas,@Param("code") String code); + + List<DangerousEncodeVo> selectByReagentName(@Param("reagentname") String reagentname, @Param("cas") String cas); + + DangerousEncode selectByName(@Param("reagentname") String reagentname); } diff --git a/src/main/java/com/nanometer/smartlab/dao/DangerousEncodeMapper.xml b/src/main/java/com/nanometer/smartlab/dao/DangerousEncodeMapper.xml index 84d2724..703c10a 100644 --- a/src/main/java/com/nanometer/smartlab/dao/DangerousEncodeMapper.xml +++ b/src/main/java/com/nanometer/smartlab/dao/DangerousEncodeMapper.xml @@ -298,7 +298,8 @@ </select> <select id="selectByCodeAndName" resultType="com.nanometer.smartlab.entity.DangerousEncode"> select - <include refid="Base_Column_List" /> + container_number containerNumber, reagent_code reagentCode, reagent_name reagentName, cas, memo, property, feature, avoid, + status, fire, random, code, update_time, creator, count from sys_dangerous_encode <where> 1=1 @@ -316,4 +317,31 @@ </if> </where> </select> + <select id="selectByReagentName" resultType="com.nanometer.smartlab.entity.DangerousEncodeVo"> + select + container_number containerNumber, reagent_code reagentCode, reagent_name reagentName, cas, memo, property, feature, avoid, + status, fire, random, code, update_time, creator, count + from sys_dangerous_encode + <where> + 1=1 + <if test="reagentname != null and reagentname != ''"> + and reagent_name like concat("%",#{reagentname},"%") + </if> + <if test="cas != null and cas != ''"> + and cas = #{cas} + </if> + </where> + </select> + <select id="selectByName" resultType="com.nanometer.smartlab.entity.DangerousEncode"> + select + id,container_number containerNumber, reagent_code reagentCode, reagent_name reagentName, cas, memo, + property, feature, avoid, status, fire, random, code, update_time, creator, count + from sys_dangerous_encode + <where> + 1=1 + <if test="reagentname != null and reagentname != ''"> + and reagent_name = #{reagentname} + </if> + </where> + </select> </mapper> diff --git a/src/main/java/com/nanometer/smartlab/entity/DangerousEncodeVo.java b/src/main/java/com/nanometer/smartlab/entity/DangerousEncodeVo.java new file mode 100644 index 0000000..3f68d42 --- /dev/null +++ b/src/main/java/com/nanometer/smartlab/entity/DangerousEncodeVo.java @@ -0,0 +1,14 @@ +package com.nanometer.smartlab.entity; + +public class DangerousEncodeVo extends DangerousEncode { + + private String containerName; + + public String getContainerName() { + return containerName; + } + + public void setContainerName(String containerName) { + this.containerName = containerName; + } +} diff --git a/src/main/java/com/nanometer/smartlab/model/ResponseModel.java b/src/main/java/com/nanometer/smartlab/model/ResponseModel.java index 5e1e96e..1cd1b9f 100644 --- a/src/main/java/com/nanometer/smartlab/model/ResponseModel.java +++ b/src/main/java/com/nanometer/smartlab/model/ResponseModel.java @@ -69,4 +69,11 @@ model.setMessage("系统异常"); return model; } + + public static ResponseModel getErrInstance(String message){ + ResponseModel model = new ResponseModel(); + model.setCode(ExceptionEnumCode.DB_ERR.getCode()); + model.setMessage(message); + return model; + } } diff --git a/src/main/java/com/nanometer/smartlab/service/DangerousEncodeService.java b/src/main/java/com/nanometer/smartlab/service/DangerousEncodeService.java index 60fd7e5..a402598 100644 --- a/src/main/java/com/nanometer/smartlab/service/DangerousEncodeService.java +++ b/src/main/java/com/nanometer/smartlab/service/DangerousEncodeService.java @@ -1,6 +1,7 @@ package com.nanometer.smartlab.service; import com.nanometer.smartlab.entity.DangerousEncode; +import com.nanometer.smartlab.entity.DangerousEncodeVo; import com.nanometer.smartlab.entity.SysUser; import org.primefaces.event.FileUploadEvent; @@ -26,4 +27,8 @@ List<Map> exportList(DangerousEncode dangerousEncodeFilter); List<DangerousEncode> selectByCodeAndName(String reagentcode, String reagentname,String cas,String code); + + List<DangerousEncodeVo> selectByReagentName(String reagentname, String cas); + + DangerousEncode selectByName(String reagentname); } diff --git a/src/main/java/com/nanometer/smartlab/service/DangerousEncodeServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/DangerousEncodeServiceImpl.java index 390ca26..fe1814c 100644 --- a/src/main/java/com/nanometer/smartlab/service/DangerousEncodeServiceImpl.java +++ b/src/main/java/com/nanometer/smartlab/service/DangerousEncodeServiceImpl.java @@ -2,6 +2,7 @@ import com.nanometer.smartlab.dao.DangerousEncodeMapper; import com.nanometer.smartlab.entity.DangerousEncode; +import com.nanometer.smartlab.entity.DangerousEncodeVo; import com.nanometer.smartlab.entity.SysUser; import com.nanometer.smartlab.util.ExcelUtils; import com.nanometer.smartlab.util.FacesUtils; @@ -185,6 +186,16 @@ return dangerousEncodeMapper.selectByCodeAndName(reagentcode,reagentname,cas,code); } + @Override + public List<DangerousEncodeVo> selectByReagentName(String reagentname, String cas) { + return dangerousEncodeMapper.selectByReagentName(reagentname, cas); + } + + @Override + public DangerousEncode selectByName(String reagentname) { + return dangerousEncodeMapper.selectByName(reagentname); + } + @Override public void export2Excel(List<Map> list) throws Exception { -- Gitblit v1.9.2