Browse Source

大修项目列表、详情增加是否维保班长 大修竣工接口 操作记录bug修改

别傲 5 years ago
parent
commit
7c28c0ca8d
16 changed files with 167 additions and 39 deletions
  1. 3 6
      lift-business-service/src/main/java/cn/com/ty/lift/business/capital/dao/entity/CapitalRepairHistory.java
  2. 28 0
      lift-business-service/src/main/java/cn/com/ty/lift/business/capital/dao/entity/model/request/CapitalCompletedRequest.java
  3. 13 0
      lift-business-service/src/main/java/cn/com/ty/lift/business/capital/service/CapitalRepairService.java
  4. 1 1
      lift-business-service/src/main/java/cn/com/ty/lift/business/capital/service/SignInService.java
  5. 35 15
      lift-business-service/src/main/java/cn/com/ty/lift/business/common/BeanUtils.java
  6. 3 7
      lift-business-service/src/main/java/cn/com/ty/lift/business/library/dao/entity/LiftHistory.java
  7. 10 1
      lift-business-service/src/main/java/cn/com/ty/lift/business/library/service/LiftService.java
  8. 16 4
      lift-business-service/src/main/java/cn/com/ty/lift/business/project/controller/ProjectAppController.java
  9. 1 1
      lift-business-service/src/main/java/cn/com/ty/lift/business/project/dao/entity/ProjectHistory.java
  10. 12 0
      lift-business-service/src/main/java/cn/com/ty/lift/business/project/dao/entity/model/request/ProjectDetailRequest.java
  11. 11 1
      lift-business-service/src/main/java/cn/com/ty/lift/business/project/dao/entity/model/response/ProjectCompanyResponse.java
  12. 5 0
      lift-business-service/src/main/java/cn/com/ty/lift/business/project/dao/entity/model/response/ProjectDetailResponse.java
  13. 11 1
      lift-business-service/src/main/java/cn/com/ty/lift/business/project/service/ProjectAppService.java
  14. 9 1
      lift-business-service/src/main/java/cn/com/ty/lift/business/project/service/ProjectService.java
  15. 4 1
      lift-business-service/src/main/resources/mapper/capital/CapitalRepairLiftRelevanceMapper.xml
  16. 5 0
      lift-common/src/main/java/cn.com.ty.lift.common/constants/FieldName.java

+ 3 - 6
lift-business-service/src/main/java/cn/com/ty/lift/business/capital/dao/entity/CapitalRepairHistory.java

@@ -1,6 +1,8 @@
 package cn.com.ty.lift.business.capital.dao.entity;
 
+import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
 import lombok.Data;
 
 import java.time.LocalDateTime;
@@ -16,7 +18,7 @@ public class CapitalRepairHistory {
     /**
      * 记录ID
      */
-    @TableField("id")
+    @TableId(value = "id", type = IdType.AUTO)
     private Long id;
 
     /**
@@ -63,9 +65,4 @@ public class CapitalRepairHistory {
      * 操作时间
      */
     private LocalDateTime operateDate;
-
-    /**
-     * 自增ID
-     */
-    private Long pid;
 }

+ 28 - 0
lift-business-service/src/main/java/cn/com/ty/lift/business/capital/dao/entity/model/request/CapitalCompletedRequest.java

@@ -0,0 +1,28 @@
+package cn.com.ty.lift.business.capital.dao.entity.model.request;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+/**
+ * @author bieao
+ * @date 2020/4/26
+ * @description 大修竣工
+ */
+@Data
+public class CapitalCompletedRequest {
+
+    /**
+     * 项目ID
+     */
+    @NotNull(message = "notEmpty")
+    private Long id;
+
+    /**
+     * 竣工单地址
+     */
+    @NotEmpty(message = "notEmpty")
+    private List<String> imgUrlList;
+}

+ 13 - 0
lift-business-service/src/main/java/cn/com/ty/lift/business/capital/service/CapitalRepairService.java

@@ -202,6 +202,19 @@ public class CapitalRepairService extends ServiceImpl<CapitalRepairMapper, Capit
         return updateById(capitalRepair);
     }
 
+    /**
+     * @param request 项目id,公司id
+     * @return Integer 成功1或失败0
+     * @description 大修竣工
+     * @date 2020/4/26 1:47 下午
+     */
+    public boolean completed(CapitalCompletedRequest request) {
+        CapitalRepair capitalRepair = getOne(request.getId());
+        if (ObjectUtil.isEmpty(capitalRepair)) return false;
+        capitalRepair.setProjectStatus(CapitalRepairStatus.CHECK_PENDING.getCode());
+        return updateById(capitalRepair);
+    }
+
     /**
      * @param request 逾期原因,逾期时间
      * @return Integer 成功1或失败0

+ 1 - 1
lift-business-service/src/main/java/cn/com/ty/lift/business/capital/service/SignInService.java

@@ -70,7 +70,7 @@ public class SignInService extends ServiceImpl<SignInMapper, SignIn> {
         if (ObjectUtil.isNotEmpty(signIn)) {
             String approachTime = signIn.getApproachTime();
             String leavingTime = signIn.getLeavingTime();
-            if (approachTime != null && leavingTime != null) {
+            if (ObjectUtil.notEqual("--",approachTime) && ObjectUtil.notEqual("--", leavingTime)) {
                 //今日已签到
                 return RestResponse.success(null, MessageUtils.get("msg.sign.limit"));
             }

+ 35 - 15
lift-business-service/src/main/java/cn/com/ty/lift/business/common/BeanUtils.java

@@ -12,28 +12,34 @@ import cn.com.ty.lift.business.project.service.ProjectHistoryService;
 import cn.com.ty.lift.common.constants.FieldName;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.ObjectUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
 
 import javax.annotation.Resource;
+import java.lang.reflect.Field;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 
 /**
  * @author bieao
  * @date 2020/3/10
  * @description BeanUtil
  */
+@Component
+@Slf4j
 public class BeanUtils {
 
     @Resource
-    private static ProjectHistoryService projectHistoryService;
+    private ProjectHistoryService projectHistoryService;
 
     @Resource
-    private static LiftHistoryService liftHistoryService;
+    private LiftHistoryService liftHistoryService;
 
     @Resource
-    private static CapitalRepairHistoryService capitalRepairHistoryService;
+    private CapitalRepairHistoryService capitalRepairHistoryService;
 
 
     /**
@@ -43,23 +49,35 @@ public class BeanUtils {
      * @description 比较实体,并存入相应操作记录表
      * @date 2020/3/10 12:56 下午
      */
-    public static void saveOperaHistory(Object oldEntry, Object newEntry, Long mtCompanyId) {
+    public void saveOperaHistory(Object oldEntry, Object newEntry, Long mtCompanyId) throws NoSuchFieldException {
         Map<String, Object> oldResult = BeanUtil.beanToMap(oldEntry);
+        oldResult.remove("createDate");
+        oldResult.remove("updateDate");
+        oldResult.remove("creatorId");
+        oldResult.remove("updateId");
         Map<String, Object> newResult = BeanUtil.beanToMap(newEntry);
+        newResult.remove("createDate");
+        newResult.remove("updateDate");
+        newResult.remove("creatorId");
+        newResult.remove("updateId");
         List<ProjectHistory> projectHistories = new ArrayList<>();
         List<LiftHistory> liftHistories = new ArrayList<>();
         List<CapitalRepairHistory> capitalRepairHistories = new ArrayList<>();
         for (Map.Entry<String, Object> entry : oldResult.entrySet()) {
             Object oldValue = oldResult.get(entry.getKey());
             Object newValue = newResult.get(entry.getKey());
-            boolean result = ObjectUtil.equal(oldValue, newValue);
-            if (!result) {
+            if (Objects.isNull(oldValue) && Objects.isNull(newValue)) continue;
+            if (Objects.isNull(newValue)) continue;
+            Class<?> cls = newEntry.getClass();
+            Field field = cls.getDeclaredField(entry.getKey());
+            if (!field.isAnnotationPresent(FieldName.class)) continue;
+            FieldName fieldName = field.getDeclaredAnnotation(FieldName.class);
+            boolean result = ObjectUtil.notEqual(oldValue, newValue);
+            if (result) {
                 if (newEntry instanceof Project) {
                     Project project = (Project) newEntry;
-                    Class<? extends Project> cls = project.getClass();
-                    FieldName fieldName = cls.getDeclaredAnnotation(FieldName.class);
                     ProjectHistory projectHistory = new ProjectHistory();
-                    projectHistory.setId(project.getId());
+                    projectHistory.setProjectId(project.getId());
                     projectHistory.setMtCompanyId(mtCompanyId);
                     projectHistory.setOperaItem(fieldName.name());
                     projectHistory.setDescription("编辑项目信息");
@@ -67,34 +85,33 @@ public class BeanUtils {
                     projectHistory.setCode(project.getProjectCode());
                     projectHistory.setBeforeContent(oldValue.toString());
                     projectHistory.setAfterContent(newValue.toString());
+                    projectHistory.setOperatorId(10000L);
                     projectHistory.setOperateDate(LocalDateTime.now());
                     projectHistories.add(projectHistory);
                 } else if (newEntry instanceof Lift) {
                     Lift lift = (Lift) newEntry;
-                    Class<? extends Lift> cls = lift.getClass();
-                    FieldName fieldName = cls.getDeclaredAnnotation(FieldName.class);
                     LiftHistory liftHistory = new LiftHistory();
-                    liftHistory.setId(lift.getId());
+                    liftHistory.setLiftId(lift.getId());
                     liftHistory.setCode(lift.getLiftCode());
                     liftHistory.setMtCompanyId(mtCompanyId);
                     liftHistory.setOperaItem(fieldName.name());
                     liftHistory.setDescription("编辑电梯信息");
                     liftHistory.setBeforeContent(oldValue.toString());
                     liftHistory.setAfterContent(newValue.toString());
+                    liftHistory.setOperatorId(10000L);
                     liftHistory.setOperateDate(LocalDateTime.now());
                     liftHistories.add(liftHistory);
                 } else if (newEntry instanceof CapitalRepair) {
                     CapitalRepair repair = (CapitalRepair) newEntry;
-                    Class<? extends CapitalRepair> cls = repair.getClass();
-                    FieldName fieldName = cls.getDeclaredAnnotation(FieldName.class);
                     CapitalRepairHistory capitalRepairHistory = new CapitalRepairHistory();
-                    capitalRepairHistory.setId(repair.getId());
+                    capitalRepairHistory.setProjectId(repair.getId());
                     capitalRepairHistory.setProjectCode(repair.getProjectCode());
                     capitalRepairHistory.setMtCompanyId(mtCompanyId);
                     capitalRepairHistory.setOperaItem(fieldName.name());
                     capitalRepairHistory.setDescription("编辑大修信息");
                     capitalRepairHistory.setBeforeContent(oldValue.toString());
                     capitalRepairHistory.setAfterContent(newValue.toString());
+                    capitalRepairHistory.setOperatorId(10000L);
                     capitalRepairHistory.setOperateDate(LocalDateTime.now());
                     capitalRepairHistories.add(capitalRepairHistory);
                 }
@@ -102,10 +119,13 @@ public class BeanUtils {
         }
         if (newEntry instanceof Project) {
             projectHistoryService.saveBatch(projectHistories, projectHistories.size());
+            log.info("保存项目操作记录:" + projectHistories.size() + "条");
         } else if (newEntry instanceof Lift) {
             liftHistoryService.saveBatch(liftHistories, liftHistories.size());
+            log.info("保存电梯操作记录:" + liftHistories.size() + "条");
         } else if (newEntry instanceof CapitalRepair) {
             capitalRepairHistoryService.saveBatch(capitalRepairHistories, capitalRepairHistories.size());
+            log.info("保存大修项目操作记录:" + capitalRepairHistories.size() + "条");
         }
     }
 }

+ 3 - 7
lift-business-service/src/main/java/cn/com/ty/lift/business/library/dao/entity/LiftHistory.java

@@ -1,5 +1,6 @@
 package cn.com.ty.lift.business.library.dao.entity;
 
+import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import lombok.Data;
@@ -27,7 +28,7 @@ public class LiftHistory implements Serializable {
     /**
      * 记录ID
      */
-    @TableField("id")
+    @TableId(value = "id", type = IdType.AUTO)
     private Long id;
 
     /**
@@ -57,6 +58,7 @@ public class LiftHistory implements Serializable {
     /**
      * 操作项
      */
+    @TableField("opera_item")
     private String operaItem;
 
     /**
@@ -83,11 +85,5 @@ public class LiftHistory implements Serializable {
     @TableField("operate_date")
     private LocalDateTime operateDate;
 
-    /**
-     * 自增ID
-     */
-    @TableId("pid")
-    private Long pid;
-
 
 }

+ 10 - 1
lift-business-service/src/main/java/cn/com/ty/lift/business/library/service/LiftService.java

@@ -66,6 +66,9 @@ public class LiftService extends ServiceImpl<LiftMapper, Lift> {
     @Resource
     private MaintenanceService maintenanceService;
 
+    @Resource
+    private BeanUtils utils;
+
     private Map<String, String> paramMap = new HashMap<String, String>() {{
         put("liftCode", "电梯号");
         put("registrationCode", "注册代码");
@@ -286,7 +289,13 @@ public class LiftService extends ServiceImpl<LiftMapper, Lift> {
         }
         Optional<Lift> oldLift = getOne(null, lift.getId());
         //修改电梯保存操作记录
-        oldLift.ifPresent(entry -> BeanUtils.saveOperaHistory(oldLift, lift, request.getMtCompanyId()));
+        oldLift.ifPresent(entry -> {
+            try {
+                utils.saveOperaHistory(entry, lift, request.getMtCompanyId());
+            } catch (NoSuchFieldException e) {
+                log.error("电梯操作记录保存异常", e);
+            }
+        });
         return RestResponse.success(null, MessageUtils.get("msg.modify.success"));
     }
 

+ 16 - 4
lift-business-service/src/main/java/cn/com/ty/lift/business/project/controller/ProjectAppController.java

@@ -1,10 +1,7 @@
 package cn.com.ty.lift.business.project.controller;
 
 import cn.com.ty.lift.business.capital.dao.entity.SignIn;
-import cn.com.ty.lift.business.capital.dao.entity.model.request.AttendanceListRequest;
-import cn.com.ty.lift.business.capital.dao.entity.model.request.CapitalBeginRequest;
-import cn.com.ty.lift.business.capital.dao.entity.model.request.CapitalLiftRequest;
-import cn.com.ty.lift.business.capital.dao.entity.model.request.CapitalRepairApplyRequest;
+import cn.com.ty.lift.business.capital.dao.entity.model.request.*;
 import cn.com.ty.lift.business.capital.service.CapitalRepairService;
 import cn.com.ty.lift.business.capital.service.SignInService;
 import cn.com.ty.lift.business.framework.util.MessageUtils;
@@ -244,6 +241,21 @@ public class ProjectAppController {
         return RestResponse.fail(MessageUtils.get("msg.modify.fail"));
     }
 
+    /**
+     * @param request 项目id,竣工单地址
+     * @return Integer 成功1或失败0
+     * @description 大修竣工
+     * @date 2020/4/26 1:47 下午
+     */
+    @PostMapping("capital/completed")
+    public RestResponse completed(@Valid @RequestBody CapitalCompletedRequest request) {
+        boolean result = capitalRepairService.completed(request);
+        if (result) {
+            return RestResponse.success(null, MessageUtils.get("msg.modify.success"));
+        }
+        return RestResponse.fail(MessageUtils.get("msg.modify.fail"));
+    }
+
     /**
      * @param request 逾期原因,逾期时间
      * @return Integer 成功1或失败0

+ 1 - 1
lift-business-service/src/main/java/cn/com/ty/lift/business/project/dao/entity/ProjectHistory.java

@@ -19,7 +19,7 @@ public class ProjectHistory extends BaseEntity {
     /**
      * 记录ID
      */
-    @TableId(value = "id",type = IdType.ID_WORKER)
+    @TableId(value = "id",type = IdType.AUTO)
     private Long id;
 
     /**

+ 12 - 0
lift-business-service/src/main/java/cn/com/ty/lift/business/project/dao/entity/model/request/ProjectDetailRequest.java

@@ -22,6 +22,18 @@ public class ProjectDetailRequest extends PageRequest {
     @NotNull(message = "notEmpty")
     private Long id;
 
+    /**
+     * 用户id
+     */
+    @NotNull(message = "notEmpty")
+    private Long userId;
+
+    /**
+     * 公司id
+     */
+    @NotNull(message = "notEmpty")
+    private Long mtCompanyId;
+
     /**
      * 电梯注册代码
      */

+ 11 - 1
lift-business-service/src/main/java/cn/com/ty/lift/business/project/dao/entity/model/response/ProjectCompanyResponse.java

@@ -12,7 +12,7 @@ public class ProjectCompanyResponse {
     /**
      * 项目id
      */
-    private String projectId;
+    private Long projectId;
     /**
      * 项目编号
      */
@@ -33,4 +33,14 @@ public class ProjectCompanyResponse {
      * 项目状态
      */
     private String projectStatus;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 是否维保班长
+     */
+    private String isMonitor;
 }

+ 5 - 0
lift-business-service/src/main/java/cn/com/ty/lift/business/project/dao/entity/model/response/ProjectDetailResponse.java

@@ -73,4 +73,9 @@ public class ProjectDetailResponse {
      * 文员
      */
     private String clerkName;
+
+    /**
+     * 是否维保班长
+     */
+    private String isMonitor;
 }

+ 11 - 1
lift-business-service/src/main/java/cn/com/ty/lift/business/project/service/ProjectAppService.java

@@ -18,6 +18,7 @@ import cn.com.ty.lift.business.project.dao.entity.model.request.ProjectUserListR
 import cn.com.ty.lift.business.project.dao.entity.model.response.ProjectCompanyResponse;
 import cn.com.ty.lift.business.project.dao.entity.model.response.ProjectDetailResponse;
 import cn.com.ty.lift.business.project.dao.entity.model.response.ProjectLiftResponse;
+import cn.com.ty.lift.business.project.dao.entity.model.response.ProjectUserResponse;
 import cn.com.ty.lift.business.project.dao.mapper.ProjectMapper;
 import cn.com.ty.lift.business.project.dao.mapper.ProjectUserMapper;
 import cn.com.ty.lift.common.constants.CommonEnum;
@@ -34,6 +35,7 @@ import java.util.LinkedList;
 import java.util.List;
 import java.util.Objects;
 import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 /**
  * @author bieao
@@ -50,6 +52,9 @@ public class ProjectAppService extends ServiceImpl<ProjectMapper, Project> {
     @Resource
     private ProjectUserMapper projectUserMapper;
 
+    @Resource
+    private ProjectUserService projectUserService;
+
     @Resource
     private MaintenancePlanMapper maintenancePlanMapper;
 
@@ -178,7 +183,12 @@ public class ProjectAppService extends ServiceImpl<ProjectMapper, Project> {
      * @date 2020/4/21 9:13 下午
      */
     public ProjectDetailResponse capitalDetail(ProjectDetailRequest request) {
-        return capitalRepairLiftRelevanceMapper.findProjectById(request);
+        ProjectDetailResponse response = capitalRepairLiftRelevanceMapper.findProjectById(request);
+        List<ProjectUserResponse> userList = projectUserService.getUserList(request.getId(), request.getUserId());
+        Stream<String> isMonitor = userList.stream().
+                filter(entry -> request.getUserId().equals(entry.getUserId())).map(ProjectUserResponse::getIsMonitor);
+        response.setIsMonitor(isMonitor.toString());
+        return response;
     }
 
 }

+ 9 - 1
lift-business-service/src/main/java/cn/com/ty/lift/business/project/service/ProjectService.java

@@ -67,6 +67,8 @@ public class ProjectService extends ServiceImpl<ProjectMapper,Project> {
     private ProjectUserService projectUserService;
     @Resource
     private MaintenancePlanService maintenancePlanService;
+    @Resource
+    private BeanUtils utils;
 
     private Map<String, String> paramMap = new HashMap<String, String>() {{
         put("projectCode", "项目编号");
@@ -262,7 +264,13 @@ public class ProjectService extends ServiceImpl<ProjectMapper,Project> {
     public boolean modify(Project project) {
         Optional<Project> oldProject = getOne(project.getId());
         //修改项目保存操作记录
-        oldProject.ifPresent(entry -> BeanUtils.saveOperaHistory(oldProject, project, project.getMtCompanyId()));
+        oldProject.ifPresent(entry -> {
+            try {
+                utils.saveOperaHistory(entry, project, project.getMtCompanyId());
+            } catch (NoSuchFieldException e) {
+                log.error("项目操作记录保存异常", e);
+            }
+        });
         return updateById(project);
     }
 

+ 4 - 1
lift-business-service/src/main/resources/mapper/capital/CapitalRepairLiftRelevanceMapper.xml

@@ -47,8 +47,11 @@
         cr.project_code   AS projectCode,
         cr.project_name   AS projectName,
         cr.project_usage  AS projectUsage,
-        cr.project_status AS projectStatus
+        cr.project_status AS projectStatus,
+        pu.user_id        AS userId,
+        pu.is_monitor     AS isMonitor
         FROM capital_repair cr
+        LEFT JOIN project_user pu ON cr.id = pu.project_id
         WHERE 1=1
         <if test="request.mtCompanyId!=null and request.mtCompanyId!=''">
             AND cr.mt_company_id = #{request.mtCompanyId,jdbcType=BIGINT}

+ 5 - 0
lift-common/src/main/java/cn.com.ty.lift.common/constants/FieldName.java

@@ -1,10 +1,15 @@
 package cn.com.ty.lift.common.constants;
 
+import java.lang.annotation.*;
+
 /**
  * @author bieao
  * @date 2020/4/22
  * @description 属性别名
  */
+@Documented
+@Retention(RetentionPolicy.RUNTIME)
+@Target({ElementType.FIELD})
 public @interface FieldName {
 
     String name();