Bladeren bron

个贷出库申请相关

wucl 1 jaar geleden
bovenliggende
commit
6f88b78a8a

+ 14 - 0
biz-base/src/main/java/com/dayou/controller/WorkTaskRecordController.java

@@ -1,6 +1,7 @@
 package com.dayou.controller;
 
 import com.dayou.vo.MajorTaskDoneVO;
+import com.dayou.vo.PersonalTodoVO;
 import com.dayou.vo.TaskTodoVO;
 import com.dayou.vo.WorkTaskRecordVO;
 import lombok.extern.slf4j.Slf4j;
@@ -109,5 +110,18 @@ public class WorkTaskRecordController extends BaseController {
         return RestResponse.data(ret);
     }
 
+    /**
+     * 个贷业务我的待办
+     * @param todoVO
+     * @param page
+     * @param keyword
+     * @return
+     */
+    @GetMapping("/personal/todo")
+    public RestResponse<Page<PersonalTodoVO>> personalTodoPage(PersonalTodoVO todoVO, Page page, String keyword){
+        Page<PersonalTodoVO> ret = workTaskRecordService.personalTodoPage(todoVO,page,keyword);
+        return RestResponse.data(ret);
+    }
+
 }
 

+ 3 - 0
dao/src/main/java/com/dayou/mapper/WorkTaskRecordMapper.java

@@ -5,6 +5,7 @@ import com.dayou.dto.WorkNodeInstanceTaskDTO;
 import com.dayou.entity.WorkTaskRecord;
 import com.dayou.dao.CustomBaseMapper;
 import com.dayou.vo.MajorTaskDoneVO;
+import com.dayou.vo.PersonalTodoVO;
 import com.dayou.vo.TaskTodoVO;
 import com.dayou.vo.WorkTaskRecordVO;
 import org.apache.ibatis.annotations.Param;
@@ -34,4 +35,6 @@ public interface WorkTaskRecordMapper extends CustomBaseMapper<WorkTaskRecord> {
     Page<MajorTaskDoneVO> majorTaskDonePage(Page page, @Param("todoVO") MajorTaskDoneVO todoVO, @Param("keyword") String keyword);
 
     void batchFinishTask(@Param("ids") List<Long> ids);
+
+    Page<PersonalTodoVO> personalTodoPage(Page page, @Param("todoVO") PersonalTodoVO  todoVO, @Param("keyword")String keyword);
 }

+ 5 - 2
dao/src/main/resources/mapper/PersonalProductionMapper.xml

@@ -34,6 +34,7 @@
     <select id="getProductions" parameterType="java.lang.Long" resultType="com.dayou.dto.ProductionDTO">
         SELECT
             pp.*,
+            p.order_id as productionNo,
             pt.location AS NAME,
             pt.acreage AS evaluateAcreage,
             pt.price AS evaluatePrice,
@@ -64,9 +65,11 @@
                 FROM
                     `personal_production`
                 WHERE
-                        target_id = ( SELECT id FROM personal_target WHERE personal_id = 16 AND deleted = 0 )) pp
+                        target_id = ( SELECT id FROM personal_target WHERE personal_id = #{id} AND deleted = 0 )) pp
                 LEFT JOIN personal_target pt ON pt.id = pp.target_id
+                left join personal p on pt.personal_id = p.id
         WHERE
-            pt.deleted = 0
+            pt.deleted = 0 and
+            p.deleted = 0
     </select>
 </mapper>

+ 14 - 16
dao/src/main/resources/mapper/ProductionOutWarehouseMapper.xml

@@ -72,26 +72,24 @@
     </select>
     <select id="getPage" parameterType="com.dayou.entity.ProductionOutWarehouse" resultType="com.dayou.entity.ProductionOutWarehouse">
         SELECT
-            pow.*,
-            pow.business_type,
-            mp.report_no,
-            pf.standard_amount,
-            pf.real_amount AS xRealAmount,
-            u.NAME AS applyName,
-            u1.NAME AS departmentChecker,
-            u2.name as financeChecker
+        pow.*,
+        pow.business_type,
+        pf.standard_amount,
+        pf.real_amount AS xRealAmount,
+        u.NAME AS applyName,
+        u1.NAME AS departmentChecker,
+        u2.name as financeChecker
         FROM
-            `production_out_warehouse` pow
-                left join major_production mp on mp.id = pow.production_id
-                LEFT JOIN production_fund pf ON pf.id = pow.production_fund_id
-                LEFT JOIN user u ON u.id = pow.apply_id
-                LEFT JOIN user u1 ON u1.id = pow.department_checker_id
-                left join user u2 on u2.id = pow.finance_checker_id
+        `production_out_warehouse` pow
+        LEFT JOIN production_fund pf ON pf.id = pow.production_fund_id
+        LEFT JOIN user u ON u.id = pow.apply_id
+        LEFT JOIN user u1 ON u1.id = pow.department_checker_id
+        left join user u2 on u2.id = pow.finance_checker_id
         WHERE
-            pow.deleted = 0 and mp.deleted = 0
+        pow.deleted = 0
         <if test="keyword!=null and keyword!='' ">
             and (
-             mp.report_no like concat('%',#{keyword},'%')
+             pow.report_no like concat('%',#{keyword},'%')
             or pf.standard_amount like concat('%',#{keyword},'%')
             or pf.real_amount like concat('%',#{keyword},'%')
             or u.NAME like concat('%',#{keyword},'%')

+ 68 - 0
dao/src/main/resources/mapper/WorkTaskRecordMapper.xml

@@ -236,4 +236,72 @@
             )
     </update>
 
+    <select id="personalTodoPage" parameterType="com.dayou.vo.TaskTodoVO" resultType="com.dayou.vo.PersonalTodoVO">
+        SELECT
+        wfni.id,
+        wtr.id AS taskId,
+        wfni.id AS currentNodeId,
+        wfni.business_id,
+        p.location,
+        p.order_id,
+        u1.name AS clientManager,
+        wfni.name AS nodeName,
+        wfni.code AS nodeCode,
+        u.name AS handlerName,
+        wtr.handler_id,
+        wtr.finished AS taskFinished,
+        p.created,
+        cc.name AS clientName,
+        cc1.name AS clientSubName,
+        p.agent,
+        cl.name AS contactName,
+        cl.mobile AS contactTel,
+        p.bailorA,
+        p.bailorB,
+        p.bailorA_tel,
+        p.bailorB_tel,
+        u2.name AS outwardStaffName,
+        u3.name AS inwardStaffName,
+        u4.name AS pricingStaffName,
+        wfni.created AS nodeCreated,
+        pt.acreage,
+        pt.amount,
+        pt.price
+        FROM
+        work_task_record wtr
+        LEFT JOIN work_node_task wnt ON wnt.id = wtr.task_id
+        INNER JOIN (
+        SELECT
+        wn.NAME,
+        wn.CODE,
+        wfni.id,
+        wfni.business_id,
+        wfni.state,
+        wfni.created
+        FROM
+        work_flow_node_instance wfni
+        LEFT JOIN work_node wn ON wn.id = wfni.node_id
+        WHERE
+        wfni.business_type = 'PERSONAL_BUSINESS'
+        AND wfni.state = 'PENDING'
+        AND wfni.deleted = 0
+        AND wn.deleted = 0
+        ) wfni ON wtr.instance_id = wfni.id
+        LEFT JOIN personal p ON p.id = wfni.business_id
+        LEFT JOIN customer_company cc ON cc.id = p.clientele_id
+        LEFT JOIN customer_company cc1 ON cc1.id = p.clientele_sub_id
+        LEFT JOIN customer_linkman cl ON cl.id = p.clientele_contact_id
+        LEFT JOIN user u ON u.id = wtr.handler_id
+        LEFT JOIN user u1 ON u1.id = p.client_manager_id
+        LEFT JOIN user u2 ON u2.id = p.outward_staff
+        LEFT JOIN user u3 ON u3.id = p.inward_staff
+        LEFT JOIN user u4 ON u4.id = p.pricing_staff
+        LEFT JOIN personal_target pt ON pt.personal_id = p.id
+        WHERE
+        wtr.handler_id = #{todoVO.handlerId}
+        AND u.deleted = 0
+        AND wnt.deleted = 0
+        AND wtr.deleted = 0
+    </select>
+
 </mapper>

+ 76 - 0
domain/src/main/java/com/dayou/vo/PersonalTodoVO.java

@@ -0,0 +1,76 @@
+package com.dayou.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * 类说明:个贷待办列表VO
+ *
+ * @author: wucl
+ * @since: 2024/4/8
+ * created with IntelliJ IDEA.
+ */
+@Data
+public class PersonalTodoVO {
+
+    private Long id;
+
+    private Long taskId;
+
+    private Long currentNodeId;
+
+    private Long businessId;
+
+    private String nodeName;
+
+    private String nodeCode;
+
+    private Long handlerId;
+
+    private String location;
+
+    private String orderId;
+
+    private String clientManager;
+
+    private String handlerName;
+
+    private Boolean taskFinished;
+
+    private LocalDateTime created;
+
+    private String clientName;
+
+    private String clientSubName;
+
+    private String agent;
+
+    private String contactName;
+
+    private String contactTel;
+
+    private String bailorA;
+
+    private String bailorB;
+
+    private String bailorATel;
+
+    private String bailorBTel;
+
+    private String outwardStaffName;
+
+    private String inwardStaffName;
+
+    private String pricingStaffName;
+
+    private LocalDateTime nodeCreated;
+
+    private BigDecimal acreage;
+
+    private BigDecimal amount;
+
+    private BigDecimal price;
+
+}

+ 9 - 6
service/src/main/java/com/dayou/service/impl/ProductionOutWarehouseServiceImpl.java

@@ -38,6 +38,8 @@ import java.util.ArrayList;
 import org.springframework.transaction.annotation.Transactional;
 import com.dayou.enums.BatchTaskTypeEnum;
 
+import static com.dayou.enums.MainBusinessEnum.PERSONAL_BUSINESS;
+
 /**
  * <p>
  * 产品提前出库申请 服务实现类
@@ -74,6 +76,7 @@ public class ProductionOutWarehouseServiceImpl extends ServiceImpl<ProductionOut
         return this.getById(id);
     }
 
+    @Transactional
     @Override
     public Boolean add(TaskRecordDTO<ProductionOutWarehouse> taskRecordDTO){
         ProductionOutWarehouse productionOutWarehouse = taskRecordDTO.getTaskData();
@@ -90,24 +93,24 @@ public class ProductionOutWarehouseServiceImpl extends ServiceImpl<ProductionOut
             }
         }
         //个贷出库申请 创建应收款
-        if (productionOutWarehouse.getBusinessType().equals(MainBusinessEnum.PERSONAL_BUSINESS.name())){
+        if (productionOutWarehouse.getBusinessType().equals(PERSONAL_BUSINESS.name())){
             Long businessId = productionOutWarehouse.getBusinessId();
             BigDecimal shouldAmount = productionOutWarehouse.getShouldAmount();
-            Long orderFundId = productionOutWarehouse.getOrderFundId();
+            OrderFund xOrderFund = orderFundService.getOne(new LambdaQueryWrapper<OrderFund>().eq(OrderFund::getBusinessType, PERSONAL_BUSINESS.name()).eq(OrderFund::getBusinessId, businessId).eq(BaseEntity::getDeleted, Boolean.FALSE));
             Personal personal = personalService.getOne(new LambdaQueryWrapper<Personal>().select(Personal::getOrderId, Personal::getLocation).eq(BaseEntity::getId, businessId).eq(BaseEntity::getDeleted, Boolean.FALSE));
-            if (orderFundId==null){
+            if (xOrderFund==null){
                 OrderFund orderFund = new OrderFund();
-                orderFund.setBusinessType(MainBusinessEnum.PERSONAL_BUSINESS.name());
+                orderFund.setBusinessType(PERSONAL_BUSINESS.name());
                 orderFund.setBusinessId(businessId);
                 orderFund.setOrderName(personal.getLocation());
                 orderFund.setOrderId(personal.getOrderId());
                 orderFund.setShouldAmount(shouldAmount);
                 orderFundService.add(orderFund);
             }else {
-                orderFundService.update(new LambdaUpdateWrapper<OrderFund>().set(OrderFund::getShouldAmount,shouldAmount).eq(BaseEntity::getId,orderFundId));
+                orderFundService.update(new LambdaUpdateWrapper<OrderFund>().set(OrderFund::getShouldAmount,shouldAmount).eq(BaseEntity::getId,xOrderFund.getId()));
             }
             productionOutWarehouse.setApplyId(LoginContext.getCurrentUserId());
-            productionOutWarehouse.setOrderId(personal.getId());
+            productionOutWarehouse.setOrderId(businessId);
             productionOutWarehouse.setReportNo(personal.getOrderId());
             //获取财务审核人
             return  this.save(productionOutWarehouse);

+ 2 - 0
service/src/main/java/com/dayou/service/workflow/IWorkTaskRecordService.java

@@ -5,6 +5,7 @@ import com.dayou.entity.WorkTaskRecord;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.dayou.vo.MajorTaskDoneVO;
+import com.dayou.vo.PersonalTodoVO;
 import com.dayou.vo.TaskTodoVO;
 import com.dayou.vo.WorkTaskRecordVO;
 import com.dayou.workflow.config.WorkNodeProcessable;
@@ -39,4 +40,5 @@ public interface IWorkTaskRecordService extends IService<WorkTaskRecord> {
 
     Page<MajorTaskDoneVO> majorTaskDonePage(MajorTaskDoneVO doneVO, Page page,String keyword);
 
+    Page<PersonalTodoVO> personalTodoPage(PersonalTodoVO todoVO, Page page, String keyword);
 }

+ 8 - 0
service/src/main/java/com/dayou/service/workflow/WorkTaskRecordServiceImpl.java

@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.dayou.utils.DateUtils;
 import com.dayou.utils.LoginContext;
 import com.dayou.vo.MajorTaskDoneVO;
+import com.dayou.vo.PersonalTodoVO;
 import com.dayou.vo.TaskTodoVO;
 import com.dayou.vo.WorkTaskRecordVO;
 import com.dayou.workflow.config.WorkNodeProcessable;
@@ -120,4 +121,11 @@ public class WorkTaskRecordServiceImpl extends ServiceImpl<WorkTaskRecordMapper,
         return done;
     }
 
+    @Override
+    public Page<PersonalTodoVO> personalTodoPage(PersonalTodoVO todoVO, Page page, String keyword) {
+        todoVO.setHandlerId(LoginContext.getCurrentUserId());
+        Page<PersonalTodoVO> ret = workTaskRecordMapper.personalTodoPage(page,todoVO,keyword);
+        return ret;
+    }
+
 }