| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * Created by johnny on 17/12/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, |
| | |
| | | } |
| | | |
| | | @Transactional(propagation = Propagation.REQUIRED) |
| | | public OpeOrder getOpeOrder(String id) { |
| | | public OpeOrder getOpeOrder(Long id) { |
| | | try { |
| | | return this.opeOrderDao.getOpeOrder(id); |
| | | } catch (DataAccessException e) { |
| | |
| | | @Transactional(propagation = Propagation.REQUIRED) |
| | | public OpeOrder insertOpeOrder(OpeOrder opeOrder) { |
| | | try { |
| | | opeOrder.setId(IDUtils.uuid()); |
| | | this.opeOrderDao.insertOpeOrder(opeOrder); |
| | | return opeOrder; |
| | | } catch (DuplicateKeyException ex) { |
| | |
| | | return false; |
| | | } |
| | | |
| | | List<String> ids = new ArrayList<String>(); |
| | | List<Long> ids = new ArrayList<Long>(); |
| | | for (OpeOrder opeOrder : opeOrderList) { |
| | | ids.add(opeOrder.getId()); |
| | | |
| | |
| | | } |
| | | |
| | | @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); |
| | | } |
| | | } |
| | | |
| | |
| | | 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.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; |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | @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) { |
| | |
| | | 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); |
| | |
| | | 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); |
| | |
| | | } |
| | | |
| | | @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); |
| | |
| | | } |
| | | |
| | | @Override |
| | | public OpeOrder getOrder(String id) { |
| | | public OpeOrder getOrder(Long id) { |
| | | return opeOrderDao.selectParentOrder(id); |
| | | } |
| | | |