yangdamao 1 年之前
父節點
當前提交
3bbbbbb00d

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

@@ -47,6 +47,7 @@ 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;
 import com.zhongzheng.modules.top.financial.vo.TopOrderRevocationVo;
 import com.zhongzheng.modules.top.financial.vo.TopSellerDiscountVo;
 import com.zhongzheng.modules.top.goods.bo.*;
@@ -313,4 +314,16 @@ public class CommonController extends BaseController {
         List<TopOrderLogVo> list = iTopOldOrderService.logList(bo);
         return getDataTable(list);
     }
+
+    /**
+     * 获取订单商品信息
+     */
+    @ApiOperation("获取订单商品信息")
+    @PostMapping("/order/goods/list")
+    public AjaxResult<TopOrderOrgVo> getOrderGoodsList(@RequestBody TopOldOrderQueryBo bo) {
+        if(!ToolsUtils.checkSignFromOldSys(bo.getStamp().toString(),bo.getSign())){
+            throw new CustomException("签名错误");
+        }
+        return AjaxResult.success(iTopOldOrderService.getTopOrderGoodsList(bo));
+    }
 }

+ 37 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/financial/vo/TopOrderGoodsOrgVo.java

@@ -0,0 +1,37 @@
+package com.zhongzheng.modules.top.financial.vo;
+
+import com.zhongzheng.common.annotation.Excel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * 成本模板对象 top_cost_tp
+ *
+ * @author ruoyi
+ * @date 2023-04-20
+ */
+@Data
+public class TopOrderGoodsOrgVo implements Serializable {
+
+    @ApiModelProperty("订单编号")
+    private String orderSn;
+
+    @ApiModelProperty("分成类型1百分比 2固定成本")
+    private Integer divideType;
+
+    @ApiModelProperty("分成比率(固定成本为固定值)")
+    private BigDecimal divideRate;
+
+    @ApiModelProperty("分成比率(固定成本为固定值)")
+    private String divideRateStr;
+
+    @ApiModelProperty("分成钱")
+    private BigDecimal divideMoney;
+
+    @ApiModelProperty("学习状态:0未开始,1学习中,2已结束")
+    private String studyStatus;
+
+}

+ 36 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/financial/vo/TopOrderOrgVo.java

@@ -0,0 +1,36 @@
+package com.zhongzheng.modules.top.financial.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * 成本模板对象 top_cost_tp
+ *
+ * @author ruoyi
+ * @date 2023-04-20
+ */
+@Data
+public class TopOrderOrgVo implements Serializable {
+
+    @ApiModelProperty("订单编号")
+    private String orderSn;
+
+    @ApiModelProperty("分成模式 1机构分成 2业务员分成")
+    private Integer divideModel;
+
+    @ApiModelProperty("机构分成钱")
+    private BigDecimal divideCompanyMoney;
+
+    @ApiModelProperty("业务员分成钱")
+    private BigDecimal divideSellerMoney;
+
+    @ApiModelProperty("分成审核状态 1正常 2待审核 3审核中  4审核不通过 5审核通过待支付 6支付中 7已支付 8支付失败")
+    private Integer divideStatus;
+
+    @ApiModelProperty("订单商品")
+    private List<TopOrderGoodsOrgVo> goodsOrgVos;
+}

+ 7 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/bo/TopOldOrderGoodsQuery.java

@@ -6,6 +6,7 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
+import javax.validation.constraints.NotBlank;
 import java.util.List;
 
 /**
@@ -32,7 +33,13 @@ public class TopOldOrderGoodsQuery extends BaseEntity {
 	@ApiModelProperty(value = "排序的方向", example = "asc,desc")
 	private String isAsc;
 
+	@ApiModelProperty("当前时间戳")
+	@NotBlank(message = "当前时间戳不能为空")
+	private Long stamp;
 
+	@ApiModelProperty("签名")
+	@NotBlank(message = "签名不能为空")
+	private String sign;
 	/** 订单编号 */
 	@ApiModelProperty("订单编号")
 	private String orderSn;

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/bo/TopOldOrderQueryBo.java

@@ -166,4 +166,7 @@ public class TopOldOrderQueryBo extends BaseEntity {
 
 	@ApiModelProperty("下单客户")
 	private String purchaseOrg;
+
+	@ApiModelProperty("补款金额标识")
+	private Integer repairSign;
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/service/ITopOldOrderService.java

@@ -192,4 +192,6 @@ public interface ITopOldOrderService extends IService<TopOldOrder> {
 	List<TopTenantDataVo> getTenantListData();
 
 	List<TopTenantDataVo> getSaleListData(TopOrderStatisticsBo bo);
+
+	TopOrderOrgVo getTopOrderGoodsList(TopOldOrderQueryBo bo);
 }

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

@@ -1135,7 +1135,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                     }
                     //分成模式
                     if (ObjectUtils.isNotNull(item.getDivideType()) && item.getDivideType() == 1){
-                        item.setDivideRateStr(item.getDivideRate().multiply(new BigDecimal("100.00"))+"%");
+                        item.setDivideRateStr(item.getDivideRate()+"%");
                     }else {
                         item.setDivideRateStr(item.getDivideRate().toString());
                     }
@@ -1181,7 +1181,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                                 x.setStudyStatus("未开始");
                                 //分成模式
                                 if (ObjectUtils.isNotNull(x.getDivideType()) && x.getDivideType() == 1){
-                                    x.setDivideRateStr(x.getDivideRate().multiply(new BigDecimal("100.00"))+"%");
+                                    x.setDivideRateStr(x.getDivideRate()+"%");
                                 }else {
                                     x.setDivideRateStr(x.getDivideRate().toString());
                                 }
@@ -2728,7 +2728,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
             }
             List<Long> dayTime = getDayTime(bo.getStartTime(), bo.getEndTime());
             List<TopOrderStatisticsTwoVo> vos = new ArrayList<>();
-            for (Long day : dayTime) {
+            for (Long day : dayTime.stream().sorted().collect(Collectors.toList())) {
                 TopOrderStatisticsTwoVo twoVo = new TopOrderStatisticsTwoVo();
                 twoVo.setCustomerId(customerId);
                 twoVo.setCustomerName(customerName);
@@ -2773,7 +2773,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
             }
             Map<Long, Long> weekTime = getWeekTime(bo.getStartTime(), bo.getEndTime());
             List<TopOrderStatisticsTwoVo> vos = new ArrayList<>();
-            for (Long time : weekTime.keySet()) {
+            for (Long time : weekTime.keySet().stream().sorted().collect(Collectors.toList())) {
                 TopOrderStatisticsTwoVo twoVo = new TopOrderStatisticsTwoVo();
                 twoVo.setCustomerId(customerId);
                 twoVo.setCustomerName(customerName);
@@ -2822,7 +2822,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
             }
             Map<Long, Long> monthTime = DateUtils.getMonthTime(bo.getStartTime(), bo.getEndTime());
             List<TopOrderStatisticsTwoVo> vos = new ArrayList<>();
-            for (Long time : monthTime.keySet()) {
+            for (Long time : monthTime.keySet().stream().sorted().collect(Collectors.toList())) {
                 TopOrderStatisticsTwoVo twoVo = new TopOrderStatisticsTwoVo();
                 twoVo.setCustomerId(customerId);
                 twoVo.setCustomerName(customerName);
@@ -3915,6 +3915,76 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
         return dataVos;
     }
 
+    @Override
+    public TopOrderOrgVo getTopOrderGoodsList(TopOldOrderQueryBo bo) {
+        //查询视图 v_top_order
+        TopOldOrderVo orderVo = baseMapper.queryById(bo.getOrderSn());
+        if (ObjectUtils.isNull(orderVo)) {
+            throw new CustomException("订单号错误!");
+        }
+        TopOrderOrgVo orgVo = new TopOrderOrgVo();
+        orgVo.setOrderSn(bo.getOrderSn());
+        orgVo.setDivideModel(orderVo.getDivideModel());
+        orgVo.setDivideStatus(orderVo.getDivideStatus());
+        orgVo.setDivideCompanyMoney(orderVo.getDivideCompanyMoney());
+        orgVo.setDivideSellerMoney(orderVo.getDivideSellerMoney());
+
+        TopOldOrderGoodsQuery query = new TopOldOrderGoodsQuery();
+        query.setOrderSn(bo.getOrderSn());
+        List<TopOldOrderGoodsListVo> list;
+        if (orderVo.getOrderFrom() == 1) {
+            //新系统订单
+            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(item.getDivideRate() + "%");
+                    //学习状态
+                    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(item.getDivideRate() + "%");
+                    return goodsOrgVo;
+                }).collect(Collectors.toList());
+                orgVo.setGoodsOrgVos(collect);
+            }
+        }
+
+        return orgVo;
+    }
+
     private List<Long> getDayTime(Long startTime,Long endTime){
         List<Long> tiemList = new ArrayList<>();
         Long zeroTime = DateUtils.getScheduleTimeZeroTime(startTime);
@@ -3923,7 +3993,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
         for (Long i = zeroTime; i <= endTime; i = i+time) {
             tiemList.add(i);
         }
-        return tiemList;
+        return tiemList.stream().sorted().collect(Collectors.toList());
     }
 
     private Map<Long,Long> getWeekTime(Long startTime,Long endTime){
@@ -4849,6 +4919,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                     break;
             }
             orderGoods.setDivideModel(divideModel);
+            orderGoods.setDivideType(topCostTpItem.getItemType());
             orderGoods.setDivideMoney(divide);
             topOrderGoodsService.updateById(orderGoods);
             divideTotal = divideTotal.add(divide);
@@ -5351,6 +5422,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                         }
                     }
                     orderGoods.setDivideMoney(cost);
+                    orderGoodsService.updateById(orderGoods);
                     costTotal = costTotal.add(cost);
                 }
 
@@ -5467,8 +5539,8 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                         BigDecimal goodsPriceDecimal = goodsPrice;
                         //换算订单成本和盈亏
                         TopCostTpItemVo topCostTpItem = tpItem;
-                        orderGoods.setDivideType(topCostTpItem.getDockType());
-                        orderGoods.setDivideRate(topCostTpItem.getDockValue());
+                        orderGoods.setDivideType(topCostTpItem.getItemType());
+                        orderGoods.setDivideRate(topCostTpItem.getTypeValue());
                         if (ObjectUtil.isNotNull(topCostTpItem.getDockStatus()) && topCostTpItem.getDockStatus() == 1) {
                             //启用成本扣除项
                             switch (topCostTpItem.getDockType()) {
@@ -5499,6 +5571,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                         }
                     }
                     orderGoods.setDivideMoney(cost);
+                    topOrderGoodsService.updateById(orderGoods);
                     costTotal = costTotal.add(cost);
                 }
                 BigDecimal cost = costTotal.add(brokerage);

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/vo/TopConversionRateDataVo.java

@@ -52,6 +52,9 @@ public class TopConversionRateDataVo implements Serializable {
     @ApiModelProperty("机构名称")
     private String orgName;
 
+    @ApiModelProperty("机构ID")
+    private String orgId;
+
     @ApiModelProperty("业务员名称")
     private String saleMan;
 

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

@@ -142,6 +142,9 @@
         <if test="orderSn != null and orderSn != ''">
             AND vto.order_sn = #{orderSn}
         </if>
+        <if test="repairSign != null and repairSign != '' and repairSign == 1">
+            AND vto.repair_money_total <![CDATA[ > ]]> 0
+        </if>
         <if test="tenantId != null and tenantId != ''">
             AND vto.tenant_id = #{tenantId}
         </if>
@@ -227,6 +230,9 @@
         <if test="endTime != null and endTime != ''">
             AND ot.create_time <![CDATA[ <= ]]> #{endTime}
         </if>
+        <if test="repairSign != null and repairSign != '' and repairSign == 1">
+            AND ot.repair_money_total <![CDATA[ > ]]> 0
+        </if>
         <if test="orderSn != null and orderSn != ''">
             AND ot.order_sn = #{orderSn}
         </if>

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

@@ -13,7 +13,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
       WHERE
           `status` = 1
             <if test="businessAffiliation != null and businessAffiliation != ''">
-                AND business_affiliation = #{invoiceStatus}
+                AND business_affiliation = #{businessAffiliation}
             </if>
             <if test="incomeType != null and incomeType != ''">
                 AND income_type = #{incomeType}