ソースを参照

第二次合并提交(10-29)

25057 5 ヶ月 前
コミット
554ca3d013
30 ファイル変更639 行追加3 行削除
  1. 268 0
      src/main/java/com/loan/system/controller/wechat/CollateralController.java
  2. 25 0
      src/main/java/com/loan/system/domain/dto/CollateralPlanApprovalDTO.java
  3. 20 0
      src/main/java/com/loan/system/domain/dto/CollateralPlanDTO.java
  4. 1 0
      src/main/java/com/loan/system/domain/entity/ApprovalRecord.java
  5. 54 0
      src/main/java/com/loan/system/domain/entity/CollateralPlan.java
  6. 39 0
      src/main/java/com/loan/system/domain/entity/CollateralRecord.java
  7. 5 1
      src/main/java/com/loan/system/domain/enums/DecisionEnum.java
  8. 9 0
      src/main/java/com/loan/system/domain/enums/ExceptionEnum.java
  9. 29 0
      src/main/java/com/loan/system/domain/vo/CollateralPlanVO.java
  10. 10 0
      src/main/java/com/loan/system/domain/vo/CollateralSalesVO.java
  11. 46 0
      src/main/java/com/loan/system/repository/CollateralPlanRepository.java
  12. 14 0
      src/main/java/com/loan/system/repository/CollateralRepository.java
  13. 2 0
      src/main/java/com/loan/system/repository/UserRepository.java
  14. 17 0
      src/main/java/com/loan/system/service/CollateralPlanService.java
  15. 6 0
      src/main/java/com/loan/system/service/CollateralService.java
  16. 65 0
      src/main/java/com/loan/system/service/Impl/CollateralPlanServiceImpl.java
  17. 13 0
      src/main/java/com/loan/system/service/Impl/CollateralServiceImpl.java
  18. 12 0
      src/main/java/com/loan/system/service/Impl/UserServiceImpl.java
  19. 2 0
      src/main/java/com/loan/system/service/UserService.java
  20. 2 2
      src/main/resources/application-dev.yaml
  21. BIN
      src/main/resources/file_store/1/householdRegister/1-householdRegister-be0c7444-ed51-49f9-960d-d7c36b3ad09c.jpg
  22. BIN
      src/main/resources/file_store/1/householdRegister/1-householdRegister-r3oGtMWPOd1jd602190822b1abf2237b36bcfebcb7a7.png
  23. BIN
      src/main/resources/file_store/1/marriageCertificate/1-marriageCertificate-1efa503e-0ebf-4bfd-b857-96c2f2693bd6.png
  24. BIN
      src/main/resources/file_store/1/marriageCertificate/1-marriageCertificate-b3e83638-2b1e-41b1-897c-b7d38e82f79c.jpg
  25. BIN
      src/main/resources/file_store/1/signature/1-signature-772cd0ac-8a28-49cd-a46c-d9deb275d234.png
  26. BIN
      src/main/resources/file_store/3/idCard/3-idCard-cdTF442ZlUoVd602190822b1abf2237b36bcfebcb7a7.png
  27. BIN
      src/main/resources/file_store/4/householdRegister/4-householdRegister-k6jzrYaJgkDsd602190822b1abf2237b36bcfebcb7a7.png
  28. BIN
      src/main/resources/file_store/4/idCard/4-idCard-cdCvy2m2AyqVd602190822b1abf2237b36bcfebcb7a7.png
  29. BIN
      src/main/resources/file_store/sign.png
  30. BIN
      src/main/resources/file_store/template/~$mplate1.docx

+ 268 - 0
src/main/java/com/loan/system/controller/wechat/CollateralController.java

@@ -0,0 +1,268 @@
+package com.loan.system.controller.wechat;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.loan.system.context.BaseContext;
+import com.loan.system.domain.dto.CollateralPlanApprovalDTO;
+import com.loan.system.domain.dto.CollateralPlanDTO;
+import com.loan.system.domain.entity.ApprovalRecord;
+import com.loan.system.domain.entity.Collateral;
+import com.loan.system.domain.entity.CollateralPlan;
+import com.loan.system.domain.entity.User;
+import com.loan.system.domain.enums.ExceptionEnum;
+import com.loan.system.domain.enums.RoleEnum;
+import com.loan.system.domain.pojo.Result;
+import com.loan.system.domain.vo.CollateralPlanVO;
+import com.loan.system.domain.vo.CollateralSalesVO;
+import com.loan.system.domain.vo.CollateralVO;
+import com.loan.system.service.ApprovalService;
+import com.loan.system.service.CollateralPlanService;
+import com.loan.system.service.CollateralService;
+import com.loan.system.service.Impl.UserServiceImpl;
+import com.loan.system.service.UserService;
+import com.loan.system.utils.ResultUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.util.Base64Utils;
+import org.springframework.web.bind.annotation.*;
+
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.List;
+
+import static com.loan.system.domain.enums.DecisionEnum.*;
+import static com.loan.system.domain.enums.ExceptionEnum.*;
+
+@RestController
+@RequestMapping("/wechat/collateral")
+@Api(tags = "抵押物接口")
+public class CollateralController {
+
+    @Autowired
+    private CollateralService collateralService;
+    @Autowired
+    private CollateralPlanService collateralPlanService;
+    @Autowired
+    private ApprovalService approvalService;
+    @Autowired
+    private UserService userService;
+    private static final Logger log = LoggerFactory.getLogger(UserServiceImpl.class);
+
+    //显示业务相关抵押物状态
+    @GetMapping("/{id}")
+    @ApiOperation("查看业务相关抵押物状态")
+    public Result findCollateral(@PathVariable("id") Long id){
+        List<CollateralVO> collaterals = collateralService.findByCaseId(id);
+        return ResultUtil.success("success",collaterals);
+    }
+
+    @GetMapping("/user")
+    @ApiOperation("获取可选用户")
+    public Result findUser(){
+        List<String> Roles=new ArrayList<>();
+        Roles.add("LEAD_SALES");
+        Roles.add("ASSIST_SALES");
+        List<User> users = userService.findByRoleAndIsDelete(Roles,false);
+        if(users == null || users.isEmpty()){
+            return ResultUtil.error(USER_NOT_EXIST.getCode(),"用户不存在");
+        }
+        List<CollateralSalesVO> salesVOS=new ArrayList<>();
+        for (User user : users){
+            CollateralSalesVO salesVO = new CollateralSalesVO();
+            BeanUtil.copyProperties(user, salesVO);
+            salesVOS.add(salesVO);
+        }
+        return ResultUtil.success("success",salesVOS);
+    }
+    /**
+     * 查看项目抵押物计划
+     * @param id
+     * @return 响应
+     */
+    @GetMapping("/plan/{id}")
+    @ApiOperation("查看项目抵押物计划")
+    public Result findCollateralPlan(@PathVariable("id") Long id){
+        List<CollateralPlan> collateralPlans = collateralPlanService.findByCaseIdAndIsDelete(id,false);
+        if(collateralPlans == null || collateralPlans.isEmpty()){
+            return ResultUtil.error(COLLATERAL_PLAN_NOT_EXIST.getCode(),"计划不存在");
+        }
+
+        List<String> Roles=new ArrayList<>();
+        Roles.add(RoleEnum.LEAD_SALES.getMsg());
+        Roles.add(RoleEnum.ASSIST_SALES.getMsg());
+
+        // 创建VO列表
+        List<CollateralPlanVO> collateralPlanVOs = new ArrayList<>();
+        for(CollateralPlan plan : collateralPlans){
+            CollateralPlanVO vo = new CollateralPlanVO();
+            BeanUtil.copyProperties(plan, vo);
+            vo.setOperatorId(plan.getOperatorId());
+            vo.setOperatorName(plan.getOperatorName());
+            collateralPlanVOs.add(vo);
+        }
+
+        return ResultUtil.success("success",collateralPlanVOs);
+    }
+
+    /**
+     * 上报计划
+     * @return 响应
+     */
+    @PostMapping("/plan")
+    @PreAuthorize("@pms.hasAnyRoles('LEAD_SALES','ASSIST_SALES')")
+    @ApiOperation("上报计划")
+    public Result createCollateralPlan(@RequestBody CollateralPlanDTO collateralPlanDTO){
+        Collateral collaterals = collateralService.findCollateralById(collateralPlanDTO.getCollateralId());
+        if (collaterals == null){
+            return ResultUtil.error(COLLATERAL_NOT_EXIST.getCode(), "抵押物不存在");
+        }
+        List<CollateralPlan> collateralPlans=collateralPlanService.findByCollateralIdAndIsDelete(collateralPlanDTO.getCollateralId());
+        // 修改后的代码
+        for(CollateralPlan plan : collateralPlans){
+            // 如果状态既不是拒绝也不是执行完成,则返回错误
+            if(!plan.getStatus().equals(REJECTION.getMsg()) && !plan.getStatus().equals(EXECUTION_COMPLETE.getMsg())){
+                return ResultUtil.error(COLLATERAL_PLAN_ALREADY_EXIST.getCode(), COLLATERAL_PLAN_ALREADY_EXIST.getMsg());
+            }
+        }
+
+        Long userid = BaseContext.getCurrentId();
+        CollateralPlan collateralPlan = CollateralPlan.builder()
+                .collateralId(collateralPlanDTO.getCollateralId())
+                .caseId(collateralPlanDTO.getCaseId())
+                .time(collateralPlanDTO.getCollateralTime())
+                .place(collateralPlanDTO.getCollateralPlace())
+                .flag(collateralPlanDTO.getFlag())
+                .userId(userid)
+                .comments(collateralPlanDTO.getComments())
+                .createTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")))
+                .updateTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")))
+                .status(WAITING_APPROVAL.getMsg())
+                .isDelete(false)
+                .build();
+        collateralPlanService.save(collateralPlan);
+        return ResultUtil.success("success", "计划上报成功");
+    }
+
+    /**
+     * 审批计划
+     * @param collateralPlanApprovalDTO
+     * @return 响应
+     */
+    @PostMapping("/plan/approval")
+    @PreAuthorize("@pms.hasRole('APPROVER')")
+    @ApiOperation("审批计划")
+    public Result refuseCollateralPlan(@RequestBody CollateralPlanApprovalDTO collateralPlanApprovalDTO){
+        CollateralPlan collateralPlan = collateralPlanService.findById(collateralPlanApprovalDTO.getId());
+        if(collateralPlan == null){
+            return ResultUtil.error(COLLATERAL_PLAN_NOT_EXIST.getCode(),"计划不存在");
+        }
+        log.info("collaterralplanid: " + collateralPlan.getId());
+        if(!collateralPlan.getStatus().equals(WAITING_APPROVAL.getMsg())){
+            return ResultUtil.error(COLLATERAL_PLAN_NOT_ALREADY_APPROVED.getCode(),COLLATERAL_PLAN_NOT_ALREADY_APPROVED.getMsg());
+        }
+        ApprovalRecord approvalRecord = ApprovalRecord.builder()
+                .caseId(collateralPlanApprovalDTO.getCaseId())
+                .stepName("押品管控环节")
+                .approverId(BaseContext.getCurrentId())
+                .decision(collateralPlanApprovalDTO.getDecision())
+                .comments(collateralPlanApprovalDTO.getComments())
+                .createTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")))
+                .updateTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")))
+                .isDelete( false)
+                .build();
+        approvalService.save(approvalRecord);
+        log.info(collateralPlanApprovalDTO.getDecision());
+        log.info("操作者id"+collateralPlanApprovalDTO.getOperator().getId());
+        if("拒绝".equals(collateralPlanApprovalDTO.getDecision())){
+            collateralPlanService.updateCollateralStatusByid(collateralPlan.getId(), REJECTION.getMsg());
+            //collateralPlanService.logic_delete(collateralPlanApprovalDTO.getId());
+            return ResultUtil.success("success","计划已拒绝");
+        }else if("通过".equals(collateralPlanApprovalDTO.getDecision())){
+//            collateralPlanService.updateCollateraluserIdByid(collateralPlanApprovalDTO.getId(),collateralPlanApprovalDTO.getUserId());
+            collateralPlanService.updateCollateralStatusByid(collateralPlanApprovalDTO.getId(),WAITING_EXECUTION.getMsg());
+            // 修改 Controller 中的调用
+            collateralPlanService.updateCollateraloperatorIdByid(
+                    collateralPlan.getId(),
+                    collateralPlanApprovalDTO.getOperator().getId(),
+                    collateralPlanApprovalDTO.getOperator().getRealName()
+            );
+//TODO 改状态+微信推送下一个节点业务员
+            return ResultUtil.success("success","计划已通过");
+        }else{
+            return ResultUtil.error(ExceptionEnum.UNKNOWN_ERROR,"请选择通过或者拒绝");
+        }
+    }
+
+
+
+    /**确认抵押物入库,完成任务
+     *ID:计划id
+     */
+    @PostMapping("/warehouse/{id}")
+    @PreAuthorize("@pms.hasAnyRoles('LEAD_SALES','ASSIST_SALES')")
+    @ApiOperation("确认抵押物入库")
+    public Result warehouseCollateral(@PathVariable("id") Long id){
+        CollateralPlan collateralPlan = collateralPlanService.findByCollateralPlanId(id);
+        if(collateralPlan == null){
+            return ResultUtil.error(COLLATERAL_PLAN_NOT_EXIST.getCode(),"计划不存在");
+        }
+        if(!collateralPlan.getStatus().equals(WAITING_EXECUTION.getMsg())){
+            return ResultUtil.error(COLLATERAL_PLAN_NOT_ALREADY_EXECUTION.getCode(),COLLATERAL_PLAN_NOT_ALREADY_EXECUTION.getMsg());
+        }
+        if(!collateralPlan.getFlag().equals("入库")){
+            return ResultUtil.error(COLLATERAL_PLAN_NOT_EQUAL_WAREHOUSE.getCode(),COLLATERAL_PLAN_NOT_EQUAL_WAREHOUSE.getMsg());
+        }
+        Collateral collateral = collateralService.findCollateralById(collateralPlan.getCollateralId());
+        if(collateral == null){
+            return ResultUtil.error(COLLATERAL_NOT_EXIST.getCode(),"抵押物不存在");
+        }
+
+        collateralService.updateCollateralStatusByid(collateral.getId(),"入库");
+        collateralPlanService.updateCollateralStatusByid(id,EXECUTION_COMPLETE.getMsg());
+        return ResultUtil.success("success","抵押物入库成功");
+    }
+    /**确认抵押物出库,完成任务
+     *ID:计划id
+     */
+    @PostMapping("/outbound/{id}")
+    @PreAuthorize("@pms.hasAnyRoles('LEAD_SALES','ASSIST_SALES')")
+    @ApiOperation("确认抵押物出库")
+    public Result outboundCollateral(@PathVariable("id") Long id){
+        CollateralPlan collateralPlan = collateralPlanService.findByCollateralPlanId(id);
+        if(collateralPlan == null){
+            return ResultUtil.error(COLLATERAL_PLAN_NOT_EXIST.getCode(),"计划不存在");
+        }
+        if(!collateralPlan.getStatus().equals(WAITING_EXECUTION.getMsg())){
+            return ResultUtil.error(COLLATERAL_PLAN_NOT_ALREADY_EXECUTION.getCode(),COLLATERAL_PLAN_NOT_ALREADY_EXECUTION.getMsg());
+        }
+        if(!collateralPlan.getFlag().equals("出库")){
+            return ResultUtil.error(COLLATERAL_PLAN_NOT_EQUAL_OUTBOUND.getCode(),COLLATERAL_PLAN_NOT_EQUAL_OUTBOUND.getMsg());
+        }
+        Collateral collateral = collateralService.findCollateralById(collateralPlan.getCollateralId());
+        if(collateral == null){
+            return ResultUtil.error(COLLATERAL_NOT_EXIST.getCode(),"抵押物不存在");
+        }
+        collateralService.updateCollateralStatusByid(collateral.getId(),"出库");
+        collateralPlanService.updateCollateralStatusByid(id,EXECUTION_COMPLETE.getMsg());
+        return ResultUtil.success("success","抵押物出库成功");
+    }
+    /**删除抵押物
+     *
+     */
+    @PostMapping("/delete/{id}")
+    @PreAuthorize("@pms.hasAnyRoles('LEAD_SALES','ASSIST_SALES')")
+    @ApiOperation("删除抵押物")
+    public Result deleteCollateral(@PathVariable("id") Long id){
+        Collateral collateral = collateralService.findCollateralById(id);
+        if(collateral == null){
+            return ResultUtil.error(COLLATERAL_NOT_EXIST.getCode(),"抵押物不存在");
+        }
+        collateralService.logic_delete(id);
+        return ResultUtil.success("success","抵押物删除成功");
+    }
+
+}

+ 25 - 0
src/main/java/com/loan/system/domain/dto/CollateralPlanApprovalDTO.java

@@ -0,0 +1,25 @@
+package com.loan.system.domain.dto;
+
+import com.loan.system.domain.entity.User;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.springframework.web.bind.annotation.PathVariable;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.List;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class CollateralPlanApprovalDTO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    private Long id;
+    private Long caseId;
+    private String comments;
+    private String decision;
+    private Long userId;
+    private User operator;
+}

+ 20 - 0
src/main/java/com/loan/system/domain/dto/CollateralPlanDTO.java

@@ -0,0 +1,20 @@
+package com.loan.system.domain.dto;
+
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class CollateralPlanDTO extends CollateralDTO{
+    private static final long serialVersionUID = 1L;
+    private Long collateralId;
+    private Long caseId;
+    private String collateralName;
+    private String collateralTime;
+    private String collateralPlace;
+    private String comments;
+    private String flag;
+}

+ 1 - 0
src/main/java/com/loan/system/domain/entity/ApprovalRecord.java

@@ -13,6 +13,7 @@ import java.time.Instant;
 @Data
 @AllArgsConstructor
 @NoArgsConstructor
+@Builder
 public class ApprovalRecord extends BaseEntity{
     private static final long serialVersionUID = 1L;
 

+ 54 - 0
src/main/java/com/loan/system/domain/entity/CollateralPlan.java

@@ -0,0 +1,54 @@
+package com.loan.system.domain.entity;
+
+import lombok.*;
+
+import javax.persistence.*;
+import java.time.Instant;
+@Builder
+@Entity
+@Table(name = "collateral_plan")
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class CollateralPlan extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    @Column(name = "case_id")
+    private Long caseId;
+
+    @Column(name = "collateral_id")
+    private Long collateralId;
+
+    @Column(name = "user_id")
+    private Long userId;
+
+    @Column(name = "time")
+    private String time;
+
+    @Column(name = "place", length = 255)
+    private String place;
+
+    @Column(name = "flag", length = 10)
+    private String flag;
+
+    @Column(name = "comments")
+    private String comments;
+
+    @Column(name = "create_time")
+    private String  createTime;
+
+    @Column(name = "update_time")
+    private String  updateTime;
+
+    @Column(name = "is_delete")
+    private Boolean isDelete;
+
+    @Column(name = "status", length = 10)
+    private String status;
+
+    @Column(name="operator_id")
+    private Long operatorId;
+
+    @Column(name="operator_name")
+    private String operatorName;
+}

+ 39 - 0
src/main/java/com/loan/system/domain/entity/CollateralRecord.java

@@ -0,0 +1,39 @@
+package com.loan.system.domain.entity;
+
+import lombok.*;
+
+import javax.persistence.*;
+import java.time.Instant;
+
+@Entity
+@Table(name = "collateral_record")
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class CollateralRecord extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    @Column(name = "case_id")
+    private Long caseId;
+
+    @Column(name = "collateral_id")
+    private Long collateralId;
+
+    @Column(name = "operation", length = 50)
+    private String operation;
+
+    @Column(name = "user_id")
+    private Long userId;
+
+    @Column(name = "comments")
+    private String comments;
+
+    @Column(name = "create_time")
+    private Instant createTime;
+
+    @Column(name = "update_time")
+    private Instant updateTime;
+
+    @Column(name = "is_delete")
+    private Boolean isDelete;
+}

+ 5 - 1
src/main/java/com/loan/system/domain/enums/DecisionEnum.java

@@ -6,7 +6,11 @@ package com.loan.system.domain.enums;
 public enum DecisionEnum {
     PASS("PASS", "通过"),
     REJECT("REJECT", "驳回"),
-    TERMINATE("TERMINATE", "终结");
+    TERMINATE("TERMINATE", "终结"),
+    WAITING_APPROVAL("WAIT_APPROVAL", "待审批"),
+    REJECTION("REJECTION", "拒绝"),
+    WAITING_EXECUTION("WAIT_EXECUTION", "待执行"),
+    EXECUTION_COMPLETE("EXECUTION_COMPLETE", "执行完成");
 
     private final String status;
     private final String msg;

+ 9 - 0
src/main/java/com/loan/system/domain/enums/ExceptionEnum.java

@@ -98,6 +98,15 @@ public enum ExceptionEnum {
     DISBURSEMENT_HAS_NOT_COMPLETED(-301, "出款未完成,无法新增"),
     DISBURSEMENT_HAS_COMPLETED(-302, "出款已完成,无法修改"),
 
+    COLLATERAL_NOT_EXIST(-310, "抵押物不存在"),
+    COLLATERAL_PLAN_NOT_EXIST(-311,"计划不存在"),
+    COLLATERAL_PLAN_NOT_ALREADY_APPROVED(-312,"计划未处于待审批状态"),
+    COLLATERAL_PLAN_NOT_ALREADY_EXECUTION(-313,"计划未处于待执行状态"),
+    COLLATERAL_PLAN_NOT_EQUAL_WAREHOUSE(-314,"计划与入库操作不符"),
+    COLLATERAL_PLAN_NOT_EQUAL_OUTBOUND(-315,"计划与出库操作不符"),
+    COLLATERAL_PLAN_ALREADY_EXIST(-316,"该押品已有计划未执行完成,不能重复添加"),
+
+
 
     STEP_EXIST(-350, "项目环节已存在"),
     STEP_NOT_EXIST(-351, "项目环节不存在"),

+ 29 - 0
src/main/java/com/loan/system/domain/vo/CollateralPlanVO.java

@@ -0,0 +1,29 @@
+package com.loan.system.domain.vo;
+
+import com.loan.system.domain.entity.User;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.List;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class CollateralPlanVO implements Serializable {
+    private Long id;
+    private Long caseId;
+    private Long collateralId;
+    private Long userId;
+    private String time;
+    private String place;
+    private String flag;
+    private String comments;
+    private String createTime;
+    private String updateTime;
+    private String status;
+    private Long operatorId;
+    private String operatorName;
+    private Boolean isDelete;
+}

+ 10 - 0
src/main/java/com/loan/system/domain/vo/CollateralSalesVO.java

@@ -0,0 +1,10 @@
+package com.loan.system.domain.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+@Data
+public class CollateralSalesVO implements Serializable {
+    private Long id;
+    private String realName;
+}

+ 46 - 0
src/main/java/com/loan/system/repository/CollateralPlanRepository.java

@@ -0,0 +1,46 @@
+package com.loan.system.repository;
+
+
+import com.loan.system.domain.entity.CollateralPlan;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Modifying;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+public interface CollateralPlanRepository extends JpaRepository<CollateralPlan,Long> {
+
+    @Query("select c from CollateralPlan c where c.collateralId = ?1 and c.isDelete = ?2 and c.status='待审批'")
+    CollateralPlan findByCollateralIdAndIsDelete(Long collateralId, boolean isDelete);
+
+    @Query("select c from CollateralPlan c where c.id = ?1 and c.isDelete = ?2")
+    CollateralPlan findByIdAndIsDelete(Long id, Boolean isDelete);
+
+    @Query("select c from CollateralPlan c where c.collateralId = ?1 and c.isDelete = ?2")
+    List<CollateralPlan> findsByCollateralIdAndIsDelete(Long collateralId, boolean isDelete);
+
+    @Query("select c from CollateralPlan c where c.caseId = ?1 and c.isDelete = ?2")
+    List<CollateralPlan> findByCaseIdAndIsDelete(Long caseId, boolean isDelete);
+
+    @Modifying
+    @Transactional
+    @Query("update CollateralPlan c set c.isDelete = true where c.id = ?1")
+    void logic_delete(Long id);
+
+    @Modifying
+    @Transactional
+    @Query("update CollateralPlan c set c.userId = ?2 , c.updateTime=CURRENT_TIMESTAMP where c.collateralId = ?1")
+    void updateCollateralUserIdeByid(Long collateralId, Long userId);
+
+    @Modifying
+    @Transactional
+    @Query("update CollateralPlan c set c.status = ?2 , c.updateTime=CURRENT_TIMESTAMP where c.id = ?1")
+    void updateCollateralStatusByid(Long collateralId, String status);
+
+    @Modifying
+    @Transactional
+    @Query("update CollateralPlan c set c.operatorId = ?2 , c.operatorName = ?3 , c.updateTime=CURRENT_TIMESTAMP where c.id = ?1")
+    void updateCollateraloperatorIdByid(Long collateralId, Long operatorId,String operatorName);
+
+}

+ 14 - 0
src/main/java/com/loan/system/repository/CollateralRepository.java

@@ -43,4 +43,18 @@ public interface CollateralRepository extends JpaRepository<Collateral,Long> {
     @Modifying
     @Query("delete FROM Collateral c WHERE c.caseId = ?1")
     void deleteAllByCaseId(Long caseId);
+
+    //逻辑删除
+    @Modifying
+    @Transactional
+    @Query("UPDATE Collateral c SET c.isDelete = true , c.updateTime = CURRENT_TIMESTAMP WHERE c.id = ?1")
+    void deleteById(Long id);
+
+    @Modifying
+    @Transactional
+    @Query("UPDATE Collateral c SET c.staus = ?2 ,c.updateTime = CURRENT_TIMESTAMP  WHERE c.id = ?1 And c.isDelete= false ")
+    void updateCollateralStatusByid(Long id, String status);
+
+    @Query("SELECT c FROM Collateral c WHERE c.id = ?1 And c.isDelete = false")
+    Collateral findCollateralById(Long id);
 }

+ 2 - 0
src/main/java/com/loan/system/repository/UserRepository.java

@@ -22,6 +22,8 @@ public interface UserRepository extends JpaRepository<User,Long> {
 
     Page<User> findByIsDelete(Boolean isDelete, Pageable pageable);
 
+    List<User> findByIsDelete(Boolean isDelete);
+
     @Query("select u from User u where u.id in ?1 and u.isDelete = ?2")
     User findByUserIdAndIsDelete(Long userId, Boolean isDelete);
 

+ 17 - 0
src/main/java/com/loan/system/service/CollateralPlanService.java

@@ -0,0 +1,17 @@
+package com.loan.system.service;
+
+import com.loan.system.domain.entity.CollateralPlan;
+
+import java.util.List;
+
+public interface CollateralPlanService {
+    void save(CollateralPlan collateralPlan);
+    CollateralPlan findByCollateralPlanId(Long id);
+    void logic_delete(Long id);
+    void updateCollateraluserIdByid(Long collateralId, Long userId);
+    List<CollateralPlan> findByCaseIdAndIsDelete(Long caseId, boolean isDelete);
+    void updateCollateralStatusByid(Long collateralId, String status);
+    void updateCollateraloperatorIdByid(Long planId, Long operatorId, String operatorName);
+    List<CollateralPlan> findByCollateralIdAndIsDelete(Long collateralId);
+    CollateralPlan findById(Long id);
+}

+ 6 - 0
src/main/java/com/loan/system/service/CollateralService.java

@@ -13,7 +13,13 @@ public interface CollateralService {
 
     Collateral saveCollateral(CollateralDTO collateralDTO);
 
+    Collateral findCollateralById(Long id);
+
     void updateCollateralById(Long id, CollateralDTO collateralDTO, boolean isDelete);
 
     void deleteAllByCaseId(Long caseId);
+
+    void logic_delete(Long id);
+
+    void updateCollateralStatusByid(Long id,String  status);
 }

+ 65 - 0
src/main/java/com/loan/system/service/Impl/CollateralPlanServiceImpl.java

@@ -0,0 +1,65 @@
+package com.loan.system.service.Impl;
+
+import com.loan.system.domain.entity.CollateralPlan;
+import com.loan.system.repository.CollateralPlanRepository;
+import com.loan.system.repository.CollateralRepository;
+import com.loan.system.service.CollateralPlanService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public class CollateralPlanServiceImpl implements CollateralPlanService {
+
+    private final CollateralPlanRepository collateralPlanRepository;
+
+    public CollateralPlanServiceImpl(CollateralPlanRepository collateralPlanRepository) {
+        this.collateralPlanRepository = collateralPlanRepository;
+    }
+
+
+    @Override
+    public void save(CollateralPlan collateralPlan) {
+        collateralPlanRepository.save(collateralPlan);
+    }
+
+    @Override
+    public CollateralPlan findByCollateralPlanId(Long id){
+        return collateralPlanRepository.findByIdAndIsDelete(id,false);
+    }
+
+    @Override
+    public void logic_delete(Long id){
+        collateralPlanRepository.logic_delete(id);
+    }
+
+    @Override
+    public void updateCollateraluserIdByid(Long id,Long userId){
+        collateralPlanRepository.updateCollateralUserIdeByid(id,userId);
+    }
+
+    @Override
+    public List<CollateralPlan> findByCaseIdAndIsDelete(Long caseId, boolean isDelete){
+        return collateralPlanRepository.findByCaseIdAndIsDelete(caseId,isDelete);
+    };
+
+    @Override
+    public  void updateCollateralStatusByid(Long collateralId, String status){
+        collateralPlanRepository.updateCollateralStatusByid(collateralId,status);
+    }
+
+    @Override
+    public void updateCollateraloperatorIdByid(Long planId, Long operatorId, String operatorName){
+        collateralPlanRepository.updateCollateraloperatorIdByid(planId,operatorId,operatorName);
+    };
+
+    @Override
+    public List<CollateralPlan> findByCollateralIdAndIsDelete(Long collateralId){
+        return collateralPlanRepository.findsByCollateralIdAndIsDelete(collateralId,false);
+    }
+
+    @Override
+    public CollateralPlan findById(Long id){
+        return collateralPlanRepository.findByIdAndIsDelete(id,false);
+    }
+}

+ 13 - 0
src/main/java/com/loan/system/service/Impl/CollateralServiceImpl.java

@@ -52,4 +52,17 @@ public class CollateralServiceImpl implements CollateralService {
     public void deleteAllByCaseId(Long caseId) {
         collateralRepository.deleteAllByCaseId(caseId);
     }
+    @Override
+    public void logic_delete(Long id) {
+        collateralRepository.deleteById(id);
+    }
+
+    @Override
+    public void updateCollateralStatusByid(Long id,String  status){
+        collateralRepository.updateCollateralStatusByid(id,status);
+    }
+    @Override
+    public Collateral findCollateralById(Long id){
+        return collateralRepository.findCollateralById(id);
+    }
 }

+ 12 - 0
src/main/java/com/loan/system/service/Impl/UserServiceImpl.java

@@ -39,6 +39,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.UUID;
 import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
 
 @Service
 public class UserServiceImpl implements UserService {
@@ -228,4 +229,15 @@ public class UserServiceImpl implements UserService {
         return userRepository.findByIdAndIsDelete(id,false);
     }
 
+    @Override
+    public List<User> findByRoleAndIsDelete(List<String> roles, boolean isDelete){
+        return userRepository.findByIsDelete(isDelete).stream()
+                .filter(user -> roles.stream()
+                        .anyMatch(role -> user.getRole().contains(role)))
+                .distinct()
+                .collect(Collectors.toList());
+
+    };
+
+
 }

+ 2 - 0
src/main/java/com/loan/system/service/UserService.java

@@ -38,4 +38,6 @@ public interface UserService {
     void deleteUserByLogic(Long id);
 
     void updateUserRole(String role,Long id);
+
+    List<User> findByRoleAndIsDelete(List<String> role, boolean isDelete);
 }

+ 2 - 2
src/main/resources/application-dev.yaml

@@ -68,9 +68,9 @@ mybatis:
 
 upload:
   host: "http://tczbus.natappfree.cc/uploads"
-  location: "classpath:file_store" #改
+  location: "D:\\Java\\loan-backend\\src\\main\\resources\\file_store" #改
   extensions: "pdf,doc,docx,xls,xlsx,JPG,jpg,bmp,BMP,gif,GIF,BMP,png,PNG,bmp,jpeg,JPEG,svg,txt"
-  templatePath: "classpath:file_store\\template\\template1.docx" #改
+  templatePath: "D:\\Java\\loan-backend\\src\\main\\resources\\file_store\\template\\template1.docx" #改
 
 system:
   wechat:

BIN
src/main/resources/file_store/1/householdRegister/1-householdRegister-be0c7444-ed51-49f9-960d-d7c36b3ad09c.jpg


BIN
src/main/resources/file_store/1/householdRegister/1-householdRegister-r3oGtMWPOd1jd602190822b1abf2237b36bcfebcb7a7.png


BIN
src/main/resources/file_store/1/marriageCertificate/1-marriageCertificate-1efa503e-0ebf-4bfd-b857-96c2f2693bd6.png


BIN
src/main/resources/file_store/1/marriageCertificate/1-marriageCertificate-b3e83638-2b1e-41b1-897c-b7d38e82f79c.jpg


BIN
src/main/resources/file_store/1/signature/1-signature-772cd0ac-8a28-49cd-a46c-d9deb275d234.png


BIN
src/main/resources/file_store/3/idCard/3-idCard-cdTF442ZlUoVd602190822b1abf2237b36bcfebcb7a7.png


BIN
src/main/resources/file_store/4/householdRegister/4-householdRegister-k6jzrYaJgkDsd602190822b1abf2237b36bcfebcb7a7.png


BIN
src/main/resources/file_store/4/idCard/4-idCard-cdCvy2m2AyqVd602190822b1abf2237b36bcfebcb7a7.png


BIN
src/main/resources/file_store/sign.png


BIN
src/main/resources/file_store/template/~$mplate1.docx