gdg
2020-12-23 6207311d7df3d47d27fdd78de33f49875550f52f
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;
@@ -221,35 +223,6 @@
        }
        return retJSON.toJSONString();
    }
    @ResponseBody
    @RequestMapping(value = "/userListByContainerCode")
    public Object userListByContainerCode(@RequestParam String containerCode,@RequestParam String startTime, @RequestParam String endTime) throws ApiException {
      logger.info("userListByContainerCode start...containerCode= " + containerCode
            + ",startTime=" + startTime
            + ",endTime=" + endTime);
      List<SysUser> userList = interfaceService.getUserListByContainerCode(containerCode, startTime, endTime);
        List<Map> datalist = Lists.newArrayListWithCapacity(userList.size());
        for (SysUser user : userList) {
            Map<String, Object> map = Maps.newHashMapWithExpectedSize(5);
            datalist.add(map);
            map.put("name", user.getName());
            map.put("role", user.getSeeFlag().getKey());
            map.put("validFlag", user.getValidFlag().getKey());
            map.put("idcard", user.getIdCard());
            map.put("point", user.getPoint());
            map.put("unit", user.getCompany());
            map.put("Arp", user.getArp());
            map.put("departmentName", user.getDepartment());
        }
        logger.info("getUserInfo end...");
        return ResponseModel.getOkInstence(datalist);
    }
    @ResponseBody
@@ -1070,7 +1043,7 @@
    //从柜子的设备码根据设备的所在实验室的课题组的课题组下的所有用户,没有课题组则返回用部门搜索
    @ResponseBody
    @RequestMapping(value = "/userListByContainerCodeNew")
    @RequestMapping(value = "/userListByContainerCode")
    public Object userListByContainerCodeNew(@RequestParam String containerCode,@RequestParam String startTime, @RequestParam String endTime) throws ApiException {
        logger.info("userListByContainerCodeNew start...containerCode= " + containerCode
                + ",startTime=" + startTime
@@ -1096,9 +1069,121 @@
            map.put("unit", user.getCompany());
            map.put("Arp", user.getArp());
            map.put("departmentName", user.getDepartment());
            map.put("project", user.getProject());
        }
        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);
    }
}