Selaa lähdekoodia

大修项目接口修改

别傲 5 vuotta sitten
vanhempi
commit
6cd85bc527

+ 6 - 12
lift-business-service/src/main/java/cn/com/ty/lift/business/capital/controller/CapitalRepairController.java

@@ -1,10 +1,8 @@
 package cn.com.ty.lift.business.capital.controller;
 
 import cn.com.ty.lift.business.capital.dao.entity.CapitalRepair;
-import cn.com.ty.lift.business.capital.dao.entity.model.request.CapitalDetailRequest;
-import cn.com.ty.lift.business.capital.dao.entity.model.request.CapitalRepairAuditRequest;
-import cn.com.ty.lift.business.capital.dao.entity.model.request.CapitalRepairRequest;
-import cn.com.ty.lift.business.capital.dao.entity.model.request.SignInRequest;
+import cn.com.ty.lift.business.capital.dao.entity.model.request.*;
+import cn.com.ty.lift.business.capital.dao.entity.model.response.CapitalRepairResponse;
 import cn.com.ty.lift.business.capital.dao.entity.model.response.SignInResponse;
 import cn.com.ty.lift.business.capital.service.CapitalRepairService;
 import cn.com.ty.lift.business.capital.service.SignInService;
@@ -44,7 +42,7 @@ public class CapitalRepairController {
      */
     @PostMapping("list")
     public RestResponse list(@RequestBody CapitalRepairRequest request) {
-        IPage<CapitalRepair> page = capitalRepairService.list(request);
+        IPage<CapitalRepairResponse> page = capitalRepairService.list(request);
         if (CollUtil.isEmpty(page.getRecords())) {
             return RestResponse.success();
         }
@@ -67,18 +65,14 @@ public class CapitalRepairController {
     }
 
     /**
-     * @param capitalRepair 新增大修项目数据项
+     * @param request 新增大修项目数据项
      * @return Integer 成功1或失败0
      * @description 新增大修项目
      * @date 2020/2/3 11:31 上午
      */
     @PostMapping("add")
-    public RestResponse add(@RequestBody CapitalRepair capitalRepair) {
-        boolean result= capitalRepairService.add(capitalRepair);
-        if (result) {
-            return RestResponse.success(null, MessageUtils.get("msg.add.success"));
-        }
-        return RestResponse.fail(MessageUtils.get("msg.add.fail"));
+    public RestResponse add(@RequestBody CapitalRepairExtensionRequest request) {
+        return capitalRepairService.add(request);
     }
 
     /**

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

@@ -40,12 +40,17 @@ public class CapitalRepair extends BaseEntity {
     /**
      * 项目编号
      */
-    private String code;
+    private String projectCode;
 
     /**
      * 项目名称
      */
-    private String name;
+    private String projectName;
+
+    /**
+     * 项目用途
+     */
+    private String projectUsage;
 
     /**
      * 省编码
@@ -80,17 +85,11 @@ public class CapitalRepair extends BaseEntity {
     /**
      * 项目地址
      */
-    private String address;
-
-    /**
-     * 台量
-     */
-    private Integer num;
-
+    private String projectAddress;
     /**
-     * 实际台量
+     * 经纬度
      */
-    private Integer actualNum;
+    private String coordinate;
 
     /**
      * 开始时间
@@ -105,7 +104,7 @@ public class CapitalRepair extends BaseEntity {
     /**
      * 状态 1:尚未开始;2:施工中;3:待审核;4:完成
      */
-    private String status;
+    private String projectStatus;
 
     /**
      * 是否开启消息推送 0否 1是

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

@@ -0,0 +1,30 @@
+package cn.com.ty.lift.business.capital.dao.entity.model.request;
+
+import cn.com.ty.lift.business.capital.dao.entity.CapitalRepair;
+import cn.com.ty.lift.business.project.dao.entity.ProjectUser;
+import lombok.Data;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+/**
+ * @author bieao
+ * @date 2020/2/18
+ * @description 新增大修项目
+ */
+@Data
+public class CapitalRepairExtensionRequest {
+
+    /**
+     * 大修项目
+     */
+    @NotNull(message = "notEmpty")
+    private CapitalRepair capitalRepair;
+
+    /**
+     * 项目成员
+     */
+    @NotEmpty(message = "notEmpty")
+    private List<ProjectUser> userList;
+}

+ 3 - 3
lift-business-service/src/main/java/cn/com/ty/lift/business/capital/dao/entity/model/request/CapitalRepairRequest.java

@@ -16,13 +16,13 @@ public class CapitalRepairRequest extends BaseRequestModel {
     /**
      * 项目名称
      */
-    private String name;
+    private String projectName;
     /**
      * 项目名称
      */
-    private String code;
+    private String projectCode;
     /**
      * 项目状态
      */
-    private String status;
+    private String projectStatus;
 }

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

@@ -0,0 +1,50 @@
+package cn.com.ty.lift.business.capital.dao.entity.model.response;
+
+import lombok.Data;
+
+import java.time.LocalDate;
+
+/**
+ * @author bieao
+ * @date 2020/2/18
+ * @description 大修列表返回体
+ */
+@Data
+public class CapitalRepairResponse {
+    /**
+     * 项目id
+     */
+    private Long id;
+    /**
+     * 项目名称
+     */
+    private String projectName;
+    /**
+     * 项目地址
+     */
+    private String projectAddress;
+    /**
+     * 竣工时间
+     */
+    private LocalDate endDate;
+    /**
+     * 区域id
+     */
+    private Long regionId;
+    /**
+     * 项目状态
+     */
+    private String projectStatus;
+    /**
+     * 区域
+     */
+    private String regionName;
+    /**
+     * 区域主管
+     */
+    private String userName;
+    /**
+     * 甲方公司名称
+     */
+    private String companyName;
+}

+ 2 - 1
lift-business-service/src/main/java/cn/com/ty/lift/business/capital/dao/mapper/CapitalRepairMapper.java

@@ -2,6 +2,7 @@ package cn.com.ty.lift.business.capital.dao.mapper;
 
 import cn.com.ty.lift.business.capital.dao.entity.CapitalRepair;
 import cn.com.ty.lift.business.capital.dao.entity.model.request.CapitalRepairRequest;
+import cn.com.ty.lift.business.capital.dao.entity.model.response.CapitalRepairResponse;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.apache.ibatis.annotations.Param;
@@ -13,6 +14,6 @@ import org.apache.ibatis.annotations.Param;
  */
 public interface CapitalRepairMapper extends BaseMapper<CapitalRepair> {
 
-    IPage<CapitalRepair> findByCondition(IPage<CapitalRepair> page, @Param("request") CapitalRepairRequest request);
+    IPage<CapitalRepairResponse> findByCondition(IPage<CapitalRepairResponse> page, @Param("request") CapitalRepairRequest request);
 
 }

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

@@ -2,15 +2,27 @@ package cn.com.ty.lift.business.capital.service;
 
 import cn.com.ty.lift.business.capital.dao.entity.CapitalRepair;
 import cn.com.ty.lift.business.capital.dao.entity.model.request.CapitalRepairAuditRequest;
+import cn.com.ty.lift.business.capital.dao.entity.model.request.CapitalRepairExtensionRequest;
 import cn.com.ty.lift.business.capital.dao.entity.model.request.CapitalRepairRequest;
+import cn.com.ty.lift.business.capital.dao.entity.model.response.CapitalRepairResponse;
 import cn.com.ty.lift.business.capital.dao.mapper.CapitalRepairMapper;
-import cn.hutool.core.util.StrUtil;
+import cn.com.ty.lift.business.framework.util.MessageUtils;
+import cn.com.ty.lift.business.project.dao.entity.ProjectUser;
+import cn.com.ty.lift.business.project.service.ProjectUserService;
+import cn.com.ty.lift.common.utils.DateUtils;
+import cn.com.xwy.boot.web.dto.RestResponse;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
+
+import javax.annotation.Resource;
+import java.time.LocalDate;
+import java.util.List;
 
 import static cn.com.ty.lift.common.constants.CommonEnum.CapitalRepairStatus;
 
@@ -22,20 +34,17 @@ import static cn.com.ty.lift.common.constants.CommonEnum.CapitalRepairStatus;
 @Service
 public class CapitalRepairService extends ServiceImpl<CapitalRepairMapper, CapitalRepair> {
 
+    @Resource
+    private ProjectUserService projectUserService;
+
     /**
      * @param request 大修项目列表查询条件
      * @return RestResponse 结果集
      * @description 条件查询大修项目列表
      * @date 2020/2/3 11:38 上午
      */
-    public IPage<CapitalRepair> list(CapitalRepairRequest request) {
-        IPage<CapitalRepair> page = new Page<>(request.getPageNum(), request.getPageSize());
-        if (StrUtil.isNotEmpty(request.getName())) {
-            request.setName(StrUtil.format("%{}%", request.getName()));
-        }
-        if (StrUtil.isNotEmpty(request.getCode())) {
-            request.setCode(StrUtil.format("%{}%", request.getCode()));
-        }
+    public IPage<CapitalRepairResponse> list(CapitalRepairRequest request) {
+        IPage<CapitalRepairResponse> page = new Page<>(request.getPageNum(), request.getPageSize());
         return baseMapper.findByCondition(page, request);
     }
 
@@ -53,13 +62,31 @@ public class CapitalRepairService extends ServiceImpl<CapitalRepairMapper, Capit
     }
 
     /**
-     * @param capitalRepair 新增大修项目数据项
+     * @param request 新增大修项目数据项
      * @return Integer 成功1或失败0
      * @description 新增大修项目
      * @date 2020/2/3 11:31 上午
      */
-    public boolean add(CapitalRepair capitalRepair) {
-        return save(capitalRepair);
+    @Transactional(rollbackFor = Exception.class)
+    public RestResponse add(CapitalRepairExtensionRequest request) {
+        CapitalRepair repair = request.getCapitalRepair();
+        String projectCode = DateUtils.generateCode();
+        repair.setProjectCode("XM" + projectCode);
+        repair.setProjectStatus(repair.getStartDate().isAfter(LocalDate.now()) ? "1" : "2");
+        boolean result = save(repair);
+        if (!result) {
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            return RestResponse.fail(MessageUtils.get("msg.add.fail"));
+        }
+        //批量新增项目成员信息
+        List<ProjectUser> users = request.getUserList();
+        users.forEach(user -> user.setProjectId(repair.getId()));
+        boolean ret = projectUserService.saveBatch(users, users.size());
+        if (!ret) {
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            return RestResponse.fail(MessageUtils.get("msg.add.fail"));
+        }
+        return RestResponse.success(null, MessageUtils.get("msg.add.success"));
     }
 
     /**
@@ -81,7 +108,7 @@ public class CapitalRepairService extends ServiceImpl<CapitalRepairMapper, Capit
     public boolean audit(CapitalRepairAuditRequest request) {
         CapitalRepair capitalRepair = new CapitalRepair();
         capitalRepair.setId(request.getId());
-        capitalRepair.setStatus("0".equals(request.getPass()) ?
+        capitalRepair.setProjectStatus("0".equals(request.getPass()) ?
                 CapitalRepairStatus.ABUILDING.getCode() : CapitalRepairStatus.COMPLETE.getCode());
         return updateById(capitalRepair);
     }

+ 29 - 20
lift-business-service/src/main/resources/mapper/capital/CapitalRepairMapper.xml

@@ -6,20 +6,20 @@
         <result column="mt_company_id" property="mtCompanyId" jdbcType="BIGINT" />
         <result column="pp_company_id" property="ppCompanyId" jdbcType="BIGINT" />
         <result column="pp_contact_id" property="ppContactId" jdbcType="BIGINT" />
-        <result column="code" property="code" jdbcType="CHAR" />
-        <result column="name" property="name" jdbcType="VARCHAR" />
+        <result column="project_code" property="code" jdbcType="CHAR" />
+        <result column="project_name" property="name" jdbcType="VARCHAR" />
         <result column="province_code" property="provinceCode" jdbcType="CHAR" />
         <result column="province" property="province" jdbcType="VARCHAR" />
         <result column="city_code" property="cityCode" jdbcType="CHAR" />
         <result column="city" property="city" jdbcType="VARCHAR" />
         <result column="district_code" property="districtCode" jdbcType="CHAR" />
         <result column="district" property="district" jdbcType="VARCHAR" />
-        <result column="address" property="address" jdbcType="VARCHAR" />
-        <result column="num" property="num" jdbcType="INTEGER" />
-        <result column="actual_num" property="actualNum" jdbcType="INTEGER" />
+        <result column="project_address" property="projectAddress" jdbcType="VARCHAR" />
+        <result column="project_usage" property="projectUsage" jdbcType="INTEGER" />
+        <result column="coordinate" property="coordinate" jdbcType="VARCHAR" />
         <result column="start_date" property="startDate" jdbcType="DATE" />
         <result column="end_date" property="endDate" jdbcType="DATE" />
-        <result column="status" property="status" jdbcType="TINYINT" />
+        <result column="project_status" property="projectStatus" jdbcType="INTEGER" />
         <result column="push_flag" property="pushFlag" jdbcType="VARCHAR" />
         <result column="creator_id" property="creatorId" jdbcType="BIGINT" />
         <result column="create_date" property="createDate" jdbcType="TIMESTAMP" />
@@ -29,25 +29,34 @@
     </resultMap>
 
     <sql id="Base_Column_List" >
-        id, mt_company_id, pp_company_id, pp_contact_id, code, name, province_code, province,
-		city_code, city, district_code, district, address, num, actual_num, start_date, end_date,
-		status, push_flag, creator_id, create_date, update_id, update_date, region_id
+        id, mt_company_id, pp_company_id, pp_contact_id, project_code, project_name, province_code, province,
+		city_code, city, district_code, district, project_address, project_usage, coordinate, start_date, end_date,
+		project_status, push_flag, creator_id, create_date, update_id, update_date, region_id
     </sql>
 
-    <select id="findByCondition" resultMap="BaseResultMap"
+    <select id="findByCondition" resultType="cn.com.ty.lift.business.capital.dao.entity.model.response.CapitalRepairResponse"
             parameterType="cn.com.ty.lift.business.capital.dao.entity.model.request.CapitalRepairRequest" >
-        select
-        <include refid="Base_Column_List" />
-        from capital_repair
-        WHERE 1=1
-        <if test="request.status!=null and request.status!=''">
-            AND status = #{request.status,jdbcType=VARCHAR}
+        SELECT c.id              AS id,
+               c.project_name    AS projectName,
+               c.project_address AS projectAddress,
+               c.end_date        AS endDate,
+               c.region_id       AS regionId,
+               c.project_status  AS projectStatus,
+               r.area_name       AS regionName,
+               ui.name           AS userName,
+               pc.name           AS companyName
+        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
+        LEFT JOIN property_company pc ON c.pp_company_id = pc.id
+        <if test="request.projectStatus!=null and request.projectStatus!=''">
+            AND project_status = #{request.projectStatus,jdbcType=VARCHAR}
         </if>
-        <if test="request.code!=null and request.code!=''">
-            AND code LIKE #{request.code,jdbcType=VARCHAR}
+        <if test="request.projectCode!=null and request.projectCode!=''">
+            AND project_code LIKE concat('%',#{request.projectCode,jdbcType=VARCHAR},'%')
         </if>
-        <if test="request.name!=null and request.name!=''">
-            AND name LIKE #{request.name,jdbcType=VARCHAR}
+        <if test="request.projectName!=null and request.projectName!=''">
+            AND project_name LIKE concat('%',#{request.projectName,jdbcType=VARCHAR},'%')
         </if>
     </select>
 </mapper>