Bläddra i källkod

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

‘linchangsheng’ 9 månader sedan
förälder
incheckning
231bd6ff2a
15 ändrade filer med 231 tillägg och 41 borttagningar
  1. 2 2
      mall-miniapp-service/src/main/java/com/gree/mall/miniapp/logic/material/parts/NewRefundManageLogic.java
  2. 11 5
      mall-miniapp-service/src/main/java/com/gree/mall/miniapp/logic/material/parts/WebsitPartsSalesOrderLogic.java
  3. 19 4
      mall-miniapp-service/src/main/java/com/gree/mall/miniapp/logic/material/stock/MaterialGoodsStockLogic.java
  4. 130 1
      mall-miniapp-service/src/main/resources/mapper/MaterialMapper.xml
  5. 2 3
      mall-server-api/src/main/java/com/gree/mall/manager/bean/material/manage/WebsitPartsChangeSalesVO.java
  6. 5 3
      mall-server-api/src/main/java/com/gree/mall/manager/logic/material/manage/WebsitPartsChangeSalesLogic.java
  7. 4 2
      mall-server-api/src/main/java/com/gree/mall/manager/logic/material/manage/WebsitPartsSalesLogic.java
  8. 11 7
      mall-server-api/src/main/java/com/gree/mall/manager/logic/material/manage/WebsitPartsSalesOrderLogic.java
  9. 2 0
      mall-server-api/src/main/java/com/gree/mall/manager/logic/material/manage/WebsitPurchaseRetLogic.java
  10. 19 4
      mall-server-api/src/main/java/com/gree/mall/manager/logic/material/stock/MaterialGoodsStockLogic.java
  11. 2 1
      mall-server-api/src/main/java/com/gree/mall/manager/logic/material/stock/WorkerStockLogic.java
  12. 7 2
      mall-server-api/src/main/java/com/gree/mall/manager/logic/material/worker/NewRefundManageLogic.java
  13. 4 2
      mall-server-api/src/main/java/com/gree/mall/manager/logic/material/worker/OldRefundManageInnerLogic.java
  14. 5 5
      mall-server-api/src/main/java/com/gree/mall/manager/schedule/NewPartsChangeSalesSchedule.java
  15. 8 0
      mall-server-api/src/main/resources/mapper/CommonMapper.xml

+ 2 - 2
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/logic/material/parts/NewRefundManageLogic.java

@@ -180,7 +180,7 @@ public class NewRefundManageLogic {
                 workerStockDTO.setGoodsStockUnit(refundManageItem.getGoodsStockUnit());
                 workerStockDTO.setPrice(BigDecimal.ZERO);
                 workerStockDTO.setRef(partsNewRefundManage.getApplyNo());
-                workerStockDTO.setRefType(PartsRefTypeEnum.NEW_REFUND.toString());
+                workerStockDTO.setRefType(PartsRefTypeEnum.NEW_REFUND.getRemark());
                 workerStockDTO.setPartsAttr(partsAttr1);
                 workerStockDTO.setChangeQty(refundManageItem.getQty());
                 workerStockDTO.setDirectFlag(DirectFlagEnum.SUB.getKey());
@@ -208,7 +208,7 @@ public class NewRefundManageLogic {
                 workerStockDTO.setGoodsStockUnit(refundManageItem.getGoodsStockUnit());
                 workerStockDTO.setPrice(BigDecimal.ZERO);
                 workerStockDTO.setRef(partsNewRefundManage.getApplyNo());
-                workerStockDTO.setRefType(PartsRefTypeEnum.NEW_REFUND.getKey());
+                workerStockDTO.setRefType(PartsRefTypeEnum.NEW_REFUND.getRemark());
                 workerStockDTO.setPartsAttr(partsAttr2);
                 workerStockDTO.setChangeQty(refundManageItem.getQty());
                 workerStockDTO.setDirectFlag(DirectFlagEnum.ADD.getKey());

+ 11 - 5
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/logic/material/parts/WebsitPartsSalesOrderLogic.java

@@ -15,6 +15,7 @@ import com.gree.mall.miniapp.enums.IsEnum;
 import com.gree.mall.miniapp.enums.IsYesNoEnum;
 import com.gree.mall.miniapp.enums.PayTypeEnum;
 import com.gree.mall.miniapp.enums.StateEnum;
+import com.gree.mall.miniapp.enums.base.BaseEnum;
 import com.gree.mall.miniapp.enums.material.*;
 import com.gree.mall.miniapp.exception.RemoteServiceException;
 import com.gree.mall.miniapp.logic.common.CommonLogic;
@@ -91,14 +92,14 @@ public class WebsitPartsSalesOrderLogic {
 
                 partsSalesOrderBean.setItemList(partsSalesOrderItemBeanList);
 
-                this.handleForwardShopAndWorkerStock(partsSalesOrderBean);
+                this.handleForwardWebsitAndWorkerStock(partsSalesOrderBean);
             }
 
             partsSalesOrder.updateById();
         }
     }
 
-    private void handleForwardShopAndWorkerStock(PartsSalesOrderBean partsSalesOrderBean) throws Exception {
+    private void handleForwardWebsitAndWorkerStock(PartsSalesOrderBean partsSalesOrderBean) throws Exception {
         // 扣减网点库存
         List<WebsitStockDTO> websitStockDTOList = this.getWebsitStock(partsSalesOrderBean, DirectFlagEnum.SUB);
         materialGoodsStockLogic.handleWebsitStock(websitStockDTOList);
@@ -108,7 +109,7 @@ public class WebsitPartsSalesOrderLogic {
             // 如果是快递并且销售类型为“服务人员”的单,需要增加师傅在途库存
             // 增加师傅在途库存
             List<WorkerStockDTO> workerStockDTOList = this.getWorkerStock(partsSalesOrderBean,
-                    PartsRefTypeEnum.SALES.toString(), null, PartsAttrEnum.WAY.toString());
+                    PartsRefTypeEnum.SALES.getRemark(), null, PartsAttrEnum.WAY.getKey());
 
             materialGoodsStockLogic.handleWorkerStock(workerStockDTOList);
         }
@@ -127,6 +128,7 @@ public class WebsitPartsSalesOrderLogic {
             websitStockDTO.setWebsitName(partsSalesOrderBean.getWebsitName());
             websitStockDTO.setSdate(new Date());
             websitStockDTO.setPartsWebsitId(item.getPartsWebsitId());
+            websitStockDTO.setGoodsType(WebsitGoodsTypeEnum.P.toString());
             websitStockDTO.setGoodsId(item.getPartsNumber());
             websitStockDTO.setGoodsName(item.getPartsName());
             websitStockDTO.setMaterialGroupName(item.getMaterialGroupName());
@@ -134,7 +136,9 @@ public class WebsitPartsSalesOrderLogic {
             websitStockDTO.setGoodsStockUnit(item.getGoodsStockUnit());
             websitStockDTO.setVoucherNo(partsSalesOrderBean.getId());
             websitStockDTO.setApplyNo(partsSalesOrderBean.getId());
-            websitStockDTO.setObj(PartsRefTypeEnum.SALES.getKey());
+            websitStockDTO.setRef(partsSalesOrderBean.getId());
+            websitStockDTO.setRefType(PartsRefTypeEnum.SALES.getRemark());
+            websitStockDTO.setObj(BaseEnum.keyToEnumNotNull(BuyPeopleEnum.class, partsSalesOrderBean.getBuyPeople()).getRemark());
             websitStockDTO.setPartsAttr(PartsAttrEnum.NEW.getKey());
             websitStockDTO.setChangeQty(item.getQty());
             websitStockDTO.setDirectFlag(directFlag.getKey());
@@ -185,6 +189,8 @@ public class WebsitPartsSalesOrderLogic {
             if (StringUtils.isNotBlank(partsAttr2)) {
                 WorkerStockDTO workerStockDTO = new WorkerStockDTO();
                 workerStockDTO.setIdentity(item.getIdentity());
+                workerStockDTO.setCompanyWechatId(partsSalesOrderBean.getCompanyWechatId());
+                workerStockDTO.setCompanyWechatName(partsSalesOrderBean.getCompanyWechatName());
                 workerStockDTO.setWorkerId(partsSalesOrderBean.getWorkerId());
                 workerStockDTO.setWorkerName(partsSalesOrderBean.getWorkerName());
                 workerStockDTO.setWebsitId(partsSalesOrderBean.getWebsitId());
@@ -573,7 +579,7 @@ public class WebsitPartsSalesOrderLogic {
             partsSalesOrderBean.setPushFlag(PartsPushFlagEnum.SALES.toString());
             partsSalesOrderBean.setPayFlag(PartsPayFlagEnum.PAY_TAKE.getKey());
             // 师傅在途库存转移到新件库存
-            List<WorkerStockDTO> workerWayStockDTOList = this.getWorkerStock(partsSalesOrderBean, PartsRefTypeEnum.SALES.toString(),
+            List<WorkerStockDTO> workerWayStockDTOList = this.getWorkerStock(partsSalesOrderBean, PartsRefTypeEnum.SALES.getRemark(),
                     PartsAttrEnum.WAY.getKey(), PartsAttrEnum.NEW.getKey());
             materialGoodsStockLogic.handleWorkerStock(workerWayStockDTOList);
 

+ 19 - 4
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/logic/material/stock/MaterialGoodsStockLogic.java

@@ -14,6 +14,7 @@ import com.gree.mall.miniapp.commonmapper.MaterialMapper;
 import com.gree.mall.miniapp.commonmapper.stock.MaterialGoodsStockCMapper;
 import com.gree.mall.miniapp.constant.Constant;
 import com.gree.mall.miniapp.enums.material.PartsPushFlagEnum;
+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.plus.entity.*;
@@ -330,7 +331,7 @@ public class MaterialGoodsStockLogic {
         List<WorkerStock> existWorkerStockList = materialGoodsStockCMapper.queryExistWorkerStockList(workerStockDTO.getCompanyWechatId()
                 , workerStockDTO.getWorkerId(), stockList);
         // 全部商品库存
-        Map<String, WorkerStock> existWorkerStockMap = this.createNotExistWorkerStock(stockList, existWorkerStockList);
+        Map<String, WorkerStock> existWorkerStockMap = this.createNotExistWorkerStock(workerStockDTO.getGoodsType(), stockList, existWorkerStockList);
         // 计算商品库存
         List<WorkerStockAcc> workerStockAccList = new ArrayList<>();
         this.computeWorkerStock(stockList, existWorkerStockMap, null, workerStockAccList);
@@ -347,20 +348,34 @@ public class MaterialGoodsStockLogic {
                                     List<WorkerStock> workerStockList, List<WorkerStockAcc> workerStockAccList) throws Exception {
         for (WorkerStockDTO workerStockDTO : stockList) {
             WorkerStock workerStock = existWorkerStockMap.get(workerStockDTO.getGoodsId());
+            if (workerStockDTO.getGoodsType().equals(WebsitGoodsTypeEnum.P.toString())) {
+                workerStock = existWorkerStockMap.get(workerStockDTO.getCompanyWechatId() + workerStockDTO.getWebsitId() + workerStockDTO.getPartsWebsitId() +  workerStockDTO.getGoodsId());
+            }
             WorkerStockAcc workerStockAcc = new WorkerStockAcc();
             workerStockDTO.computeWorkerStock(workerStock, workerStockAcc);
             workerStockAccList.add(workerStockAcc);
         }
     }
 
-    private Map<String, WorkerStock> createNotExistWorkerStock(List<WorkerStockDTO> stockList, List<WorkerStock> existWorkerStockList) {
+    private Map<String, WorkerStock> createNotExistWorkerStock(String goodsType, List<WorkerStockDTO> stockList, List<WorkerStock> existWorkerStockList) {
         // 已存在的商品库存转成Map
-        Map<String, WorkerStock> existShopStockMap = existWorkerStockList.stream()
-                .collect(Collectors.toMap(WorkerStock::getGoodsId, Function.identity()));
+        Map<String, WorkerStock> existShopStockMap;
+
+        if (goodsType.equals(WebsitGoodsTypeEnum.M.toString())) {
+            existShopStockMap = existWorkerStockList.stream()
+                    .collect(Collectors.toMap(WorkerStock::getGoodsId, Function.identity()));
+        } else {
+            existShopStockMap = existWorkerStockList.stream()
+                    .collect(Collectors.toMap(o -> o.getCompanyWechatId() + o.getWebsitId() + o.getPartsWebsitId() +  o.getGoodsId(), Function.identity()));
+        }
 
         // 找出不存在的商品库存并存入新商品库存List
         for (WorkerStockDTO workerStockDTO : stockList) {
             WorkerStock workerStock = existShopStockMap.get(workerStockDTO.getGoodsId());
+            if (goodsType.equals(WebsitGoodsTypeEnum.P.toString())) {
+                workerStock = existShopStockMap.get(workerStockDTO.getCompanyWechatId() + workerStockDTO.getWebsitId() + workerStockDTO.getPartsWebsitId() +  workerStockDTO.getGoodsId());
+            }
+
             if (Objects.isNull(workerStock)) {
                 workerStock = workerStockDTO.createWorkerStock();
                 existShopStockMap.put(workerStockDTO.getGoodsId(), workerStock);

+ 130 - 1
mall-miniapp-service/src/main/resources/mapper/MaterialMapper.xml

@@ -2,6 +2,86 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.gree.mall.miniapp.commonmapper.MaterialMapper">
 
+    <resultMap id="newRefundManageAppList" type="com.gree.mall.miniapp.bean.material.parts.NewRefundManageBean">
+        <id column="applyNo" jdbcType="VARCHAR" property="applyNo"/>
+        <result column="sales_Id" jdbcType="VARCHAR" property="salesId"/>
+        <result column="apply_category" jdbcType="VARCHAR" property="applyCategory"/>
+        <result column="apply_category_name" jdbcType="VARCHAR" property="applyCategoryName"/>
+        <result column="apply_type" jdbcType="VARCHAR" property="applyType"/>
+        <result column="apply_type_name" jdbcType="VARCHAR" property="applyTypeName"/>
+        <result column="refund_mode" jdbcType="VARCHAR" property="refundMode"/>
+        <result column="refund_mode_name" jdbcType="VARCHAR" property="refundModeName"/>
+        <result column="express_no" jdbcType="VARCHAR" property="expressNo"/>
+        <result column="receive_address" jdbcType="VARCHAR" property="receiveAddress"/>
+        <result column="receive_websit_id" jdbcType="VARCHAR" property="receiveWebsitId"/>
+        <result column="receive_websit_Name" jdbcType="VARCHAR" property="receiveWebsitName"/>
+        <result column="receive_parts_websit_id" jdbcType="VARCHAR" property="receivePartsWebsitId"/>
+        <result column="websit_Address" jdbcType="VARCHAR" property="websitAddress"/>
+        <result column="identity" jdbcType="VARCHAR" property="identity"/>
+        <result column="worker_id" jdbcType="VARCHAR" property="workerId"/>
+        <result column="worker_name" jdbcType="VARCHAR" property="workerName"/>
+        <result column="refund_amount" jdbcType="DECIMAL" property="refundAmount"/>
+        <result column="refund_amount_mode" jdbcType="VARCHAR" property="refundAmountMode"/>
+        <result column="remark" jdbcType="VARCHAR" property="remark"/>
+        <result column="examine_remark" jdbcType="VARCHAR" property="examineRemark"/>
+        <result column="flag" jdbcType="VARCHAR" property="flag"/>
+        <result column="flag_name" jdbcType="VARCHAR" property="flagName"/>
+        <result column="create_by" jdbcType="VARCHAR" property="createBy"/>
+        <result column="create_time" jdbcType="DATE" property="createTime"/>
+        <result column="update_by" jdbcType="VARCHAR" property="updateBy"/>
+        <result column="update_time" jdbcType="DATE" property="updateTime"/>
+        <result column="submit_by" jdbcType="VARCHAR" property="submitBy"/>
+        <result column="submit_time" jdbcType="DATE" property="submitTime"/>
+        <result column="examine_by" jdbcType="VARCHAR" property="examineBy"/>
+        <result column="examine_time" jdbcType="DATE" property="examineTime"/>
+        <result column="refunded_by" jdbcType="VARCHAR" property="refundedBy"/>
+        <result column="refunded_time" jdbcType="DATE" property="refundedTime"/>
+        <collection property="newRefundManageItemBeanList" ofType="com.gree.mall.miniapp.bean.material.parts.NewRefundManageItemBean"
+                    column="applyNo" javaType="java.util.List"
+                    select="selectNewRefundManageItemByApplyNo">
+        </collection>
+        <collection property="partsNewRefundManageRecordList" ofType="com.gree.mall.miniapp.bean.material.parts.NewRefundManageRecordBean"
+                    column="applyNo" javaType="java.util.List"
+                    select="selectNewRefundManageRecordByApplyNo">
+        </collection>
+    </resultMap>
+
+    <resultMap id="newRefundManageItemResultMap" type="com.gree.mall.miniapp.bean.material.parts.NewRefundManageItemBean">
+        <id column="id" jdbcType="VARCHAR" property="id"/>
+        <result column="apply_no" jdbcType="VARCHAR" property="applyNo"/>
+        <result column="sales_Id" jdbcType="VARCHAR" property="salesId"/>
+        <result column="parts_number" jdbcType="VARCHAR" property="partsNumber"/>
+        <result column="parts_nName" jdbcType="VARCHAR" property="partsName"/>
+        <result column="material_group_name" jdbcType="VARCHAR" property="materialGroupName"/>
+        <result column="goods_stock_unit" jdbcType="VARCHAR" property="goodsStockUnit"/>
+        <result column="qty" jdbcType="DECIMAL" property="qty"/>
+        <result column="remark" jdbcType="VARCHAR" property="remark"/>
+        <result column="image" jdbcType="VARCHAR" property="image"/>
+        <result column="custom_no" jdbcType="VARCHAR" property="customNo"/>
+        <result column="create_time" jdbcType="DATE" property="createTime"/>
+    </resultMap>
+    <resultMap id="newRefundManageRecordResultMap" type="com.gree.mall.miniapp.bean.material.parts.NewRefundManageRecordBean">
+        <id column="id" jdbcType="VARCHAR" property="id"/>
+        <result column="item_id" jdbcType="VARCHAR" property="itemId"/>
+        <result column="apply_no" jdbcType="VARCHAR" property="applyNo"/>
+        <result column="sales_Id" jdbcType="VARCHAR" property="salesId"/>
+        <result column="parts_number" jdbcType="VARCHAR" property="partsNumber"/>
+        <result column="parts_name" jdbcType="VARCHAR" property="partsName"/>
+        <result column="sales_price" jdbcType="DECIMAL" property="salesPrice"/>
+        <result column="market_price" jdbcType="DECIMAL" property="marketPrice"/>
+        <result column="second_price" jdbcType="DECIMAL" property="secondPrice"/>
+        <result column="qty" jdbcType="DECIMAL" property="qty"/>
+        <result column="total_amount" jdbcType="DECIMAL" property="totalAmount"/>
+        <result column="refund_amount" jdbcType="DECIMAL" property="refundAmount"/>
+        <result column="refund_time" jdbcType="DATE" property="refundTime"/>
+        <result column="refund_state" jdbcType="VARCHAR" property="refundState"/>
+        <result column="refund_state_name" jdbcType="VARCHAR" property="refundStateName"/>
+        <result column="refund_mch_no" jdbcType="VARCHAR" property="refundMchNo"/>
+        <result column="refund_account_no" jdbcType="VARCHAR" property="refundAccountNo"/>
+        <result column="refund_serialnumber" jdbcType="VARCHAR" property="refundSerialnumber"/>
+        <result column="create_time" jdbcType="DATE" property="createTime"/>
+    </resultMap>
+
     <select id="buyList" resultType="com.gree.mall.miniapp.bean.material.SalesOrderBean">
         SELECT
             a.*
@@ -175,7 +255,7 @@
             a.norm_id = #{goodsId}
     </select>
 
-    <select id="appList" resultType="com.gree.mall.miniapp.bean.material.parts.NewRefundManageBean">
+    <select id="appList" resultMap="newRefundManageAppList">
         SELECT
             a.company_wechat_id,
             a.company_wechat_name,
@@ -698,5 +778,54 @@
         order by distance asc, websit_id
     </select>
 
+    <select id="selectNewRefundManageItemByApplyNo" resultMap="newRefundManageItemResultMap">
+        SELECT
+            id,
+            apply_no,
+            sales_id,
+            parts_number,
+            parts_name,
+            material_group_name,
+            goods_stock_unit,
+            qty,
+            remark,
+            image,
+            custom_no,
+            create_time
+        FROM
+            websit_parts_new_refund_manage_item
+        WHERE
+            apply_no = #{applyNo}
+    </select>
 
+    <select id="selectNewRefundManageRecordByApplyNo" resultMap="newRefundManageRecordResultMap">
+        SELECT
+            id,
+            item_id,
+            apply_no,
+            sales_id,
+            sales_item_id,
+            parts_number,
+            parts_name,
+            sales_price,
+            market_price,
+            second_price,
+            qty,
+            total_amount,
+            refund_amount,
+            refund_time,
+            refund_state,
+            CASE refund_state WHEN 'OK' THEN '成功'
+                             WHEN 'FAIL' THEN '失败'
+                             WHEN 'WAIT' THEN '等待'
+                             ELSE '' END AS refundStateName,
+            refund_mch_no,
+            refund_account_no,
+            refund_serialnumber,
+            create_time
+        FROM
+            websit_parts_new_refund_manage_record
+        WHERE
+            apply_no = #{applyNo}
+    </select>
 </mapper>

+ 2 - 3
mall-server-api/src/main/java/com/gree/mall/manager/bean/material/manage/WebsitPartsChangeSalesVO.java

@@ -1,8 +1,8 @@
 package com.gree.mall.manager.bean.material.manage;
 
-import com.baomidou.mybatisplus.annotation.TableField;
 import com.gree.mall.manager.annotation.ZfireField;
 import com.gree.mall.manager.enums.material.PartsOrderFlagEnum;
+import com.gree.mall.manager.enums.material.PartsRefTypeEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -22,7 +22,7 @@ public class WebsitPartsChangeSalesVO {
     private String salesId;
 
     @ApiModelProperty(value = "转单类型")
-    private String changeType;
+    private PartsRefTypeEnum changeType;
 
     @ApiModelProperty(value = "总金额")
     private BigDecimal totalAmount;
@@ -72,7 +72,6 @@ public class WebsitPartsChangeSalesVO {
     private String updateBy;
 
     @ApiModelProperty(value = "更新时间")
-    @TableField("updateTime")
     private Date updateTime;
 
     @ApiModelProperty(value = "提交人")

+ 5 - 3
mall-server-api/src/main/java/com/gree/mall/manager/logic/material/manage/WebsitPartsChangeSalesLogic.java

@@ -92,7 +92,7 @@ public class WebsitPartsChangeSalesLogic {
 
         if (flag.equals(PartsOrderFlagEnum.AGREE.getKey())) {
             // 审核通过 师傅临占库存减 转销售库存加
-            List<WorkerStockDTO> workerStockDTOList = this.createWorkerStockDTO(partsChangeSales, partsChangeSalesItems, PartsRefTypeEnum.CHANGE_SALES.getKey(),
+            List<WorkerStockDTO> workerStockDTOList = this.createWorkerStockDTO(partsChangeSales, partsChangeSalesItems, PartsRefTypeEnum.CHANGE_SALES.getRemark(),
                     PartsAttrEnum.TEMP_NEW.getKey(), PartsAttrEnum.CHANGE_NEW.getKey());
             materialGoodsStockLogic.handleWorkerStock(workerStockDTOList);
         } else {
@@ -153,8 +153,8 @@ public class WebsitPartsChangeSalesLogic {
                 .insert();
 
         // 审核不通过延期 师傅临占库存减 新件库存加
-        List<WorkerStockDTO> workerStockDTOList = this.createWorkerStockDTO(partsChangeSales, partsChangeSalesItems, PartsRefTypeEnum.CHANGE_SALES.toString(),
-                PartsAttrEnum.TEMP_NEW.getKey(), PartsAttrEnum.NEW.getKey());
+        List<WorkerStockDTO> workerStockDTOList = this.createWorkerStockDTO(partsChangeSales, partsChangeSalesItems,
+                PartsRefTypeEnum.CHANGE_SALES.getRemark(), PartsAttrEnum.TEMP_NEW.getKey(), PartsAttrEnum.NEW.getKey());
         materialGoodsStockLogic.handleWorkerStock(workerStockDTOList);
     }
 
@@ -175,6 +175,7 @@ public class WebsitPartsChangeSalesLogic {
                 workerStockDTO.setWebsitName(partsChangeSales.getWebsitName());
                 workerStockDTO.setPartsWebsitId(partsChangeSales.getPartsWebsitId());
                 workerStockDTO.setSdate(DateUtil.date());
+                workerStockDTO.setGoodsType(WebsitGoodsTypeEnum.P.getKey());
                 workerStockDTO.setGoodsId(partsChangeSalesItem.getPartsNumber());
                 workerStockDTO.setGoodsName(partsChangeSalesItem.getPartsName());
                 workerStockDTO.setMaterialGroupName(partsChangeSalesItem.getMaterialGroupName());
@@ -204,6 +205,7 @@ public class WebsitPartsChangeSalesLogic {
                 workerStockDTO.setWebsitName(partsChangeSales.getWebsitName());
                 workerStockDTO.setPartsWebsitId(partsChangeSales.getPartsWebsitId());
                 workerStockDTO.setSdate(DateUtil.date());
+                workerStockDTO.setGoodsType(WebsitGoodsTypeEnum.P.getKey());
                 workerStockDTO.setGoodsId(partsChangeSalesItem.getPartsNumber());
                 workerStockDTO.setGoodsName(partsChangeSalesItem.getPartsName());
                 workerStockDTO.setMaterialGroupName(partsChangeSalesItem.getMaterialGroupName());

+ 4 - 2
mall-server-api/src/main/java/com/gree/mall/manager/logic/material/manage/WebsitPartsSalesLogic.java

@@ -105,8 +105,8 @@ public class WebsitPartsSalesLogic {
         websitPartsChangeSalesItemService.saveBatch(partsChangeSalesItemList);
 
         // 师傅新件库存减 临占新件库存加
-        List<WorkerStockDTO> workerStockDTOList = this.createWorkerStockDTO(partsChangeSales, partsChangeSalesItemList, PartsRefTypeEnum.CHANGE_SALES.toString(),
-                PartsAttrEnum.NEW.getKey(), PartsAttrEnum.TEMP_NEW.getKey());
+        List<WorkerStockDTO> workerStockDTOList = this.createWorkerStockDTO(partsChangeSales, partsChangeSalesItemList,
+                PartsRefTypeEnum.CHANGE_SALES.getRemark(), PartsAttrEnum.NEW.getKey(), PartsAttrEnum.TEMP_NEW.getKey());
         materialGoodsStockLogic.handleWorkerStock(workerStockDTOList);
     }
 
@@ -127,6 +127,7 @@ public class WebsitPartsSalesLogic {
                 workerStockDTO.setWebsitName(partsChangeSales.getWebsitName());
                 workerStockDTO.setPartsWebsitId(partsChangeSales.getPartsWebsitId());
                 workerStockDTO.setSdate(DateUtil.date());
+                workerStockDTO.setGoodsType(WebsitGoodsTypeEnum.P.getKey());
                 workerStockDTO.setGoodsId(partsChangeSalesItem.getPartsNumber());
                 workerStockDTO.setGoodsName(partsChangeSalesItem.getPartsName());
                 workerStockDTO.setMaterialGroupName(partsChangeSalesItem.getMaterialGroupName());
@@ -156,6 +157,7 @@ public class WebsitPartsSalesLogic {
                 workerStockDTO.setWebsitName(partsChangeSales.getWebsitName());
                 workerStockDTO.setPartsWebsitId(partsChangeSales.getPartsWebsitId());
                 workerStockDTO.setSdate(DateUtil.date());
+                workerStockDTO.setGoodsType(WebsitGoodsTypeEnum.P.getKey());
                 workerStockDTO.setGoodsId(partsChangeSalesItem.getPartsNumber());
                 workerStockDTO.setGoodsName(partsChangeSalesItem.getPartsName());
                 workerStockDTO.setMaterialGroupName(partsChangeSalesItem.getMaterialGroupName());

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

@@ -592,8 +592,8 @@ public class WebsitPartsSalesOrderLogic {
                 && BuyPeopleEnum.WORKER.getKey().equals(partsSalesOrderBean.getBuyPeople())) {
             // 如果是快递并且销售类型为“服务人员”的单,需要减师傅在途库存
             // 减师傅在途库存
-            List<WorkerStockDTO> workerStockDTOList = this.getWorkerStock(partsSalesOrderBean, PartsRefTypeEnum.SALES.getRemark(),
-                    PartsAttrEnum.WAY.getKey(), null);
+            List<WorkerStockDTO> workerStockDTOList = this.getWorkerStock(partsSalesOrderBean,
+                    PartsRefTypeEnum.SALES.getRemark(), PartsAttrEnum.WAY.getKey(), null);
             materialGoodsStockLogic.handleWorkerStock(workerStockDTOList);
         }
     }
@@ -783,12 +783,16 @@ public class WebsitPartsSalesOrderLogic {
             throw new RemoteServiceException("该订单已提货,不能取消: " + id);
         }
 
-        WebsitSalesPayOrder salesPayList = getPayList(partsSalesOrderBean);
+        WebsitSalesPayOrder salesPayList = null;
 
-        if (Objects.nonNull(salesPayList)) {
-            // 有支付记录,共用退款方法
-            this.commonRefundAmountMethod(partsSalesOrderBean);
+        if (partsSalesOrderBean.getPayType().equals(PayTypeEnum.ALLINPAY.getKey())) {
+            salesPayList = getPayList(partsSalesOrderBean);
+            if (Objects.nonNull(salesPayList)) {
+                // 有支付记录,共用退款方法
+                this.commonRefundAmountMethod(partsSalesOrderBean);
+            }
         }
+
         if (partsSalesOrderBean.getIsApply().equals(IsEnum.N.getValue())) {
             if ((PartsOrderStatusEnum.SUBMIT.getKey().equals(partsSalesOrderBean.getStatus()) && Objects.nonNull(salesPayList))
                     || PartsOrderStatusEnum.PAYED.getKey().equals(partsSalesOrderBean.getStatus())) {
@@ -867,11 +871,11 @@ public class WebsitPartsSalesOrderLogic {
                 workerStockDTO.setIdentity(item.getIdentity());
                 workerStockDTO.setWorkerId(partsSalesOrderBean.getWorkerId());
                 workerStockDTO.setWorkerName(partsSalesOrderBean.getWorkerName());
-                workerStockDTO.setGoodsType(WebsitGoodsTypeEnum.P.getKey());
                 workerStockDTO.setWebsitId(partsSalesOrderBean.getWebsitId());
                 workerStockDTO.setWebsitName(partsSalesOrderBean.getWebsitName());
                 workerStockDTO.setSdate(DateUtil.date());
                 workerStockDTO.setPartsWebsitId(item.getPartsWebsitId());
+                workerStockDTO.setGoodsType(WebsitGoodsTypeEnum.P.getKey());
                 workerStockDTO.setGoodsId(item.getPartsNumber());
                 workerStockDTO.setGoodsName(item.getPartsName());
                 workerStockDTO.setMaterialGroupName(item.getMaterialGroupName());

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

@@ -266,6 +266,8 @@ public class WebsitPurchaseRetLogic {
                 .set(WebsitPurchaseRet::getFlag, flag.getKey())
                 .set(WebsitPurchaseRet::getConfirmBy, purchaseRet.getConfirmBy())
                 .set(WebsitPurchaseRet::getConfirmTime, purchaseRet.getConfirmTime())
+                .set(WebsitPurchaseRet::getStorageId, purchaseRet.getStorageId())
+                .set(WebsitPurchaseRet::getStorageName, purchaseRet.getStorageName())
                 .eq(WebsitPurchaseRet::getPurchaseRetId, purchaseRetId)
                 .update();
 

+ 19 - 4
mall-server-api/src/main/java/com/gree/mall/manager/logic/material/stock/MaterialGoodsStockLogic.java

@@ -6,6 +6,7 @@ import com.gree.mall.manager.bean.material.stock.WorkerStockDTO;
 import com.gree.mall.manager.commonmapper.MaterialGoodsStockCMapper;
 import com.gree.mall.manager.constant.Constant;
 import com.gree.mall.manager.enums.material.DirectFlagEnum;
+import com.gree.mall.manager.enums.material.WebsitGoodsTypeEnum;
 import com.gree.mall.manager.exception.RemoteServiceException;
 import com.gree.mall.manager.plus.entity.*;
 import com.gree.mall.manager.plus.service.*;
@@ -141,7 +142,7 @@ public class MaterialGoodsStockLogic {
         List<WorkerStock> existWorkerStockList = materialGoodsStockCMapper.queryExistWorkerStockList(workerStockDTO.getCompanyWechatId(),
                 workerStockDTO.getWorkerId(), stockList);
         // 全部商品库存
-        Map<String, WorkerStock> existWorkerStockMap = this.createNotExistWorkerStock(stockList, existWorkerStockList);
+        Map<String, WorkerStock> existWorkerStockMap = this.createNotExistWorkerStock(workerStockDTO.getGoodsType(), stockList, existWorkerStockList);
         // 计算商品库存
         List<WorkerStockAcc> workerStockAccList = new ArrayList<>();
         this.computeWorkerStock(stockList, existWorkerStockMap, workerStockAccList);
@@ -158,20 +159,34 @@ public class MaterialGoodsStockLogic {
                                     List<WorkerStockAcc> workerStockAccList) throws Exception {
         for (WorkerStockDTO workerStockDTO : stockList) {
             WorkerStock workerStock = existWorkerStockMap.get(workerStockDTO.getGoodsId());
+            if (workerStockDTO.getGoodsType().equals(WebsitGoodsTypeEnum.P.getKey())) {
+                workerStock = existWorkerStockMap.get(workerStockDTO.getCompanyWechatId() + workerStockDTO.getWebsitId() + workerStockDTO.getPartsWebsitId() +  workerStockDTO.getGoodsId());
+            }
             WorkerStockAcc workerStockAcc = new WorkerStockAcc();
             workerStockDTO.computeWorkerStock(workerStock, workerStockAcc);
             workerStockAccList.add(workerStockAcc);
         }
     }
 
-    private Map<String, WorkerStock> createNotExistWorkerStock(List<WorkerStockDTO> stockList, List<WorkerStock> existWorkerStockList) {
+    private Map<String, WorkerStock> createNotExistWorkerStock(String goodsType, List<WorkerStockDTO> stockList, List<WorkerStock> existWorkerStockList) {
         // 已存在的商品库存转成Map
-        Map<String, WorkerStock> existShopStockMap = existWorkerStockList.stream()
-                .collect(Collectors.toMap(WorkerStock::getGoodsId, Function.identity()));
+        Map<String, WorkerStock> existShopStockMap;
+
+        if (goodsType.equals(WebsitGoodsTypeEnum.M.getKey())) {
+            existShopStockMap = existWorkerStockList.stream()
+                    .collect(Collectors.toMap(WorkerStock::getGoodsId, Function.identity()));
+        } else {
+            existShopStockMap = existWorkerStockList.stream()
+                    .collect(Collectors.toMap(o -> o.getCompanyWechatId() + o.getWebsitId() + o.getPartsWebsitId() +  o.getGoodsId(), Function.identity()));
+        }
 
         // 找出不存在的商品库存并存入新商品库存List
         for (WorkerStockDTO workerStockDTO : stockList) {
             WorkerStock workerStock = existShopStockMap.get(workerStockDTO.getGoodsId());
+            if (goodsType.equals(WebsitGoodsTypeEnum.P.getKey())) {
+                workerStock = existShopStockMap.get(workerStockDTO.getCompanyWechatId() + workerStockDTO.getWebsitId() + workerStockDTO.getPartsWebsitId() +  workerStockDTO.getGoodsId());
+            }
+
             if (Objects.isNull(workerStock)) {
                 workerStock = workerStockDTO.createWorkerStock();
                 existShopStockMap.put(workerStockDTO.getGoodsId(), workerStock);

+ 2 - 1
mall-server-api/src/main/java/com/gree/mall/manager/logic/material/stock/WorkerStockLogic.java

@@ -89,8 +89,9 @@ public class WorkerStockLogic {
      * @return
      */
     public IPage<WorkerStockPVO> workerStockPList(ZfireParamBean zfireParamBean) {
+        final AdminUserCom adminUser = commonLogic.getAdminUser();
         zfireParamBean.setCompanyWechatId(commonLogic.getAdminUser().getCompanyWechatId());
-        FieldUtils.supplyParam(zfireParamBean, WorkerStockPVO.class);
+        FieldUtils.supplyParam(zfireParamBean, WorkerStockPVO.class, adminUser);
         IPage<WorkerStockPVO> page = commonMapper.workerStockPList(new Page(zfireParamBean.getPageNum(), zfireParamBean.getPageSize()), zfireParamBean);
         return page;
     }

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

@@ -202,13 +202,14 @@ public class NewRefundManageLogic {
                 workerStockDTO.setWebsitName(partsNewRefundManage.getReceiveWebsitName());
                 workerStockDTO.setPartsWebsitId(partsNewRefundManage.getReceivePartsWebsitId());
                 workerStockDTO.setSdate(DateUtil.date());
+                workerStockDTO.setGoodsType(WebsitGoodsTypeEnum.P.getKey());
                 workerStockDTO.setGoodsId(refundManageItem.getPartsNumber());
                 workerStockDTO.setGoodsName(refundManageItem.getPartsName());
                 workerStockDTO.setMaterialGroupName(refundManageItem.getMaterialGroupName());
                 workerStockDTO.setGoodsStockUnit(refundManageItem.getGoodsStockUnit());
                 workerStockDTO.setPrice(BigDecimal.ZERO);
                 workerStockDTO.setRef(partsNewRefundManage.getApplyNo());
-                workerStockDTO.setRefType(PartsRefTypeEnum.NEW_REFUND.getKey());
+                workerStockDTO.setRefType(PartsRefTypeEnum.NEW_REFUND.getRemark());
                 workerStockDTO.setPartsAttr(partsAttr1);
                 workerStockDTO.setChangeQty(refundManageItem.getQty());
                 workerStockDTO.setDirectFlag(DirectFlagEnum.SUB.getKey());
@@ -229,13 +230,14 @@ public class NewRefundManageLogic {
                 workerStockDTO.setWebsitName(partsNewRefundManage.getReceiveWebsitName());
                 workerStockDTO.setPartsWebsitId(partsNewRefundManage.getReceivePartsWebsitId());
                 workerStockDTO.setSdate(DateUtil.date());
+                workerStockDTO.setGoodsType(WebsitGoodsTypeEnum.P.getKey());
                 workerStockDTO.setGoodsId(refundManageItem.getPartsNumber());
                 workerStockDTO.setGoodsName(refundManageItem.getPartsName());
                 workerStockDTO.setMaterialGroupName(refundManageItem.getMaterialGroupName());
                 workerStockDTO.setGoodsStockUnit(refundManageItem.getGoodsStockUnit());
                 workerStockDTO.setPrice(BigDecimal.ZERO);
                 workerStockDTO.setRef(partsNewRefundManage.getApplyNo());
-                workerStockDTO.setRefType(PartsRefTypeEnum.NEW_REFUND.getKey());
+                workerStockDTO.setRefType(PartsRefTypeEnum.NEW_REFUND.getRemark());
                 workerStockDTO.setPartsAttr(partsAttr2);
                 workerStockDTO.setChangeQty(refundManageItem.getQty());
                 workerStockDTO.setDirectFlag(DirectFlagEnum.ADD.getKey());
@@ -266,12 +268,15 @@ public class NewRefundManageLogic {
             websitStockDTO.setWebsitName(partsNewRefundManage.getReceiveWebsitName());
             websitStockDTO.setSdate(partsNewRefundManage.getRefundedTime());
             websitStockDTO.setPartsWebsitId(partsNewRefundManage.getReceivePartsWebsitId());
+            websitStockDTO.setGoodsType(WebsitGoodsTypeEnum.P.getKey());
             websitStockDTO.setGoodsId(partsNewRefundManageItem.getPartsNumber());
             websitStockDTO.setGoodsName(partsNewRefundManageItem.getPartsName());
             websitStockDTO.setPrice(BigDecimal.ZERO);
             websitStockDTO.setMaterialGroupName(partsNewRefundManageItem.getMaterialGroupName());
             websitStockDTO.setGoodsStockUnit(partsNewRefundManageItem.getGoodsStockUnit());
             websitStockDTO.setVoucherNo(partsNewRefundManage.getApplyNo());
+            websitStockDTO.setRef(partsNewRefundManage.getApplyNo());
+            websitStockDTO.setRefType(PartsRefTypeEnum.NEW_REFUND.getRemark());
             websitStockDTO.setApplyNo(partsNewRefundManage.getApplyNo());
             websitStockDTO.setObj(BaseEnum.keyToEnumNotNull(PartsRefundApplyTypeEnum.class, partsNewRefundManage.getApplyType()).getRemark());
             websitStockDTO.setPartsAttr(PartsAttrEnum.NEW.toString());

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

@@ -47,8 +47,8 @@ public class OldRefundManageInnerLogic {
                 .updateById();
 
         String refType = PartsRepairFlagEnum.INNER.getKey().equals(partsOldRefundManage.getRepairFlag()) ?
-                PartsRefTypeEnum.OLD_REFUND.getKey() :
-                PartsRefTypeEnum.OUTSIDE_TO_SALES.getKey();
+                PartsRefTypeEnum.OLD_REFUND.getRemark() :
+                PartsRefTypeEnum.OUTSIDE_TO_SALES.getRemark();
         // 提交状态时 旧件库存减 临占件库存加
         List<WebsitPartsOldRefundManageItem> partsOldRefundManageItems = websitPartsOldRefundManageItemService.lambdaQuery()
                 .eq(WebsitPartsOldRefundManageItem::getApplyNo, partsOldRefundManage.getApplyNo())
@@ -79,6 +79,7 @@ public class OldRefundManageInnerLogic {
                 workerStockDTO.setWebsitName(partsOldRefundManage.getReceiveWebsitName());
                 workerStockDTO.setPartsWebsitId(partsOldRefundManage.getReceivePartsWebsitId());
                 workerStockDTO.setSdate(DateUtil.date());
+                workerStockDTO.setGoodsType(WebsitGoodsTypeEnum.P.getKey());
                 workerStockDTO.setGoodsId(refundManageItem.getNewPartsNumber());
                 workerStockDTO.setGoodsName(refundManageItem.getNewPartsName());
                 workerStockDTO.setMaterialGroupName(refundManageItem.getNewMaterialGroupName());
@@ -108,6 +109,7 @@ public class OldRefundManageInnerLogic {
                 workerStockDTO.setWebsitName(partsOldRefundManage.getReceiveWebsitName());
                 workerStockDTO.setPartsWebsitId(partsOldRefundManage.getReceivePartsWebsitId());
                 workerStockDTO.setSdate(DateUtil.date());
+                workerStockDTO.setGoodsType(WebsitGoodsTypeEnum.P.getKey());
                 workerStockDTO.setGoodsId(refundManageItem.getNewPartsNumber());
                 workerStockDTO.setGoodsName(refundManageItem.getNewPartsName());
                 workerStockDTO.setMaterialGroupName(refundManageItem.getNewMaterialGroupName());

+ 5 - 5
mall-server-api/src/main/java/com/gree/mall/manager/schedule/NewPartsChangeSalesSchedule.java

@@ -50,12 +50,12 @@ public class NewPartsChangeSalesSchedule {
     @Resource
     RedisLockRegistry redisLockRegistry;
 
-    @Scheduled(cron = "0 0 01 * * ?")
-//    @Scheduled(initialDelay = 5000, fixedDelay = 30000)
+//    @Scheduled(cron = "0 0 01 * * ?")
+    @Scheduled(initialDelay = 5000, fixedDelay = 30000)
     private void newPartsToSalesTasks() throws InterruptedException {
-        if (profiles.equals("dev") || !DateUtil.formatDateTime(DateUtil.date()).contains(" 01:0")) {
-            return;
-        }
+//        if (profiles.equals("dev") || !DateUtil.formatDateTime(DateUtil.date()).contains(" 01:0")) {
+//            return;
+//        }
 
         Lock obtain = redisLockRegistry.obtain(Constant.RedisPrefix.NEW_CHANGE + "add");
 

+ 8 - 0
mall-server-api/src/main/resources/mapper/CommonMapper.xml

@@ -246,6 +246,14 @@
         join websit_goods b on a.goods_id = b.goods_code
         left join user e on e.worker_number = a.worker_id
           ${ex.query}
+        <if test="ex.adminWebsitIds != null and ex.adminWebsitIds.size > 0">
+            AND (
+            a.websit_id IN
+            <foreach item="item" index="index" collection="ex.adminWebsitIds" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+            )
+        </if>
         and a.goods_type='P'
         order by a.id desc
     </select>