Prechádzať zdrojové kódy

pms 生产运营双周会 不返回 隐藏的扩展工作量字段

zhangcl 19 hodín pred
rodič
commit
7cc4cbc8bd

+ 17 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotoperationmeeting/IotOperationMeetingController.java

@@ -142,6 +142,23 @@ public class IotOperationMeetingController {
         PageResult<IotOperationMeetingDetailDO> pageDetails = iotOperationMeetingDetailService.getIotOperationMeetingDetailPage(pageReqVO);
         if (ObjUtil.isNotEmpty(pageDetails)) {
             List<IotOperationMeetingDetailDO> details = pageDetails.getList();
+            // 显示明细时 不显示 required = 0 的扩展属性 完成比 环比等
+            if (CollUtil.isNotEmpty(details)) {
+                details.forEach(detail -> {
+                    // 修改后的扩展属性列表
+                    List<IotTaskAttrModelProperty> modifiedExtProperties = new ArrayList<>();
+                    // 真实的扩展属性列表
+                    List<IotTaskAttrModelProperty> extProperties = detail.getExtProperty();
+                    if (CollUtil.isNotEmpty(extProperties)) {
+                        extProperties.forEach(property -> {
+                            if (ObjUtil.isNotEmpty(property) && ObjUtil.isNotEmpty(property.getRequired()) && 1 == property.getRequired()) {
+                                modifiedExtProperties.add(property);
+                            }
+                        });
+                        detail.setExtProperty(modifiedExtProperties);
+                    }
+                });
+            }
             List<IotOperationMeetingDetailRespVO> meetingDetails = BeanUtils.toBean(details, IotOperationMeetingDetailRespVO.class);
             meetingResp.setDetails(meetingDetails);
         }

+ 13 - 12
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/iotoperationmeeting/IotOperationMeetingServiceImpl.java

@@ -220,7 +220,7 @@ public class IotOperationMeetingServiceImpl implements IotOperationMeetingServic
                         BigDecimal actualGasInjection = getActualValue(properties, "actualGasInjection");
                         if (planGasInjection.compareTo(BigDecimal.ZERO) > 0) {
                             // 注气完成比 gasCompletionRatio = 实际注气量/计划注气量 23.85%
-                            BigDecimal gasCompletionRatio =  actualGasInjection.divide(planGasInjection, 4, RoundingMode.HALF_UP);
+                            BigDecimal gasCompletionRatio =  actualGasInjection.divide(planGasInjection, 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100"));
                             // 将 完成比 作为单独的1个元素添加到 extProperty
                             IotTaskAttrModelProperty completionRatioProperty = new IotTaskAttrModelProperty();
                             completionRatioProperty.setName("注气完成比");
@@ -246,7 +246,7 @@ public class IotOperationMeetingServiceImpl implements IotOperationMeetingServic
                         BigDecimal actualFootage = getActualValue(properties, "actualFootage");
                         if (planFootage.compareTo(BigDecimal.ZERO) > 0) {
                             // 进尺完成比 footageCompletionRatio = 实际进尺/计划进尺 23.85%
-                            BigDecimal footageCompletionRatio =  actualFootage.divide(planFootage, 4, RoundingMode.HALF_UP);
+                            BigDecimal footageCompletionRatio =  actualFootage.divide(planFootage, 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100"));
                             // 将 完成比 作为单独的1个元素添加到 extProperty
                             IotTaskAttrModelProperty footageCompletionRatioProperty = new IotTaskAttrModelProperty();
                             footageCompletionRatioProperty.setName("进尺完成比");
@@ -272,7 +272,7 @@ public class IotOperationMeetingServiceImpl implements IotOperationMeetingServic
                         BigDecimal actualLayers = getActualValue(properties, "actualLayers");
                         if (planLayers.compareTo(BigDecimal.ZERO) > 0) {
                             // 层数完成比 layersCompletionRatio = 实际层数/计划层数 23.85%
-                            BigDecimal layersCompletionRatio =  actualLayers.divide(planLayers, 4, RoundingMode.HALF_UP);
+                            BigDecimal layersCompletionRatio =  actualLayers.divide(planLayers, 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100"));
                             // 将 完成比 作为单独的1个元素添加到 extProperty
                             IotTaskAttrModelProperty layersCompletionRatioProperty = new IotTaskAttrModelProperty();
                             layersCompletionRatioProperty.setName("层数完成比");
@@ -298,7 +298,7 @@ public class IotOperationMeetingServiceImpl implements IotOperationMeetingServic
                         BigDecimal actualWellTrips = getActualValue(properties, "actualWellTrips");
                         if (planWellTrips.compareTo(BigDecimal.ZERO) > 0) {
                             // 井次完成比 wellTripsCompletionRatio = 实际井次/计划井次 23.85%
-                            BigDecimal wellTripsCompletionRatio =  actualWellTrips.divide(planWellTrips, 4, RoundingMode.HALF_UP);
+                            BigDecimal wellTripsCompletionRatio =  actualWellTrips.divide(planWellTrips, 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100"));
                             // 将 完成比 作为单独的1个元素添加到 extProperty
                             IotTaskAttrModelProperty wellTripsCompletionRatioProperty = new IotTaskAttrModelProperty();
                             wellTripsCompletionRatioProperty.setName("井次完成比");
@@ -329,7 +329,7 @@ public class IotOperationMeetingServiceImpl implements IotOperationMeetingServic
                     }
                     if (beforeUtilizationRate.compareTo(BigDecimal.ZERO) > 0) {
                         BigDecimal periodOnPeriod = utilizationRate.subtract(beforeUtilizationRate)
-                                .divide(beforeUtilizationRate, 4, RoundingMode.HALF_UP);
+                                .divide(beforeUtilizationRate, 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100"));
                         // 将 设备利用率 环比 作为单独的1个元素添加到 extProperty
                         IotTaskAttrModelProperty periodOnPeriodProperty = new IotTaskAttrModelProperty();
                         periodOnPeriodProperty.setName("环比");
@@ -895,7 +895,7 @@ public class IotOperationMeetingServiceImpl implements IotOperationMeetingServic
                     BigDecimal actualGasInjection = companyActualGasInjectionPair.get(deptId);
                     BigDecimal planGasInjection = companyPlanGasInjectionPair.get(deptId);
                     if (planGasInjection.compareTo(BigDecimal.ZERO) > 0) {
-                        BigDecimal gasCompletionRatio = actualGasInjection.divide(planGasInjection, 4, RoundingMode.HALF_UP);
+                        BigDecimal gasCompletionRatio = actualGasInjection.divide(planGasInjection, 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100"));
                         IotTaskAttrModelProperty gasCompletionRatioProperty = new IotTaskAttrModelProperty();
                         gasCompletionRatioProperty.setName("注气完成比");
                         gasCompletionRatioProperty.setAccessMode("r");
@@ -963,7 +963,7 @@ public class IotOperationMeetingServiceImpl implements IotOperationMeetingServic
                     BigDecimal actualFootage = companyActualFootagePair.get(deptId);
                     BigDecimal planFootage = companyPlanFootagePair.get(deptId);
                     if (planFootage.compareTo(BigDecimal.ZERO) > 0) {
-                        BigDecimal footageCompletionRatio = actualFootage.divide(planFootage, 4, RoundingMode.HALF_UP);
+                        BigDecimal footageCompletionRatio = actualFootage.divide(planFootage, 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100"));
                         IotTaskAttrModelProperty footageCompletionRatioProperty = new IotTaskAttrModelProperty();
                         footageCompletionRatioProperty.setName("进尺完成比");
                         footageCompletionRatioProperty.setAccessMode("r");
@@ -1030,7 +1030,7 @@ public class IotOperationMeetingServiceImpl implements IotOperationMeetingServic
                     BigDecimal actualWellTrips = companyActualWellTripsPair.get(deptId);
                     BigDecimal planWellTrips = companyPlanWellTripsPair.get(deptId);
                     if (planWellTrips.compareTo(BigDecimal.ZERO) > 0) {
-                        BigDecimal wellTripsCompletionRatio = actualWellTrips.divide(planWellTrips, 4, RoundingMode.HALF_UP);
+                        BigDecimal wellTripsCompletionRatio = actualWellTrips.divide(planWellTrips, 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100"));
                         IotTaskAttrModelProperty wellTripsCompletionRatioProperty = new IotTaskAttrModelProperty();
                         wellTripsCompletionRatioProperty.setName("井次完成比");
                         wellTripsCompletionRatioProperty.setAccessMode("r");
@@ -1098,7 +1098,7 @@ public class IotOperationMeetingServiceImpl implements IotOperationMeetingServic
                     BigDecimal actualLayers = companyActualLayersPair.get(deptId);
                     BigDecimal planLayers = companyPlanLayersPair.get(deptId);
                     if (planLayers.compareTo(BigDecimal.ZERO) > 0) {
-                        BigDecimal layersCompletionRatio = actualLayers.divide(planLayers, 4, RoundingMode.HALF_UP);
+                        BigDecimal layersCompletionRatio = actualLayers.divide(planLayers, 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100"));
                         IotTaskAttrModelProperty layersCompletionRatioProperty = new IotTaskAttrModelProperty();
                         layersCompletionRatioProperty.setName("层数完成比");
                         layersCompletionRatioProperty.setAccessMode("r");
@@ -1151,7 +1151,7 @@ public class IotOperationMeetingServiceImpl implements IotOperationMeetingServic
                     BigDecimal inServiceDeviceNum = companyInServiceDeviceNumPair.get(deptId);
                     BigDecimal constructionDeviceNum = companyConstructionDeviceNumPair.get(deptId);
                     if (inServiceDeviceNum.compareTo(BigDecimal.ZERO) > 0) {
-                        BigDecimal utilizationRate = constructionDeviceNum.divide(inServiceDeviceNum, 4, RoundingMode.HALF_UP);
+                        BigDecimal utilizationRate = constructionDeviceNum.divide(inServiceDeviceNum, 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100"));
                         IotTaskAttrModelProperty utilizationRateProperty = new IotTaskAttrModelProperty();
                         utilizationRateProperty.setName("设备利用率");
                         utilizationRateProperty.setAccessMode("r");
@@ -1171,9 +1171,10 @@ public class IotOperationMeetingServiceImpl implements IotOperationMeetingServic
                             BigDecimal beforeInServiceDeviceNum = beforeCompanyInServiceDeviceNumPair.get(deptId);
                             BigDecimal beforeConstructionDeviceNum = beforeCompanyConstructionDeviceNumPair.get(deptId);
                             if (beforeInServiceDeviceNum.compareTo(BigDecimal.ZERO) > 0) {
-                                BigDecimal beforeUtilizationRate = beforeConstructionDeviceNum.divide(beforeInServiceDeviceNum, 4, RoundingMode.HALF_UP);
+                                BigDecimal beforeUtilizationRate = beforeConstructionDeviceNum.divide(beforeInServiceDeviceNum, 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100"));
                                 if (beforeUtilizationRate.compareTo(BigDecimal.ZERO) > 0) {
-                                    BigDecimal periodOnPeriod = utilizationRate.subtract(beforeUtilizationRate).divide(beforeUtilizationRate, 4, RoundingMode.HALF_UP);
+                                    BigDecimal periodOnPeriod = utilizationRate.subtract(beforeUtilizationRate).
+                                            divide(beforeUtilizationRate, 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100"));
                                     IotTaskAttrModelProperty periodOnPeriodProperty = new IotTaskAttrModelProperty();
                                     periodOnPeriodProperty.setName("环比");
                                     periodOnPeriodProperty.setAccessMode("r");