|
@@ -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);
|