From b02535c9a99324823812f6c2d08f066d8e1ba75f Mon Sep 17 00:00:00 2001
From: gdg <764716047@qq.com>
Date: 星期一, 18 一月 2021 09:57:14 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master' into master

---
 src/main/java/com/nanometer/smartlab/api/ApiAction.java |  321 +++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 308 insertions(+), 13 deletions(-)

diff --git a/src/main/java/com/nanometer/smartlab/api/ApiAction.java b/src/main/java/com/nanometer/smartlab/api/ApiAction.java
index 9fa2562..9f38637 100644
--- a/src/main/java/com/nanometer/smartlab/api/ApiAction.java
+++ b/src/main/java/com/nanometer/smartlab/api/ApiAction.java
@@ -11,14 +11,8 @@
 import com.nanometer.smartlab.dao.SysLaboratoryContainerDao;
 import com.nanometer.smartlab.dao.SysWarehouseContainerDao;
 import com.nanometer.smartlab.entity.*;
-import com.nanometer.smartlab.entity.dto.HazardousWasteUser;
-import com.nanometer.smartlab.entity.dto.InWarehouseInfoDto;
-import com.nanometer.smartlab.entity.dto.ReagentReceivingDto;
-import com.nanometer.smartlab.entity.dto.SysWarehouseDto;
-import com.nanometer.smartlab.entity.enumtype.ApiStatus;
-import com.nanometer.smartlab.entity.enumtype.ArrivalStatus;
-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;
@@ -32,6 +26,7 @@
 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.stereotype.Controller;
 import org.springframework.web.bind.annotation.*;
@@ -41,6 +36,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.*;
@@ -87,6 +83,14 @@
     private DangerousEncodeService dangerousEncodeService;
     @Resource
     private EncodeReplaceDictService encodeReplaceDictService;
+    @Resource
+    private SysLaboratoryService sysLaboratoryService;
+    @Resource
+    private HazardousWasteService hazardousWasteService;
+    @Resource
+    private OpeLaboratoryReserveService opeLaboratoryReserveService;
+    @Resource
+    private OpeUseFlowService opeUseFlowService;
     @Value("${institute.url}")
     String instituteUrl;
 
@@ -1359,26 +1363,93 @@
     }
 
     /**
+     * @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 (StringUtils.isBlank(reagentReceiving.getApplyUserId())|| StringUtils.isBlank(reagentReceiving.getLabContainerId())
+            || StringUtils.isBlank(reagentReceiving.getLabId())){
+                FacesUtils.warn("请选择申领人、实验室、货柜");
+            }
+            for (String reagentCode : reagentReceiving.getReagentCode()) {
+                OpeReagentStatus opeReagentStatus = opeReagentStatusService
+                        .getOpeReagentStatusByReagentCode(reagentCode);
+                if (opeReagentStatus == null){
+                    return  ResponseModel.getErrInstance(reagentCode+",该试剂在库存中不存在");
+                }
+            }
+            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);
+                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);
+                opeUseFlow.setRemainder(opeUseFlowExist.getRemainder());
+                BaseMeta baseMeta = baseMetaService.getBaseMeta("operate_status",String.valueOf(OperateStatus.TRANSFER.getKey()),"转移");
+                opeUseFlow.setOperateState(baseMeta.getId());
+                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("账户名为空");
             }
 
-            SysUser sysUser = sysUserService.getUserByAccount(account);
+            HazardousWasteUser sysUser = sysUserService.getUserByAccount(account,null);
             if (sysUser == null){
                 return  ResponseModel.getErrInstance("账户名不存在");
             }else{
                 if (sysUser.getPassword().equals(MD5Utils.encode(user.getPassword()))){
-                    user.setId(sysUser.getId());
-                    user.setRoleName(sysUser.getRoleName());
+                    if (sysUser.getAdminFlag() != 0){
+                        user = sysUser;
+                    }else{
+                        return ResponseModel.getErrInstance("用户不属于危废处理人员");
+                    }
                     return ResponseModel.getOkInstence(user);
                 }else{
                     return ResponseModel.getErrInstance("密码错误");
@@ -1390,7 +1461,231 @@
             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) String project){
+        try {
+            if (StringUtils.isBlank(project)){
+                return  ResponseModel.getErrInstance("课题组不能为空");
+            }
+            LaboratoryVo laboratoryVo = new LaboratoryVo();
+            List<LaboratoryVo.Laboratory> laboratoryList = sysLaboratoryService.getLaboratoryByProject(project);
+            List<LaboratoryVo.LaboratoryUser> laboratoryUserList = sysUserService.getUserByProject(project);
+            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()) || StringUtils.isBlank(hazardousWaste.getApplyPerson())
+            || StringUtils.isBlank(hazardousWaste.getProject()) || 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 getLabAndUser(@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 getLabAndUser(@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("系统出错");
+        }
+    }
+
+
 }

--
Gitblit v1.9.2