Jelajahi Sumber

大屏数据源

wangxuan 6 bulan lalu
induk
melakukan
ec29ea15ed

+ 1 - 1
business-common/src/main/java/com/rongwei/bscommon/sys/dao/ZhcxCommissionCheckDao.java

@@ -82,5 +82,5 @@ public interface ZhcxCommissionCheckDao extends BaseMapper<ZhcxCommissionCheckDo
      * 获取大屏试车数据
      * @return
      */
-    List<LargeScreenCheckVo> getLargeScreenData();
+    List<LargeScreenCheckVo> getLargeScreenData(Map<String, Object> map);
 }

+ 5 - 18
business-common/src/main/java/com/rongwei/bscommon/sys/dao/ZhcxPmqManagementDao.java

@@ -23,22 +23,9 @@ public interface ZhcxPmqManagementDao extends BaseMapper<ZhcxPmqManagementDo> {
     @Select("SELECT * FROM ZHCX_PMQ_MANAGEMENT WHERE DELETED = '0' AND CONCAT(ORDERNO, '|-_-|', PROJECTNO, '|-_-|', ORDERTYPE) = #{orderno}")
     List<ZhcxPmqManagementDo> getByCodeUnit(Map<String, String> map);
 
-    @Select("SELECT d.PROJECTID AS projectid,\n" +
-            "       d.PROJECTCODE AS projectcode,\n" +
-            "       d.PROJECTNAME AS projectname,\n" +
-            "       d.MACHINENO AS machineno,\n" +
-            "       d.MACHINEID AS machineno,\n" +
-            "       COALESCE(a.xiafa_count,0) AS denominator,\n" +
-            "       COALESCE(a.finish_count,0) AS molecule\n" +
-            "FROM INCONTROL.ZHCX_SHIP_OFFSHORE_DETAIL d\n" +
-            "LEFT join (SELECT mt.PROJECTNO,\n" +
-            "                      COUNT(mt.PROJECTNO)                                              AS xiafa_count,\n" +
-            "                      SUM(CASE WHEN CLOSESTATUS IN ('已关闭', 'NA') THEN 1 ELSE 0 END) AS finish_count\n" +
-            "      FROM INCONTROL.ZHCX_PMQ_MANAGEMENT mt\n" +
-            "               WHERE mt.DELETED = '0'\n" +
-            "                 AND mt.ORDERTYPE in ('液压修改单', '机械修改单', '电气修改单', '电气工艺修改单')\n" +
-            "    GROUP BY mt.PROJECTNO) a on a.PROJECTNO = d.PROJECTCODE\n" +
-            "WHERE\n" +
-            "    d.DELETED = '0'")
-    List<LargeScreenCheckVo> getLargeScreenData();
+    /**
+     * 大屏数据源__三单
+     * @param map 参数:项目id,工号
+     */
+    List<LargeScreenCheckVo> getLargeScreenData(Map<String, Object> map);
 }

+ 1 - 1
business-common/src/main/java/com/rongwei/bscommon/sys/service/ZhcxCommissionCheckService.java

@@ -102,5 +102,5 @@ public interface ZhcxCommissionCheckService extends IService<ZhcxCommissionCheck
     /**
      * 大屏数据源(试车)
      */
-    void largeScreenData();
+    void largeScreenData(Map<String,Object> map);
 }

+ 3 - 1
business-common/src/main/java/com/rongwei/bscommon/sys/service/ZhcxPmqManagementService.java

@@ -3,6 +3,8 @@ package com.rongwei.bscommon.sys.service;
 import com.rongwei.bsentity.domain.ZhcxPmqManagementDo;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.util.Map;
+
 /**
  * <p>
  * 三单管理(Integrated Management of Production Orders, Material Documents, and Quality Records in Manufacturing) 服务类
@@ -16,5 +18,5 @@ public interface ZhcxPmqManagementService extends IService<ZhcxPmqManagementDo>
     /**
      * 大屏数据源(三单)
      */
-    void largeScreenData();
+    void largeScreenData(Map<String,Object> map);
 }

+ 12 - 3
business-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ZhcxCommissionCheckServiceImpl.java

@@ -63,6 +63,7 @@ import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.lang.reflect.Field;
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.*;
 import java.util.List;
 import java.util.concurrent.atomic.AtomicInteger;
@@ -2236,15 +2237,23 @@ public class ZhcxCommissionCheckServiceImpl extends ServiceImpl<ZhcxCommissionCh
 
 
     @Override //大屏数据源(试车)
-    public void largeScreenData() {
+    public void largeScreenData(Map<String,Object> map) {
         // 删除大屏试车数据
         DelPhysicalParam param = DelPhysicalParam.builder()
                 .type("check_test")
                 .build();
+        Object projectIdObj = map.get("projectId");
+        Object machinenoObj = map.get("machineno");
+        if(projectIdObj != null && machinenoObj != null){
+            String projectId = projectIdObj.toString();
+            String machineno = machinenoObj.toString();
+            param.setPrjId(projectId);
+            param.setMachineNo(machineno);
+        }
         projectDeviceIndicatorService.delPhysical(param);
 
         // 获取试车数据
-        List<LargeScreenCheckVo> list = baseMapper.getLargeScreenData();
+        List<LargeScreenCheckVo> list = baseMapper.getLargeScreenData(map);
         log.info("获取的大屏试车数据源:{}",list.size());
         List<ZhcxProjectDeviceIndicatorDo> resultList = new ArrayList<>();
         for (LargeScreenCheckVo largeScreenCheckVo : list) {
@@ -2266,7 +2275,7 @@ public class ZhcxCommissionCheckServiceImpl extends ServiceImpl<ZhcxCommissionCh
             // 分母
             indicator.setTotal(Integer.valueOf(largeScreenCheckVo.getDenominator()));
             // 百分比
-            indicator.setCompletionrate( Convert.toBigDecimal(largeScreenCheckVo.getQaprogress()));
+            indicator.setCompletionrate( Convert.toBigDecimal(largeScreenCheckVo.getQaprogress()).multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP));
             resultList.add(indicator);
         }
         if(!resultList.isEmpty()){

+ 35 - 7
business-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ZhcxPmqManagementServiceImpl.java

@@ -18,6 +18,7 @@ import java.math.RoundingMode;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -35,15 +36,22 @@ public class ZhcxPmqManagementServiceImpl extends ServiceImpl<ZhcxPmqManagementD
     private ZhcxProjectDeviceIndicatorService projectDeviceIndicatorService;
 
     @Override
-    public void largeScreenData() {
+    public void largeScreenData(Map<String,Object> map) {
         // 删除大屏试车数据
         DelPhysicalParam param = DelPhysicalParam.builder()
                 .type("pmq_management")
                 .build();
+        Object projectIdObj = map.get("projectId");
+        Object machinenoObj = map.get("machineno");
+        if(projectIdObj != null && machinenoObj != null){
+            String projectId = projectIdObj.toString();
+            String machineno = machinenoObj.toString();
+            param.setPrjId(projectId);
+            param.setMachineNo(machineno);
+        }
         projectDeviceIndicatorService.delPhysical(param);
-
         // 获取三单数据
-        List<LargeScreenCheckVo> list =baseMapper.getLargeScreenData();
+        List<LargeScreenCheckVo> list =baseMapper.getLargeScreenData(map);
         log.info("获取的大屏试车数据源:{}",list.size());
         List<ZhcxProjectDeviceIndicatorDo> resultList = new ArrayList<>();
         for (LargeScreenCheckVo largeScreenCheckVo : list) {
@@ -68,15 +76,35 @@ public class ZhcxPmqManagementServiceImpl extends ServiceImpl<ZhcxPmqManagementD
             indicator.setTotal(denominator);
             // 百分比
             BigDecimal result;
-            if (denominator == 0) {
+            if (molecule ==0 || denominator == 0) {
                 // 分母为 0 时,根据实际情况设置为 0 或抛出异常
                 result = BigDecimal.ZERO;
             } else {
-                BigDecimal bdMolecule = BigDecimal.valueOf(molecule);
-                BigDecimal bdDenominator = BigDecimal.valueOf(denominator);
-                result = bdMolecule.divide(bdDenominator, 2, RoundingMode.HALF_UP);
+                // 计算百分比
+                BigDecimal intermediateResult = BigDecimal.valueOf(molecule).divide(BigDecimal.valueOf(denominator), 4, RoundingMode.HALF_UP);
+                result = intermediateResult.multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP);
             }
             indicator.setCompletionrate(result);
+
+            // 设置子表数据
+            // 分子2
+            int molecule2 = Integer.parseInt(largeScreenCheckVo.getMolecule2());
+            // 分母2
+            int denominator2 = Integer.parseInt(largeScreenCheckVo.getDenominator2());
+            String roption = "修改单,"+molecule2+"/"+denominator2+",";
+            // 百分比2
+            BigDecimal result2;
+            if (molecule2 ==0 || denominator2 == 0) {
+                // 分母为 0 时,根据实际情况设置为 0 或抛出异常
+                result2 = BigDecimal.ZERO;
+            } else {
+                // 计算百分比
+                BigDecimal intermediateResult2 = BigDecimal.valueOf(molecule2).divide(BigDecimal.valueOf(denominator2), 4, RoundingMode.HALF_UP);
+                result2 = intermediateResult2.multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP);
+            }
+            roption = roption+result2;
+            indicator.setRoption(roption);
+
             resultList.add(indicator);
         }
         if(!resultList.isEmpty()){

+ 3 - 1
business-common/src/main/resources/mybatis/business/ZhcxCommissionCheckDao.xml

@@ -134,7 +134,7 @@
                    WHEN b.qaalltesttime_cx = 0 THEN '0'
                    WHEN b.qatesttime_cx IS NULL THEN '0'
                    WHEN b.qatesttime_cx = 0 THEN '0'
-                   ELSE ROUND(b.qatesttime_cx / b.qaalltesttime_cx, 2)
+                   ELSE ROUND(b.qatesttime_cx / b.qaalltesttime_cx, 4)
                    END     AS qaprogress
         FROM INCONTROL.ZHCX_COMMISSION_CHECK c
                  LEFT JOIN (SELECT PID,
@@ -153,6 +153,8 @@
                             WHERE det.DELETED = '0'
                             GROUP BY PID) b ON b.PID = c.ID
         WHERE c.DELETED = '0'
+        <if test='projectId != null'> and c.PROJECTID = #{projectId} </if>
+        <if test='machineno != null'> and c.MACHINENO = #{machineno} </if>
           and EXISTS (SELECT *
                       FROM INCONTROL.ZHCX_SHIP_OFFSHORE_DETAIL d
                       WHERE d.PROJECTID = c.PROJECTID

+ 40 - 0
business-common/src/main/resources/mybatis/business/ZhcxPmqManagementDao.xml

@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.rongwei.bscommon.sys.dao.ZhcxPmqManagementDao">
+
+
+    <select id="getLargeScreenData" resultType="com.rongwei.bsentity.vo.check.LargeScreenCheckVo">
+        SELECT d.PROJECTID AS projectid,
+               d.PROJECTCODE AS projectcode,
+               d.PROJECTNAME AS projectname,
+               d.MACHINENO AS machineno,
+               d.MACHINEID AS machineno,
+               COALESCE(a.xiafa_count,0) AS denominator,
+               COALESCE(a.finish_count,0) AS molecule,
+               COALESCE(b.xiafa_count,0) AS denominator2,
+               COALESCE(b.finish_count,0) AS molecule2
+        FROM INCONTROL.ZHCX_SHIP_OFFSHORE_DETAIL d
+                 LEFT join (SELECT mt.PROJECTNO,
+                                   COUNT(mt.PROJECTNO)                                              AS xiafa_count,
+                                   SUM(CASE WHEN CLOSESTATUS IN ('已关闭', 'NA') THEN 1 ELSE 0 END) AS finish_count
+                            FROM INCONTROL.ZHCX_PMQ_MANAGEMENT mt
+                            WHERE mt.DELETED = '0'
+                            GROUP BY mt.PROJECTNO) a on a.PROJECTNO = d.PROJECTCODE
+                 LEFT join (SELECT mt.PROJECTNO,
+                                   COUNT(mt.PROJECTNO)                                              AS xiafa_count,
+                                   SUM(CASE WHEN CLOSESTATUS IN ('已关闭', 'NA') THEN 1 ELSE 0 END) AS finish_count
+                            FROM INCONTROL.ZHCX_PMQ_MANAGEMENT mt
+                            WHERE mt.DELETED = '0'
+                              AND mt.ORDERTYPE in ('液压修改单', '机械修改单', '电气修改单', '电气工艺修改单')
+                            GROUP BY mt.PROJECTNO) b on b.PROJECTNO = d.PROJECTCODE
+        WHERE
+            d.DELETED = '0'
+          <if test="projectId != null">
+            and d.PROJECTID = #{projectId}
+          </if>
+          <if test="machineno != null">
+            and d.MACHINENO = #{machineno}
+          </if>
+    </select>
+</mapper>

+ 1 - 1
business-common/src/main/resources/mybatis/business/ZhcxPmqManagementDistributionDao.xml

@@ -119,7 +119,7 @@
         WHERE
             recored.DELETED = '0'
           AND recored.PMQMID = #{id}
-        ORDER BY recored.SEQNO
+        ORDER BY recored.SEQNO desc
     </select>
 
     <select id="getMachinesStatus" resultType="com.rongwei.bsentity.vo.report.MachineState">

+ 10 - 0
business-entity/src/main/java/com/rongwei/bsentity/vo/check/LargeScreenCheckVo.java

@@ -41,4 +41,14 @@ public class LargeScreenCheckVo {
      * 试车进度
      */
     private String qaprogress;
+
+    /**
+     * 分子2
+     */
+    private String molecule2;
+
+    /**
+     * 分母2
+     */
+    private String denominator2;
 }

+ 2 - 2
business-server/src/main/java/com/rongwei/bsserver/controller/ZhcxCommissionCheckController.java

@@ -136,8 +136,8 @@ public class ZhcxCommissionCheckController {
 
     @RequestMapping("largeScreenData")
     @ApiOperation("大屏数据源(试车)")
-    public R largeScreenData() {
-        commissionCheckService.largeScreenData();
+    public R largeScreenData(@RequestBody Map<String,Object> map) {
+        commissionCheckService.largeScreenData(map);
         return R.ok();
     }
 }

+ 2 - 2
business-server/src/main/java/com/rongwei/bsserver/controller/ZhcxPmqManagementController.java

@@ -147,8 +147,8 @@ public class ZhcxPmqManagementController {
 
     @RequestMapping("largeScreenData")
     @ApiOperation("大屏数据源(三单)")
-    public R largeScreenData() {
-        zhcxPmqManagementService.largeScreenData();
+    public R largeScreenData(@RequestBody Map<String,Object> map) {
+        zhcxPmqManagementService.largeScreenData(map);
         return R.ok();
     }
 }