Переглянути джерело

出入管理 调整逻辑

zhulu 3 днів тому
батько
коміт
490e490b09

+ 0 - 4
project_data/sql/1.0.14/soc/soc.sql

@@ -166,7 +166,3 @@ CREATE TABLE `core_introduce_letter_out_in_history_user` (
 
 DROP TABLE if exists `core_introduce_letter_check_log`;
 
-
-alter table core_introduce_letter_out_in_request
-    add pdf_url varchar(255) null comment 'PDF地址';
-

+ 37 - 35
project_data/sql/1.0.14/soc/translate.sql

@@ -1,38 +1,39 @@
 
 DROP TABLE if exists `core_introduce_letter_out_in_request_translate`;
-create table core_introduce_letter_out_in_request_translate
-(
-    id                  bigint        not null
-        primary key,
-    letter_id           bigint        null comment '介绍信id',
-    approve_user        varchar(255)  null comment '审核人',
-    approve_user_id     bigint        null comment '审核人Id',
-    approve_time        datetime      null comment '审核时间',
-    approve_status      int           null comment '审核状态:0待审批1通过2不通过3逾期',
-    approve_remark      varchar(255)  null comment '备注',
-    approve_sign_img    varchar(255)  null comment '审批人签名',
-    org_id              bigint        null comment '接待机构',
-    letter_name         varchar(255)  null comment '介绍信名称',
-    letter_file         text          null comment '介绍信附件',
-    letter_no           varchar(20)   null comment '介绍信编号',
-    letter_description  varchar(500)  null comment '介绍信备注',
-    letter_reasons      varchar(100)  null comment '出入事由',
-    letter_type         int           null comment '类型:1 电子, 2 纸质,3 紧急',
-    deleted             int default 0 null comment '0正常1删除',
-    start_time          datetime      null comment '有效开始时间,开具时间',
-    end_time            datetime      null comment '有效结束时间',
-    create_by           varchar(50)   null comment '创建人',
-    create_time         datetime      null comment '创建时间',
-    update_by           varchar(50)   null comment '修改人',
-    update_time         datetime      null comment '修改时间',
-    effective_days      int           null comment '有效天数',
-    status              int           null comment '出入状态 :0待审批 1 待登记 2 已完成 3 已拒绝 4 已过期 5已补登',
-    accompanying_person varchar(100)  null comment '陪同人员',
-    check_sign          varchar(255)  null comment '核对人签名',
-    remark              varchar(255)  null comment '备注信息',
-    remark_image        varchar(255)  null comment '备注照片'
-)
-    comment '出入申请表';
+CREATE TABLE `core_introduce_letter_out_in_request_translate` (
+    `id` bigint NOT NULL,
+    `letter_id` bigint DEFAULT NULL COMMENT '介绍信id',
+    `approve_user` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '审核人',
+    `approve_user_id` bigint DEFAULT NULL COMMENT '审核人Id',
+    `approve_time` datetime DEFAULT NULL COMMENT '审核时间',
+    `approve_status` int DEFAULT NULL COMMENT '审核状态:0待审批1通过2不通过3逾期',
+    `approve_remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注',
+    `approve_sign_img` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '审批人签名',
+    `org_id` bigint DEFAULT NULL COMMENT '接待机构',
+    `letter_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '介绍信名称',
+    `letter_file` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '介绍信附件',
+    `letter_no` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '介绍信编号',
+    `letter_description` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '介绍信备注',
+    `letter_reasons` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '出入事由',
+    `letter_type` int DEFAULT NULL COMMENT '类型: 2 普通出入,3 紧急出入',
+    `deleted` int DEFAULT '0' COMMENT '0正常1删除',
+    `start_time` datetime DEFAULT NULL COMMENT '有效开始时间,开具时间',
+    `end_time` datetime DEFAULT NULL COMMENT '有效结束时间',
+    `create_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
+    `create_time` datetime DEFAULT NULL COMMENT '创建时间',
+    `update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '修改人',
+    `update_time` datetime DEFAULT NULL COMMENT '修改时间',
+    `effective_days` int DEFAULT NULL COMMENT '有效天数',
+    `status` int DEFAULT NULL COMMENT '出入状态 :0待审批 1 待登记 2 已完成 3 已拒绝 4 已过期 5已补登',
+    `accompanying_person` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '陪同人员',
+    `check_sign` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '核对人签名',
+    `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注信息',
+    `remark_image` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注照片',
+    `pdf_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '登记簿url',
+    PRIMARY KEY (`id`),
+    KEY `index_letter_id` (`letter_id`) USING BTREE,
+    KEY `index_org_id` (`org_id`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='出入申请表';
 
 create index index_letter_id
     on core_introduce_letter_out_in_request_translate (letter_id);
@@ -221,7 +222,7 @@ INSERT INTO core_introduce_letter_out_in_request_translate (id, letter_id, appro
                                                             org_id, letter_name, letter_file, letter_no, letter_description,
                                                             letter_reasons, letter_type, deleted, start_time, end_time,
                                                             create_by, create_time, update_by, update_time, effective_days,
-                                                            status, accompanying_person, check_sign, remark, remark_image)
+                                                            status, accompanying_person, check_sign, remark, remark_image,pdf_url)
 VALUES (v_calculated_new_id, v_req_letter_id, v_req_approve_user, v_req_approve_user_id, v_req_approve_time,
         v_req_approve_status, v_req_approve_remark, v_req_approve_sign_img, v_req_org_id,
         v_req_letter_name, v_req_letter_file, v_req_letter_no, v_req_letter_description,
@@ -256,7 +257,8 @@ VALUES (v_calculated_new_id, v_req_letter_id, v_req_approve_user, v_req_approve_
         v_accompanying_person,  -- 直接使用游标变量
         v_submit_sign,          -- 直接使用游标变量
         v_remark,               -- 直接使用游标变量
-        v_check_image);         -- 直接使用游标变量
+        v_check_image,          -- 直接使用游标变量
+        v_pdf_url);             -- 直接使用游标变量
 
 
 -- 收集更新数据到临时表(而不是立即更新)

+ 3 - 0
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/letter/vo/CoreIntroduceLetterOutInRequestVo.java

@@ -156,4 +156,7 @@ public class CoreIntroduceLetterOutInRequestVo {
     @ApiModelProperty(value = "行社名称")
     private String affiliatedBank;
 
+    @ApiModelProperty(value = "登记簿Url")
+    private String pdfUrl;
+
 }

+ 18 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/letter/controller/CoreIntroduceLetterController.java

@@ -13,6 +13,7 @@ import com.xunmei.common.log.annotation.Log;
 import com.xunmei.common.log.enums.BusinessType;
 import com.xunmei.common.security.annotation.RequiresPermissions;
 import com.xunmei.common.security.utils.SecurityUtils;
+import com.xunmei.core.letter.service.ICoreIntroduceLetterOutInRequestUserService;
 import com.xunmei.core.letter.service.ICoreIntroduceLetterService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -35,6 +36,10 @@ public class CoreIntroduceLetterController extends BaseController {
     @Resource
     private ICoreIntroduceLetterService coreIntroduceLetterService;
 
+    @Resource
+    private ICoreIntroduceLetterOutInRequestUserService outInRequestUserService;
+
+
 /**
  * 查询介绍信列表
  */
@@ -182,7 +187,7 @@ public class CoreIntroduceLetterController extends BaseController {
     @Log(title = "删除出入申请" , businessType = BusinessType.DELETE)
     @RequiresPermissions("core:outinrequest:remove")
     @DeleteMapping("outinrequest/{id}")
-    public AjaxResult addOutInRequest(@PathVariable("id") Long outInRequestId) {
+    public AjaxResult deleteOutInRequest(@PathVariable("id") Long outInRequestId) {
         coreIntroduceLetterService.deleteOutInRequest(outInRequestId);
         return success();
     }
@@ -271,4 +276,16 @@ public class CoreIntroduceLetterController extends BaseController {
         }
         return coreIntroduceLetterService.selectWebOntInRequestListPage(requestDto);
     }
+
+    /**
+     * 删除出入申请中的人员
+     */
+    @ApiOperation(value = "删除出入申请")
+    @Log(title = "删除出入申请" , businessType = BusinessType.DELETE)
+    @RequiresPermissions("core:outinrequest:remove")
+    @DeleteMapping("outinrequest/user/{id}")
+    public AjaxResult deleteOutInRequestUserById(@PathVariable("id") Long outInRequestUserId) {
+        outInRequestUserService.removeById(outInRequestUserId);
+        return success();
+    }
 }

+ 8 - 6
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/letter/export/CoreIntroduceLetterOutInRequestExcelVo.java

@@ -2,6 +2,7 @@ package com.xunmei.core.letter.export;
 
 import com.alibaba.excel.annotation.ExcelIgnore;
 import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.format.DateTimeFormat;
 import com.alibaba.excel.annotation.write.style.ColumnWidth;
 import com.alibaba.excel.annotation.write.style.ContentRowHeight;
 import com.alibaba.excel.annotation.write.style.HeadRowHeight;
@@ -58,7 +59,7 @@ public class CoreIntroduceLetterOutInRequestExcelVo {
      */
     @ExcelProperty(value = {"${cellWriterValue}","有效开始时间"})
     @ApiModelProperty(value = "有效开始时间")
-    @JsonFormat(pattern = "yyyy年MM月dd日", timezone = "GMT+8")
+    @DateTimeFormat("yyyy-MM-dd")
     private Date startTime;
 
     /**
@@ -66,7 +67,7 @@ public class CoreIntroduceLetterOutInRequestExcelVo {
      */
     @ExcelProperty(value = {"${cellWriterValue}","有效结束时间"})
     @ApiModelProperty(value = "有效结束时间")
-    @JsonFormat(pattern = "yyyy年MM月dd日", timezone = "GMT+8")
+    @DateTimeFormat("yyyy-MM-dd")
     private Date endTime;
 
     @ExcelProperty(value = {"${cellWriterValue}","有效天数"})
@@ -134,8 +135,6 @@ public class CoreIntroduceLetterOutInRequestExcelVo {
     @ExcelProperty(value = {"${cellWriterValue}","陪同人员"})
     private String accompanyingPerson;
 
-    @ExcelProperty(value = {"${cellWriterValue}","备注"})
-    private String remark;
 
 //    @ExcelProperty(value = {"${cellWriterValue}","备注图片"})
 //    private String remarkImage;
@@ -166,11 +165,14 @@ public class CoreIntroduceLetterOutInRequestExcelVo {
     @ExcelIgnore
     private String imgFileStr;
 
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @DateTimeFormat("yyyy-MM-dd HH:mm")
     @ExcelProperty(value = {"${cellWriterValue}","到达时间"})
     private Date arrivalTime;
 
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @DateTimeFormat("yyyy-MM-dd HH:mm")
     @ExcelProperty(value = {"${cellWriterValue}","离开时间"})
     private Date departureTime;
+
+    @ExcelProperty(value = {"${cellWriterValue}","备注"})
+    private String remark;
 }

+ 90 - 56
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/letter/service/impl/CoreIntroduceLetterServiceImpl.java

@@ -11,11 +11,9 @@ import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.xunmei.common.core.constant.CacheConstants;
 import com.xunmei.common.core.constant.DictConstants;
 import com.xunmei.common.core.constant.ErrorMsgConstants;
 import com.xunmei.common.core.constant.SecurityConstants;
-import com.xunmei.common.core.domain.edu.vo.CoreEduTrainingTaskReportVo;
 import com.xunmei.common.core.domain.letter.domain.*;
 import com.xunmei.common.core.domain.letter.dto.*;
 import com.xunmei.common.core.domain.letter.vo.*;
@@ -23,13 +21,9 @@ import com.xunmei.common.core.domain.panel.dto.PanelListDto;
 import com.xunmei.common.core.domain.panel.enums.PanelTypeEnums;
 import com.xunmei.common.core.domain.panel.vo.PanelListVo;
 import com.xunmei.common.core.domain.panel.vo.WebPanelResult;
-import com.xunmei.common.core.enums.OrgTypeEnum;
 import com.xunmei.common.core.exception.SystemException;
 import com.xunmei.common.core.util.BeanHelper;
-import com.xunmei.common.core.utils.DateUtils;
-import com.xunmei.common.core.utils.StringUtils;
 import com.xunmei.common.core.web.page.TableDataInfo;
-import com.xunmei.common.redis.utils.RedisUtils;
 import com.xunmei.common.security.utils.DictUtils;
 import com.xunmei.common.security.utils.SecurityUtils;
 import com.xunmei.core.edu.service.impl.ValueCellWriteHandler;
@@ -48,12 +42,10 @@ import com.xunmei.system.api.RemoteOrgService;
 import com.xunmei.system.api.RemoteRoleService;
 import com.xunmei.system.api.RemoteUserService;
 import com.xunmei.system.api.domain.SysOrg;
-import com.xunmei.system.api.domain.SysRole;
 import com.xunmei.system.api.function.RemoteCallHandlerExecutor;
 import io.netty.util.internal.StringUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -312,15 +304,32 @@ public class CoreIntroduceLetterServiceImpl extends ServiceImpl<CoreIntroduceLet
         if (ObjectUtil.isEmpty(list)) {
             throw new SystemException("未获取到数据");
         }
-        String prefixPath = RemoteCallHandlerExecutor.executeRemoteCall(() -> fileService.getLocalPathPrefix(), ErrorMsgConstants.QUERY_FILE_PATH_ERROR).getData();
-        String staticsPath = RemoteCallHandlerExecutor.executeRemoteCall(() -> fileService.getStaticPathPrefix(), ErrorMsgConstants.QUERY_FILE_PATH_ERROR).getData();
-
+        // 设置序号
+        Map<Long, Integer> mergedMap = new HashMap<>();
+        int index = 1;
+        for (CoreIntroduceLetterOutInRequestExcelVo raw : list) {
+            Long id = raw.getOutInRequestId();
+
+            Integer rowNo = mergedMap.get(id);
+            if (rowNo == null) {
+                // 第一次出现,创建新组,分配序号
+                raw.setNo(index++);
+                mergedMap.put(id, raw.getNo());
+            }
+            else{
+                raw.setNo(rowNo);
+            }
+        }
 
-        for (int i = 0; i < list.size(); i++) {
-            CoreIntroduceLetterOutInRequestExcelVo outInRequestVo = list.get(i);
+//        String prefixPath = RemoteCallHandlerExecutor.executeRemoteCall(() -> fileService.getLocalPathPrefix(), ErrorMsgConstants.QUERY_FILE_PATH_ERROR).getData();
+//        String staticsPath = RemoteCallHandlerExecutor.executeRemoteCall(() -> fileService.getStaticPathPrefix(), ErrorMsgConstants.QUERY_FILE_PATH_ERROR).getData();
 
-            outInRequestVo.setNo(i + 1);
-            // 处理签名图片
+//        // 处理图片数据
+//        for (int i = 0; i < list.size(); i++) {
+//            CoreIntroduceLetterOutInRequestExcelVo outInRequestVo = list.get(i);
+//
+//            outInRequestVo.setNo(i + 1);
+//            // 处理签名图片
 //            if (ObjectUtil.isNotEmpty(outInRequestVo.getCheckSign())) {
 //                outInRequestVo.setCheckSign(getFileRealPath(outInRequestVo.getCheckSign(), prefixPath, staticsPath));
 //            }
@@ -328,36 +337,38 @@ public class CoreIntroduceLetterServiceImpl extends ServiceImpl<CoreIntroduceLet
 //            if (ObjectUtil.isNotEmpty(outInRequestVo.getApproveSignImg())) {
 //                outInRequestVo.setApproveSignImg(getFileRealPath(outInRequestVo.getApproveSignImg(), prefixPath, staticsPath));
 //            }
-            // 处理证件照片(逗号分隔)
-            if (ObjectUtil.isNotEmpty(outInRequestVo.getImgFileStr())) {
-                outInRequestVo.setImgFileList(getFileRealPath(Arrays.asList(outInRequestVo.getImgFileStr().split(",")), prefixPath, staticsPath));
-            }
-            // 处理介绍信文件(JSON 数组)
-            if (ObjectUtil.isNotEmpty(outInRequestVo.getLetterFileStr())) {
-
-                final List<String> letterFileList = JSON.parseArray(outInRequestVo.getLetterFileStr(), String.class);
-                List<String> strings = new ArrayList<>();
-                for (String json : letterFileList) {
-                    final Map map = JSON.parseObject(json, Map.class);
-                    final String url = (String) map.get("imgPath");
-                    if (ObjectUtil.isNotEmpty(url)) {
-                        strings.add(url);
-                    } else {
-                        strings.add((String) map.get("url"));
-                    }
-                }
-                outInRequestVo.setLetterFile(getFileRealPath(strings, prefixPath, staticsPath));
-            }
-
-        }
+//            // 处理证件照片(逗号分隔)
+//            if (ObjectUtil.isNotEmpty(outInRequestVo.getImgFileStr())) {
+//                outInRequestVo.setImgFileList(getFileRealPath(Arrays.asList(outInRequestVo.getImgFileStr().split(",")), prefixPath, staticsPath));
+//            }
+//            // 处理介绍信文件(JSON 数组)
+//            if (ObjectUtil.isNotEmpty(outInRequestVo.getLetterFileStr())) {
+//
+//                final List<String> letterFileList = JSON.parseArray(outInRequestVo.getLetterFileStr(), String.class);
+//                List<String> strings = new ArrayList<>();
+//                for (String json : letterFileList) {
+//                    final Map map = JSON.parseObject(json, Map.class);
+//                    final String url = (String) map.get("imgPath");
+//                    if (ObjectUtil.isNotEmpty(url)) {
+//                        strings.add(url);
+//                    } else {
+//                        strings.add((String) map.get("url"));
+//                    }
+//                }
+//                outInRequestVo.setLetterFile(getFileRealPath(strings, prefixPath, staticsPath));
+//            }
+//        }
         try {
             String baseHeaderName = "出入情况表";
             // 设置响应头
             response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(baseHeaderName, "utf-8"));
             response.setContentType("application/octet-stream;charset=UTF-8");
             response.setCharacterEncoding("utf-8");
-
-            String header = baseHeaderName + "(" + DateUtil.format(requestDto.getStartTime(), "yyyy-MM-dd") + "至" + DateUtil.format(requestDto.getEndTime(), "yyyy-MM-dd") + ")";
+            String header = baseHeaderName;
+            if(requestDto.getStartTime()!=null)
+            {
+               header = baseHeaderName + "(" + DateUtil.format(requestDto.getStartTime(), "yyyy-MM-dd") + "至" + DateUtil.format(requestDto.getEndTime(), "yyyy-MM-dd") + ")";
+            }
             // 数据导出
             EasyExcel.write(response.getOutputStream(), CoreIntroduceLetterOutInRequestExcelVo.class)
                     .registerWriteHandler(new IntroduceLetterOutInRequestMergeHandler(list)) // 注册合并处理器
@@ -428,7 +439,19 @@ public class CoreIntroduceLetterServiceImpl extends ServiceImpl<CoreIntroduceLet
         outInRequest.setApproveUserId(SecurityUtils.getUserId());
         if(outInRequest.getApproveStatus() ==1)
         {
-            outInRequest.setStatus(1);
+            CoreIntroduceLetterOutInRequest outInRequestDo = outInRequestMapper.selectById(outInRequest.getId());
+            Date currentDate = DateUtil.beginOfDay(new Date());
+            // 判断是否已逾期
+            final int result = currentDate.compareTo(outInRequestDo.getCreateTime());
+
+            if (result > 0) {
+                //4 已过期
+                outInRequest.setStatus(4);
+            }
+            else{
+                //1 待登记
+                outInRequest.setStatus(1);
+            }
         }
         else if(outInRequest.getApproveStatus() ==2)
         {
@@ -795,8 +818,9 @@ public class CoreIntroduceLetterServiceImpl extends ServiceImpl<CoreIntroduceLet
         // 将介绍信过期的设置为 已过期状态
         saveOrUpdateBatch(overdueLettersList);
 
+        // 出入状态 :0待审批 1 待登记 2 已完成 3 已拒绝 4 已过期 5已补登
         final LambdaQueryWrapper<CoreIntroduceLetterOutInRequest> oqw = new LambdaQueryWrapper<CoreIntroduceLetterOutInRequest>();
-        oqw.eq(CoreIntroduceLetterOutInRequest::getApproveStatus, 0).eq(CoreIntroduceLetterOutInRequest::getDeleted, 0);
+        oqw.eq(CoreIntroduceLetterOutInRequest::getStatus, 1).eq(CoreIntroduceLetterOutInRequest::getDeleted, 0);
         List<CoreIntroduceLetterOutInRequest> outInRequestList = outInRequestMapper.selectList(oqw);
         List<CoreIntroduceLetterOutInRequest> overdueOutInRequestList = new ArrayList<>();
         Date currentDate = DateUtil.beginOfDay(new Date());
@@ -805,7 +829,7 @@ public class CoreIntroduceLetterServiceImpl extends ServiceImpl<CoreIntroduceLet
                 // 出入申请当天有效
                 final int result = currentDate.compareTo(x.getCreateTime());
                 if (result > 0) {
-                    x.setApproveStatus(3);
+                    x.setStatus(4);
                     overdueOutInRequestList.add(x);
                 }
             });
@@ -817,17 +841,17 @@ public class CoreIntroduceLetterServiceImpl extends ServiceImpl<CoreIntroduceLet
         }
 
         //815版本需求允许介绍信失效后登记了进入时间的,未登记离开时间,可以随时登记离开时间
-       final LambdaQueryWrapper<CoreOutInRecord> oqw1 = new LambdaQueryWrapper<CoreOutInRecord>();
-        oqw1.notIn(CoreOutInRecord::getStatus, 2,3)
-            .isNull(CoreOutInRecord::getArrivalTime)
-            .le(CoreOutInRecord::getOutInRequestEffectiveEndTime,currentDate);
-        List<CoreOutInRecord> outInRecords = coreOutInRecordMapper.selectList(oqw1);
-        if(ObjectUtil.isNotEmpty(outInRecords)){
-            outInRecords.stream().forEach(x->x.setStatus(3));
-
-            // 将出入记录设置为已失效状态
-            coreOutInRecordMapper.batchUpdateCoreOutInRecordStatus(outInRecords);
-        }
+//       final LambdaQueryWrapper<CoreOutInRecord> oqw1 = new LambdaQueryWrapper<CoreOutInRecord>();
+//        oqw1.notIn(CoreOutInRecord::getStatus, 2,3)
+//            .isNull(CoreOutInRecord::getArrivalTime)
+//            .le(CoreOutInRecord::getOutInRequestEffectiveEndTime,currentDate);
+//        List<CoreOutInRecord> outInRecords = coreOutInRecordMapper.selectList(oqw1);
+//        if(ObjectUtil.isNotEmpty(outInRecords)){
+//            outInRecords.stream().forEach(x->x.setStatus(3));
+//
+//            // 将出入记录设置为已失效状态
+//            coreOutInRecordMapper.batchUpdateCoreOutInRecordStatus(outInRecords);
+//        }
     }
 
 
@@ -920,7 +944,9 @@ public class CoreIntroduceLetterServiceImpl extends ServiceImpl<CoreIntroduceLet
     public void updateOutInRequest(CoreIntroduceLetterUpdateOutInRequestDto outInRequestDto) {
         // 更新出入申请信息
         CoreIntroduceLetterOutInRequest outInRequest = outInRequestMapper.selectById(outInRequestDto.getId());
-        if(outInRequest.getStatus()==2)
+
+        //出入状态 :0待审批 1 待登记 2 已完成 3 已拒绝 4 已过期 5已补登
+        if(outInRequest.getStatus()==2 || outInRequest.getStatus()==5)
         {
             throw new RuntimeException("更新失败,当前出入记录已登记,请勿重复操作");
         }
@@ -934,7 +960,15 @@ public class CoreIntroduceLetterServiceImpl extends ServiceImpl<CoreIntroduceLet
 
         if(outInRequestDto.getType()==2)
         {
-            outInRequest.setStatus(2);
+            if(outInRequest.getStatus()==1)
+            {
+                //正常完成
+                outInRequest.setStatus(2);
+            }
+            else if(outInRequest.getStatus()==4){
+                //逾期完成
+                outInRequest.setStatus(5);
+            }
         }
 
         outInRequestMapper.updateById(outInRequest);
@@ -964,7 +998,7 @@ public class CoreIntroduceLetterServiceImpl extends ServiceImpl<CoreIntroduceLet
 
     public void syncUserInfoToHistoryUserAndLetterUser (CoreIntroduceLetterUpdateOutInRequestDto outInRequestDto,CoreIntroduceLetterOutInRequest outInRequest) {
         try {
-            // TODO 回写介绍信人员,回写历史人员库
+            //提交时: 回写介绍信人员,回写历史人员库
             if(outInRequestDto.getType()==2) {
                 //回写介绍信人员
                 List<CoreIntroduceLetterUserAddDto> fromLetterUserList = outInRequestDto.getUserInfos().stream().filter(x -> x.getLetterUserId() != null).collect(Collectors.toList());