Ver Fonte

计算试车检查参数设置子表预估试车结束日期

wangxuan há 9 meses atrás
pai
commit
c603ab69a2

+ 5 - 0
business-common/src/main/java/com/rongwei/bscommon/sys/dao/ZhcxCommissionCheckParameterSetDetalDao.java

@@ -2,6 +2,9 @@ package com.rongwei.bscommon.sys.dao;
 
 import com.rongwei.bsentity.domain.ZhcxCommissionCheckParameterSetDetalDo;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * <p>
@@ -23,4 +26,6 @@ public interface ZhcxCommissionCheckParameterSetDetalDao extends BaseMapper<Zhcx
      * @return
      */
     String selectNotholidaydetail();
+
+    List<ZhcxCommissionCheckParameterSetDetalDo> getAllByCheckidOrId(@Param("masterId") String masterId);
 }

+ 20 - 6
business-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ZhcxCommissionCheckParameterSetDetalServiceImpl.java

@@ -15,10 +15,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.StringJoiner;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -38,18 +35,35 @@ public class ZhcxCommissionCheckParameterSetDetalServiceImpl extends ServiceImpl
         if(StringUtils.isEmpty(masterId)){
             return R.error("试车主表ID不能为空");
         }
-        LambdaQueryWrapper<ZhcxCommissionCheckParameterSetDetalDo> queryWrapper = new LambdaQueryWrapper<>();
+        /*LambdaQueryWrapper<ZhcxCommissionCheckParameterSetDetalDo> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(ZhcxCommissionCheckParameterSetDetalDo::getDeleted,"0")
                 .eq(ZhcxCommissionCheckParameterSetDetalDo::getCheckid,masterId);
-        List<ZhcxCommissionCheckParameterSetDetalDo> list = this.list(queryWrapper);
+        List<ZhcxCommissionCheckParameterSetDetalDo> list = this.list(queryWrapper);*/
+        List<ZhcxCommissionCheckParameterSetDetalDo> list = baseMapper.getAllByCheckidOrId(masterId);
         if (list.size() != 1){
             return R.error("试车参数数据异常");
         }
         ZhcxCommissionCheckParameterSetDetalDo parameterSetDetalDo = list.get(0);
+        // 前端已经计算了
+        if(Objects.isNull(parameterSetDetalDo.getBegindate())){
+            parameterSetDetalDo.setBegindate(parameterSetDetalDo.getRecentlyTime());
+        }
         // 剩余天数 = 难度系数*预估剩余天数
         if(StringUtils.isEmpty(parameterSetDetalDo.getDifficultyfactor())){
             parameterSetDetalDo.setDifficultyfactor("1");
         }
+        if(StringUtils.isEmpty(parameterSetDetalDo.getDailytime())){
+            return R.ok("每天试车时间为空");
+        }
+        if(StringUtils.isEmpty(parameterSetDetalDo.getEESIDUALTIME())){
+            return R.ok("剩余试车时间(min)为空");
+        }
+        // let days = Math.ceil((eesidualtime / (dailyTime * 60)) / (24 * 60));
+        double eesidualtime = Double.parseDouble(parameterSetDetalDo.getEESIDUALTIME());
+        double dailytime = Double.parseDouble(parameterSetDetalDo.getDailytime());
+        int days = (int) Math.ceil(eesidualtime / (dailytime * 60 * 24 * 60));
+        parameterSetDetalDo.setEstimateddaynum(String.valueOf(days));
+        // 计算预估剩余天数
         if(StringUtils.isEmpty(parameterSetDetalDo.getEstimateddaynum())){
             return R.ok("预估剩余天数为空");
         }

+ 38 - 0
business-common/src/main/resources/mybatis/business/ZhcxCommissionCheckParameterSetDetalDao.xml

@@ -14,4 +14,42 @@
         FROM ZHCX_COMMISSION_HOLIDAY_DETAIL detail
         WHERE DELETED = '0' AND "TYPE" = 'y'
     </select>
+
+    <select id="getAllByCheckidOrId" resultType="com.rongwei.bsentity.domain.ZhcxCommissionCheckParameterSetDetalDo">
+        SELECT
+            x.*,
+            d.eesidual AS EESIDUALTIME,
+            c.recentlyTime AS recentlyTime
+        FROM
+            INCONTROL.ZHCX_COMMISSION_CHECK_PARAMETER_SET_DETAL x
+                LEFT JOIN (
+                SELECT
+                    SUM(TESTTIME) AS eesidual,
+                    PID
+                FROM
+                    INCONTROL.ZHCX_COMMISSION_CHECK_DETAIL x
+                WHERE
+                    DELETED = '0'
+                  AND (TESTRESULT = '10'
+                    OR TESTRESULT IS NULL )
+                  AND (x.ISTITLE = '' OR x.ISTITLE IS NULL)
+                GROUP BY
+                    PID
+            ) d ON d.PID = x.CHECKID
+                LEFT JOIN (
+                SELECT recentlyTime, PID
+                FROM (
+                         SELECT
+                             TESTDATE AS recentlyTime,
+                             PID,
+                             ROW_NUMBER() OVER (PARTITION BY PID ORDER BY SORT) AS row_num
+                         FROM
+                             INCONTROL.ZHCX_COMMISSION_CHECK_DETAIL x
+                         WHERE
+                             DELETED = '0' AND TESTDATE IS NOT NULL AND (x.ISTITLE = '' OR x.ISTITLE IS NULL)
+                     ) AS subquery
+                WHERE row_num = 1
+            )c ON c.PID = x.CHECKID
+        WHERE (x.CHECKID = #{masterId} OR x.ID = #{masterId} ) AND x.DELETED = '0'
+    </select>
 </mapper>

+ 12 - 0
business-entity/src/main/java/com/rongwei/bsentity/domain/ZhcxCommissionCheckParameterSetDetalDo.java

@@ -121,5 +121,17 @@ public class ZhcxCommissionCheckParameterSetDetalDo extends BaseDo implements Se
     @TableField("CHECKID")
     private String checkid;
 
+    /**
+     * 剩余试车时间(min)
+     */
+    @TableField(exist = false)
+    private String EESIDUALTIME;
 
+    /**
+     * 最近一次填写的qa时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @JsonProperty("ESTIMATEDENDDATE")
+    @TableField(exist = false)
+    private Date recentlyTime;
 }

Diff do ficheiro suprimidas por serem muito extensas
+ 344 - 0
business-log/2024-10-24/2024-10-24.0.log