From 59d9ea33f503e363f2e2941c7c00cc9dd9d9d1c7 Mon Sep 17 00:00:00 2001 From: kongzy <kongzy> Date: 星期二, 28 十一月 2023 11:00:42 +0800 Subject: [PATCH] 修改课题管理bug --- src/main/java/com/nanometer/smartlab/api/ApiAction.java | 338 ++++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 265 insertions(+), 73 deletions(-) diff --git a/src/main/java/com/nanometer/smartlab/api/ApiAction.java b/src/main/java/com/nanometer/smartlab/api/ApiAction.java index c13f87d..993fe6b 100644 --- a/src/main/java/com/nanometer/smartlab/api/ApiAction.java +++ b/src/main/java/com/nanometer/smartlab/api/ApiAction.java @@ -28,6 +28,7 @@ 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; @@ -49,48 +50,64 @@ 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 SysWarehouseService sysWarehouseService; - - @Resource - private SysWarningService sysWarningService; - + @Lazy @Resource private TempSensorsService tempSensorsService; - + @Lazy @Resource private SysFileService sysFileService; + @Lazy @Resource private SysLaboratoryContainerDao sysLaboratoryContainerDao; + @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; @@ -306,7 +323,7 @@ return retJSON.toJSONString(); } - // 报送试剂最新信息接口 + // 报送试剂最新信息接口 只更新试剂状态ope_regeant_status表 0, "领用" 1, "入库" 2, "存入" 3, "报废" -1, "领用待入库" @ResponseBody @RequestMapping(value = "/synchAllCabinet") public String synchAllCabinet(HttpServletRequest request) throws IOException { @@ -356,7 +373,67 @@ 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 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(); + } + + // 报警情况接口(warning) 货柜预警接口 @ResponseBody @RequestMapping(value = "/alarm") public String alarm(HttpServletRequest request) throws IOException { @@ -427,56 +504,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 @@ -550,6 +577,7 @@ map.put("specification", opeReagentStatus.getReagent().getReagentFormat()); 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{ @@ -567,7 +595,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,null); List<SysWarehouseContainer> allWarehouseContainerList = sysWarehouseContainerService.getSysWarehouseContainerList(null,null,null,null,null); List<String> containerCodeList = new ArrayList<String>(); @@ -598,7 +626,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); } } @@ -768,7 +797,7 @@ } reader.close(); } catch (IOException e) { - System.out.println("IOException: " + e); + logger.info(e.getMessage()); } JSONObject jsonObject = JSON.parseObject(str); @@ -1028,31 +1057,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; @@ -1291,6 +1313,7 @@ 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); @@ -1311,11 +1334,30 @@ if (ors != null) { return ResponseModel.getErrInstance("该试剂危化品编码已存在"); } - } - //3.入库 + //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 (StringUtils.isNotBlank(reagentReceivingDtos.getLabContainerId())){ + sysWarehouseService.reagentReceiving(reagentReceivingDtos); + } + return ResponseModel.getOkInstence("入库成功"); } else { return ResponseModel.getErrInstance("无试剂条码"); @@ -1386,6 +1428,7 @@ return ResponseModel.getErrInstance(reagentCode+",该试剂在库存中不存在"); } } + String number = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date()); for (String reagentCode : reagentReceiving.getReagentCode()) { OpeReagentStatus opeReagentStatus = opeReagentStatusService .getOpeReagentStatusByReagentCode(reagentCode); @@ -1418,6 +1461,7 @@ opeUseFlow.setRemainder(opeUseFlowExist.getRemainder()); BaseMeta baseMeta = baseMetaService.getBaseMeta("operate_status",String.valueOf(OperateStatus.TRANSFER.getKey()),"转移"); opeUseFlow.setOperateState(baseMeta.getId()); + opeUseFlow.setReceiptNumber(number); opeUseFlowService.insertOpeUseFlow(opeUseFlow); } return ResponseModel.getOkInstence("转移成功"); @@ -1559,7 +1603,7 @@ hazardousWaste.setMedical(new BigDecimal(0)); } hazardousWaste.setUpdator(hazardousWaste.getCreator()); - hazardousWaste.setUpdatetime(new Date()); +// hazardousWaste.setUpdatetime(new Date()); hazardousWasteService.insertInfo(hazardousWaste); return ResponseModel.getOkInstence("添加成功"); }catch (Exception e){ @@ -1717,4 +1761,152 @@ 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("系统内部错误"); + } + } + } + -- Gitblit v1.9.2