Browse Source

大修签到列表和审核接口修改

别傲 5 years ago
parent
commit
0d1a0dd618

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

@@ -65,7 +65,7 @@ public class CapitalRepairController {
      */
     @PostMapping("detail")
     public RestResponse detail(@Valid @RequestBody CapitalDetailRequest request) {
-        Map<String, Object> resultMap = capitalRepairService.detail(request.getId());
+        Map<String, Object> resultMap = capitalRepairService.detail(request.getId(), request.getMtCompanyId());
         if (MapUtil.isEmpty(resultMap)) {
             return RestResponse.success();
         }
@@ -101,7 +101,7 @@ public class CapitalRepairController {
     /**
      * @param request 是否通过
      * @return Integer 成功1或失败0
-     * @description 大修竣工审核
+     * @description 大修审核
      * @date 2020/2/4 12:46 下午
      */
     @PostMapping("audit")
@@ -113,21 +113,6 @@ public class CapitalRepairController {
         return RestResponse.fail(MessageUtils.get("msg.modify.fail"));
     }
 
-    /**
-     * @param request 是否通过
-     * @return Integer 成功1或失败0
-     * @description 大修逾期审核
-     * @date 2020/4/16 7:22 下午
-     */
-    @PostMapping("overdueAudit")
-    public RestResponse overdueAudit(@Valid @RequestBody CapitalRepairAuditRequest request) {
-        boolean result = capitalRepairService.overdueAudit(request);
-        if (result) {
-            return RestResponse.success(null, MessageUtils.get("msg.modify.success"));
-        }
-        return RestResponse.fail(MessageUtils.get("msg.modify.fail"));
-    }
-
     /**
      * @param request 项目id,公司id
      * @return List<ProjectUserResponse> 大修项目组成员列表

+ 9 - 2
lift-business-service/src/main/java/cn/com/ty/lift/business/capital/dao/entity/SignIn.java

@@ -8,7 +8,9 @@ import lombok.EqualsAndHashCode;
 
 import javax.validation.constraints.NotEmpty;
 import javax.validation.constraints.NotNull;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
+import java.time.LocalTime;
 
 
 /**
@@ -53,14 +55,19 @@ public class SignIn extends BaseEntity {
     @NotEmpty(message = "notEmpty")
     private String address;
 
+    /**
+     * 签到时间
+     */
+    private LocalDate signDate;
+
     /**
      * 进场时间
      */
-    private LocalDateTime approachTime;
+    private LocalTime approachTime;
 
     /**
      * 离场时间
      */
-    private LocalDateTime leavingTime;
+    private LocalTime leavingTime;
 
 }

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

@@ -24,4 +24,10 @@ public class CapitalRepairAuditRequest {
      */
     @NotNull(message = "notEmpty")
     private Long id;
+
+    /**
+     * 审核类型 (0:逾期,1:竣工)
+     */
+    @NotEmpty(message = "notEmpty")
+    private String type;
 }

+ 2 - 3
lift-business-service/src/main/java/cn/com/ty/lift/business/capital/dao/entity/model/response/SignInResponse.java

@@ -1,10 +1,9 @@
 package cn.com.ty.lift.business.capital.dao.entity.model.response;
 
 import cn.com.ty.lift.business.capital.dao.entity.CapitalRepair;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.Data;
 
-import java.util.List;
-
 /**
  * @author bieao
  * @date 2020/2/5
@@ -20,5 +19,5 @@ public class SignInResponse {
     /**
      * 签到记录列表
      */
-    private List<SignRecord> signRecordList;
+    private Page<SignRecordGroupResult> resultPage;
 }

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

@@ -0,0 +1,24 @@
+package cn.com.ty.lift.business.capital.dao.entity.model.response;
+
+import lombok.Data;
+
+import java.time.LocalDate;
+import java.util.List;
+
+/**
+ * @author bieao
+ * @date 2020/4/18
+ * @description 签到记录分组结果
+ */
+@Data
+public class SignRecordGroupResult {
+
+    /**
+     * 签到日期
+     */
+    private LocalDate signDate;
+    /**
+     * 签到记录
+     */
+    private List<SignRecord> signRecords;
+}

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

@@ -4,9 +4,12 @@ import cn.com.ty.lift.business.capital.dao.entity.SignIn;
 import cn.com.ty.lift.business.capital.dao.entity.model.request.SignInRequest;
 import cn.com.ty.lift.business.capital.dao.entity.model.response.SignRecord;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.apache.ibatis.annotations.Param;
 
+import java.time.LocalDate;
+import java.util.List;
+import java.util.Map;
+
 /**
  * @author bieao
  * @date 2020/2/5
@@ -14,6 +17,9 @@ import org.apache.ibatis.annotations.Param;
  */
 public interface SignInMapper extends BaseMapper<SignIn> {
 
-    IPage<SignRecord> findByCondition(IPage<SignRecord> page, @Param("request") SignInRequest request);
+    List<LocalDate> getSignDate(@Param("request") SignInRequest request);
+
+
+    List<SignRecord> findByCondition(@Param("paramMap") Map<String, Object> paramMap);
 
 }

+ 7 - 15
lift-business-service/src/main/java/cn/com/ty/lift/business/capital/service/CapitalRepairService.java

@@ -70,9 +70,9 @@ public class CapitalRepairService extends ServiceImpl<CapitalRepairMapper, Capit
      * @description 查询大修项目详情和项目组列表
      * @date 2020/2/3 11:31 上午
      */
-    public Map<String, Object> detail(Long id) {
+    public Map<String, Object> detail(Long id, Long mtCompanyId) {
         CapitalRepair capitalRepair = getOne(id);
-        List<ProjectUserResponse> userList = projectUserService.getUserList(id);
+        List<ProjectUserResponse> userList = projectUserService.getUserList(id, mtCompanyId);
         Map<String, Object> resultMap = new HashMap<>();
         resultMap.put("capitalRepair", capitalRepair);
         resultMap.put("userList", userList);
@@ -126,24 +126,16 @@ public class CapitalRepairService extends ServiceImpl<CapitalRepairMapper, Capit
     public boolean audit(CapitalRepairAuditRequest request) {
         CapitalRepair capitalRepair = new CapitalRepair();
         capitalRepair.setId(request.getId());
+        //逾期审核
+        if ("0".equals(request.getType())) {
+            capitalRepair.setOverdueFlag("0".equals(request.getPass()) ? 1 : 0);
+        }
+        //竣工审核
         capitalRepair.setProjectStatus("0".equals(request.getPass()) ?
                 CapitalRepairStatus.ABUILDING.getCode() : CapitalRepairStatus.COMPLETE.getCode());
         return updateById(capitalRepair);
     }
 
-    /**
-     * @param request 是否通过
-     * @return Integer 成功1或失败0
-     * @description 大修逾期审核
-     * @date 2020/4/16 7:22 下午
-     */
-    public boolean overdueAudit(CapitalRepairAuditRequest request) {
-        CapitalRepair capitalRepair = new CapitalRepair();
-        capitalRepair.setId(request.getId());
-        capitalRepair.setOverdueFlag(0);
-        return updateById(capitalRepair);
-    }
-
     /**
      * @param request 逾期原因,逾期时间
      * @return Integer 成功1或失败0

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

@@ -6,20 +6,20 @@ import cn.com.ty.lift.business.capital.dao.entity.model.request.AttendanceListRe
 import cn.com.ty.lift.business.capital.dao.entity.model.request.SignInRequest;
 import cn.com.ty.lift.business.capital.dao.entity.model.response.SignInResponse;
 import cn.com.ty.lift.business.capital.dao.entity.model.response.SignRecord;
+import cn.com.ty.lift.business.capital.dao.entity.model.response.SignRecordGroupResult;
 import cn.com.ty.lift.business.capital.dao.mapper.SignInMapper;
 import cn.com.ty.lift.business.project.dao.entity.model.response.ProjectUserResponse;
 import cn.com.ty.lift.business.project.service.ProjectUserService;
 import cn.com.ty.lift.common.constants.CommonEnum;
 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 javax.annotation.Resource;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Optional;
+import java.time.LocalDate;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -90,6 +90,16 @@ public class SignInService extends ServiceImpl<SignInMapper, SignIn> {
         return responseList;
     }
 
+   /**
+    * @param request 公司id,项目id
+    * @return 签到时间列表
+    * @description 查询签到时间
+    * @date 2020/4/18 7:12 下午
+    */
+    public List<LocalDate> getSignDate(SignInRequest request) {
+       return baseMapper.getSignDate(request);
+    }
+
     /**
      * @param request 大修签到查询条件
      * @return RestResponse 结果集
@@ -97,11 +107,46 @@ public class SignInService extends ServiceImpl<SignInMapper, SignIn> {
      * @date 2020/4/16 7:22 下午
      */
     public SignInResponse list(SignInRequest request) {
-        CapitalRepair capital = capitalRepairService.getOne(request.getId());
         SignInResponse response = new SignInResponse();
+        //查询大修项目详情
+        CapitalRepair capital = capitalRepairService.getOne(request.getId());
         response.setCapitalRepair(capital);
-        IPage<SignRecord> signRecord = baseMapper.findByCondition(request.getPage(), request);
-        response.setSignRecordList(signRecord.getRecords());
+        List<LocalDate> list = getSignDate(request);
+        int size = list.size();
+        int count = size / (int) request.getPageSize();
+        Map<String, Object> paramMap = new HashMap<>();
+        int minIndex = (int) ((request.getPageNum() - 1) * request.getPageSize());
+        int maxIndex = (int) (request.getPageNum() * request.getPageSize());
+        if (maxIndex >= size) {
+            maxIndex = size - 1;
+        }
+        LocalDate minDate = list.get(minIndex);
+        LocalDate maxDate = list.get(maxIndex);
+        paramMap.put("minDate", minDate);
+        paramMap.put("maxDate", maxDate);
+        paramMap.put("mtCompanyId", request.getMtCompanyId());
+        paramMap.put("projectId", request.getId());
+        paramMap.put("userId", request.getUserId());
+        //查询签到记录
+        List<SignRecord> signRecord = baseMapper.findByCondition(paramMap);
+        List<SignRecordGroupResult> results = new ArrayList<>();
+        //分组签到记录
+        Map<LocalDate, List<SignRecord>> collect = signRecord.stream().collect(Collectors.groupingBy(SignRecord::getSignDate));
+        for (Map.Entry<LocalDate, List<SignRecord>> entry : collect.entrySet()) {
+            SignRecordGroupResult result = new SignRecordGroupResult();
+            result.setSignDate(entry.getKey());
+            result.setSignRecords(entry.getValue());
+            results.add(result);
+        }
+        results.sort(Comparator.comparing(SignRecordGroupResult::getSignDate).reversed());
+        //组装分页数据
+        Page<SignRecordGroupResult> page = new Page<>();
+        page.setCurrent(request.getPageNum());
+        page.setSize(request.getPageSize());
+        page.setPages(size % request.getPageSize() > 0 ? count + 1 : count);
+        page.setTotal(size);
+        page.setRecords(results);
+        response.setResultPage(page);
         return response;
     }
 }

+ 19 - 7
lift-business-service/src/main/resources/mapper/capital/SignInMapper.xml

@@ -21,8 +21,21 @@
 		creator_id, create_date, update_id, update_date, region_id
     </sql>
 
+    <select id="getSignDate" resultType="java.time.LocalDate"
+            parameterType="cn.com.ty.lift.business.capital.dao.entity.model.request.SignInRequest">
+        SELECT sign_date AS signDate
+        FROM sign_in
+        WHERE mt_company_id =  #{request.mtCompanyId,jdbcType=BIGINT}
+         AND project_id = #{request.id,jdbcType=BIGINT}
+        <if test="request.signDate!=null and request.signDate!=''">
+            AND sign_date = #{request.signDate,jdbcType=DATE}
+        </if>
+        GROUP BY sign_date
+        ORDER BY sign_date
+    </select>
+
     <select id="findByCondition" resultType="cn.com.ty.lift.business.capital.dao.entity.model.response.SignRecord"
-            parameterType="cn.com.ty.lift.business.capital.dao.entity.model.request.SignInRequest" >
+            parameterType="java.util.Map" >
         SELECT
                sign_date     AS signDate,
                approach_time AS approachTime,
@@ -30,12 +43,11 @@
                ui.name       AS userName
         FROM sign_in si
         LEFT JOIN user_info ui ON si.user_id = ui.user_id
-        WHERE si.mt_company_id = #{request.mtCompanyId,jdbcType=BIGINT}
-        <if test="request.signDate!=null and request.signDate!=''">
-            AND si.sign_date = #{request.signDate,jdbcType=DATE}
-        </if>
-        <if test="request.userId!=null and request.userId!=''">
-            AND si.user_id = #{request.userId,jdbcType=BIGINT}
+        WHERE si.mt_company_id = #{paramMap.mtCompanyId,jdbcType=BIGINT}
+        AND project_id = #{paramMap.projectId,jdbcType=BIGINT}
+        AND si.sign_date BETWEEN #{paramMap.minDate} AND #{paramMap.maxDate}
+        <if test="paramMap.userId!=null and paramMap.userId!=''">
+            AND si.user_id = #{paramMap.userId,jdbcType=BIGINT}
         </if>
     </select>
 </mapper>

+ 5 - 4
lift-common/pom.xml

@@ -115,10 +115,11 @@
         </dependency>
         -->
         <!--使用springboot2.1+时候,maven配置依赖是org.messaginghub.pooled-jms-->
-        <!--<dependency>-->
-        <!--<groupId>org.messaginghub</groupId>-->
-        <!--<artifactId>pooled-jms</artifactId>-->
-        <!--</dependency>-->
+        <dependency>
+        <groupId>org.messaginghub</groupId>
+        <artifactId>pooled-jms</artifactId>
+        </dependency>
+
     </dependencies>
 
 </project>