DESKTOP-2HCHTFV\Xu 5 ヶ月 前
コミット
c9fb23856f

+ 3 - 3
src/main/java/com/loan/system/controller/wechat/ApprovalController.java

@@ -172,7 +172,7 @@ public class ApprovalController {
 //        return ResultUtil.success("success","审批通过");
 //    }
 
-    @PostMapping("/preapproval-records/{caseId}/reject")
+    @PostMapping("/preapproval-records/{caseId}/rejection")
     @PreAuthorize("@pms.hasAnyRoles('LEAD_SALES','ASSIST_SALES')")
     @ApiOperation("业务预审拒绝")
     public Result pre_approval_reject(PreApprovalDTO preApprovalDTO, HttpServletRequest request) {
@@ -291,7 +291,7 @@ public class ApprovalController {
 
     }
 
-    @PostMapping("/approval/{caseId}/reject")
+    @PostMapping("/approval/{caseId}/rejection")
     @PreAuthorize("@pms.hasRole('APPROVER')")
     @ApiOperation("业务审批拒绝")
     public Result approval_reject(ApprovalDTO approvalDTO, HttpServletRequest request) {
@@ -347,7 +347,7 @@ public class ApprovalController {
 
         return ResultUtil.success("success","审批驳回");
     }
-    @PostMapping("/approval/{caseId}/terminate")
+    @PostMapping("/approval/{caseId}/termination")
     @PreAuthorize("@pms.hasRole('APPROVER')")
     @ApiOperation("业务审批终结")
     public Result approval_end(ApprovalDTO approvalDTO, HttpServletRequest request) {

+ 208 - 22
src/main/java/com/loan/system/controller/wechat/CollateralController.java

@@ -1,18 +1,40 @@
 package com.loan.system.controller.wechat;
 
-import com.loan.system.domain.dto.CollateralDTO;
+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.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.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.security.access.prepost.PreAuthorize;
+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 = "抵押物接口")
@@ -20,42 +42,206 @@ 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);
+
     //显示业务相关抵押物状态
-    @RequestMapping("/{id}")
+    @GetMapping("/{id}")
+    @ApiOperation("查看业务相关抵押物状态")
     public Result findCollateral(@PathVariable("id") Long id){
         List<CollateralVO> collaterals = collateralService.findByCaseId(id);
         return ResultUtil.success("success",collaterals);
     }
-    /**确认抵押物入库
-     *
+    /**
+     * 查看项目抵押物计划
+     * @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
      */
-    @RequestMapping("/warehouse/{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(),"抵押物不存在");
+        }
 
-
-        return null;
+        collateralService.updateCollateralStatusByid(collateral.getId(),"入库");
+        collateralPlanService.updateCollateralStatusByid(id,EXECUTION_COMPLETE.getMsg());
+        return ResultUtil.success("success","抵押物入库成功");
     }
-    /**确认抵押物出库
-     *
+    /**确认抵押物出库,完成任务
+     *ID:计划id
      */
-    @RequestMapping("/outbound/{id}")
+    @PostMapping("/outbound/{id}")
+    @PreAuthorize("@pms.hasAnyRoles('LEAD_SALES','ASSIST_SALES')")
+    @ApiOperation("确认抵押物出库")
     public Result outboundCollateral(@PathVariable("id") Long id){
-
-
-        return null;
+        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","抵押物出库成功");
     }
     /**删除抵押物
      *
      */
-    @RequestMapping("/delete/{id}")
+    @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","抵押物删除成功");
     }
-//    @RequestMapping("/add")
-//    public Result addCollateral(CollateralDTO collateralDTO){
-//
-//        return null;
-//    }
 
 }

+ 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 - 1
src/main/java/com/loan/system/domain/entity/ApprovalRecord.java

@@ -5,7 +5,7 @@ import lombok.*;
 import javax.persistence.*;
 import java.time.Instant;
 
-
+@Builder
 @Entity
 @Table(name = "approval_record", indexes = {
         @Index(name = "idx_case_id", columnList = "case_id")

+ 41 - 14
src/main/java/com/loan/system/domain/entity/CollateralPlan.java

@@ -1,27 +1,54 @@
 package com.loan.system.domain.entity;
 
+import lombok.*;
 
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-import javax.persistence.Entity;
-import javax.persistence.Table;
-
+import javax.persistence.*;
+import java.time.Instant;
+@Builder
 @Entity
 @Table(name = "collateral_plan")
 @Data
 @AllArgsConstructor
 @NoArgsConstructor
-public class CollateralPlan extends BaseEntity{
-    private Long id;
-    private Long case_id;
-    private Long collateral_id;
-    private Long user_id;
+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;
-    private String create_time;
-    private String update_time;
+
+    @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;
 }

+ 27 - 12
src/main/java/com/loan/system/domain/entity/CollateralRecord.java

@@ -1,24 +1,39 @@
 package com.loan.system.domain.entity;
 
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
+import lombok.*;
 
-import javax.persistence.Entity;
-import javax.persistence.Table;
+import javax.persistence.*;
+import java.time.Instant;
 
 @Entity
 @Table(name = "collateral_record")
 @Data
 @AllArgsConstructor
 @NoArgsConstructor
-public class CollateralRecord extends BaseEntity{
-    private Long id;
-    private Long case_id;
-    private Long collateral_id;
+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;
-    private Long user_id;
+
+    @Column(name = "user_id")
+    private Long userId;
+
+    @Column(name = "comments")
     private String comments;
-    private String create_time;
-    private String update_time;
+
+    @Column(name = "create_time")
+    private Instant createTime;
+
+    @Column(name = "update_time")
+    private Instant updateTime;
+
+    @Column(name = "is_delete")
+    private Boolean isDelete;
 }

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

@@ -6,7 +6,13 @@ 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;

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

@@ -95,6 +95,14 @@ public enum ExceptionEnum {
     MODULE_EXIST(-300,"已存在"),
     MODULE_NOT_EXIST(-301,"模块不存在"),
 
+    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;
+}

+ 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);
+
+}

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

@@ -54,4 +54,7 @@ public interface CollateralRepository extends JpaRepository<Collateral,Long> {
     @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);
 }

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

@@ -28,4 +28,8 @@ public interface UserRepository extends JpaRepository<User,Long> {
     User findByMobileAndIsDelete(String phoneNumber,Boolean isDelete);
 
     User findByIdAndIsDelete(Long mobile, Boolean isDelete);
+
+    @Query("select u from User u where u.role in ?1 and u.isDelete = ?2")
+    List<User> findByRoleInAndIsDelete(List<String> roles, 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);
+}

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

@@ -13,6 +13,8 @@ public interface CollateralService {
 
     Collateral saveCollateral(CollateralDTO collateralDTO);
 
+    Collateral findCollateralById(Long id);
+
     void updateCollateralById(Long id, CollateralDTO collateralDTO, boolean isDelete);
 
     void deleteAllByCaseId(Long caseId);
@@ -20,4 +22,6 @@ public interface CollateralService {
     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);
+    }
+}

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

@@ -61,4 +61,9 @@ public class CollateralServiceImpl implements CollateralService {
     public void updateCollateralStatusByid(Long id,String  status){
         collateralRepository.updateCollateralStatusByid(id,status);
     }
+    @Override
+    public Collateral findCollateralById(Long id){
+        return collateralRepository.findCollateralById(id);
+    }
 }
+

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

@@ -184,4 +184,9 @@ public class UserServiceImpl implements UserService {
         return userRepository.findByIdAndIsDelete(id,false);
     }
 
+    @Override
+    public List<User> findByRoleAndIsDelete(List<String> role, boolean isDelete){
+        return userRepository.findByRoleInAndIsDelete(role,isDelete);
+    };
+
 }

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

@@ -26,4 +26,5 @@ public interface UserService {
     Result get_sessionId(String code);
     User findByPhoneNumberAndIsDelete(String phoneNumber);
     boolean existsByMobileAndIsDelete(String phoneNumber);
+    List<User> findByRoleAndIsDelete(List<String> role, boolean isDelete);
 }