Commit c94daedfd5eb1317a71f1b6c816707460ad13db2

Authored by zhongnanhuang
2 parents 7835e768 bc3259cc

Merge branch 'zhongnanhuang'

Showing 27 changed files with 588 additions and 5 deletions
src/main/java/com/order/erp/common/utils/ProfitUtils.java
@@ -28,6 +28,6 @@ public class ProfitUtils { @@ -28,6 +28,6 @@ public class ProfitUtils {
28 28
29 BigDecimal customerTotalPrice = new BigDecimal(calculateVO.getCustomerTotalPrice()); 29 BigDecimal customerTotalPrice = new BigDecimal(calculateVO.getCustomerTotalPrice());
30 30
31 - return new BigDecimal(1).subtract((productionDepartmentTotalPrice.divide(exchangeRate).add(packetTotalPrice)).divide(customerTotalPrice)).doubleValue(); 31 + return new BigDecimal(1).subtract((productionDepartmentTotalPrice.divide(exchangeRate,4,BigDecimal.ROUND_HALF_UP).add(packetTotalPrice)).divide(customerTotalPrice,4,BigDecimal.ROUND_HALF_UP)).doubleValue();
32 } 32 }
33 } 33 }
src/main/java/com/order/erp/controller/IndexController.java 0 → 100644
  1 +package com.order.erp.controller;
  2 +
  3 +import com.order.erp.common.constant.ServerResult;
  4 +import com.order.erp.domain.OrderStatusEnum;
  5 +import com.order.erp.domain.vo.IndexDataVO;
  6 +import com.order.erp.service.order.OrderBaseInfoService;
  7 +import com.order.erp.service.order.OrderCompletionReportService;
  8 +import com.order.erp.service.order.OrderInspectionStageService;
  9 +import com.order.erp.service.order.OrderProfitAnalysisService;
  10 +import org.springframework.web.bind.annotation.GetMapping;
  11 +import org.springframework.web.bind.annotation.RequestMapping;
  12 +import org.springframework.web.bind.annotation.RestController;
  13 +
  14 +import javax.annotation.Resource;
  15 +import java.util.List;
  16 +import java.util.Map;
  17 +
  18 +/**
  19 + * @author zhongnanhuang
  20 + * @version 1.0
  21 + * @project order-erp
  22 + * @description 首页
  23 + * @date 2023/10/23 16:44:55
  24 + */
  25 +@RestController
  26 +@RequestMapping("/order/erp/index")
  27 +public class IndexController {
  28 +
  29 + @Resource
  30 + OrderBaseInfoService orderBaseInfoService;
  31 +
  32 + @Resource
  33 + OrderInspectionStageService orderInspectionStageService;
  34 +
  35 + @Resource
  36 + OrderProfitAnalysisService orderProfitAnalysisService;
  37 +
  38 + @Resource
  39 + OrderCompletionReportService orderCompletionReportService;
  40 +
  41 + @GetMapping("/data")
  42 + public ServerResult getData(){
  43 + //订单总完成数
  44 + long orderTotalFinished = orderBaseInfoService.countByOrderStatus(OrderStatusEnum.ORDER_FINISH.getStatus());
  45 + //订单当月完成数
  46 + long orderRecentMonthFinished = orderBaseInfoService.countRecentMonthByOrderStatus(OrderStatusEnum.ORDER_FINISH.getStatus());
  47 +
  48 +
  49 + //跟单和质检中
  50 + long inspecting = orderInspectionStageService.countByOrderStatus(OrderStatusEnum.INSPECT_ING.getStatus());
  51 + long recentMonthInspecting = orderInspectionStageService.countRecentMonthByOrderStatus(OrderStatusEnum.INSPECT_ING.getStatus());
  52 +
  53 + //利润分析表待审核
  54 + long orderProfitWaitAudit = orderProfitAnalysisService.countByOrderStatus(OrderStatusEnum.PROFIT_WAIT_AUDIT.getStatus());
  55 + long orderRecentWeekProfitWaitAudit = orderProfitAnalysisService.countRecentWeekByOrderStatus(OrderStatusEnum.PROFIT_WAIT_AUDIT.getStatus());
  56 +
  57 + //项目报告书待审核
  58 + long orderReport = orderCompletionReportService.countByOrderStatus(OrderStatusEnum.REPORT_WAIT_AUDIT.getStatus());
  59 + long orderYearReport = orderCompletionReportService.countYearByOrderStatus(OrderStatusEnum.REPORT_WAIT_AUDIT.getStatus());
  60 +
  61 +
  62 + IndexDataVO indexDataVo = new IndexDataVO();
  63 + indexDataVo.setOrderFinishedCount(orderTotalFinished);
  64 + indexDataVo.setOrderRecentMonthFinishedCount(orderRecentMonthFinished);
  65 + indexDataVo.setOrderInspectingCount(inspecting);
  66 + indexDataVo.setOrderRecentMonthInspectingCount(recentMonthInspecting);
  67 + indexDataVo.setOrderProfitWaitAuditCount(orderProfitWaitAudit);
  68 + indexDataVo.setOrderRecentWeekProfitWaitAuditCount(orderRecentWeekProfitWaitAudit);
  69 + indexDataVo.setOrderReportWaitAuditCount(orderReport);
  70 + indexDataVo.setOrderReportRecentYearWaitAuditCount(orderYearReport);
  71 +
  72 + return ServerResult.success(indexDataVo);
  73 + }
  74 +
  75 + @GetMapping("/chartData")
  76 + public ServerResult getChartData(){
  77 + //订单趋势数据
  78 + List<Map<String,Integer>> chartData = orderBaseInfoService.countDaysOrder();
  79 + return ServerResult.success(chartData);
  80 + }
  81 +}
src/main/java/com/order/erp/controller/OrderProfitController.java 0 → 100644
  1 +package com.order.erp.controller;
  2 +
  3 +import com.order.erp.common.constant.ServerResult;
  4 +import com.order.erp.domain.dto.order.OrderProfitAnalysisDO;
  5 +import com.order.erp.service.order.OrderProfitAnalysisService;
  6 +import org.springframework.web.bind.annotation.PostMapping;
  7 +import org.springframework.web.bind.annotation.RequestBody;
  8 +import org.springframework.web.bind.annotation.RequestMapping;
  9 +import org.springframework.web.bind.annotation.RestController;
  10 +
  11 +import javax.annotation.Resource;
  12 +import java.util.List;
  13 +import java.util.Map;
  14 +
  15 +/**
  16 + * @author zhongnanhuang
  17 + * @version 1.0
  18 + * @project order-erp
  19 + * @description 订单利润表控制层
  20 + * @date 2023/10/23 11:48:36
  21 + */
  22 +@RestController
  23 +@RequestMapping("/order/erp/profit")
  24 +public class OrderProfitController {
  25 +
  26 + @Resource
  27 + OrderProfitAnalysisService orderProfitAnalysisService;
  28 +
  29 + @PostMapping("/analysis")
  30 + public ServerResult analysis(@RequestBody Map<String,List<Long>> body){
  31 + List<Long> orderIds = body.get("orderIds");
  32 + if (orderIds==null||orderIds.size()<=0){
  33 + return ServerResult.fail("订单不能为空");
  34 + }
  35 +
  36 + OrderProfitAnalysisDO orderProfitAnalysisDO = orderProfitAnalysisService.analysisByOrderIds(orderIds);
  37 +
  38 + if (orderProfitAnalysisDO==null){
  39 + return ServerResult.fail("找不到订单信息");
  40 + }
  41 +
  42 + return ServerResult.success(orderProfitAnalysisDO);
  43 + }
  44 +}
src/main/java/com/order/erp/domain/vo/IndexDataVO.java 0 → 100644
  1 +package com.order.erp.domain.vo;
  2 +
  3 +import lombok.AllArgsConstructor;
  4 +import lombok.Data;
  5 +import lombok.NoArgsConstructor;
  6 +import lombok.ToString;
  7 +
  8 +/**
  9 + * @author zhongnanhuang
  10 + * @version 1.0
  11 + * @project order-erp
  12 + * @description 首页数据展示
  13 + * @date 2023/10/24 09:03:20
  14 + */
  15 +@Data
  16 +@AllArgsConstructor
  17 +@ToString
  18 +@NoArgsConstructor
  19 +public class IndexDataVO {
  20 + private Long orderFinishedCount;
  21 +
  22 + private Long orderRecentMonthFinishedCount;
  23 +
  24 + private Long orderInspectingCount;
  25 +
  26 + private Long orderRecentMonthInspectingCount;
  27 +
  28 + private Long orderProfitWaitAuditCount;
  29 +
  30 + private Long orderRecentWeekProfitWaitAuditCount;
  31 +
  32 + private Long orderReportWaitAuditCount;
  33 +
  34 + private Long orderReportRecentYearWaitAuditCount;
  35 +
  36 +}
src/main/java/com/order/erp/domain/vo/OrderCountVO.java 0 → 100644
  1 +package com.order.erp.domain.vo;
  2 +
  3 +import lombok.AllArgsConstructor;
  4 +import lombok.Data;
  5 +import lombok.NoArgsConstructor;
  6 +import lombok.ToString;
  7 +
  8 +/**
  9 + * @author zhongnanhuang
  10 + * @version 1.0
  11 + * @project order-erp
  12 + * @description 订单每日数据
  13 + * @date 2023/10/24 10:28:59
  14 + */
  15 +@Data
  16 +@AllArgsConstructor
  17 +@NoArgsConstructor
  18 +@ToString
  19 +public class OrderCountVO {
  20 + private String hour;
  21 + private Integer count;
  22 +}
src/main/java/com/order/erp/mapper/order/OrderBaseInfoMapper.java
1 package com.order.erp.mapper.order; 1 package com.order.erp.mapper.order;
2 2
3 import com.baomidou.mybatisplus.core.mapper.BaseMapper; 3 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  4 +import com.order.erp.domain.OrderStatusEnum;
4 import com.order.erp.domain.dto.order.OrderBaseInfoDO; 5 import com.order.erp.domain.dto.order.OrderBaseInfoDO;
  6 +import com.order.erp.domain.vo.OrderCountVO;
  7 +import org.apache.ibatis.annotations.Select;
  8 +
  9 +import java.util.List;
  10 +import java.util.Map;
5 11
6 /** 12 /**
7 * 订单基础信息表(OrderBaseInfo)表数据库访问层 13 * 订单基础信息表(OrderBaseInfo)表数据库访问层
@@ -12,5 +18,10 @@ import com.order.erp.domain.dto.order.OrderBaseInfoDO; @@ -12,5 +18,10 @@ import com.order.erp.domain.dto.order.OrderBaseInfoDO;
12 public interface OrderBaseInfoMapper extends BaseMapper<OrderBaseInfoDO> { 18 public interface OrderBaseInfoMapper extends BaseMapper<OrderBaseInfoDO> {
13 19
14 20
  21 + @Select("SELECT count(*) FROM order_base_info WHERE order_status=#{orderStatus} and DATE_SUB(CURDATE(), INTERVAL 1 MONTH) <= date(create_time);")
  22 + long countRecentMonthByOrderStatus(Integer orderStatus);
  23 +
  24 + @Select("SELECT DATE(create_time) AS dateTime, COUNT(*) AS orderCount FROM order_base_info GROUP BY dateTime;")
  25 + List<Map<String, Integer>> countDaysOrder();
15 } 26 }
16 27
src/main/java/com/order/erp/mapper/order/OrderCompletionReportMapper.java
@@ -2,6 +2,7 @@ package com.order.erp.mapper.order; @@ -2,6 +2,7 @@ package com.order.erp.mapper.order;
2 2
3 import com.baomidou.mybatisplus.core.mapper.BaseMapper; 3 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 import com.order.erp.domain.dto.order.OrderCompletionReportDO; 4 import com.order.erp.domain.dto.order.OrderCompletionReportDO;
  5 +import org.apache.ibatis.annotations.Select;
5 6
6 /** 7 /**
7 * 订单-项目完成报告书(OrderCompletionReport)表数据库访问层 8 * 订单-项目完成报告书(OrderCompletionReport)表数据库访问层
@@ -12,5 +13,7 @@ import com.order.erp.domain.dto.order.OrderCompletionReportDO; @@ -12,5 +13,7 @@ import com.order.erp.domain.dto.order.OrderCompletionReportDO;
12 public interface OrderCompletionReportMapper extends BaseMapper<OrderCompletionReportDO> { 13 public interface OrderCompletionReportMapper extends BaseMapper<OrderCompletionReportDO> {
13 14
14 15
  16 + @Select("SELECT count(*) FROM order_completion_report WHERE order_status=20 and create_time >= DATE_SUB(NOW(), INTERVAL 1 YEAR);SELECT * FROM order_completion_report WHERE order_status=#{status} and create_time >= DATE_SUB(NOW(), INTERVAL 1 YEAR);")
  17 + long countYearByOrderStatus(Integer status);
15 } 18 }
16 19
src/main/java/com/order/erp/mapper/order/OrderInspectionStageMapper.java
@@ -2,6 +2,7 @@ package com.order.erp.mapper.order; @@ -2,6 +2,7 @@ package com.order.erp.mapper.order;
2 2
3 import com.baomidou.mybatisplus.core.mapper.BaseMapper; 3 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 import com.order.erp.domain.dto.order.OrderInspectionStageDO; 4 import com.order.erp.domain.dto.order.OrderInspectionStageDO;
  5 +import org.apache.ibatis.annotations.Select;
5 6
6 /** 7 /**
7 * 订单-质检环节(OrderInspectionStage)表数据库访问层 8 * 订单-质检环节(OrderInspectionStage)表数据库访问层
@@ -12,5 +13,7 @@ import com.order.erp.domain.dto.order.OrderInspectionStageDO; @@ -12,5 +13,7 @@ import com.order.erp.domain.dto.order.OrderInspectionStageDO;
12 public interface OrderInspectionStageMapper extends BaseMapper<OrderInspectionStageDO> { 13 public interface OrderInspectionStageMapper extends BaseMapper<OrderInspectionStageDO> {
13 14
14 15
  16 + @Select("SELECT count(*) FROM order_inspection_stage WHERE order_status=#{status} and DATE_SUB(CURDATE(), INTERVAL 1 MONTH) <= date(create_time);")
  17 + long countRecentMonthByOrderStatus(Integer status);
15 } 18 }
16 19
src/main/java/com/order/erp/mapper/order/OrderProfitAnalysisMapper.java
@@ -2,6 +2,7 @@ package com.order.erp.mapper.order; @@ -2,6 +2,7 @@ package com.order.erp.mapper.order;
2 2
3 import com.baomidou.mybatisplus.core.mapper.BaseMapper; 3 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 import com.order.erp.domain.dto.order.OrderProfitAnalysisDO; 4 import com.order.erp.domain.dto.order.OrderProfitAnalysisDO;
  5 +import org.apache.ibatis.annotations.Select;
5 6
6 /** 7 /**
7 * 订单利润分析表(OrderProfitAnalysis)表数据库访问层 8 * 订单利润分析表(OrderProfitAnalysis)表数据库访问层
@@ -12,5 +13,7 @@ import com.order.erp.domain.dto.order.OrderProfitAnalysisDO; @@ -12,5 +13,7 @@ import com.order.erp.domain.dto.order.OrderProfitAnalysisDO;
12 public interface OrderProfitAnalysisMapper extends BaseMapper<OrderProfitAnalysisDO> { 13 public interface OrderProfitAnalysisMapper extends BaseMapper<OrderProfitAnalysisDO> {
13 14
14 15
  16 + @Select("SELECT count(*) FROM order_profit_analysis WHERE order_status=#{status} and create_time >= DATE_SUB(NOW(), INTERVAL 1 WEEK);")
  17 + long countRecentWeekByOrderStatus(Integer status);
15 } 18 }
16 19
src/main/java/com/order/erp/service/order/OrderAuditLogService.java
@@ -6,6 +6,8 @@ import com.order.erp.domain.dto.order.OrderAuditLogDO; @@ -6,6 +6,8 @@ import com.order.erp.domain.dto.order.OrderAuditLogDO;
6 import com.order.erp.domain.vo.order.OrderAuditLogQueryVO; 6 import com.order.erp.domain.vo.order.OrderAuditLogQueryVO;
7 import com.order.erp.domain.vo.order.OrderAuditLogVO; 7 import com.order.erp.domain.vo.order.OrderAuditLogVO;
8 8
  9 +import java.util.List;
  10 +
9 /** 11 /**
10 * 用户订单审批日志表(OrderAuditLog)表服务接口 12 * 用户订单审批日志表(OrderAuditLog)表服务接口
11 * 13 *
@@ -54,4 +56,7 @@ public interface OrderAuditLogService extends IService&lt;OrderAuditLogDO&gt; { @@ -54,4 +56,7 @@ public interface OrderAuditLogService extends IService&lt;OrderAuditLogDO&gt; {
54 */ 56 */
55 ServerResult deleteById(OrderAuditLogQueryVO orderAuditLogQueryVO); 57 ServerResult deleteById(OrderAuditLogQueryVO orderAuditLogQueryVO);
56 58
  59 + boolean deleteByOrderId(Long getId);
  60 +
  61 + boolean deleteByOrderIds(List<Long> orderIds);
57 } 62 }
src/main/java/com/order/erp/service/order/OrderBaseInfoService.java
@@ -4,10 +4,13 @@ import com.baomidou.mybatisplus.extension.service.IService; @@ -4,10 +4,13 @@ import com.baomidou.mybatisplus.extension.service.IService;
4 import com.order.erp.common.constant.ServerResult; 4 import com.order.erp.common.constant.ServerResult;
5 import com.order.erp.common.excel4j.exceptions.Excel4JException; 5 import com.order.erp.common.excel4j.exceptions.Excel4JException;
6 import com.order.erp.domain.dto.order.OrderBaseInfoDO; 6 import com.order.erp.domain.dto.order.OrderBaseInfoDO;
  7 +import com.order.erp.domain.vo.IndexDataVO;
7 import com.order.erp.domain.vo.order.*; 8 import com.order.erp.domain.vo.order.*;
8 9
9 import javax.servlet.http.HttpServletResponse; 10 import javax.servlet.http.HttpServletResponse;
10 import java.io.IOException; 11 import java.io.IOException;
  12 +import java.util.List;
  13 +import java.util.Map;
11 14
12 /** 15 /**
13 * 订单基础信息表(OrderBaseInfo)表服务接口 16 * 订单基础信息表(OrderBaseInfo)表服务接口
@@ -80,4 +83,10 @@ public interface OrderBaseInfoService extends IService&lt;OrderBaseInfoDO&gt; { @@ -80,4 +83,10 @@ public interface OrderBaseInfoService extends IService&lt;OrderBaseInfoDO&gt; {
80 */ 83 */
81 ServerResult deleteById(OrderBaseInfoQueryVO orderBaseInfoQueryVO); 84 ServerResult deleteById(OrderBaseInfoQueryVO orderBaseInfoQueryVO);
82 85
  86 + long countByOrderStatus(Integer orderFinish);
  87 +
  88 + long countRecentMonthByOrderStatus(Integer orderFinish);
  89 +
  90 +
  91 + List<Map<String, Integer>> countDaysOrder();
83 } 92 }
src/main/java/com/order/erp/service/order/OrderCompletionReportService.java
@@ -6,6 +6,8 @@ import com.order.erp.domain.dto.order.OrderCompletionReportDO; @@ -6,6 +6,8 @@ import com.order.erp.domain.dto.order.OrderCompletionReportDO;
6 import com.order.erp.domain.vo.order.OrderCompletionReportQueryVO; 6 import com.order.erp.domain.vo.order.OrderCompletionReportQueryVO;
7 import com.order.erp.domain.vo.order.OrderCompletionReportVO; 7 import com.order.erp.domain.vo.order.OrderCompletionReportVO;
8 8
  9 +import java.util.List;
  10 +
9 /** 11 /**
10 * 订单-项目完成报告书(OrderCompletionReport)表服务接口 12 * 订单-项目完成报告书(OrderCompletionReport)表服务接口
11 * 13 *
@@ -54,4 +56,11 @@ public interface OrderCompletionReportService extends IService&lt;OrderCompletionRe @@ -54,4 +56,11 @@ public interface OrderCompletionReportService extends IService&lt;OrderCompletionRe
54 */ 56 */
55 ServerResult deleteById(OrderCompletionReportQueryVO orderCompletionReportQueryVO); 57 ServerResult deleteById(OrderCompletionReportQueryVO orderCompletionReportQueryVO);
56 58
  59 + boolean deleteByOrderId(Long orderId);
  60 +
  61 + boolean deleteByOrderIds(List<Long> orderIds);
  62 +
  63 + long countByOrderStatus(Integer status);
  64 +
  65 + long countYearByOrderStatus(Integer status);
57 } 66 }
src/main/java/com/order/erp/service/order/OrderFieldLockApplyService.java
@@ -7,6 +7,8 @@ import com.order.erp.domain.vo.order.AuditVO; @@ -7,6 +7,8 @@ import com.order.erp.domain.vo.order.AuditVO;
7 import com.order.erp.domain.vo.order.OrderFieldLockApplyQueryVO; 7 import com.order.erp.domain.vo.order.OrderFieldLockApplyQueryVO;
8 import com.order.erp.domain.vo.order.OrderFieldLockApplyVO; 8 import com.order.erp.domain.vo.order.OrderFieldLockApplyVO;
9 9
  10 +import java.util.List;
  11 +
10 /** 12 /**
11 * 用户订单-字段锁定申请表(OrderFieldLockApply)表服务接口 13 * 用户订单-字段锁定申请表(OrderFieldLockApply)表服务接口
12 * 14 *
@@ -67,4 +69,7 @@ public interface OrderFieldLockApplyService extends IService&lt;OrderFieldLockApply @@ -67,4 +69,7 @@ public interface OrderFieldLockApplyService extends IService&lt;OrderFieldLockApply
67 */ 69 */
68 ServerResult deleteById(OrderFieldLockApplyQueryVO orderFieldLockApplyQueryVO); 70 ServerResult deleteById(OrderFieldLockApplyQueryVO orderFieldLockApplyQueryVO);
69 71
  72 + boolean deleteByOrderId(Long orderId);
  73 +
  74 + boolean deleteByOrderIds(List<Long> orderIds);
70 } 75 }
src/main/java/com/order/erp/service/order/OrderFieldLockRecordService.java
@@ -6,6 +6,8 @@ import com.order.erp.domain.dto.order.OrderFieldLockRecordDO; @@ -6,6 +6,8 @@ import com.order.erp.domain.dto.order.OrderFieldLockRecordDO;
6 import com.order.erp.domain.vo.order.OrderFieldLockRecordQueryVO; 6 import com.order.erp.domain.vo.order.OrderFieldLockRecordQueryVO;
7 import com.order.erp.domain.vo.order.OrderFieldLockRecordVO; 7 import com.order.erp.domain.vo.order.OrderFieldLockRecordVO;
8 8
  9 +import java.util.List;
  10 +
9 /** 11 /**
10 * 用户订单-字段锁定记录表(OrderFieldLockRecord)表服务接口 12 * 用户订单-字段锁定记录表(OrderFieldLockRecord)表服务接口
11 * 13 *
@@ -54,4 +56,7 @@ public interface OrderFieldLockRecordService extends IService&lt;OrderFieldLockReco @@ -54,4 +56,7 @@ public interface OrderFieldLockRecordService extends IService&lt;OrderFieldLockReco
54 */ 56 */
55 ServerResult deleteById(OrderFieldLockRecordQueryVO orderFieldLockRecordQueryVO); 57 ServerResult deleteById(OrderFieldLockRecordQueryVO orderFieldLockRecordQueryVO);
56 58
  59 + boolean deleteByOrderId(Long orderId);
  60 +
  61 + boolean deleteByOrderIds(List<Long> orderIds);
57 } 62 }
src/main/java/com/order/erp/service/order/OrderInspectionStageService.java
@@ -2,10 +2,13 @@ package com.order.erp.service.order; @@ -2,10 +2,13 @@ package com.order.erp.service.order;
2 2
3 import com.baomidou.mybatisplus.extension.service.IService; 3 import com.baomidou.mybatisplus.extension.service.IService;
4 import com.order.erp.common.constant.ServerResult; 4 import com.order.erp.common.constant.ServerResult;
  5 +import com.order.erp.domain.OrderStatusEnum;
5 import com.order.erp.domain.dto.order.OrderInspectionStageDO; 6 import com.order.erp.domain.dto.order.OrderInspectionStageDO;
6 import com.order.erp.domain.vo.order.OrderInspectionStageQueryVO; 7 import com.order.erp.domain.vo.order.OrderInspectionStageQueryVO;
7 import com.order.erp.domain.vo.order.OrderInspectionStageVO; 8 import com.order.erp.domain.vo.order.OrderInspectionStageVO;
8 9
  10 +import java.util.List;
  11 +
9 /** 12 /**
10 * 订单-质检环节(OrderInspectionStage)表服务接口 13 * 订单-质检环节(OrderInspectionStage)表服务接口
11 * 14 *
@@ -54,4 +57,11 @@ public interface OrderInspectionStageService extends IService&lt;OrderInspectionSta @@ -54,4 +57,11 @@ public interface OrderInspectionStageService extends IService&lt;OrderInspectionSta
54 */ 57 */
55 ServerResult deleteById(OrderInspectionStageQueryVO orderInspectionStageQueryVO); 58 ServerResult deleteById(OrderInspectionStageQueryVO orderInspectionStageQueryVO);
56 59
  60 + boolean deleteByOrderId(Long orderId);
  61 +
  62 + boolean deleteByOrderIds(List<Long> orderIds);
  63 +
  64 + long countByOrderStatus(Integer orderStatus);
  65 +
  66 + long countRecentMonthByOrderStatus(Integer status);
57 } 67 }
src/main/java/com/order/erp/service/order/OrderOptLogService.java
@@ -6,6 +6,8 @@ import com.order.erp.domain.dto.order.OrderOptLogDO; @@ -6,6 +6,8 @@ import com.order.erp.domain.dto.order.OrderOptLogDO;
6 import com.order.erp.domain.vo.order.OrderOptLogQueryVO; 6 import com.order.erp.domain.vo.order.OrderOptLogQueryVO;
7 import com.order.erp.domain.vo.order.OrderOptLogVO; 7 import com.order.erp.domain.vo.order.OrderOptLogVO;
8 8
  9 +import java.util.List;
  10 +
9 /** 11 /**
10 * 用户订单操作日志表(OrderOptLog)表服务接口 12 * 用户订单操作日志表(OrderOptLog)表服务接口
11 * 13 *
@@ -54,4 +56,7 @@ public interface OrderOptLogService extends IService&lt;OrderOptLogDO&gt; { @@ -54,4 +56,7 @@ public interface OrderOptLogService extends IService&lt;OrderOptLogDO&gt; {
54 */ 56 */
55 ServerResult deleteById(OrderOptLogQueryVO orderOptLogQueryVO); 57 ServerResult deleteById(OrderOptLogQueryVO orderOptLogQueryVO);
56 58
  59 + boolean deleteByOrderId(Long orderId);
  60 +
  61 + boolean deleteByOrderIds(List<Long> orderIds);
57 } 62 }
src/main/java/com/order/erp/service/order/OrderProfitAnalysisService.java
@@ -6,6 +6,8 @@ import com.order.erp.domain.dto.order.OrderProfitAnalysisDO; @@ -6,6 +6,8 @@ import com.order.erp.domain.dto.order.OrderProfitAnalysisDO;
6 import com.order.erp.domain.vo.order.OrderProfitAnalysisQueryVO; 6 import com.order.erp.domain.vo.order.OrderProfitAnalysisQueryVO;
7 import com.order.erp.domain.vo.order.OrderProfitAnalysisVO; 7 import com.order.erp.domain.vo.order.OrderProfitAnalysisVO;
8 8
  9 +import java.util.List;
  10 +
9 /** 11 /**
10 * 订单利润分析表(OrderProfitAnalysis)表服务接口 12 * 订单利润分析表(OrderProfitAnalysis)表服务接口
11 * 13 *
@@ -54,4 +56,13 @@ public interface OrderProfitAnalysisService extends IService&lt;OrderProfitAnalysis @@ -54,4 +56,13 @@ public interface OrderProfitAnalysisService extends IService&lt;OrderProfitAnalysis
54 */ 56 */
55 ServerResult deleteById(OrderProfitAnalysisQueryVO orderProfitAnalysisQueryVO); 57 ServerResult deleteById(OrderProfitAnalysisQueryVO orderProfitAnalysisQueryVO);
56 58
  59 + boolean deleteByOrderId(Long orderId);
  60 +
  61 + boolean deleteByOrderIds(List<Long> orderIds);
  62 +
  63 + OrderProfitAnalysisDO analysisByOrderIds(List<Long> orderIds);
  64 +
  65 + long countByOrderStatus(Integer status);
  66 +
  67 + long countRecentWeekByOrderStatus(Integer status);
57 } 68 }
src/main/java/com/order/erp/service/order/OrderTrackStageService.java
@@ -6,6 +6,8 @@ import com.order.erp.domain.dto.order.OrderTrackStageDO; @@ -6,6 +6,8 @@ import com.order.erp.domain.dto.order.OrderTrackStageDO;
6 import com.order.erp.domain.vo.order.OrderTrackStageQueryVO; 6 import com.order.erp.domain.vo.order.OrderTrackStageQueryVO;
7 import com.order.erp.domain.vo.order.OrderTrackStageVO; 7 import com.order.erp.domain.vo.order.OrderTrackStageVO;
8 8
  9 +import java.util.List;
  10 +
9 /** 11 /**
10 * 订单-跟单环节(OrderTrackStage)表服务接口 12 * 订单-跟单环节(OrderTrackStage)表服务接口
11 * 13 *
@@ -54,4 +56,7 @@ public interface OrderTrackStageService extends IService&lt;OrderTrackStageDO&gt; { @@ -54,4 +56,7 @@ public interface OrderTrackStageService extends IService&lt;OrderTrackStageDO&gt; {
54 */ 56 */
55 ServerResult deleteById(OrderTrackStageQueryVO orderTrackStageQueryVO); 57 ServerResult deleteById(OrderTrackStageQueryVO orderTrackStageQueryVO);
56 58
  59 + boolean deleteByOrderId(Long orderId);
  60 +
  61 + boolean deleteByOrderIds(List<Long> orderIds);
57 } 62 }
src/main/java/com/order/erp/service/order/impl/OrderAuditLogServiceImpl.java
@@ -120,4 +120,25 @@ public class OrderAuditLogServiceImpl extends ServiceImpl&lt;OrderAuditLogMapper, O @@ -120,4 +120,25 @@ public class OrderAuditLogServiceImpl extends ServiceImpl&lt;OrderAuditLogMapper, O
120 update(updateWrapper); 120 update(updateWrapper);
121 return ServerResult.success(); 121 return ServerResult.success();
122 } 122 }
  123 +
  124 + /**
  125 + * 逻辑删除,通过订单id删除 用户订单审批日志表(OrderAuditLog)实体类
  126 + * @param orderId
  127 + * @return
  128 + */
  129 + @Override
  130 + public boolean deleteByOrderId(Long orderId) {
  131 + LambdaUpdateWrapper<OrderAuditLogDO> updateWrapper = new LambdaUpdateWrapper<OrderAuditLogDO>()
  132 + .eq(OrderAuditLogDO::getOrderId, orderId)
  133 + .set(OrderAuditLogDO::getEnableFlag, Constant.UNABLE_TWENTY);
  134 + return update(updateWrapper);
  135 + }
  136 +
  137 + @Override
  138 + public boolean deleteByOrderIds(List<Long> orderIds) {
  139 + LambdaUpdateWrapper<OrderAuditLogDO> updateWrapper = new LambdaUpdateWrapper<OrderAuditLogDO>()
  140 + .in(OrderAuditLogDO::getOrderId, orderIds)
  141 + .set(OrderAuditLogDO::getEnableFlag, Constant.UNABLE_TWENTY);
  142 + return update(updateWrapper);
  143 + }
123 } 144 }
src/main/java/com/order/erp/service/order/impl/OrderBaseInfoServiceImpl.java
@@ -26,20 +26,20 @@ import com.order.erp.domain.OrderStatusEnum; @@ -26,20 +26,20 @@ import com.order.erp.domain.OrderStatusEnum;
26 import com.order.erp.domain.dto.BaseDO; 26 import com.order.erp.domain.dto.BaseDO;
27 import com.order.erp.domain.dto.order.*; 27 import com.order.erp.domain.dto.order.*;
28 import com.order.erp.domain.excel.OrderExcelVO; 28 import com.order.erp.domain.excel.OrderExcelVO;
  29 +import com.order.erp.domain.vo.IndexDataVO;
  30 +import com.order.erp.domain.vo.OrderCountVO;
29 import com.order.erp.domain.vo.order.*; 31 import com.order.erp.domain.vo.order.*;
30 import com.order.erp.mapper.order.OrderBaseInfoMapper; 32 import com.order.erp.mapper.order.OrderBaseInfoMapper;
31 import com.order.erp.service.order.*; 33 import com.order.erp.service.order.*;
32 import lombok.extern.slf4j.Slf4j; 34 import lombok.extern.slf4j.Slf4j;
33 import org.springframework.beans.BeanUtils; 35 import org.springframework.beans.BeanUtils;
34 import org.springframework.stereotype.Service; 36 import org.springframework.stereotype.Service;
  37 +import org.springframework.transaction.annotation.Transactional;
35 38
36 import javax.annotation.Resource; 39 import javax.annotation.Resource;
37 import javax.servlet.http.HttpServletResponse; 40 import javax.servlet.http.HttpServletResponse;
38 import java.io.IOException; 41 import java.io.IOException;
39 -import java.util.List;  
40 -import java.util.Map;  
41 -import java.util.Objects;  
42 -import java.util.Set; 42 +import java.util.*;
43 import java.util.function.Function; 43 import java.util.function.Function;
44 import java.util.stream.Collectors; 44 import java.util.stream.Collectors;
45 45
@@ -73,6 +73,21 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl&lt;OrderBaseInfoMapper, O @@ -73,6 +73,21 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl&lt;OrderBaseInfoMapper, O
73 private OrderFieldLockApplyService orderFieldLockApplyService; 73 private OrderFieldLockApplyService orderFieldLockApplyService;
74 74
75 @Resource 75 @Resource
  76 + private OrderAuditLogService orderAuditLogService;
  77 +
  78 + @Resource
  79 + private OrderCompletionReportService orderCompletionReportService;
  80 +
  81 + @Resource
  82 + private OrderInspectionStageService orderInspectionStageService;
  83 +
  84 + @Resource
  85 + private OrderOptLogService orderOptLogService;
  86 +
  87 + @Resource
  88 + private OrderFieldLockRecordService orderFieldLockRecordService;
  89 +
  90 + @Resource
76 private DataScope dataScope; 91 private DataScope dataScope;
77 92
78 /** 93 /**
@@ -538,6 +553,7 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl&lt;OrderBaseInfoMapper, O @@ -538,6 +553,7 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl&lt;OrderBaseInfoMapper, O
538 * @return 是否成功 553 * @return 是否成功
539 */ 554 */
540 @Override 555 @Override
  556 + @Transactional
541 public ServerResult deleteById(OrderBaseInfoQueryVO orderBaseInfoQueryVO) { 557 public ServerResult deleteById(OrderBaseInfoQueryVO orderBaseInfoQueryVO) {
542 List<Long> ids = orderBaseInfoQueryVO.getIds(); 558 List<Long> ids = orderBaseInfoQueryVO.getIds();
543 if (CollUtil.isEmpty(ids)) { 559 if (CollUtil.isEmpty(ids)) {
@@ -548,10 +564,61 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl&lt;OrderBaseInfoMapper, O @@ -548,10 +564,61 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl&lt;OrderBaseInfoMapper, O
548 return ServerResult.success(); 564 return ServerResult.success();
549 } 565 }
550 //todo 校验是否可以逻辑删除 566 //todo 校验是否可以逻辑删除
  567 + //订单基本信息
551 LambdaUpdateWrapper<OrderBaseInfoDO> updateWrapper = new LambdaUpdateWrapper<OrderBaseInfoDO>() 568 LambdaUpdateWrapper<OrderBaseInfoDO> updateWrapper = new LambdaUpdateWrapper<OrderBaseInfoDO>()
552 .in(OrderBaseInfoDO::getId, ids) 569 .in(OrderBaseInfoDO::getId, ids)
553 .set(OrderBaseInfoDO::getEnableFlag, Constant.UNABLE_TWENTY); 570 .set(OrderBaseInfoDO::getEnableFlag, Constant.UNABLE_TWENTY);
554 update(updateWrapper); 571 update(updateWrapper);
  572 +
  573 +
  574 + //删除订单关联信息
  575 + //订单审批日志
  576 + orderAuditLogService.deleteByOrderIds(ids);
  577 +
  578 + //订单-项目完成报告书
  579 + orderCompletionReportService.deleteByOrderIds(ids);
  580 +
  581 + //用户订单-字段锁定申请表
  582 + orderFieldLockApplyService.deleteByOrderIds(ids);
  583 +
  584 + //用户订单-字段锁定记录表
  585 + orderFieldLockRecordService.deleteByOrderIds(ids);
  586 +
  587 + //订单-质检环节
  588 + orderInspectionStageService.deleteByOrderIds(ids);
  589 +
  590 + //用户订单操作日志表
  591 + orderOptLogService.deleteByOrderIds(ids);
  592 +
  593 + //订单利润分析表
  594 + profitAnalysisService.deleteByOrderIds(ids);
  595 +
  596 + //订单-跟单环节
  597 + trackStageService.deleteByOrderIds(ids);
  598 +
  599 +
555 return ServerResult.success(); 600 return ServerResult.success();
556 } 601 }
  602 +
  603 + /**
  604 + * 根据订单状态统计订单数量
  605 + * @param orderStatus
  606 + * @return
  607 + */
  608 + @Override
  609 + public long countByOrderStatus(Integer orderStatus) {
  610 + return this.count(new LambdaQueryWrapper<OrderBaseInfoDO>().eq(OrderBaseInfoDO::getOrderStatus,orderStatus));
  611 + }
  612 +
  613 + @Override
  614 + public long countRecentMonthByOrderStatus(Integer orderStatus) {
  615 + return this.baseMapper.countRecentMonthByOrderStatus(orderStatus);
  616 + }
  617 +
  618 + @Override
  619 + public List<Map<String, Integer>> countDaysOrder() {
  620 + return this.baseMapper.countDaysOrder();
  621 + }
  622 +
  623 +
557 } 624 }
src/main/java/com/order/erp/service/order/impl/OrderCompletionReportServiceImpl.java
@@ -2,6 +2,7 @@ package com.order.erp.service.order.impl; @@ -2,6 +2,7 @@ package com.order.erp.service.order.impl;
2 2
3 import cn.hutool.core.bean.BeanUtil; 3 import cn.hutool.core.bean.BeanUtil;
4 import cn.hutool.core.collection.CollUtil; 4 import cn.hutool.core.collection.CollUtil;
  5 +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
5 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; 6 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
6 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 7 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
7 import com.order.erp.common.constant.Constant; 8 import com.order.erp.common.constant.Constant;
@@ -120,4 +121,38 @@ public class OrderCompletionReportServiceImpl extends ServiceImpl&lt;OrderCompletio @@ -120,4 +121,38 @@ public class OrderCompletionReportServiceImpl extends ServiceImpl&lt;OrderCompletio
120 update(updateWrapper); 121 update(updateWrapper);
121 return ServerResult.success(); 122 return ServerResult.success();
122 } 123 }
  124 +
  125 + /**
  126 + * 通过订单id逻辑删除
  127 + * @param orderId
  128 + * @return
  129 + */
  130 + @Override
  131 + public boolean deleteByOrderId(Long orderId) {
  132 + LambdaUpdateWrapper<OrderCompletionReportDO> updateWrapper = new LambdaUpdateWrapper<OrderCompletionReportDO>()
  133 + .eq(OrderCompletionReportDO::getOrderId, orderId)
  134 + .set(OrderCompletionReportDO::getEnableFlag, Constant.UNABLE_TWENTY);
  135 +
  136 + return update(updateWrapper);
  137 + }
  138 +
  139 + @Override
  140 + public boolean deleteByOrderIds(List<Long> orderIds) {
  141 + LambdaUpdateWrapper<OrderCompletionReportDO> updateWrapper = new LambdaUpdateWrapper<OrderCompletionReportDO>()
  142 + .in(OrderCompletionReportDO::getOrderId, orderIds)
  143 + .set(OrderCompletionReportDO::getEnableFlag, Constant.UNABLE_TWENTY);
  144 +
  145 + return update(updateWrapper);
  146 + }
  147 +
  148 + @Override
  149 + public long countByOrderStatus(Integer status) {
  150 + return baseMapper.selectCount(new LambdaQueryWrapper<OrderCompletionReportDO>()
  151 + .eq(OrderCompletionReportDO::getOrderStatus, status));
  152 + }
  153 +
  154 + @Override
  155 + public long countYearByOrderStatus(Integer status) {
  156 + return baseMapper.countYearByOrderStatus(status);
  157 + }
123 } 158 }
src/main/java/com/order/erp/service/order/impl/OrderFieldLockApplyServiceImpl.java
@@ -252,4 +252,27 @@ public class OrderFieldLockApplyServiceImpl extends ServiceImpl&lt;OrderFieldLockAp @@ -252,4 +252,27 @@ public class OrderFieldLockApplyServiceImpl extends ServiceImpl&lt;OrderFieldLockAp
252 update(updateWrapper); 252 update(updateWrapper);
253 return ServerResult.success(); 253 return ServerResult.success();
254 } 254 }
  255 +
  256 + /**
  257 + * 通过订单id逻辑删除
  258 + * @param orderId
  259 + * @return
  260 + */
  261 + @Override
  262 + public boolean deleteByOrderId(Long orderId) {
  263 + LambdaUpdateWrapper<OrderFieldLockApplyDO> updateWrapper = new LambdaUpdateWrapper<OrderFieldLockApplyDO>()
  264 + .in(OrderFieldLockApplyDO::getOrderId, orderId)
  265 + .set(OrderFieldLockApplyDO::getEnableFlag, Constant.UNABLE_TWENTY);
  266 +
  267 + return update(updateWrapper);
  268 + }
  269 +
  270 + @Override
  271 + public boolean deleteByOrderIds(List<Long> orderIds) {
  272 + LambdaUpdateWrapper<OrderFieldLockApplyDO> updateWrapper = new LambdaUpdateWrapper<OrderFieldLockApplyDO>()
  273 + .eq(OrderFieldLockApplyDO::getOrderId, orderIds)
  274 + .set(OrderFieldLockApplyDO::getEnableFlag, Constant.UNABLE_TWENTY);
  275 +
  276 + return update(updateWrapper);
  277 + }
255 } 278 }
src/main/java/com/order/erp/service/order/impl/OrderFieldLockRecordServiceImpl.java
@@ -120,4 +120,27 @@ public class OrderFieldLockRecordServiceImpl extends ServiceImpl&lt;OrderFieldLockR @@ -120,4 +120,27 @@ public class OrderFieldLockRecordServiceImpl extends ServiceImpl&lt;OrderFieldLockR
120 update(updateWrapper); 120 update(updateWrapper);
121 return ServerResult.success(); 121 return ServerResult.success();
122 } 122 }
  123 +
  124 + /**
  125 + * 通过订单id逻辑删除
  126 + * @param orderId
  127 + * @return
  128 + */
  129 + @Override
  130 + public boolean deleteByOrderId(Long orderId) {
  131 + LambdaUpdateWrapper<OrderFieldLockRecordDO> updateWrapper = new LambdaUpdateWrapper<OrderFieldLockRecordDO>()
  132 + .eq(OrderFieldLockRecordDO::getOrderId, orderId)
  133 + .set(OrderFieldLockRecordDO::getEnableFlag, Constant.UNABLE_TWENTY);
  134 +
  135 + return update(updateWrapper);
  136 + }
  137 +
  138 + @Override
  139 + public boolean deleteByOrderIds(List<Long> orderIds) {
  140 + LambdaUpdateWrapper<OrderFieldLockRecordDO> updateWrapper = new LambdaUpdateWrapper<OrderFieldLockRecordDO>()
  141 + .in(OrderFieldLockRecordDO::getOrderId, orderIds)
  142 + .set(OrderFieldLockRecordDO::getEnableFlag, Constant.UNABLE_TWENTY);
  143 +
  144 + return update(updateWrapper);
  145 + }
123 } 146 }
src/main/java/com/order/erp/service/order/impl/OrderInspectionStageServiceImpl.java
@@ -2,10 +2,12 @@ package com.order.erp.service.order.impl; @@ -2,10 +2,12 @@ package com.order.erp.service.order.impl;
2 2
3 import cn.hutool.core.bean.BeanUtil; 3 import cn.hutool.core.bean.BeanUtil;
4 import cn.hutool.core.collection.CollUtil; 4 import cn.hutool.core.collection.CollUtil;
  5 +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
5 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; 6 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
6 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 7 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
7 import com.order.erp.common.constant.Constant; 8 import com.order.erp.common.constant.Constant;
8 import com.order.erp.common.constant.ServerResult; 9 import com.order.erp.common.constant.ServerResult;
  10 +import com.order.erp.domain.OrderStatusEnum;
9 import com.order.erp.domain.dto.order.OrderInspectionStageDO; 11 import com.order.erp.domain.dto.order.OrderInspectionStageDO;
10 import com.order.erp.domain.vo.order.OrderInspectionStageQueryVO; 12 import com.order.erp.domain.vo.order.OrderInspectionStageQueryVO;
11 import com.order.erp.domain.vo.order.OrderInspectionStageVO; 13 import com.order.erp.domain.vo.order.OrderInspectionStageVO;
@@ -120,4 +122,30 @@ public class OrderInspectionStageServiceImpl extends ServiceImpl&lt;OrderInspection @@ -120,4 +122,30 @@ public class OrderInspectionStageServiceImpl extends ServiceImpl&lt;OrderInspection
120 update(updateWrapper); 122 update(updateWrapper);
121 return ServerResult.success(); 123 return ServerResult.success();
122 } 124 }
  125 +
  126 + @Override
  127 + public boolean deleteByOrderId(Long orderId) {
  128 + LambdaUpdateWrapper<OrderInspectionStageDO> updateWrapper = new LambdaUpdateWrapper<OrderInspectionStageDO>()
  129 + .eq(OrderInspectionStageDO::getOrderId, orderId)
  130 + .set(OrderInspectionStageDO::getEnableFlag, Constant.UNABLE_TWENTY);
  131 + return update(updateWrapper);
  132 + }
  133 +
  134 + @Override
  135 + public boolean deleteByOrderIds(List<Long> orderIds) {
  136 + LambdaUpdateWrapper<OrderInspectionStageDO> updateWrapper = new LambdaUpdateWrapper<OrderInspectionStageDO>()
  137 + .in(OrderInspectionStageDO::getOrderId, orderIds)
  138 + .set(OrderInspectionStageDO::getEnableFlag, Constant.UNABLE_TWENTY);
  139 + return update(updateWrapper);
  140 + }
  141 +
  142 + @Override
  143 + public long countByOrderStatus(Integer orderStatus) {
  144 + return this.count(new LambdaQueryWrapper<OrderInspectionStageDO>().eq(OrderInspectionStageDO::getOrderStatus,orderStatus));
  145 + }
  146 +
  147 + @Override
  148 + public long countRecentMonthByOrderStatus(Integer status) {
  149 + return this.baseMapper.countRecentMonthByOrderStatus(status);
  150 + }
123 } 151 }
src/main/java/com/order/erp/service/order/impl/OrderOptLogServiceImpl.java
@@ -120,4 +120,25 @@ public class OrderOptLogServiceImpl extends ServiceImpl&lt;OrderOptLogMapper, Order @@ -120,4 +120,25 @@ public class OrderOptLogServiceImpl extends ServiceImpl&lt;OrderOptLogMapper, Order
120 update(updateWrapper); 120 update(updateWrapper);
121 return ServerResult.success(); 121 return ServerResult.success();
122 } 122 }
  123 +
  124 + /**
  125 + * 通过订单id逻辑删除
  126 + * @param orderId
  127 + * @return
  128 + */
  129 + @Override
  130 + public boolean deleteByOrderId(Long orderId) {
  131 + LambdaUpdateWrapper<OrderOptLogDO> updateWrapper = new LambdaUpdateWrapper<OrderOptLogDO>()
  132 + .eq(OrderOptLogDO::getOrderId, orderId)
  133 + .set(OrderOptLogDO::getEnableFlag, Constant.UNABLE_TWENTY);
  134 + return update(updateWrapper);
  135 + }
  136 +
  137 + @Override
  138 + public boolean deleteByOrderIds(List<Long> orderIds) {
  139 + LambdaUpdateWrapper<OrderOptLogDO> updateWrapper = new LambdaUpdateWrapper<OrderOptLogDO>()
  140 + .in(OrderOptLogDO::getOrderId, orderIds)
  141 + .set(OrderOptLogDO::getEnableFlag, Constant.UNABLE_TWENTY);
  142 + return update(updateWrapper);
  143 + }
123 } 144 }
src/main/java/com/order/erp/service/order/impl/OrderProfitAnalysisServiceImpl.java
@@ -2,18 +2,26 @@ package com.order.erp.service.order.impl; @@ -2,18 +2,26 @@ package com.order.erp.service.order.impl;
2 2
3 import cn.hutool.core.bean.BeanUtil; 3 import cn.hutool.core.bean.BeanUtil;
4 import cn.hutool.core.collection.CollUtil; 4 import cn.hutool.core.collection.CollUtil;
  5 +import com.baomidou.mybatisplus.core.conditions.Wrapper;
  6 +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  7 +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
5 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; 8 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
6 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 9 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
7 import com.order.erp.common.constant.Constant; 10 import com.order.erp.common.constant.Constant;
8 import com.order.erp.common.constant.ServerResult; 11 import com.order.erp.common.constant.ServerResult;
  12 +import com.order.erp.common.utils.ProfitUtils;
9 import com.order.erp.domain.dto.order.OrderProfitAnalysisDO; 13 import com.order.erp.domain.dto.order.OrderProfitAnalysisDO;
10 import com.order.erp.domain.vo.order.OrderProfitAnalysisQueryVO; 14 import com.order.erp.domain.vo.order.OrderProfitAnalysisQueryVO;
11 import com.order.erp.domain.vo.order.OrderProfitAnalysisVO; 15 import com.order.erp.domain.vo.order.OrderProfitAnalysisVO;
  16 +import com.order.erp.domain.vo.order.ProfitCalculateVO;
12 import com.order.erp.mapper.order.OrderProfitAnalysisMapper; 17 import com.order.erp.mapper.order.OrderProfitAnalysisMapper;
13 import com.order.erp.service.order.OrderProfitAnalysisService; 18 import com.order.erp.service.order.OrderProfitAnalysisService;
14 import lombok.extern.slf4j.Slf4j; 19 import lombok.extern.slf4j.Slf4j;
  20 +import org.springframework.beans.BeanUtils;
15 import org.springframework.stereotype.Service; 21 import org.springframework.stereotype.Service;
16 22
  23 +import java.math.BigDecimal;
  24 +import java.util.Arrays;
17 import java.util.List; 25 import java.util.List;
18 import java.util.Objects; 26 import java.util.Objects;
19 27
@@ -120,4 +128,73 @@ public class OrderProfitAnalysisServiceImpl extends ServiceImpl&lt;OrderProfitAnaly @@ -120,4 +128,73 @@ public class OrderProfitAnalysisServiceImpl extends ServiceImpl&lt;OrderProfitAnaly
120 update(updateWrapper); 128 update(updateWrapper);
121 return ServerResult.success(); 129 return ServerResult.success();
122 } 130 }
  131 +
  132 + /**
  133 + * 通过订单id逻辑删除
  134 + * @param orderId
  135 + * @return
  136 + */
  137 + @Override
  138 + public boolean deleteByOrderId(Long orderId) {
  139 + LambdaUpdateWrapper<OrderProfitAnalysisDO> updateWrapper = new LambdaUpdateWrapper<OrderProfitAnalysisDO>()
  140 + .eq(OrderProfitAnalysisDO::getOrderId, orderId)
  141 + .set(OrderProfitAnalysisDO::getEnableFlag, Constant.UNABLE_TWENTY);
  142 + return update(updateWrapper);
  143 + }
  144 +
  145 + @Override
  146 + public boolean deleteByOrderIds(List<Long> orderIds) {
  147 + LambdaUpdateWrapper<OrderProfitAnalysisDO> updateWrapper = new LambdaUpdateWrapper<OrderProfitAnalysisDO>()
  148 + .in(OrderProfitAnalysisDO::getOrderId, orderIds)
  149 + .set(OrderProfitAnalysisDO::getEnableFlag, Constant.UNABLE_TWENTY);
  150 + return update(updateWrapper);
  151 + }
  152 +
  153 + @Override
  154 + public OrderProfitAnalysisDO analysisByOrderIds(List<Long> orderIds) {
  155 + //查询订单id的利润分析数据
  156 + QueryWrapper queryWrapper = new QueryWrapper<OrderProfitAnalysisVO>().in("order_id", orderIds);
  157 + List<OrderProfitAnalysisDO> orderProfits = list(queryWrapper);
  158 +
  159 +
  160 + if (orderProfits==null||orderProfits.isEmpty()){
  161 + return null;
  162 + }
  163 +
  164 + BigDecimal packetTotalPrice = new BigDecimal("0");
  165 + BigDecimal customerTotalPrice = new BigDecimal("0");
  166 + BigDecimal productionDepartmentTotalPrice = new BigDecimal("0");
  167 + double profits = 0;
  168 + //分别计算每个orderProfit的利润率,通过ProfitUtils的calculateProfitRate方法计算
  169 + for (OrderProfitAnalysisDO orderProfit : orderProfits) {
  170 + ProfitCalculateVO profitCalculateVO = new ProfitCalculateVO();
  171 + BeanUtils.copyProperties(orderProfit,profitCalculateVO);
  172 + double profit = ProfitUtils.calculateProfitRate(profitCalculateVO);
  173 +
  174 + packetTotalPrice = packetTotalPrice.add(new BigDecimal(orderProfit.getPacketTotalPrice()));
  175 + customerTotalPrice = customerTotalPrice.add(new BigDecimal(orderProfit.getCustomerTotalPrice()));
  176 + productionDepartmentTotalPrice = productionDepartmentTotalPrice.add(new BigDecimal(orderProfit.getProductionDepartmentTotalPrice()));
  177 + profits+=profit;
  178 + }
  179 +
  180 + profits = (profits / orderProfits.size());
  181 +
  182 + OrderProfitAnalysisDO orderProfitAnalysisDO = new OrderProfitAnalysisDO();
  183 + orderProfitAnalysisDO.setPacketTotalPrice(packetTotalPrice.doubleValue());
  184 + orderProfitAnalysisDO.setCustomerTotalPrice(customerTotalPrice.doubleValue());
  185 + orderProfitAnalysisDO.setProductionDepartmentTotalPrice(productionDepartmentTotalPrice.doubleValue());
  186 + orderProfitAnalysisDO.setProfitRate(profits);
  187 +
  188 + return orderProfitAnalysisDO;
  189 + }
  190 +
  191 + @Override
  192 + public long countByOrderStatus(Integer status) {
  193 + return this.count(new LambdaQueryWrapper<OrderProfitAnalysisDO>().eq(OrderProfitAnalysisDO::getOrderStatus,status));
  194 + }
  195 +
  196 + @Override
  197 + public long countRecentWeekByOrderStatus(Integer status) {
  198 + return this.baseMapper.countRecentWeekByOrderStatus(status);
  199 + }
123 } 200 }
src/main/java/com/order/erp/service/order/impl/OrderTrackStageServiceImpl.java
@@ -120,4 +120,25 @@ public class OrderTrackStageServiceImpl extends ServiceImpl&lt;OrderTrackStageMappe @@ -120,4 +120,25 @@ public class OrderTrackStageServiceImpl extends ServiceImpl&lt;OrderTrackStageMappe
120 update(updateWrapper); 120 update(updateWrapper);
121 return ServerResult.success(); 121 return ServerResult.success();
122 } 122 }
  123 +
  124 + /**
  125 + * 通过订单id逻辑删除
  126 + * @param orderId
  127 + * @return
  128 + */
  129 + @Override
  130 + public boolean deleteByOrderId(Long orderId) {
  131 + LambdaUpdateWrapper<OrderTrackStageDO> updateWrapper = new LambdaUpdateWrapper<OrderTrackStageDO>()
  132 + .eq(OrderTrackStageDO::getOrderId, orderId)
  133 + .set(OrderTrackStageDO::getEnableFlag, Constant.UNABLE_TWENTY);
  134 + return update(updateWrapper);
  135 + }
  136 +
  137 + @Override
  138 + public boolean deleteByOrderIds(List<Long> orderIds) {
  139 + LambdaUpdateWrapper<OrderTrackStageDO> updateWrapper = new LambdaUpdateWrapper<OrderTrackStageDO>()
  140 + .eq(OrderTrackStageDO::getOrderId, orderIds)
  141 + .set(OrderTrackStageDO::getEnableFlag, Constant.UNABLE_TWENTY);
  142 + return update(updateWrapper);
  143 + }
123 } 144 }