‘linchangsheng’ 7 months ago
parent
commit
696176c228

+ 95 - 88
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/logic/order/PayOrderLogic.java

@@ -8,6 +8,8 @@ import cn.hutool.core.date.DateUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.gree.mall.miniapp.bean.material.parts.SalesCustomerPartsBean;
+import com.gree.mall.miniapp.bean.material.parts.SalesCustomerPartsItemBean;
 import com.gree.mall.miniapp.bean.material.stock.WorkerNormStockBean;
 import com.gree.mall.miniapp.bean.material.stock.WorkerStockDTO;
 import com.gree.mall.miniapp.bean.order.OrderCount;
@@ -22,6 +24,7 @@ import com.gree.mall.miniapp.enums.material.WebsitGoodsTypeEnum;
 import com.gree.mall.miniapp.exception.RemoteServiceException;
 import com.gree.mall.miniapp.logic.common.CommonLogic;
 import com.gree.mall.miniapp.logic.common.outside.WechatLogic;
+import com.gree.mall.miniapp.logic.material.parts.OldRefundManageLogic;
 import com.gree.mall.miniapp.logic.material.stock.MaterialGoodsStockLogic;
 import com.gree.mall.miniapp.plus.entity.*;
 import com.gree.mall.miniapp.plus.service.*;
@@ -116,6 +119,9 @@ public class PayOrderLogic {
     @Autowired
     MaterialMapper materialMapper;
 
+    @Autowired
+    OldRefundManageLogic oldRefundManageLogic;
+
     public Page<WebsitNormCharge> pageCharge(String name, String categoryId, String orderId,Integer pageNum, Integer pageSize) {
         CurrentCompanyWechat currentCompanyWechat = commonLogic.getCurrentCompanyWechat();
         Page<WebsitNormCharge> list = websitNormChargeService.lambdaQuery()
@@ -244,28 +250,31 @@ public class PayOrderLogic {
     private void addPeiJian(WorkerOrderItem workerOrderItem) {
         WebsitGoods websitGoods = websitGoodsService.getById(workerOrderItem.getGoodsId());
 
-        workerOrderItem.setGoodsAmount(websitGoods.getNormAmount());
-        workerOrderItem.setGoodsCode(websitGoods.getGoodsCode());
 
+        workerOrderItem.setGoodsCode(websitGoods.getGoodsCode());
 
 
         if (websitGoods.getNormType().equals("S"))
             workerOrderItem.setNormAmount(workerOrderItem.getNormAmount());
         else
-            workerOrderItem.setNormAmount(websitGoods.getNormAmount());
+            workerOrderItem.setNormAmount(websitGoods.getMarketPrice());
+
+        workerOrderItem.setGoodsAmount(workerOrderItem.getNormAmount());
+
 
         workerOrderItem.setTotalAmount(workerOrderItem.getNormAmount().multiply(Convert.toBigDecimal(workerOrderItem.getNum())));
 
         workerOrderItem.setUnit(websitGoods.getGoodsSalesUnit());
+
         if (websitGoods.getNormType().equals("M")) {
             workerOrderItem.setChargeType("ACC");
 
-            workerOrderItem.setWorkerAmount(websitGoods.getNormAmount().multiply(Convert.toBigDecimal(workerOrderItem.getNum())));
+            workerOrderItem.setWorkerAmount(workerOrderItem.getNormAmount().multiply(Convert.toBigDecimal(workerOrderItem.getNum())));
 
         }else {
             workerOrderItem.setChargeType("SERV");
 
-            workerOrderItem.setWorkerAmount(websitGoods.getNormAmount().multiply(Convert.toBigDecimal(workerOrderItem.getNum())));
+            workerOrderItem.setWorkerAmount(workerOrderItem.getNormAmount().multiply(Convert.toBigDecimal(workerOrderItem.getNum())));
 
         }
 
@@ -418,93 +427,91 @@ public class PayOrderLogic {
 
         // 配件扣库存
         try {
-            if (workerOrder.getGoodsType().equals("P") && workerOrder.getSettlementType().equals("OWN")) {
-                List<WorkerStockDTO> workerStockDTOS = new ArrayList<>();
+            if (workerOrder.getGoodsType().equals("P")) {
+
+
+                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<>();
+
+                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.setCustomerName(workerOrder.getUserName());
+                    salesCustomerPartsBean.setCustomerTel(workerOrder.getUserMobile());
+                    salesCustomerPartsBean.setRemark(workerOrder.getRemark());
+
+
+                    List<SalesCustomerPartsItemBean> salesCustomerPartsItemBeans = new ArrayList<>();
+
+                    for (WorkerOrderItem workerOrderItem : inner) {
+                        SalesCustomerPartsItemBean salesCustomerPartsItemBean = new SalesCustomerPartsItemBean();
+
+                        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);
 
-//                List<String> existStock = workerStockService.lambdaQuery()
-//                        .eq(WorkerStock::getCompanyWechatId, workerOrder.getCompanyWechatId())
-//                        .eq(WorkerStock::getWorkerId, workerOrder.getWorkerId())
-//                        .in(WorkerStock::getGoodsId, workerOrderItems.stream()
-//                                .map(WorkerOrderItem::getGoodsId)
-//                                .collect(Collectors.toList()))
-//                        .ge(WorkerStock::getQty, 0)
-//                        .list()
-//                        .stream()
-//                        .map(WorkerStock::getGoodsId)
-//                        .collect(Collectors.toList());
-//
-//                if (CollectionUtil.isEmpty(existStock)) {
-//                    log.info("未发现师傅配件正数库存");
-//                }
-
-                for (WorkerOrderItem item : workerOrderItems) {
-//                    if (existStock.contains(item.getGoodsId())) {
-                        // 新件减少
-                        WorkerStockDTO workerStockDTO = new WorkerStockDTO();
-                        workerStockDTO.setCompanyWechatId(workerOrder.getCompanyWechatId());
-                        workerStockDTO.setCompanyWechatName(workerOrder.getCompanyWechatName());
-                        workerStockDTO.setIdentity(workerOrder.getIdentity());
-                        workerStockDTO.setWorkerId(workerOrder.getWorkerId());
-                        workerStockDTO.setWorkerName(workerOrder.getWorkerName());
-                        workerStockDTO.setWebsitId(workerOrder.getWebsitId());
-                        workerStockDTO.setWebsitName(workerOrder.getWebsitName());
-                        workerStockDTO.setSdate(workerOrder.getCreateTime());
-                        workerStockDTO.setWorkerWebsitId(workerOrder.getWebsitId());
-                        workerStockDTO.setWorkerWebsitName(workerOrder.getWebsitName());
-                        workerStockDTO.setGoodsId(item.getGoodsId());
-                        workerStockDTO.setGoodsName(item.getGoodsName());
-                        workerStockDTO.setGoodsType("P");
-                        workerStockDTO.setPrice(item.getGoodsAmount());
-                        workerStockDTO.setGoodsStockUnit(item.getUnit());
-                        workerStockDTO.setRef(workerOrder.getOrderId());
-                        workerStockDTO.setRefType("配件销售");
-                        workerStockDTO.setPartsAttr(PartsAttrEnum.NEW.toString());
-                        workerStockDTO.setChangeQty(item.getNum());
-                        workerStockDTO.setDirectFlag("SUB");
-                        workerStockDTO.setFlag("USED");
-                        workerStockDTO.setObj("客户");
-                        workerStockDTO.setWorkerOrderNo(workerOrder.getWorkerOrderId());
-                        workerStockDTO.setRemark(workerOrder.getRemark());
-                        workerStockDTO.setOperateBy(workerOrder.getWorkerName());
-                        workerStockDTO.setOperateTime(DateUtil.date());
-
-                        // 旧件增加
-                        WorkerStockDTO oldWorkerStockDTO = new WorkerStockDTO();
-                        oldWorkerStockDTO.setCompanyWechatId(workerOrder.getCompanyWechatId());
-                        oldWorkerStockDTO.setCompanyWechatName(workerOrder.getCompanyWechatName());
-                        oldWorkerStockDTO.setIdentity(workerOrder.getIdentity());
-                        oldWorkerStockDTO.setWorkerId(workerOrder.getWorkerId());
-                        oldWorkerStockDTO.setWorkerName(workerOrder.getWorkerName());
-                        oldWorkerStockDTO.setWebsitId(workerOrder.getWebsitId());
-                        oldWorkerStockDTO.setWebsitName(workerOrder.getWebsitName());
-                        oldWorkerStockDTO.setSdate(workerOrder.getCreateTime());
-                        oldWorkerStockDTO.setWorkerWebsitId(workerOrder.getWebsitId());
-                        oldWorkerStockDTO.setWorkerWebsitName(workerOrder.getWebsitName());
-                        oldWorkerStockDTO.setGoodsId(item.getGoodsId());
-                        oldWorkerStockDTO.setGoodsName(item.getGoodsName());
-                        oldWorkerStockDTO.setGoodsType("P");
-                        oldWorkerStockDTO.setPrice(item.getGoodsAmount());
-                        oldWorkerStockDTO.setGoodsStockUnit(item.getUnit());
-                        oldWorkerStockDTO.setRef(workerOrder.getOrderId());
-                        oldWorkerStockDTO.setRefType("配件销售");
-                        oldWorkerStockDTO.setPartsAttr(PartsAttrEnum.OLD.toString());
-                        oldWorkerStockDTO.setChangeQty(item.getNum());
-                        oldWorkerStockDTO.setDirectFlag("ADD");
-                        oldWorkerStockDTO.setFlag("USED");
-                        oldWorkerStockDTO.setObj("客户");
-                        oldWorkerStockDTO.setWorkerOrderNo(workerOrder.getWorkerOrderId());
-                        oldWorkerStockDTO.setRemark(workerOrder.getRemark());
-                        oldWorkerStockDTO.setOperateBy(workerOrder.getWorkerName());
-                        oldWorkerStockDTO.setOperateTime(DateUtil.date());
-
-                        workerStockDTOS.add(workerStockDTO);
-                        workerStockDTOS.add(oldWorkerStockDTO);
-//                    }
                 }
-                if (CollectionUtil.isNotEmpty(workerStockDTOS)) {
+
+
+                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.setCustomerName(workerOrder.getUserName());
+                    salesCustomerPartsBean.setCustomerTel(workerOrder.getUserMobile());
+                    salesCustomerPartsBean.setRemark(workerOrder.getRemark());
+
+
+                    List<SalesCustomerPartsItemBean> salesCustomerPartsItemBeans = new ArrayList<>();
+
+                    for (WorkerOrderItem workerOrderItem : OUTSIDE) {
+                        SalesCustomerPartsItemBean salesCustomerPartsItemBean = new SalesCustomerPartsItemBean();
+
+                        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);
+
+                }
+
+
+
+                if (CollectionUtil.isNotEmpty(salesCustomerPartsBeans)) {
                     // 开始处理库存
-                    materialGoodsStockLogic.handleWorkerStock(workerStockDTOS);
+                    for (SalesCustomerPartsBean salesCustomerPartsBean : salesCustomerPartsBeans) {
+                        oldRefundManageLogic.add(salesCustomerPartsBean);
+                    }
+
                 }
+
             }
         } catch (Exception e) {
             log.error(workerOrder.getOrderId() + " 师傅配件扣自有库存失败: ", e);