Jelajahi Sumber

Merge branch 'develop' of http://132.232.206.88:3000/lift-manager/lift-server into feature-bieao

别傲 5 tahun lalu
induk
melakukan
fbabccc710

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

@@ -174,4 +174,7 @@ public class CapitalRepair extends BaseEntity {
      */
     @FieldName(name = "区域ID")
     private Long regionId;
+
+    @FieldName(name = "开工时间")
+    private LocalDateTime startWorkDatetime;
 }

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

@@ -3,6 +3,7 @@ package cn.com.ty.lift.business.capital.dao.entity.model.response;
 import lombok.Data;
 
 import java.time.LocalDate;
+import java.time.LocalDateTime;
 
 /**
  * @author bieao
@@ -69,4 +70,8 @@ public class CapitalRepairResponse {
      * 甲方公司名称
      */
     private String companyName;
+    /**
+     * 开工时间
+     */
+    private LocalDateTime startWorkDateTime;
 }

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

@@ -26,6 +26,7 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
 
 import javax.annotation.Resource;
+import java.time.LocalDateTime;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -262,6 +263,7 @@ public class CapitalRepairService extends ServiceImpl<CapitalRepairMapper, Capit
     public boolean begin(CapitalRepairRequest request) {
         CapitalRepair capitalRepair = getOne(request.getProjectId());
         if (ObjectUtil.isEmpty(capitalRepair)) return false;
+        capitalRepair.setStartWorkDatetime(LocalDateTime.now());
         capitalRepair.setProjectStatus(CapitalRepairStatus.ABUILDING.getCode());
         return updateById(capitalRepair);
     }

+ 4 - 4
lift-business-service/src/main/java/cn/com/ty/lift/business/library/dao/entity/Lift.java

@@ -7,7 +7,10 @@ import com.baomidou.mybatisplus.annotation.TableId;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
-import javax.validation.constraints.*;
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
 import java.math.BigDecimal;
 import java.time.LocalDate;
 
@@ -48,9 +51,6 @@ public class Lift extends BaseEntity {
      * 电梯类型(1:直梯;2:扶梯)
      */
     @FieldName(name = "电梯类型")
-    @Min(value = 1, message = "电梯类型错误")
-    @Max(value = 2, message = "电梯类型错误")
-    @NotNull(message = "电梯类型不能为空")
     private Integer liftType;
 
     /**

+ 16 - 0
lift-business-service/src/main/java/cn/com/ty/lift/business/library/service/LiftService.java

@@ -289,6 +289,8 @@ public class LiftService extends ServiceImpl<LiftMapper, Lift> {
         }
         //新增标记 (0:新增,1:查询后带入)
         if ("0".equals(mark)) {
+            //前端新增时会传值过来,设置电梯id为null,防止新增电梯主键重复
+            lift.setId(null);
             //按当前日期时间戳自动生成电梯编号
             String liftCode = ApiConstants.STRAIGHT_LADDER + DateUtils.generateCode();
             if (CommonEnum.LiftType.STAIRCASE.getCode().equals(Objects.toString(lift.getLiftType()))) {
@@ -296,6 +298,13 @@ public class LiftService extends ServiceImpl<LiftMapper, Lift> {
             }
             LocalDate lastDay = lift.getAnnualInspectionDate().with(TemporalAdjusters.lastDayOfMonth());
             lift.setAnnualInspectionDate(lastDay);
+            //根据电梯类别判断电梯类型
+            Integer category = lift.getCategory();
+            if (category == 1 || category == 2 || category == 3) {
+                lift.setLiftType(1);
+            } else {
+                lift.setLiftType(2);
+            }
             //新增电梯表
             boolean liftResult = save(lift);
             if (!liftResult)
@@ -431,6 +440,13 @@ public class LiftService extends ServiceImpl<LiftMapper, Lift> {
 //        }
         LocalDate lastDay = lift.getAnnualInspectionDate().with(TemporalAdjusters.lastDayOfMonth());
         lift.setAnnualInspectionDate(lastDay);
+        //根据电梯类别判断电梯类型
+        Integer category = lift.getCategory();
+        if (category == 1 || category == 2 || category == 3) {
+            lift.setLiftType(1);
+        } else {
+            lift.setLiftType(2);
+        }
         boolean result = updateById(lift);
         if (!result)
             return RestResponse.fail(MessageUtils.get("msg.modify.fail"));

+ 19 - 4
lift-business-service/src/main/java/cn/com/ty/lift/business/maintenance/service/MaintenanceRecordService.java

@@ -916,7 +916,7 @@ public class MaintenanceRecordService extends ServiceImpl<MaintenanceRecordMappe
                 registrationCode = StrUtil.isNotEmpty(registrationCode) ? registrationCode.replace(illegalChars, "-") : "[电梯注册代码]";
                 useCompanyCode = useCompanyCode != null ? useCompanyCode : "";
                 //保养单及图片文件夹 dir/i.ProjectName-RegistrationCode/
-                String imgDir = StrUtil.format("{}{}{}.{}-{}-", dir, File.separator, (i + 1), projectName, registrationCode);
+                String imgDir = StrUtil.format("{}{}{}.{}-{}--", dir, File.separator, (i + 1), projectName, registrationCode);
                 imgDir += useCompanyCode + File.separator;
                 //生成维保图片
                 List<MtRecordImg> mtRecordImgs = mtRecordResponse.getMtRecordImgs();
@@ -959,10 +959,11 @@ public class MaintenanceRecordService extends ServiceImpl<MaintenanceRecordMappe
         if (entity.getRepairDiff() != null) {
             String repairDuration = this.getRepairDuration(entity.getRepairDiff());
             entity.setRepairDuration(repairDuration);
+        } else {
+            entity.setRepairDuration("");
         }
-        entity.setRepairDuration("");
         Validate.notNull(entity, ValuePool.MAINTENANCE_RECORD_NOT_EXIST);
-        /**
+        /*
          * 维保项id:0/1/2, 0:无需保养,1:已保养,2:需要更换
          * 保养项目  用键值对的方式存储,如(1:0,2:1,3:1...)
          */
@@ -1005,7 +1006,21 @@ public class MaintenanceRecordService extends ServiceImpl<MaintenanceRecordMappe
         writer.merge(1, 1, 4, 5, "设备内部编号:" + (mtRecordResponse.getUseCompanyCode() != null ? mtRecordResponse.getUseCompanyCode() : "未设置"), false);
         writer.merge(2, 2, 0, 1, "注册代码:" + mtRecordResponse.getRegistrationCode(), false);
         writer.merge(2, 2, 2, 3, "电梯位置:" + mtRecordResponse.getDevicePosition(), false);
-        writer.merge(2, 2, 4, 5, "保养类型:" + mtRecordResponse.getType(), false);
+        String type = "";
+        switch (mtRecordResponse.getType()) {
+            case 1:
+                type = "半月保";
+                break;
+            case 2:
+                type = "季度保";
+                break;
+            case 3:
+                type = "半年保";
+                break;
+            case 4:
+                type = "全年保";
+        }
+        writer.merge(2, 2, 4, 5, "保养类型:" + type, false);
         writer.merge(3, 3, 0, 1, "保养时间:" + workDate, false);
         writer.merge(3, 3, 2, 3, "项目编号:" + mtRecordResponse.getProjectCode(), false);
         writer.merge(3, 3, 4, 5, "项目名称:" + mtRecordResponse.getProjectName(), false);

+ 3 - 1
lift-business-service/src/main/resources/application.yml

@@ -9,7 +9,9 @@ spring:
   datasource:
     hikari:
       max-lifetime: 1200000 # default: 1800000
-
+  servlet:
+    multipart:
+      max-file-size: 2MB
 mybatis-plus:
   mapper-locations: classpath*:/mapper/**/**Mapper.xml
   type-handlers-package: cn.com.ty.lift.business.framework.conf

+ 2 - 1
lift-business-service/src/main/resources/mapper/capital/CapitalRepairMapper.xml

@@ -52,7 +52,8 @@
                pc.name           AS companyName,
                c.overdue_date    AS overdueDate,
                c.overdue_reason  AS overdueReason,
-               c.overdue_flag    AS overdueFlag
+               c.overdue_flag    AS overdueFlag,
+               c.start_work_datetime AS startWorkDatetime
         FROM capital_repair c
         LEFT JOIN region r ON c.region_id = r.id
         LEFT JOIN user_info ui ON r.user_id = ui.user_id

+ 10 - 2
lift-system-service/src/main/java/cn/com/ty/lift/system/user/service/impl/LoginService.java

@@ -14,6 +14,7 @@ import cn.com.ty.lift.system.user.dao.entity.model.UserResponse;
 import cn.com.ty.lift.system.user.service.*;
 import cn.com.ty.lift.system.utils.PasswordUtils;
 import cn.com.xwy.boot.web.dto.RestResponse;
+import cn.hutool.crypto.SecureUtil;
 import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -26,9 +27,12 @@ import org.springframework.transaction.interceptor.TransactionAspectSupport;
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpSession;
+import java.time.LocalDateTime;
+import java.time.ZoneOffset;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.UUID;
 import java.util.concurrent.TimeUnit;
 
 /**
@@ -121,7 +125,7 @@ public class LoginService implements ILoginService {
         UserAccount userAccount = userAccountService.getByMobile(userRequest.getMobile());
         //验证手机号是否存在
         if (userAccount == null) {
-            return RestResponse.fail(ApiConstants.RESULT_ERROR, "手机号尚未注册") ;
+            return RestResponse.fail(ApiConstants.RESULT_ERROR, "手机号尚未注册");
         }
         //判断用户是否为物管端用户
         int userType = userAccount.getType() != null ? userAccount.getType() : ApiConstants.UserConstants.TYPE_USER;
@@ -342,7 +346,11 @@ public class LoginService implements ILoginService {
         //封装登录用户信息
         Map<String, Object> currentUserInfoMap = getUserInfoMap(userResponse);
         //设置token为sessionId
-        userResponse.setToken(session.getId());
+        //生成token 用户手机号+uuid+时间戳通过md5加密
+        String securityStr = userResponse.getMobile() + UUID.randomUUID().toString() +
+                LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli();
+        String token = SecureUtil.md5(securityStr);
+        userResponse.setToken(token);
         String mobileUserInfo = getUserInfoKeyInRedis(userRequest);
         putUserInfoToRedis(userRequest, userResponse, currentUserInfoMap, mobileUserInfo);
         return userResponse;