From 5ef5c096c23869fff7872cf498077d6924c679b2 Mon Sep 17 00:00:00 2001
From: 李宇 <986321569@qq.com>
Date: Thu, 14 Jan 2021 12:22:53 +0800
Subject: [PATCH] 添加智能柜转移试剂接口
---
src/main/java/com/nanometer/smartlab/api/ApiAction.java | 358 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 345 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 8606217..91c0c46 100644
--- a/src/main/java/com/nanometer/smartlab/api/ApiAction.java
+++ b/src/main/java/com/nanometer/smartlab/api/ApiAction.java
@@ -11,22 +11,14 @@
import com.nanometer.smartlab.dao.SysLaboratoryContainerDao;
import com.nanometer.smartlab.dao.SysWarehouseContainerDao;
import com.nanometer.smartlab.entity.*;
-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;
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;
@@ -34,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.*;
@@ -43,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.*;
@@ -89,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;
@@ -339,6 +341,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();
@@ -545,9 +548,14 @@
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());
+ 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);
@@ -1354,5 +1362,329 @@
}
+ /**
+ * @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.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("账户名为空");
+ }
+
+ HazardousWasteUser sysUser = sysUserService.getUserByAccount(account);
+ 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("用户不属于危废处理人员");
+ }
+ 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) 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(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