李宇
2021-01-14 5ef5c096c23869fff7872cf498077d6924c679b2
添加智能柜转移试剂接口
已修改13个文件
264 ■■■■■ 文件已修改
src/main/java/com/nanometer/smartlab/api/ApiAction.java 206 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanometer/smartlab/dao/OpeLaboratoryReserveDao.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanometer/smartlab/dao/OpeLaboratoryReserveDao.xml 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanometer/smartlab/dao/OpeUseFlowDao.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanometer/smartlab/dao/OpeUseFlowDao.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanometer/smartlab/entity/enumtype/OperateStatus.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanometer/smartlab/service/OpeLaboratoryReserveService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanometer/smartlab/service/OpeLaboratoryReserveServiceImpl.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanometer/smartlab/service/OpeReagentStatusService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanometer/smartlab/service/OpeReagentStatusServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanometer/smartlab/service/OpeUseFlowService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanometer/smartlab/service/OpeUseFlowServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
智慧实验室接口.docx 补丁 | 查看 | 原始文档 | blame | 历史
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: 危废登录
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);
}
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>
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);
}
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})
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);
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);
}
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);
    }
}
src/main/java/com/nanometer/smartlab/service/OpeReagentStatusService.java
@@ -94,4 +94,6 @@
    List<String> getReagentCodes(String reagentId);
    void updateOpeReagentStatus(OpeReagentStatus opeReagentStatus);
}
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);
    }
}
src/main/java/com/nanometer/smartlab/service/OpeUseFlowService.java
@@ -33,4 +33,5 @@
    void updateTimeByCode(String code);
    OpeUseFlow getOpeUseFlowByCode(String reagentCode);
}
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);
    }
}
智慧实验室接口.docx
Binary files differ