From 5ce314bb05eef373bd25b0b2e289a01bf6e5b6c4 Mon Sep 17 00:00:00 2001 From: 李宇 <986321569@qq.com> Date: 星期三, 13 一月 2021 16:21:55 +0800 Subject: [PATCH] 添加危废信息展示以及app调用接口 --- src/main/java/com/nanometer/smartlab/api/ApiAction.java | 397 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 384 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..3e28bcc 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,10 @@ private DangerousEncodeService dangerousEncodeService; @Resource private EncodeReplaceDictService encodeReplaceDictService; + @Resource + private SysLaboratoryService sysLaboratoryService; + @Resource + private HazardousWasteService hazardousWasteService; @Value("${institute.url}") String instituteUrl; @@ -1359,26 +1359,174 @@ } /** + * @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("账户名为空"); } - SysUser sysUser = sysUserService.getUserByAccount(account); + HazardousWasteUser sysUser = sysUserService.getUserByAccount(account); 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 +1538,230 @@ 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