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/dao/OpeUseFlowDao.xml | 11 ++ src/main/java/com/nanometer/smartlab/service/OpeLaboratoryReserveService.java | 4 src/main/java/com/nanometer/smartlab/dao/OpeLaboratoryReserveDao.java | 1 src/main/java/com/nanometer/smartlab/dao/OpeLaboratoryReserveDao.xml | 11 + src/main/java/com/nanometer/smartlab/service/OpeReagentStatusServiceImpl.java | 5 + src/main/java/com/nanometer/smartlab/service/OpeLaboratoryReserveServiceImpl.java | 11 ++ src/main/java/com/nanometer/smartlab/entity/enumtype/OperateStatus.java | 4 src/main/java/com/nanometer/smartlab/service/OpeUseFlowService.java | 1 src/main/java/com/nanometer/smartlab/api/ApiAction.java | 206 ++++++++++++---------------------------- src/main/java/com/nanometer/smartlab/dao/OpeUseFlowDao.java | 2 src/main/java/com/nanometer/smartlab/service/OpeUseFlowServiceImpl.java | 6 + 智慧实验室接口.docx | 0 src/main/java/com/nanometer/smartlab/service/OpeReagentStatusService.java | 2 13 files changed, 117 insertions(+), 147 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: 危废登录 diff --git a/src/main/java/com/nanometer/smartlab/dao/OpeLaboratoryReserveDao.java b/src/main/java/com/nanometer/smartlab/dao/OpeLaboratoryReserveDao.java index c30b7f2..e1652d8 100644 --- a/src/main/java/com/nanometer/smartlab/dao/OpeLaboratoryReserveDao.java +++ b/src/main/java/com/nanometer/smartlab/dao/OpeLaboratoryReserveDao.java @@ -10,4 +10,5 @@ public void insertOpeLaboratoryReserve(OpeLaboratoryReserve opeLaboratoryReserve) throws DataAccessException; List<OpeLaboratoryReserve> selectByReId(String id); public int updateByReId(Map params); + void updateByReagent(Map<String, Object> params); } diff --git a/src/main/java/com/nanometer/smartlab/dao/OpeLaboratoryReserveDao.xml b/src/main/java/com/nanometer/smartlab/dao/OpeLaboratoryReserveDao.xml index 4f2e882..8fe3c95 100644 --- a/src/main/java/com/nanometer/smartlab/dao/OpeLaboratoryReserveDao.xml +++ b/src/main/java/com/nanometer/smartlab/dao/OpeLaboratoryReserveDao.xml @@ -24,6 +24,13 @@ <update id="updateByReId" parameterType="java.util.Map"> update ope_laboratory_reserve set reagent_id=#{newReId} where reagent_id=#{oldReId} </update> - - + <update id="updateByReagent"> + update ope_laboratory_reserve + set valid_flag = 0 + where reagent_id=#{reagentId} + and house_id = #{houseId} + and container_id = #{containerId} + and user_id = #{userId} + and valid_flag = 1 + </update> </mapper> diff --git a/src/main/java/com/nanometer/smartlab/dao/OpeUseFlowDao.java b/src/main/java/com/nanometer/smartlab/dao/OpeUseFlowDao.java index a8d2936..5dbf82c 100644 --- a/src/main/java/com/nanometer/smartlab/dao/OpeUseFlowDao.java +++ b/src/main/java/com/nanometer/smartlab/dao/OpeUseFlowDao.java @@ -1,6 +1,7 @@ package com.nanometer.smartlab.dao; import com.nanometer.smartlab.entity.OpeUseFlow; +import org.apache.ibatis.annotations.Param; import org.springframework.dao.DataAccessException; import java.util.List; @@ -27,4 +28,5 @@ int updateTimeByCode(Map params); + OpeUseFlow getOpeUseFlowByCode(@Param("reagentCode") String reagentCode); } diff --git a/src/main/java/com/nanometer/smartlab/dao/OpeUseFlowDao.xml b/src/main/java/com/nanometer/smartlab/dao/OpeUseFlowDao.xml index 04ce5f5..6fb9af4 100644 --- a/src/main/java/com/nanometer/smartlab/dao/OpeUseFlowDao.xml +++ b/src/main/java/com/nanometer/smartlab/dao/OpeUseFlowDao.xml @@ -128,7 +128,16 @@ where oa.valid_flag = 1 <include refid="queryWhereSql"/> </select> - + <select id="getOpeUseFlowByCode" resultType="com.nanometer.smartlab.entity.OpeUseFlow"> + SELECT + * + FROM + ope_use_flow + WHERE + reagent_code = #{reagentCode} + ORDER BY create_time DESC + LIMIT 1 + </select> <insert id="insertOpeUseFlow" parameterType="com.nanometer.smartlab.entity.OpeUseFlow"> insert into ope_use_flow(id, reagent_code, status, house_id, container_id, user_id, remainder, place, store_type, valid_flag, create_time, realstatus, operatestate) values (#{id}, #{reagentCode}, #{status}, #{houseId}, #{containerId}, #{userId}, #{remainder}, #{place}, #{storeType}, 1, #{createTime}, #{realstatus},#{operateState}) diff --git a/src/main/java/com/nanometer/smartlab/entity/enumtype/OperateStatus.java b/src/main/java/com/nanometer/smartlab/entity/enumtype/OperateStatus.java index fa053b7..f2d9e46 100644 --- a/src/main/java/com/nanometer/smartlab/entity/enumtype/OperateStatus.java +++ b/src/main/java/com/nanometer/smartlab/entity/enumtype/OperateStatus.java @@ -3,7 +3,7 @@ import java.util.HashMap; public enum OperateStatus { - WAREHOUSEIN(10, "仓库入库"), WAREHOUSEOUT(11, "仓库领用"), LABORATORYIN(0, "试剂柜入库"); + WAREHOUSEIN(10, "仓库入库"), WAREHOUSEOUT(11, "仓库领用"), LABORATORYIN(0, "试剂柜入库"), TRANSFER(6,"转移"); private int key; private String text; @@ -27,7 +27,7 @@ map.put(d.key, d); } } - + public static OperateStatus parse(Integer index) { if(map.containsKey(index)){ return map.get(index); diff --git a/src/main/java/com/nanometer/smartlab/service/OpeLaboratoryReserveService.java b/src/main/java/com/nanometer/smartlab/service/OpeLaboratoryReserveService.java index 635888b..571188d 100644 --- a/src/main/java/com/nanometer/smartlab/service/OpeLaboratoryReserveService.java +++ b/src/main/java/com/nanometer/smartlab/service/OpeLaboratoryReserveService.java @@ -1,6 +1,7 @@ package com.nanometer.smartlab.service; import com.nanometer.smartlab.entity.OpeLaboratoryReserve; +import com.nanometer.smartlab.entity.enumtype.ValidFlag; import java.util.List; @@ -9,5 +10,8 @@ void insert(OpeLaboratoryReserve opeLaboratoryReserve); public List<OpeLaboratoryReserve> selectByReId(String id); + public void updateByReId(String newReId,String oldReId); + + void updateByReagent(String reagentId, String houseId, String containerId, String userId); } diff --git a/src/main/java/com/nanometer/smartlab/service/OpeLaboratoryReserveServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/OpeLaboratoryReserveServiceImpl.java index 7501e56..11d0268 100644 --- a/src/main/java/com/nanometer/smartlab/service/OpeLaboratoryReserveServiceImpl.java +++ b/src/main/java/com/nanometer/smartlab/service/OpeLaboratoryReserveServiceImpl.java @@ -3,6 +3,7 @@ import com.nanometer.smartlab.dao.OpeLaboratoryReserveDao; import com.nanometer.smartlab.dao.SysLaboratoryDao; import com.nanometer.smartlab.entity.*; +import com.nanometer.smartlab.entity.enumtype.ValidFlag; import com.nanometer.smartlab.exception.AlarmCode; import com.nanometer.smartlab.exception.AlarmException; import com.nanometer.smartlab.exception.BusinessException; @@ -64,5 +65,15 @@ this.opeLaboratoryReserveDao.updateByReId(params); } + @Override + public void updateByReagent(String reagentId, String houseId, String containerId, String userId) { + Map<String, Object> params=new HashMap(); + params.put("reagentId",reagentId); + params.put("houseId",houseId); + params.put("containerId",containerId); + params.put("userId",userId); + this.opeLaboratoryReserveDao.updateByReagent(params); + } + } diff --git a/src/main/java/com/nanometer/smartlab/service/OpeReagentStatusService.java b/src/main/java/com/nanometer/smartlab/service/OpeReagentStatusService.java index fbed957..d94654f 100644 --- a/src/main/java/com/nanometer/smartlab/service/OpeReagentStatusService.java +++ b/src/main/java/com/nanometer/smartlab/service/OpeReagentStatusService.java @@ -94,4 +94,6 @@ List<String> getReagentCodes(String reagentId); + + void updateOpeReagentStatus(OpeReagentStatus opeReagentStatus); } diff --git a/src/main/java/com/nanometer/smartlab/service/OpeReagentStatusServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/OpeReagentStatusServiceImpl.java index 66f3b49..8b60705 100644 --- a/src/main/java/com/nanometer/smartlab/service/OpeReagentStatusServiceImpl.java +++ b/src/main/java/com/nanometer/smartlab/service/OpeReagentStatusServiceImpl.java @@ -806,5 +806,10 @@ return opeReagentStatusDao.selectReagentCodesByReId(reagentId); } + @Override + public void updateOpeReagentStatus(OpeReagentStatus opeReagentStatus) { + opeReagentStatusDao.updateOpeReagentStatusDao(opeReagentStatus); + } + } diff --git a/src/main/java/com/nanometer/smartlab/service/OpeUseFlowService.java b/src/main/java/com/nanometer/smartlab/service/OpeUseFlowService.java index cf00951..1f93c1d 100644 --- a/src/main/java/com/nanometer/smartlab/service/OpeUseFlowService.java +++ b/src/main/java/com/nanometer/smartlab/service/OpeUseFlowService.java @@ -33,4 +33,5 @@ void updateTimeByCode(String code); + OpeUseFlow getOpeUseFlowByCode(String reagentCode); } diff --git a/src/main/java/com/nanometer/smartlab/service/OpeUseFlowServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/OpeUseFlowServiceImpl.java index 12d1e8b..bcd04a3 100644 --- a/src/main/java/com/nanometer/smartlab/service/OpeUseFlowServiceImpl.java +++ b/src/main/java/com/nanometer/smartlab/service/OpeUseFlowServiceImpl.java @@ -15,6 +15,7 @@ import com.nanometer.smartlab.entity.*; import com.nanometer.smartlab.util.Constants; import com.nanometer.smartlab.util.Utils; +import com.sun.org.apache.regexp.internal.RE; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang3.time.DateUtils; import org.apache.log4j.Logger; @@ -357,4 +358,9 @@ params.put("status",-1); opeUseFlowDao.updateTimeByCode(params); } + + @Override + public OpeUseFlow getOpeUseFlowByCode(String reagentCode) { + return opeUseFlowDao.getOpeUseFlowByCode(reagentCode); + } } diff --git "a/\346\231\272\346\205\247\345\256\236\351\252\214\345\256\244\346\216\245\345\217\243.docx" "b/\346\231\272\346\205\247\345\256\236\351\252\214\345\256\244\346\216\245\345\217\243.docx" index cb86e41..602a34f 100644 --- "a/\346\231\272\346\205\247\345\256\236\351\252\214\345\256\244\346\216\245\345\217\243.docx" +++ "b/\346\231\272\346\205\247\345\256\236\351\252\214\345\256\244\346\216\245\345\217\243.docx" Binary files differ -- Gitblit v1.9.2