From c3510da29a7974c6af7ff3de1ade3db429d6f848 Mon Sep 17 00:00:00 2001
From: 李宇 <986321569@qq.com>
Date: 星期三, 18 八月 2021 14:27:59 +0800
Subject: [PATCH] 申购管理申请履历显示所有历史单据,提交时如有无效试剂耗材报错

---
 src/main/java/com/nanometer/smartlab/service/SysWarehouseServiceImpl.java |   59 +++++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 53 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/nanometer/smartlab/service/SysWarehouseServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/SysWarehouseServiceImpl.java
index dd7524f..bfcc6c4 100644
--- a/src/main/java/com/nanometer/smartlab/service/SysWarehouseServiceImpl.java
+++ b/src/main/java/com/nanometer/smartlab/service/SysWarehouseServiceImpl.java
@@ -1,6 +1,7 @@
 package com.nanometer.smartlab.service;
 
 import com.nanometer.smartlab.dao.BaseMetaDao;
+import com.nanometer.smartlab.dao.OpeReagentStatusDao;
 import com.nanometer.smartlab.dao.SysWarehouseDao;
 import com.nanometer.smartlab.entity.*;
 import com.nanometer.smartlab.entity.dto.InWarehouseInfoDto;
@@ -23,10 +24,8 @@
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.text.SimpleDateFormat;
+import java.util.*;
 
 /**
  * Created by cmower on 17/11/20.
@@ -52,6 +51,10 @@
     OpeUseFlowService opeUseFlowService;
     @Resource
     OpeWarehouseReserveService opeWarehouseReserveService;
+    @Resource
+    private SysLaboratoryService sysLaboratoryService;
+    @Resource
+    private OpeReagentStatusDao opeReagentStatusDao;
 
     @Transactional(propagation = Propagation.REQUIRED)
     public List<SysWarehouse> getSysWarehouseList(String type, String name, Integer first, Integer pageSize) {
@@ -168,7 +171,7 @@
 	public List<SysWarehouse> getAllSysWarehouseList() {
 		return this.sysWarehouseDao.getAllSysWarehouseList();
 	}
-	
+
 	@Transactional(propagation = Propagation.REQUIRED)
     public boolean isSysWarehouseExist(String barCode, String editId) {
         try {
@@ -307,6 +310,7 @@
                     opeWarehouseReserve.setArticleNumber(inWarehouseInfo.getArticleNumber());
                     opeWarehouseReserve.setReserve(0);
                     opeWarehouseReserve.setWarehouseId(inWarehouseInfo.getWarehouseId());
+                    opeWarehouseReserve.setUserId("admin");
                 }
                 //库存加1
                 opeWarehouseReserve.setReserve(opeWarehouseReserve.getReserve() + 1);
@@ -324,6 +328,8 @@
     @Override
     @Transactional
     public void reagentReceiving(ReagentReceivingDto reagentReceiving) {
+        String number = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date());
+        String receiptNum = "BS" + number;
 
         reagentReceiving.getReagentCode().forEach(code->{
                 //
@@ -333,8 +339,49 @@
             ors.setContainerId(reagentReceiving.getLabContainerId());
             ors.setHouseId(reagentReceiving.getLabId());
             ors.setUserId(reagentReceiving.getApplyUserId());
-            opeReagentStatusService.updateReagentStatus(ors);
+
+            if (opeReagentStatusService.isAllowWarehouseUse(ors)) {
+                // 减少库存
+                OpeWarehouseReserve opeWarehouseReserve = opeWarehouseReserveService.getOpeWarehouseReserve(
+                        ors.getReagent().getId(), ors.getArticleNumber());
+                opeWarehouseReserve.setReserve(opeWarehouseReserve.getReserve() - 1);
+                opeWarehouseReserveService.updateOpeWarehouseReserve(opeWarehouseReserve);
+            }
+            ors.setStatus(ArrivalStatus.NOREGISTER);
+            opeReagentStatusDao.updateOpeReagentStatusDao(ors);
+            OpeUseFlow opeUseFlow = new OpeUseFlow();
+            opeUseFlow.setReagentCode(ors.getReagentCode());
+            opeUseFlow.setStatus(ors.getStatus());
+            opeUseFlow.setHouseId(ors.getHouseId());
+            opeUseFlow.setContainerId(ors.getContainerId());
+            opeUseFlow.setUserId(ors.getUserId());
+            opeUseFlow.setPlace(ors.getPlace());
+            opeUseFlow.setRemainder(ors.getRemainder());
+            //新增 领用单号
+            opeUseFlow.setReceiptNumber(receiptNum);
+
+            Map<String, String> metaMap = new HashMap<>();
+            metaMap.put("groupId", "operate_status");
+            metaMap.put("metaKey", String.valueOf(OperateStatus.WAREHOUSEOUT.getKey()));
+            List<BaseMeta> baseMetaList = baseMetaDao.getBaseMetaList(metaMap);
+            opeUseFlow.setOperateState(baseMetaList.get(0).getId());
+            this.opeUseFlowService.insertOpeUseFlow(opeUseFlow);
+
         });
 
     }
+
+    @Override
+    @Transactional
+    public void updateSysWarehouse2(SysWarehouse sysWarehouse, SysLaboratory sysLaboratory) {
+        //1.0更新自己
+        this.updateSysWarehouse(sysWarehouse);
+        //2.更新实验室
+        sysLaboratory.setInfoCode(sysWarehouse.getInfoCode());
+        sysLaboratory.setBarCode(sysWarehouse.getBarCode());
+        sysLaboratory.setLocation1(sysWarehouse.getLocation1());
+        sysLaboratory.setLocation2(sysWarehouse.getLocation2());
+        sysLaboratory.setDepartment(sysWarehouse.getDepartment());
+        sysLaboratoryService.updateSysLaboratory(sysLaboratory);
+    }
 }

--
Gitblit v1.9.2