Răsfoiți Sursa

采购付款添加待退款金额

yzc 1 an în urmă
părinte
comite
34c294f571

+ 1 - 2
hx-iot/src/main/java/com/fjhx/iot/listener/DtaListener.java

@@ -23,7 +23,6 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
-import javax.annotation.PostConstruct;
 import javax.jms.JMSException;
 import javax.jms.Message;
 import javax.jms.MessageConsumer;
@@ -52,7 +51,7 @@ public class DtaListener {
 
     public static final Map<Long, MessageConsumer> listenerMap = new ConcurrentHashMap<>();
 
-    @PostConstruct
+//    @PostConstruct
     public void listener() {
 
         TenantHolder.setIgnore(true);

+ 31 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/AbnormalDetailsBo.java

@@ -0,0 +1,31 @@
+package com.fjhx.purchase.entity;
+
+import com.ruoyi.common.core.domain.BasePo;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+
+/**
+ * <p>
+ * 异常处理详情
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-11
+ */
+@Getter
+@Setter
+public class AbnormalDetailsBo extends BasePo {
+
+    /**
+     * 退款金额
+     */
+    private BigDecimal refundAmount;
+
+    /**
+     * 采购id
+     */
+    private Long purchaseId;
+
+}

+ 5 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/purchase/po/PurchaseRefundRecord.java

@@ -46,4 +46,9 @@ public class PurchaseRefundRecord extends BasePo {
      */
     private String refundAccount;
 
+    /**
+     * 退款类型 退款类型 0普通退款 1异常那边来的退款
+     */
+    private Integer refundType;
+
 }

+ 5 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/purchase/vo/PurchaseVo.java

@@ -49,4 +49,9 @@ public class PurchaseVo extends Purchase {
      */
     private Integer isTransit;
 
+    /**
+     * 待退款金额 异常那边过来的
+     */
+    private BigDecimal waitRefundAmount;
+
 }

+ 5 - 0
hx-purchase/src/main/java/com/fjhx/purchase/service/WdlyService.java

@@ -1,5 +1,6 @@
 package com.fjhx.purchase.service;
 
+import com.fjhx.purchase.entity.AbnormalDetailsBo;
 import com.fjhx.purchase.entity.deliver.DeliverGoodsDetailsPo;
 import com.fjhx.purchase.entity.deliver.DeliverGoodsPo;
 import com.fjhx.purchase.entity.purchase.vo.PurchaseVo;
@@ -7,6 +8,7 @@ import com.fjhx.purchase.entity.purchase.vo.PurchaseVo;
 import java.util.List;
 
 public interface WdlyService {
+
     /**
      * 修改发货记录为到货
      */
@@ -22,4 +24,7 @@ public interface WdlyService {
     void addAbnormalInfo(Long linkId, String linkCode, Long deliverGoodsId);
 
     PurchaseVo arrivalDetail(Long purchaseId);
+
+    List<AbnormalDetailsBo> getAbnormalDetails(List<Long>purchaseIds);
+
 }

+ 25 - 1
hx-purchase/src/main/java/com/fjhx/purchase/service/purchase/impl/PurchaseServiceImpl.java

@@ -25,6 +25,7 @@ import com.fjhx.common.utils.Assert;
 import com.fjhx.item.entity.product.vo.ProductInfoVo;
 import com.fjhx.item.service.product.ProductInfoService;
 import com.fjhx.item.util.excel.util.ExcelUtil;
+import com.fjhx.purchase.entity.AbnormalDetailsBo;
 import com.fjhx.purchase.entity.deliver.DeliverGoodsDetailsPoVo;
 import com.fjhx.purchase.entity.invoice.vo.InvoiceDetailsVo;
 import com.fjhx.purchase.entity.pay.vo.PayDetailVo;
@@ -332,6 +333,29 @@ public class PurchaseServiceImpl extends ServiceImpl<PurchaseMapper, Purchase>
                 purchaseVo.setRefundAmount(refundAmount);
             }
         }
+
+        //计算异常过来的待退款金额
+        List<AbnormalDetailsBo> abnormalDetails = wdlyService.getAbnormalDetails(purchaseIds);
+        Map<Long, List<AbnormalDetailsBo>> abnormalDetailsMap = abnormalDetails.stream().collect(Collectors.groupingBy(AbnormalDetailsBo::getPurchaseId));
+        for (PurchaseVo purchaseVo : list) {
+            //待退款金额
+            List<AbnormalDetailsBo> abnormalDetailsBo = abnormalDetailsMap.get(purchaseVo.getId());
+            BigDecimal waitRefundAmount = BigDecimal.ZERO;
+            if (ObjectUtil.isNotEmpty(abnormalDetailsBo)) {
+                waitRefundAmount = abnormalDetailsBo.stream().map(AbnormalDetailsBo::getRefundAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+            }
+            //已退款金额
+            List<PurchaseRefundRecord> purchaseRefundRecords = refundRecordMap.get(purchaseVo.getId());
+            BigDecimal refundAmount = BigDecimal.ZERO;
+            if (ObjectUtil.isNotEmpty(purchaseRefundRecords)) {
+                refundAmount = purchaseRefundRecords.stream().filter(item -> Objects.equals(item.getRefundType(), 1))
+                        .map(PurchaseRefundRecord::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+            }
+            //计算结果
+            purchaseVo.setWaitRefundAmount(waitRefundAmount.subtract(refundAmount));
+        }
+
+
         //赋值到货状态
 //            List<Long> pids = list.stream().map(PurchaseVo::getId).collect(Collectors.toList());
 //            List<Arrival> arrivalList = arrivalService.list(q -> q.in(Arrival::getPurchaseId, pids));
@@ -835,7 +859,7 @@ public class PurchaseServiceImpl extends ServiceImpl<PurchaseMapper, Purchase>
             File file = new File("C:\\Users\\ASUS\\Desktop\\ou.xlsx");
             FileOutputStream fos = new FileOutputStream(file);
             EasyExcel.write(fos, PayExportExcel.class).sheet("aa").doWrite(payExportExcelList);
-        }catch (Exception e){
+        } catch (Exception e) {
             e.printStackTrace();
         }
 

+ 9 - 2
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/abnormal/po/AbnormalDetails.java

@@ -1,12 +1,14 @@
 package com.fjhx.victoriatourist.entity.abnormal.po;
 
 import com.baomidou.mybatisplus.annotation.TableField;
-import com.ruoyi.common.core.domain.BasePo;
 import com.baomidou.mybatisplus.annotation.TableName;
-import java.util.Date;
+import com.ruoyi.common.core.domain.BasePo;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.math.BigDecimal;
+import java.util.Date;
+
 /**
  * <p>
  * 异常处理详情
@@ -56,4 +58,9 @@ public class AbnormalDetails extends BasePo {
      */
     private Date handleTime;
 
+    /**
+     * 退款金额
+     */
+    private BigDecimal refundAmount;
+
 }

+ 8 - 3
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/abnormal/vo/AbnormalDetailsVo.java

@@ -7,13 +7,18 @@ import lombok.Setter;
 /**
  * 异常处理详情列表查询返回值实体
  *
- * @author 
+ * @author
  * @since 2023-04-11
  */
 @Getter
 @Setter
 public class AbnormalDetailsVo extends AbnormalDetails {
-    /**跟进用户名*/
+    /**
+     * 跟进用户名
+     */
     private String handleUserName;
-
+    /**
+     * 采购id
+     */
+    private Long purchaseId;
 }

+ 6 - 1
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/mapper/abnormal/AbnormalDetailsMapper.java

@@ -1,12 +1,14 @@
 package com.fjhx.victoriatourist.mapper.abnormal;
 
-import com.fjhx.victoriatourist.entity.abnormal.po.AbnormalDetails;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.victoriatourist.entity.abnormal.po.AbnormalDetails;
 import com.fjhx.victoriatourist.entity.abnormal.vo.AbnormalDetailsVo;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 
 /**
  * <p>
@@ -23,4 +25,7 @@ public interface AbnormalDetailsMapper extends BaseMapper<AbnormalDetails> {
      */
     Page<AbnormalDetailsVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<AbnormalDetails> wrapper);
 
+    List<AbnormalDetailsVo> getList(@Param("ew") IWrapper<AbnormalDetails> wrapper);
+
+
 }

+ 17 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/WdlyServiceImpl.java

@@ -2,19 +2,26 @@ package com.fjhx.victoriatourist.service;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
+import com.fjhx.common.constant.SourceConstant;
+import com.fjhx.purchase.entity.AbnormalDetailsBo;
 import com.fjhx.purchase.entity.deliver.DeliverGoodsDetailsPo;
 import com.fjhx.purchase.entity.deliver.DeliverGoodsPo;
 import com.fjhx.purchase.entity.purchase.vo.PurchaseVo;
 import com.fjhx.purchase.service.WdlyService;
+import com.fjhx.victoriatourist.entity.abnormal.po.AbnormalDetails;
 import com.fjhx.victoriatourist.entity.abnormal.po.AbnormalInfo;
+import com.fjhx.victoriatourist.entity.abnormal.vo.AbnormalDetailsVo;
 import com.fjhx.victoriatourist.entity.deliver.po.DeliverGoods;
 import com.fjhx.victoriatourist.entity.deliver.po.DeliverGoodsDetails;
 import com.fjhx.victoriatourist.entity.logistics.po.LogisticsInfos;
+import com.fjhx.victoriatourist.mapper.abnormal.AbnormalDetailsMapper;
 import com.fjhx.victoriatourist.service.abnormal.AbnormalInfoService;
 import com.fjhx.victoriatourist.service.deliver.DeliverGoodsDetailsService;
 import com.fjhx.victoriatourist.service.deliver.DeliverGoodsService;
 import com.fjhx.victoriatourist.service.logistics.LogisticsInfosService;
 import com.fjhx.victoriatourist.service.order.OrderInfoService;
+import com.ruoyi.common.utils.wrapper.IWrapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -33,6 +40,8 @@ public class WdlyServiceImpl implements WdlyService {
     AbnormalInfoService abnormalInfoService;
     @Autowired
     private LogisticsInfosService logisticsInfosService;
+    @Autowired
+    private AbnormalDetailsMapper abnormalDetailsMapper;
 
     /**
      * 更新发货记录的状态为到货
@@ -94,4 +103,12 @@ public class WdlyServiceImpl implements WdlyService {
     public PurchaseVo arrivalDetail(Long purchaseId){
        return  deliverGoodsService.arrivalDetail( purchaseId);
     }
+
+    @Override
+    public List<AbnormalDetailsBo> getAbnormalDetails(List<Long> purchaseIds) {
+        DynamicDataSourceContextHolder.push(SourceConstant.VICTORIATOURIST);
+        List<AbnormalDetailsVo> list = abnormalDetailsMapper.getList(IWrapper.<AbnormalDetails>getWrapper().in("ai.purchase_id", purchaseIds));
+        DynamicDataSourceContextHolder.poll();
+        return BeanUtil.copyToList(list, AbnormalDetailsBo.class);
+    }
 }

+ 20 - 0
hx-victoriatourist/src/main/resources/mapper/abnormal/AbnormalDetailsMapper.xml

@@ -18,5 +18,25 @@
         from abnormal_details ad
             ${ew.customSqlSegment}
     </select>
+    <select id="getList" resultType="com.fjhx.victoriatourist.entity.abnormal.vo.AbnormalDetailsVo">
+        SELECT
+            ad.id,
+            ad.abnormal_info_id,
+            ad.`explain`,
+            ad.`status`,
+            ad.handle_user,
+            ad.next_handle_user,
+            ad.processing,
+            ad.handle_time,
+            ad.create_user,
+            ad.create_time,
+            ad.update_user,
+            ad.update_time,
+            ai.purchase_id
+        FROM
+            abnormal_details ad
+                LEFT JOIN abnormal_info ai ON ad.abnormal_info_id = ai.id
+            ${ew.customSqlSegment}
+    </select>
 
 </mapper>