From 47a751cb301d05276ae5d75145d57b2d090fe4e1 Mon Sep 17 00:00:00 2001
From: kongzy <kongzy>
Date: 星期一, 01 七月 2024 10:58:35 +0800
Subject: [PATCH] change

---
 src/main/java/com/nanometer/smartlab/api/ApiAction.java | 1137 ++++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 920 insertions(+), 217 deletions(-)

diff --git a/src/main/java/com/nanometer/smartlab/api/ApiAction.java b/src/main/java/com/nanometer/smartlab/api/ApiAction.java
index 2af3581..6a0e601 100644
--- a/src/main/java/com/nanometer/smartlab/api/ApiAction.java
+++ b/src/main/java/com/nanometer/smartlab/api/ApiAction.java
@@ -7,22 +7,19 @@
 import com.google.common.collect.Maps;
 import com.nanometer.smartlab.controller.BaseController;
 import com.nanometer.smartlab.controller.MenuController;
+import com.nanometer.smartlab.dao.OpeReagentStatusDao;
 import com.nanometer.smartlab.dao.SysLaboratoryContainerDao;
+import com.nanometer.smartlab.dao.SysLaboratoryDao;
 import com.nanometer.smartlab.dao.SysWarehouseContainerDao;
 import com.nanometer.smartlab.entity.*;
-import com.nanometer.smartlab.entity.SysWarning;
-import com.nanometer.smartlab.entity.enumtype.ApiStatus;
-import com.nanometer.smartlab.entity.enumtype.ReplaceDictType;
-import com.nanometer.smartlab.entity.enumtype.SeeFlag;
+import com.nanometer.smartlab.entity.dto.*;
+import com.nanometer.smartlab.entity.enumtype.*;
 import com.nanometer.smartlab.exception.ApiException;
 import com.nanometer.smartlab.exception.BusinessException;
 import com.nanometer.smartlab.exception.ExceptionEnumCode;
 import com.nanometer.smartlab.model.ResponseModel;
 import com.nanometer.smartlab.service.*;
-import com.nanometer.smartlab.util.Constants;
-import com.nanometer.smartlab.util.FacesUtils;
-import com.nanometer.smartlab.util.IDUtils;
-import com.nanometer.smartlab.util.MessageUtil;
+import com.nanometer.smartlab.util.*;
 
 import org.apache.commons.lang.ArrayUtils;
 import org.apache.commons.lang.StringUtils;
@@ -30,7 +27,9 @@
 import org.apache.shiro.authc.UnknownAccountException;
 import org.apache.shiro.authc.UsernamePasswordToken;
 import org.apache.shiro.subject.Subject;
+import org.primefaces.context.RequestContext;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.servlet.ModelAndView;
@@ -39,6 +38,7 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.*;
+import java.math.BigDecimal;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.*;
@@ -51,38 +51,70 @@
 public class ApiAction extends BaseAction {
 
     private static Logger logger = Logger.getLogger(ApiAction.class);
-
+    @Lazy
     @Resource
     private SysUserService sysUserService;
+    @Lazy
     @Resource
     private OpeReagentStatusService opeReagentStatusService;
-    @Resource
-    private SysReagentService sysReagentService;
+    @Lazy
     @Resource
     private SysWarehouseContainerService sysWarehouseContainerService;
+    @Lazy
     @Resource
     private SysLaboratoryContainerService sysLaboratoryContainerService;
+    @Lazy
     @Resource
     private BaseMetaService baseMetaService;
+    @Lazy
     @Resource
     private InterfaceService interfaceService;
-
+    @Lazy
     @Resource
-    private SysWarningService sysWarningService;
-
+    private SysWarehouseService sysWarehouseService;
+    @Lazy
     @Resource
     private TempSensorsService tempSensorsService;
-
+    @Lazy
     @Resource
     private SysFileService sysFileService;
+    @Lazy
     @Resource
     private SysLaboratoryContainerDao sysLaboratoryContainerDao;
+
+    @Lazy
+    @Resource
+    private SysLaboratoryDao sysLaboratoryDao;
+
+
+    @Lazy
     @Resource
     private SysWarehouseContainerDao sysWarehouseContainerDao;
+    @Lazy
     @Resource
     private DangerousEncodeService dangerousEncodeService;
+    @Lazy
     @Resource
     private EncodeReplaceDictService encodeReplaceDictService;
+    @Lazy
+    @Resource
+    private SysLaboratoryService sysLaboratoryService;
+    @Lazy
+    @Resource
+    private HazardousWasteService hazardousWasteService;
+    @Lazy
+    @Resource
+    private OpeLaboratoryReserveService opeLaboratoryReserveService;
+    @Lazy
+    @Resource
+    private OpeUseFlowService opeUseFlowService;
+    @Lazy
+    @Resource
+    private SysWarehouseStatusService sysWarehouseStatusService;
+    @Lazy
+    @Resource
+    private SysReagentService sysReagentService;
+
     @Value("${institute.url}")
     String instituteUrl;
 
@@ -96,7 +128,7 @@
         }
 
         logger.info("registerTestCabinet" + data);
-        String userId = request.getHeader("userId");
+        Long userId = Long.valueOf(request.getHeader("userId"));
         JSONObject retJSON = new JSONObject();
         try {
             interfaceService.registerTestCabinet(userId, JSONObject.parseObject(data));
@@ -133,7 +165,7 @@
         }
 
         logger.info("AutheTestCabinet" + data);
-        String userId = request.getHeader("userId");
+        Long userId = Long.valueOf(request.getHeader("userId"));
         JSONObject retJSON = new JSONObject();
         try {
             interfaceService.AutheTestCabinet(userId, JSONObject.parseObject(data));
@@ -167,7 +199,7 @@
             data += str;
         }
         logger.info("logoutTestCabinet" + data);
-        String userId = request.getHeader("userId");
+        Long userId = Long.valueOf(request.getHeader("userId"));
         JSONObject retJSON = new JSONObject();
         try {
             interfaceService.logoutTestCabinet(userId, JSONObject.parseObject(data));
@@ -202,7 +234,7 @@
             data += str;
         }
         logger.info("updateTestCabinet" + data);
-        String userId = request.getHeader("userId");
+        Long userId = Long.valueOf(request.getHeader("userId"));
         JSONObject retJSON = new JSONObject();
         try {
             interfaceService.updateTestCabinet(userId, JSONObject.parseObject(data));
@@ -237,7 +269,7 @@
             data += str;
         }
         logger.info("openCabinetDoor" + data);
-        String userId = request.getHeader("userId");
+        Long userId = Long.valueOf(request.getHeader("userId"));
         JSONObject retJSON = new JSONObject();
         try {
             String returndata = interfaceService.openCabinetDoor(userId, JSONObject.parseObject(data));
@@ -298,7 +330,7 @@
         return retJSON.toJSONString();
     }
 
-    // 报送试剂最新信息接口
+    // 报送试剂最新信息接口 只更新试剂状态ope_regeant_status表  0, "领用" 1, "入库" 2, "存入" 3, "报废" -1, "领用待入库"
     @ResponseBody
     @RequestMapping(value = "/synchAllCabinet")
     public String synchAllCabinet(HttpServletRequest request) throws IOException {
@@ -333,6 +365,7 @@
             retJSON.put("code", e.getApiStatus().getRetCode());
             retJSON.put("message", e.getErrorMessage());
         } catch (Exception e) {
+            e.printStackTrace();
             retJSON.put("code", ApiStatus.SYS_ERR.getRetCode());
             StackTraceElement[] stackTraceElements = e.getStackTrace();
 
@@ -347,7 +380,65 @@
         return retJSON.toJSONString();
     }
 
-    // 报警情况接口(warning)
+    // 出入库记录信息接口 更新试剂流向ope_use_flow表
+//    操作状态	2	领用
+//    操作状态	4	错误存放
+//    操作状态	1	错误入库
+//    操作状态	6	转移	智能柜试剂转移到另一个柜子
+//    操作状态	5	报废
+//    操作状态	3	存放
+//    操作状态	0	入库
+//    操作状态	11	仓库领用
+//    操作状态	10	仓库入库
+    @ResponseBody
+    @RequestMapping(value = "/cabinetData")
+    public String cabinetData(HttpServletRequest request) throws Exception {
+        BufferedReader br = request.getReader();
+        String str, data = "";
+        while((str = br.readLine()) != null){
+            data += str;
+        }
+        JSONObject retJSON = new JSONObject();
+        logger.info("cabinetData" + data);
+        Long userId = StringUtils.isNotBlank(request.getHeader("userId"))?Long.valueOf(request.getHeader("userId")):null;
+        if(userId==null){
+            throw new ApiException(ApiStatus.SYS_ERR,"传参用户ID为空");
+        }
+        // Body参数
+        JSONObject bodyJSONObject = new JSONObject();
+        bodyJSONObject = JSONObject.parseObject(data);
+
+
+        try {
+            // 数据
+            String dataStr = bodyJSONObject.getString("data");
+            JSONArray dataJSONArray = JSONArray.parseArray(dataStr);
+            logger.info("dataJSONArray: " + dataJSONArray);
+            if(	dataJSONArray.size() !=0 ){
+                interfaceService.cabinetData(dataJSONArray,userId);
+            }
+
+            retJSON.put("code", ApiStatus.OK.getRetCode());
+            retJSON.put("message", ApiStatus.OK.getRetMsg());
+        } catch (ApiException e) {
+            retJSON.put("code", e.getApiStatus().getRetCode());
+            retJSON.put("message", e.getErrorMessage());
+        } catch (Exception e) {
+            retJSON.put("code", ApiStatus.SYS_ERR.getRetCode());
+            StackTraceElement[] stackTraceElements = e.getStackTrace();
+
+            StringBuilder sb = new StringBuilder();
+            sb.append(e.toString());
+            for (StackTraceElement stackTraceElement : stackTraceElements) {
+                sb.append("\n");
+                sb.append(stackTraceElement.toString());
+            }
+            retJSON.put("message", ApiStatus.SYS_ERR.getRetMsg() + "--" + sb.toString());
+        }
+        return retJSON.toJSONString();
+    }
+
+    // 报警情况接口(warning)  货柜预警接口
     @ResponseBody
     @RequestMapping(value = "/alarm")
     public String alarm(HttpServletRequest request) throws IOException {
@@ -418,56 +509,6 @@
         return retJSON.toJSONString();
     }
 
-    // 出入库记录信息接口
-    @ResponseBody
-    @RequestMapping(value = "/cabinetData")
-    public String cabinetData(HttpServletRequest request) throws IOException {
-    	BufferedReader br = request.getReader();
-        String str, data = "";
-        while((str = br.readLine()) != null){
-            data += str;
-        }
-        JSONObject retJSON = new JSONObject();
-        logger.info("cabinetData" + data);
-        String userId = request.getHeader("userId");
-
-        // Body参数
-        JSONObject bodyJSONObject = new JSONObject();
-        bodyJSONObject = JSONObject.parseObject(data);
-
-        // 主控条码
-        String controllerCode = bodyJSONObject.getString("controllerCode");
-
-        try {
-            // 数据
-            String dataStr = bodyJSONObject.getString("data");
-            JSONArray dataJSONArray = JSONArray.parseArray(dataStr);
-            logger.info("dataJSONArray: " + dataJSONArray);
-
-
-            if(	dataJSONArray.size() !=0 ){
-            	interfaceService.cabinetData(dataJSONArray);
-            }
-
-            retJSON.put("code", ApiStatus.OK.getRetCode());
-            retJSON.put("message", ApiStatus.OK.getRetMsg());
-        } catch (ApiException e) {
-            retJSON.put("code", e.getApiStatus().getRetCode());
-            retJSON.put("message", e.getErrorMessage());
-        } catch (Exception e) {
-            retJSON.put("code", ApiStatus.SYS_ERR.getRetCode());
-            StackTraceElement[] stackTraceElements = e.getStackTrace();
-
-            StringBuilder sb = new StringBuilder();
-            sb.append(e.toString());
-            for (StackTraceElement stackTraceElement : stackTraceElements) {
-                sb.append("\n");
-                sb.append(stackTraceElement.toString());
-            }
-            retJSON.put("message", ApiStatus.SYS_ERR.getRetMsg() + "--" + sb.toString());
-        }
-        return retJSON.toJSONString();
-    }
 
     //http://[URL]/smartlab/api/service/containerInfo
     @ResponseBody
@@ -508,7 +549,7 @@
     @RequestMapping(value = "/reagentInfo")
     public Object getReagentInfo(@RequestParam String startTime, @RequestParam String endTime, @RequestParam String containerCode, @RequestParam String status) {
         logger.info("getReagentInfo start...");
-        String containerid = null;
+        Long containerid = null;
 
         SysLaboratoryContainer laboratoryContainer = sysLaboratoryContainerDao
 				.getSysLaboratoryContainerByContainerCode(containerCode);
@@ -539,9 +580,15 @@
             map.put("reagentType", opeReagentStatus.getReagent().getReagentType());
             map.put("deadline", opeReagentStatus.getReagent().getDeadline());
             map.put("specification", opeReagentStatus.getReagent().getReagentFormat());
-            map.put("masterMetering", opeReagentStatus.getReagent().getMainMetering());
-            map.put("itemNumber", opeReagentStatus.getReagent().getReagentType());
+            map.put("itemNumber", opeReagentStatus.getArticleNumber());
             map.put("producer", opeReagentStatus.getReagent().getProductHome());
+            map.put("density", opeReagentStatus.getReagent().getDensity());
+            if (opeReagentStatus.getReagent().getMainMetering() == null){
+                map.put("masterMetering",opeReagentStatus.getReagent().getReagentUnit());
+            }else{
+                map.put("masterMetering", opeReagentStatus.getReagent().getMainMetering());
+            }
+
         }
         logger.info("getReagentInfo end...");
         return ResponseModel.getOkInstence(datalist);
@@ -553,7 +600,7 @@
         logger.info("getUserInfo start...");
 
         List<SysUser> userList = sysUserService.getSysUserInfoList(startTime, endTime);
-        List<SysLaboratoryContainer> allLaboratoryContainerList = sysLaboratoryContainerService.getSysLaboratoryContainerList(null,null,null,null,null);
+        List<SysLaboratoryContainer> allLaboratoryContainerList = sysLaboratoryContainerService.getSysLaboratoryContainerList(null,null,null,null,null,null);
         List<SysWarehouseContainer> allWarehouseContainerList = sysWarehouseContainerService.getSysWarehouseContainerList(null,null,null,null,null);
 
         List<String> containerCodeList = new ArrayList<String>();
@@ -584,7 +631,8 @@
             					(String[])wareContainerCodeList.toArray(new String[0])));
 
             }
-            if(user.getSeeFlag().ordinal() == SeeFlag.MANAGE.ordinal()){
+            if(user.getSeeFlag().ordinal() == SeeFlag.MANAGE.ordinal()
+            || user.getSeeFlag().ordinal() == SeeFlag.LEADING.ordinal()){
                 map.put("containerCodeList", containerCodeList);
             }
         }
@@ -593,35 +641,41 @@
     }
 
 
-
-
-
+    /**
+     * 入实验室库操作
+     * @param request
+     * @param reagentCode
+     * @return
+     */
     @RequestMapping(value = "/putInLaboratory", produces = {"application/json;charset=UTF-8"}, method = RequestMethod.POST)
     @ResponseBody
-    public String putInLaboratory(HttpServletRequest request, String reagentCode, String barCode, String containerCode) {
+    public String putInLaboratory(HttpServletRequest request, String reagentCode, Long labId, Long labContainerId) {
         try {
             logger.info("PutInLaboratory start...");
-            logger.info("Params : reagentCode[" + reagentCode + "], barCode[" + barCode + "], containerCode[" + containerCode + "]");
 
             // 检查用户
-            String idCard = this.getIdCardFromHeader(request);
-            if (StringUtils.isBlank(idCard)) {
-                throw new BusinessException(ExceptionEnumCode.PARAM_NULL, MessageUtil.getMessageByCode(ExceptionEnumCode.PARAM_NULL.getCode(), "用户卡号"));
+            Long userId = StringUtils.isNotBlank(request.getHeader("userId"))?Long.valueOf(request.getHeader("userId")):null;
+            if(userId==null){
+                throw new ApiException(ApiStatus.SYS_ERR,"传参用户ID为空");
             }
-            SysUser sysUser = this.sysUserService.getSysUserByIdCard(idCard);
-
-            if (sysUser == null) {
-                if(idCard.length()==20){//截取长度为8的卡号再次查询
-                    idCard=idCard.substring(10,18);
-                    sysUser = this.sysUserService.getSysUserByIdCard(idCard);
-                    if(sysUser==null){
-                        throw new BusinessException(ExceptionEnumCode.PARAM_NO_EXIST, MessageUtil.getMessageByCode(ExceptionEnumCode.PARAM_NO_EXIST.getCode(), "用户卡号", idCard));
-                    }
-                }else {
-                    throw new BusinessException(ExceptionEnumCode.PARAM_NO_EXIST, MessageUtil.getMessageByCode(ExceptionEnumCode.PARAM_NO_EXIST.getCode(), "用户卡号", idCard));
-                }
-
-            }
+//            String idCard = this.getIdCardFromHeader(request);
+//            if (StringUtils.isBlank(idCard)) {
+//                throw new BusinessException(ExceptionEnumCode.PARAM_NULL, MessageUtil.getMessageByCode(ExceptionEnumCode.PARAM_NULL.getCode(), "用户卡号"));
+//            }
+//            SysUser sysUser = this.sysUserService.getSysUserByIdCard(idCard);
+//
+//            if (sysUser == null) {
+//                if(idCard.length()==20){//截取长度为8的卡号再次查询
+//                    idCard=idCard.substring(10,18);
+//                    sysUser = this.sysUserService.getSysUserByIdCard(idCard);
+//                    if(sysUser==null){
+//                        throw new BusinessException(ExceptionEnumCode.PARAM_NO_EXIST, MessageUtil.getMessageByCode(ExceptionEnumCode.PARAM_NO_EXIST.getCode(), "用户卡号", idCard));
+//                    }
+//                }else {
+//                    throw new BusinessException(ExceptionEnumCode.PARAM_NO_EXIST, MessageUtil.getMessageByCode(ExceptionEnumCode.PARAM_NO_EXIST.getCode(), "用户卡号", idCard));
+//                }
+//
+//            }
 
             // 检查试剂条码
             if (StringUtils.isBlank(reagentCode)) {
@@ -629,16 +683,16 @@
             }
 
             // 检查地点条码
-            if (StringUtils.isBlank(barCode)) {
-                throw new BusinessException(ExceptionEnumCode.PARAM_NULL, MessageUtil.getMessageByCode(ExceptionEnumCode.PARAM_NULL.getCode(), "地点条码"));
+            if (labId==null) {
+                throw new BusinessException(ExceptionEnumCode.PARAM_NULL, MessageUtil.getMessageByCode(ExceptionEnumCode.PARAM_NULL.getCode(), "地点id"));
             }
 
             // 检查货柜条码
-            if (StringUtils.isBlank(containerCode)) {
-                throw new BusinessException(ExceptionEnumCode.PARAM_NULL, MessageUtil.getMessageByCode(ExceptionEnumCode.PARAM_NULL.getCode(), "货柜条码"));
+            if (labContainerId==null) {
+                throw new BusinessException(ExceptionEnumCode.PARAM_NULL, MessageUtil.getMessageByCode(ExceptionEnumCode.PARAM_NULL.getCode(), "货柜id"));
             }
 
-            this.opeReagentStatusService.putReagentInLaboratory(reagentCode, barCode, containerCode, sysUser);
+            this.opeReagentStatusService.putReagentInLaboratory(reagentCode, labId, labContainerId, userId);
 
             return this.getOkResponseString();
         } catch (BusinessException e) {
@@ -652,91 +706,6 @@
         }
     }
 
-//
-//
-//    @RequestMapping(value = "/setWarning", produces = {"application/json;charset=UTF-8"}, method = RequestMethod.POST)
-//    @ResponseBody
-//    public String setWarning(HttpServletRequest request) throws ParseException, IOException, ApiException {
-//        BufferedReader reader = new BufferedReader(new InputStreamReader(request.getInputStream()));
-//        String str = "";
-//        String inputLine;
-//        try {
-//            while ((inputLine = reader.readLine()) != null) {
-//                str += inputLine;
-//            }
-//            reader.close();
-//        } catch (IOException e) {
-//            System.out.println("IOException: " + e);
-//        }
-//        JSONObject jsonObject = JSON.parseObject(str);
-//        SysWarning sysWarning = new SysWarning();
-//        if (!jsonObject.containsKey("controllerCode")
-//                || ! jsonObject.containsKey("data")) {
-//            throw new ApiException(ApiStatus.PARAM_NO_EXIST);
-//        }
-//
-//        String controllerCode = jsonObject.getString("controllerCode");
-//
-//        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-//        String dataStr = jsonObject.getString("data");
-//
-//
-//        JSONObject dataJson = JSON.parseObject(dataStr);
-//
-//            if (!dataJson.containsKey("warningId")
-//                    || !dataJson.containsKey("userId")
-//                    || !dataJson.containsKey("warningTime")
-//                    || !dataJson.containsKey("warningLevel")
-//                    || !dataJson.containsKey("containerCode")
-//                    || !dataJson.containsKey("warningPoint")) {
-//                throw new ApiException(ApiStatus.PARAM_NO_EXIST);
-//            }
-//
-//            String containerCode = dataJson.getString("containerCode");
-//            String warningId = dataJson.getString("warningId");
-//            String userId = dataJson.getString("userId");
-//            String warningTimeStr = dataJson.getString("warningTime");
-//            Integer warningLevelInt = dataJson.getInteger("warningLevel");
-//            Integer warningPoint = dataJson.getInteger("warningPoint");
-//
-//            sysWarning.setUserId(userId);
-//            sysWarning.setWarningTime(sdf.parse(warningTimeStr));
-//            sysWarning.setWarningPoint(warningPoint);
-//            sysWarning.setWarningLevel(warningLevelInt);
-//            sysWarning.setWarningId(warningId);
-//            sysWarning.setId(IDUtils.uuid());
-//
-//
-//        SysLaboratoryContainer laboratoryContainer = sysLaboratoryContainerDao.getSysLaboratoryContainerByContainerCode(containerCode);
-//        if (Objects.isNull(laboratoryContainer)) {
-//            SysWarehouseContainer warehouseContainer = sysWarehouseContainerDao.getSysWarehouseContainerByContainerCode(containerCode);
-//            if (Objects.isNull(warehouseContainer)) {
-//                logger.error("The containerCode:"+containerCode+" has not been exists!");
-//            } else {
-//                sysWarning.setContainerId(warehouseContainer.getId());
-//                }
-//            } else {
-//                sysWarning.setContainerId(laboratoryContainer.getId());
-//            }
-//            JSONObject retJSON = new JSONObject();
-//            try {
-//                sysWarningService.insert(sysWarning);
-//                retJSON.put("code", ApiStatus.OK.getRetCode());
-//                retJSON.put("message", ApiStatus.OK.getRetMsg());
-//            } catch (Exception e) {
-//                retJSON.put("code", ApiStatus.SYS_ERR.getRetCode());
-//                StackTraceElement[] stackTraceElements = e.getStackTrace();
-//
-//                StringBuilder sb = new StringBuilder();
-//                sb.append(e.toString());
-//                for (StackTraceElement stackTraceElement : stackTraceElements) {
-//                    sb.append("\n");
-//                    sb.append(stackTraceElement.toString());
-//                }
-//                retJSON.put("message", ApiStatus.SYS_ERR.getRetMsg() + "--" + sb.toString());
-//            }
-//            return retJSON.toJSONString();
-//    }
 
 
     // 智能柜温度,湿度,气体浓度数据接口
@@ -754,7 +723,7 @@
             }
             reader.close();
         } catch (IOException e) {
-            System.out.println("IOException: " + e);
+            logger.info(e.getMessage());
         }
         JSONObject jsonObject = JSON.parseObject(str);
 
@@ -784,7 +753,7 @@
         	e.printStackTrace();
         }
         int type = 0;
-        String containerId = null;
+        Long containerId = null;
         logger.info("The containerCode:" + containerCode + " finding!");
 		// 查找货柜条码对应货柜信息
 		SysLaboratoryContainer laboratoryContainer = sysLaboratoryContainerDao
@@ -836,18 +805,23 @@
 			}
 
 			String updateTime = dataJson.getString("updateTime");
+            if (sdf.parse(updateTime).after(new Date())) {
+                retJSON.put("code", "400");
+                retJSON.put("message", "发送时间不准确");
+                return retJSON.toJSONString();
+            }
 
 			SysContainerSensors sysContainerSensors = new SysContainerSensors();
-			sysContainerSensors.setContainerId(containerCode);
+			sysContainerSensors.setContainerId(Long.valueOf(containerCode));
 			TempSensors tempSensors = new TempSensors();
-			tempSensors.setContainerId(containerCode);
+			tempSensors.setContainerId(Long.valueOf(containerCode));
 			/* tempSensors.setFlag(flag); */
 			tempSensors.setTemp(temp);
 			tempSensors.setHumidity(humidity);
 			tempSensors.setVoc1(voc1);
 			tempSensors.setFlag(flag);
 			tempSensors.setUpdateTime(sdf.parse(updateTime));
-			tempSensors.setId(IDUtils.uuid());
+			//tempSensors.setId(IDUtils.uuid());
 			tempSensors.setType(type);
 			tempSensors.setContainerId(containerId);
 
@@ -971,7 +945,7 @@
     }
     @ResponseBody
     @RequestMapping(value = "/downloadFile")
-    public HttpServletResponse downloadFile(HttpServletRequest request, String id, HttpServletResponse response){
+    public HttpServletResponse downloadFile(HttpServletRequest request, Long id, HttpServletResponse response){
         SysFile sysFile=this.sysFileService.getSysFileById(id);
         try {
                    // path是指欲下载的文件的路径。
@@ -1009,31 +983,24 @@
         token.setRememberMe(true);
         BaseController baseController=new BaseController();
         Subject currentUser = baseController.getSubject();
-        System.out.println(1);
         try {
-            System.out.println(2);
             currentUser.login(token);
         } catch (UnknownAccountException e) {
-            System.out.println("用户名不存在");
             FacesUtils.warn("用户名不存在");
             return null;
         } catch (Exception e) {
-            System.out.println("登陆失败");
             logger.error("登陆失败", e);
         }
 
         if (currentUser.isAuthenticated()) {//登录成功进入主页
-            System.out.println(3);
             SysUser user = this.sysUserService.getSysUserByAccount("admin");
             currentUser.getSession(true).setAttribute(Constants.SESSION_USER, user);
             currentUser.getSession(true).getId();
             MenuController menuController=new MenuController();
             menuController.initPage();
-            System.out.println(4);
             //return "redirect:http://192.168.1.195:8888/smartlab_war_exploded/index.xhtml";
             return new ModelAndView("redirect:/index.xhtml");
         } else {
-            System.out.println("用户名与密码不匹配");
             FacesUtils.warn("用户名与密码不匹配");
         }
         return null;
@@ -1072,7 +1039,7 @@
             map.put("unit", user.getCompany());
             map.put("Arp", user.getArp());
             map.put("departmentName", user.getDepartment());
-            map.put("project", user.getProject());
+            map.put("projectId", user.getProjectId());
 
         }
         logger.info("getUserInfo end...");
@@ -1084,21 +1051,21 @@
     @ResponseBody
     @RequestMapping(value = "/dangerousEncodeInfo")
     public Object getDangerousEncodeInfo(@RequestParam String reagentName, @RequestParam String cas) {
-        List<DangerousEncodeVo> datalist = new ArrayList<>();
+        List<DangerousEncode> 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("有毒称重型");
+            for (DangerousEncode dangerousEncode : datalist){
+                if (StringUtils.isNotBlank(dangerousEncode.getContainerNumber())){
+                    if (dangerousEncode.getContainerNumber().startsWith("0")){
+                        dangerousEncode.setContainerName("普通型");
+                    }else if (dangerousEncode.getContainerNumber().startsWith("1")){
+                        dangerousEncode.setContainerName("阻燃型");
+                    }else if (dangerousEncode.getContainerNumber().startsWith("2")){
+                        dangerousEncode.setContainerName("抗腐蚀型");
+                    }else if (dangerousEncode.getContainerNumber().startsWith("3")){
+                        dangerousEncode.setContainerName("防爆型");
+                    }else if (dangerousEncode.getContainerNumber().startsWith("4")){
+                        dangerousEncode.setContainerName("有毒称重型");
                     }
                 }
             }
@@ -1187,7 +1154,10 @@
         return ResponseModel.getOkInstence(code);
     }
 
-
+    /**
+     * 获取替换字典
+     *
+     */
     @ResponseBody
     @RequestMapping("getEncodeReplaceDict")
     public Object getEncodeReplaceDict(@RequestParam String type) {
@@ -1205,6 +1175,10 @@
 
     }
 
+    /**
+     * 获取编码
+     *
+     */
     @ResponseBody
     @RequestMapping("getDangerousEncode")
     public Object getDangerousEncode(@RequestParam(required = false) String reagentName, @RequestParam(required = false) String cas) {
@@ -1218,6 +1192,735 @@
     }
 
     }
+    /**
+     * 获取仓库信息
+     */
+    @ResponseBody
+    @RequestMapping("getWarehouseInfo")
+    public Object getWarehouseInfo() {
+        try {
+            List<SysWarehouseDto> data = sysWarehouseService.getWarehouseList();
+            return ResponseModel.getOkInstence(data);
+        } catch (Exception e) {
+            e.printStackTrace();
+            logger.info(e);
+            return ResponseModel.getErrInstance("系统出错");
+        }
+
+    }
+
+
+    /**
+    * @Description: 获取所有人员,人员相关实验室,实验室相关试剂柜
+    * @date 2020/12/23 16:47
+    */
+    @ResponseBody
+    @RequestMapping("getApplyPersonDetailInfo")
+    public Object getApplyPersonDetailInfo() {
+        try {
+            List data = sysUserService.getUserInfo();
+            return ResponseModel.getOkInstence(data);
+        } catch (Exception e) {
+            e.printStackTrace();
+            logger.info(e);
+            return ResponseModel.getErrInstance("系统出错");
+        }
+
+    }
+
+
+   /**
+   * @Description: 入库
+   * @date 2020/12/24 14:19
+   */
+    @ResponseBody
+    @RequestMapping("putInStorage")
+    public Object putInWarehouse(@RequestBody InWarehouseInfoDto inWarehouseInfo) {
+        try {
+
+            if (inWarehouseInfo.getReagentCode() != null && inWarehouseInfo.getReagentCode().size() > 0) {
+                ReagentReceivingDto reagentReceivingDtos = new ReagentReceivingDto();
+
+                for (int i = 0; i < inWarehouseInfo.getReagentCode().size(); i++) {
+                    String code = inWarehouseInfo.getReagentCode().get(i);
+                    DangerousEncode dangerousEncode = new DangerousEncode();
+                    //5-8位
+                    String reagentCode = code.substring(4, 8);
+                    //数据库存储的前缀00空着
+                    dangerousEncode.setReagentCode("00"+reagentCode);
+                    List<DangerousEncode> dangerousEncodes =
+                            dangerousEncodeService.selectAll(dangerousEncode,null,null);
+                    //1.编码存在校验
+                    if (dangerousEncodes.size() <1){
+                        return ResponseModel.getErrInstance("该试剂危化品编码不存在");
+                    }
+
+                    //2.重复入库校验  无论任何状态
+                    OpeReagentStatus ors = opeReagentStatusService.getOpeReagentStatusByReagentCode(code);
+                    if (ors != null) {
+                        return ResponseModel.getErrInstance("该试剂危化品编码已存在");
+                    }
+                }
+//
+//                //3.如果是入智能柜,则该智能柜下需要存在对应的实验室和实验室柜子
+//                SysWarehouseContainer sysWarehouseContainer = sysWarehouseContainerService.getSysWarehouseContainer(inWarehouseInfo.getContainerId());
+//                if(this.baseMetaService.getBaseMetaKey(sysWarehouseContainer.getType()).equals("200")) {
+//                    reagentReceivingDtos.setReagentCode(inWarehouseInfo.getReagentCode());
+//                    reagentReceivingDtos.setApplyUserId(inWarehouseInfo.getUser());
+//                    SysLaboratoryContainer sysLaboratoryContainer = sysLaboratoryContainerService.getSysLaboratoryContainerByContainerCode(sysWarehouseContainer.getContainerCode());
+//                    if (null != sysLaboratoryContainer){
+//                        reagentReceivingDtos.setLabId(sysLaboratoryContainer.getLaboratoryId());
+//                        reagentReceivingDtos.setLabContainerId(sysLaboratoryContainer.getId());
+//                    }else {
+//                        return ResponseModel.getErrInstance("该仓库货柜为智能柜,但是未创建相同货柜条码的实验室临时存储柜");
+//                    }
+//                }
+
+                //4.入库
+                sysWarehouseService.putInWarehouse(inWarehouseInfo);
+
+                //5.如果是入智能柜,则需再领用到智能柜里
+//                if (reagentReceivingDtos.getLabContainerId()!=null){
+//                    sysWarehouseService.reagentReceiving(reagentReceivingDtos);
+//                }
+
+                return ResponseModel.getOkInstence("入库成功");
+            } else {
+                return ResponseModel.getErrInstance("无试剂条码");
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+            logger.info(e);
+            return ResponseModel.getErrInstance("系统出错");
+        }
+
+    }
+
+
+    /**
+     * @Description: 试剂领用到实验室
+     * @date 2020/12/24 14:19
+     */
+    @ResponseBody
+    @RequestMapping("reagentReceiving")
+    public Object reagentReceiving(@RequestBody ReagentReceivingDto reagentReceiving) {
+        try {
+            if (reagentReceiving.getReagentCode() == null || reagentReceiving.getReagentCode().size() == 0) {
+                return ResponseModel.getErrInstance("无效试剂条码");
+            }
+            if(reagentReceiving.getLabId()==null||reagentReceiving.getLabContainerId()==null||reagentReceiving.getApplyUserId()==null){
+                return ResponseModel.getErrInstance("传参错误");
+            }
+            //1.校验仓库是否有该试剂
+            for (int i = 0; i < reagentReceiving.getReagentCode().size(); i++) {
+                String reagentCode = reagentReceiving.getReagentCode().get(i);
+                //去试剂状态查找 是否有此试剂条码
+                OpeReagentStatus ors = opeReagentStatusService.getOpeReagentStatusByReagentCode(reagentCode);
+                if (ors == null || ors.getStatus() != ArrivalStatus.WAREHOUSE.getKey()){
+                    return ResponseModel.getErrInstance("仓库无此试剂");
+                }
+            }
+
+            //2.领用
+            sysWarehouseService.reagentReceiving(reagentReceiving);
+            return ResponseModel.getOkInstence("领用成功");
+
+        } catch (Exception e) {
+            e.printStackTrace();
+            logger.info(e);
+            return ResponseModel.getErrInstance("系统出错");
+        }
+
+    }
+
+    /**
+     * @Description: 试剂转移到另一个柜子
+     * ope_reagent_status 根据reagent_code修改houseid containerid userid updatetime
+     * OpeLaboratoryReserve 根据ope_reagent_status信息查出旧数据删除 再插入新数据
+     * OpeUseFlow 插入试剂流向追踪表
+     */
+    @ResponseBody
+    @RequestMapping("reagentTransfer")
+    public Object reagentTransfer(@RequestBody ReagentReceivingDto reagentReceiving) {
+        try {
+            if (reagentReceiving.getReagentCode() == null || reagentReceiving.getReagentCode().size() == 0) {
+                return  ResponseModel.getErrInstance("请选择申领试剂");
+            }
+            if (reagentReceiving.getApplyUserId()!=null|| reagentReceiving.getLabContainerId()!=null
+            || reagentReceiving.getLabId()!=null){
+                FacesUtils.warn("请选择申领人、实验室、货柜");
+            }
+            for (String reagentCode : reagentReceiving.getReagentCode()) {
+                OpeReagentStatus opeReagentStatus = opeReagentStatusService
+                        .getOpeReagentStatusByReagentCode(reagentCode);
+                if (opeReagentStatus == null){
+                    return  ResponseModel.getErrInstance(reagentCode+",该试剂在库存中不存在");
+                }
+            }
+            String number = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date());
+            for (String reagentCode : reagentReceiving.getReagentCode()) {
+                OpeReagentStatus opeReagentStatus = opeReagentStatusService
+                        .getOpeReagentStatusByReagentCode(reagentCode);
+                opeLaboratoryReserveService.updateByReagent(opeReagentStatus.getReagentId(), opeReagentStatus.getHouseId(),
+                        opeReagentStatus.getContainerId(), opeReagentStatus.getUserId());
+                OpeLaboratoryReserve lr = new OpeLaboratoryReserve();
+                lr.setReagentId(opeReagentStatus.getReagentId());
+                lr.setHouseId(reagentReceiving.getLabId());
+                lr.setContainerId(reagentReceiving.getLabContainerId());
+                lr.setReserve(1);
+                lr.setUserId(reagentReceiving.getApplyUserId());
+                lr.setValidFlag(ValidFlag.VALID);
+                opeLaboratoryReserveService.insert(lr);
+
+                opeReagentStatus.setStatus(ArrivalStatus.NOREGISTER.getKey());
+                opeReagentStatus.setUserId(reagentReceiving.getApplyUserId());
+                opeReagentStatus.setHouseId(reagentReceiving.getLabId());
+                opeReagentStatus.setContainerId(reagentReceiving.getLabContainerId());
+                opeReagentStatusService.updateOpeReagentStatus(opeReagentStatus);//更新试剂状态表
+
+                OpeUseFlow opeUseFlowExist =  opeUseFlowService.getOpeUseFlowByCode(opeReagentStatus.getReagentCode());
+                OpeUseFlow opeUseFlow = new OpeUseFlow();
+                opeUseFlow.setReagentCode(opeReagentStatus.getReagentCode());
+                opeUseFlow.setStatus(opeReagentStatus.getStatus());
+                opeUseFlow.setHouseId(opeReagentStatus.getHouseId());
+                opeUseFlow.setContainerId(opeReagentStatus.getContainerId());
+                opeUseFlow.setUserId(opeReagentStatus.getUserId());
+                opeUseFlow.setPlace(opeReagentStatus.getPlace());
+                opeUseFlow.setStoreType(StoreType.DIRECTSTORE.getKey());
+                opeUseFlow.setRemainder(opeUseFlowExist.getRemainder());
+                opeUseFlow.setOperateState(OperateStatus.TRANSFER.getKey());
+                opeUseFlow.setReceiptNumber(number);
+                opeUseFlowService.insertOpeUseFlow(opeUseFlow);
+            }
+            return ResponseModel.getOkInstence("转移成功");
+        } catch (Exception e) {
+            logger.error(e.getMessage(), e);
+            return  ResponseModel.getErrInstance("操作失败");
+        }
+    }
+
+    /**
+     * @Description: 危废登录
+     * @date 2020/12/29 14:13
+     */
+    @ResponseBody
+    @RequestMapping("hazardousWaste/login")
+    public Object hazardousWaste(@RequestBody HazardousWasteUser user) {
+        try {
+            String account = user.getAccount();
+            if (StringUtils.isBlank(account)){
+                return  ResponseModel.getErrInstance("账户名为空");
+            }
+
+            HazardousWasteUser sysUser = sysUserService.getUserByAccount(account,null);
+            if (sysUser == null){
+                return  ResponseModel.getErrInstance("账户名不存在");
+            }else{
+                if (sysUser.getPassword().equals(MD5Utils.encode(user.getPassword()))){
+//                    if (sysUser.getAdminFlag() != 0){
+//                        user = sysUser;
+//                    }else{
+//                        return ResponseModel.getErrInstance("用户不属于危废处理人员");
+//                    }
+                    user = sysUser;
+                    return ResponseModel.getOkInstence(user);
+                }else{
+                    return ResponseModel.getErrInstance("密码错误");
+                }
+            }
+
+        }catch (Exception e){
+            e.printStackTrace();
+            logger.info(e);
+            return ResponseModel.getErrInstance("系统出错");
+        }
+    }
+
+    /**
+     * 修改密码
+     *
+     */
+    @ResponseBody
+    @RequestMapping("hazardousWaste/changePwd")
+    public Object changePwd(@RequestBody HazardousWasteUser user){
+        try {
+            if (StringUtils.isBlank(user.getAccount())){
+                return  ResponseModel.getErrInstance("账户名为空");
+            }
+            SysUser sysUser = sysUserService.getSysUserByAccount(user.getAccount());
+            if (sysUser == null){
+                return  ResponseModel.getErrInstance("账户名不存在");
+            }else{
+                if (sysUser.getPassword().equals(MD5Utils.encode(user.getPassword()))){
+
+                    SysUser newUser = new SysUser();
+                    newUser = sysUser;
+                    String PW_PATTERN = "(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[~!@#$%^&*_.]).{8,}";
+                    if (!user.getNewpassword().matches(PW_PATTERN)){
+                        return ResponseModel.getErrInstance("密码必须8位以上,并且包含大小写字母、数字、特殊符号三种以上");
+                    }else {
+                        newUser.setPassword(MD5Utils.encode(user.getNewpassword()));
+                        sysUserService.updateSysUser(newUser);
+                        return ResponseModel.getOkInstence("修改成功");
+                    }
+                }else{
+                    return ResponseModel.getErrInstance("原密码错误");
+                }
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+            logger.info(e);
+            return ResponseModel.getErrInstance("系统出错");
+        }
+    }
+
+    /**
+     * 根据课题组名称获取部门、地址、所属人员
+     *
+     */
+    @ResponseBody
+    @RequestMapping("hazardousWaste/getLabAndUser")
+    public Object getLabAndUser(@RequestParam(required=true) Long projectId){
+        try {
+            if (projectId==null){
+                return  ResponseModel.getErrInstance("课题组id不能为空");
+            }
+            LaboratoryVo laboratoryVo = new LaboratoryVo();
+            List<LaboratoryVo.Laboratory> laboratoryList = sysLaboratoryService.getLaboratoryByProject(projectId);
+            List<LaboratoryVo.LaboratoryUser> laboratoryUserList = sysUserService.getUserByProject(projectId);
+            laboratoryVo.setLaboratoryList(laboratoryList);
+            laboratoryVo.setLaboratoryUsers(laboratoryUserList);
+            return ResponseModel.getOkInstence(laboratoryVo);
+        }catch (Exception e){
+            e.printStackTrace();
+            logger.info(e);
+            return ResponseModel.getErrInstance("系统出错");
+        }
+    }
+
+    /**
+     * 录入危废信息
+     *
+     */
+    @ResponseBody
+    @RequestMapping("hazardousWaste/putWasteInfo")
+    public Object putWasteInfo(@RequestBody HazardousWaste hazardousWaste){
+        try {
+            if (StringUtils.isBlank(hazardousWaste.getDepartment()) || hazardousWaste.getApplyPerson()!=null
+            || hazardousWaste.getProjectId()==null || StringUtils.isBlank(hazardousWaste.getCreator())){
+                return  ResponseModel.getErrInstance("部门、课题组、确认者、创建者、不能为空");
+            }
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+            hazardousWaste.setTid(sdf.format(new Date()));
+            hazardousWaste.setCreateTime(new Date());
+            hazardousWaste.setStatus("待确认");
+            HazardousWasteUser sysUser = sysUserService.getUserByAccount(null,hazardousWaste.getApplyPerson());
+            hazardousWaste.setUnit(sysUser.getCompany());
+            if (hazardousWaste.getAcid()== null){
+                hazardousWaste.setAcid(new BigDecimal(0));
+            }
+            if (hazardousWaste.getAlkali()== null){
+                hazardousWaste.setAlkali(new BigDecimal(0));
+            }
+            if (hazardousWaste.getOrganic()== null){
+                hazardousWaste.setOrganic(new BigDecimal(0));
+            }
+            if (hazardousWaste.getSolid()== null){
+                hazardousWaste.setSolid(new BigDecimal(0));
+            }
+            if (hazardousWaste.getMedical()== null){
+                hazardousWaste.setMedical(new BigDecimal(0));
+            }
+            hazardousWaste.setUpdator(hazardousWaste.getCreator());
+//            hazardousWaste.setUpdatetime(new Date());
+            hazardousWasteService.insertInfo(hazardousWaste);
+            return ResponseModel.getOkInstence("添加成功");
+        }catch (Exception e){
+            e.printStackTrace();
+            logger.info(e);
+            return ResponseModel.getErrInstance("系统出错");
+        }
+    }
+
+
+    /**
+     * 根据用户名和危废角色获取危废列表
+     *
+     */
+    @ResponseBody
+    @RequestMapping("hazardousWaste/getWasteInfo")
+    public Object getWasteInfo(@RequestParam(required=true) int adminFlag,@RequestParam(required=true) String name,@RequestParam(required=false) String status
+    ,@RequestParam(required=false) String starttime,@RequestParam(required=false) String endtime){
+        try {
+            if (StringUtils.isBlank(name)){
+                return  ResponseModel.getErrInstance("姓名不能为空");
+            }
+            List<HazardousWaste> hazardousWasters = new ArrayList<>();
+            if (adminFlag == 2){
+                hazardousWasters = hazardousWasteService.setAllWasters(starttime,endtime,status,null);
+            }else if (adminFlag == 1) {
+                hazardousWasters = hazardousWasteService.setAllWasters(starttime,endtime,status,name);
+            }
+            return ResponseModel.getOkInstence(hazardousWasters);
+        }catch (Exception e){
+            e.printStackTrace();
+            logger.info(e);
+            return ResponseModel.getErrInstance("系统出错");
+        }
+    }
+
+    /**
+     * 更新订单状态(确认订单、拒绝订单)
+     */
+    @ResponseBody
+    @RequestMapping("hazardousWaste/changeStatus")
+    public Object changeStatus(@RequestParam(required=true) String tid,@RequestParam(required=true) String status,
+                                @RequestParam(required=true) String updator){
+        try {
+            if (StringUtils.isBlank(tid) || StringUtils.isBlank(status)){
+                return  ResponseModel.getErrInstance("单号、状态不能为空");
+            }
+            HazardousWaste hazardousWaste = hazardousWasteService.selectByTid(tid);
+            if (hazardousWaste != null){
+                if (!hazardousWaste.getStatus().equals("待确认")){
+                    return ResponseModel.getErrInstance("单据不为待确认无法修改");
+                }else if (status.equals("已确认") || status.equals("已拒绝")){
+                    hazardousWaste.setStatus(status);
+                    hazardousWaste.setUpdator(updator);
+                    hazardousWaste.setUpdatetime(new Date());
+                    hazardousWasteService.updateWaste(hazardousWaste);
+                    return ResponseModel.getOkInstence("修改成功");
+                }else {
+                    return ResponseModel.getErrInstance("单号状态不正确");
+                }
+            }else {
+                return ResponseModel.getErrInstance("单号不存在");
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+            logger.info(e);
+            return ResponseModel.getErrInstance("系统出错");
+        }
+    }
+
+    /**
+     * 修改危废信息
+     *
+     */
+    @ResponseBody
+    @RequestMapping("hazardousWaste/editWasteInfo")
+    public Object editWasteInfo(@RequestBody HazardousWaste hazardousWaste){
+        try {
+            if (StringUtils.isBlank(hazardousWaste.getTid()) ||StringUtils.isBlank(hazardousWaste.getUpdator())){
+                return  ResponseModel.getErrInstance("单号、更新人不能为空");
+            }
+            HazardousWaste waste = hazardousWasteService.selectByTid(hazardousWaste.getTid());
+            if (waste != null){
+                if (!waste.getStatus().equals("已拒绝")){
+                    return ResponseModel.getErrInstance("单据不为已拒绝无法修改");
+                }else {
+                    waste.setStatus("待确认");
+                    if (hazardousWaste.getAcid()== null){
+                        waste.setAcid(new BigDecimal(0));
+                    }else {
+                        waste.setAcid(hazardousWaste.getAcid());
+                    }
+                    if (hazardousWaste.getAlkali()== null){
+                        waste.setAlkali(new BigDecimal(0));
+                    }else {
+                        waste.setAlkali(hazardousWaste.getAlkali());
+                    }
+                    if (hazardousWaste.getOrganic()== null){
+                        waste.setOrganic(new BigDecimal(0));
+                    }else {
+                        waste.setOrganic(hazardousWaste.getOrganic());
+                    }
+                    if (hazardousWaste.getSolid()== null){
+                        waste.setSolid(new BigDecimal(0));
+                    }else {
+                        waste.setSolid(hazardousWaste.getSolid());
+                    }
+                    if (hazardousWaste.getMedical()== null){
+                        waste.setMedical(new BigDecimal(0));
+                    }else {
+                        waste.setMedical(hazardousWaste.getMedical());
+                    }
+                    waste.setUpdator(hazardousWaste.getUpdator());
+                    waste.setUpdatetime(new Date());
+                    hazardousWasteService.updateWaste(waste);
+                    return ResponseModel.getOkInstence("修改成功");
+                }
+            }else {
+                return ResponseModel.getErrInstance("单号不存在");
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+            logger.info(e);
+            return ResponseModel.getErrInstance("系统出错");
+        }
+    }
+
+
+    /**
+     * 根据用户名获取危废全年统计列表
+     *
+     */
+    @ResponseBody
+    @RequestMapping("hazardousWaste/getWasteStatistics")
+    public Object getWasteStatistics(@RequestParam(required=true) int adminFlag,@RequestParam(required=true) String name){
+        try {
+            if (StringUtils.isBlank(name)){
+                return  ResponseModel.getErrInstance("姓名不能为空");
+            }
+            Calendar calendar = Calendar.getInstance();
+            int year = calendar.get(Calendar.YEAR);
+            String status = "已确认";
+            String starttime = year+"-01-01 00:00:00";
+            String endtime = year+"-12-31 23:59:59";
+            List<HazardousWaste> hazardousWasters = new ArrayList<>();
+            if (adminFlag == 2){
+                hazardousWasters = hazardousWasteService.setAllWasterCount(starttime,endtime,status,null);
+            }else if (adminFlag == 1) {
+                hazardousWasters = hazardousWasteService.setAllWasterCount(starttime,endtime,status,name);
+            }
+            return ResponseModel.getOkInstence(hazardousWasters);
+        }catch (Exception e){
+            e.printStackTrace();
+            logger.info(e);
+            return ResponseModel.getErrInstance("系统出错");
+        }
+    }
+
+    // 处理人员违规预警接口
+    @ResponseBody
+    @RequestMapping(value = "/delalarmperson")
+    public String delalarmperson(HttpServletRequest request) throws IOException {
+        logger.info("/api/service/delalarmperson");
+        BufferedReader br = request.getReader();
+        String str, data = "";
+        while((str = br.readLine()) != null){
+            data += str;
+        }
+        logger.info("delalarmperson" + data);
+//        String userId = request.getHeader("userId");
+        JSONObject retJSON = new JSONObject();
+        try {
+            interfaceService.delalarmperson(JSONObject.parseObject(data));
+
+            retJSON.put("code", ApiStatus.OK.getRetCode());
+            retJSON.put("message", ApiStatus.OK.getRetMsg());
+        } catch (ApiException e) {
+            retJSON.put("code", e.getApiStatus().getRetCode());
+            retJSON.put("message", e.getErrorMessage());
+        } catch (Exception e) {
+            retJSON.put("code", ApiStatus.SYS_ERR.getRetCode());
+            StackTraceElement[] stackTraceElements = e.getStackTrace();
+
+            StringBuilder sb = new StringBuilder();
+            sb.append(e.toString());
+            for (StackTraceElement stackTraceElement : stackTraceElements) {
+                sb.append("\n");
+                sb.append(stackTraceElement.toString());
+            }
+            retJSON.put("message", ApiStatus.SYS_ERR.getRetMsg() + "--" + sb.toString());
+        }
+        return retJSON.toJSONString();
+    }
+
+
+
+
+    @ResponseBody
+    @RequestMapping("/getAllWarehouse")
+    public Object getAllWarehouse() {
+        try {
+            List<Map> res = sysWarehouseService.getAllWarehouse();
+            return ResponseModel.getOkInstence(res);
+        } catch (Exception e) {
+            e.printStackTrace();
+            return ResponseModel.getErrInstance("系统内部错误");
+        }
+
+    }
+
+    @ResponseBody
+    @RequestMapping(value = "addWarehouseStatus",method = RequestMethod.POST)
+    public Object addWarehouseStatus(@RequestBody SysWarehouseStatus one){
+        try {
+            one.setCreateTime(new Date());
+            sysWarehouseStatusService.addOne(one);
+            return ResponseModel.getOkInstence("新增成功");
+        } catch (BusinessException e) {
+            e.printStackTrace();
+            return ResponseModel.getErrInstance(e.getMessage());
+        } catch (Exception e) {
+            e.printStackTrace();
+            return ResponseModel.getErrInstance("系统内部错误");
+        }
+    }
+
+
+    /**
+     * 试剂流向追踪
+     * @return
+     */
+    @ResponseBody
+    @RequestMapping(value = "/reagentFlows",method = RequestMethod.GET)
+    public Object reagentFlows(@RequestParam(required=false,defaultValue = "1") Integer pageNum,@RequestParam(required=false,defaultValue = "10") Integer pageSize,OpeUseFlowQueryDto opeUseFlowQueryDto){
+        try {
+            return ResponseModel.getOkInstence(opeUseFlowService.getOpeUseFlowSimpleInfoList(pageNum, pageSize, opeUseFlowQueryDto));
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResponseModel.getErrInstance("系统内部错误");
+        }
+    }
+
+    /**
+     * 试剂管理分页查询
+     * @return
+     */
+    @ResponseBody
+    @RequestMapping(value = "/reagentList",method = RequestMethod.GET)
+    public Object reagentList(@RequestParam(required=false,defaultValue = "1") Integer pageNum,@RequestParam(required=false,defaultValue = "10") Integer pageSize,String name,String cas){
+        try {
+            return ResponseModel.getOkInstence(sysReagentService.reagentList(pageNum,pageSize,name,cas));
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResponseModel.getErrInstance("系统内部错误");
+        }
+    }
+
+    /**
+     * 实验室管理分页查询
+     * @return
+     */
+    @ResponseBody
+    @RequestMapping(value = "/labList",method = RequestMethod.GET)
+    public Object labList(@RequestParam(required=false,defaultValue = "1") Integer pageNum,@RequestParam(required=false,defaultValue = "10") Integer pageSize,String name){
+        try {
+            return ResponseModel.getOkInstence(sysLaboratoryService.getSysLaboratoryList(pageNum,pageSize,name));
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResponseModel.getErrInstance("系统内部错误");
+        }
+    }
+
+
+    /**
+     * 实验室临时库存管理分页查询
+     * @return
+     */
+    @ResponseBody
+    @RequestMapping(value = "/labContainerList",method = RequestMethod.GET)
+    public Object labContainerList(@RequestParam(required=false,defaultValue = "1") Integer pageNum,@RequestParam(required=false,defaultValue = "10") Integer pageSize,String name,String controllerName){
+        try {
+            return ResponseModel.getOkInstence(sysLaboratoryContainerService.getSysLaboratoryContainerList(pageNum,pageSize,name,controllerName));
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResponseModel.getErrInstance("系统内部错误");
+        }
+    }
+
+
+    /**
+     * 人员管理分页查询
+     * @return
+     */
+    @ResponseBody
+    @RequestMapping(value = "/userList",method = RequestMethod.GET)
+    public Object userList(@RequestParam(required=false,defaultValue = "1") Integer pageNum,@RequestParam(required=false,defaultValue = "10") Integer pageSize,String name){
+        try {
+            return ResponseModel.getOkInstence(sysUserService.getSysUserList(pageNum,pageSize,name));
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResponseModel.getErrInstance("系统内部错误");
+        }
+    }
+
+
+    /**
+     * 根据用户id查询实验室列表和实验室临时存储库列表
+     * @return
+     */
+    @ResponseBody
+    @RequestMapping(value = "/labAndContainerList",method = RequestMethod.GET)
+    public Object getLabAndContainerList(HttpServletRequest request){
+        try {
+            Long userId = StringUtils.isNotBlank(request.getHeader("userId"))?Long.valueOf(request.getHeader("userId")):null;
+            if(userId==null){
+                throw new ApiException(ApiStatus.SYS_ERR,"传参用户ID为空");
+            }
+            return ResponseModel.getOkInstence(interfaceService.getLabAndContainerByUserId(userId));
+        }catch (ApiException e) {
+            return ResponseModel.getErrInstance(e.getErrorMessage());
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResponseModel.getErrInstance("系统内部错误");
+        }
+    }
+
+
+    /**
+     * 根据试剂编码查询流向
+     * @return
+     */
+    @ResponseBody
+    @RequestMapping(value = "/reagentUseFlowList",method = RequestMethod.GET)
+    public Object getReagentUseFlowList(@RequestParam(required=true) String reagentCode){
+        try {
+            return ResponseModel.getOkInstence(interfaceService.getReagentUseFlowList(reagentCode));
+        }catch (ApiException e) {
+            return ResponseModel.getErrInstance(e.getErrorMessage());
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResponseModel.getErrInstance("系统内部错误");
+        }
+    }
+
+    /**
+     * 根据用户id查询所属实验室信息
+     * @return
+     */
+    @ResponseBody
+    @RequestMapping(value = "/userLabList",method = RequestMethod.GET)
+    public Object getUserLabList(HttpServletRequest request){
+        try {
+            Long userId = StringUtils.isNotBlank(request.getHeader("userId"))?Long.valueOf(request.getHeader("userId")):null;
+            if(userId==null){
+                throw new ApiException(ApiStatus.SYS_ERR,"传参用户ID为空");
+            }
+            return ResponseModel.getOkInstence(interfaceService.getLaboratoryByUserId(userId));
+        }catch (ApiException e) {
+            return ResponseModel.getErrInstance(e.getErrorMessage());
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResponseModel.getErrInstance("系统内部错误");
+        }
+    }
+
+    /**
+     * 根据用户id查询试剂流向信息
+     * @return
+     */
+    @ResponseBody
+    @RequestMapping(value = "/personUserFlowList",method = RequestMethod.GET)
+    public Object getPersonUserFlowList(HttpServletRequest request,@RequestParam(required=false,defaultValue = "1") Integer pageNum,@RequestParam(required=false,defaultValue = "10") Integer pageSize,Integer operatestate,String startDate,String endDate){
+        try {
+            Long userId = StringUtils.isNotBlank(request.getHeader("userId"))?Long.valueOf(request.getHeader("userId")):null;
+            if(userId==null){
+                throw new ApiException(ApiStatus.SYS_ERR,"传参用户ID为空");
+            }
+            return ResponseModel.getOkInstence(interfaceService.getOpeUseFlowByUserId(pageNum,pageSize,userId,operatestate,startDate,endDate));
+        }catch (ApiException e) {
+            return ResponseModel.getErrInstance(e.getErrorMessage());
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResponseModel.getErrInstance("系统内部错误");
+        }
+    }
+
+
 
 
 }
+

--
Gitblit v1.9.2