he2802 2 роки тому
батько
коміт
7f1617f560

+ 1 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/mapper/TopOldOrderMapper.java

@@ -29,6 +29,7 @@ public interface TopOldOrderMapper extends BaseMapper<TopOldOrder> {
 
     List<TopOldOrderVo> queryReceiveList(TopOldOrderQueryBo bo);
 
+    Long queryReceiveUnSum(TopOldOrderQueryBo bo);
 
     List<TopOldOrderVo> queryDivSellerList(TopOldOrderQueryBo bo);
 

+ 60 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/service/impl/TopOldOrderServiceImpl.java

@@ -3687,8 +3687,66 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
             throw new CustomException("参数缺少");
         }
         if (bo.getTotalType() == 1) {
-            List<TopOldOrderVo> vos = baseMapper.queryListAll();
-            BigDecimal uncollected = vos.stream().filter(x -> ObjectUtils.isNotNull(x.getOrderUncollected()) && x.getCheckStatus() == 1).map(TopOldOrderVo::getOrderUncollected).reduce(BigDecimal.ZERO, BigDecimal::add);
+            String badBillJson = topConfigService.selectConfigByKeyNoCache("bad_bill");
+            Calendar c = Calendar.getInstance();
+            c.add(Calendar.YEAR, -1);
+            Long year1 = c.getTimeInMillis() / 1000;
+            c.add(Calendar.YEAR, -1);
+            Long year2 = c.getTimeInMillis() / 1000;
+            c.add(Calendar.YEAR, -1);
+            Long year3 = c.getTimeInMillis() / 1000;
+            c.add(Calendar.YEAR, -1);
+            Long year4 = c.getTimeInMillis() / 1000;
+            c.add(Calendar.YEAR, -1);
+            Long year5 = c.getTimeInMillis() / 1000;
+            c.add(Calendar.YEAR, -50);
+            Long year50 = c.getTimeInMillis() / 1000;
+            if (Validator.isEmpty(badBillJson)) {
+                bo.setBadBill(null);
+            } else {
+                List<TopBadBillTimeBo> badBillList = new ArrayList<>();
+                List<SysTenantBadBillConfigBo> configList = JSONArray.parseArray(badBillJson, SysTenantBadBillConfigBo.class);
+                for (SysTenantBadBillConfigBo configBo : configList) {
+                    if (configBo.getYearType() == 1) {
+                        TopBadBillTimeBo timeBo = new TopBadBillTimeBo();
+                        timeBo.setStartTime(year50);
+                        timeBo.setEndTime(year1);
+                        badBillList.add(timeBo);
+                    }
+                    if (configBo.getYearType() == 2) {
+                        TopBadBillTimeBo timeBo = new TopBadBillTimeBo();
+                        timeBo.setStartTime(year2);
+                        timeBo.setEndTime(year1);
+                        badBillList.add(timeBo);
+                    }
+                    if (configBo.getYearType() == 3) {
+                        TopBadBillTimeBo timeBo = new TopBadBillTimeBo();
+                        timeBo.setStartTime(year3);
+                        timeBo.setEndTime(year2);
+                        badBillList.add(timeBo);
+                    }
+                    if (configBo.getYearType() == 4) {
+                        TopBadBillTimeBo timeBo = new TopBadBillTimeBo();
+                        timeBo.setStartTime(year4);
+                        timeBo.setEndTime(year3);
+                        badBillList.add(timeBo);
+                    }
+                    if (configBo.getYearType() == 5) {
+                        TopBadBillTimeBo timeBo = new TopBadBillTimeBo();
+                        timeBo.setStartTime(year5);
+                        timeBo.setEndTime(year4);
+                        badBillList.add(timeBo);
+                    }
+                    if (configBo.getYearType() == 6) {
+                        TopBadBillTimeBo timeBo = new TopBadBillTimeBo();
+                        timeBo.setStartTime(year50);
+                        timeBo.setEndTime(year5);
+                        badBillList.add(timeBo);
+                    }
+                }
+                bo.setBadBillList(badBillList);
+            }
+            Long uncollected= baseMapper.queryReceiveUnSum(bo);
             map.put("orderUncollectedTotal", uncollected); //未收账款
 
         }

+ 39 - 0
zhongzheng-system/src/main/resources/mapper/modules/top/TopOldOrderMapper.xml

@@ -279,6 +279,45 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </if>
     </select>
 
+    <select id="queryReceiveUnSum" parameterType="com.zhongzheng.modules.top.goods.bo.TopOldOrderQueryBo" resultType="long">
+        SELECT
+        IFNULL(sum(
+        too.order_uncollected),0)
+        FROM
+        top_old_order too
+        LEFT JOIN sys_tenant st ON too.tenant_id = st.tenant_id
+        LEFT JOIN top_order_rec_note rn ON too.tenant_id = rn.tenant_id and too.order_sn = rn.order_sn
+        where too.check_status=1 AND too.order_uncollected >0
+        <if test="startTime != null and startTime != ''">
+            AND too.buy_time <![CDATA[ >= ]]> #{startTime}
+        </if>
+        <if test="endTime != null and endTime != ''">
+            AND too.buy_time <![CDATA[ <= ]]> #{endTime}
+        </if>
+        <if test="keyNo != null and keyNo != ''">
+            AND (too.tenant_id like concat('%', #{keyNo}, '%') or too.create_no like concat('%', #{keyNo}, '%'))
+        </if>
+        <if test="creditStatus != null and creditStatus != ''">
+            AND too.credit_status = #{creditStatus}
+        </if>
+        <if test="orderSn != null and orderSn != ''">
+            AND too.order_sn = #{orderSn}
+        </if>
+        <if test="badBill != null and badBill == 1 and badBillList != null and badBillList.size()!=0 ">
+            AND
+            <foreach collection="badBillList" item="item" index="index" open="(" close=")" separator="or">
+                (too.check_time BETWEEN #{item.startTime} and #{item.endTime})
+            </foreach>
+        </if>
+        <if test="badBill != null and badBill == 2 and badBillList != null and badBillList.size()!=0 ">
+            AND
+            <foreach collection="badBillList" item="item" index="index" open="(" close=")" separator="or">
+                (too.check_time NOT BETWEEN #{item.startTime} and #{item.endTime})
+            </foreach>
+        </if>
+        ORDER BY too.buy_time DESC
+    </select>
+
     <select id="queryReceiveList" parameterType="com.zhongzheng.modules.top.goods.bo.TopOldOrderQueryBo" resultType="com.zhongzheng.modules.top.goods.vo.TopOldOrderVo">
         SELECT
             too.*,