wucl преди 1 година
родител
ревизия
87110d5fbb

+ 35 - 10
biz-base/src/main/java/com/dayou/controller/FinanceClaimController.java

@@ -1,27 +1,25 @@
 package com.dayou.controller;
 
+import com.dayou.annotation.IgnoreAuth;
 import com.dayou.vo.FinanceClaimVO;
-import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.io.ClassPathResource;
 import org.springframework.web.bind.annotation.RequestMapping;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springframework.web.bind.annotation.RestController;
-import com.dayou.controller.BaseController;
 import com.dayou.service.IFinanceClaimService;
 import com.dayou.entity.FinanceClaim;
 import com.dayou.common.RestResponse;
 import org.springframework.web.bind.annotation.*;
-import com.dayou.utils.ConvertUtil;
-import com.dayou.utils.HttpKit;
-import com.dayou.exception.ErrorCode;
-import java.util.Date;
-import java.util.List;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import org.springframework.http.MediaType;
 import org.springframework.web.multipart.MultipartFile;
 
+import java.io.IOException;
+import java.util.List;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 
 /**
@@ -90,5 +88,32 @@ public class FinanceClaimController extends BaseController {
         List<FinanceClaimVO> list = financeClaimService.getList(id);
         return RestResponse.data(list);
     }
+
+    /**
+     * 个贷认领模板下载
+     * @param request
+     * @param response
+     */
+    @IgnoreAuth
+    @GetMapping("/personal/claim/template")
+    public void downloadPersonalClaimTemplate(HttpServletRequest request, HttpServletResponse response){
+        try {
+            XSSFWorkbook workbook = new XSSFWorkbook(new ClassPathResource("xlsx/personal/personal_claim_template.xlsx").getInputStream());
+            writeXss2Response(request,response,workbook,"个贷认领模板.xlsx");
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    /**
+     * 个贷模板认领实收款
+     * @param file
+     * @return
+     */
+    @PostMapping("/personal/temp/upload")
+    public RestResponse<Boolean> personalClaimByTemplate(MultipartFile file){
+        Boolean ret = financeClaimService.personalClaimByTemplate(file);
+        return RestResponse.data(ret);
+    }
 }
 

+ 40 - 0
biz-base/src/main/java/com/dayou/controller/PersonalController.java

@@ -3,6 +3,7 @@ package com.dayou.controller;
 import com.dayou.dto.TaskRecordDTO;
 import com.dayou.dto.WorkNodeCommit;
 import com.dayou.vo.PersonalVO;
+import com.dayou.vo.TaskTodoVO;
 import com.dayou.workflow.annotation.FinishTask;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import lombok.extern.slf4j.Slf4j;
@@ -50,6 +51,15 @@ public class PersonalController extends BaseController {
     }
 
     /**
+     * 个贷业务我的订单列表
+     */
+    @GetMapping("/mine")
+    public RestResponse<Page<PersonalVO>> mine(PersonalVO personal, Page page){
+        Page<PersonalVO> pages=personalService.myOrder(page,personal);
+        return RestResponse.data(pages);
+    }
+
+    /**
      * 个贷业务订单详情
      */
     @GetMapping("/{id}")
@@ -117,5 +127,35 @@ public class PersonalController extends BaseController {
         Page<PersonalVO> ret = personalService.waitingClaimOrder(page,personalVO);
         return RestResponse.data(ret);
     }
+
+
+    /**
+     * 个贷业务待归档订单列表
+     */
+    @GetMapping("/waiting/saveFile")
+    public RestResponse<Page<PersonalVO>> waitingSaveFile(PersonalVO personal, Page page){
+        Page<PersonalVO> pages=personalService.waitingSaveFile(page,personal);
+        return RestResponse.data(pages);
+    }
+
+    /**
+     * 批量归档
+     * @param todoVOList
+     * @return
+     */
+    @PostMapping("/batchSaveFile")
+    public RestResponse<Boolean> batchSaveFile(@RequestBody  List<TaskTodoVO> todoVOList){
+        Boolean ret = personalService.batchSaveFile(todoVOList);
+        return RestResponse.data(ret);
+    }
+
+    /**
+     * 个贷业务待归档订单列表
+     */
+    @GetMapping("/saveFile/done")
+    public RestResponse<Page<PersonalVO>> saveFileDone(PersonalVO personal, Page page){
+        Page<PersonalVO> pages=personalService.saveFileDone(page,personal);
+        return RestResponse.data(pages);
+    }
 }
 

BIN
biz-base/src/main/resources/xlsx/personal/personal_claim_template.xlsx


+ 10 - 0
dao/src/main/java/com/dayou/mapper/PersonalMapper.java

@@ -6,6 +6,8 @@ import com.dayou.dao.CustomBaseMapper;
 import com.dayou.vo.PersonalVO;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 /**
  * <p>
  * 个贷业务订单 Mapper 接口
@@ -21,4 +23,12 @@ public interface PersonalMapper extends CustomBaseMapper<Personal> {
     PersonalVO getDetail(@Param("id") Long id);
 
     Personal getByTargetId(@Param("targetId") Long targetId);
+
+    Page<PersonalVO> waitingSaveFile(Page page, @Param("personal")PersonalVO personal);
+
+    void updateSaveFileInfo(@Param("list") List<Long> personalIds);
+
+    Page<PersonalVO> saveFileDone(Page page, @Param("personal")PersonalVO personal);
+
+    Page<PersonalVO> myOrder(Page page, @Param("personal")PersonalVO personal);
 }

+ 119 - 2
dao/src/main/resources/mapper/PersonalMapper.xml

@@ -35,6 +35,9 @@
         <result column="inward_staff" property="inwardStaff" />
         <result column="pricing_staff" property="pricingStaff" />
         <result column="remark" property="remark" />
+        <result column="save_file_check" property="saveFileCheck" />
+        <result column="if_save_file" property="ifSaveFile" />
+        <result column="save_file_date" property="saveFileDate" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
@@ -46,7 +49,7 @@
         order_id, location, evaluate_aim, purpose, clientele_type, clientele_id, clientele_sub_id, clientele_contact_id, agent, loan_nature, loan_aim, loan_limit, loan_period, loan_expire, bailorA, bailorB, bailorA_tel, bailorB_tel, terminal_clientele_type, terminal_clientele_contact_id, terminal_clientele_id, credentials, is_online, client_manager_id, outward_staff, inward_staff, pricing_staff, remark
     </sql>
 
-    <select id="xSelectPage" parameterType="com.dayou.vo.PersonalVO" resultType="com.dayou.vo.PersonalVO">
+    <sql id="Common_query_sql">
         SELECT
             wf.id AS currentNodeId,
             wf.node_id,
@@ -71,7 +74,7 @@
             cc1.NAME AS clientName,
             cc2.NAME AS clientSubName,
             cl1.NAME AS contactName,
-            cl1.duty AS cDuty,
+            cl1.mobile AS contactTel,
             u.NAME AS clientManager,
             u1.NAME AS outwardStaffName,
             u2.NAME AS inwardStaffName,
@@ -93,6 +96,9 @@
                 LEFT JOIN user u1 ON u1.id = p.outward_staff
                 LEFT JOIN user u2 ON u2.id = p.inward_staff
                 LEFT JOIN user u3 ON u3.id = p.pricing_staff
+    </sql>
+    <select id="xSelectPage" parameterType="com.dayou.vo.PersonalVO" resultType="com.dayou.vo.PersonalVO">
+        <include refid="Common_query_sql" />
         WHERE
             wf.business_type = "PERSONAL_BUSINESS"
           AND wf.state = 'PENDING'
@@ -136,4 +142,115 @@
     <select id="getByTargetId" parameterType="java.lang.Long" resultType="com.dayou.entity.Personal">
         select id,credentials from personal where id = (select personal_id from personal_target where id = #{targetId} and deleted = 0) and deleted = 0
     </select>
+
+    <select id="waitingSaveFile" parameterType="com.dayou.vo.PersonalVO" resultType="com.dayou.vo.PersonalVO">
+        select
+            wf.id AS currentNodeId,
+            wtr.id as taskId,
+            wtr.created as taskCreated,
+            p.id,
+            p.order_id,
+            p.location,
+            pt.acreage,
+            pt.price,
+            pt.amount,
+            cc1.NAME AS clientName,
+            cc2.NAME AS clientSubName,
+            u.NAME AS clientManager,
+            u1.NAME AS outwardStaffName,
+            u2.NAME AS inwardStaffName,
+            u3.NAME AS pricingStaffName,
+            p.created,
+            o.real_amount
+        from (select id,node_id,business_id from work_flow_node_instance where business_type = "PERSONAL_BUSINESS" and state = 'PENDING' and deleted = 0) wf
+                 LEFT JOIN work_node wn ON wn.id = wf.node_id
+                 LEFT JOIN work_task_record wtr ON wtr.instance_id = wf.id
+                 LEFT JOIN personal p ON p.id = wf.business_id
+                 LEFT JOIN personal_target pt ON pt.personal_id =  wf.business_id
+                 LEFT JOIN customer_company cc1 ON cc1.id = p.clientele_id
+                 LEFT JOIN customer_company cc2 ON cc2.id = p.clientele_sub_id
+                 LEFT JOIN user u ON u.id = p.client_manager_id
+                 LEFT JOIN user u1 ON u1.id = p.outward_staff
+                 LEFT JOIN user u2 ON u2.id = p.inward_staff
+                 LEFT JOIN user u3 ON u3.id = p.pricing_staff
+                 left join (select business_id,real_amount from order_fund where business_type='PERSONAL_BUSINESS' and deleted = 0) o on o.business_id = p.id
+        where  wn.code = 'BUSINESS_ARCHIVING'
+          AND wn.deleted = 0
+          AND p.deleted = 0;
+    </select>
+
+    <update id="updateSaveFileInfo" parameterType="java.util.List">
+        update personal set if_save_file = 1 ,save_file_date= now() where id in (
+        <foreach collection="list" index="index" item="item" separator=",">
+            #{item}
+        </foreach>
+        )
+    </update>
+
+    <select id="saveFileDone" parameterType="com.dayou.vo.PersonalVO" resultType="com.dayou.vo.PersonalVO">
+        select
+            p.id,
+            p.order_id,
+            p.location,
+            pt.acreage,
+            pt.price,
+            pt.amount,
+            cc1.NAME AS clientName,
+            cc2.NAME AS clientSubName,
+            u.NAME AS clientManager,
+            u1.NAME AS outwardStaffName,
+            u2.NAME AS inwardStaffName,
+            u3.NAME AS pricingStaffName,
+            p.created,
+            o.real_amount,
+            p.save_file_date
+        from
+            personal p
+                LEFT JOIN personal_target pt ON pt.personal_id =  p.id
+                LEFT JOIN customer_company cc1 ON cc1.id = p.clientele_id
+                LEFT JOIN customer_company cc2 ON cc2.id = p.clientele_sub_id
+                LEFT JOIN user u ON u.id = p.client_manager_id
+                LEFT JOIN user u1 ON u1.id = p.outward_staff
+                LEFT JOIN user u2 ON u2.id = p.inward_staff
+                LEFT JOIN user u3 ON u3.id = p.pricing_staff
+                left join (select business_id,real_amount from order_fund where business_type='PERSONAL_BUSINESS' and deleted = 0) o on o.business_id = p.id
+        where
+            p.deleted = 0 and p.if_save_file = 1 and pt.deleted= 0
+    </select>
+
+    <select id="myOrder" parameterType="com.dayou.vo.PersonalVO" resultType="com.dayou.vo.PersonalVO">
+        select
+            p.id,
+            p.order_id,
+            p.location as orderName,
+            pt.acreage,
+            pt.price,
+            pt.amount,
+            cc1.NAME AS clientName,
+            cc2.NAME AS clientSubName,
+            p.agent,
+            cl.name as contactName,
+            p.bailorA,
+            p.bailorB,
+            cl.mobile as contactTel,
+            u1.NAME AS outwardStaffName,
+            u2.NAME AS inwardStaffName,
+            u3.NAME AS pricingStaffName,
+            p.created,
+            o.real_amount,
+            o.should_amount,
+            p.save_file_date
+        from
+            personal p
+                LEFT JOIN personal_target pt ON pt.personal_id =  p.id
+                LEFT JOIN customer_company cc1 ON cc1.id = p.clientele_id
+                LEFT JOIN customer_company cc2 ON cc2.id = p.clientele_sub_id
+                left join customer_linkman cl on cl.id = p.clientele_contact_id
+                LEFT JOIN user u1 ON u1.id = p.outward_staff
+                LEFT JOIN user u2 ON u2.id = p.inward_staff
+                LEFT JOIN user u3 ON u3.id = p.pricing_staff
+                left join (select business_id,real_amount,should_amount from order_fund where business_type='PERSONAL_BUSINESS' and deleted = 0) o on o.business_id = p.id
+        where
+            p.deleted = 0  and pt.deleted= 0 and p.client_manager_id = #{personal.clientManagerId}
+    </select>
 </mapper>

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

@@ -15,10 +15,7 @@
         <result column="repertory_in_time" property="repertoryInTime" />
         <result column="repertory_out_time" property="repertoryOutTime" />
         <result column="check_state" property="checkState" />
-        <result column="save_file_check" property="saveFileCheck" />
-        <result column="if_save_file" property="ifSaveFile" />
         <result column="file_path" property="filePath" />
-        <result column="save_file_date" property="saveFileDate" />
         <result column="user_id" property="userId" />
     </resultMap>
 
@@ -28,7 +25,7 @@
         deleted,
         created,
         modified,
-        target_id, production, qr_code, repertory_state, repertory_in_time, repertory_out_time, check_state, save_file_check, if_save_file, file_path, save_file_date, user_id
+        target_id, production, qr_code, repertory_state, repertory_in_time, repertory_out_time, check_state, file_path, user_id
     </sql>
 
     <select id="getProductions" parameterType="java.lang.Long" resultType="com.dayou.dto.ProductionDTO">
@@ -59,9 +56,7 @@
                     production,
                     repertory_state,
                     repertory_in_time,
-                    repertory_out_time,
-                    if_save_file,
-                    save_file_date
+                    repertory_out_time
                 FROM
                     `personal_production`
                 WHERE

+ 23 - 0
domain/src/main/java/com/dayou/entity/Personal.java

@@ -1,5 +1,8 @@
 package com.dayou.entity;
 import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.Date;
+
 import com.dayou.common.BaseEntity;
 import com.baomidou.mybatisplus.annotation.TableField;
 import lombok.Data;
@@ -197,5 +200,25 @@ public class Personal extends BaseEntity {
     @ExportCell(columnName = "备注")
     private String remark;
 
+    /**
+     * 归档审核
+     */
+    @ImportCell
+    @ExportCell(columnName = "归档审核")
+    private Boolean saveFileCheck;
+
+    /**
+     * 是否归档
+     */
+    @ImportCell
+    @ExportCell(columnName = "是否归档")
+    private Boolean ifSaveFile;
+
+    /**
+     * 归档日期
+     */
+    @ImportCell
+    @ExportCell(columnName = "归档日期")
+    private Date saveFileDate;
 
 }

+ 0 - 21
domain/src/main/java/com/dayou/entity/PersonalProduction.java

@@ -72,20 +72,6 @@ public class PersonalProduction extends BaseEntity {
     private String checkState;
 
     /**
-     * 归档审核
-     */
-    @ImportCell
-    @ExportCell(columnName = "归档审核")
-    private Boolean saveFileCheck;
-
-    /**
-     * 是否归档
-     */
-    @ImportCell
-    @ExportCell(columnName = "是否归档")
-    private Boolean ifSaveFile;
-
-    /**
      * 电子文档路经
      */
     @ImportCell
@@ -93,13 +79,6 @@ public class PersonalProduction extends BaseEntity {
     private String filePath;
 
     /**
-     * 归档日期
-     */
-    @ImportCell
-    @ExportCell(columnName = "归档日期")
-    private LocalDateTime saveFileDate;
-
-    /**
      * 产品创建人(userId)
      */
     private Long userId;

+ 16 - 0
domain/src/main/java/com/dayou/vo/PersonalVO.java

@@ -121,4 +121,20 @@ public class PersonalVO extends Personal {
      */
     private Date nodeTime;
 
+    /**
+     * 任务id
+     */
+    private Long taskId;
+
+    /**
+     * 任务创建时间
+     */
+    private Date taskCreated;
+
+    /**
+     * location 字段别名,认领实收款时方便页面展示
+     */
+    private String orderName;
+
+
 }

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

@@ -33,4 +33,6 @@ public interface IFinanceClaimService extends IService<FinanceClaim> {
     List<FinanceClaimVO> getList(Long realFundId);
 
         BigDecimal getTotalClaimAmountByProductionFundId(Long id);
+
+    Boolean personalClaimByTemplate(MultipartFile file);
 }

+ 12 - 0
service/src/main/java/com/dayou/service/IPersonalService.java

@@ -7,8 +7,12 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.dayou.enums.CertificateEnum;
 import com.dayou.vo.PersonalVO;
+import com.dayou.vo.TaskTodoVO;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
+
 /**
  * <p>
  * 个贷业务订单 服务类
@@ -36,4 +40,12 @@ public interface IPersonalService extends IService<Personal> {
     Boolean doRecall(Long id);
 
     Page<PersonalVO> waitingClaimOrder(Page page, PersonalVO personalVO);
+
+    Page<PersonalVO> waitingSaveFile(Page page, PersonalVO personal);
+
+    Boolean batchSaveFile(List<TaskTodoVO> todoVOList);
+
+    Page<PersonalVO> saveFileDone(Page page, PersonalVO personal);
+
+    Page<PersonalVO> myOrder(Page page, PersonalVO personal);
 }

+ 21 - 18
service/src/main/java/com/dayou/service/impl/FinanceClaimServiceImpl.java

@@ -1,7 +1,6 @@
 package com.dayou.service.impl;
 
 import com.dayou.entity.FinanceClaim;
-import com.dayou.entity.FinanceRealFund;
 import com.dayou.exception.ErrorCode;
 import com.dayou.mapper.FinanceClaimMapper;
 import com.dayou.service.IFinanceClaimService;
@@ -12,26 +11,13 @@ import com.dayou.utils.LoginContext;
 import com.dayou.vo.FinanceClaimVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
-import com.dayou.utils.ExcelUtil;
-import org.apache.poi.ss.usermodel.Cell;
-import org.apache.poi.ss.usermodel.CellStyle;
-import org.apache.poi.ss.usermodel.Row;
-import org.apache.poi.ss.usermodel.Sheet;
-import org.apache.poi.xssf.usermodel.XSSFWorkbook;
-import org.springframework.web.multipart.MultipartFile;
 
 import java.math.BigDecimal;
 import java.util.List;
-import java.util.ArrayList;
 import org.springframework.transaction.annotation.Transactional;
-import com.dayou.enums.BatchTaskTypeEnum;
+import org.springframework.web.multipart.MultipartFile;
 
 /**
  * <p>
@@ -66,9 +52,15 @@ public class FinanceClaimServiceImpl extends ServiceImpl<FinanceClaimMapper, Fin
         return this.getById(id);
     }
 
-    @Transactional
+
+
     @Override
     public synchronized Boolean add(FinanceClaim financeClaim){
+       return doClaim(financeClaim);
+    }
+
+    @Transactional
+    public Boolean doClaim(FinanceClaim financeClaim){
         BigDecimal notClaimAmount = financeRealFundService.getNotClaimAmount(financeClaim.getRealFundId());
         if (financeClaim.getClaimAmount().compareTo(notClaimAmount)<=0){
             financeClaim.setClaimId(LoginContext.getCurrentUserId());
@@ -81,9 +73,14 @@ public class FinanceClaimServiceImpl extends ServiceImpl<FinanceClaimMapper, Fin
         }
     }
 
-    @Transactional
+
     @Override
-    public Boolean update(FinanceClaim financeClaim){
+    public synchronized Boolean update(FinanceClaim financeClaim){
+        return doClaimUpdate(financeClaim);
+    }
+
+    @Transactional
+    public Boolean doClaimUpdate(FinanceClaim financeClaim){
         FinanceClaim xFinanceClaim = this.getById(financeClaim.getId());
         BigDecimal claimAmount = xFinanceClaim.getClaimAmount();
         BigDecimal notClaimAmount = financeRealFundService.getNotClaimAmount(financeClaim.getRealFundId());
@@ -121,5 +118,11 @@ public class FinanceClaimServiceImpl extends ServiceImpl<FinanceClaimMapper, Fin
         return totalClaimAmount;
     }
 
+    @Override
+    public Boolean personalClaimByTemplate(MultipartFile file) {
+
+        return Boolean.TRUE;
+    }
+
 
 }

+ 84 - 1
service/src/main/java/com/dayou/service/impl/PersonalServiceImpl.java

@@ -11,19 +11,29 @@ import com.dayou.entity.*;
 import com.dayou.enums.CertificateEnum;
 import com.dayou.enums.GlobalConfigEnum;
 import com.dayou.enums.MainBusinessEnum;
+import com.dayou.enums.workflow.NodeLogEnum;
 import com.dayou.enums.workflow.NodeStateEnum;
 import com.dayou.exception.ErrorCode;
 import com.dayou.mapper.PersonalMapper;
+import com.dayou.mapper.WorkFlowLogMapper;
+import com.dayou.mapper.WorkFlowNodeInstanceMapper;
+import com.dayou.mapper.WorkTaskRecordMapper;
 import com.dayou.service.*;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.dayou.service.workflow.IWorkFlowNodeInstanceService;
 import com.dayou.service.workflow.IWorkFlowService;
+import com.dayou.utils.LoginContext;
 import com.dayou.vo.PersonalVO;
+import com.dayou.vo.TaskTodoVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+
+import java.util.Date;
 import java.util.List;
+import java.util.stream.Collectors;
+
 import org.springframework.transaction.annotation.Transactional;
 
 import static com.dayou.common.Constants.PERSONAL_INWARD;
@@ -60,6 +70,15 @@ public class PersonalServiceImpl extends ServiceImpl<PersonalMapper, Personal> i
     @Autowired
     private IWorkFlowNodeInstanceService workFlowNodeInstanceService;
 
+    @Autowired
+    private WorkTaskRecordMapper workTaskRecordMapper;
+
+    @Autowired
+    private WorkFlowNodeInstanceMapper workFlowNodeInstanceMapper;
+
+    @Autowired
+     private WorkFlowLogMapper workFlowLogMapper;
+
     @Override
     @SuppressWarnings("unchecked")
     public Page<PersonalVO> selectPage(Page page, PersonalVO personal){
@@ -144,10 +163,74 @@ public class PersonalServiceImpl extends ServiceImpl<PersonalMapper, Personal> i
         }
     }
 
+    /**
+     * (就是我的订单,我的订单认领实收款无限制)
+     * @param page
+     * @param personalVO
+     * @return
+     */
     @Override
     public Page<PersonalVO> waitingClaimOrder(Page page, PersonalVO personalVO) {
+        personalVO.setClientManagerId(LoginContext.getCurrentUserId());
+        Page<PersonalVO> pages = personalMapper.myOrder(page,personalVO);
+        return pages;
+    }
+
+    @Override
+    public Page<PersonalVO> waitingSaveFile(Page page, PersonalVO personal) {
+        Page<PersonalVO> pages = personalMapper.waitingSaveFile(page,personal);
+        return pages;
+    }
 
-        return null;
+    @Transactional
+    @Override
+    public Boolean batchSaveFile(List<TaskTodoVO> todoVOList) {
+        if (CollectionUtil.isNotEmpty(todoVOList)){
+            try {
+                //1.完成任务记录
+                List<Long> taskIds = todoVOList.stream().map(TaskTodoVO::getTaskId).collect(Collectors.toList());
+                workTaskRecordMapper.batchFinishTask(taskIds);
+                //2.提交节点状态
+                List<Long> currentNodeIds = todoVOList.stream().map(TaskTodoVO::getCurrentNodeId).collect(Collectors.toList());
+                workFlowNodeInstanceMapper.batchCommitNode(currentNodeIds);
+                //3.更新产品归档信息
+                List<Long> personalIds = todoVOList.stream().map(TaskTodoVO::getBusinessId).collect(Collectors.toList());
+                personalMapper.updateSaveFileInfo(personalIds);
+                //4.添加日志
+                Long currentUserId = LoginContext.getCurrentUserId();
+                List<WorkFlowLog> workFlowLogs = todoVOList.stream().map(x -> {
+                    WorkFlowLog log = new WorkFlowLog();
+                    log.setBusinessId(x.getBusinessId());
+                    log.setBusinessType(MainBusinessEnum.PERSONAL_BUSINESS.name());
+                    log.setHandingTime(new Date().getTime() - x.getTaskCreated().getTime());
+                    log.setHandlerId(currentUserId);
+                    log.setState(NodeLogEnum.PASS.name());
+                    log.setInstanceId(x.getCurrentNodeId());
+                    log.setBusinessSubId(x.getOrderId());
+                    return log;
+                }).collect(Collectors.toList());
+                workFlowLogMapper.insertBatch(workFlowLogs);
+                return Boolean.TRUE;
+            } catch (Exception e) {
+                ErrorCode.throwBusinessException(ErrorCode.CUSTOM_ERROR,"归档数据错误,请联系系统管理员。");
+                return Boolean.FALSE;
+            }
+        }
+        ErrorCode.throwBusinessException(ErrorCode.CUSTOM_ERROR,"归档项目为空,请检查归档项目。");
+        return Boolean.FALSE;
+    }
+
+    @Override
+    public Page<PersonalVO> saveFileDone(Page page, PersonalVO personal) {
+        Page<PersonalVO> pages = personalMapper.saveFileDone(page,personal);
+        return pages;
+    }
+
+    @Override
+    public Page<PersonalVO> myOrder(Page page, PersonalVO personal) {
+        personal.setClientManagerId(LoginContext.getCurrentUserId());
+        Page<PersonalVO> pages = personalMapper.myOrder(page,personal);
+        return pages;
     }
 
     private synchronized Long nextInwardStaff(){

+ 2 - 1
service/src/main/java/com/dayou/service/workflow/WorkFlowNodeInstanceServiceImpl.java

@@ -97,7 +97,8 @@ public class WorkFlowNodeInstanceServiceImpl extends ServiceImpl<WorkFlowNodeIns
                 return aheadNodes;
             }
         }
-        return nodesSorted;
+        List<WorkNodeInstanceVO> allFinishedNodes = nodesSorted.stream().filter(x -> x.getState().equals(NodeStateEnum.FINISHED.name())).collect(Collectors.toList());
+        return allFinishedNodes;
     }
 
     @Override

+ 8 - 1
sql/update_sql.sql

@@ -235,4 +235,11 @@ ALTER TABLE production_out_warehouse MODIFY COLUMN production_fund_id bigint(20)
 /**
   日期:2024-04-08
  */
-ALTER TABLE assets_evaluation_target MODIFY COLUMN file_path json NOT NULL comment '资料路由信息(json)';
+ALTER TABLE assets_evaluation_target MODIFY COLUMN file_path json NOT NULL comment '资料路由信息(json)';
+
+ALTER TABLE personal_production DROP COLUMN if_save_file;
+ALTER TABLE personal_production DROP COLUMN save_file_check;
+ALTER TABLE personal_production DROP COLUMN save_file_date;
+alter table personal add COLUMN if_save_file bit(1) NOT NULL DEFAULT 0 comment '是否归档';
+alter table personal add COLUMN save_file_check bit(1) DEFAULT NULL comment '归档审核';
+alter table personal add COLUMN save_file_date datetime(0) DEFAULT NULL comment '归档日期';