Эх сурвалжийг харах

Update 优化点检签到记录,增加计划时间字段

Yue 1 сар өмнө
parent
commit
62a71c2d5d

+ 2 - 1
SERVER/ChickenFarmV3/.script/sql/new/init_y.sql

@@ -198,6 +198,7 @@ CREATE TABLE `d_inspection_checkin` (
     `inspector_id` bigint NOT NULL COMMENT '点检人ID',
     `planned_sequence` int NOT NULL COMMENT '点检计划次序',
     `execute_time` datetime  NULL COMMENT '执行时间',
+    `plan_time` datetime  NULL COMMENT '计划时间',
     `image_url` varchar(255) DEFAULT NULL COMMENT '签到图片',
     `checkin_status` tinyint NOT NULL DEFAULT '0' COMMENT '状态(0:正常 1:异常)',
     `create_org` bigint NOT NULL COMMENT '创建组织',
@@ -298,6 +299,6 @@ INSERT INTO `sys_menu` VALUES (2044, '删除保养工单', 355, 0, '#', NULL, ''
 INSERT INTO `sys_menu` VALUES (356, '设备报表', 21, 6, 'report', NULL, '', 1, 0, 'M', '0', '0', '', 'file-earmark-bar-graph', '', '', 100, 1, '2025-10-15 12:00:00', 1, '2025-10-15 12:00:00', '设备报表');
 INSERT INTO `sys_menu` VALUES (2051, '设备故障统计表', 356, 1, 'deviceFault', 'device/report/fault', '', 1, 0, 'C', '0', '0', 'device:report:fault', '#', NULL, NULL, 100, 1, '2025-10-15 15:02:19', NULL, '2025-10-15 15:02:19', '');
 INSERT INTO `sys_menu` VALUES (2052, '机修工维修明细表', 356, 2, 'deviceRepairDetail', 'device/report/repair', '', 1, 0, 'C', '0', '0', 'device:report:repair', '#', NULL, NULL, 100, 1, '2025-10-15 15:02:19', NULL, '2025-10-15 15:02:19', '');
-INSERT INTO `sys_menu` VALUES (2053, '点检签到漏点统计表', 356, 3, 'pointCheckLose', 'device/report/pointCheck', '', 1, 0, 'C', '0', '0', 'device:report:pointCheck', '#', NULL, NULL, 100, 1, '2025-10-15 15:02:19', NULL, '2025-10-15 15:02:19', '');
+INSERT INTO `sys_menu` VALUES (2053, '点检签到漏点统计表', 356, 3, 'inspectionLose', 'device/report/inspection', '', 1, 0, 'C', '0', '0', 'device:report:inspection', '#', NULL, NULL, 100, 1, '2025-10-15 15:02:19', NULL, '2025-10-15 15:02:19', '');
 
 -- INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, );

+ 4 - 0
SERVER/ChickenFarmV3/vb-modules/vb-device/src/main/java/cn/vber/device/domain/InspectionCheckin.java

@@ -50,6 +50,10 @@ public class InspectionCheckin extends BaseEntity {
      * 执行时间
      */
     private Date executeTime;
+    /**
+     * 计划时间
+     */
+    private Date planTime;
 
     /**
      * 状态

+ 8 - 3
SERVER/ChickenFarmV3/vb-modules/vb-device/src/main/java/cn/vber/device/service/impl/InspectionRuleServiceImpl.java

@@ -175,7 +175,7 @@ public class InspectionRuleServiceImpl implements IInspectionRuleService {
             int missedCount = (int) (sequence - lastSequence);
             inspectionRule.setMissedCount(inspectionRule.getMissedCount() + missedCount);
             bo.setCheckinStatus(0);
-            insertMissedCheckins(bo, sequence, missedCount);
+            insertMissedCheckins(inspectionRule, bo, sequence, missedCount);
         }
         bo.setPlannedSequence((int) sequence);
         bo.setExecuteTime(now);
@@ -184,6 +184,7 @@ public class InspectionRuleServiceImpl implements IInspectionRuleService {
         if (checkin == null) {
             throw new ServiceException("签到信息转换失败");
         }
+        checkin.setPlanTime(DateUtils.addHours(inspectionRule.getStartTime(), (int) (inspectionRule.getCycleHours() * (sequence - 1))));
         checkin.setImageUrl(imageUrl);
         checkinMapper.insert(checkin);
         return baseMapper.updateById(inspectionRule);
@@ -225,10 +226,14 @@ public class InspectionRuleServiceImpl implements IInspectionRuleService {
         return sequence;
     }
 
-    private void insertMissedCheckins(InspectionCheckinBo bo, long actualSequence, int missedCount) {
+    private void insertMissedCheckins(InspectionRule inspectionRule, InspectionCheckinBo bo, long actualSequence, int missedCount) {
         for (int i = 0; i < missedCount; i++) {
-            bo.setPlannedSequence((int) (actualSequence + i - missedCount));
+            int sequence = (int) (actualSequence + i - missedCount);
+            bo.setPlannedSequence(sequence);
             InspectionCheckin checkin = MapstructUtils.convert(bo, InspectionCheckin.class);
+            if (checkin != null) {
+                checkin.setPlanTime(DateUtils.addHours(inspectionRule.getStartTime(), (int) (inspectionRule.getCycleHours() * (sequence - 1))));
+            }
             checkinMapper.insert(checkin);
         }
     }