From 5ce314bb05eef373bd25b0b2e289a01bf6e5b6c4 Mon Sep 17 00:00:00 2001
From: 李宇 <986321569@qq.com>
Date: Wed, 13 Jan 2021 16:21:55 +0800
Subject: [PATCH] 添加危废信息展示以及app调用接口
---
src/main/java/com/nanometer/smartlab/api/ApiAction.java | 435 ++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 422 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..3e28bcc 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,10 @@
private DangerousEncodeService dangerousEncodeService;
@Resource
private EncodeReplaceDictService encodeReplaceDictService;
+ @Resource
+ private SysLaboratoryService sysLaboratoryService;
+ @Resource
+ private HazardousWasteService hazardousWasteService;
@Value("${institute.url}")
String instituteUrl;
@@ -339,6 +337,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 +544,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 +1358,410 @@
}
+ /**
+ * @Description: 试剂转移到另一个柜子
+ * @date 2020/12/24 14:19
+ */
+// @ResponseBody
+// @RequestMapping("reagentTransfer")
+// public Object reagentReceiving(@RequestBody ReagentReceivingDto reagentReceiving) {
+// try {
+// if (this.selectedTmpList == null || this.selectedTmpList.size() == 0) {
+// FacesUtils.warn("请选择申领试剂。");
+// return;
+// }
+//
+// if (this.userId == null) {
+// FacesUtils.warn("请选择申领人。");
+// return;
+// }
+// //领用单
+// printTable = null;
+// printTable = new Hashtable();
+// List<ApplyListDto> applyList = new ArrayList<>();
+// Map applyPersonInfo = sysUserService.getUser(userId);
+// printTable.put("head", instituteName);
+// printTable.put("title", "领用单");
+// printTable.put("applyPerson", applyPersonInfo.get("name"));
+// printTable.put("department", applyPersonInfo.get("meta_value"));
+// printTable.put("date", Utils.now("yyyy-MM-dd"));
+// printTable.put("phone", applyPersonInfo.get("phone"));
+//
+// //int size = 0;
+// int sum = 0;
+// List<OpeWarehouseReserve> list=new ArrayList<>();
+// List<OpeWarehouseReserve> list2=new ArrayList<>();
+// for (OpeWarehouseReserve selectWarehouseReserve : this.selectedTmpList) {
+// if(selectWarehouseReserve.getFlag()==1){
+// list.add(selectWarehouseReserve);
+// }else{
+// list2.add(selectWarehouseReserve);
+// }
+// }
+// if(list.size()>0&&list!=null){
+// for (OpeWarehouseReserve selectWarehouseReserve : list) {
+// List<String> reagentCodes = selectWarehouseReserve.getReagentCodes();
+// if (reagentCodes != null && reagentCodes.size() > 0)
+// for (String opeReagentStatusId : reagentCodes) {
+// OpeReagentStatus opeReagentStatus = this.opeReagentStatusService
+// .getOpeReagentStatus(opeReagentStatusId);
+// if (!this.opeReagentStatusService.isAllowWarehouseUse(opeReagentStatus)) {
+// FacesUtils.warn("只能申领在仓库的试剂。");
+// return;
+// }else {
+// opeReagentStatus.setHouseId(laboratoryId);
+// opeReagentStatus.setContainerId(laboratoryContainerId);
+// this.opeReagentStatusDao.updateOpeReagentStatusDao(opeReagentStatus);//更新试剂状态表
+// OpeLaboratoryReserve lr=new OpeLaboratoryReserve();
+// lr.setReagentId(selectWarehouseReserve.getReagentId());
+// lr.setHouseId(laboratoryId);
+// lr.setContainerId(laboratoryContainerId);
+// lr.setReserve(selectWarehouseReserve.getSelectNum());
+// lr.setUserId(userId);
+// lr.setValidFlag(ValidFlag.VALID);
+// this.opeLaboratoryReserveService.insert(lr);
+// }
+// //else {
+// //size++;
+// //}
+// }
+// ApplyListDto lis = new ApplyListDto();
+// Map reagentDetail = sysReagentService.getReagentDetail(selectWarehouseReserve.getReagentId());
+// lis.setNum(String.valueOf(selectWarehouseReserve.getSelectNum())); //数量
+// lis.setMainMetering(String.format("%s%s", reagentDetail.get("main_metering"), reagentDetail.get("unit")));
+// lis.setControlProducts((String) reagentDetail.get("controlProducts"));
+// lis.setProductName((String) reagentDetail.get("name"));
+// lis.setReagentFormat((String) reagentDetail.get("reagentFormat"));
+// lis.setProductCode((String)reagentDetail.get("productCode"));
+// lis.setMemo((String)reagentDetail.get("memo"));
+// applyList.add(lis);
+// sum += selectWarehouseReserve.getSelectNum();
+// }
+//
+// //if (size == 0) {
+// //FacesUtils.warn("未选择一个条形码。");
+// //return;
+// //}
+// this.opeWarehouseReserveService.claim(list, userId,projectNum);
+// }
+// if(list2.size()>0&&list2!=null){
+// List<OpeApply> opeList=new ArrayList<>();
+// //this.opeApplyService.getOpeApplyList(null,null,null,null,null)
+// for(int i=0;i<list2.size();i++){
+// OpeApply opeApply=new OpeApply();
+// opeApply.setArticleNumber(list2.get(i).getArticleNumber());
+// opeApply.setHouseId(laboratoryId);
+// opeApply.setContainerId(laboratoryContainerId);
+// opeApply.setReagent(this.sysReagentService.getSysReagent(list2.get(i).getReagentId()));
+// opeApply.setStartReagentCode(list2.get(i).getStartReagentCode2());
+// opeApply.setEndReagentCode(list2.get(i).getEndReagentCode2());
+// opeList.add(opeApply);
+// OpeLaboratoryReserve lr=new OpeLaboratoryReserve();
+// lr.setReagentId(list2.get(i).getReagentId());
+// lr.setHouseId(laboratoryId);
+// lr.setContainerId(laboratoryContainerId);
+// lr.setReserve(list2.get(i).getSelectNum());
+// lr.setUserId(userId);
+// lr.setValidFlag(ValidFlag.VALID);
+// this.opeLaboratoryReserveService.insert(lr);
+// //opeList.add(this.opeApplyService.getOpeApply(list2.get(i).getId()));
+// ApplyListDto lis = new ApplyListDto();
+// Map reagentDetail = sysReagentService.getReagentDetail(list2.get(i).getReagentId());
+//
+// lis.setNum(String.valueOf(list2.get(i).getSelectNum())); //数量
+// lis.setMainMetering(String.format("%s%s", reagentDetail.get("main_metering"), reagentDetail.get("unit")));
+// lis.setControlProducts((String) reagentDetail.get("controlProducts"));
+// lis.setProductName((String) reagentDetail.get("name"));
+// lis.setReagentFormat((String) reagentDetail.get("reagentFormat"));
+// lis.setProductCode((String)reagentDetail.get("productCode"));
+// lis.setMemo((String)reagentDetail.get("memo"));
+// applyList.add(lis);
+//
+// sum += list2.get(i).getSelectNum();
+// }
+// this.opeWarehouseReserveService.reagentDStore2(opeList,userId);
+// for(int i=0;i<list2.size();i++){
+// list2.get(i).setReserve(list2.get(i).getReserve()-list2.get(i).getSelectNum());
+// opeWarehouseReserveDao.updateOpeWarehouseReserve(list2.get(i));
+// }
+//
+//
+// //opeWarehouseReserve.setReserve(opeWarehouseReserve.getReserve()-opeWarehouseReserve.getSelectNum());
+// //opeWarehouseReserveDao.updateOpeWarehouseReserve(opeWarehouseReserve);
+// //this.opeWarehouseReserveService.claim(list2, userId,projectNum);
+// }
+//
+// //领用票最后一行
+// applyList.add(new ApplyListDto("合计", "", "", "", "", String.valueOf(sum), ""));
+// printTable.put("applyList", applyList);
+//
+// FacesUtils.info("申领成功。");
+// RequestContext.getCurrentInstance().execute("PF('printDialog').show()");
+//// this.menuController.goToPage(Constants.PAGE_WAREHOUSE_STOCK_MNG, Constants.PAGE_WAREHOUSE_REAGENT_USE_NEW);
+// } catch (Exception e) {
+// logger.error(e.getMessage(), e);
+// FacesUtils.warn("操作失败。");
+// }
+// }
+
+ /**
+ * @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.getUnit())
+ || StringUtils.isBlank(hazardousWaste.getCreator())){
+ return ResponseModel.getErrInstance("部门、单位、课题组、确认者、创建者、不能为空");
+ }
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+ hazardousWaste.setTid(sdf.format(new Date()));
+ hazardousWaste.setCreateTime(new Date());
+ hazardousWaste.setStatus("待确认");
+ 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