he2802 1 rok temu
rodzic
commit
c041e3bb21

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

@@ -1,50 +1,17 @@
 package com.zhongzheng.controller.common;
 
-import cn.hutool.core.lang.Validator;
 import cn.hutool.core.util.StrUtil;
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
 import com.zhongzheng.common.annotation.Log;
 import com.zhongzheng.common.config.RuoYiConfig;
 import com.zhongzheng.common.core.controller.BaseController;
 import com.zhongzheng.common.core.domain.AjaxResult;
-import com.zhongzheng.common.core.domain.model.TopLoginUser;
 import com.zhongzheng.common.core.page.TableDataInfo;
-import com.zhongzheng.common.core.redis.RedisCache;
 import com.zhongzheng.common.enums.BusinessType;
 import com.zhongzheng.common.exception.CustomException;
-import com.zhongzheng.common.utils.DateUtils;
-import com.zhongzheng.common.utils.ServletUtils;
 import com.zhongzheng.common.utils.ToolsUtils;
 import com.zhongzheng.common.utils.file.FileUtils;
-import com.zhongzheng.framework.web.service.WxLoginService;
-import com.zhongzheng.modules.activity.vo.ActivityGoodsPriceVo;
-import com.zhongzheng.modules.base.bo.ConfigQueryBo;
-import com.zhongzheng.modules.course.bo.CourseQueryBo;
-import com.zhongzheng.modules.course.bo.CourseTopicGoodsQueryBo;
-import com.zhongzheng.modules.course.service.ICourseService;
-import com.zhongzheng.modules.course.service.ICourseTopicService;
-import com.zhongzheng.modules.course.vo.CourseTopicGoodsVo;
-import com.zhongzheng.modules.course.vo.CourseTopicVo;
-import com.zhongzheng.modules.course.vo.CourseUserVo;
-import com.zhongzheng.modules.data.domain.DataWxTpClick;
-import com.zhongzheng.modules.data.service.IDataWxTpClickService;
-import com.zhongzheng.modules.distribution.bo.DistributionActivityGoodsQueryBo;
-import com.zhongzheng.modules.distribution.service.IDistributionActivityGoodsService;
-import com.zhongzheng.modules.distribution.service.IDistributionSellerService;
-import com.zhongzheng.modules.distribution.vo.DistributionSellerVo;
-import com.zhongzheng.modules.goods.bo.DistributionGoodsBo;
-import com.zhongzheng.modules.goods.service.IGoodsSpecTemplateService;
-import com.zhongzheng.modules.goods.vo.GoodsSpecTemplateVo;
-import com.zhongzheng.modules.goods.vo.GoodsUserVo;
-import com.zhongzheng.modules.goods.vo.GoodsVo;
-import com.zhongzheng.modules.order.domain.Printer;
 import com.zhongzheng.modules.sdk.bo.TopNuoMplatformLogAddBo;
 import com.zhongzheng.modules.sdk.service.ITopNuoMplatformLogService;
-import com.zhongzheng.modules.sdk.service.NuonuoService;
-import com.zhongzheng.modules.system.bo.SysTenantQueryBo;
-import com.zhongzheng.modules.system.service.ISysConfigService;
-import com.zhongzheng.modules.system.service.ISysTenantService;
 import com.zhongzheng.modules.top.financial.bo.*;
 import com.zhongzheng.modules.top.financial.vo.TopOrderLogVo;
 import com.zhongzheng.modules.top.financial.vo.TopOrderOrgVo;
@@ -53,10 +20,6 @@ import com.zhongzheng.modules.top.financial.vo.TopSellerDiscountVo;
 import com.zhongzheng.modules.top.goods.bo.*;
 import com.zhongzheng.modules.top.goods.service.ITopOldOrderService;
 import com.zhongzheng.modules.top.order.bo.PayOrderCallBackBo;
-import com.zhongzheng.modules.wx.bo.WxInfoBo;
-import com.zhongzheng.modules.wx.bo.WxInfoQuery;
-import com.zhongzheng.modules.wx.bo.WxServerBody;
-import com.zhongzheng.modules.wx.domain.*;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
@@ -69,8 +32,6 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import java.text.ParseException;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 

+ 3 - 3
zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/order/TopOrderAcceptanceController.java

@@ -122,11 +122,11 @@ public class TopOrderAcceptanceController extends BaseController {
 
     @ApiOperation("认款记录导入")
     @PostMapping("/importData")
-    public AjaxResult<Void> importData(MultipartFile file) {
+    public AjaxResult<Void> importData(MultipartFile files) {
         ExcelUtil<TopOrderAcceptanceExportBo> util = new ExcelUtil<TopOrderAcceptanceExportBo>(TopOrderAcceptanceExportBo.class);
         List<TopOrderAcceptanceExportBo> acceptanceExportBos;
         try {
-            acceptanceExportBos = util.importExcel(file.getInputStream());
+            acceptanceExportBos = util.importExcel(files.getInputStream());
         }catch (Exception e){
             e.printStackTrace();
             throw new IllegalArgumentException("模板格式不正确,请重新下载模板");
@@ -143,7 +143,7 @@ public class TopOrderAcceptanceController extends BaseController {
         List<TopOrderAcceptanceVo> list = iTopOrderAcceptanceService.queryAcceptanceList(bo);
         List<TopOrderAcceptanceExportBo> collect = list.stream().map(item -> {
             TopOrderAcceptanceExportBo exportBo = BeanUtil.toBean(item, TopOrderAcceptanceExportBo.class);
-            exportBo.setIncomeTime(DateUtils.timestampToDateFormat(item.getIncomeTime(),"yyyy/MM/dd"));
+            exportBo.setIncomeTimeStr(DateUtils.timestampToDateFormat(item.getIncomeTime(),"yyyy/MM/dd"));
             return exportBo;
         }).collect(Collectors.toList());
         ExcelUtil<TopOrderAcceptanceExportBo> util = new ExcelUtil<TopOrderAcceptanceExportBo>(TopOrderAcceptanceExportBo.class);

+ 6 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/financial/vo/TopOrderGoodsOrgVo.java

@@ -1,6 +1,5 @@
 package com.zhongzheng.modules.top.financial.vo;
 
-import com.zhongzheng.common.annotation.Excel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
@@ -34,6 +33,12 @@ public class TopOrderGoodsOrgVo implements Serializable {
     @ApiModelProperty("学习状态:0未开始,1学习中,2已结束")
     private String studyStatus;
 
+    @ApiModelProperty("审核意见")
+    private String checkReason;
+
+    @ApiModelProperty("申请原因")
+    private String applyReason;
+
     private Long signId;
 
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/domain/TopOldOrderGoods.java

@@ -75,6 +75,8 @@ private static final long serialVersionUID=1L;
     private String businessFullName;
     /** 学习状态:0未开始,1学习中,2已结束 */
     private Integer checkStatus;
+    /** 审核意见 */
+    private String checkReason;
     /** 学申请修改时间 */
     private Long applyUpTime;
     /** 申请修改原因 */

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

@@ -77,6 +77,7 @@ import com.zhongzheng.modules.top.user.service.ITopSysUserRoleService;
 import com.zhongzheng.modules.top.user.service.ITopSysUserService;
 import com.zhongzheng.modules.user.domain.User;
 import com.zhongzheng.modules.user.service.IUserService;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
@@ -969,9 +970,9 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
         if (order.getOrderFrom() == 1) {
             throw new CustomException("订单号无效:" + bo.getOrderSn());
         }
-        if (order.getFinishStatus() == 1) {
-            throw new CustomException("订单已完单不能修改:" + bo.getOrderSn());
-        }
+//        if (order.getFinishStatus() == 1) {
+//            throw new CustomException("订单已完单不能修改:" + bo.getOrderSn());
+//        }
         //佣金计算
         if (ObjectUtils.isNotNull(bo.getPretaxBrokerage()) && ObjectUtils.isNotNull(bo.getPretax())) {
             BigDecimal multiply = bo.getPretaxBrokerage().multiply(bo.getPretax());
@@ -1501,7 +1502,10 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
         }
 
         List<TopOldOrderGoods> list = topOrderGoodsService.listByIds(bo.getOrderGoodsIds());
-        list.forEach(x -> x.setCheckStatus(bo.getCheckStatus()));
+        list.forEach(x -> {
+            x.setCheckStatus(bo.getCheckStatus());
+            x.setCheckReason(bo.getCheckReason());
+        } );
 //        List<String> signIds = Arrays.stream(oldOrder.getCheckRemark().split(",")).filter(x -> !bo.getOrderGoodsIds().contains(x)).collect(Collectors.toList());
         List<Long> signIds = list.stream().filter(x -> ObjectUtils.isNotNull(x.getRelSignId())).map(TopOldOrderGoods::getRelSignId).collect(Collectors.toList());
         List<TopOldOrderGoods> topOldOrderGoods = topOrderGoodsService.
@@ -2095,46 +2099,94 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
         topOldOrderUpVo.setOrderSn(orderSn);
 
         List<TopOldOrderStudyVo> studyVos = new ArrayList<>();
+        List<TopOrderGoodsUpVo> goodsUpVos = new ArrayList<>();
+        Set<String> business = new HashSet<>();
         // 老系统查询学习状态
-        Map<String, String> params = new HashMap<>();
-        Long nowTime = DateUtils.getNowTime();
-        String sign = ToolsUtils.EncoderByMd5(orderSn + nowTime.toString() + "pubilc2022");
-        params.put("stamp", nowTime.toString());
-        params.put("sign", sign);
-        params.put("orderSn", orderSn);
-        params.put("type", orderVo.getOrderType().toString());
-        String respone = "";
-        try {
-            respone = HttpUtils.postFormBody(ORDER_STUDY, params);
-            if (!respone.contains("\"Status\":true")) {
+        if (orderVo.getOrderBase() == 2){
+            Map<String, String> params = new HashMap<>();
+            Long nowTime = DateUtils.getNowTime();
+            String sign = ToolsUtils.EncoderByMd5(orderSn + nowTime.toString() + "pubilc2022");
+            params.put("stamp", nowTime.toString());
+            params.put("sign", sign);
+            params.put("orderSn", orderSn);
+            params.put("type", orderVo.getOrderType().toString());
+            String respone = "";
+            try {
+                respone = HttpUtils.postFormBody(ORDER_STUDY, params);
+                if (!respone.contains("\"Status\":true")) {
+                    throw new CustomException("旧系统订单学员学习情况接口请求错误");
+                }
+                JSONObject jsonObject = JSONObject.parseObject(respone);
+                Object data = jsonObject.get("Data");
+                if (ObjectUtils.isNotNull(data)) {
+                    studyVos = JSONArray.parseArray(JSONObject.toJSONString(data), TopOldOrderStudyVo.class);
+                }
+            } catch (IOException e) {
+                log.error("旧系统订单学员学习情况接口请求错误" + respone);
                 throw new CustomException("旧系统订单学员学习情况接口请求错误");
             }
-            JSONObject jsonObject = JSONObject.parseObject(respone);
-            Object data = jsonObject.get("Data");
-            if (ObjectUtils.isNotNull(data)) {
-                studyVos = JSONArray.parseArray(JSONObject.toJSONString(data), TopOldOrderStudyVo.class);
-            }
-        } catch (IOException e) {
-            log.error("旧系统订单学员学习情况接口请求错误" + respone);
-            throw new CustomException("旧系统订单学员学习情况接口请求错误");
-        }
-        List<TopOrderGoodsUpVo> goodsUpVos = new ArrayList<>();
-        Set<String> business = new HashSet<>();
-        for (TopOldOrderGoods orderGoods : orderGoodsList) {
-            business.add(orderGoods.getBusinessFullName());
-            goodsUpVos.add(getGoodsUp(orderGoods,studyVos));
-            //获取修改前的数据
-            List<TopOldOrderGoods> list = topOrderGoodsService.list(new LambdaQueryWrapper<TopOldOrderGoods>()
-                    .eq(TopOldOrderGoods::getOrderSn, orderGoods.getOrderSn())
-                    .eq(TopOldOrderGoods::getSignId, orderGoods.getRelSignId())
-                    .eq(TopOldOrderGoods::getCheckStatus, -1));
-            if (CollectionUtils.isNotEmpty(list)){
-                for (TopOldOrderGoods goods : list) {
-                    business.add(orderGoods.getBusinessFullName());
-                    goodsUpVos.add(getGoodsUp(goods,studyVos));
+            for (TopOldOrderGoods orderGoods : orderGoodsList) {
+                business.add(orderGoods.getBusinessFullName());
+                goodsUpVos.add(getGoodsUp(orderGoods,studyVos));
+                //获取修改前的数据
+                List<TopOldOrderGoods> list = topOrderGoodsService.list(new LambdaQueryWrapper<TopOldOrderGoods>()
+                        .eq(TopOldOrderGoods::getOrderSn, orderGoods.getOrderSn())
+                        .eq(TopOldOrderGoods::getSignId, orderGoods.getRelSignId())
+                        .eq(TopOldOrderGoods::getCheckStatus, -1));
+                if (CollectionUtils.isNotEmpty(list)){
+                    for (TopOldOrderGoods goods : list) {
+                        business.add(orderGoods.getBusinessFullName());
+                        goodsUpVos.add(getGoodsUp(goods,studyVos));
+                    }
                 }
             }
+        }else {
+            //底单在新系统
+            orderGoodsList.forEach(item -> {
+                business.add(item.getBusinessFullName());
+                TopOrderGoodsUpVo topOrderGoodsUpVo = BeanUtil.toBean(item, TopOrderGoodsUpVo.class);
+                topOrderGoodsUpVo.setUserCard(EncryptHandler.decrypt(item.getUserCard()));
+                User user = userService.getByCardNoTenant(EncryptHandler.decrypt(item.getUserCard()));
+                if (ObjectUtils.isNotNull(user)){
+                    Order orderOne = orderService.getOne(new LambdaQueryWrapper<Order>()
+                            .eq(Order::getInputOrderSn, orderVo.getInputOrderSn())
+                            .eq(Order::getUserId,user.getUserId())
+                            .last("limit 1"));
+                    if (ObjectUtils.isNotNull(orderOne)){
+                        List<OrderGoods> goodsList = orderGoodsService.list(new LambdaQueryWrapper<OrderGoods>()
+                                .eq(OrderGoods::getOrderSn, orderOne.getOrderSn())
+                                .eq(OrderGoods::getGoodsId, item.getGoodsId())
+                                .ne(OrderGoods::getRefundStatus,2)
+                                .ne(OrderGoods::getPayStatus,1));
+                        if (CollectionUtils.isNotEmpty(goodsList)){
+                            goodsList.forEach(goods -> {
+                                Goods goodsById = goodsService.getById(goods.getGoodsId());
+                                //学习状态
+                                if (ObjectUtils.isNotNull(goodsById.getGoodsType()) && ObjectUtils.isNotNull(goods.getGradeId()) && goodsById.getGoodsType() == 1) {
+                                    int count = userPeriodService.count(new LambdaQueryWrapper<UserPeriod>()
+                                            .eq(UserPeriod::getUserId, user.getUserId())
+                                            .eq(UserPeriod::getGradeId, goods.getGradeId()));
+                                    if (count > 0) {
+                                        //学完/未学完
+                                        ClassGradeUser classGradeUser = classGradeUserService.getOne(new LambdaQueryWrapper<ClassGradeUser>()
+                                                .eq(ClassGradeUser::getUserId, user.getUserId())
+                                                .eq(ClassGradeUser::getGradeId, goods.getGradeId())
+                                                .last("limit 1"));
+                                        topOrderGoodsUpVo.setStudyStatus(
+                                                ObjectUtils.isNotNull(classGradeUser.getFinishStatus()) && classGradeUser.getFinishStatus() == 1 ? "已结束" : "学习中");
+                                    } else {
+                                        topOrderGoodsUpVo.setStudyStatus("未开始");
+                                    }
+                                }
+                            });
+
+                        }
+                    }
+                }
+            });
+
         }
+
         topOldOrderUpVo.setBusinessName(business.stream().collect(Collectors.joining(",")));
         topOldOrderUpVo.setOrderGoodsList(goodsUpVos);
         return topOldOrderUpVo;
@@ -2912,7 +2964,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
             }else {
                 item.setTenantId(item.getCustomerId());
             }
-            if (item.getMoney().compareTo(BigDecimal.ZERO) == 0){
+            if (item.getMoney().compareTo(BigDecimal.ZERO) == 0 && (ObjectUtils.isNull(item.getOrderNum()) || item.getOrderNum() == 0)){
                 return;
             }
             //订单金额
@@ -2971,13 +3023,19 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
             }
 
             //金额占比
-            BigDecimal divide = item.getMoney().divide(totalVo.getMoneyTotal(), 2, RoundingMode.HALF_UP);
-            String s = divide.multiply(new BigDecimal("100")).toString();
-            item.setMoneyOccupationRate(s+"%");
+            if (ObjectUtils.isNotNull(totalVo.getMoneyTotal()) && totalVo.getMoneyTotal().compareTo(BigDecimal.ZERO )> 0){
+                BigDecimal divide = item.getMoney().divide(totalVo.getMoneyTotal(), 2, RoundingMode.HALF_UP);
+                String s = divide.multiply(new BigDecimal("100")).toString();
+                item.setMoneyOccupationRate(s+"%");
+            }else {
+                item.setMoneyOccupationRate("0%");
+            }
             //数量占比
-            BigDecimal divide2 = new BigDecimal(item.getOrderNum()).divide(new BigDecimal(totalVo.getOrderNumTotal()), 2, RoundingMode.HALF_UP);
-            String s2 = divide2.multiply(new BigDecimal("100")).toString();
-            item.setOccupationRate(s2+"%");
+            if (ObjectUtils.isNotNull(totalVo.getOrderNumTotal()) && totalVo.getOrderNumTotal() > 0){
+                BigDecimal divide2 = new BigDecimal(item.getOrderNum()).divide(new BigDecimal(totalVo.getOrderNumTotal()), 2, RoundingMode.HALF_UP);
+                String s2 = divide2.multiply(new BigDecimal("100")).toString();
+                item.setOccupationRate(s2+"%");
+            }
         });
         return detailVos;
     }
@@ -3395,7 +3453,8 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
             TopOrderStatisticsBo topOrderStatisticsBo = new TopOrderStatisticsBo();
             topOrderStatisticsBo.setStartTime(startTime - time);
             topOrderStatisticsBo.setEndTime(startTime);
-            topOrderStatisticsBo.setTenantId(item.getTenantId().toString());
+            topOrderStatisticsBo.setTenantId(bo.getTenantId());
+            topOrderStatisticsBo.setCustomerId(bo.getCustomerId());
             topOrderStatisticsBo.setBusinessName(bo.getBusinessName());
             if(Validator.isNotEmpty(item.getCreateSysUserId())){
                 topOrderStatisticsBo.setCreateSysUserId(item.getCreateSysUserId());
@@ -3513,6 +3572,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
             topOrderStatisticsBo.setStartTime(startTime - time);
             topOrderStatisticsBo.setEndTime(startTime);
             topOrderStatisticsBo.setCreateNo(item.getCreateNo());
+            topOrderStatisticsBo.setCustomerId(bo.getCustomerId());
             topOrderStatisticsBo.setBusinessName(item.getBusinessName());
             topOrderStatisticsBo.setTenantId(bo.getTenantId());
             List<TopOrderStatisticsMoneyVo> moneyList1 = baseMapper.getBusinessOrderMoney(topOrderStatisticsBo);
@@ -4035,6 +4095,8 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
         List<TopOldOrderGoodsListVo> list;
         if (orderVo.getOrderFrom() == 1) {
             //新系统订单
+            Order one = orderService.getOne(new LambdaQueryWrapper<Order>().eq(Order::getOrderSn, bo.getOrderSn()));
+            User user = userService.getById(one.getUserId());
             list = orderGoodsService.listByOrderSn(query);
             if (CollectionUtils.isNotEmpty(list)) {
                 List<TopOrderGoodsOrgVo> collect = list.stream().map(item -> {
@@ -4044,7 +4106,13 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                     goodsOrgVo.setDivideRate(item.getDivideRate());
                     goodsOrgVo.setDivideMoney(item.getDivideMoney());
                     goodsOrgVo.setDivideRateStr(ObjectUtils.isNotNull(item.getDivideRate())?item.getDivideRate() + "%":"");
-                    goodsOrgVo.setSignId(item.getSignId());
+                    TopOldOrderGoods oldOrderGoods = topOrderGoodsService.getOne(new LambdaQueryWrapper<TopOldOrderGoods>()
+                            .eq(TopOldOrderGoods::getGoodsId, item.getGoodsId())
+                            .eq(TopOldOrderGoods::getUserCard, EncryptHandler.encrypt(user.getIdCard()))
+                            .last("limit 1"));
+                    if (ObjectUtils.isNotNull(oldOrderGoods)){
+                        goodsOrgVo.setSignId(oldOrderGoods.getSignId());
+                    }
                     //学习状态
                     if (ObjectUtils.isNotNull(item.getGoodsType()) && ObjectUtils.isNotNull(item.getGradeId()) && item.getGoodsType() == 1) {
                         int count = userPeriodService.count(new LambdaQueryWrapper<UserPeriod>()
@@ -4069,60 +4137,80 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
             }
         } else {
             //旧系统订单
-            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("未开始");
+            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.setCheckReason(item.getCheckReason());
+                    goodsOrgVo.setApplyReason(item.getRefundReason());
+                    goodsOrgVo.setDivideRateStr(ObjectUtils.isNotNull(item.getDivideRate())?item.getDivideRate() + "%":"");
+                    goodsOrgVo.setSignId(item.getSignId());
+                    if (orderVo.getOrderBase() == 1 && ObjectUtils.isNotNull(orderVo.getInputOrderSn())){
+                        User user = userService.getByCardNoTenant(EncryptHandler.decrypt(item.getUserCard()));
+                        if (ObjectUtils.isNotNull(user)){
+                            //底单在新系统 补充学习状态
+                            Order orderOne = orderService.getOne(new LambdaQueryWrapper<Order>()
+                                    .eq(Order::getInputOrderSn, orderVo.getInputOrderSn())
+                                    .eq(Order::getUserId,user.getUserId())
+                                    .last("limit 1"));
+                            if (ObjectUtils.isNotNull(orderOne)){
+                                //底单在新系统
+                                query.setOrderSn(orderOne.getOrderSn());
+                                Order one = orderService.getOne(new LambdaQueryWrapper<Order>().eq(Order::getOrderSn, orderOne.getOrderSn()));
+                                List<OrderGoods> goodsList = orderGoodsService.list(new LambdaQueryWrapper<OrderGoods>()
+                                        .eq(OrderGoods::getOrderSn, orderOne.getOrderSn())
+                                        .eq(OrderGoods::getGoodsId, item.getGoodsId())
+                                        .ne(OrderGoods::getRefundStatus,2)
+                                        .ne(OrderGoods::getPayStatus,1));
+                                if (CollectionUtils.isNotEmpty(goodsList)) {
+                                    goodsList.forEach(goods -> {
+                                        Goods goodsById = goodsService.getById(goods.getGoodsId());
+                                        //学习状态
+                                        if (ObjectUtils.isNotNull(goodsById.getGoodsType()) && ObjectUtils.isNotNull(goods.getGradeId()) && goodsById.getGoodsType() == 1) {
+                                            int count = userPeriodService.count(new LambdaQueryWrapper<UserPeriod>()
+                                                    .eq(UserPeriod::getUserId, user.getUserId())
+                                                    .eq(UserPeriod::getGradeId, goods.getGradeId()));
+                                            if (count > 0) {
+                                                //学完/未学完
+                                                ClassGradeUser classGradeUser = classGradeUserService.getOne(new LambdaQueryWrapper<ClassGradeUser>()
+                                                        .eq(ClassGradeUser::getUserId, user.getUserId())
+                                                        .eq(ClassGradeUser::getGradeId, goods.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);
-                }
+                    //退款发起原因和审核意见
+                    TopOldOrderRefund orderRefund = topOldOrderRefundService
+                            .getOne(new LambdaQueryWrapper<TopOldOrderRefund>()
+                                    .eq(TopOldOrderRefund::getOrderGoodsId, item.getOrderGoodsId())
+                                    .eq(TopOldOrderRefund::getStatus, 1)
+                                    .orderByDesc(TopOldOrderRefund::getCreateTime).last("limit 1"));
+                    if (ObjectUtils.isNotNull(orderRefund)) {
+                        item.setRefundReason(orderRefund.getApplyReason());
+                        List<TopOldOrderCheckLog> logList = topOldOrderCheckLogService
+                                .list(new LambdaQueryWrapper<TopOldOrderCheckLog>()
+                                        .eq(TopOldOrderCheckLog::getRefundSn, orderRefund.getRefundSn())
+                                        .eq(TopOldOrderCheckLog::getStatus, 1));
+                        if (CollectionUtils.isNotEmpty(logList)) {
+                            String msg = logList.stream().filter(x -> StringUtils.isNotBlank(x.getCheckReason())).map(TopOldOrderCheckLog::getCheckReason).collect(Collectors.joining(","));
+                            item.setCheckReason(msg);
+                        }
+                    }
+                    return goodsOrgVo;
+                }).collect(Collectors.toList());
+                orgVo.setGoodsOrgVos(collect);
             }
         }
 
@@ -4652,7 +4740,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                                         .eq(OrderGoods::getStatus, 1));
                                 if (CollectionUtils.isNotEmpty(goodsList)) {
                                     //修改订单状态
-                                    goodsList.forEach(x -> x.setRefundStatus(3));
+                                    goodsList.forEach(x -> x.setRefundStatus(0));
                                     orderGoodsService.updateBatchById(goodsList);
                                 }
                             }
@@ -4673,7 +4761,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                 }
                 orderGoodsRefundService.updateBatchById(refundList);
                 orderGoodsService.update(new LambdaUpdateWrapper<OrderGoods>()
-                        .set(OrderGoods::getRefundStatus, 3)//未通过
+                        .set(OrderGoods::getRefundStatus, 0)//未通过
                         .in(OrderGoods::getOrderGoodsId, orderGoodsIds));
 
                 orderService.update(new LambdaUpdateWrapper<Order>()

+ 6 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/vo/TopOldOrderGoodsListVo.java

@@ -80,6 +80,8 @@ public class TopOldOrderGoodsListVo {
 	private Integer checkStatus;
 	@ApiModelProperty("退款申请原因")
 	private String refundReason;
+	@ApiModelProperty("申请时间")
+	private Long applyUpTime;
 	@ApiModelProperty("审核意见")
 	private String checkReason;
 	@ApiModelProperty("分成类型1百分比 2固定成本")
@@ -92,6 +94,10 @@ public class TopOldOrderGoodsListVo {
 	private BigDecimal divideMoney;
 	@ApiModelProperty("税前奖金")
 	private BigDecimal pretaxBrokerage;
+	@ApiModelProperty("补款金额")
+	private BigDecimal repairMoney;
+	@ApiModelProperty("补款证明")
+	private String repairProve;
 
 	private Long signId;
 

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

@@ -37,7 +37,7 @@ public class TopOrderAcceptanceExportBo implements Serializable {
     /** 到账时间 */
     @ApiModelProperty("到账时间")
     @Excel(name = "*到账时间 yyyy/MM/dd")
-    private String incomeTime;
+    private String incomeTimeStr;
     /** 付款账户名 */
     @ApiModelProperty("付款账户名")
     @Excel(name = "*付款账户名")

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

@@ -104,8 +104,11 @@ 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("yyyy/MM/dd",item.getIncomeTime()));
+            BigDecimal bigDecimal = new BigDecimal(item.getIncomeMoney());
+            bo.setIncomeMoney(bigDecimal);
+            //待认款金额
+            bo.setUnacceptanceMoney(bigDecimal);
+            bo.setIncomeTime(DateUtils.dateTimeSec("yyyy/MM/dd",item.getIncomeTimeStr()));
             bo.setAcceptanceType(1);
             bo.setIncomeType(1);
             bo.setIncomeDepartment("祥粤学校");
@@ -116,7 +119,7 @@ public class TopOrderAcceptanceServiceImpl extends ServiceImpl<TopOrderAcceptanc
             return bo;
         }).collect(Collectors.toList());
 
-        return updateBatchById(collect);
+        return saveBatch(collect);
     }
 
     @Override

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

@@ -29,22 +29,22 @@ public class TopOrderStatisticsDetailVo implements Serializable {
     private Integer orderType;
 
     @ApiModelProperty("环比")
-    private BigDecimal weekRate;
+    private BigDecimal weekRate = BigDecimal.ZERO;
 
     @ApiModelProperty("同比")
-    private BigDecimal yearRate;
+    private BigDecimal yearRate = BigDecimal.ZERO;
 
     @ApiModelProperty("占比")
     private String occupationRate;
 
     @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;
 
     @ApiModelProperty("占比")
     private String moneyOccupationRate;

+ 1 - 0
zhongzheng-system/src/main/resources/mapper/modules/goods/GoodsMapper.xml

@@ -1039,6 +1039,7 @@
         where
               g.goods_status = 1
               and g.status = 1
+              and g.goods_type != 5
               and g.education_type_id = #{educationTypeId}
               and g.project_id = #{projectId}
               and g.business_id = #{businessId}

+ 2 - 0
zhongzheng-system/src/main/resources/mapper/modules/order/OrderGoodsMapper.xml

@@ -802,6 +802,7 @@
     <resultMap id="getlist" type="com.zhongzheng.modules.top.goods.vo.TopOldOrderGoodsListVo">
         <result property="orderGoodsId" column="order_goods_id"/>
         <result property="gradeId" column="grade_id"/>
+        <result property="goodsId" column="goods_id"/>
         <result property="userId" column="user_id" />
         <result property="userName" column="realname" />
         <result property="userCard" column="id_card" typeHandler="com.zhongzheng.common.type.EncryptHandler"/>
@@ -823,6 +824,7 @@
         SELECT
             og.order_goods_id,
             og.grade_id,
+            og.goods_id,
             u.user_id,
             u.realname,
             u.id_card,

+ 13 - 1
zhongzheng-system/src/main/resources/mapper/modules/top/TopOldOrderGoodsMapper.xml

@@ -30,6 +30,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     <resultMap id="getlist" type="com.zhongzheng.modules.top.goods.vo.TopOldOrderGoodsListVo">
         <result property="orderGoodsId" column="order_goods_id"/>
+        <result property="goodsId" column="goods_id"/>
         <result property="userName" column="user_name"/>
         <result property="userCard" column="user_card" typeHandler="com.zhongzheng.common.type.EncryptHandler"/>
         <result property="userPhone" column="user_phone"/>
@@ -40,15 +41,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="goodsRealPrice" column="goods_real_price"/>
         <result property="signId" column="sign_id"/>
         <result property="checkStatus" column="check_status"/>
+        <result property="checkReason" column="check_reason"/>
+        <result property="applyUpTime" column="apply_up_time"/>
+        <result property="refundReason" column="apply_up_reason"/>
         <result property="goodsYear" column="goods_year"/>
         <result property="divideType" column="divide_type"/>
         <result property="divideRate" column="divide_rate"/>
         <result property="divideMoney" column="divide_money"/>
+        <result property="repairMoney" column="repair_money"/>
+        <result property="repairProve" column="repairProve"/>
     </resultMap>
 
     <select id="getListByQuery" parameterType="com.zhongzheng.modules.top.goods.bo.TopOldOrderGoodsQuery" resultMap="getlist">
         SELECT
             order_goods_id,
+            goods_id,
             user_name,
             user_card,
             user_phone,
@@ -63,9 +70,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             divide_rate,
             divide_money,
             check_status,
+            check_reason,
+            apply_up_time,
+            apply_up_reason,
             divide_type,
             divide_rate,
-            divide_money
+            divide_money,
+            repair_money,
+            repair_prove
         FROM
             top_old_order_goods
         WHERE

+ 18 - 14
zhongzheng-system/src/main/resources/mapper/modules/top/TopOldOrderMapper.xml

@@ -1234,7 +1234,7 @@
                             AND tenant_id = #{tenantId}
                         </if>
                         <if test="customerId != null and customerId != ''">
-                            AND tenant_id  = #{customerId}
+                            AND old_customer_id = #{customerId}
                         </if>
                         GROUP BY
                             tenant_id
@@ -1348,8 +1348,12 @@
         AND vo.`status` = 1
         AND vo.check_status = 1
         AND vo.old_customer_id IS NOT NULL
-        AND vo.check_time BETWEEN #{startTime}
-        AND #{endTime}
+        <if test="startTime != null and startTime != ''">
+            AND vo.check_time &gt;= #{startTime}
+        </if>
+        <if test="endTime != null and endTime != ''">
+            AND vo.check_time &lt;= #{endTime}
+        </if>
         <if test="tenantId != null and tenantId != ''">
             AND vo.tenant_id = #{tenantId}
         </if>
@@ -1357,7 +1361,7 @@
             AND vo.create_sys_user_id = #{createSysUserId}
         </if>
         <if test="customerId != null and customerId != ''">
-            AND vo.tenant_id  = #{customerId}
+            AND vo.old_customer_id  = #{customerId}
         </if>
         <if test="businessName != null and businessName != ''">
             AND (
@@ -1416,7 +1420,7 @@
             AND tenant_id = #{tenantId}
         </if>
         <if test="customerId != null and customerId != ''">
-            AND tenant_id  = #{customerId}
+            AND old_customer_id  = #{customerId}
         </if>
         GROUP BY
         tenant_id
@@ -1535,7 +1539,7 @@
             AND tenant_id = #{tenantId}
         </if>
         <if test="customerId != null and customerId != ''">
-            AND tenant_id  = #{customerId}
+            AND old_customer_id  = #{customerId}
         </if>
         <if test="createSysUserId != null and createSysUserId != ''">
             AND create_sys_user_id = #{createSysUserId}
@@ -1625,7 +1629,7 @@
             AND too.tenant_id = #{tenantId}
         </if>
         <if test="customerId != null and customerId != ''">
-            AND too.tenant_id  = #{customerId}
+            AND too.old_customer_id  = #{customerId}
         </if>
         <if test="businessName != null and businessName != ''">
             AND (
@@ -1782,7 +1786,7 @@
                     AND ouu.business_name = #{businessName}
                 </if>
                 <if test="customerId != null and customerId != ''">
-                    AND oo.tenant_id  = #{customerId}
+                    AND oo.old_customer_id  = #{customerId}
                 </if>
                 GROUP BY
                     ouu.business_name UNION ALL
@@ -1883,7 +1887,7 @@
                 AND oo.create_sys_user_id = #{createSysUserId}
             </if>
             <if test="customerId != null and customerId != ''">
-                AND oo.tenant_id  = #{customerId}
+                AND oo.old_customer_id  = #{customerId}
             </if>
             GROUP BY
                 ouu.business_name UNION ALL
@@ -1954,9 +1958,9 @@
             resultType="java.lang.Long">
 
         SELECT
-        IFNULL(COUNT( og.order_goods_id ),0)+ (
+        IFNULL(COUNT( DISTINCT og.order_sn ),0)+ (
                 SELECT
-        IFNULL(COUNT( otg.order_goods_id ),0) order_num
+        IFNULL(COUNT( DISTINCT otg.order_sn ),0) order_num
                 FROM
                     `top_old_order_goods` `otg`
                         LEFT JOIN top_old_order oo ON otg.order_sn = oo.order_sn
@@ -1977,7 +1981,7 @@
                     AND oo.create_no = #{createNo}
                 </if>
                 <if test="customerId != null and customerId != ''">
-                    AND oo.tenant_id  = #{customerId}
+                    AND oo.old_customer_id  = #{customerId}
                 </if>
                 <if test="createSysUserId != null and createSysUserId != ''">
                     AND oo.create_sys_user_id = #{createSysUserId}
@@ -2183,7 +2187,7 @@
         og.tenant_id,
         2 AS order_type,
         IFNULL( SUM( og.goods_received ), 0 ) money2,
-        COUNT( * ) order_num2
+        COUNT(DISTINCT o.order_sn) order_num2
         <if test="tenantId != null and tenantId != ''">
             ,'' AS create_sys_user_id, '' as create_username
         </if>
@@ -2207,7 +2211,7 @@
             AND o.tenant_id = #{tenantId}
         </if>
         <if test="customerId != null and customerId != ''">
-            AND o.old_customer_id  = #{customerId}
+            AND o.tenant_id  = #{customerId}
         </if>
         <if test="createSysUserId != null and createSysUserId != ''">
             AND 1=0