Bladeren bron

出入模块需求变更

zhulu 19 uur geleden
bovenliggende
commit
70c746eadb
18 gewijzigde bestanden met toevoegingen van 296 en 206 verwijderingen
  1. 3 0
      project_data/sql/1.0.14/soc/soc.sql
  2. 6 0
      soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/letter/dto/CoreIntroduceLetterApproveRequestDto.java
  3. 1 1
      soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/panel/enums/PanelTypeEnums.java
  4. 1 0
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/board/service/impl/AppCockpitServiceImpl.java
  5. 4 3
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/board/service/impl/CockpitServiceImpl.java
  6. 6 0
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/board/vo/app/AppSyntheticInOutVo.java
  7. 6 0
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/board/vo/web/VisitInfoVo.java
  8. 34 29
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/letter/controller/CoreIntroduceLetterController.java
  9. 102 102
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/letter/controller/CoreOutInRecordController.java
  10. 2 2
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/letter/mapper/CoreIntroduceLetterMapper.java
  11. 6 6
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/letter/mapper/CoreIntroduceLetterOutInHistoryUserMapper.java
  12. 3 4
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/letter/service/ICoreIntroduceLetterService.java
  13. 3 0
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/letter/service/impl/CoreIntroduceLetterOutInHistoryUserServiceImpl.java
  14. 82 34
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/letter/service/impl/CoreIntroduceLetterServiceImpl.java
  15. 2 2
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/panel/service/impl/PanelServiceImpl.java
  16. 5 6
      soc-modules/soc-modules-core/src/main/resources/mapper/board/AppCockpitMapper.xml
  17. 4 5
      soc-modules/soc-modules-core/src/main/resources/mapper/board/CockpitMapper.xml
  18. 26 12
      soc-modules/soc-modules-core/src/main/resources/mapper/letter/CoreIntroduceLetterMapper.xml

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

@@ -60,6 +60,9 @@ update  core_introduce_letter_out_in_request set letter_type =2 where letter_typ
 ALTER TABLE `core_introduce_letter`
     MODIFY COLUMN `type` int NULL DEFAULT NULL COMMENT '类型: 2 普通出入,3 紧急出入' AFTER `update_time`;
 
+ALTER TABLE `core_introduce_letter_out_in_request`
+    MODIFY COLUMN `letter_type` int NULL DEFAULT NULL COMMENT '类型: 2 普通出入,3 紧急出入' AFTER `letter_reasons`;
+
 -- 修改介绍信出入类型  将 电子、纸质 统一改为 普通
 update  core_introduce_letter set type =2 where type=1;
 

+ 6 - 0
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/letter/dto/CoreIntroduceLetterApproveRequestDto.java

@@ -52,7 +52,13 @@ public class CoreIntroduceLetterApproveRequestDto extends BaseEntity {
     @ApiModelProperty(value = "出入状态 :0待审批 1 待登记 2 已完成 3 已拒绝 4 已过期 5已补登")
     private Integer outInRequestStatus;
 
+    @ApiModelProperty(value = "类型:1 职能部门出入, 2 临时出入,3 紧急出入")
+    private Integer letterType;
+
     private Date createTime;
 
     private Date[] createTimeRange;
+
+    @ApiModelProperty(value = "出入状态 :0待审批 1 待登记 2 已完成 3 已拒绝 4 已过期 5已补登")
+    private List<Integer> outInRequestStatusList;
 }

+ 1 - 1
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/panel/enums/PanelTypeEnums.java

@@ -28,7 +28,7 @@ public enum PanelTypeEnums {
     DRILL_REC(7, "推优评优"),
     OUT_EVALUATION(8,"外包评价"),
 	QUESTION(9,"隐患管理"),
-	VISIT_APPROVE(10,"出入审批"),
+	VISIT_APPROVE(10,"出入管理"),
     HIDDEN_DANGER_QUESTION(11,"隐患问题"),
     HIDDEN_DANGER_RECTIFICATION(12,"隐患整改"),
     ;

+ 1 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/board/service/impl/AppCockpitServiceImpl.java

@@ -562,6 +562,7 @@ public class AppCockpitServiceImpl implements AppCockpitService {
         vo.getInout().setDepartment(inout.get().getDepartment());
         vo.getInout().setEmergency(inout.get().getEmergency());
         vo.getInout().setTemporary(inout.get().getTemporary());
+        vo.getInout().setNormal(inout.get().getNormal());
         vo.getInout().setTotal(inout.get().getTotal());
 
         return vo;

+ 4 - 3
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/board/service/impl/CockpitServiceImpl.java

@@ -398,10 +398,11 @@ public class CockpitServiceImpl implements CockpitService {
         VisitInfoVo vo = cockpitMapper.currentMonthVisitInfo(org.getPath(), range.getStartTime());
         int total = 0;
         if (ObjectUtil.isNotNull(vo)) {
-            total = vo.getPaperCount() + vo.getElectronicCount() + vo.getUrgencyCount();
-            vo.setElectronicRate(NumberUtils.computeRate(total, vo.getElectronicCount()));
+            total = vo.getUrgencyCount()+ vo.getNormalCount();
+//            vo.setElectronicRate(NumberUtils.computeRate(total, vo.getElectronicCount()));
             vo.setUrgencyRate(NumberUtils.computeRate(total, vo.getUrgencyCount()));
-            vo.setPaperRate(NumberUtils.computeRate(total, vo.getPaperCount()));
+//            vo.setPaperRate(NumberUtils.computeRate(total, vo.getPaperCount()));
+            vo.setNormalRate(NumberUtils.computeRate(total, vo.getNormalCount()));
         } else {
             vo = new VisitInfoVo();
         }

+ 6 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/board/vo/app/AppSyntheticInOutVo.java

@@ -10,10 +10,16 @@ import lombok.Data;
 public class AppSyntheticInOutVo {
     @ApiModelProperty("总数")
     private  Integer total;
+
     @ApiModelProperty("紧急出入")
     private Integer emergency;
+
     @ApiModelProperty("临时出入")
     private Integer temporary;
+
     @ApiModelProperty("职能部门出入")
     private Integer department;
+
+    @ApiModelProperty("普通出入")
+    private Integer normal;
 }

+ 6 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/board/vo/web/VisitInfoVo.java

@@ -20,4 +20,10 @@ public class VisitInfoVo {
     private int electronicCount;
     @ApiModelProperty("电子来访比例")
     private float electronicRate=0f;
+
+    @ApiModelProperty("普通出入")
+    private Integer normalCount;
+    
+    @ApiModelProperty("普通来访比例")
+    private float normalRate=0f;
 }

+ 34 - 29
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/letter/controller/CoreIntroduceLetterController.java

@@ -38,31 +38,31 @@ public class CoreIntroduceLetterController extends BaseController {
  * 查询介绍信列表
  */
 @ApiOperation(value = "查询CoreIntroduceLetter列表")
-//@RequiresPermissions("core:letter:query")
+@RequiresPermissions("core:letter:query")
 @GetMapping("/list")
     public TableDataInfo<CoreIntroduceLetterVo> list(CoreIntroduceLetterRequestDto requestDto) {
         return coreIntroduceLetterService.selectPage(requestDto);
     }
 
-    @ApiOperation(value = "查询CoreIntroduceLetter审批列表")
-    @RequiresPermissions("core:letter:approveList")
-    @GetMapping("/approve/list")
-    public TableDataInfo<CoreIntroduceLetterOutInRequestVo> approveList(CoreIntroduceLetterApproveRequestDto requestDto) {
-        if(ObjectUtil.isNull(requestDto))
-        {
-            throw new RuntimeException("请求参数不能为空");
-        }
-        if(ObjectUtil.isEmpty( requestDto.getOrgId()))
-        {
-            requestDto.setOrgId(SecurityUtils.getLoginUser().getOrgId());
-        }
-        if(ObjectUtil.isNull(requestDto.getOrgId()))
-        {
-            throw new RuntimeException("请求参数机构编码不能为空");
-        }
-
-        return coreIntroduceLetterService.selectApproveListPage(requestDto);
-    }
+//    @ApiOperation(value = "查询CoreIntroduceLetter审批列表")
+//    @RequiresPermissions("core:letter:approveList")
+//    @GetMapping("/approve/list")
+//    public TableDataInfo<CoreIntroduceLetterOutInRequestVo> approveList(CoreIntroduceLetterApproveRequestDto requestDto) {
+//        if(ObjectUtil.isNull(requestDto))
+//        {
+//            throw new RuntimeException("请求参数不能为空");
+//        }
+//        if(ObjectUtil.isEmpty( requestDto.getOrgId()))
+//        {
+//            requestDto.setOrgId(SecurityUtils.getLoginUser().getOrgId());
+//        }
+//        if(ObjectUtil.isNull(requestDto.getOrgId()))
+//        {
+//            throw new RuntimeException("请求参数机构编码不能为空");
+//        }
+//
+//        return coreIntroduceLetterService.selectApproveListPage(requestDto);
+//    }
 
 
 
@@ -84,8 +84,10 @@ public class CoreIntroduceLetterController extends BaseController {
     @Log(title = "介绍信" , businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@RequestBody CoreIntroduceLetterAddDto coreIntroduceLetter) {
-        coreIntroduceLetterService.insertCoreIntroduceLetter(coreIntroduceLetter);
-        return success();
+        Long id= coreIntroduceLetterService.insertCoreIntroduceLetter(coreIntroduceLetter);
+        java.util.Map<String, Long> responseEntity = new java.util.HashMap<>();
+        responseEntity.put("letterId", id);
+        return success(responseEntity);
     }
 
     /**
@@ -112,9 +114,9 @@ public class CoreIntroduceLetterController extends BaseController {
         return success();
     }
 
-    @ApiOperation(value = "审批")
-    @RequiresPermissions("core:letter:approve")
-    @Log(title = "介绍信" , businessType = BusinessType.UPDATE)
+    @ApiOperation(value = "出入申请审批")
+    @RequiresPermissions("core:outinrequest:approve")
+    @Log(title = "出入申请审批" , businessType = BusinessType.UPDATE)
     @PutMapping("/outinrequest/approve")
     public AjaxResult approveLetter(@RequestBody CoreIntroduceLetterOutInRequest request) {
         coreIntroduceLetterService.auditLetter(request);
@@ -164,7 +166,8 @@ public class CoreIntroduceLetterController extends BaseController {
      * 新增出入申请
      */
     @ApiOperation(value = "新增出入申请")
-    @Log(title = "介绍信出入申请" , businessType = BusinessType.INSERT)
+    @Log(title = "新增出入申请" , businessType = BusinessType.INSERT)
+    @RequiresPermissions("core:outinrequest:add")
     @PostMapping("outinrequest")
     public AjaxResult addOutInRequest(@RequestBody CoreIntroduceLetterAddOutInRequestDto coreIntroduceLetter) {
         coreIntroduceLetterService.insertOutInRequest(coreIntroduceLetter);
@@ -176,6 +179,7 @@ public class CoreIntroduceLetterController extends BaseController {
      */
     @ApiOperation(value = "删除出入申请")
     @Log(title = "删除出入申请" , businessType = BusinessType.DELETE)
+    @RequiresPermissions("core:outinrequest:remove")
     @DeleteMapping("outinrequest/{id}")
     public AjaxResult addOutInRequest(@PathVariable("id") Long outInRequestId) {
         coreIntroduceLetterService.deleteOutInRequest(outInRequestId);
@@ -186,7 +190,7 @@ public class CoreIntroduceLetterController extends BaseController {
      * 获取出入申请详细信息
      */
     @ApiOperation(value = "获取CoreIntroduceLetter详细信息")
-    @RequiresPermissions("core:letter:query")
+    @RequiresPermissions("core:outinrequest:list")
     @GetMapping(value = "/outinrequest/{id}")
     public AjaxResult getOutInRequestInfo(@PathVariable("id") Long id) {
         return success(coreIntroduceLetterService.selectOutInRequestInfoById(id));
@@ -196,7 +200,8 @@ public class CoreIntroduceLetterController extends BaseController {
      * 登记出入信息
      */
     @ApiOperation(value = "修改出入申请信息")
-    @Log(title = "修改出入申请" , businessType = BusinessType.INSERT)
+    @Log(title = "登记出入信息" , businessType = BusinessType.INSERT)
+    @RequiresPermissions("core:outinrequest:edit")
     @PutMapping("outinrequest")
     public AjaxResult updateOutInRequest(@RequestBody CoreIntroduceLetterUpdateOutInRequestDto outInRequestDto) {
         coreIntroduceLetterService.updateOutInRequest(outInRequestDto);
@@ -204,7 +209,7 @@ public class CoreIntroduceLetterController extends BaseController {
     }
 
     @ApiOperation(value = "查询出入申请列表")
-    @RequiresPermissions("core:letter:query")
+    @RequiresPermissions("core:outinrequest:list")
     @GetMapping("/outinrequest/list")
     public TableDataInfo<CoreIntroduceLetterOutInRequestVo> outInRequestList(CoreIntroduceLetterApproveRequestDto requestDto) {
         if(ObjectUtil.isNull(requestDto))

+ 102 - 102
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/letter/controller/CoreOutInRecordController.java

@@ -1,102 +1,102 @@
-package com.xunmei.core.letter.controller;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.xunmei.common.core.domain.letter.domain.CoreOutInRecord;
-import com.xunmei.common.core.domain.letter.dto.CoreOutInRecordRequestDto;
-import com.xunmei.common.core.domain.letter.vo.CoreOutInRecordVo;
-import com.xunmei.common.core.web.controller.BaseController;
-import com.xunmei.common.core.web.domain.AjaxResult;
-import com.xunmei.common.core.web.page.TableDataInfo;
-import com.xunmei.common.log.annotation.Log;
-import com.xunmei.common.log.enums.BusinessType;
-import com.xunmei.common.security.annotation.RequiresPermissions;
-import com.xunmei.core.letter.service.ICoreOutInRecordService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.Date;
-
-/**
- * 人员出入登记Controller
- *
- * @author xunmei
- * @date 2023-11-10
- */
-@Api(tags = {"CoreOutInRecord" })
-@RestController
-@RequestMapping("/outinrecord")
-public class CoreOutInRecordController extends BaseController {
-    @Autowired
-    private ICoreOutInRecordService coreOutInRecordService;
-
-/**
- * 查询人员出入登记列表
- */
-@ApiOperation(value = "查询CoreOutInRecord列表")
-@RequiresPermissions("core:record:list")
-@GetMapping("/list")
-    public TableDataInfo<CoreOutInRecordVo> list(CoreOutInRecordRequestDto requestDto) {
-        return coreOutInRecordService.selectPage(requestDto);
-    }
-
-
-
-    /**
-     * 获取人员出入登记详细信息
-     */
-    @ApiOperation(value = "获取CoreOutInRecord详细信息")
-    @RequiresPermissions("core:record:list")
-    @GetMapping(value = "/{id}")
-    public AjaxResult getInfo(@PathVariable("id") Long id) {
-        return success(coreOutInRecordService.selectCoreOutInRecordById(id));
-    }
-
-    /**
-     * 新增人员出入登记
-     */
-    @ApiOperation(value = "新增CoreOutInRecord")
-    @RequiresPermissions("core:record:add")
-    @Log(title = "人员出入登记" , businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody CoreOutInRecord coreOutInRecord) {
-        return toAjax(coreOutInRecordService.insertCoreOutInRecord(coreOutInRecord));
-    }
-
-    /**
-     * 修改人员出入登记
-     */
-    @ApiOperation(value = "修改CoreOutInRecord")
-    @RequiresPermissions("core:record:edit")
-    @Log(title = "人员出入登记" , businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody CoreOutInRecord coreOutInRecord) {
-        return toAjax(coreOutInRecordService.updateCoreOutInRecord(coreOutInRecord));
-    }
-
-    /**
-     * 删除人员出入登记
-     */
-    @ApiOperation(value = "删除CoreOutInRecord")
-//    @RequiresPermissions("core:record:remove")
-    @Log(title = "人员出入登记" , businessType = BusinessType.DELETE)
-    @DeleteMapping("/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids) {
-        return toAjax(coreOutInRecordService.deleteCoreOutInRecordByIds(ids));
-    }
-
-
-    @ApiOperation(value = "生成来访管理登记簿")
-    @GetMapping("build/{id}")
-    public AjaxResult pdf(@PathVariable("id") Long id) {
-        return coreOutInRecordService.buildOutInRecordPdf(id);
-    }
-
-    @ApiOperation(value = "批量生成来访管理登记簿")
-    @GetMapping("batchRebuild")
-    public AjaxResult batchReBuildPdf(CoreOutInRecordRequestDto requestDto) {
-       return AjaxResult.success(coreOutInRecordService.batchReBuildPdf(requestDto));
-    }
-
-}
+//package com.xunmei.core.letter.controller;
+//
+//import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+//import com.xunmei.common.core.domain.letter.domain.CoreOutInRecord;
+//import com.xunmei.common.core.domain.letter.dto.CoreOutInRecordRequestDto;
+//import com.xunmei.common.core.domain.letter.vo.CoreOutInRecordVo;
+//import com.xunmei.common.core.web.controller.BaseController;
+//import com.xunmei.common.core.web.domain.AjaxResult;
+//import com.xunmei.common.core.web.page.TableDataInfo;
+//import com.xunmei.common.log.annotation.Log;
+//import com.xunmei.common.log.enums.BusinessType;
+//import com.xunmei.common.security.annotation.RequiresPermissions;
+//import com.xunmei.core.letter.service.ICoreOutInRecordService;
+//import io.swagger.annotations.Api;
+//import io.swagger.annotations.ApiOperation;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.web.bind.annotation.*;
+//
+//import java.util.Date;
+//
+///**
+// * 人员出入登记Controller
+// *
+// * @author xunmei
+// * @date 2023-11-10
+// */
+//@Api(tags = {"CoreOutInRecord" })
+//@RestController
+//@RequestMapping("/outinrecord")
+//public class CoreOutInRecordController extends BaseController {
+//    @Autowired
+//    private ICoreOutInRecordService coreOutInRecordService;
+//
+///**
+// * 查询人员出入登记列表
+// */
+//@ApiOperation(value = "查询CoreOutInRecord列表")
+//@RequiresPermissions("core:record:list")
+//@GetMapping("/list")
+//    public TableDataInfo<CoreOutInRecordVo> list(CoreOutInRecordRequestDto requestDto) {
+//        return coreOutInRecordService.selectPage(requestDto);
+//    }
+//
+//
+//
+//    /**
+//     * 获取人员出入登记详细信息
+//     */
+//    @ApiOperation(value = "获取CoreOutInRecord详细信息")
+//    @RequiresPermissions("core:record:list")
+//    @GetMapping(value = "/{id}")
+//    public AjaxResult getInfo(@PathVariable("id") Long id) {
+//        return success(coreOutInRecordService.selectCoreOutInRecordById(id));
+//    }
+//
+//    /**
+//     * 新增人员出入登记
+//     */
+//    @ApiOperation(value = "新增CoreOutInRecord")
+//    @RequiresPermissions("core:record:add")
+//    @Log(title = "人员出入登记" , businessType = BusinessType.INSERT)
+//    @PostMapping
+//    public AjaxResult add(@RequestBody CoreOutInRecord coreOutInRecord) {
+//        return toAjax(coreOutInRecordService.insertCoreOutInRecord(coreOutInRecord));
+//    }
+//
+//    /**
+//     * 修改人员出入登记
+//     */
+//    @ApiOperation(value = "修改CoreOutInRecord")
+//    @RequiresPermissions("core:record:edit")
+//    @Log(title = "人员出入登记" , businessType = BusinessType.UPDATE)
+//    @PutMapping
+//    public AjaxResult edit(@RequestBody CoreOutInRecord coreOutInRecord) {
+//        return toAjax(coreOutInRecordService.updateCoreOutInRecord(coreOutInRecord));
+//    }
+//
+//    /**
+//     * 删除人员出入登记
+//     */
+//    @ApiOperation(value = "删除CoreOutInRecord")
+////    @RequiresPermissions("core:record:remove")
+//    @Log(title = "人员出入登记" , businessType = BusinessType.DELETE)
+//    @DeleteMapping("/{ids}")
+//    public AjaxResult remove(@PathVariable Long[] ids) {
+//        return toAjax(coreOutInRecordService.deleteCoreOutInRecordByIds(ids));
+//    }
+//
+//
+//    @ApiOperation(value = "生成来访管理登记簿")
+//    @GetMapping("build/{id}")
+//    public AjaxResult pdf(@PathVariable("id") Long id) {
+//        return coreOutInRecordService.buildOutInRecordPdf(id);
+//    }
+//
+//    @ApiOperation(value = "批量生成来访管理登记簿")
+//    @GetMapping("batchRebuild")
+//    public AjaxResult batchReBuildPdf(CoreOutInRecordRequestDto requestDto) {
+//       return AjaxResult.success(coreOutInRecordService.batchReBuildPdf(requestDto));
+//    }
+//
+//}

+ 2 - 2
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/letter/mapper/CoreIntroduceLetterMapper.java

@@ -112,13 +112,13 @@ public interface CoreIntroduceLetterMapper extends BaseMapper<CoreIntroduceLette
     List<CoreIntroduceLetterCheckLogVo> auditAllList(@Param("letterId") Long letterId);
     List<CoreIntroduceLetterApprovedPersonVo> getOutInApprovedPersonList(@Param("request") CoreIntroduceLetterApproveRequestDto request);
 
-    List<PanelListVo> selectToDoApproveListForAPP(@Param("request") CoreIntroduceLetterApproveRequestDto request);
+    List<PanelListVo> selectToDoListForAPP(@Param("request") CoreIntroduceLetterApproveRequestDto request);
 
 
     void batchUpdateOutInRequestStatus(@Param("requestList") List<CoreIntroduceLetterOutInRequest> requestList);
     void updateOutInRequestStatus(@Param("request") CoreIntroduceLetterOutInRequest request);
 
-    int selectWebIndexNums(@Param("orgId") Long orgId);
+    int selectWebIndexNums(@Param("orgId") Long orgId,@Param("statusList") List<Integer> statusList);
 
     void saveOutInRequestUserList(@Param("userList")List<CoreIntroduceLetterOutInRequestUser> userList);
 

+ 6 - 6
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/letter/mapper/CoreIntroduceLetterOutInHistoryUserMapper.java

@@ -17,7 +17,7 @@ public interface CoreIntroduceLetterOutInHistoryUserMapper extends BaseMapper<Co
      * @param id 机构出入过的历史人员主键
      * @return 机构出入过的历史人员
      */
-    CoreIntroduceLetterOutInHistoryUser selectCoreIntroduceLetterOutInHistoryUserById(Long id);
+//    CoreIntroduceLetterOutInHistoryUser selectCoreIntroduceLetterOutInHistoryUserById(Long id);
 
     /**
      * 查询机构出入过的历史人员列表
@@ -25,7 +25,7 @@ public interface CoreIntroduceLetterOutInHistoryUserMapper extends BaseMapper<Co
      * @param coreIntroduceLetterOutInHistoryUser 机构出入过的历史人员
      * @return 机构出入过的历史人员集合
      */
-    List<CoreIntroduceLetterOutInHistoryUser> selectCoreIntroduceLetterOutInHistoryUserList(CoreIntroduceLetterOutInHistoryUser coreIntroduceLetterOutInHistoryUser);
+//    List<CoreIntroduceLetterOutInHistoryUser> selectCoreIntroduceLetterOutInHistoryUserList(CoreIntroduceLetterOutInHistoryUser coreIntroduceLetterOutInHistoryUser);
 
     /**
      * 新增机构出入过的历史人员
@@ -33,7 +33,7 @@ public interface CoreIntroduceLetterOutInHistoryUserMapper extends BaseMapper<Co
      * @param coreIntroduceLetterOutInHistoryUser 机构出入过的历史人员
      * @return 结果
      */
-    int insertCoreIntroduceLetterOutInHistoryUser(CoreIntroduceLetterOutInHistoryUser coreIntroduceLetterOutInHistoryUser);
+//    int insertCoreIntroduceLetterOutInHistoryUser(CoreIntroduceLetterOutInHistoryUser coreIntroduceLetterOutInHistoryUser);
 
     /**
      * 修改机构出入过的历史人员
@@ -41,7 +41,7 @@ public interface CoreIntroduceLetterOutInHistoryUserMapper extends BaseMapper<Co
      * @param coreIntroduceLetterOutInHistoryUser 机构出入过的历史人员
      * @return 结果
      */
-    int updateCoreIntroduceLetterOutInHistoryUser(CoreIntroduceLetterOutInHistoryUser coreIntroduceLetterOutInHistoryUser);
+//    int updateCoreIntroduceLetterOutInHistoryUser(CoreIntroduceLetterOutInHistoryUser coreIntroduceLetterOutInHistoryUser);
 
     /**
      * 删除机构出入过的历史人员
@@ -49,7 +49,7 @@ public interface CoreIntroduceLetterOutInHistoryUserMapper extends BaseMapper<Co
      * @param id 机构出入过的历史人员主键
      * @return 结果
      */
-    int deleteCoreIntroduceLetterOutInHistoryUserById(Long id);
+//    int deleteCoreIntroduceLetterOutInHistoryUserById(Long id);
 
     /**
      * 批量删除机构出入过的历史人员
@@ -57,5 +57,5 @@ public interface CoreIntroduceLetterOutInHistoryUserMapper extends BaseMapper<Co
      * @param ids 需要删除的数据主键集合
      * @return 结果
      */
-    int deleteCoreIntroduceLetterOutInHistoryUserByIds(Long[] ids);
+//    int deleteCoreIntroduceLetterOutInHistoryUserByIds(Long[] ids);
 }

+ 3 - 4
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/letter/service/ICoreIntroduceLetterService.java

@@ -41,7 +41,7 @@ public interface ICoreIntroduceLetterService extends IService<CoreIntroduceLette
      * @param coreIntroduceLetter 介绍信
      * @return 结果
      */
-    void insertCoreIntroduceLetter(CoreIntroduceLetterAddDto coreIntroduceLetter);
+    Long insertCoreIntroduceLetter(CoreIntroduceLetterAddDto coreIntroduceLetter);
 
     /**
      * 修改介绍信
@@ -96,11 +96,11 @@ public interface ICoreIntroduceLetterService extends IService<CoreIntroduceLette
     WebPanelResult selectWebIndexData(PanelListDto req);
 
     /**
-     * 获取出入审批待办
+     * 获取待登记 出入审批待办
      * @param panelListDto
      * @return
      */
-    List<PanelListVo> selectToDoApproveListForAPP(PanelListDto panelListDto);
+    List<PanelListVo> selectToDoListForAPP(PanelListDto panelListDto);
 
     /**
      * 新增介绍信出入申请
@@ -128,5 +128,4 @@ public interface ICoreIntroduceLetterService extends IService<CoreIntroduceLette
      * @return 介绍信
      */
     CoreIntroduceLetterOutInRequestVo selectOutInRequestInfoById(Long id);
-
 }

+ 3 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/letter/service/impl/CoreIntroduceLetterOutInHistoryUserServiceImpl.java

@@ -228,6 +228,9 @@ public class CoreIntroduceLetterOutInHistoryUserServiceImpl extends ServiceImpl<
                 newHistoryUser.setImgFile(x.getImgFile());
                 newHistoryUser.setCreateTime(new Date());
                 newHistoryUser.setCreateBy(SecurityUtils.getUsername());
+                newHistoryUser.setUpdateTime(new Date());
+                newHistoryUser.setUpdateBy(SecurityUtils.getUsername());
+                newHistoryUser.setOutInRequestId(outInRequestId);
                 users.add(newHistoryUser);
             }
         });

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

@@ -20,6 +20,7 @@ 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.util.BeanHelper;
 import com.xunmei.common.core.utils.DateUtils;
 import com.xunmei.common.core.web.page.TableDataInfo;
@@ -349,7 +350,7 @@ public class CoreIntroduceLetterServiceImpl extends ServiceImpl<CoreIntroduceLet
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void insertCoreIntroduceLetter(CoreIntroduceLetterAddDto coreIntroduceLetter) {
+    public Long insertCoreIntroduceLetter(CoreIntroduceLetterAddDto coreIntroduceLetter) {
 
         Map<String, Object> map = this.buildEditLetterMap(coreIntroduceLetter);
         CoreIntroduceLetter introduceLetter = (CoreIntroduceLetter) map.get("introduceLetter");
@@ -360,6 +361,7 @@ public class CoreIntroduceLetterServiceImpl extends ServiceImpl<CoreIntroduceLet
         coreIntroduceLetterMapper.saveUserList(userList);
         coreIntroduceLetterMapper.saveToOrgList(toOrgList);
 //        coreIntroduceLetterMapper.saveCheckLogs(checkLogs);
+        return introduceLetter.getId();
     }
 
     private Map<String, Object> buildEditLetterMap(CoreIntroduceLetterAddDto coreIntroduceLetter) {
@@ -404,6 +406,11 @@ public class CoreIntroduceLetterServiceImpl extends ServiceImpl<CoreIntroduceLet
                 user.setCreateTime(date);
                 user.setCreateBy(username);
             }
+            else{
+                user.setLetterId(introduceLetter.getId());
+                user.setCreateTime(date);
+                user.setCreateBy(username);
+            }
             userList.add(user);
         });
         //封装接待机构
@@ -438,42 +445,74 @@ public class CoreIntroduceLetterServiceImpl extends ServiceImpl<CoreIntroduceLet
                 .taskType(PanelTypeEnums.VISIT_APPROVE.ordinal()).taskTypeText(PanelTypeEnums.VISIT_APPROVE.getName())
                 .nums(0).build();
 
-        final List<Long> menu = userService.selectUserRoleMenu(req.getUserId(), SecurityConstants.INNER);
+//        final List<Long> menu = userService.selectUserRoleMenu(req.getUserId(), SecurityConstants.INNER);
         //web端出入审批按钮权限id
-        if (!menu.contains(1722551208603836417L)) {
+//        if (!menu.contains(1722551208603836417L)) {
+//            result.setNums(0);
+//            return result;
+//        }
+
+        // 登记出入记录的权限标识
+        String outInRequestEditPermission = "core:outinrequest:edit";
+        // 出入申请审批的权限标识
+        String outInRequestApprovePermission = "core:outinrequest:approve";
+        // 出入状态 :0待审批 1 待登记 2 已完成 3 已拒绝 4 已过期 5已补登
+        List<Integer> outInRequestStatusList = new ArrayList<>();
+        // 有登记出入记录权限
+        if (req.getPermissions().stream().anyMatch(x -> ObjectUtil.equal(x, outInRequestEditPermission))) {
+            outInRequestStatusList.add(1);
+            outInRequestStatusList.add(4);
+        }
+        // 有审核出入申请权限
+        if (req.getPermissions().stream().anyMatch(x -> ObjectUtil.equal(x, outInRequestApprovePermission))) {
+            outInRequestStatusList.add(0);
+        }
+
+        // 没有权限
+        if(outInRequestStatusList.size()==0)
+        {
             result.setNums(0);
             return result;
         }
-        final int count = coreIntroduceLetterMapper.selectWebIndexNums(req.getOrgId());
+
+        final int count = coreIntroduceLetterMapper.selectWebIndexNums(req.getOrgId(),outInRequestStatusList);
         result.setNums(count);
         return result;
     }
 
     @Override
-    public List<PanelListVo> selectToDoApproveListForAPP(PanelListDto panelListDto) {
+    public List<PanelListVo> selectToDoListForAPP(PanelListDto panelListDto) {
         List<PanelListVo> resultList = new ArrayList<>();
-        SysRole tempRole =null;
-        List<SysRole> cacheRoleList = RedisUtils.getCacheList(CacheConstants.ROLE_CACHE_LIST_KEY);
-        if(ObjectUtil.isNotEmpty(cacheRoleList) && cacheRoleList.stream().anyMatch(x->"网点负责人".equals(x.getRoleName())))
-        {
-            tempRole= cacheRoleList.stream().filter(x->"网点负责人".equals(x.getRoleName())).findFirst().get();
-        }
-        else {
-            tempRole = roleService.getRoleByName("网点负责人", SecurityConstants.INNER);
-        }
+        // 登记出入记录的权限标识
+        String outInRequestEditPermission = "core:outinrequest:edit";
+        // 出入申请审批的权限标识
+        String outInRequestApprovePermission = "core:outinrequest:approve";
 
-        SysRole role =tempRole;
         // 没有角色
         if (ObjectUtil.isEmpty(panelListDto.getRoleIdList())) {
             return resultList;
         }
-        // 没有网点负责人角色
-        if (!panelListDto.getRoleIdList().stream().anyMatch(x -> ObjectUtil.equal(x, role.getId()))) {
-            return resultList;
-        }
         CoreIntroduceLetterApproveRequestDto requestDto = new CoreIntroduceLetterApproveRequestDto();
         requestDto.setOrgId(panelListDto.getOrgId());
-        resultList = coreIntroduceLetterMapper.selectToDoApproveListForAPP(requestDto);
+        // 出入状态 :0待审批 1 待登记 2 已完成 3 已拒绝 4 已过期 5已补登
+        List<Integer> outInRequestStatusList = new ArrayList<>();
+        // 有登记出入记录权限
+        if (panelListDto.getPermissions().stream().anyMatch(x -> ObjectUtil.equal(x, outInRequestEditPermission))) {
+            outInRequestStatusList.add(1);
+            outInRequestStatusList.add(4);
+        }
+        // 有审核出入申请权限
+        if (panelListDto.getPermissions().stream().anyMatch(x -> ObjectUtil.equal(x, outInRequestApprovePermission))) {
+            outInRequestStatusList.add(0);
+        }
+
+        if(outInRequestStatusList.size()==0)
+        {
+            return resultList;
+        }
+        requestDto.setOutInRequestStatusList(outInRequestStatusList);
+        resultList = coreIntroduceLetterMapper.selectToDoListForAPP(requestDto);
+
         resultList.forEach(item -> {
             item.setType(PanelTypeEnums.VISIT_APPROVE.getCode());
         });
@@ -734,26 +773,35 @@ public class CoreIntroduceLetterServiceImpl extends ServiceImpl<CoreIntroduceLet
             if(outInRequestDto.getType()==2) {
                 //回写介绍信人员
                 List<CoreIntroduceLetterUserAddDto> fromLetterUserList = outInRequestDto.getUserInfos().stream().filter(x -> x.getLetterUserId() != null).collect(Collectors.toList());
-                CoreIntroduceLetterInfoVo coreIntroduceLetterVo = coreIntroduceLetterMapper.selectOneById(outInRequestDto.getLetterId());
-                List<CoreIntroduceLetterInfoVo> list = new ArrayList<>();
-                list.add(coreIntroduceLetterVo);
-                List<CoreIntroduceLetterUserAddDto> letterUserList = coreIntroduceLetterMapper.findUserList(list);
-
-                letterUserList.stream().forEach(l -> {
-                    fromLetterUserList.stream().filter(x -> ObjectUtil.equal(x.getId(), l.getId())).findFirst().ifPresent(x -> {
-                        l.setUserName(x.getUserName());
-                        l.setCompanyName(x.getCompanyName());
-                        l.setIdType(x.getIdType());
-                        l.setIdCard(x.getIdCard());
+                if(fromLetterUserList.size()>0)
+                {
+                    CoreIntroduceLetterInfoVo coreIntroduceLetterVo = coreIntroduceLetterMapper.selectOneById(outInRequestDto.getLetterId());
+                    List<CoreIntroduceLetterInfoVo> list = new ArrayList<>();
+                    list.add(coreIntroduceLetterVo);
+                    List<CoreIntroduceLetterUserAddDto> letterUserList = coreIntroduceLetterMapper.findUserList(list);
+                    List<CoreIntroduceLetterUserAddDto> updateLetterUserList = new ArrayList<>();
+                    fromLetterUserList.forEach(x->{
+                         Optional<CoreIntroduceLetterUserAddDto> first = letterUserList.stream().filter(l -> ObjectUtil.equal(l.getId(), x.getLetterUserId())).findFirst();
+                         if(first.isPresent())
+                         {
+                             //回写历史人员时需要图片,从介绍信人员信息中获取图片,提交登记信息时未从前端传图片信息,此处获取图片
+                             x.setImgFile(first.get().getImgFile());
+
+                             first.get().setUserName(x.getUserName());
+                             first.get().setCompanyName(x.getCompanyName());
+                             first.get().setIdType(x.getIdType());
+                             first.get().setIdCard(x.getIdCard());
+                             updateLetterUserList.add(first.get());
+                         }
                     });
-                });
-                coreIntroduceLetterMapper.batchUpdateLetterUserList(letterUserList);
+                    coreIntroduceLetterMapper.batchUpdateLetterUserList(updateLetterUserList);
+                }
                 //回写历史人员库
                 outInHistoryUserService.batchInboundOutInHistory(outInRequestDto.getUserInfos(),outInRequest.getOrgId(),outInRequest.getId());
 
             }
         } catch (Exception e) {
-            log.error("同步人员信息到人员历史表、介绍信人员信息 失败{0},{1}",e.getMessage(),e.getStackTrace());
+            log.error("同步人员信息到人员历史表、介绍信人员信息 失败{},{}",e.getMessage(),e.getStackTrace());
         }
     }
 

+ 2 - 2
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/panel/service/impl/PanelServiceImpl.java

@@ -121,7 +121,7 @@ public class PanelServiceImpl implements PanelService {
 //                //roles 获取id集合
 //                roleIds = roles.stream().map(SysRole::getId).collect(Collectors.toList());
             }
-            // 缓存有被清空的
+            // 缓存有被清空的
             else
             {
                 roleIds = RemoteCallHandlerExecutor.executeRemoteCall(
@@ -220,7 +220,7 @@ public class PanelServiceImpl implements PanelService {
         //出入审批
         CompletableFuture<List<PanelListVo>> letterOutInFuture = CompletableFuture.supplyAsync(() ->
 
-                coreIntroduceLetterService.selectToDoApproveListForAPP(panelListDto), threadPoolTaskExecutor
+                coreIntroduceLetterService.selectToDoListForAPP(panelListDto), threadPoolTaskExecutor
         );
 
 

+ 5 - 6
soc-modules/soc-modules-core/src/main/resources/mapper/board/AppCockpitMapper.xml

@@ -285,14 +285,13 @@
     </select>
     <select id="selectSyntheticInout" resultType="com.xunmei.core.board.vo.app.AppSyntheticInOutVo">
         SELECT COUNT(*)        as total,
-               sum(l.letter_type = 1) as department,
-               sum(l.letter_type = 2) as temporary,
+               sum(l.letter_type = 2) as normal,
                sum(l.letter_type = 3) as emergency
-        FROM core_out_in_record r
+        FROM core_introduce_letter_out_in_request_user r
                  INNER JOIN core_introduce_letter_out_in_request l ON r.out_in_request_id = l.id
-                 INNER JOIN sys_org o ON r.org_id = o.id
-        where arrival_time >= #{startDate}
-          AND arrival_time &lt;= #{endDate}
+                 INNER JOIN sys_org o ON l.org_id = o.id
+        where r.arrival_time >= #{startDate}
+          AND r.arrival_time &lt;= #{endDate}
           and o.path LIKE CONCAT(#{orgPath}, '%')
     </select>
     <select id="selectSyntheticMonitor" resultType="com.xunmei.core.board.dto.app.AppSyntheticTaskCategoryDto">

+ 4 - 5
soc-modules/soc-modules-core/src/main/resources/mapper/board/CockpitMapper.xml

@@ -170,13 +170,12 @@
     </select>
     <select id="currentMonthVisitInfo" resultType="com.xunmei.core.board.vo.web.VisitInfoVo">
         SELECT COUNT(*)        as total,
-               sum(l.letter_type = 1) as electronicCount,
-               sum(l.letter_type = 2) as paperCount,
+               sum(l.letter_type = 2) as normalCount,
                sum(l.letter_type = 3) as urgencyCount
-        FROM core_out_in_record r
+        FROM core_introduce_letter_out_in_request_user r
                  INNER JOIN core_introduce_letter_out_in_request l ON r.out_in_request_id = l.id
-                 INNER JOIN sys_org o ON r.org_id = o.id
-        where arrival_time >= #{startDate}
+                 INNER JOIN sys_org o ON l.org_id = o.id
+        where r.arrival_time >= #{startDate}
           and o.path LIKE CONCAT(#{orgPath}, '%')
     </select>
 <!--    <select id="question" resultType="com.xunmei.core.board.vo.web.QuestionStatisticVo">-->

+ 26 - 12
soc-modules/soc-modules-core/src/main/resources/mapper/letter/CoreIntroduceLetterMapper.xml

@@ -123,6 +123,7 @@
             </if>
             <if test="coreIntroduceLetter.outInRequestStatus !=null">
                 and r.`status` = #{coreIntroduceLetter.outInRequestStatus}
+                and r.deleted = 0
             </if>
             <if test="coreIntroduceLetter.keyWords !=null and coreIntroduceLetter.keyWords !=''">
                 and u.user_name like concat('%', #{coreIntroduceLetter.keyWords}, '%')
@@ -403,8 +404,8 @@
         <if test="coreIntroduceLetter.reasons !=null  and coreIntroduceLetter.reasons !=''">
             and a.letter_reasons like concat('%', #{coreIntroduceLetter.reasons}, '%')
         </if>
-        <if test="coreIntroduceLetter.type !=null  and coreIntroduceLetter.type !=''">
-            and a.letter_type like concat('%', #{coreIntroduceLetter.type}, '%')
+        <if test="coreIntroduceLetter.letterType !=null">
+            and a.letter_type =#{coreIntroduceLetter.letterType}
         </if>
         <if test="coreIntroduceLetter.outInRequestStatus !=null">
             and a.status = #{coreIntroduceLetter.outInRequestStatus}
@@ -469,34 +470,47 @@
         </if>
     </select>
 
-    <select id="selectToDoApproveListForAPP"
+    <select id="selectToDoListForAPP"
             resultType="com.xunmei.common.core.domain.panel.vo.PanelListVo">
         select
         c.id,
-        c.letter_reasons AS taskName,
-        c.start_time AS startTime,
-        c.end_time AS endTime,
+        c.letter_no AS taskName,
+        c.create_time AS startTime,
+        c.approve_time AS endTime,
         c.effective_days,
-        c.approve_status AS STATUS,
+        c.`status` as STATUS,
         concat_ws('-',o.affiliated_area,o.affiliated_bank,o.short_name) as orgName
         from core_introduce_letter_out_in_request c
         inner join sys_org o on o.id=c.org_id
-        where c.deleted = 0 AND c.approve_status =0
+        where c.deleted = 0
         <if test="request.orgId !=null  and request.orgId !=''">
             and c.org_id = #{request.orgId}
         </if>
-        order by c.create_time
+        <if test="request.outInRequestStatusList !=null">
+            and c.status in
+            <foreach collection="request.outInRequestStatusList" item="id" open="(" separator="," close=")">
+                #{id}
+            </foreach>
+        </if>
+        order by c.create_time DESC
     </select>
 
     <select id="selectWebIndexNums" resultType="int">
         select count(1) from  core_introduce_letter_out_in_request l
-        where l.deleted=0 and l.org_id=#{orgId} and l.approve_status=0
+        where l.deleted=0
+          and l.org_id=#{orgId}
+        <if test="statusList !=null and !statusList.isEmpty()">
+            and l.status in
+            <foreach collection="statusList" item="id" open="(" separator="," close=")">
+                #{id}
+            </foreach>
+        </if>
     </select>
 
     <insert id="saveOutInRequestUserList">
-        insert into core_introduce_letter_out_in_request_user (id,user_name,company_name,id_type,id_card,img_file,out_in_request_id,create_by,create_time)values
+        insert into core_introduce_letter_out_in_request_user (id,user_name,company_name,id_type,id_card,img_file,out_in_request_id,create_by,create_time,letter_user_id)values
         <foreach collection="userList" item="item" index="index"  separator="," >
-            (#{item.id},#{item.userName},#{item.companyName},#{item.idType},#{item.idCard},#{item.imgFile},#{item.outInRequestId},#{item.createBy},#{item.createTime})
+            (#{item.id},#{item.userName},#{item.companyName},#{item.idType},#{item.idCard},#{item.imgFile},#{item.outInRequestId},#{item.createBy},#{item.createTime},#{item.letterUserId})
         </foreach>
     </insert>