Procházet zdrojové kódy

1.控制台大订单合计优化

wuhp před 2 roky
rodič
revize
b699c1ac58

+ 1 - 1
src/main/java/com/ydtech/modules/admin/model/dto/TaskStatisticsDto.java

@@ -122,6 +122,6 @@ public class TaskStatisticsDto {
     private String dockingPhone;
 
     @ApiModelProperty(value = "协议类型")
-    private String agreementtype;
+    private String agreementType;
 
 }

+ 1 - 10
src/main/java/com/ydtech/modules/admin/service/impl/CompanyDataReportServiceImpl.java

@@ -150,22 +150,13 @@ public class CompanyDataReportServiceImpl implements CompanyDataReportService {
      */
     @Override
     public OrdersDataDto querOrdersamountTo(OrdersDataVo ordersDataVo) {
-        OrdersDataDto ordersDataDto = new OrdersDataDto();
         //判断开始时间和结束时间是否为空,如果为空的走时间类型逻辑
         HashMap<String, String> dateMapByType = getDateMapByType(ordersDataVo.getDateType(), ordersDataVo.getBeginDate(), ordersDataVo.getEndDate());
         ordersDataVo.setBeginDate(dateMapByType.get("startDate"));
         ordersDataVo.setEndDate(dateMapByType.get("endDate"));
         OrdersDataDto resultSubOrder = insAreaCompanyMapper.querOrdersamountTo(ordersDataVo);
-        if(ObjectUtils.isNotEmpty(resultSubOrder) && StringUtils.isNotEmpty(resultSubOrder.getFrameno())){
-            ordersDataDto.setFrameno(resultSubOrder.getFrameno());
-        }
-        OrdersDataDto resultOrderNumber = insAreaCompanyMapper.querResultOrderNumber(ordersDataVo);
 
-        if(ObjectUtils.isNotEmpty(resultOrderNumber) && StringUtils.isNotEmpty(resultOrderNumber.getOrderNumber()) &&   StringUtils.isNotEmpty(resultOrderNumber.getCloseRate())){
-            ordersDataDto.setOrderNumber(resultOrderNumber.getOrderNumber());
-            ordersDataDto.setCloseRate(resultOrderNumber.getCloseRate());
-        }
-        return ordersDataDto;
+        return resultSubOrder;
     }
     private BigDecimal calculateTotal(BigDecimal value1, BigDecimal value2, BigDecimal value3) {
         BigDecimal total = BigDecimal.ZERO;

+ 44 - 0
src/main/java/com/ydtech/modules/admin/service/impl/TaskStatisticsServiceImpl.java

@@ -191,6 +191,17 @@ public class TaskStatisticsServiceImpl  implements TaskStatisticsService {
      **/
     @Override
     public IPage<TaskStatisticsDto> costCenter(TaskStatisticsVo taskStatisticsVo) {
+        if(StringUtils.isNotEmpty(taskStatisticsVo.getDays())){
+            if("7".equals(taskStatisticsVo.getDays())){
+                taskStatisticsVo.setDays("2");
+            } else if ("30".equals(taskStatisticsVo.getDays())) {
+                taskStatisticsVo.setDays("3");
+            }
+        }
+        HashMap<String, String> dateMapByType = getDateMapByTypeNew(taskStatisticsVo.getDays(), taskStatisticsVo.getCreatetimeStart(), taskStatisticsVo.getCreatetimeEnd());
+        taskStatisticsVo.setCreatetimeStart(dateMapByType.get("startDate"));
+        taskStatisticsVo.setCreatetimeEnd(dateMapByType.get("endDate"));
+
         PageVo<TaskStatisticsVo> pageVo = new PageVo<>();
         Page page = new Page(taskStatisticsVo.getPageNum(), taskStatisticsVo.getPageSize());
         pageVo.setPageNum(taskStatisticsVo.getPageNum());
@@ -418,6 +429,39 @@ public class TaskStatisticsServiceImpl  implements TaskStatisticsService {
         return map;
     }
 
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/19 11:57
+     *  @Description:  通过时间类型判断
+     */
+    private static HashMap<String,String> getDateMapByTypeNew(String type, String startDate, String endDate) {
+        HashMap<String,String> map =new HashMap<>();
+        String  startDateStr="";
+        String  endDateStr="";
+        if(org.apache.commons.lang3.StringUtils.isNotBlank(startDate) && org.apache.commons.lang3.StringUtils.isNotBlank(endDate)){
+            startDateStr= org.apache.commons.lang3.StringUtils.isNotBlank(startDate)?startDate+" 00:00:00":null;
+            endDateStr= org.apache.commons.lang3.StringUtils.isNotBlank(endDate)?endDate+" 23:59:59":null;
+        }else{
+            if("1".equals(type)){
+                // 近1天
+                startDateStr= SliceUpDateUtil.getBeforeDay(new Date(),0)+" 00:00:00";
+                endDateStr=SliceUpDateUtil.getBeforeDay(new Date(),0)+" 23:59:59";
+            }else if("2".equals(type)){
+                // 近7天
+                startDateStr=SliceUpDateUtil.getBeforeDay(new Date(),1)+" 00:00:00";
+                endDateStr=SliceUpDateUtil.getBeforeDay(new Date(),0)+" 23:59:59";
+            }else if("3".equals(type)){
+                // 近30天
+                startDateStr=SliceUpDateUtil.getBeforeDay(new Date(),6)+" 00:00:00";
+                endDateStr=SliceUpDateUtil.getBeforeDay(new Date(),0)+" 23:59:59";
+            }
+        }
+        map.put("startDate",startDateStr);
+        map.put("endDate",endDateStr);
+        return map;
+    }
+
     /**
      * @description:   任控制台-业务数据-代理人-合计
      * @author: whp

+ 7 - 5
src/main/java/com/ydtech/modules/admin/service/impl/UserReportServiceImpl.java

@@ -238,7 +238,7 @@ public class UserReportServiceImpl implements UserReportService {
         }else{
             if("1".equals(type)){
                 // 近1天
-                startDateStr= SliceUpDateUtil.getBeforeDay(new Date(),5)+" 00:00:00";
+                startDateStr= SliceUpDateUtil.getBeforeDay(new Date(),0)+" 00:00:00";
                 endDateStr=SliceUpDateUtil.getBeforeDay(new Date(),0)+" 23:59:59";
             }else if("2".equals(type)){
                 // 近7天
@@ -293,12 +293,13 @@ public class UserReportServiceImpl implements UserReportService {
                         String substring = deptId.substring(0, 6);
                         String substring1 = deptId.substring(0, 8);
                         String province = deptId.substring(0, 4);
+                        String storeDept = deptId.substring(0, 11);
                         SysDept cityName = sysDeptService.getById(substring);
                         SysDept districtName = sysDeptService.getById(substring1);
                         SysDept provinceName = sysDeptService.getById(province);
-                        SysDept storeDept = sysDeptService.getById(deptId);
+                        SysDept storeDeptEntity = sysDeptService.getById(storeDept);
                         String deptName = userItem.getDeptName();
-                        String a = provinceName.getName()+"-"+cityName.getName()+"-"+districtName.getName()+"-"+storeDept+"-"+deptName;
+                        String a = provinceName.getName()+"-"+cityName.getName()+"-"+districtName.getName()+"-"+storeDeptEntity.getName()+"-"+deptName;
                         userItem.setDeptName(a);
                     }
                 }
@@ -341,12 +342,13 @@ public class UserReportServiceImpl implements UserReportService {
                         String substring = deptId.substring(0, 6);
                         String substring1 = deptId.substring(0, 8);
                         String province = deptId.substring(0, 4);
+                        String storeDept = deptId.substring(0, 11);
                         SysDept cityName = sysDeptService.getById(substring);
                         SysDept districtName = sysDeptService.getById(substring1);
                         SysDept provinceName = sysDeptService.getById(province);
-                        SysDept storeDept = sysDeptService.getById(deptId);
+                        SysDept storeDeptEntity = sysDeptService.getById(storeDept);
                         String deptName = item.getDeptName();
-                        String a = provinceName.getName()+"-"+cityName.getName()+"-"+districtName.getName()+"-"+storeDept+"-"+deptName;
+                        String a = provinceName.getName()+"-"+cityName.getName()+"-"+districtName.getName()+"-"+storeDeptEntity.getName()+"-"+deptName;
                         item.setDeptName(a);
 
                     }

+ 38 - 16
src/main/resources/mapper/modules/order/InsAreaCompanyMapper.xml

@@ -1361,17 +1361,12 @@
             and iac.id = ifa.ins_order_no
             AND iac.orderstatus = 3
             <if test="taskStatisticsVo.createtimeStart !=null and taskStatisticsVo.createtimeStart != '' and taskStatisticsVo.createtimeEnd !=null and taskStatisticsVo.createtimeEnd != ''">
-                AND   DATE_FORMAT( ifa.audittime, '%Y-%m-%d')   BETWEEN #{taskStatisticsVo.createtimeStart} AND #{taskStatisticsVo.createtimeEnd}
+                AND   DATE_FORMAT( ifa.audittime, '%Y-%m-%d')  BETWEEN  DATE_FORMAT( #{taskStatisticsVo.createtimeStart}, '%Y-%m-%d')   AND  DATE_FORMAT( #{taskStatisticsVo.createtimeEnd}, '%Y-%m-%d')
             </if>
 
             <if test="taskStatisticsVo.beginDate !=null and taskStatisticsVo.beginDate != '' and taskStatisticsVo.endDate !=null and taskStatisticsVo.endDate != ''">
-                AND   DATE_FORMAT( iac.createtime, '%Y-%m-%d')   BETWEEN  DATE_FORMAT( #{taskStatisticsVo.beginDate}, '%Y-%m-%d')   AND  DATE_FORMAT( #{taskStatisticsVo.endDate}, '%Y-%m-%d')
+                AND   DATE_FORMAT( ifa.audittime, '%Y-%m-%d')   BETWEEN  DATE_FORMAT( #{taskStatisticsVo.beginDate}, '%Y-%m-%d')   AND  DATE_FORMAT( #{taskStatisticsVo.endDate}, '%Y-%m-%d')
             </if>
-
-            <if test="taskStatisticsVo.days !=null  and taskStatisticsVo.days !='' ">
-                and iac.createtime >= DATE_SUB(NOW(), INTERVAL #{taskStatisticsVo.days} DAY)
-            </if>
-
             <choose>
                 <when test="taskStatisticsVo.riskCode != null and taskStatisticsVo.riskCode != '' and  taskStatisticsVo.riskCode != 'all' ">
                     and iac.product = #{taskStatisticsVo.riskCode}
@@ -1838,14 +1833,38 @@
     </select>
 
     <select id="querOrdersamountTo" resultType="com.ydtech.modules.admin.model.report.company.OrdersDataDto">
-       select count(a.frameno)   as "frameno" from  (
-
+       select sum(a.orderNumber)   as "orderNumber",
+              sum(a.orderStatus3) / sum(a.orderNumber)  AS "closeRate",
+              count(a.frameno) as "frameno"
+       from  (
+        SELECT
+        count( 0 ) AS "orderNumber",
+        SUM( CASE WHEN orderstatus = '3' THEN 1 ELSE 0 END )   AS "orderStatus3",
+        b.frameno as "frameno"
+        FROM
+        (
         SELECT
-        io.frameno AS "frameno"
+        io.orderstatus AS orderstatus,
+        ifnull(io.licenseno, '') AS licenseno,
+        io.frameno AS frameno,
+        ifnull(
+        (
+        SELECT
+        ifnull( inscompany, '' )
+        FROM
+        ins_area_company
+        WHERE
+        orderno = io.orderno
+        AND io.orderstatus = 3
+        AND orderstatus = 3
+        ORDER BY
+        createtime DESC
+        LIMIT 1
+        ), ''
+        ) AS inscompany
         FROM
         ins_orders io
-        LEFT JOIN ins_area_company iac ON iac.orderno = io.orderno
-        LEFT JOIN sys_user su ON io.userid = su.id
+        LEFT JOIN sys_user  su  on io.userid=su.id
         <where>
             1=1
             <if test="vo.beginDate  != null  and  vo.beginDate!=''  and vo.endDate  != null  and  vo.endDate!=''">
@@ -1874,11 +1893,14 @@
             <if test="vo.deptId  != null  and  vo.deptId!=''  ">
                 and io.deptid like concat('%', #{vo.deptId}, '%')
             </if>
-
         </where>
-        GROUP BY
-        io.frameno
-                       ) a
+        ) b
+        GROUP  BY
+        b.frameno,
+        b.licenseno,
+        b.inscompany,
+        b.orderstatus
+        ) a
     </select>
 
     <select id="querResultOrderNumber" resultType="com.ydtech.modules.admin.model.report.company.OrdersDataDto">