From 5ef5c096c23869fff7872cf498077d6924c679b2 Mon Sep 17 00:00:00 2001 From: 李宇 <986321569@qq.com> Date: 星期四, 14 一月 2021 12:22:53 +0800 Subject: [PATCH] 添加智能柜转移试剂接口 --- src/main/java/com/nanometer/smartlab/api/ApiAction.java | 206 ++++++++++++++++----------------------------------- 1 files changed, 64 insertions(+), 142 deletions(-) diff --git a/src/main/java/com/nanometer/smartlab/api/ApiAction.java b/src/main/java/com/nanometer/smartlab/api/ApiAction.java index fc6e474..91c0c46 100644 --- a/src/main/java/com/nanometer/smartlab/api/ApiAction.java +++ b/src/main/java/com/nanometer/smartlab/api/ApiAction.java @@ -87,6 +87,10 @@ private SysLaboratoryService sysLaboratoryService; @Resource private HazardousWasteService hazardousWasteService; + @Resource + private OpeLaboratoryReserveService opeLaboratoryReserveService; + @Resource + private OpeUseFlowService opeUseFlowService; @Value("${institute.url}") String instituteUrl; @@ -1360,149 +1364,67 @@ /** * @Description: 试剂转移到另一个柜子 - * @date 2020/12/24 14:19 + * ope_reagent_status 根据reagent_code修改houseid containerid userid updatetime + * OpeLaboratoryReserve 根据ope_reagent_status信息查出旧数据删除 再插入新数据 + * OpeUseFlow 插入试剂流向追踪表 */ -// @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("操作失败。"); -// } -// } + @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: 危废登录 -- Gitblit v1.9.2