From 47a751cb301d05276ae5d75145d57b2d090fe4e1 Mon Sep 17 00:00:00 2001
From: kongzy <kongzy>
Date: 星期一, 01 七月 2024 10:58:35 +0800
Subject: [PATCH] change

---
 src/main/java/com/nanometer/smartlab/service/OpeOrderServiceImpl.java |  369 ++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 252 insertions(+), 117 deletions(-)

diff --git a/src/main/java/com/nanometer/smartlab/service/OpeOrderServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/OpeOrderServiceImpl.java
index 9f6172b..f39cf6e 100644
--- a/src/main/java/com/nanometer/smartlab/service/OpeOrderServiceImpl.java
+++ b/src/main/java/com/nanometer/smartlab/service/OpeOrderServiceImpl.java
@@ -1,8 +1,6 @@
 package com.nanometer.smartlab.service;
 
-import com.nanometer.smartlab.dao.BaseMetaDao;
-import com.nanometer.smartlab.dao.EmailStatusDao;
-import com.nanometer.smartlab.dao.OpeOrderDao;
+import com.nanometer.smartlab.dao.*;
 import com.nanometer.smartlab.entity.*;
 import com.nanometer.smartlab.entity.enumtype.ApplyStatus;
 import com.nanometer.smartlab.entity.enumtype.ArrivalStatus;
@@ -13,10 +11,11 @@
 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.nanometer.smartlab.util.StringToolUtils;
 import org.apache.commons.lang.StringUtils;
 import org.apache.log4j.Logger;
+import org.springframework.beans.BeanUtils;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.dao.DataAccessException;
 import org.springframework.dao.DataIntegrityViolationException;
@@ -33,6 +32,7 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * Created by johnny on 17/12/14.
@@ -64,6 +64,14 @@
 
     @Resource(name="baseMetaDao")
     BaseMetaDao baseMetaDao;
+
+    @Resource
+    DangerousEncodeMapper dangerousEncodeMapper;
+
+    @Resource
+    OpeReagentCodeDao opeReagentCodeDao;
+    @Resource
+    OpeApplyDao opeApplyDao;
 
     @Transactional(propagation = Propagation.REQUIRED)
     public List<OpeOrder> getOpeOrderList(String orderCode, String orderName, Timestamp startTime, Timestamp endTime, Integer status, String orderUserName,
@@ -115,7 +123,7 @@
     }
 
     @Transactional(propagation = Propagation.REQUIRED)
-    public OpeOrder getOpeOrder(String id) {
+    public OpeOrder getOpeOrder(Long id) {
         try {
             return this.opeOrderDao.getOpeOrder(id);
         } catch (DataAccessException e) {
@@ -127,7 +135,6 @@
     @Transactional(propagation = Propagation.REQUIRED)
     public OpeOrder insertOpeOrder(OpeOrder opeOrder) {
         try {
-            opeOrder.setId(IDUtils.uuid());
             this.opeOrderDao.insertOpeOrder(opeOrder);
             return opeOrder;
         } catch (DuplicateKeyException ex) {
@@ -167,7 +174,7 @@
                 return false;
             }
 
-            List<String> ids = new ArrayList<String>();
+            List<Long> ids = new ArrayList<Long>();
             for (OpeOrder opeOrder : opeOrderList) {
                 ids.add(opeOrder.getId());
 
@@ -187,31 +194,136 @@
     }
 
     @Transactional(propagation = Propagation.REQUIRED)
-    public void createOpeOrder(OpeOrder opeOrder, List<OpeApply> opeApplyList, SysUser orderUser) {
+    public void  createOpeOrder(OpeOrder opeOrder, List<OpeApply> opeApplyList, SysUser orderUser) {
         if (opeOrder == null
                 || opeApplyList == null
                 || orderUser == null) {
             return;
         }
-
         opeOrder.setOrderCode(this.sysSequenceService.getOrderCode());
         opeOrder.setStatus(ApplyStatus.PENDING_PURCHASE);
         opeOrder.setConsigneeUserId(null);
         opeOrder.setOrderUserId(orderUser.getId());
         opeOrder.setArrivalTime(null);
-        opeOrder.setSupplyId(opeApplyList.get(0).getReagent().getSupplierId());
-        opeOrder.setSupplyName(opeApplyList.get(0).getReagent().getSupplierName());
+        opeOrder.setSupplierId(opeApplyList.get(0).getReagent().getSupplierId());
+        opeOrder.setSupplierName(opeApplyList.get(0).getReagent().getSupplierName());
         this.insertOpeOrder(opeOrder);
-
-        OpeApplyOrder opeApplyOrder = null;
-        for (OpeApply opeApply : opeApplyList) {
-            opeApply.setStatus(ApplyStatus.PENDING_PURCHASE);
-            this.opeApplyService.updateOpeApply(opeApply);
-
-            opeApplyOrder = new OpeApplyOrder();
+        List<OpeApplyOrder> opeApplyOrderList = opeApplyList.stream().map(item -> {
+            OpeApplyOrder opeApplyOrder = new OpeApplyOrder();
             opeApplyOrder.setOpeOrderId(opeOrder.getId());
-            opeApplyOrder.setOpeApplyId(opeApply.getId());
-            this.opeApplyOrderService.insertOpeApplyOrder(opeApplyOrder);
+            opeApplyOrder.setOpeApplyId(item.getId());
+            return opeApplyOrder;
+        }).collect(Collectors.toList());
+        this.opeApplyOrderService.batchInsertOpeApplyOrder(opeApplyOrderList);
+        this.opeApplyService.updateOpeApplyStatus(ApplyStatus.PENDING_PURCHASE,null,opeApplyList.stream().map(OpeApply::getId).collect(Collectors.toList()));
+        synchronized(this) {
+            generateReagentCode(opeOrder.getId(), opeApplyList);
+        }
+    }
+
+//    public void  generateReagentCode(Long orderId,List<OpeApply> opeApplyList){
+//        List<OpeReagentCode> opeReagentCodeList=new ArrayList<>();
+//        for(OpeApply opeApply:opeApplyList) {
+//            String applyCode=opeApply.getApplyCode();
+//            String name = opeApply.getReagent().getName();
+//            if (StringUtils.isBlank(name)) {
+//                throw new BusinessException(ExceptionEnumCode.SYS_ERR, "试剂名称为空");
+//            }
+//            DangerousEncode dangerousEncode = this.dangerousEncodeMapper.selectByName(name);
+//            if (dangerousEncode == null) {
+//                throw new BusinessException(ExceptionEnumCode.SYS_ERR, "未录入危化品编码");
+//            }
+//            String containerNumber = dangerousEncode.getContainerNumber();
+//            if(StringUtils.isBlank(containerNumber)||containerNumber.length()!=2){
+//                throw new BusinessException(ExceptionEnumCode.SYS_ERR, String.format("试剂<%s>柜码不存在或者编码位数不是两位",name));
+//            }
+//            String factoryfactory = "0";
+//            String specifications = "0";
+//            String reagentCode = dangerousEncode.getReagentCode();
+//            if (StringUtils.isBlank(reagentCode)) {
+//                throw new BusinessException(ExceptionEnumCode.SYS_ERR, String.format("试剂<%s>试剂名称码不存在",name));
+//            }
+//            if(reagentCode.length()<4){
+//                reagentCode= StringToolUtils.addZeroForNum(reagentCode,4);
+//            }else{
+//                reagentCode = reagentCode.substring(reagentCode.length() - 4, reagentCode.length());
+//            }
+//            String feature = dangerousEncode.getFeature();
+//            if (StringUtils.isBlank(feature)||feature.length()!=4) {
+//                throw new BusinessException(ExceptionEnumCode.SYS_ERR, String.format("试剂<%s>特性不存在或者编码位数不是四位",name));
+//            }
+//
+//            String avoid = dangerousEncode.getAvoid();
+//            if (StringUtils.isBlank(avoid)||avoid.length()!=2) {
+//                throw new BusinessException(ExceptionEnumCode.SYS_ERR, String.format("试剂<%s>相忌不存在或者编码位数不是两位",name));
+//            }
+//            String status = dangerousEncode.getStatus();
+//            if (StringUtils.isBlank(status)||status.length()!=2) {
+//                throw new BusinessException(ExceptionEnumCode.SYS_ERR, String.format("试剂<%s>状态不存在或者编码位数不是两位",name));
+//            }
+//            String fire = dangerousEncode.getFire();
+//            if (StringUtils.isBlank(fire)||fire.length()!=2) {
+//                throw new BusinessException(ExceptionEnumCode.SYS_ERR, String.format("试剂<%s>灭火器不存在或者编码位数不是两位",name));
+//            }
+//            String packing = "0";
+//            StringBuilder prefixBuilder=new StringBuilder().append(containerNumber)
+//                    .append(factoryfactory)
+//                    .append(specifications)
+//                    .append(reagentCode)
+//                    .append(feature)
+//                    .append(avoid)
+//                    .append(status)
+//                    .append(fire)
+//                    .append(packing);
+//            String codePrex=prefixBuilder.toString();
+//            OpeReagentCode opeReagentCode=this.opeReagentCodeDao.getMaxReagentCode(codePrex);
+//            Integer startCode=0;
+//            Integer endCode=startCode+opeApply.getNum()-1;
+//            if(opeReagentCode!=null){
+//                startCode=opeReagentCode.getEndCode()+1;
+//                endCode=startCode+opeApply.getNum()-1;
+//            }
+//            opeReagentCode=new OpeReagentCode();
+//            opeReagentCode.setOrderId(orderId);
+//            opeReagentCode.setApplyId(opeApply.getId());
+//            opeReagentCode.setStartCode(startCode);
+//            opeReagentCode.setEndCode(endCode);
+//            opeReagentCode.setCodePrex(codePrex);
+//            opeReagentCodeList.add(opeReagentCode);
+//        }
+//        if(opeReagentCodeList.size()>0){
+//            this.opeReagentCodeDao.batchInsertReagentCode(opeReagentCodeList);
+//        }
+//    }
+
+    public void  generateReagentCode(Long orderId,List<OpeApply> opeApplyList){
+        List<OpeReagentCode> opeReagentCodeList=new ArrayList<>();
+        for(OpeApply opeApply:opeApplyList) {
+            String applyCode=opeApply.getApplyCode();
+            applyCode=applyCode.replace("SG","");
+            if (opeApply.getNum()>9999 &opeApply.getNum()<=0) {
+                throw new BusinessException(ExceptionEnumCode.SYS_ERR, "试剂申请数量不能超过9999");
+            }
+            StringBuilder prefixBuilder=new StringBuilder().append("SJ")
+                    .append(applyCode);
+            String codePrex=prefixBuilder.toString();
+            OpeReagentCode opeReagentCode=this.opeReagentCodeDao.getMaxReagentCode(codePrex);
+            Integer startCode=0;
+            Integer endCode=startCode+opeApply.getNum()-1;
+            if(opeReagentCode!=null){
+                startCode=opeReagentCode.getEndCode()+1;
+                endCode=startCode+opeApply.getNum()-1;
+            }
+            opeReagentCode=new OpeReagentCode();
+            opeReagentCode.setOrderId(orderId);
+            opeReagentCode.setApplyId(opeApply.getId());
+            opeReagentCode.setStartCode(startCode);
+            opeReagentCode.setEndCode(endCode);
+            opeReagentCode.setCodePrex(codePrex);
+            opeReagentCodeList.add(opeReagentCode);
+        }
+        if(opeReagentCodeList.size()>0){
+            this.opeReagentCodeDao.batchInsertReagentCode(opeReagentCodeList);
         }
     }
 
@@ -222,107 +334,131 @@
             return;
         }
 
-        Integer applyNum = null;
-        Integer arrivalNum = null;
         ApplyStatus flag = ApplyStatus.STORAGE;
-        // 更新订单所对应的申购状态为已入库
+      //  this.updateOpeOrder(opeOrder);
         for (OpeApply opeApply : opeApplyList) {
-        		applyNum = opeApply.getNum();
-        		arrivalNum = opeApply.getArrivalNum();
-        		if(applyNum > arrivalNum)
-        		{
-        			flag = ApplyStatus.UNCOMPLETED;
-        			opeApply.setStatus(ApplyStatus.UNCOMPLETED);
-        		}else
-        		{
-        			opeApply.setStatus(ApplyStatus.STORAGE);
-        		}
+            int existArrivalNum=this.opeApplyDao.getArrivalNumById(opeApply.getId());
+            Integer applyNum = opeApply.getNum();
+            Integer arrivalNum = opeApply.getArrivalNum();
+            if(arrivalNum<=existArrivalNum||arrivalNum>applyNum){
+                throw new BusinessException(ExceptionEnumCode.ORDER_ERROR,"到货数量不正确");
+            }
+            if(applyNum > arrivalNum)
+            {
+                flag = ApplyStatus.UNCOMPLETED;
+                opeApply.setStatus(ApplyStatus.UNCOMPLETED);
+            }else
+            {
+                opeApply.setStatus(ApplyStatus.STORAGE);
+            }
             this.opeApplyService.updateOpeApply(opeApply);
-        }
 
-     // 更新订单状态为已入库
+            OpeReagentCode opeReagentCode=this.opeReagentCodeDao.getReagentCode(opeOrder.getId(),opeApply.getId());
+            if(opeReagentCode==null){
+                throw new BusinessException(ExceptionEnumCode.SYS_ERR, "申购编号:" + opeApply.getApplyCode() + "的试剂条形码未自动生成");
+            }
+//            if(opeReagentCode.getStatus()==1){
+//                continue;
+//            }
+            List<OpeReagentStatus> opeReagentStatusList=generateReagentStatus(opeApply,opeReagentCode,opeOrder.getConsigneeUserId(),arrivalNum);
+            generateOpeUseFlow(opeReagentStatusList);
+            updateWareHouse(opeApply,arrivalNum-existArrivalNum);
+            this.opeReagentCodeDao.updateStatus(opeOrder.getId(),opeApply.getId(),1);
+        }
+        // 更新订单状态为已入库
         opeOrder.setStatus(flag);
-        this.updateOpeOrder(opeOrder);
+        this.opeOrderDao.updateOpeOrderStatus(opeOrder);
 
-        // 将入库的物品更新库存
-        OpeReagentStatus opeReagentStatus = null;
-        BigInteger startReagentCode = null;
-        BigInteger endReagentCode = null;
-        String reagentCode = null;
-        OpeWarehouseReserve opeWarehouseReserve = null;
-        OpeUseFlow opeUseFlow = null;
-        for (OpeApply opeApply : opeApplyList) {
-            if(StringUtils.isNotBlank(opeApply.getStartReagentCode()) && StringUtils.isNotBlank(opeApply.getEndReagentCode())){
-                startReagentCode = new BigInteger(opeApply.getStartReagentCode());
-                endReagentCode = new BigInteger(opeApply.getEndReagentCode());
-
-                for (BigInteger i = startReagentCode; i.compareTo(endReagentCode) < 1; i = i.add(BigInteger.ONE)) {
-                    reagentCode = String.valueOf(i);
-                    if (this.opeReagentStatusService.isOpeReagentStatusExist(reagentCode)) {
-                        throw new BusinessException(ExceptionEnumCode.REAGENT_CODE_EXIST, "申购编号:" + opeApply.getApplyCode() + "的试剂条形码[" + reagentCode + "]已存在。");
-                    }
-
-                    opeReagentStatus = new OpeReagentStatus();
-                    opeReagentStatus.setReagentId(opeApply.getReagent().getId());
-                    opeReagentStatus.setArticleNumber(opeApply.getArticleNumber());
-                    opeReagentStatus.setReagentCode(reagentCode);
-                    opeReagentStatus.setStatus(ArrivalStatus.WAREHOUSE);
-                    opeReagentStatus.setHouseId(opeApply.getHouseId());
-                    opeReagentStatus.setContainerId(opeApply.getContainerId());
-                    opeReagentStatus.setUserId(opeOrder.getConsigneeUserId());
-                    opeReagentStatus.setPlace(opeApply.getPlaceId());
-                    opeReagentStatus.setRemainder(opeApply.getReagent().getMainMetering() != null ? (opeApply.getReagent().getMainMetering()) : new BigDecimal(0));
-                    opeReagentStatus.setStoreType(StoreType.APPLY);
-                    this.opeReagentStatusService.insertOpeReagentStatus(opeReagentStatus);
-
-                    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.setRemainder(opeApply.getReagent().getMainMetering()!=null?(opeApply.getReagent().getMainMetering()):new BigDecimal(0));
-                    opeUseFlow.setStoreType(StoreType.APPLY);
-
-                    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());
-
-                    this.opeUseFlowService.insertOpeUseFlow(opeUseFlow);
-                }
-            }
-
-            opeWarehouseReserve = this.opeWarehouseReserveService.getOpeWarehouseReserve(opeApply.getReagent().getId(), opeApply.getArticleNumber());
-            if (opeWarehouseReserve == null) {
-                opeWarehouseReserve = new OpeWarehouseReserve();
-                opeWarehouseReserve.setReagentId(opeApply.getReagent().getId());
-                opeWarehouseReserve.setArticleNumber(opeApply.getArticleNumber());
-                opeWarehouseReserve.setReserve(0);
-                opeWarehouseReserve.setWarehouseId(opeApply.getHouseId());
-                opeWarehouseReserve.setContainerId(opeApply.getContainerId());
-            }
-            opeWarehouseReserve.setReserve(opeWarehouseReserve.getReserve() + opeApply.getArrivalNum());
-            if (StringUtils.isBlank(opeWarehouseReserve.getId())) {
-                this.opeWarehouseReserveService.insertOpeWarehouseReserve(opeWarehouseReserve);
-            } else {
-                this.opeWarehouseReserveService.updateOpeWarehouseReserve(opeWarehouseReserve);
-            }
-        }
 
     }
 
-    public List<OpeApply> getOpeApplyListByOrder(String orderId) {
-        List<OpeApply> result = null;
-        List<OpeApplyOrder> opeApplyOrderList = this.opeApplyOrderService.getOpeApplyOrderList(orderId, null);
-        if (opeApplyOrderList != null && opeApplyOrderList.size() > 0) {
-            result = new ArrayList<OpeApply>();
-            for (OpeApplyOrder opeApplyOrder : opeApplyOrderList) {
-                result.add(this.opeApplyService.getOpeApply(opeApplyOrder.getOpeApplyId()));
+
+
+    /**
+     * 生成试剂流向
+     */
+    @Override
+    public List<OpeReagentStatus> generateReagentStatus(OpeApply opeApply,OpeReagentCode opeReagentCode,Long consigneeUserId,Integer num){
+        int startCode=opeReagentCode.getStartCode();
+        int endCode=opeReagentCode.getEndCode();
+        List<OpeReagentStatus>  opeReagentStatusList=new ArrayList<>();
+        int codeSum=0;
+        for(int i=startCode;i<=endCode;i++){
+            String lastCode=StringToolUtils.addZeroForNum(String.valueOf(i),4);
+            String rcode=String.format("%s%s",opeReagentCode.getCodePrex(),lastCode);
+            codeSum=codeSum+1;
+            if(codeSum>num){
+                break;
             }
+            if (this.opeReagentStatusService.isOpeReagentStatusExist(rcode)) {
+                continue;
+            }
+            OpeReagentStatus opeReagentStatus = new OpeReagentStatus();
+            BeanUtils.copyProperties(opeApply,opeReagentStatus, "id");
+            opeReagentStatus.setReagentId(opeApply.getReagent().getId());
+            opeReagentStatus.setReagentCode(rcode);
+            opeReagentStatus.setStatus(ArrivalStatus.WAREHOUSE.getKey());
+            opeReagentStatus.setUserId(consigneeUserId);
+            opeReagentStatus.setRemainder(opeApply.getReagent().getMainMetering() != null ? (opeApply.getReagent().getMainMetering()) : new BigDecimal(0));
+            opeReagentStatus.setStoreType(StoreType.APPLY.getKey());
+            opeReagentStatusList.add(opeReagentStatus);
         }
+        if(opeReagentStatusList.size()>0) {
+            this.opeReagentStatusService.batchInsertOpeReagentStatus(opeReagentStatusList);
+        }
+        return opeReagentStatusList;
+    }
+    /**
+
+    /**
+     * 生成试剂流向
+     */
+    public void generateOpeUseFlow(List<OpeReagentStatus>  opeReagentStatusList){
+        List<OpeUseFlow> opeUseFlowList=new ArrayList<>();
+        for(OpeReagentStatus opeReagentStatus :opeReagentStatusList){
+            OpeUseFlow opeUseFlow = new OpeUseFlow();
+            BeanUtils.copyProperties(opeReagentStatus,opeUseFlow,"id");
+            opeUseFlow.setReagentCode(opeReagentStatus.getReagentCode());
+            opeUseFlow.setOperateState(OperateStatus.WAREHOUSEIN.getKey());
+            opeUseFlowList.add(opeUseFlow);
+        }
+        if(opeUseFlowList.size()>0) {
+            this.opeUseFlowService.batchInsertOpeUseFlow(opeUseFlowList);
+        }
+    }
+    /**
+     * 更新库存
+     */
+    public void updateWareHouse(OpeApply opeApply,Integer num){
+        OpeWarehouseReserve opeWarehouseReserve = this.opeWarehouseReserveService.getOpeWarehouseReserve(opeApply.getReagent().getId(), opeApply.getArticleNumber());
+        if (opeWarehouseReserve == null) {
+            opeWarehouseReserve = new OpeWarehouseReserve();
+            opeWarehouseReserve.setReagentId(opeApply.getReagent().getId());
+            opeWarehouseReserve.setArticleNumber(opeApply.getArticleNumber());
+            opeWarehouseReserve.setReserve(0);
+            opeWarehouseReserve.setWarehouseId(opeApply.getHouseId());
+            opeWarehouseReserve.setContainerId(opeApply.getContainerId());
+        }
+        opeWarehouseReserve.setReserve(opeWarehouseReserve.getReserve() + num);
+        if (opeWarehouseReserve.getId()==null) {
+            this.opeWarehouseReserveService.insertOpeWarehouseReserve(opeWarehouseReserve);
+        } else {
+            this.opeWarehouseReserveService.updateOpeWarehouseReserve(opeWarehouseReserve);
+        }
+    }
+
+
+    public List<OpeApply> getOpeApplyListByOrder(Long orderId) {
+        List<OpeApply> result = this.opeApplyService.getOpeApplyByOrderId(orderId);
+//        List<OpeApplyOrder> opeApplyOrderList = this.opeApplyOrderService.getOpeApplyOrderList(orderId, null);
+//        if (opeApplyOrderList != null && opeApplyOrderList.size() > 0) {
+//            result = new ArrayList<OpeApply>();
+//            for (OpeApplyOrder opeApplyOrder : opeApplyOrderList) {
+//                result.add(this.opeApplyService.getOpeApply(opeApplyOrder.getOpeApplyId()));
+//            }
+//        }
+//
+//        this.opeApplyService.getOpeApplyByOrderId(orderId);
         return result;
     }
 
@@ -334,7 +470,7 @@
     }
 
     @Transactional(propagation = Propagation.REQUIRED)
-    public void cancelOrderApply(String orderId) {
+    public void cancelOrderApply(Long orderId) {
         List<OpeApply> opeApplyList = this.getOpeApplyListByOrder(orderId);
         if (opeApplyList != null && opeApplyList.size() > 0) {
             for (OpeApply opeApply : opeApplyList) {
@@ -352,10 +488,9 @@
         for (OpeApply opeApply : opeApplyList) {
 
             emailStatus = new EmailStatus();
-            emailStatus.setId(IDUtils.uuid());
             emailStatus.setOrderCode(opeOrder.getOrderCode());
             emailStatus.setApplyCode(opeApply.getApplyCode());
-            emailStatus.setReagentId(opeApply.getReagent().getId());
+            emailStatus.setReagentId(opeApply.getReagentId());
             emailStatus.setNum(opeApply.getArrivalNum());
             emailStatus.setApplyUserId(opeApply.getApplyUserId());
             emailStatus.setStatus(EmailSendStatus.UN_SEND);
@@ -458,7 +593,7 @@
                 opeWarehouseReserve.setReserve(0);
             }
             opeWarehouseReserve.setReserve(opeWarehouseReserve.getReserve() - opeApply1.getArrivalNum());
-            if (StringUtils.isBlank(opeWarehouseReserve.getId())) {
+            if (opeWarehouseReserve.getId()==null) {
                 this.opeWarehouseReserveService.insertOpeWarehouseReserve(opeWarehouseReserve);
             } else {
                 this.opeWarehouseReserveService.updateOpeWarehouseReserve(opeWarehouseReserve);
@@ -472,12 +607,12 @@
     }
 
     @Override
-    public List<EmailStatus> selectByReId(String id) {
+    public List<EmailStatus> selectByReId(Long id) {
         return this.emailStatusDao.selectByReId(id);
     }
 
     @Override
-    public void updateByReId(String newReId, String oldReId) {
+    public void updateByReId(Long newReId, Long oldReId) {
         Map<String, Object> params=new HashMap();
         params.put("newReId",newReId);
         params.put("oldReId",oldReId);
@@ -485,7 +620,7 @@
     }
 
     @Override
-    public OpeOrder getOrder(String id) {
+    public OpeOrder getOrder(Long id) {
         return opeOrderDao.selectParentOrder(id);
     }
 

--
Gitblit v1.9.2