瀏覽代碼

Merge remote-tracking branch 'origin/develop' into develop

‘linchangsheng’ 7 月之前
父節點
當前提交
bbf65dcefd

+ 1 - 1
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/bean/material/parts/SalesCustomerPartsBean.java

@@ -46,7 +46,7 @@ public class SalesCustomerPartsBean {
     private String workerName;
 
     @ApiModelProperty(value = "工单编号", required = true)
-    @NotBlank(groups = {ValidGroup.Add.class, ValidGroup.Edit.class}, message = "工单编号不能空")
+//    @NotBlank(groups = {ValidGroup.Add.class, ValidGroup.Edit.class}, message = "工单编号不能空")
     private String workOrderNo;
 
     @ApiModelProperty(value = "用户名称", required = true)

+ 1 - 1
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/bean/material/parts/WebsitPartsStockBean.java

@@ -42,7 +42,7 @@ public class WebsitPartsStockBean {
     private String goodsStockUnit;
 
     @ApiModelProperty("新件库存")
-    private BigDecimal newQty;
+    private BigDecimal qty;
 
     @ApiModelProperty("旧件库存")
     private BigDecimal oldQty;

+ 4 - 0
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/logic/material/parts/OldRefundManageLogic.java

@@ -194,12 +194,16 @@ public class OldRefundManageLogic {
             // 保存主表和明细
             WebsitPartsOldRefundManage partsOldRefundManage = new WebsitPartsOldRefundManage();
             BeanUtils.copyProperties(oldRefundManageBean, partsOldRefundManage);
+            // workOrderNo与pgId是同值
+            partsOldRefundManage.setPgId(oldRefundManageBean.getWorkOrderNo());
+
             List<WebsitPartsOldRefundManageItem> partsOldRefundManageItems = new ArrayList<>();
             for (OldRefundManageItemBean itemBean : oldRefundManageBean.getOldRefundManageItemBeanList()) {
                 WebsitPartsOldRefundManageItem partsOldRefundManageItem = new WebsitPartsOldRefundManageItem();
                 itemBean.setId(IdWorker.getIdStr());
                 itemBean.setApplyNo(sheetId);
                 BeanUtils.copyProperties(itemBean, partsOldRefundManageItem);
+                partsOldRefundManageItem.setNewUnitName(itemBean.getNewGoodsStockUnit());
                 partsOldRefundManageItems.add(partsOldRefundManageItem);
             }
             partsOldRefundManage.setCreateBy(partsOldRefundManage.getWorkerName())

+ 1 - 1
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/logic/material/parts/WebsitPartsStockLogic.java

@@ -30,7 +30,7 @@ public class WebsitPartsStockLogic {
         return materialMapper.websitGroupList(wechat.getCompanyWechatId(), websitId, partsWebsitId);
     }
 
-    public Object existWebsitStockList(String websitId, String partsWebsitId, String partsNumber, String partsName, String materialGroupName) {
+    public List<WebsitPartsStockBean> existWebsitStockList(String websitId, String partsWebsitId, String partsNumber, String partsName, String materialGroupName) {
         CurrentCompanyWechat wechat = commonLogic.getCurrentCompanyWechat();
         List<WebsitPartsStockBean> partsStockBeans = materialMapper.existWebsitStockList(wechat.getCompanyWechatId(), websitId, partsWebsitId, partsNumber, partsName, materialGroupName);
         for (WebsitPartsStockBean partsStockBean : partsStockBeans) {

+ 61 - 65
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/logic/order/PayOrderLogic.java

@@ -471,100 +471,96 @@ public class PayOrderLogic {
         // 配件扣库存
         try {
             if (workerOrder.getGoodsType().equals("P")) {
-                final PgOrderBase orderBase = pgOrderBaseService.getById(workerOrder.getWorkerOrderId());
 
-                if (Objects.nonNull(orderBase)) {
+                List<WorkerOrderItem> inner = workerOrderItems.stream().filter(item -> item.getRepairFlag().equals("INNER")).collect(Collectors.toList());
+                List<WorkerOrderItem> OUTSIDE = workerOrderItems.stream().filter(item -> item.getRepairFlag().equals("OUTSIDE")).collect(Collectors.toList());
 
-                    List<WorkerOrderItem> inner = workerOrderItems.stream().filter(item -> item.getRepairFlag().equals("INNER")).collect(Collectors.toList());
-                    List<WorkerOrderItem> OUTSIDE = workerOrderItems.stream().filter(item -> item.getRepairFlag().equals("OUTSIDE")).collect(Collectors.toList());
+                List<SalesCustomerPartsBean> salesCustomerPartsBeans = new ArrayList<>();
 
-                    List<SalesCustomerPartsBean> salesCustomerPartsBeans = new ArrayList<>();
+                if (!CollectionUtils.isEmpty(inner)){
+                    SalesCustomerPartsBean salesCustomerPartsBean = new SalesCustomerPartsBean();
+                    salesCustomerPartsBean.setCompanyWechatId(workerOrder.getCompanyWechatId());
+                    salesCustomerPartsBean.setCompanyWechatName(workerOrder.getCompanyWechatName());
+                    salesCustomerPartsBean.setRepairFlag("INNER");
+                    salesCustomerPartsBean.setIdentity(workerOrder.getIdentity());
+                    salesCustomerPartsBean.setWorkerId(workerOrder.getWorkerId());
+                    salesCustomerPartsBean.setWorkerName(workerOrder.getWorkerName());
+                    salesCustomerPartsBean.setWorkOrderNo(workerOrder.getWorkerOrderId());
+                    salesCustomerPartsBean.setCustomerName(workerOrder.getUserName());
+                    salesCustomerPartsBean.setCustomerTel(workerOrder.getUserMobile());
+                    salesCustomerPartsBean.setReceiveWebsitId(adminWebsit.getWebsitId());
+                    salesCustomerPartsBean.setReceivePartsWebsitId(adminWebsit.getPartsWebsitId());
+                    salesCustomerPartsBean.setRemark(workerOrder.getRemark());
 
-                    if (!CollectionUtils.isEmpty(inner)){
-                        SalesCustomerPartsBean salesCustomerPartsBean = new SalesCustomerPartsBean();
-                        salesCustomerPartsBean.setCompanyWechatId(workerOrder.getCompanyWechatId());
-                        salesCustomerPartsBean.setCompanyWechatName(workerOrder.getCompanyWechatName());
-                        salesCustomerPartsBean.setRepairFlag("INNER");
-                        salesCustomerPartsBean.setIdentity(workerOrder.getIdentity());
-                        salesCustomerPartsBean.setWorkerId(workerOrder.getWorkerId());
-                        salesCustomerPartsBean.setWorkerName(workerOrder.getWorkerName());
-                        salesCustomerPartsBean.setWorkOrderNo(workerOrder.getWorkerOrderId());
-                        salesCustomerPartsBean.setCustomerName(orderBase.getUserName());
-                        salesCustomerPartsBean.setCustomerTel(orderBase.getUserMobile());
-                        salesCustomerPartsBean.setReceiveWebsitId(adminWebsit.getWebsitId());
-                        salesCustomerPartsBean.setReceivePartsWebsitId(adminWebsit.getPartsWebsitId());
-                        salesCustomerPartsBean.setRemark(workerOrder.getRemark());
 
+                    List<SalesCustomerPartsItemBean> salesCustomerPartsItemBeans = new ArrayList<>();
 
-                        List<SalesCustomerPartsItemBean> salesCustomerPartsItemBeans = new ArrayList<>();
+                    for (WorkerOrderItem workerOrderItem : inner) {
+                        SalesCustomerPartsItemBean salesCustomerPartsItemBean = new SalesCustomerPartsItemBean();
 
-                        for (WorkerOrderItem workerOrderItem : inner) {
-                            SalesCustomerPartsItemBean salesCustomerPartsItemBean = new SalesCustomerPartsItemBean();
+                        salesCustomerPartsItemBean.setOldPartsName(workerOrderItem.getOldPartsName());
+                        salesCustomerPartsItemBean.setOldPartsNumber(workerOrderItem.getOldPartsNumber());
+                        salesCustomerPartsItemBean.setPartsNumber(workerOrderItem.getGoodsCode());
+                        salesCustomerPartsItemBean.setQty(workerOrderItem.getNum());
 
-                            salesCustomerPartsItemBean.setOldPartsName(workerOrderItem.getOldPartsName());
-                            salesCustomerPartsItemBean.setOldPartsNumber(workerOrderItem.getOldPartsNumber());
-                            salesCustomerPartsItemBean.setPartsNumber(workerOrderItem.getGoodsCode());
-                            salesCustomerPartsItemBean.setQty(workerOrderItem.getNum());
-
-                            salesCustomerPartsItemBeans.add(salesCustomerPartsItemBean);
-
-                        }
-
-                        salesCustomerPartsBean.setItems(salesCustomerPartsItemBeans);
-
-                        salesCustomerPartsBeans.add(salesCustomerPartsBean);
+                        salesCustomerPartsItemBeans.add(salesCustomerPartsItemBean);
 
                     }
 
+                    salesCustomerPartsBean.setItems(salesCustomerPartsItemBeans);
 
-                    if (!CollectionUtils.isEmpty(OUTSIDE)){
-                        SalesCustomerPartsBean salesCustomerPartsBean = new SalesCustomerPartsBean();
-                        salesCustomerPartsBean.setCompanyWechatId(workerOrder.getCompanyWechatId());
-                        salesCustomerPartsBean.setCompanyWechatName(workerOrder.getCompanyWechatName());
-                        salesCustomerPartsBean.setRepairFlag("OUTSIDE");
-                        salesCustomerPartsBean.setIdentity(workerOrder.getIdentity());
-                        salesCustomerPartsBean.setWorkerId(workerOrder.getWorkerId());
-                        salesCustomerPartsBean.setWorkerName(workerOrder.getWorkerName());
-                        salesCustomerPartsBean.setWorkOrderNo(workerOrder.getWorkerOrderId());
-                        salesCustomerPartsBean.setCustomerName(orderBase.getUserName());
-                        salesCustomerPartsBean.setCustomerTel(orderBase.getUserMobile());
-                        salesCustomerPartsBean.setReceiveWebsitId(adminWebsit.getWebsitId());
-                        salesCustomerPartsBean.setReceivePartsWebsitId(adminWebsit.getPartsWebsitId());
-                        salesCustomerPartsBean.setRemark(workerOrder.getRemark());
+                    salesCustomerPartsBeans.add(salesCustomerPartsBean);
 
+                }
 
-                        List<SalesCustomerPartsItemBean> salesCustomerPartsItemBeans = new ArrayList<>();
 
-                        for (WorkerOrderItem workerOrderItem : OUTSIDE) {
-                            SalesCustomerPartsItemBean salesCustomerPartsItemBean = new SalesCustomerPartsItemBean();
+                if (!CollectionUtils.isEmpty(OUTSIDE)){
+                    SalesCustomerPartsBean salesCustomerPartsBean = new SalesCustomerPartsBean();
+                    salesCustomerPartsBean.setCompanyWechatId(workerOrder.getCompanyWechatId());
+                    salesCustomerPartsBean.setCompanyWechatName(workerOrder.getCompanyWechatName());
+                    salesCustomerPartsBean.setRepairFlag("OUTSIDE");
+                    salesCustomerPartsBean.setIdentity(workerOrder.getIdentity());
+                    salesCustomerPartsBean.setWorkerId(workerOrder.getWorkerId());
+                    salesCustomerPartsBean.setWorkerName(workerOrder.getWorkerName());
+                    salesCustomerPartsBean.setWorkOrderNo(workerOrder.getWorkerOrderId());
+                    salesCustomerPartsBean.setCustomerName(workerOrder.getUserName());
+                    salesCustomerPartsBean.setCustomerTel(workerOrder.getUserMobile());
+                    salesCustomerPartsBean.setReceiveWebsitId(adminWebsit.getWebsitId());
+                    salesCustomerPartsBean.setReceivePartsWebsitId(adminWebsit.getPartsWebsitId());
+                    salesCustomerPartsBean.setRemark(workerOrder.getRemark());
 
-                            salesCustomerPartsItemBean.setOldPartsName(workerOrderItem.getOldPartsName());
-                            salesCustomerPartsItemBean.setOldPartsNumber(workerOrderItem.getOldPartsNumber());
-                            salesCustomerPartsItemBean.setPartsNumber(workerOrderItem.getGoodsCode());
-                            salesCustomerPartsItemBean.setQty(workerOrderItem.getNum());
 
-                            salesCustomerPartsItemBeans.add(salesCustomerPartsItemBean);
+                    List<SalesCustomerPartsItemBean> salesCustomerPartsItemBeans = new ArrayList<>();
 
-                        }
+                    for (WorkerOrderItem workerOrderItem : OUTSIDE) {
+                        SalesCustomerPartsItemBean salesCustomerPartsItemBean = new SalesCustomerPartsItemBean();
 
-                        salesCustomerPartsBean.setItems(salesCustomerPartsItemBeans);
+                        salesCustomerPartsItemBean.setOldPartsName(workerOrderItem.getOldPartsName());
+                        salesCustomerPartsItemBean.setOldPartsNumber(workerOrderItem.getOldPartsNumber());
+                        salesCustomerPartsItemBean.setPartsNumber(workerOrderItem.getGoodsCode());
+                        salesCustomerPartsItemBean.setQty(workerOrderItem.getNum());
 
-                        salesCustomerPartsBeans.add(salesCustomerPartsBean);
+                        salesCustomerPartsItemBeans.add(salesCustomerPartsItemBean);
 
                     }
 
+                    salesCustomerPartsBean.setItems(salesCustomerPartsItemBeans);
 
+                    salesCustomerPartsBeans.add(salesCustomerPartsBean);
+
+                }
 
-                    if (CollectionUtil.isNotEmpty(salesCustomerPartsBeans)) {
-                        // 开始处理库存
-                        for (SalesCustomerPartsBean salesCustomerPartsBean : salesCustomerPartsBeans) {
-                            oldRefundManageLogic.add(salesCustomerPartsBean);
-                        }
 
+
+                if (CollectionUtil.isNotEmpty(salesCustomerPartsBeans)) {
+                    // 开始处理库存
+                    for (SalesCustomerPartsBean salesCustomerPartsBean : salesCustomerPartsBeans) {
+                        oldRefundManageLogic.add(salesCustomerPartsBean);
                     }
-                }
 
+                }
             }
+
         } catch (Exception e) {
             log.error(workerOrder.getOrderId() + " 师傅配件扣自有库存失败: ", e);
         }

+ 4 - 0
mall-miniapp-service/src/main/resources/mapper/MaterialMapper.xml

@@ -595,11 +595,15 @@
             resultType="com.gree.mall.miniapp.bean.material.parts.WebsitPartsStockBean">
         SELECT
             a.id,
+            a.company_wechat_id,
+            a.company_wechat_name,
             a.websit_id,
             a.websit_name,
             a.parts_websit_id,
             a.goods_id,
             a.goods_name,
+            a.goods_id AS parts_number,
+            a.goods_name AS parts_name,
             b.material_group_name,
             b.part_type,
             b.market_price,

+ 1 - 1
mall-server-api/src/main/java/com/gree/mall/manager/bean/material/manage/WebsitWorkSettlementVO.java

@@ -83,7 +83,7 @@ public class WebsitWorkSettlementVO {
     private String customerAddress;
 
     @ApiModelProperty("GPS定位")
-    private String gPSPosition;
+    private String gpsPosition;
 
     @ApiModelProperty("邮政编码")
     private String mailNumber;

+ 11 - 9
mall-server-api/src/main/java/com/gree/mall/manager/bean/material/worker/OldRefundManageVO.java

@@ -2,7 +2,9 @@ package com.gree.mall.manager.bean.material.worker;
 
 import com.gree.mall.manager.annotation.ZfireField;
 import com.gree.mall.manager.enums.IsEnum;
-import com.gree.mall.manager.enums.material.*;
+import com.gree.mall.manager.enums.material.PartsOrderFlagEnum;
+import com.gree.mall.manager.enums.material.PartsRefundApplyTypeEnum;
+import com.gree.mall.manager.enums.material.PartsRepairFlagEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -24,14 +26,14 @@ public class OldRefundManageVO {
     @ApiModelProperty(value = "商户名称")
     private String companyWechatName;
 
-    @ApiModelProperty(value = "申请类别")
-    private PartsApplyCategoryEnum applyCategory;
+//    @ApiModelProperty(value = "申请类别")
+//    private PartsApplyCategoryEnum applyCategory;
 
     @ApiModelProperty(value = "申请类型")
     private PartsRefundApplyTypeEnum applyType;
 
-    @ApiModelProperty(value = "返还方式")
-    private PartsRefundModeEnum refundMode;
+//    @ApiModelProperty(value = "返还方式")
+//    private PartsRefundModeEnum refundMode;
 
     @ApiModelProperty(value = "维修标识")
     private PartsRepairFlagEnum repairFlag;
@@ -66,8 +68,8 @@ public class OldRefundManageVO {
     @ApiModelProperty(value = "工单编号")
     private String workOrderNo;
 
-    @ApiModelProperty(value = "总部工单派工id")
-    private String pgId;
+//    @ApiModelProperty(value = "总部工单派工id")
+//    private String pgId;
 
     @ApiModelProperty(value = "用户名称")
     private String customerName;
@@ -78,8 +80,8 @@ public class OldRefundManageVO {
     @ApiModelProperty(value = "退款金额")
     private BigDecimal refundAmount;
 
-    @ApiModelProperty(value = "退款方式")
-    private PayTypeEnum refundAmountMode;
+//    @ApiModelProperty(value = "退款方式")
+//    private PayTypeEnum refundAmountMode;
 
     @ApiModelProperty(value = "是否已结算")
     private IsEnum settlementState;

+ 1 - 1
mall-server-api/src/main/java/com/gree/mall/manager/logic/material/manage/WebsitPartsSalesOrderLogic.java

@@ -819,7 +819,7 @@ public class WebsitPartsSalesOrderLogic {
                 .setWorkerName(partsSalesOrderBean.getWorkerName())
                 .setSalesId(partsSalesOrderBean.getId())
                 .setRef(partsSalesOrderBean.getId())
-                .setRefType(PartsRefTypeEnum.SALES.toString())
+                .setRefType(PartsRefTypeEnum.SALES.getRemark())
                 .setRefundAmount(partsSalesOrderBean.getTotalAmount())
                 .setRefundState(PartsRefundStateEnum.WAIT.getKey())
                 .setIsExec(IsEnum.N.getValue())

+ 16 - 0
mall-server-api/src/main/java/com/gree/mall/manager/logic/material/manage/WebsitSalesLogic.java

@@ -308,6 +308,22 @@ public class WebsitSalesLogic {
 
             item.setConvertQty(convertQty)
                     .setConvertPrice(convertPrice);
+            // 检查数量是否大于当前库存数
+            final List<WebsitStock> websitStocks = websitStockService.lambdaQuery()
+                    .eq(WebsitStock::getCompanyWechatId, sales.getCompanyWechatId())
+                    .eq(WebsitStock::getWebsitId, sales.getWebsitId())
+                    .in(WebsitStock::getGoodsId, itemList.stream().map(WebsitSalesItem::getGoodsId).collect(Collectors.toList()))
+                    .list();
+            if (CollectionUtil.isNotEmpty(websitStocks)) {
+                final Map<String, WebsitStock> stockMap = websitStocks.stream()
+                        .collect(Collectors.toMap(WebsitStock::getGoodsId, Function.identity()));
+                for (WebsitSalesItem salesItem : itemList) {
+                    final WebsitStock stock = stockMap.get(salesItem.getGoodsId());
+                    if (Objects.nonNull(stock) && salesItem.getSalesQty().compareTo(stock.getQty()) > 0) {
+                        throw new RemoteServiceException(salesItem.getGoodsName() + " 销售数量不能大于库存数量");
+                    }
+                }
+            }
         }
 
     }

+ 73 - 30
mall-server-api/src/main/java/com/gree/mall/manager/logic/material/manage/WorkerOldRefundManageLogic.java

@@ -11,18 +11,17 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.gree.mall.manager.bean.admin.AdminUserCom;
-import com.gree.mall.manager.bean.material.worker.OldRefundManageBean;
-import com.gree.mall.manager.bean.material.worker.OldRefundManageItemBean;
-import com.gree.mall.manager.bean.material.worker.OldRefundManageRecordBean;
-import com.gree.mall.manager.bean.material.worker.OldRefundManageVO;
+import com.gree.mall.manager.bean.material.stock.WebsitStockDTO;
+import com.gree.mall.manager.bean.material.stock.WorkerStockDTO;
+import com.gree.mall.manager.bean.material.worker.*;
 import com.gree.mall.manager.commonmapper.MaterialMapper;
 import com.gree.mall.manager.enums.IsEnum;
 import com.gree.mall.manager.enums.base.BaseEnum;
 import com.gree.mall.manager.enums.material.*;
 import com.gree.mall.manager.exception.RemoteServiceException;
 import com.gree.mall.manager.logic.common.CommonLogic;
+import com.gree.mall.manager.logic.material.stock.MaterialGoodsStockLogic;
 import com.gree.mall.manager.logic.material.worker.OldRefundManageInnerLogic;
-import com.gree.mall.manager.bean.material.worker.PartsRefundRecordDTO;
 import com.gree.mall.manager.plus.entity.*;
 import com.gree.mall.manager.plus.service.*;
 import com.gree.mall.manager.zfire.bean.ZfireParamBean;
@@ -56,6 +55,8 @@ public class WorkerOldRefundManageLogic {
     private final WebsitPartsOldRefundManageRecordService websitPartsOldRefundManageRecordService;
     private final WebsitPartsRefundRecordService websitPartsRefundRecordService;
     private final WorkerStockAccService workerStockAccService;
+    private final MaterialGoodsStockLogic materialGoodsStockLogic;
+    private final StorageService storageService;
 
     public IPage<OldRefundManageVO> pageList(ZfireParamBean zfireParamBean) {
         AdminUserCom adminUser = commonLogic.getAdminUser();
@@ -92,17 +93,18 @@ public class WorkerOldRefundManageLogic {
         return oldRefundManageBean;
     }
 
-    public void refund(String applyNo, String flag, String examineRemark) {
+    @Transactional
+    public void refund(String applyNo, String flag, String examineRemark) throws Exception {
         AdminUserCom adminUser = commonLogic.getAdminUser();
         WebsitPartsOldRefundManage partsOldRefundManage = websitPartsOldRefundManageService.getById(applyNo);
         if (Objects.isNull(partsOldRefundManage)) {
             throw new RemoteServiceException("申请单号不存在");
         }
-        if (PartsRepairFlagEnum.OUTSIDE.toString().equals(partsOldRefundManage.getRepairFlag())) {
+        if (PartsRepairFlagEnum.OUTSIDE.getKey().equals(partsOldRefundManage.getRepairFlag())) {
             throw new RemoteServiceException("申请单号不存在");
         }
         // 保内 flag=已返还
-        if (PartsRepairFlagEnum.INNER.toString().equals(partsOldRefundManage.getRepairFlag())) {
+        if (PartsRepairFlagEnum.INNER.getKey().equals(partsOldRefundManage.getRepairFlag())) {
             if (!partsOldRefundManage.getFlag().equals(PartsOrderFlagEnum.AGREE.getKey())) {
                 throw new RemoteServiceException(applyNo + "单据状态:"
                         + BaseEnum.keyToValue(PartsOrderFlagEnum.class, partsOldRefundManage.getFlag()) + ",失败");
@@ -112,7 +114,7 @@ public class WorkerOldRefundManageLogic {
             }
         }
 
-        String refType = PartsRefTypeEnum.OLD_REFUND.toString();
+        String refType = PartsRefTypeEnum.OLD_REFUND.getRemark();
 
         DateTime curDate = DateUtil.date();
         partsOldRefundManage.setExamineRemark(examineRemark)
@@ -132,13 +134,13 @@ public class WorkerOldRefundManageLogic {
         // 已返还的处理
         if (flag.equals(PartsOrderFlagEnum.REFUNDED.getKey())) {
             // 减师傅临占旧件库存
-//            List<WorkerStockDTO> workerStockDTOList = oldRefundManageInnerLogic.createWorkerStockDTO(partsOldRefundManage, partsOldRefundManageItems,
-//                    refType, PartsStockPartsAttrEnum.TEMP_OLD.toString(), null, flag);
-//            partsStockLogic.handleWorkerStock(workerStockDTOList);
+            List<WorkerStockDTO> workerStockDTOList = oldRefundManageInnerLogic.createWorkerStockDTO(partsOldRefundManage, partsOldRefundManageItems,
+                    refType, PartsAttrEnum.TEMP_OLD.getKey(), null, flag);
+            materialGoodsStockLogic.handleWorkerStock(workerStockDTOList);
 
             // 网点旧件库存增加
-//            List<ShopStockDTO> shopStockDTOList = this.createShopStockDTO(partsOldRefundManage, partsOldRefundManageItems);
-//            partsStockLogic.handleShopStock(shopStockDTOList);
+            List<WebsitStockDTO> shopStockDTOList = this.createWebsitStockDTO(partsOldRefundManage, partsOldRefundManageItems);
+            materialGoodsStockLogic.handleWebsitStock(shopStockDTOList);
 
             List<WebsitPartsOldRefundManageRecord> partsNewRefundManageRecords = websitPartsOldRefundManageRecordService.lambdaQuery()
                     .eq(WebsitPartsOldRefundManageRecord::getApplyNo, partsOldRefundManage.getApplyNo())
@@ -148,9 +150,9 @@ public class WorkerOldRefundManageLogic {
                 websitPartsRefundRecordService.saveBatch(partsRefundRecordList);
         } else {
             // 加师傅旧件库存
-//            List<WorkerStockDTO> workerStockDTOList = oldRefundManageInnerLogic.createWorkerStockDTO(partsOldRefundManage, partsOldRefundManageItems,
-//                    refType, PartsStockPartsAttrEnum.TEMP_OLD.toString(), PartsStockPartsAttrEnum.OLD.toString(), flag);
-//            partsStockLogic.handleWorkerStock(workerStockDTOList);
+            List<WorkerStockDTO> workerStockDTOList = oldRefundManageInnerLogic.createWorkerStockDTO(partsOldRefundManage, partsOldRefundManageItems,
+                    refType, PartsAttrEnum.TEMP_OLD.getKey(), PartsAttrEnum.OLD.getKey(), flag);
+            materialGoodsStockLogic.handleWorkerStock(workerStockDTOList);
         }
     }
 
@@ -194,7 +196,7 @@ public class WorkerOldRefundManageLogic {
      * @param examineRemark
      */
     @Transactional
-    public void examine(String applyNo, Boolean isDisc, String examineRemark) {
+    public void examine(String applyNo, Boolean isDisc, String examineRemark) throws Exception {
         AdminUserCom adminUser = commonLogic.getAdminUser();
         WebsitPartsOldRefundManage partsOldRefundManage = websitPartsOldRefundManageService.getById(applyNo);
         if (Objects.isNull(partsOldRefundManage)) {
@@ -204,8 +206,8 @@ public class WorkerOldRefundManageLogic {
             throw new RemoteServiceException("申请单号不存在");
         }
 
-        String refType = PartsRefTypeEnum.OUTSIDE_TO_SALES.toString();
-        String flag = isDisc ? PartsOrderFlagEnum.AGREE.getKey() : PartsOrderFlagEnum.WAIT_REVIEW.toString();
+        String refType = PartsRefTypeEnum.OUTSIDE_TO_SALES.getRemark();
+        String flag = isDisc ? PartsOrderFlagEnum.AGREE.getKey() : PartsOrderFlagEnum.WAIT_REVIEW.getKey();
 
         DateTime curDate = DateUtil.date();
         partsOldRefundManage.setExamineRemark(examineRemark)
@@ -222,11 +224,11 @@ public class WorkerOldRefundManageLogic {
                 .list();
 
         // 已审批的处理
-        if (flag.equals(PartsOrderFlagEnum.AGREE.toString())) {
+        if (flag.equals(PartsOrderFlagEnum.AGREE.getKey())) {
             // 减师傅临占旧件库存
-//            List<WorkerStockDTO> workerStockDTOList = oldRefundManageInnerLogic.createWorkerStockDTO(partsOldRefundManage, partsOldRefundManageItems,
-//                    refType, PartsStockPartsAttrEnum.TEMP_OLD.toString(), null, flag);
-//            partsStockLogic.handleWorkerStock(workerStockDTOList);
+            List<WorkerStockDTO> workerStockDTOList = oldRefundManageInnerLogic.createWorkerStockDTO(partsOldRefundManage, partsOldRefundManageItems,
+                    refType, PartsAttrEnum.TEMP_OLD.getKey(), null, flag);
+            materialGoodsStockLogic.handleWorkerStock(workerStockDTOList);
 
             List<WebsitPartsOldRefundManageRecord> partsNewRefundManageRecords = websitPartsOldRefundManageRecordService.lambdaQuery()
                     .eq(WebsitPartsOldRefundManageRecord::getApplyNo, partsOldRefundManage.getApplyNo())
@@ -244,7 +246,7 @@ public class WorkerOldRefundManageLogic {
      * @param reviewRemark
      */
     @Transactional(rollbackFor = Exception.class)
-    public void review(String applyNo, Boolean reviewResult, String reviewRemark) {
+    public void review(String applyNo, Boolean reviewResult, String reviewRemark) throws Exception {
         AdminUserCom adminUser = commonLogic.getAdminUser();
         WebsitPartsOldRefundManage partsOldRefundManage = websitPartsOldRefundManageService.getById(applyNo);
         if (Objects.isNull(partsOldRefundManage)) {
@@ -254,7 +256,7 @@ public class WorkerOldRefundManageLogic {
             throw new RemoteServiceException("申请单号不存在");
         }
 
-        String refType = PartsRefTypeEnum.OUTSIDE_TO_SALES.getKey();
+        String refType = PartsRefTypeEnum.OUTSIDE_TO_SALES.getRemark();
         String flag = PartsOrderFlagEnum.REVIEWED.getKey();
 
         DateTime curDate = DateUtil.date();
@@ -273,10 +275,10 @@ public class WorkerOldRefundManageLogic {
 
         // 已复核的处理
         // 减师傅临占旧件库存
-//        List<WorkerStockDTO> workerStockDTOList = oldRefundManageInnerLogic.createWorkerStockDTO(partsOldRefundManage, partsOldRefundManageItems,
-//                refType, PartsStockPartsAttrEnum.TEMP_OLD.toString(), null, flag);
-//
-//        partsStockLogic.handleWorkerStock(workerStockDTOList);
+        List<WorkerStockDTO> workerStockDTOList = oldRefundManageInnerLogic.createWorkerStockDTO(partsOldRefundManage, partsOldRefundManageItems,
+                refType, PartsAttrEnum.TEMP_OLD.getKey(), null, flag);
+
+        materialGoodsStockLogic.handleWorkerStock(workerStockDTOList);
 
         if (reviewResult) {
             List<WebsitPartsOldRefundManageRecord> partsNewRefundManageRecords = websitPartsOldRefundManageRecordService.lambdaQuery()
@@ -358,6 +360,8 @@ public class WorkerOldRefundManageLogic {
             throw new RemoteServiceException("导入数据不能空");
         }
         for (WebsitPartsSettlementRecord settlementRecord : partsSettlementRecords) {
+            settlementRecord.setCompanyWechatId(adminUser.getCompanyWechatId())
+                    .setCompanyWechatName(adminUser.getCompanyName());
             if (StringUtils.isBlank(settlementRecord.getPgId()) || StringUtils.isBlank(settlementRecord.getWorkState()) ) {
                 throw new RemoteServiceException("导入的序号" + settlementRecord.getNo() + "数据异常,导入中止");
             }
@@ -388,6 +392,7 @@ public class WorkerOldRefundManageLogic {
         List<WebsitPartsOldRefundManage> updateList = new ArrayList<>();
         for (List<String> pgIdList : splitList) {
             final List<WebsitPartsOldRefundManage> partsOldRefundManageList = websitPartsOldRefundManageService.lambdaQuery()
+                    .eq(WebsitPartsOldRefundManage::getCompanyWechatId, adminUser.getCompanyWechatId())
                     .in(WebsitPartsOldRefundManage::getPgId, pgIdList)
                     .eq(WebsitPartsOldRefundManage::getRepairFlag, repairFlag)
                     .eq(WebsitPartsOldRefundManage::getSettlementState, false)
@@ -417,6 +422,7 @@ public class WorkerOldRefundManageLogic {
         if(Collections.isEmpty(objects)) {
             throw new RemoteServiceException("导入数据不能为空");
         }
+        AdminUserCom adminUser = commonLogic.getAdminUser();
         StringBuilder msg = new StringBuilder();
         LinkedHashSet<String> pgIds = new LinkedHashSet<>();
         for (Object data : objects) {
@@ -429,6 +435,7 @@ public class WorkerOldRefundManageLogic {
         List<List<String>> splitList = CollUtil.split(pgIds, 500);
         for (List<String> pgIdList : splitList) {
             final List<WebsitPartsOldRefundManage> partsOldRefundManageList = websitPartsOldRefundManageService.lambdaQuery()
+                    .eq(WebsitPartsOldRefundManage::getCompanyWechatId, adminUser.getCompanyWechatId())
                     .in(WebsitPartsOldRefundManage::getPgId, pgIdList)
                     .eq(WebsitPartsOldRefundManage::getRepairFlag, repairFlag)
                     .list();
@@ -521,4 +528,40 @@ public class WorkerOldRefundManageLogic {
                 .eq(WebsitPartsOldRefundManage::getApplyNo, applyNo)
                 .update();
     }
+
+    private List<WebsitStockDTO> createWebsitStockDTO(WebsitPartsOldRefundManage partsOldRefundManage, List<WebsitPartsOldRefundManageItem> partsOldRefundManageItems) {
+        final Storage storage = storageService.lambdaQuery()
+                .eq(Storage::getCompanyWechatId, partsOldRefundManage.getCompanyWechatId())
+                .eq(Storage::getWebsitId, partsOldRefundManage.getReceiveWebsitId())
+                .eq(Storage::getIsDefault, true)
+                .one();
+        List<WebsitStockDTO> shopStockDTOList = new ArrayList<>();
+        for (WebsitPartsOldRefundManageItem partsOldRefundManageItem : partsOldRefundManageItems) {
+            WebsitStockDTO sendShopStockDTO = new WebsitStockDTO();
+            sendShopStockDTO.setCompanyWechatId(partsOldRefundManage.getCompanyWechatId());
+            sendShopStockDTO.setCompanyWechatName(partsOldRefundManage.getCompanyWechatName());
+            sendShopStockDTO.setWebsitId(partsOldRefundManage.getReceiveWebsitId());
+            sendShopStockDTO.setWebsitName(partsOldRefundManage.getReceiveWebsitName());
+            sendShopStockDTO.setSdate(partsOldRefundManage.getRefundedTime());
+            sendShopStockDTO.setPartsWebsitId(partsOldRefundManage.getReceivePartsWebsitId());
+            sendShopStockDTO.setGoodsId(partsOldRefundManageItem.getNewPartsNumber());
+            sendShopStockDTO.setGoodsName(partsOldRefundManageItem.getNewPartsName());
+            sendShopStockDTO.setPrice(BigDecimal.ZERO);
+            sendShopStockDTO.setMaterialGroupName(partsOldRefundManageItem.getNewMaterialGroupName());
+            sendShopStockDTO.setGoodsStockUnit(partsOldRefundManageItem.getNewUnitName());
+            sendShopStockDTO.setVoucherNo(partsOldRefundManage.getApplyNo());
+            sendShopStockDTO.setApplyNo(partsOldRefundManage.getApplyNo());
+            sendShopStockDTO.setRef(partsOldRefundManage.getApplyNo());
+            sendShopStockDTO.setRefType(PartsRefTypeEnum.OLD_REFUND.getRemark());
+            sendShopStockDTO.setPartsAttr(PartsAttrEnum.OLD.getKey());
+            sendShopStockDTO.setChangeQty(partsOldRefundManageItem.getQty());
+            sendShopStockDTO.setDirectFlag(DirectFlagEnum.ADD.getKey());
+            sendShopStockDTO.setRemark(partsOldRefundManageItem.getRemark());
+            sendShopStockDTO.setOperateBy(partsOldRefundManage.getRefundedBy());
+            sendShopStockDTO.setOperateTime(partsOldRefundManage.getRefundedTime());
+            sendShopStockDTO.setStorageId(storage.getStorageId());
+            shopStockDTOList.add(sendShopStockDTO);
+        }
+        return shopStockDTOList;
+    }
 }

+ 1 - 1
mall-server-api/src/main/java/com/gree/mall/manager/logic/material/worker/NewRefundManageLogic.java

@@ -171,7 +171,7 @@ public class NewRefundManageLogic {
                     .setSalesId(partsNewRefundManageRecord.getSalesId())
                     .setSalesItemId(partsNewRefundManageRecord.getSalesItemId())
                     .setRef(partsNewRefundManage.getApplyNo())
-                    .setRefType(PartsRefTypeEnum.NEW_REFUND.getKey())
+                    .setRefType(PartsRefTypeEnum.NEW_REFUND.getRemark())
                     .setPartsNumber(partsNewRefundManageRecord.getPartsNumber())
                     .setPartsName(partsNewRefundManageRecord.getPartsName())
                     .setRefundAmount(partsNewRefundManageRecord.getRefundAmount())

+ 2 - 2
mall-server-api/src/main/java/com/gree/mall/manager/schedule/PartsRefundSchedule.java

@@ -145,7 +145,7 @@ public class PartsRefundSchedule {
                     .setIsExec(true)
                     .setInfo(refundSerialnumber);
             String refType = partsRefundRecord.getRefType();
-            if (refType.equals(PartsRefTypeEnum.NEW_REFUND.getKey())) {
+            if (refType.equals(PartsRefTypeEnum.NEW_REFUND.getRemark())) {
                 // 新件返还表
                 websitPartsNewRefundManageRecordService.lambdaUpdate()
                         .set(WebsitPartsNewRefundManageRecord::getRefundTime, refundTime)
@@ -155,7 +155,7 @@ public class PartsRefundSchedule {
                         .set(WebsitPartsNewRefundManageRecord::getRefundSerialnumber, refundSerialnumber)
                         .eq(WebsitPartsNewRefundManageRecord::getId, partsRefundRecord.getRecordId())
                         .update();
-            } else if (refType.equals(PartsRefTypeEnum.OLD_REFUND.toString()) || refType.equals(PartsRefTypeEnum.OUTSIDE_TO_SALES.toString())) {
+            } else if (refType.equals(PartsRefTypeEnum.OLD_REFUND.getRemark()) || refType.equals(PartsRefTypeEnum.OUTSIDE_TO_SALES.getRemark())) {
                 // 旧件返还表
                 websitPartsOldRefundManageRecordService.lambdaUpdate()
                         .set(WebsitPartsOldRefundManageRecord::getRefundTime, refundTime)