gdg
2020-12-28 c9ed223546b87fd373d8acf8948d9fdbf843e291
新增接口:从仓库领用
已修改3个文件
已添加1个文件
131 ■■■■■ 文件已修改
src/main/java/com/nanometer/smartlab/api/ApiAction.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanometer/smartlab/entity/dto/ReagentReceivingDto.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanometer/smartlab/service/SysWarehouseService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanometer/smartlab/service/SysWarehouseServiceImpl.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanometer/smartlab/api/ApiAction.java
@@ -7,12 +7,15 @@
import com.google.common.collect.Maps;
import com.nanometer.smartlab.controller.BaseController;
import com.nanometer.smartlab.controller.MenuController;
import com.nanometer.smartlab.dao.OpeReagentStatusDao;
import com.nanometer.smartlab.dao.SysLaboratoryContainerDao;
import com.nanometer.smartlab.dao.SysWarehouseContainerDao;
import com.nanometer.smartlab.entity.*;
import com.nanometer.smartlab.entity.dto.InWarehouseInfoDto;
import com.nanometer.smartlab.entity.dto.ReagentReceivingDto;
import com.nanometer.smartlab.entity.dto.SysWarehouseDto;
import com.nanometer.smartlab.entity.enumtype.ApiStatus;
import com.nanometer.smartlab.entity.enumtype.ArrivalStatus;
import com.nanometer.smartlab.entity.enumtype.ReplaceDictType;
import com.nanometer.smartlab.entity.enumtype.SeeFlag;
import com.nanometer.smartlab.exception.ApiException;
@@ -1275,6 +1278,30 @@
        try {
            if (inWarehouseInfo.getReagentCode() != null && inWarehouseInfo.getReagentCode().size() > 0) {
                for (int i = 0; i < inWarehouseInfo.getReagentCode().size(); i++) {
                    String code = inWarehouseInfo.getReagentCode().get(i);
                    DangerousEncode dangerousEncode = new DangerousEncode();
                    //5-8位
                    String reagentCode = code.substring(4, 8);
                    //数据库存储的前缀00空着
                    dangerousEncode.setReagentCode("00"+reagentCode);
                    List<DangerousEncode> dangerousEncodes =
                            dangerousEncodeService.selectAll(dangerousEncode,null,null);
                    //1.编码存在校验
                    if (dangerousEncodes.size() <1){
                        return ResponseModel.getErrInstance("该试剂危化品编码不存在");
                    }
                    //2.重复入库校验  无论任何状态
                    OpeReagentStatus ors = opeReagentStatusService.getOpeReagentStatusByReagentCode(code);
                    if (ors != null) {
                        return ResponseModel.getErrInstance("该试剂危化品编码已存在");
                    }
                }
                //3.入库
                sysWarehouseService.putInWarehouse(inWarehouseInfo);
                return ResponseModel.getOkInstence("入库成功");
            } else {
@@ -1289,4 +1316,38 @@
    }
    /**
     * @Description: 试剂领用到实验室
     * @date 2020/12/24 14:19
     */
    @ResponseBody
    @RequestMapping("reagentReceiving")
    public Object reagentReceiving(@RequestBody ReagentReceivingDto reagentReceiving) {
        try {
            if (reagentReceiving.getReagentCode() != null && reagentReceiving.getReagentCode().size() > 0) {
                //1.校验仓库是否有该试剂
                for (int i = 0; i < reagentReceiving.getReagentCode().size(); i++) {
                    String reagentCode = reagentReceiving.getReagentCode().get(i);
                    //去试剂状态查找 是否有此试剂条码
                    OpeReagentStatus ors = opeReagentStatusService.getOpeReagentStatusByReagentCode(reagentCode);
                    if (ors == null || ors.getStatus() != ArrivalStatus.WAREHOUSE){
                        return ResponseModel.getErrInstance("仓库无此试剂");
                    }
                }
                //2.领用
                sysWarehouseService.reagentReceiving(reagentReceiving);
                return ResponseModel.getOkInstence("领用成功");
            } else {
                return ResponseModel.getErrInstance("无效试剂条码");
            }
        } catch (Exception e) {
            e.printStackTrace();
            logger.info(e);
            return ResponseModel.getErrInstance("系统出错");
        }
    }
}
src/main/java/com/nanometer/smartlab/entity/dto/ReagentReceivingDto.java
对比新文件
@@ -0,0 +1,48 @@
package com.nanometer.smartlab.entity.dto;
import java.util.*;
public class ReagentReceivingDto {
    //试剂编码
    private List<String> reagentCode;
    //申领人id
    private String applyUserId;
    //实验室id
    private String labId;
    //实验室下货柜id
    private String labContainerId;
    public List<String> getReagentCode() {
        return reagentCode;
    }
    public void setReagentCode(List<String> reagentCode) {
        this.reagentCode = reagentCode;
    }
    public String getApplyUserId() {
        return applyUserId;
    }
    public void setApplyUserId(String applyUserId) {
        this.applyUserId = applyUserId;
    }
    public String getLabId() {
        return labId;
    }
    public void setLabId(String labId) {
        this.labId = labId;
    }
    public String getLabContainerId() {
        return labContainerId;
    }
    public void setLabContainerId(String labContainerId) {
        this.labContainerId = labContainerId;
    }
}
src/main/java/com/nanometer/smartlab/service/SysWarehouseService.java
@@ -2,6 +2,7 @@
import com.nanometer.smartlab.entity.SysWarehouse;
import com.nanometer.smartlab.entity.dto.InWarehouseInfoDto;
import com.nanometer.smartlab.entity.dto.ReagentReceivingDto;
import com.nanometer.smartlab.entity.dto.SysWarehouseDto;
import java.util.List;
@@ -23,4 +24,7 @@
    List<SysWarehouseDto> getWarehouseList();
    void putInWarehouse(InWarehouseInfoDto inWarehouseInfo) throws Exception;
    void reagentReceiving(ReagentReceivingDto reagentReceiving);
}
src/main/java/com/nanometer/smartlab/service/SysWarehouseServiceImpl.java
@@ -4,6 +4,7 @@
import com.nanometer.smartlab.dao.SysWarehouseDao;
import com.nanometer.smartlab.entity.*;
import com.nanometer.smartlab.entity.dto.InWarehouseInfoDto;
import com.nanometer.smartlab.entity.dto.ReagentReceivingDto;
import com.nanometer.smartlab.entity.dto.SysWarehouseDto;
import com.nanometer.smartlab.entity.enumtype.*;
import com.nanometer.smartlab.exception.AlarmCode;
@@ -302,4 +303,21 @@
        }
    }
    @Override
    @Transactional
    public void reagentReceiving(ReagentReceivingDto reagentReceiving) {
        reagentReceiving.getReagentCode().forEach(code->{
                //
            OpeReagentStatus ors = opeReagentStatusService.getOpeReagentStatusByReagentCode(code);
            //1.更新试剂状态  在仓库-》领用
            ors.setStatus(ArrivalStatus.PERSONAL);
            ors.setContainerId(reagentReceiving.getLabContainerId());
            ors.setHouseId(reagentReceiving.getLabId());
            ors.setUserId(reagentReceiving.getApplyUserId());
            opeReagentStatusService.updateReagentStatus(ors);
        });
    }
}