From 24a5d5638b40a6921f24fd01997db64237c6b653 Mon Sep 17 00:00:00 2001 From: gdg <764716047@qq.com> Date: 星期一, 28 十二月 2020 08:55:41 +0800 Subject: [PATCH] 1.替换字典 和数据字典同步 2.入库 --- src/main/java/com/nanometer/smartlab/service/SysWarehouseServiceImpl.java | 135 ++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 134 insertions(+), 1 deletions(-) diff --git a/src/main/java/com/nanometer/smartlab/service/SysWarehouseServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/SysWarehouseServiceImpl.java index dbd05ef..2d2fe60 100644 --- a/src/main/java/com/nanometer/smartlab/service/SysWarehouseServiceImpl.java +++ b/src/main/java/com/nanometer/smartlab/service/SysWarehouseServiceImpl.java @@ -1,14 +1,18 @@ package com.nanometer.smartlab.service; +import com.nanometer.smartlab.dao.BaseMetaDao; import com.nanometer.smartlab.dao.SysWarehouseDao; -import com.nanometer.smartlab.entity.SysWarehouse; +import com.nanometer.smartlab.entity.*; +import com.nanometer.smartlab.entity.dto.InWarehouseInfoDto; import com.nanometer.smartlab.entity.dto.SysWarehouseDto; +import com.nanometer.smartlab.entity.enumtype.*; import com.nanometer.smartlab.exception.AlarmCode; import com.nanometer.smartlab.exception.AlarmException; import com.nanometer.smartlab.exception.BusinessException; import com.nanometer.smartlab.exception.ExceptionEnumCode; import com.nanometer.smartlab.util.IDUtils; import com.nanometer.smartlab.util.MessageUtil; +import com.sun.xml.internal.bind.v2.model.core.ID; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import org.springframework.dao.DataAccessException; @@ -34,6 +38,20 @@ @Resource(name = "sysWarehouseDao") SysWarehouseDao sysWarehouseDao; + @Resource + DangerousEncodeService dangerousEncodeService; + @Resource + BaseMetaService baseMetaService; + @Resource + BaseMetaDao baseMetaDao; + @Resource + SysReagentService sysReagentService; + @Resource + OpeReagentStatusService opeReagentStatusService; + @Resource + OpeUseFlowService opeUseFlowService; + @Resource + OpeWarehouseReserveService opeWarehouseReserveService; @Transactional(propagation = Propagation.REQUIRED) public List<SysWarehouse> getSysWarehouseList(String type, String name, Integer first, Integer pageSize) { @@ -170,4 +188,119 @@ public List<SysWarehouseDto> getWarehouseList() { return sysWarehouseDao.selectWarehouse(); } + + @Override + @Transactional + public void putInWarehouse(InWarehouseInfoDto inWarehouseInfo) throws Exception { + List<String> codes = inWarehouseInfo.getReagentCode(); + if (codes !=null && codes.size()>0){ + // + codes.forEach(code->{ + //获取试剂名称码 5到8位 + String reagentCode = code.substring(4, 8); + //获取厂商编码 第3位 + String factoryCode = code.substring(2, 3); + //获取规格 第4位 + String specificationsCode = code.substring(3, 4); + //获取包装 第19位 + String packingCode = code.substring(18, 19); + + //厂商 + BaseMeta factory = baseMetaService + .getBaseMeta("encode_replace_"+ReplaceDictType.factory.getKey(), factoryCode,null); + //规格 + BaseMeta specifications = baseMetaService + .getBaseMeta("encode_replace_"+ReplaceDictType.specifications.getKey(), specificationsCode,null); + //厂商信息 + BaseMeta packing= baseMetaService + .getBaseMeta("encode_replace_"+ReplaceDictType.packing.getKey(), packingCode,null); + + //Todo 校验 + DangerousEncode dangerousEncode = new DangerousEncode(); + //数据库存储的前缀00空着 + dangerousEncode.setReagentCode("00"+reagentCode); + List<DangerousEncode> dangerousEncodes = + dangerousEncodeService.selectAll(dangerousEncode,null,null); + + String reagentName = dangerousEncodes.get(0).getReagentName(); + String cas = dangerousEncodes.get(0).getCas(); + //查找是否存在试剂 + List<SysReagent> reagent = sysReagentService + .getReagent(reagentName, cas, factory.getId(), specifications.getId(), packing.getId()); + + OpeReagentStatus ors = new OpeReagentStatus(); + if (reagent != null &&reagent.size()>0){ + //存在试剂 + String reagentId = reagent.get(0).getId(); + ors.setReagentId(reagentId); + + }else{ + //试剂不存在 + SysReagent sr = new SysReagent(); + sr.setId(IDUtils.uuid()); + sr.setCas(cas); + sr.setName(reagentName); + sr.setProductHome(factory.getId()); + sr.setReagentFormat(specifications.getId()); + sr.setReagentUnit(packing.getId()); + //设备生成试剂类型 为3 + sr.setType(3); + sr.setDangerousFlag(DangerousFlag.NORMAL); + SysReagent sysReagent = sysReagentService.insertSysReagent(sr); + String reagentId = sysReagent.getId(); + ors.setReagentId(reagentId); + } + + ors.setId(IDUtils.uuid()); + //入仓库 + ors.setStatus(ArrivalStatus.WAREHOUSE); + //批号 + ors.setArticleNumber(inWarehouseInfo.getArticleNumber()); + ors.setValidFlag(ValidFlag.VALID); + ors.setContainerId(inWarehouseInfo.getContainerId()); + ors.setHouseId(inWarehouseInfo.getWarehouseId()); + ors.setUserId(inWarehouseInfo.getUser()); + ors.setReagentCode(code); + opeReagentStatusService.insertOpeReagentStatus(ors); + + //更新试剂流向 + OpeUseFlow opeUseFlow = new OpeUseFlow(); + //入仓库 + opeUseFlow.setStatus(ArrivalStatus.WAREHOUSE); + opeUseFlow.setContainerId(inWarehouseInfo.getContainerId()); + opeUseFlow.setHouseId(inWarehouseInfo.getWarehouseId()); + opeUseFlow.setStoreType(StoreType.DIRECTSTORE); + opeUseFlow.setReagentCode(code); + //持有者 + opeUseFlow.setUserId(inWarehouseInfo.getUser()); + Map<String, String> metaMap = new HashMap<>(); + metaMap.put("groupId", "operate_status"); + metaMap.put("metaKey", String.valueOf(OperateStatus.WAREHOUSEIN.getKey())); + List<BaseMeta> baseMetaList = baseMetaDao.getBaseMetaList(metaMap); + opeUseFlow.setOperateState(baseMetaList.get(0).getId()); + opeUseFlowService.insertOpeUseFlow(opeUseFlow); + + //更新仓库库存 + // 仓库库存update + OpeWarehouseReserve opeWarehouseReserve = opeWarehouseReserveService + .getOpeWarehouseReserve2(ors.getReagentId(), inWarehouseInfo.getArticleNumber(), inWarehouseInfo.getWarehouseId()); + if (opeWarehouseReserve == null) { + opeWarehouseReserve = new OpeWarehouseReserve(); + opeWarehouseReserve.setReagentId(ors.getReagentId()); + opeWarehouseReserve.setArticleNumber(inWarehouseInfo.getArticleNumber()); + opeWarehouseReserve.setReserve(0); + opeWarehouseReserve.setWarehouseId(inWarehouseInfo.getWarehouseId()); + } + //库存加1 + opeWarehouseReserve.setReserve(opeWarehouseReserve.getReserve() + 1); + if (StringUtils.isBlank(opeWarehouseReserve.getId())) { + this.opeWarehouseReserveService.insertOpeWarehouseReserve(opeWarehouseReserve); + } else { + this.opeWarehouseReserveService.updateOpeWarehouseReserve(opeWarehouseReserve); + } + + }); + } + + } } -- Gitblit v1.9.2