Pārlūkot izejas kodu

Chemical模块代码合并

linfutong 2 gadi atpakaļ
vecāks
revīzija
6c33a0b8ba

+ 9 - 9
zd-modules/zd-chemical/src/main/java/com/zd/chemical/controller/HxpChemicalController.java

@@ -123,11 +123,11 @@ public class HxpChemicalController extends BaseController {
                 "4、带有星号(*)的红色字段为必填项。\n" +
                 "5、请注意:CAS号是唯一的,不能重复,不可多条。\n" +
                 "6、请注意:需填写系统中已录入的对应数据名称,否则无法正常导入。\n" +
-                "系统字段要求提示:"+
-                "化学品分类:普通化学品、危险化学品"+
+                "系统字段要求提示:\n"+
+                "化学品分类:普通化学品、危险化学品,\n"+
                 "化学品属性:爆炸品、压缩气体或液化气体、易燃液体、易燃固体、自燃物品和遇湿易燃物品、氧化剂和有机过氧化物、有毒品、放射性物品、腐蚀品、无;\n"+
-                "形态:固体、液体、气体、其他"+
-                "标签类型:二维码、RFID,计量方式:重量、体积、个数";
+                "形态:固体、液体、气体、其他,\n"+
+                "计量方式:重量、体积、个数";
         ExcelUtil<HxpChemicalByExcel> util = new ExcelUtil<HxpChemicalByExcel>(HxpChemicalByExcel.class);
         List<HxpChemicalByExcel> chemicalByExcels = redisService.getCacheObject("exportByChemical"+SecurityUtils.getUserId());
         if(chemicalByExcels.size()>0){
@@ -145,11 +145,11 @@ public class HxpChemicalController extends BaseController {
                 "4、带有星号(*)的红色字段为必填项。\n" +
                 "5、请注意:CAS号是唯一的,不能重复,不可多条。\n" +
                 "6、请注意:需填写系统中已录入的对应数据名称,否则无法正常导入。\n" +
-                "系统字段要求提示:"+
-                "化学品分类:普通化学品、危险化学品"+
-                "化学品属性:爆炸品、压缩气体或液化气体、易燃液体、易燃固体、自燃物品和遇湿易燃物品、氧化剂和有机过氧化物、有毒品、放射性物品、腐蚀品、无\n"+
-                "形态:固体、液体、气体、其他"+
-                "标签类型:二维码、RFID,计量方式:重量、体积、个数";
+                "系统字段要求提示:\n"+
+                "化学品分类:普通化学品、危险化学品,\n"+
+                "化学品属性:爆炸品、压缩气体或液化气体、易燃液体、易燃固体、自燃物品和遇湿易燃物品、氧化剂和有机过氧化物、有毒品、放射性物品、腐蚀品、无\n"+
+                "形态:固体、液体、气体、其他,\n"+
+                "计量方式:重量、体积、个数";
         ExcelUtil<HxpChemicalByExcel> util = new ExcelUtil<HxpChemicalByExcel>(HxpChemicalByExcel.class);
         util.exportExcel(response, null, "化学品信息", tips, "化学品信息-批量导入模板");
     }

+ 4 - 0
zd-modules/zd-chemical/src/main/java/com/zd/chemical/domain/vo/ActHxpapplyInfoVo.java

@@ -57,6 +57,10 @@ public class ActHxpapplyInfoVo extends BaseEntity {
     @ApiModelProperty(value = "申购人")
     private String applyUserName;
 
+    /** 申购人头像 */
+    @ApiModelProperty(value = "申购人头像")
+    private String avatar;
+
     /** 化学品申购详细信息 */
     @ApiModelProperty(value = "化学品申购详细信息")
     private List <ActHxpapplyDetailVo> actHxpapplyDetailList = new ArrayList<>();

+ 2 - 0
zd-modules/zd-chemical/src/main/java/com/zd/chemical/service/impl/HxpCabinetServiceImpl.java

@@ -312,6 +312,7 @@ public class HxpCabinetServiceImpl implements IHxpCabinetService {
                 hxpCabinetlockLog.setUnLockTime(DateUtils.getNowDate());
                 hxpCabinetlockLog.setOperationType(aioCabinetLockVo.getLockType().getCode());
                 hxpCabinetlockLog.setCreateTime(DateUtils.getNowDate());
+                hxpCabinetlockLog.setUserIds(SecurityUtils.getUserId()+ "");
                 hxpCabinetlockLog.setCreateBy(SecurityUtils.getUsername());
                 cabinetlockLogService.insertHxpCabinetlockLog(hxpCabinetlockLog);
 
@@ -401,6 +402,7 @@ public class HxpCabinetServiceImpl implements IHxpCabinetService {
                 hxpCabinetlockLog.setUnLockTime(DateUtils.getNowDate());
                 hxpCabinetlockLog.setOperationType(aioCabinetLockVo.getLockType().getCode());
                 hxpCabinetlockLog.setCreateTime(DateUtils.getNowDate());
+                hxpCabinetlockLog.setUserIds(SecurityUtils.getUserId()+ "");
                 hxpCabinetlockLog.setCreateBy(SecurityUtils.getUsername());
                 cabinetlockLogService.insertHxpCabinetlockLog(hxpCabinetlockLog);
             }else if(success){

+ 70 - 20
zd-modules/zd-chemical/src/main/java/com/zd/chemical/service/impl/HxpChemicalServiceImpl.java

@@ -17,6 +17,7 @@ import com.zd.chemical.service.IHxpChemicalService;
 import com.zd.chemical.util.SmsSydUtil;
 import com.zd.common.core.annotation.DataScope;
 import com.zd.common.core.exception.ServiceException;
+import com.zd.common.core.redis.RedisService;
 import com.zd.common.core.utils.*;
 import com.zd.model.domain.per.PerPrefix;
 import com.zd.system.api.entity.SysDictData;
@@ -33,6 +34,7 @@ import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.util.*;
+import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.DoubleAdder;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
@@ -59,6 +61,8 @@ public class HxpChemicalServiceImpl implements IHxpChemicalService {
     private RemoteAlarmService remoteAlarmService;
     @Resource
     private SmsSydUtil smsSydUtil;
+    @Autowired
+    RedisService redisService;
 
 
     /**
@@ -134,19 +138,38 @@ public class HxpChemicalServiceImpl implements IHxpChemicalService {
             }
             chemical.getFailRemark().append("分类名称不能为空、");
         }else{
-            HxpChemicalClassify hxpChemicalClassify = new HxpChemicalClassify();
-            hxpChemicalClassify.setClassifyName(chemical.getClassifyName());
-            List<HxpChemicalClassify> classifyList = hxpChemicalClassifyMapper.selectHxpChemicalClassifyList(hxpChemicalClassify);
-            if(classifyList.size()>0){
-                HxpChemicalClassify classify = classifyList.get(0);
-                hxpChemical.setChemicalClassify(classify.getId());
+            //化学品分类配置读取
+            List<HxpChemicalClassify> classifyList = redisService.getCacheObject("chemical_classify");
+            if (classifyList==null || classifyList.size()==0){
+                HxpChemicalClassify hxpChemicalClassify = new HxpChemicalClassify();
+                classifyList = hxpChemicalClassifyMapper.selectHxpChemicalClassifyList(hxpChemicalClassify);
+                redisService.setCacheObject("chemical_classify",classifyList, 60L, TimeUnit.SECONDS);
+                classifyList = redisService.getCacheObject("chemical_classify");
+            }
+
+            if(classifyList!=null && classifyList.size()>0){
+                //化学品分类是否匹配到
+                Boolean flg=false;
+                for (HxpChemicalClassify chemicalClassify:classifyList) {
+                    if (chemicalClassify.getClassifyName().equals(chemical.getClassifyName())) {
+                        hxpChemical.setChemicalClassify(chemicalClassify.getId());
+                        flg=true;
+                    }
+                }
+
+                if(checkBox && !flg){
+                    chemical.getFailRemark().append("失败:");
+                    failChemicalList.add(chemical);
+                    checkBox = false;
+                    chemical.getFailRemark().append("分类名称不存在、");
+                }
             }else{
                 if(checkBox){
                     chemical.getFailRemark().append("失败:");
                     failChemicalList.add(chemical);
                     checkBox = false;
                 }
-                chemical.getFailRemark().append("分类名称不存在、");
+                chemical.getFailRemark().append("分类名称未在字典配置、");
             }
         }
 
@@ -160,34 +183,57 @@ public class HxpChemicalServiceImpl implements IHxpChemicalService {
             chemical.getFailRemark().append("形态不能为空、");
         }else{
             List<SysDictData> proDictDatas = DictUtils.getDictCache("chemical_shape");
+            //化学品形态比对标识
+            boolean flgshape= false;
             for(SysDictData dictData : proDictDatas){
                 if(dictData.getDictLabel().equals(chemical.getChemicalShapeInfo().trim())){
                     hxpChemical.setChemicalShape(Integer.parseInt(dictData.getDictValue()));
+                    flgshape=true;
                 }
             }
             if(StringUtils.isNull(hxpChemical.getChemicalShape())){
-                if(checkBox){
+                if(checkBox && !flgshape){
                     chemical.getFailRemark().append("失败:");
                     failChemicalList.add(chemical);
                     checkBox = false;
                 }
-                chemical.getFailRemark().append("形态不存在、");
+                chemical.getFailRemark().append("形态未在字典配置、");
             }
         }
 
         //计量单位
         if(StringUtils.isNotEmpty(chemical.getChemicalUnit())){
-            if(chemical.getChemicalUnit().length()>8){
+            if(checkBox) {
+                if (chemical.getChemicalUnit().length() > 8) {
+                    chemical.getFailRemark().append("失败:");
+                    failChemicalList.add(chemical);
+                    checkBox = false;
+                }
+                chemical.getFailRemark().append("计量单位过长、");
+            }
+
+            //获取化学品单位集合
+            List<SysDictData> dictDataList = DictUtils.getDictCache("chemicals_measuring_unit");
+            boolean flgunit=false;
+            for (SysDictData sysdic: dictDataList) {
+                if(chemical.getChemicalUnit().equals(sysdic.getDictValue())){
+                    flgunit=true;
+                }
+            }
+
+            if(checkBox && !flgunit){
                 chemical.getFailRemark().append("失败:");
                 failChemicalList.add(chemical);
                 checkBox = false;
-                chemical.getFailRemark().append("计量单位过长、");
             }
+            chemical.getFailRemark().append("字典表未配置单位、");
             hxpChemical.setChemicalUnit(chemical.getChemicalUnit());
         }else{
-            chemical.getFailRemark().append("失败:");
-            failChemicalList.add(chemical);
-            checkBox = false;
+            if(checkBox) {
+                chemical.getFailRemark().append("失败:");
+                failChemicalList.add(chemical);
+                checkBox = false;
+            }
             chemical.getFailRemark().append("计量单位不能为空、");
         }
 
@@ -200,15 +246,19 @@ public class HxpChemicalServiceImpl implements IHxpChemicalService {
             }else if("个数".equals(chemical.getMeasuringMethod())){
                 hxpChemical.setMeasuringMethod(3);
             }else{
+                if(checkBox) {
+                    chemical.getFailRemark().append("失败:");
+                    failChemicalList.add(chemical);
+                    checkBox = false;
+                }
+                chemical.getFailRemark().append("计量方式不存在、");
+            }
+        }else {
+            if(checkBox) {
                 chemical.getFailRemark().append("失败:");
                 failChemicalList.add(chemical);
                 checkBox = false;
-                chemical.getFailRemark().append("计量方式不存在、");
             }
-        }else {
-            chemical.getFailRemark().append("失败:");
-            failChemicalList.add(chemical);
-            checkBox = false;
             chemical.getFailRemark().append("计量方式不能为空、");
         }
 
@@ -317,7 +367,7 @@ public class HxpChemicalServiceImpl implements IHxpChemicalService {
         //这里需要查询危险品分类的级别
         HxpChemicalClassify hxpChemicalClassify = hxpChemicalClassifyMapper.selectHxpChemicalClassifyById(hxpChemical.getChemicalClassify());
         if(StringUtils.isNull(hxpChemicalClassify)){
-           throw new ServiceException("危险品分类级别未配置,请联系管理员!!");
+            throw new ServiceException("危险品分类级别未配置,请联系管理员!!");
         }
         if(hxpChemicalClassify.getClassifyName().length()<2){
             throw new ServiceException("分类名称错误,请联系管理员");

+ 29 - 25
zd-modules/zd-chemical/src/main/java/com/zd/chemical/service/impl/HxpStockServiceImpl.java

@@ -341,6 +341,7 @@ public class HxpStockServiceImpl implements IHxpStockService {
         logger.info("RFID 实时检测 RFIDCheck(标签编号): " + rfidCode);
         HxpStock hxpStock = hxpStockMapper.selectByRfidCode(rfidCode);
         if(hxpStock == null){
+            logger.info("RFID 实时检测 (标签未绑定化学品): " + rfidCode);
             return false;
         }
 
@@ -350,7 +351,7 @@ public class HxpStockServiceImpl implements IHxpStockService {
             logger.info("RFID 化学品正常使用中: " + JSONUtil.toJsonStr(hxpUserecord));
             return false;
         }else {
-            logger.error("RFID 检测到违规触发报警: " + JSONUtil.toJsonStr(hxpStock));
+            logger.info("RFID 检测到违规触发报警: " + JSONUtil.toJsonStr(hxpStock));
             String streamUrl = alarmProperties.getStreamUrl();
             R<SysFile> fileR = null;
             if (org.springframework.util.StringUtils.hasLength(streamUrl)){
@@ -379,11 +380,12 @@ public class HxpStockServiceImpl implements IHxpStockService {
                 safeUserId = subInfo.get("safeUserId")==null?"":String.valueOf(subInfo.get("safeUserId"));
             }
 
-            String terminalNum = null;
+            String terminalNum;
+            HxpAlarmRecord hxpAlarmRecord;
             Integer dealTime = 0;
             List<Map<String, Object>> terminalList = hxpSmartTerminalMapper.selectTerminalBySubId(8, hxpStock.getSubId());
             if(CollectionUtils.isEmpty(terminalList)){
-                logger.error("实验室【"+subName+"】ID" + hxpStock.getSubId() +"未设置或启用声光报警器!");
+                logger.info("实验室【"+subName+"】ID" + hxpStock.getSubId() +"未设置或启用声光报警器!");
             }else {
                 Map<String, Object> smartTerminal = terminalList.get(0);
                 terminalNum = String.valueOf(smartTerminal.get("hardwareNum"));
@@ -391,20 +393,8 @@ public class HxpStockServiceImpl implements IHxpStockService {
                 // 执行声光报警器动作触发
                 remoteLaboratoryService.controlByInside(Long.parseLong(smartTerminal.get("id")+"") , "01");
                 isAlarm = true;
-                // 控制响铃时长
-                if(smartTerminal.get("ringTime") != null){
-                    ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
-                    executorService.schedule(new Runnable() {
-                        @Override
-                        public void run() {
-                            remoteLaboratoryService.controlByInside(Long.parseLong(smartTerminal.get("id")+"") , "00");
-                        }
-                    }, Long.parseLong(smartTerminal.get("ringTime") + ""), TimeUnit.SECONDS);
-                }
-            }
 
-            HxpAlarmRecord hxpAlarmRecord;
-            if(isAlarm){
+
                 // 默认一个实验室只触发一个报警器
                 hxpAlarmRecord = new HxpAlarmRecord();
                 hxpAlarmRecord.setAlarmContent("未领用即携带化学品离开实验室【"+subName+"】," + "化学品("+hxpStock.getChemicalName()+"), 请尽快确认!");
@@ -418,8 +408,29 @@ public class HxpStockServiceImpl implements IHxpStockService {
                 // TODO 请在此处新增图片路径字段并使用 fileR 中的返回值url作为图片路径以供前端调用,具体实现方式可参考 com.zd.bottle.service.impl.AlarmRecordServiceImpl.remoteAdd#155 行代码,默认配置为空,具体配置可参考zd-bottle-dev.yml#113行到115行
 
                 hxpAlarmRecordMapper.insertHxpAlarmRecord(hxpAlarmRecord);
+
+                Long recordId = hxpAlarmRecord.getId();
+                // 控制响铃时长
+                if(smartTerminal.get("ringTime") != null){
+                    ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
+                    executorService.schedule(new Runnable() {
+                        @Override
+                        public void run() {
+                            // 自动处理声光报警状态
+                            HxpAlarmRecord hxpAlarmRecord1 = new HxpAlarmRecord();
+                            hxpAlarmRecord1.setId(recordId);
+                            hxpAlarmRecord1.setHandlingStatus(2);
+                            hxpAlarmRecord1.setHandlingTime(DateUtils.getNowDate());
+                            hxpAlarmRecord1.setHandlingUserId(-2L);
+                            hxpAlarmRecordMapper.updateHxpAlarmRecord(hxpAlarmRecord1);
+
+                            remoteLaboratoryService.controlByInside(Long.parseLong(smartTerminal.get("id")+"") , "00");
+                        }
+                    }, Long.parseLong(smartTerminal.get("ringTime") + ""), TimeUnit.SECONDS);
+                }
             }
 
+
             // 报警通知演示临时通知给实验室管理员  phones
             Long recordId = sendPhoneAlarm(hxpStock.getId(),hxpStock.getSubId(), subName, hxpStock.getChemicalName(), subInfo.get("phones") + "");
 
@@ -454,7 +465,7 @@ public class HxpStockServiceImpl implements IHxpStockService {
                 List<HxpAlarmConfig> hxpAlarmConfigList = hxpAlarmConfigMapper.selectBySubId(3, hxpStock.getSubId());
                 // 2.最多五个步骤分别执行
                 if(CollectionUtils.isNotEmpty(hxpAlarmConfigList)){
-                    logger.error("实验室【"+subName+"】ID" + hxpStock.getSubId() +"执行用户短信通知!");
+                    logger.info("实验室【"+subName+"】ID" + hxpStock.getSubId() +"执行用户短信通知!");
 
                     Date date = DateUtil.offsetMinute(DateUtils.getNowDate(), Optional.ofNullable(dealTime).orElse(1));
 
@@ -662,7 +673,7 @@ public class HxpStockServiceImpl implements IHxpStockService {
             subNameMap.put(hxpStock.getSubId(),hxpStock.getSubName());
             // 报警记录
             HxpAlarmRecord hxpAlarmRecord = new HxpAlarmRecord();
-            hxpAlarmRecord.setAlarmContent(hxpStock.getSubName()+"实验室,化学品("+hxpStock.getChemicalName() + ")还有3天过期,请尽快确认处理。");
+            hxpAlarmRecord.setAlarmContent(hxpStock.getSubName()+"实验室,化学品("+hxpStock.getChemicalName() + ")还有30天过期,请尽快确认处理。");
             hxpAlarmRecord.setAlarmType(1);
             hxpAlarmRecord.setHasValid(1);
             hxpAlarmRecord.setAlarmMode(1);
@@ -674,13 +685,6 @@ public class HxpStockServiceImpl implements IHxpStockService {
 
             hxpAlarmRecordMapper.insertHxpAlarmRecord(hxpAlarmRecord);
         }
-        if(stockIds.size() > 0){
-            hxpStockMapper.updateExpiredByIds(stockIds);
-        }
-        if(joinIds.size() > 0){
-            hxpChemicalJoinCabinetMapper.updateExpiredByIds(joinIds);
-        }
-        hxpChemicalJoinCabinetMapper.updateChemicalJoinCabinetByExpired();
 
         subMsg.forEach((k,v) -> {
             Map<String, Object> subMsgData = new HashMap<>();

+ 3 - 6
zd-modules/zd-chemical/src/main/java/com/zd/chemical/service/impl/HxpUserecordServiceImpl.java

@@ -12,10 +12,7 @@ import com.zd.chemical.service.IHxpClassifyConfigService;
 import com.zd.chemical.service.IHxpUserecordService;
 import com.zd.common.core.annotation.DataScope;
 import com.zd.common.core.exception.ServiceException;
-import com.zd.common.core.utils.DateUtils;
-import com.zd.common.core.utils.SaveUtil;
-import com.zd.common.core.utils.SecurityUtils;
-import com.zd.common.core.utils.StringUtils;
+import com.zd.common.core.utils.*;
 import com.zd.laboratory.api.feign.RemoteMessageContentService;
 import com.zd.model.constant.HttpStatus;
 import com.zd.model.constant.SecurityConstants;
@@ -237,8 +234,8 @@ public class HxpUserecordServiceImpl implements IHxpUserecordService {
         // 查询用户信息
         logger.info("双卡验证,用户卡号:" + userValidationVo.getCardNum());
 //        String cardNum = Long.toHexString(Long.parseLong(userValidationVo.getCardNum())).toUpperCase();
-
-        String cardNum = userValidationVo.getCardNum();
+        // TODO 终端传参数据有问题,暂临时后端处理
+        String cardNum = DESUtils.encrypt(DESUtils.completeMissing(userValidationVo.getCardNum()));
 
         R<SysUser> user = remoteUserService.getUserInfoByCardNum(cardNum, SecurityConstants.INNER);
 

+ 1 - 1
zd-modules/zd-chemical/src/main/resources/mapper/chemical/ActHxpapplyDetailMapper.xml

@@ -39,7 +39,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         CONCAT((SELECT st.name FROM lab_subject st WHERE st.id = hy.sub_id),'-',(SELECT dt.dept_name FROM sys_dept
         dt,lab_subject st WHERE dt.dept_id = st.build_id AND st.id = hy.sub_id),
         '-',(SELECT bg.name FROM lab_building bg,lab_subject st WHERE bg.id = st.floor_id AND st.id = hy.sub_id),
-        '-',(SELECT slt.room FROM lab_subject_layout slt,lab_subject st WHERE slt.id = st.layout_id AND st.id = hy.sub_id)) posi,
+        ifnull(CONCAT('-',(SELECT slt.room_num room FROM lab_build_floor_layout slt,lab_subject st WHERE slt.sub_id = st.id AND st.id = ct.`sub_id`)),'')) posi,
         CONCAT(0,cl.`chemical_unit`) collegeInventory,
         CONCAT(0,cl.`chemical_unit`) subInventory,
         CONCAT(0,cl.`chemical_unit`) cabinetStorage,

+ 1 - 0
zd-modules/zd-chemical/src/main/resources/mapper/chemical/ActHxpapplyMapper.xml

@@ -304,6 +304,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         select a.id, a.apply_num, a.apply_reason, a.sub_id, a.apply_status, a.user_id, a.create_by, a.create_time, a.update_by
         , a.update_time, a.remark,
          (select ur.nick_name from sys_user ur where ur.user_id = a.user_id) applyUserName,
+         (SELECT ur.avatar FROM sys_user ur WHERE ur.user_id = a.user_id) avatar,
          st.name subName,st.dept_id deptId
         from act_hxpapply a left join lab_subject st on st.id = a.sub_id
         where a.id = #{id}

+ 2 - 1
zd-modules/zd-chemical/src/main/resources/mapper/chemical/HxpCabinetMapper.xml

@@ -31,7 +31,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         ct.cabinet_name,
         (select dt.dept_name from sys_dept dt,lab_subject st where dt.dept_id = st.dept_id and ct.`sub_id` = st.id) dept_name,
         CONCAT((SELECT st.name FROM lab_subject st WHERE st.id = ct.`sub_id`),'-',(SELECT dt.dept_name FROM sys_dept dt,lab_subject st WHERE dt.dept_id = st.build_id AND st.id = ct.`sub_id`),
-        '-',(SELECT bg.name FROM lab_building bg,lab_subject st WHERE bg.id = st.floor_id AND st.id = ct.`sub_id`),'-',(SELECT slt.room FROM lab_subject_layout slt,lab_subject st WHERE slt.id = st.layout_id AND st.id = ct.`sub_id`)) posi,
+        '-',(SELECT bg.name FROM lab_building bg,lab_subject st WHERE bg.id = st.floor_id AND st.id = ct.`sub_id`),
+        ifnull(CONCAT('-',(SELECT slt.room_num room FROM lab_build_floor_layout slt,lab_subject st WHERE slt.sub_id = st.id AND st.id = ct.`sub_id`)),'')) posi,
         ct.cabinet_status,
         ct.create_time,
         (select ur.nick_name from sys_user ur where ur.user_id = ct.`user_id`) create_by,

+ 3 - 2
zd-modules/zd-chemical/src/main/resources/mapper/chemical/HxpCabinetlockLogMapper.xml

@@ -61,7 +61,7 @@
         case when cl.operation_type = 2 then '出库' else
         case when cl.operation_type = 3 then '领用' else
         case when cl.operation_type = 4 then '归还' else
-        case when cl.operation_type = 5 then '系统' else
+        case when cl.operation_type = 0 then '系统' else
         '系统'
         end
         end
@@ -98,6 +98,7 @@
                 and cl.operation_type = #{operationType}
             </if>
         </where>
+        order by cl.un_lock_time desc
     </select>
 
     <select id="getListByIds" resultMap="HxpCabinetlockLogResult">
@@ -146,7 +147,7 @@
             <if test="operationType != null">#{operationType},</if>
             <if test="unLockVideo != null">#{unLockVideo},</if>
             <if test="closeLockVideo != null">#{closeLockVideo},</if>
-            <if test="userIds != null">#{user_ids},</if>
+            <if test="userIds != null">#{userIds},</if>
             <if test="createTime != null">#{createTime},</if>
             <if test="createBy != null">#{createBy},</if>
             <if test="stockId != null">#{stockId},</if>

+ 3 - 1
zd-modules/zd-chemical/src/main/resources/mapper/chemical/HxpChemicalJoinCabinetMapper.xml

@@ -29,7 +29,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         SELECT cjc.`id`,cjc.`join_num` joinNum,cl.chemical_name chemicalName,IFNULL(CONCAT(cjc.chemical_amount,cjc.`chemical_amount_unit`),'') chemicalAmountUnit,cjc.expire_time expireTime,ct.cabinet_name cabinetName,
         (SELECT he.name FROM lab_hardware he WHERE he.id = cjc.cabinetlock_id) lockName,
         CONCAT((SELECT st.name FROM lab_subject st WHERE st.id = ct.`sub_id`),'-',(SELECT dt.dept_name FROM sys_dept dt,lab_subject st WHERE dt.dept_id = st.build_id AND st.id = ct.`sub_id`),
-        '-',(SELECT bg.name FROM lab_building bg,lab_subject st WHERE bg.id = st.floor_id AND st.id = ct.`sub_id`),'-',(SELECT slt.room FROM lab_subject_layout slt,lab_subject st WHERE slt.id = st.layout_id AND st.id = ct.`sub_id`)) posi,
+        '-',(SELECT bg.name FROM lab_building bg,lab_subject st WHERE bg.id = st.floor_id AND st.id = ct.`sub_id`),
+        IFNULL(CONCAT('-',(SELECT slt.room_num room FROM lab_build_floor_layout slt,lab_subject st WHERE slt.sub_id = st.id AND st.id = ct.`sub_id`)),'')) posi,
         ct.cabinet_num cabinetNum,
         CASE WHEN cjc.status=0 THEN '未入库' ELSE CASE WHEN sk.status=2 OR sk.status=3 THEN '已出库' ELSE CASE WHEN cjc.status=1 THEN '已入库' ELSE
         case when sk.status=4 then '已过期' else '未知'
@@ -48,6 +49,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="chemicalId != null "> and cjc.chemical_id= #{chemicalId}</if>
             <if test="searchValue != null ">
              and (
+             ct.cabinet_name like concat('%', #{searchValue}, '%') or
              cl.chemical_name like concat('%',#{searchValue},'%') or
              cl.another_name like concat('%',#{searchValue},'%') or
              cl.cas_num like concat('%',#{searchValue},'%') or

+ 3 - 3
zd-modules/zd-chemical/src/main/resources/mapper/chemical/HxpStockMapper.xml

@@ -230,7 +230,7 @@
                CONCAT((SELECT st.name FROM lab_subject st WHERE st.id = sk.`sub_id`),
                '-', (SELECT dt.dept_name FROM sys_dept dt,lab_subject st WHERE dt.dept_id = st.build_id AND st.id = sk.`sub_id`),
                '-',(SELECT bg.name FROM lab_building bg,lab_subject st WHERE bg.id = st.floor_id AND st.id = sk.`sub_id`),
-               '-', (SELECT slt.room FROM lab_subject_layout slt, lab_subject st WHERE slt.id = st.layout_id AND st.id = sk.`sub_id`)) posi,
+        IFNULL(CONCAT('-',(SELECT slt.room_num room FROM lab_build_floor_layout slt,lab_subject st WHERE slt.sub_id = st.id AND st.id = ct.`sub_id`)),'')) posi,
                (SELECT cc.classify_name FROM hxp_chemical_classify cc WHERE cc.id = sk.chemical_classify) classifyName,
                (SELECT GROUP_CONCAT(dda.dict_label) FROM sys_dict_data dda,hxp_chemical_join_cabinet cjc,hxp_chemical cl
                WHERE cjc.id = sk.join_id AND cjc.chemical_id = cl.id AND dda.dict_type = 'hxp_classifyattribute' AND FIND_IN_SET(dda.dict_value, cl.classify_attribute)) classifyAttribute,
@@ -336,7 +336,7 @@
                CONCAT((SELECT st.name FROM lab_subject st WHERE st.id = sk.`sub_id`),
                '-', (SELECT dt.dept_name FROM sys_dept dt, lab_subject st WHERE dt.dept_id = st.build_id AND st.id = sk.`sub_id`),
                '-',(SELECT bg.name FROM lab_building bg,lab_subject st WHERE bg.id = st.floor_id AND st.id = sk.`sub_id`),
-               '-', (SELECT slt.room FROM lab_subject_layout slt, lab_subject st WHERE slt.id = st.layout_id AND st.id = sk.`sub_id`)) posi,
+               ifnull(CONCAT('-',(SELECT slt.room_num room FROM lab_build_floor_layout slt,lab_subject st WHERE slt.sub_id = st.id AND st.id = ct.`sub_id`)),'')) posi,
                CASE WHEN sk.join_type = 1 THEN '称重' ELSE '录入' END                                         joinType,
                CONCAT(sk.usages-IFNULL(sk.tare,0), sk.chemical_unit)                                                        usages,
                CONCAT(sk.out_usages-IFNULL(sk.tare,0), sk.chemical_unit)                                                    outUsages,
@@ -421,7 +421,7 @@
                CONCAT((SELECT st.name FROM lab_subject st WHERE st.id = sk.`sub_id`),
                '-', (SELECT dt.dept_name FROM sys_dept dt, lab_subject st WHERE dt.dept_id = st.build_id AND st.id = sk.`sub_id`),
                '-',(SELECT bg.name FROM lab_building bg,lab_subject st WHERE bg.id = st.floor_id AND st.id = sk.`sub_id`),
-               '-', (SELECT slt.room FROM lab_subject_layout slt, lab_subject st WHERE slt.id = st.layout_id AND st.id = sk.`sub_id`)) posi,
+               ifnull(CONCAT('-',(SELECT slt.room_num room FROM lab_build_floor_layout slt,lab_subject st WHERE slt.sub_id = st.id AND st.id = ct.`sub_id`)),'')) posi,
                CONCAT(sk.out_usages-IFNULL(sk.tare,0), sk.chemical_unit)        outUsages,
                CASE WHEN sk.status = 2 THEN '用结出库' ELSE '作废出库' END                                        stockStatus,
                CONCAT(ifnull((SELECT ur.nick_name FROM sys_user ur WHERE ur.user_id = sk.out_user_id), "")) operator,

+ 3 - 3
zd-modules/zd-chemical/src/main/resources/mapper/chemical/HxpUserecordMapper.xml

@@ -109,7 +109,7 @@
         CASE WHEN cl.label_type = 1 THEN 'RFID' ELSE '二维码' END labelContent,sk.tag_code tagCode,ct.cabinet_name cabinetName,
         CONCAT((SELECT st.name FROM lab_subject st WHERE st.id = sk.`sub_id`),'-',(SELECT dt.dept_name FROM sys_dept dt,lab_subject st WHERE dt.dept_id = st.build_id AND st.id = sk.`sub_id`),
         '-',(SELECT bg.name FROM lab_building bg,lab_subject st WHERE bg.id = st.floor_id AND st.id = sk.`sub_id`),
-        '-',(SELECT slt.room FROM lab_subject_layout slt,lab_subject st WHERE slt.id = st.layout_id AND st.id = sk.`sub_id`)) posi,
+        ifnull(CONCAT('-',(SELECT slt.room_num room FROM lab_build_floor_layout slt,lab_subject st WHERE slt.sub_id = st.id AND st.id = sk.`sub_id`)),'')) posi,
         ud.collect_time collectTime,ud.return_time returnTime,CASE WHEN ud.return_type = 1 THEN '称重' ELSE CASE WHEN ud.return_type = 2 THEN '录入' ELSE NULL END END returnTypeContent,
         CONCAT(IFNULL(ud.collect_now_num,0)-IFNULL(sk.tare,0),sk.chemical_unit) collectStockNum,
         CONCAT(IFNULL(ud.collect_stock_num-IFNULL(sk.tare,0),0),sk.chemical_unit) collectWeigh,
@@ -298,8 +298,8 @@
             ca.cabinet_name cabinetName,
             CONCAT((SELECT st.name FROM lab_subject st WHERE st.id = cjc.`sub_id`),'-',
                 (SELECT dt.dept_name FROM sys_dept dt,lab_subject st WHERE dt.dept_id = st.build_id AND st.id = cjc.`sub_id`),'-',
-                (SELECT bg.name FROM lab_building bg,lab_subject st WHERE bg.id = st.floor_id AND st.id = cjc.`sub_id`),'-',
-                (SELECT slt.room FROM lab_subject_layout slt,lab_subject st WHERE slt.id = st.layout_id AND st.id = cjc.`sub_id`)) posi,
+                (SELECT bg.name FROM lab_building bg,lab_subject st WHERE bg.id = st.floor_id AND st.id = cjc.`sub_id`),
+                IFNULL(CONCAT('-',(SELECT slt.room_num room FROM lab_build_floor_layout slt,lab_subject st WHERE slt.sub_id = st.id AND st.id = cjc.`sub_id`)),'')) posi,
 
             CONCAT(IFNULL(hu.collect_now_num,0)-IFNULL(hs.tare,0),hs.chemical_unit) stockSuttle,
             concat(ifnull(hu.loss_amount, 0) , hs.chemical_unit) lossAmount,