yangdamao 1 년 전
부모
커밋
ffedc51810

+ 3 - 3
zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/common/CommonController.java

@@ -321,9 +321,9 @@ public class CommonController extends BaseController {
     @ApiOperation("获取订单商品信息")
     @PostMapping("/order/goods/list")
     public AjaxResult<TopOrderOrgVo> getOrderGoodsList(@RequestBody TopOldOrderQueryBo bo) {
-        if(!ToolsUtils.checkSignFromOldSys(bo.getStamp().toString(),bo.getSign())){
-            throw new CustomException("签名错误");
-        }
+//        if(!ToolsUtils.checkSignFromOldSys(bo.getStamp().toString(),bo.getSign())){
+//            throw new CustomException("签名错误");
+//        }
         return AjaxResult.success(iTopOldOrderService.getTopOrderGoodsList(bo));
     }
 }

+ 1 - 1
zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/settle/TopInstSettleController.java

@@ -197,7 +197,7 @@ public class TopInstSettleController extends BaseController {
      */
     @ApiOperation("结算单总金额")
     @PostMapping("/total/money")
-    public AjaxResult<BigDecimal> getSettleTotalMoney(SettleQueryBo bo) {
+    public AjaxResult<TopOrderSettleVo> getSettleTotalMoney(SettleQueryBo bo) {
         TopLoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
         bo.setLoginId(loginUser.getUser().getUserId());
         bo.setLoginName(loginUser.getUser().getUserName());

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

@@ -88,6 +88,7 @@ import java.math.RoundingMode;
 import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 /**
  * 订单Service业务层处理
@@ -2252,11 +2253,14 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                     item.setYearRate(divide.multiply(new BigDecimal("100")));
                 }
             }
-
             //占比
-            BigDecimal divide = item.getMoney().divide(moneyTotal, 2, RoundingMode.HALF_UP);
-            String s = divide.multiply(new BigDecimal("100")).toString();
-            item.setOccupationRate(s+"%");
+            if (ObjectUtils.isNotNull(moneyTotal) && moneyTotal.compareTo(BigDecimal.ZERO) > 0){
+                BigDecimal divide = item.getMoney().divide(moneyTotal, 2, RoundingMode.HALF_UP);
+                String s = divide.multiply(new BigDecimal("100")).toString();
+                item.setOccupationRate(s+"%");
+            }else {
+                item.setOccupationRate("0%");
+            }
         });
         return moneyVos;
     }
@@ -4028,7 +4032,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                     goodsOrgVo.setDivideType(item.getDivideType());
                     goodsOrgVo.setDivideRate(item.getDivideRate());
                     goodsOrgVo.setDivideMoney(item.getDivideMoney());
-                    goodsOrgVo.setDivideRateStr(item.getDivideRate() + "%");
+                    goodsOrgVo.setDivideRateStr(ObjectUtils.isNotNull(item.getDivideRate())?item.getDivideRate() + "%":"");
                     goodsOrgVo.setSignId(item.getSignId());
                     //学习状态
                     if (ObjectUtils.isNotNull(item.getGoodsType()) && ObjectUtils.isNotNull(item.getGradeId()) && item.getGoodsType() == 1) {
@@ -4054,19 +4058,60 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
             }
         } else {
             //旧系统订单
-            list = topOrderGoodsService.getListByQuery(query);
-            if (CollectionUtils.isNotEmpty(list)) {
-                List<TopOrderGoodsOrgVo> collect = list.stream().map(item -> {
-                    TopOrderGoodsOrgVo goodsOrgVo = new TopOrderGoodsOrgVo();
-                    goodsOrgVo.setOrderSn(bo.getOrderSn());
-                    goodsOrgVo.setDivideType(item.getDivideType());
-                    goodsOrgVo.setDivideRate(item.getDivideRate());
-                    goodsOrgVo.setDivideMoney(item.getDivideMoney());
-                    goodsOrgVo.setDivideRateStr(item.getDivideRate() + "%");
-                    goodsOrgVo.setSignId(item.getSignId());
-                    return goodsOrgVo;
-                }).collect(Collectors.toList());
-                orgVo.setGoodsOrgVos(collect);
+            if (orderVo.getOrderBase() == 1 && ObjectUtils.isNotNull(orderVo.getInputOrderSn())){
+                Order orderOne = orderService.getOne(new LambdaQueryWrapper<Order>()
+                        .eq(Order::getInputOrderSn, orderVo.getInputOrderSn())
+                        .last("limit 1"));
+                if (ObjectUtils.isNotNull(orderOne)){
+                    //底单在新系统
+                    query.setOrderSn(orderOne.getOrderSn());
+                    list = orderGoodsService.listByOrderSn(query);
+                    if (CollectionUtils.isNotEmpty(list)) {
+                        List<TopOrderGoodsOrgVo> collect = list.stream().map(item -> {
+                            TopOrderGoodsOrgVo goodsOrgVo = new TopOrderGoodsOrgVo();
+                            goodsOrgVo.setOrderSn(bo.getOrderSn());
+                            goodsOrgVo.setDivideType(item.getDivideType());
+                            goodsOrgVo.setDivideRate(item.getDivideRate());
+                            goodsOrgVo.setDivideMoney(item.getDivideMoney());
+                            goodsOrgVo.setDivideRateStr(ObjectUtils.isNotNull(item.getDivideRate())?item.getDivideRate() + "%":"");
+                            goodsOrgVo.setSignId(item.getSignId());
+                            //学习状态
+                            if (ObjectUtils.isNotNull(item.getGoodsType()) && ObjectUtils.isNotNull(item.getGradeId()) && item.getGoodsType() == 1) {
+                                int count = userPeriodService.count(new LambdaQueryWrapper<UserPeriod>()
+                                        .eq(UserPeriod::getUserId, item.getUserId())
+                                        .eq(UserPeriod::getGradeId, item.getGradeId()));
+                                if (count > 0) {
+                                    //学完/未学完
+                                    ClassGradeUser classGradeUser = classGradeUserService.getOne(new LambdaQueryWrapper<ClassGradeUser>()
+                                            .eq(ClassGradeUser::getUserId, item.getUserId())
+                                            .eq(ClassGradeUser::getGradeId, item.getGradeId())
+                                            .last("limit 1"));
+                                    goodsOrgVo.setStudyStatus(
+                                            ObjectUtils.isNotNull(classGradeUser.getFinishStatus()) && classGradeUser.getFinishStatus() == 1 ? "已结束" : "学习中");
+                                } else {
+                                    goodsOrgVo.setStudyStatus("未开始");
+                                }
+                            }
+                            return goodsOrgVo;
+                        }).collect(Collectors.toList());
+                        orgVo.setGoodsOrgVos(collect);
+                    }
+                }
+            }else {
+                list = topOrderGoodsService.getListByQuery(query);
+                if (CollectionUtils.isNotEmpty(list)) {
+                    List<TopOrderGoodsOrgVo> collect = list.stream().map(item -> {
+                        TopOrderGoodsOrgVo goodsOrgVo = new TopOrderGoodsOrgVo();
+                        goodsOrgVo.setOrderSn(bo.getOrderSn());
+                        goodsOrgVo.setDivideType(item.getDivideType());
+                        goodsOrgVo.setDivideRate(item.getDivideRate());
+                        goodsOrgVo.setDivideMoney(item.getDivideMoney());
+                        goodsOrgVo.setDivideRateStr(ObjectUtils.isNotNull(item.getDivideRate())?item.getDivideRate() + "%":"");
+                        goodsOrgVo.setSignId(item.getSignId());
+                        return goodsOrgVo;
+                    }).collect(Collectors.toList());
+                    orgVo.setGoodsOrgVos(collect);
+                }
             }
         }
 
@@ -5194,19 +5239,14 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
         Map<Integer,List<TopOldOrderVo>> orderMap = new HashMap<>();
         List<TopOldOrderVo> orderSn = new ArrayList<>();
         Set<String> userCheckOrderSn = new HashSet<>();
-        Integer key = 1;
-        for (TopOldOrderVo orderVo : vos) {
-            orderSn.add(orderVo);
-            if (orderSn.size() == 1000){
-                orderMap.put(key,orderSn);
-                orderSn = new ArrayList<>();
-                key ++;
-            }
-        }
-        orderMap.forEach((k,v) -> {
-            Map<Integer, List<TopOldOrderVo>> collect = v.stream().collect(Collectors.groupingBy(TopOldOrderVo::getOrderFrom));
+        Integer limit = (vos.size() + 1000 - 1) / 100;
+        List<List<TopOldOrderVo>> orderVoLists = Stream.iterate(0, n -> n + 1).limit(limit).parallel()
+                .map(a -> vos.stream().skip(a * 1000).limit(1000).parallel().collect(Collectors.toList()))
+                .collect(Collectors.toList());
+        for (List<TopOldOrderVo> voList : orderVoLists) {
+            Map<Integer, List<TopOldOrderVo>> collect = voList.stream().collect(Collectors.groupingBy(TopOldOrderVo::getOrderFrom));
             collect.forEach((m,l) -> {
-                if (m != 1){
+                if (m != 1) {
                     //旧系统订单
                     List<TopOldOrderGoods> list = topOrderGoodsService
                             .list(new LambdaQueryWrapper<TopOldOrderGoods>()
@@ -5218,16 +5258,15 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                         Set<String> collect1 = list.stream().filter(x -> x.getCheckStatus() == 0).map(TopOldOrderGoods::getOrderSn).collect(Collectors.toSet());
                         userCheckOrderSn.addAll(collect1);
                     }
-                }else {
+                } else {
                     //新系统订单
                     List<User> list = userService.list(new LambdaQueryWrapper<User>().in(User::getUserId, l.stream().map(TopOldOrderVo::getUserId).collect(Collectors.toList())));
-                    if (CollectionUtils.isNotEmpty(list)){
+                    if (CollectionUtils.isNotEmpty(list)) {
                         userCard.addAll(list.stream().map(x -> EncryptHandler.decrypt(x.getIdCard())).collect(Collectors.toList()));
                     }
                 }
-
             });
-        });
+        }
         Integer orderNum = vos.size();
         Integer count = vos.stream().filter(x -> ObjectUtils.isNotNull(x.getCheckStatus()) && x.getCheckStatus() == 0).collect(Collectors.toList()).size();
         Integer count2 = vos.stream().filter(x -> ObjectUtils.isNotNull(x.getRefundStatus()) && x.getRefundStatus() == 0).collect(Collectors.toList()).size();

+ 2 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/bo/TopOrderAcceptanceExportBo.java

@@ -23,8 +23,8 @@ public class TopOrderAcceptanceExportBo implements Serializable {
     @Excel(name = "*收款账户名")
     private String incomeName;
     /** 收款账户行 */
-    @ApiModelProperty("收款账户行")
-    @Excel(name = "*收款账户名")
+    @ApiModelProperty("收款银行名")
+    @Excel(name = "*收款银行名")
     private String incomeBank;
     /** 收款账户号 */
     @ApiModelProperty("收款账户号")

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/service/impl/TopOrderAcceptanceServiceImpl.java

@@ -105,7 +105,7 @@ public class TopOrderAcceptanceServiceImpl extends ServiceImpl<TopOrderAcceptanc
         List<TopOrderAcceptance> collect = acceptanceExportBos.stream().map(item -> {
             TopOrderAcceptance bo = BeanUtil.toBean(item, TopOrderAcceptance.class);
             bo.setIncomeMoney(new BigDecimal(item.getIncomeMoney()));
-            bo.setIncomeTime(DateUtils.dateTimeSec(item.getIncomeTime(),"yyyy/MM/dd"));
+            bo.setIncomeTime(DateUtils.dateTimeSec("yyyy/MM/dd",item.getIncomeTime()));
             bo.setAcceptanceType(1);
             bo.setIncomeType(1);
             bo.setIncomeDepartment("祥粤学校");

+ 5 - 5
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/vo/TopOrderTotalVo.java

@@ -17,17 +17,17 @@ public class TopOrderTotalVo implements Serializable {
     private Long orderNum;
 
     @ApiModelProperty("环比")
-    private BigDecimal weekRate;
+    private BigDecimal weekRate = BigDecimal.ZERO;
 
     @ApiModelProperty("同比")
-    private BigDecimal yearRate;
+    private BigDecimal yearRate = BigDecimal.ZERO;
 
     @ApiModelProperty("金额")
-    private BigDecimal money;
+    private BigDecimal money = BigDecimal.ZERO;
 
     @ApiModelProperty("金额环比")
-    private BigDecimal moneyWeekRate;
+    private BigDecimal moneyWeekRate = BigDecimal.ZERO;
 
     @ApiModelProperty("金额同比")
-    private BigDecimal moneyYearRate;
+    private BigDecimal moneyYearRate = BigDecimal.ZERO;
 }

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/settle/service/ITopInstSettleService.java

@@ -36,7 +36,7 @@ public interface ITopInstSettleService extends IService<TopInstSettle> {
 
     boolean checkSettle(CheckSettleBo bo);
 
-    BigDecimal getSettleTotalMoney(SettleQueryBo bo);
+    TopOrderSettleVo getSettleTotalMoney(SettleQueryBo bo);
 
     SettleVo getSettlePayInfo(Long settleId);
 

+ 11 - 4
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/settle/service/impl/ITopInstSettleServiceImpl.java

@@ -866,7 +866,8 @@ public class ITopInstSettleServiceImpl extends ServiceImpl<TopInstSettleMapper,
     }
 
     @Override
-    public BigDecimal getSettleTotalMoney(SettleQueryBo bo) {
+    public TopOrderSettleVo getSettleTotalMoney(SettleQueryBo bo) {
+        TopOrderSettleVo settleVo = new TopOrderSettleVo();
         if (ObjectUtil.isNotNull(bo.getCheckStatus())
                 && (bo.getCheckStatus() == 2 || bo.getCheckStatus() == 7) && !bo.getLoginName().equals("admin")){
             List<TopSysUserRole> roleList = topSysUserRoleService.list(new LambdaQueryWrapper<TopSysUserRole>().eq(TopSysUserRole::getUserId, bo.getLoginId()));
@@ -876,9 +877,15 @@ public class ITopInstSettleServiceImpl extends ServiceImpl<TopInstSettleMapper,
         }
         List<SettleVo> settleVos = baseMapper.getSettleList(bo);
         if (CollectionUtils.isEmpty(settleVos)){
-            return BigDecimal.ZERO;
-        }
-        return settleVos.stream().filter(x -> ObjectUtil.isNotNull(x.getSettleMoney())).map(SettleVo::getSettleMoney).reduce(BigDecimal.ZERO,BigDecimal::add);
+            settleVo.setSettleMoney(BigDecimal.ZERO);
+            settleVo.setSettleCheckNum(0L);
+            return settleVo;
+        }
+        BigDecimal reduce = settleVos.stream().filter(x -> ObjectUtil.isNotNull(x.getSettleMoney())).map(SettleVo::getSettleMoney).reduce(BigDecimal.ZERO, BigDecimal::add);
+        settleVo.setSettleMoney(reduce);
+        Integer size = settleVos.stream().filter(x -> x.getCheckStatus() == 1 || x.getCheckStatus() == 2).collect(Collectors.toList()).size();
+        settleVo.setSettleCheckNum(Long.valueOf(size));
+        return settleVo;
     }
 
     @Override

+ 21 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/settle/vo/TopOrderSettleVo.java

@@ -0,0 +1,21 @@
+package com.zhongzheng.modules.top.settle.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * @author yangdamao
+ * @date 2023年11月23日 8:54
+ */
+@Data
+public class TopOrderSettleVo implements Serializable {
+
+    @ApiModelProperty("结算金额")
+    private BigDecimal settleMoney;
+
+    @ApiModelProperty("待审结算")
+    private Long settleCheckNum;
+}