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