Browse Source

修复bug:不能补录的问题

别傲 5 years ago
parent
commit
d23c9833e7

+ 18 - 13
lift-business-service/src/main/java/cn/com/ty/lift/business/maintenance/service/MaintenanceRecordService.java

@@ -112,12 +112,12 @@ public class MaintenanceRecordService extends ServiceImpl<MaintenanceRecordMappe
      * @description 根据计划id和公司id查询是否有保养记录
      * @date 2020/1/20 2:41 下午
      */
-    public boolean count(Long planId, Long mtCompanyId, Long workerId) {
+    public MaintenanceRecord findOne(Long planId, Long mtCompanyId, Long liftId) {
         LambdaQueryWrapper<MaintenanceRecord> lambdaQueryWrapper = Wrappers.lambdaQuery();
         lambdaQueryWrapper.eq(MaintenanceRecord::getMtPlanId, planId);
         lambdaQueryWrapper.eq(MaintenanceRecord::getMtCompanyId, mtCompanyId);
-        lambdaQueryWrapper.eq(MaintenanceRecord::getWorkerId, workerId);
-        return count(lambdaQueryWrapper) > 0;
+        lambdaQueryWrapper.eq(MaintenanceRecord::getLiftId,liftId);
+        return getOne(lambdaQueryWrapper);
     }
 
     /**
@@ -181,22 +181,17 @@ public class MaintenanceRecordService extends ServiceImpl<MaintenanceRecordMappe
         MaintenanceRecord record = request.getRecord();
         Long planId = record.getMtPlanId();
         Long mtCompanyId = record.getMtCompanyId();
-        Long workerId = record.getWorkerId();
         Long liftId = record.getLiftId();
         request.setCurrentTime(LocalDate.now());
         //校验电梯是否定位
         String liftCoordinate = getCoordinate(liftId);
         if (StrUtil.isEmpty(liftCoordinate)) return RestResponse.fail(MessageUtils.get("msg.lift.not.position"));
-        //查询该电梯是否有保养记录
-        boolean count = count(planId, mtCompanyId, workerId);
-        if (count)
-            return RestResponse.fail(MessageUtils.get("msg.exist.record"));
-        String coordinate = request.getCoordinate();
         //校验是否为经纬度
 //        boolean verifyResult = VerifyUtils.preJudgment(coordinate);
 //        if (!verifyResult)
 //            return RestResponse.fail(MessageUtils.get("msg.longitude.error"));
         //维保工是否在电梯附近
+        String coordinate = request.getCoordinate();
         boolean result = calc(liftCoordinate, coordinate);
         if (result)
             return RestResponse.fail(MessageUtils.get("msg.error.person.scope"));
@@ -229,10 +224,20 @@ public class MaintenanceRecordService extends ServiceImpl<MaintenanceRecordMappe
             record.setWorkDate(LocalDate.now());
             record.setPlanDate(plan.getPlanDate());
             record.setStopDate(LocalDateTime.now());
-            boolean ret = save(record);
-            if (!ret) {
-                rollback();
-                return RestResponse.fail(MessageUtils.get("msg.add.fail"));
+            MaintenanceRecord one = findOne(planId, mtCompanyId, liftId);
+            if (Objects.isNull(one)){
+                boolean ret = save(record);
+                if (!ret) {
+                    rollback();
+                    return RestResponse.fail(MessageUtils.get("msg.add.fail"));
+                }
+            } else {
+                record.setId(one.getId());
+                boolean ret = updateById(record);
+                if (!ret) {
+                    rollback();
+                    return RestResponse.fail(MessageUtils.get("msg.modify.fail"));
+                }
             }
         } else {
             return RestResponse.fail(MessageUtils.get("msg.add.fail"));