FengChaoYu 8 ay önce
ebeveyn
işleme
e4a0a8b077

+ 25 - 5
mall-server-api/src/main/java/com/gree/mall/manager/bean/material/stock/WorkerStockDTO.java

@@ -54,6 +54,9 @@ public class WorkerStockDTO {
 //    @NotBlank(message = "销售网点名称不能空")
     private String websitName;
 
+    @ApiModelProperty("配件网点编号")
+    private String partsWebsitId;
+
     @ApiModelProperty("商品类型")
     @NotNull(message = "商品类型不能空")
     private String goodsType;
@@ -88,11 +91,11 @@ public class WorkerStockDTO {
     @ApiModelProperty("网点销售价")
     private BigDecimal websitGoodsPrice;
 
-    @ApiModelProperty("单位id")
-    private String unitId;
+    @ApiModelProperty("物料组名称")
+    private String materialGroupName;
 
-    @ApiModelProperty("单位名称")
-    private String unitName;
+    @ApiModelProperty("单位")
+    private String goodsStockUnit;
 
     @ApiModelProperty("发生单价")
     private BigDecimal price;
@@ -105,7 +108,7 @@ public class WorkerStockDTO {
     @NotBlank(message = "相关单据类型不能空")
     private String refType;
 
-    @ApiModelProperty("配件属性 NEW=新件 OLD=旧件")
+    @ApiModelProperty("配件属性 NEW=新件 OLD=旧件 WAY=在途 TEMPNEW=临占新件 TEMPOLD=临占旧件")
     @NotBlank(message = "配件属性不能空")
     private String partsAttr;
 
@@ -156,6 +159,14 @@ public class WorkerStockDTO {
             qty = workerStock.getQty();
         } else if (this.partsAttr.equals(PartsAttrEnum.OLD.getKey())) {
             qty = workerStock.getOldQty();
+        } else if (this.partsAttr.equals(PartsAttrEnum.TEMP_NEW.toString())) {
+            qty = workerStock.getTempNewQty();
+        } else if (this.partsAttr.equals(PartsAttrEnum.TEMP_OLD.toString())) {
+            qty = workerStock.getTempOldQty();
+        } else if (this.partsAttr.equals(PartsAttrEnum.WAY.toString())) {
+            qty = workerStock.getWayQty();
+        } else if (this.partsAttr.equals(PartsAttrEnum.CHANGE_NEW.toString())) {
+            qty = workerStock.getChangeSalesQty();
         } else {
             throw new RemoteServiceException("配件库存属性不匹配:" + this.partsAttr);
         }
@@ -178,8 +189,17 @@ public class WorkerStockDTO {
             workerStock.setQty(closeQty);
         } else if (this.partsAttr.equals(PartsAttrEnum.OLD.getKey())) {
             workerStock.setOldQty(closeQty);
+        } else if (this.partsAttr.equals(PartsAttrEnum.TEMP_NEW.toString())) {
+            workerStock.setTempNewQty(closeQty);
+        } else if (this.partsAttr.equals(PartsAttrEnum.TEMP_OLD.toString())) {
+            workerStock.setTempOldQty(closeQty);
+        } else if (this.partsAttr.equals(PartsAttrEnum.WAY.toString())) {
+            workerStock.setWayQty(closeQty);
+        } else if (this.partsAttr.equals(PartsAttrEnum.CHANGE_NEW.toString())) {
+            workerStock.setChangeSalesQty(closeQty);
         }
         workerStock.setOperBy(this.operateBy)
                 .setOperTime(this.operateTime);
     }
+
 }

+ 79 - 6
mall-server-api/src/main/java/com/gree/mall/manager/logic/material/worker/OldRefundManageInnerLogic.java

@@ -3,18 +3,22 @@ package com.gree.mall.manager.logic.material.worker;
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
 import com.gree.mall.manager.bean.admin.AdminUserCom;
-import com.gree.mall.manager.enums.material.PartsOrderFlagEnum;
-import com.gree.mall.manager.enums.material.PartsRefTypeEnum;
-import com.gree.mall.manager.enums.material.PartsRepairFlagEnum;
+import com.gree.mall.manager.bean.material.stock.WorkerStockDTO;
+import com.gree.mall.manager.enums.material.*;
 import com.gree.mall.manager.logic.common.CommonLogic;
+import com.gree.mall.manager.logic.material.stock.MaterialGoodsStockLogic;
 import com.gree.mall.manager.plus.entity.WebsitPartsOldRefundManage;
 import com.gree.mall.manager.plus.entity.WebsitPartsOldRefundManageItem;
 import com.gree.mall.manager.plus.service.WebsitPartsOldRefundManageItemService;
+import com.gree.mall.manager.utils.CommonUtils;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.math.BigDecimal;
+import java.util.ArrayList;
 import java.util.List;
 
 @Slf4j
@@ -24,6 +28,7 @@ public class OldRefundManageInnerLogic {
 
     private final CommonLogic commonLogic;
     private final WebsitPartsOldRefundManageItemService websitPartsOldRefundManageItemService;
+    private final MaterialGoodsStockLogic materialGoodsStockLogic;
 
     @Transactional(rollbackFor = Exception.class)
     public void submit(WebsitPartsOldRefundManage partsOldRefundManage) throws Exception {
@@ -49,10 +54,78 @@ public class OldRefundManageInnerLogic {
                 .eq(WebsitPartsOldRefundManageItem::getApplyNo, partsOldRefundManage.getApplyNo())
                 .list();
 
-//        List<WorkerStockDTO> workerStockDTOList = this.createWorkerStockDTO(partsOldRefundManage, partsOldRefundManageItems,
-//                refType, PartsStockPartsAttrEnum.OLD.toString(), PartsStockPartsAttrEnum.TEMP_OLD.toString(), PartsExamineFlagEnum.SUBMIT.toString());
-//        partsStockLogic.handleWorkerStock(workerStockDTOList);
+        List<WorkerStockDTO> workerStockDTOList = this.createWorkerStockDTO(partsOldRefundManage, partsOldRefundManageItems,
+                refType, PartsAttrEnum.OLD.getKey(), PartsAttrEnum.TEMP_OLD.getKey(), PartsOrderFlagEnum.SUBMIT.getKey());
+        materialGoodsStockLogic.handleWorkerStock(workerStockDTOList);
 
 //        this.insertPartsMessageTip(partsOldRefundManage, curDate);
     }
+
+    public List<WorkerStockDTO> createWorkerStockDTO(WebsitPartsOldRefundManage partsOldRefundManage,
+            List<WebsitPartsOldRefundManageItem> partsOldRefundManageItems,
+            String refType, String partsAttr1,
+            String partsAttr2, String flag) {
+        List<WorkerStockDTO> workerStockDTOList = new ArrayList<>();
+        boolean b = flag.equals(PartsOrderFlagEnum.SAVE.getKey()) || flag.equals(PartsOrderFlagEnum.SUBMIT.getKey());
+        if (StringUtils.isNotBlank(partsAttr1)) {
+            for (WebsitPartsOldRefundManageItem refundManageItem : partsOldRefundManageItems) {
+                WorkerStockDTO workerStockDTO = new WorkerStockDTO();
+                workerStockDTO.setCompanyWechatId(partsOldRefundManage.getCompanyWechatId());
+                workerStockDTO.setCompanyWechatName(partsOldRefundManage.getCompanyWechatName());
+                workerStockDTO.setIdentity(partsOldRefundManage.getIdentity());
+                workerStockDTO.setWorkerId(partsOldRefundManage.getWorkerId());
+                workerStockDTO.setWorkerName(partsOldRefundManage.getWorkerName());
+                workerStockDTO.setWebsitId(partsOldRefundManage.getReceiveWebsitId());
+                workerStockDTO.setWebsitName(partsOldRefundManage.getReceiveWebsitName());
+                workerStockDTO.setPartsWebsitId(partsOldRefundManage.getReceivePartsWebsitId());
+                workerStockDTO.setSdate(DateUtil.date());
+                workerStockDTO.setGoodsId(refundManageItem.getNewPartsNumber());
+                workerStockDTO.setGoodsName(refundManageItem.getNewPartsName());
+                workerStockDTO.setMaterialGroupName(refundManageItem.getNewMaterialGroupName());
+                workerStockDTO.setGoodsStockUnit(refundManageItem.getNewUnitName());
+                workerStockDTO.setPrice(BigDecimal.ZERO);
+                workerStockDTO.setRef(partsOldRefundManage.getApplyNo());
+                workerStockDTO.setRefType(refType);
+                workerStockDTO.setPartsAttr(partsAttr1);
+                workerStockDTO.setChangeQty(refundManageItem.getQty());
+                workerStockDTO.setDirectFlag(DirectFlagEnum.SUB.getKey());
+                workerStockDTO.setRemark(refundManageItem.getRemark());
+                workerStockDTO.setOperateBy(b ? partsOldRefundManage.getWorkerName() : CommonUtils.getNickName());
+                workerStockDTO.setOperateTime(DateUtil.date());
+
+                workerStockDTOList.add(workerStockDTO);
+            }
+        }
+        if (StringUtils.isNotBlank(partsAttr2)) {
+            for (WebsitPartsOldRefundManageItem refundManageItem : partsOldRefundManageItems) {
+                WorkerStockDTO workerStockDTO = new WorkerStockDTO();
+                workerStockDTO.setCompanyWechatId(partsOldRefundManage.getCompanyWechatId());
+                workerStockDTO.setCompanyWechatName(partsOldRefundManage.getCompanyWechatName());
+                workerStockDTO.setIdentity(partsOldRefundManage.getIdentity());
+                workerStockDTO.setWorkerId(partsOldRefundManage.getWorkerId());
+                workerStockDTO.setWorkerName(partsOldRefundManage.getWorkerName());
+                workerStockDTO.setWebsitId(partsOldRefundManage.getReceiveWebsitId());
+                workerStockDTO.setWebsitName(partsOldRefundManage.getReceiveWebsitName());
+                workerStockDTO.setPartsWebsitId(partsOldRefundManage.getReceivePartsWebsitId());
+                workerStockDTO.setSdate(DateUtil.date());
+                workerStockDTO.setGoodsId(refundManageItem.getNewPartsNumber());
+                workerStockDTO.setGoodsName(refundManageItem.getNewPartsName());
+                workerStockDTO.setMaterialGroupName(refundManageItem.getNewMaterialGroupName());
+                workerStockDTO.setGoodsStockUnit(refundManageItem.getNewUnitName());
+                workerStockDTO.setPrice(BigDecimal.ZERO);
+                workerStockDTO.setRef(partsOldRefundManage.getApplyNo());
+                workerStockDTO.setRefType(refType);
+                workerStockDTO.setPartsAttr(partsAttr2);
+                workerStockDTO.setChangeQty(refundManageItem.getQty());
+                workerStockDTO.setDirectFlag(DirectFlagEnum.ADD.getKey());
+                workerStockDTO.setRemark(refundManageItem.getRemark());
+                workerStockDTO.setOperateBy(b ? partsOldRefundManage.getWorkerName() : CommonUtils.getNickName());
+                workerStockDTO.setOperateTime(DateUtil.date());
+
+                workerStockDTOList.add(workerStockDTO);
+            }
+        }
+        return workerStockDTOList;
+
+    }
 }