Selaa lähdekoodia

Merge remote-tracking branch 'origin/V0.0.2' into V0.0.2

# Conflicts:
#	soc-modules/soc-modules-file/src/main/java/com/xunmei/file/service/LocalSysFileServiceImpl.java
jingyuanchao 1 vuosi sitten
vanhempi
commit
2f27c6736b
17 muutettua tiedostoa jossa 515 lisäystä ja 245 poistoa
  1. 3 0
      soc-api/soc-api-system/src/main/java/com/xunmei/system/api/RemoteFileService.java
  2. 31 0
      soc-api/soc-api-system/src/main/java/com/xunmei/system/api/domain/CheckDataVo.java
  3. 46 0
      soc-api/soc-api-system/src/main/java/com/xunmei/system/api/domain/SafeCheckTaskRegisterBookVo.java
  4. 6 0
      soc-api/soc-api-system/src/main/java/com/xunmei/system/api/factory/RemoteFileFallbackFactory.java
  5. 2 6
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/service/impl/AppPlanServiceImpl.java
  6. 6 0
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/controller/CoreSafecheckPlanController.java
  7. 4 0
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/service/ICoreSafecheckPlanService.java
  8. 240 83
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/service/impl/CoreSafecheckPlanServiceImpl.java
  9. 7 3
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/service/impl/SafetyCheckRegisterSericeImpl.java
  10. 46 0
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/vo/AppSafetyTaskDataRemarkDto.java
  11. 35 0
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/vo/PointDto.java
  12. 7 0
      soc-modules/soc-modules-file/src/main/java/com/xunmei/file/controller/SysFileController.java
  13. 2 0
      soc-modules/soc-modules-file/src/main/java/com/xunmei/file/service/ISysFileService.java
  14. 49 4
      soc-modules/soc-modules-file/src/main/java/com/xunmei/file/service/LocalSysFileServiceImpl.java
  15. 23 141
      soc-modules/soc-modules-file/src/main/java/com/xunmei/file/utils/PdfUtil.java
  16. 6 6
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/controller/SysDeptController.java
  17. 2 2
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysOrgServiceImpl.java

+ 3 - 0
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/RemoteFileService.java

@@ -4,6 +4,7 @@ import com.xunmei.common.core.constant.ServiceNameConstants;
 import com.xunmei.common.core.domain.R;
 import com.xunmei.common.core.domain.registerbook.dto.CoreRegisterBookPdfExportDto;
 import com.xunmei.common.core.domain.registerbook.dto.ExportPdfDto;
+import com.xunmei.system.api.domain.SafeCheckTaskRegisterBookVo;
 import com.xunmei.system.api.domain.SysFile;
 import com.xunmei.system.api.factory.RemoteFileFallbackFactory;
 import feign.Response;
@@ -45,6 +46,8 @@ public interface RemoteFileService {
 
     @PostMapping(value = "/file/generateResumptionPdf")
     R<String> generateResumptionPdf(@RequestBody Map<String, Object> data);
+    @PostMapping(value = "/file/generateSafeCheckPdf")
+    R<String> generateSafeCheckPdf(@RequestBody SafeCheckTaskRegisterBookVo data);
 
     /**
      * 生成预案演练登记簿

+ 31 - 0
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/domain/CheckDataVo.java

@@ -0,0 +1,31 @@
+package com.xunmei.system.api.domain;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+public class CheckDataVo {
+    private Long pointId;
+
+    private Long itemId;
+
+    private String pointName;
+
+    private int pointNum;
+
+    private String itemName;
+
+    private Boolean checkStatus;
+
+//    private List<RemarkVo> remarkList;
+
+    private String resRemark;
+
+    private String orderNum;
+}
+

+ 46 - 0
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/domain/SafeCheckTaskRegisterBookVo.java

@@ -0,0 +1,46 @@
+package com.xunmei.system.api.domain;
+
+import com.xunmei.system.api.domain.CheckDataVo;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+/**
+ *
+ */
+@AllArgsConstructor
+@NoArgsConstructor
+@Data
+@Builder
+public class SafeCheckTaskRegisterBookVo {
+
+  @ApiModelProperty("任务名称")
+  private String taskTitle;
+
+  @ApiModelProperty("检查机构Id")
+  private Long checkOrgId;
+
+  @ApiModelProperty("检查机构名称")
+  private String checkOrgName;
+
+  @ApiModelProperty("受检机构Id")
+  private Long orgId;
+
+  @ApiModelProperty("受检机构名称")
+  private String orgName;
+
+  @ApiModelProperty("受检日期 eg: 2000年1月2日")
+  private String dateStr;
+
+  @ApiModelProperty("检查人员信息 eg: 张三(一级支行行长)")
+  private String checkUserInfo;
+
+  private List<CheckDataVo> checkDatas;
+  private String dest;
+
+
+}

+ 6 - 0
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/factory/RemoteFileFallbackFactory.java

@@ -5,6 +5,7 @@ import com.xunmei.common.core.domain.R;
 import com.xunmei.common.core.domain.registerbook.dto.CoreRegisterBookPdfExportDto;
 import com.xunmei.common.core.domain.registerbook.dto.ExportPdfDto;
 import com.xunmei.system.api.RemoteFileService;
+import com.xunmei.system.api.domain.SafeCheckTaskRegisterBookVo;
 import com.xunmei.system.api.domain.SysFile;
 import feign.Response;
 import org.slf4j.Logger;
@@ -45,6 +46,11 @@ public class RemoteFileFallbackFactory implements FallbackFactory<RemoteFileServ
             }
 
             @Override
+            public R<String> generateSafeCheckPdf(SafeCheckTaskRegisterBookVo data) {
+                return null;
+            }
+
+            @Override
             public R<String> generateDrillPdf(Map<String, Object> data) {
                 log.error("生成预案演练登记簿失败:{},参数:{}", throwable.getMessage(), JSON.toJSONString(data));
                 return null;

+ 2 - 6
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/service/impl/AppPlanServiceImpl.java

@@ -746,12 +746,8 @@ public class AppPlanServiceImpl extends ServiceImpl<AppPlanMapper, AppPlan> impl
     public AjaxResult buildResumptionPdf(Long orgid) {
 
         SysOrg sysOrg = RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.selectOrgById(orgid, SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
-        String[] strings = sysOrg.getTreeShowPath().split("-");
-        List<Long> list = Arrays.stream(strings).map(Long::valueOf).collect(Collectors.toList());
-        List<SysOrg> sysOrgList = RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.selectOrgByIdList(list, SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
-        String orgName = sysOrgList.stream().map(SysOrg::getShortName).collect(Collectors.joining("_"));
-
-        String fileName = orgName + "_" + DateUtil.format(new Date(), "yyyyMMddHHmmss") + ".pdf";
+        String fileOrgName = registerBookPdfService.getFileOrgName(orgid);
+        String fileName = fileOrgName + "_" + RegisterBookType.SECURITY_PERFORMANCE.getText()+ "_"+ DateUtil.format(new Date(), "yyyyMMddHHmmss") + ".pdf";
         Map<String, Object> data = this.getFtlResumption(orgid);
         data.put("fileName", fileName);
         data.put("orgName", sysOrg.getShortName());

+ 6 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/controller/CoreSafecheckPlanController.java

@@ -327,4 +327,10 @@ public class CoreSafecheckPlanController extends BaseController {
         jobBusiness.updateTaskStatus();
         return AjaxResult.success("开始更新安全检查状态!");
     }
+    @ApiOperation(value = "根据任务id生成pdf")
+    @GetMapping(value = "/buildPdf")
+    public AjaxResult buildPdf() {
+        coreSafecheckPlanService.buildPdf(1722881151897399300L);
+        return AjaxResult.success("开始更新安全检查状态!");
+    }
 }

+ 4 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/service/ICoreSafecheckPlanService.java

@@ -7,6 +7,8 @@ import com.xunmei.core.safetyCheck.domain.CoreSafecheckPlan;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.xunmei.common.core.web.page.TableDataInfo;
+import com.xunmei.core.safetyCheck.domain.CoreSafetyTask;
+import com.xunmei.core.safetyCheck.vo.PointDto;
 
 /**
  * 常规安全检查计划Service接口
@@ -63,6 +65,7 @@ public interface ICoreSafecheckPlanService extends IService<CoreSafecheckPlan> {
      */
     int deleteCoreSafecheckPlanById(Long id);
 
+    void buildPdf(Long taskId);
     /**
      * 查询常规安全检查计划分页数据
      *
@@ -78,4 +81,5 @@ public interface ICoreSafecheckPlanService extends IService<CoreSafecheckPlan> {
     void cheHui(Long id);
 
     int distributeCheHui(Long id);
+    String createSafetyCheckRegisterBookPdf(CoreSafetyTask appSafetyCheckTask);
 }

+ 240 - 83
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/service/impl/CoreSafecheckPlanServiceImpl.java

@@ -1,32 +1,44 @@
 package com.xunmei.core.safetyCheck.service.impl;
 
+import java.io.File;
+import java.text.MessageFormat;
+import java.text.SimpleDateFormat;
 import java.util.*;
 
-import cn.hutool.core.collection.CollectionUtil;
-import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.IdWorker;
+import com.xunmei.common.core.constant.ErrorMsgConstants;
 import com.xunmei.common.core.constant.SecurityConstants;
 import com.xunmei.common.core.domain.DateRange;
+import com.xunmei.common.core.domain.registerbook.domain.CoreRegisterBookPdf;
 import com.xunmei.common.core.enums.CycleCommonEnum;
+import com.xunmei.common.core.enums.RegisterBookType;
 import com.xunmei.common.core.utils.DateHelper;
 import com.xunmei.common.core.utils.DateUtils;
 import com.xunmei.common.security.utils.SecurityUtils;
-import com.xunmei.core.resumption.domain.AppPlan;
-import com.xunmei.core.resumption.domain.AppPlanToPoint;
-import com.xunmei.core.resumption.domain.AppPlanToRole;
-import com.xunmei.core.resumption.domain.Resumption;
+import com.xunmei.core.registerbook.service.ICoreRegisterBookPdfService;
 import com.xunmei.core.resumption.dto.DistributeDto;
 import com.xunmei.core.resumption.dto.DistributeStatusDto;
-import com.xunmei.core.resumption.vo.appPlan.ResumptionPlanPageVo;
+import com.xunmei.core.resumption.mapper.AppPlanMapper;
+import com.xunmei.core.resumption.vo.appPlan.RuleItemVo;
 import com.xunmei.core.safetyCheck.domain.*;
 import com.xunmei.core.safetyCheck.job.SafetyCheckJobBusiness;
 import com.xunmei.core.safetyCheck.mapper.*;
 import com.xunmei.core.safetyCheck.service.ICoreSafecheckPlanService;
-import com.xunmei.core.safetyCheck.vo.ruleItem.SafetyCheckRulePointSelectVo;
+import com.xunmei.core.safetyCheck.vo.regsiter.AppTaskRegisterPointVo;
+import com.xunmei.core.safetyCheck.vo.regsiter.TaskRegisterVo;
+import com.xunmei.system.api.RemoteFileService;
+import com.xunmei.system.api.domain.CheckDataVo;
+import com.xunmei.core.safetyCheck.vo.PointDto;
+import com.xunmei.system.api.domain.SafeCheckTaskRegisterBookVo;
 import com.xunmei.core.safetyCheck.vo.ruleItem.SafetyCheckRulePointVo;
 import com.xunmei.system.api.RemoteOrgService;
 import com.xunmei.system.api.domain.SysOrg;
+import com.xunmei.system.api.function.RemoteCallHandlerExecutor;
+import io.netty.util.internal.StringUtil;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
@@ -37,6 +49,8 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.xunmei.common.core.web.page.TableDataInfo;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
 
 /**
  * 常规安全检查计划Service业务层处理
@@ -62,7 +76,12 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
     private SafetyCheckJobBusiness safetyCheckJobBusiness;
     @Autowired
     private CoreSafetyTaskMapper coreSafetyTaskMapper;
-
+    @Autowired
+    private ICoreRegisterBookPdfService registerBookPdfService;
+    @Autowired
+    private AppPlanMapper appPlanMapper;
+    @Autowired
+    private RemoteFileService fileService;
     @Override
     public TableDataInfo<CoreSafecheckPlan> selectPage(CoreSafecheckPlan coreSafecheckPlan) {
         //未删除
@@ -205,9 +224,9 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
             baseMapper.updateById(ap);
 
             CycleCommonEnum code = CycleCommonEnum.getEnum(0);
-            DateRange dateRange = new DateRange(ap.getStartDate(),ap.getEndDate());
-            if(plan.getPlanCycle()!=6L){
-                code=CycleCommonEnum.getEnum( Math.toIntExact(plan.getPlanCycle())+2);
+            DateRange dateRange = new DateRange(ap.getStartDate(), ap.getEndDate());
+            if (plan.getPlanCycle() != 6L) {
+                code = CycleCommonEnum.getEnum(Math.toIntExact(plan.getPlanCycle()) + 2);
                 dateRange = DateUtils.getStartAndEnd(new Date(), code);
             }
             //撤回需要删除本周期所有任务
@@ -224,9 +243,9 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
         baseMapper.updateById(plan);
 
         CycleCommonEnum code = CycleCommonEnum.getEnum(0);
-        DateRange dateRange = new DateRange(plan.getStartDate(),plan.getEndDate());
-        if(plan.getPlanCycle()!=6L){
-            code=CycleCommonEnum.getEnum( Math.toIntExact(plan.getPlanCycle())+2);
+        DateRange dateRange = new DateRange(plan.getStartDate(), plan.getEndDate());
+        if (plan.getPlanCycle() != 6L) {
+            code = CycleCommonEnum.getEnum(Math.toIntExact(plan.getPlanCycle()) + 2);
             dateRange = DateUtils.getStartAndEnd(new Date(), code);
         }
         if (plan.getPlanCycle() == 6L) {
@@ -381,99 +400,98 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
         }
 
 
-
         return returnId;
     }
 
     @Async
     @Override
     public void childrenPlan(Long id) {
-            //处理子计划
-            //拿到所有子计划
-            List<CoreSafecheckPlan> children = baseMapper.selectList(new LambdaQueryWrapper<CoreSafecheckPlan>().eq(CoreSafecheckPlan::getParentId, id));
-            CoreSafecheckPlan coreSafecheckPlan = baseMapper.selectById(id);
-            for (CoreSafecheckPlan p :
-                    children) {
-                p.setUpdateTime(DateUtils.getNowDate());
-                p.setModifiedBy(SecurityUtils.getUserId());
-                p.setPlanName(coreSafecheckPlan.getPlanName());
-                p.setBuildTaskNow(coreSafecheckPlan.isBuildTaskNow());
-                p.setCheckOrgType(coreSafecheckPlan.getCheckOrgType());
-                p.setCheckType(coreSafecheckPlan.getCheckType());
-                p.setCount(p.getCount()>coreSafecheckPlan.getCount()?p.getCount():coreSafecheckPlan.getCount());
-                p.setDescription(coreSafecheckPlan.getDescription());
-                p.setExecOrgType(coreSafecheckPlan.getExecOrgType());
-                p.setPlanCycle(coreSafecheckPlan.getPlanCycle());
+        //处理子计划
+        //拿到所有子计划
+        List<CoreSafecheckPlan> children = baseMapper.selectList(new LambdaQueryWrapper<CoreSafecheckPlan>().eq(CoreSafecheckPlan::getParentId, id));
+        CoreSafecheckPlan coreSafecheckPlan = baseMapper.selectById(id);
+        for (CoreSafecheckPlan p :
+                children) {
+            p.setUpdateTime(DateUtils.getNowDate());
+            p.setModifiedBy(SecurityUtils.getUserId());
+            p.setPlanName(coreSafecheckPlan.getPlanName());
+            p.setBuildTaskNow(coreSafecheckPlan.isBuildTaskNow());
+            p.setCheckOrgType(coreSafecheckPlan.getCheckOrgType());
+            p.setCheckType(coreSafecheckPlan.getCheckType());
+            p.setCount(p.getCount() > coreSafecheckPlan.getCount() ? p.getCount() : coreSafecheckPlan.getCount());
+            p.setDescription(coreSafecheckPlan.getDescription());
+            p.setExecOrgType(coreSafecheckPlan.getExecOrgType());
+            p.setPlanCycle(coreSafecheckPlan.getPlanCycle());
 //                p.setPlanStatus(coreSafecheckPlan.getPlanStatus());
-                p.setSourceType(coreSafecheckPlan.getSourceType());
-                baseMapper.updateById(p);
-
+            p.setSourceType(coreSafecheckPlan.getSourceType());
+            baseMapper.updateById(p);
 
-                //拿到父计划的所有角色映射
-                List<CoreSafecheckPlanToRole> roleList = coreSafecheckPlanToRoleMapper.selectList(new LambdaQueryWrapper<CoreSafecheckPlanToRole>().eq(CoreSafecheckPlanToRole::getPlanId, coreSafecheckPlan.getId()));
-                //再处理角色关系
-                if (roleList != null) {
-                    //删除子计划原角色映射
-                    coreSafecheckPlanToRoleMapper.deleteCoreSafecheckPlanToRoleByPlanId(p.getId());
-                    for (CoreSafecheckPlanToRole r :
-                            roleList) {
-                        //添加来自父计划的角色映射
-                        coreSafecheckPlanToRoleMapper.insert(new CoreSafecheckPlanToRole(p.getId(), r.getRoleId()));
 
-                    }
-                }
-                //再处理检查机构关系
-                List<CoreSafecheckPlanToExecOrg> execOrgList = coreSafecheckPlanToExecOrgMapper.selectList(new LambdaQueryWrapper<CoreSafecheckPlanToExecOrg>().eq(CoreSafecheckPlanToExecOrg::getPlanId, coreSafecheckPlan.getId()));
-                if (execOrgList != null) {
-                    coreSafecheckPlanToExecOrgMapper.deleteCoreSafecheckPlanToExecOrgByPlanId(p.getId());
-                    for (CoreSafecheckPlanToExecOrg org :
-                            execOrgList) {
-                        coreSafecheckPlanToExecOrgMapper.insert(new CoreSafecheckPlanToExecOrg(p.getId(), org.getOrgId()));
+            //拿到父计划的所有角色映射
+            List<CoreSafecheckPlanToRole> roleList = coreSafecheckPlanToRoleMapper.selectList(new LambdaQueryWrapper<CoreSafecheckPlanToRole>().eq(CoreSafecheckPlanToRole::getPlanId, coreSafecheckPlan.getId()));
+            //再处理角色关系
+            if (roleList != null) {
+                //删除子计划原角色映射
+                coreSafecheckPlanToRoleMapper.deleteCoreSafecheckPlanToRoleByPlanId(p.getId());
+                for (CoreSafecheckPlanToRole r :
+                        roleList) {
+                    //添加来自父计划的角色映射
+                    coreSafecheckPlanToRoleMapper.insert(new CoreSafecheckPlanToRole(p.getId(), r.getRoleId()));
 
-                    }
                 }
-                //再处理受检机构关系
-                List<CoreSafecheckPlanToCheckOrg> checkOrgList = coreSafecheckPlanToCheckOrgMapper.selectList(new LambdaQueryWrapper<CoreSafecheckPlanToCheckOrg>().eq(CoreSafecheckPlanToCheckOrg::getPlanId, coreSafecheckPlan.getId()));
-                if (checkOrgList != null) {
-                    coreSafecheckPlanToCheckOrgMapper.deleteCoreSafecheckPlanToCheckOrgByPlanId(p.getId());
-                    for (CoreSafecheckPlanToCheckOrg org :
-                            checkOrgList) {
-                        coreSafecheckPlanToCheckOrgMapper.insert(new CoreSafecheckPlanToCheckOrg(p.getId(), org.getOrgId()));
+            }
+            //再处理检查机构关系
+            List<CoreSafecheckPlanToExecOrg> execOrgList = coreSafecheckPlanToExecOrgMapper.selectList(new LambdaQueryWrapper<CoreSafecheckPlanToExecOrg>().eq(CoreSafecheckPlanToExecOrg::getPlanId, coreSafecheckPlan.getId()));
+            if (execOrgList != null) {
+                coreSafecheckPlanToExecOrgMapper.deleteCoreSafecheckPlanToExecOrgByPlanId(p.getId());
+                for (CoreSafecheckPlanToExecOrg org :
+                        execOrgList) {
+                    coreSafecheckPlanToExecOrgMapper.insert(new CoreSafecheckPlanToExecOrg(p.getId(), org.getOrgId()));
 
-                    }
                 }
-                //再处理子计划检查要点关系
-                //查询计划id为当前父计划的id,所属机构id为当前父计划所属机构id的数据
-                List<CoreSafecheckPlanToPoint> rpList = coreSafecheckPlanToPointMapper.selectList(new LambdaQueryWrapper<CoreSafecheckPlanToPoint>().eq(CoreSafecheckPlanToPoint::getPlanId, coreSafecheckPlan.getId()).eq(CoreSafecheckPlanToPoint::getOfOrgId, coreSafecheckPlan.getPlanOfOrgId()));
-                if (rpList != null) {
-                    coreSafecheckPlanToPointMapper.delete(new LambdaQueryWrapper<CoreSafecheckPlanToPoint>().eq(CoreSafecheckPlanToPoint::getPlanId, p.getId()).eq(CoreSafecheckPlanToPoint::getOfOrgId, coreSafecheckPlan.getPlanOfOrgId()));
-                    for (CoreSafecheckPlanToPoint s :
-                            rpList) {
-                        coreSafecheckPlanToPointMapper.insert(new CoreSafecheckPlanToPoint(p.getId(), s.getPointId(), s.isPointScan(), s.isRequired(), s.getOfOrgId()));
+            }
+            //再处理受检机构关系
+            List<CoreSafecheckPlanToCheckOrg> checkOrgList = coreSafecheckPlanToCheckOrgMapper.selectList(new LambdaQueryWrapper<CoreSafecheckPlanToCheckOrg>().eq(CoreSafecheckPlanToCheckOrg::getPlanId, coreSafecheckPlan.getId()));
+            if (checkOrgList != null) {
+                coreSafecheckPlanToCheckOrgMapper.deleteCoreSafecheckPlanToCheckOrgByPlanId(p.getId());
+                for (CoreSafecheckPlanToCheckOrg org :
+                        checkOrgList) {
+                    coreSafecheckPlanToCheckOrgMapper.insert(new CoreSafecheckPlanToCheckOrg(p.getId(), org.getOrgId()));
 
-                    }
                 }
-                //如果计划是编辑全部,代表不存在已完成或者逾期的任务,需要删除重新生成
-                if (coreSafecheckPlan.getHasEdit() == null&& coreSafecheckPlan.isBuildTaskNow()&&coreSafecheckPlan.getPlanStatus()==1) {
-                    coreSafetyTaskMapper.delete(new LambdaQueryWrapper<CoreSafetyTask>().eq(CoreSafetyTask::getPlanId, p.getId()).in(CoreSafetyTask::getStatus, 1, 2));
-                } else {
-                    //否则代表编辑名称,需要同步未进行的任务名称
-                    CoreSafetyTask temp = new CoreSafetyTask();
-                    temp.setTitle(coreSafecheckPlan.getPlanName());
-                    coreSafetyTaskMapper.update(temp, new LambdaQueryWrapper<CoreSafetyTask>().eq(CoreSafetyTask::getPlanId, p.getId()).in(CoreSafetyTask::getStatus, 1, 2));
+            }
+            //再处理子计划检查要点关系
+            //查询计划id为当前父计划的id,所属机构id为当前父计划所属机构id的数据
+            List<CoreSafecheckPlanToPoint> rpList = coreSafecheckPlanToPointMapper.selectList(new LambdaQueryWrapper<CoreSafecheckPlanToPoint>().eq(CoreSafecheckPlanToPoint::getPlanId, coreSafecheckPlan.getId()).eq(CoreSafecheckPlanToPoint::getOfOrgId, coreSafecheckPlan.getPlanOfOrgId()));
+            if (rpList != null) {
+                coreSafecheckPlanToPointMapper.delete(new LambdaQueryWrapper<CoreSafecheckPlanToPoint>().eq(CoreSafecheckPlanToPoint::getPlanId, p.getId()).eq(CoreSafecheckPlanToPoint::getOfOrgId, coreSafecheckPlan.getPlanOfOrgId()));
+                for (CoreSafecheckPlanToPoint s :
+                        rpList) {
+                    coreSafecheckPlanToPointMapper.insert(new CoreSafecheckPlanToPoint(p.getId(), s.getPointId(), s.isPointScan(), s.isRequired(), s.getOfOrgId()));
 
                 }
             }
             //如果计划是编辑全部,代表不存在已完成或者逾期的任务,需要删除重新生成
-            if (coreSafecheckPlan.getHasEdit() == null&& coreSafecheckPlan.isBuildTaskNow()&&coreSafecheckPlan.getPlanStatus()==1) {
-                coreSafetyTaskMapper.delete(new LambdaQueryWrapper<CoreSafetyTask>().eq(CoreSafetyTask::getPlanId, coreSafecheckPlan.getId()).in(CoreSafetyTask::getStatus,1,2));
+            if (coreSafecheckPlan.getHasEdit() == null && coreSafecheckPlan.isBuildTaskNow() && coreSafecheckPlan.getPlanStatus() == 1) {
+                coreSafetyTaskMapper.delete(new LambdaQueryWrapper<CoreSafetyTask>().eq(CoreSafetyTask::getPlanId, p.getId()).in(CoreSafetyTask::getStatus, 1, 2));
             } else {
                 //否则代表编辑名称,需要同步未进行的任务名称
                 CoreSafetyTask temp = new CoreSafetyTask();
                 temp.setTitle(coreSafecheckPlan.getPlanName());
-                coreSafetyTaskMapper.update(temp, new LambdaQueryWrapper<CoreSafetyTask>().eq(CoreSafetyTask::getPlanId, coreSafecheckPlan.getId()).in(CoreSafetyTask::getStatus, 1, 2));
+                coreSafetyTaskMapper.update(temp, new LambdaQueryWrapper<CoreSafetyTask>().eq(CoreSafetyTask::getPlanId, p.getId()).in(CoreSafetyTask::getStatus, 1, 2));
 
             }
+        }
+        //如果计划是编辑全部,代表不存在已完成或者逾期的任务,需要删除重新生成
+        if (coreSafecheckPlan.getHasEdit() == null && coreSafecheckPlan.isBuildTaskNow() && coreSafecheckPlan.getPlanStatus() == 1) {
+            coreSafetyTaskMapper.delete(new LambdaQueryWrapper<CoreSafetyTask>().eq(CoreSafetyTask::getPlanId, coreSafecheckPlan.getId()).in(CoreSafetyTask::getStatus, 1, 2));
+        } else {
+            //否则代表编辑名称,需要同步未进行的任务名称
+            CoreSafetyTask temp = new CoreSafetyTask();
+            temp.setTitle(coreSafecheckPlan.getPlanName());
+            coreSafetyTaskMapper.update(temp, new LambdaQueryWrapper<CoreSafetyTask>().eq(CoreSafetyTask::getPlanId, coreSafecheckPlan.getId()).in(CoreSafetyTask::getStatus, 1, 2));
+
+        }
     }
 
     /**
@@ -550,4 +568,143 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
     public int deleteCoreSafecheckPlanById(Long id) {
         return coreSafecheckPlanMapper.deleteById(id);
     }
+
+    @Async
+    @Override
+    public void buildPdf(Long taskId) {
+        CoreSafetyTask coreSafetyTask = coreSafetyTaskMapper.selectById(taskId);
+        createSafetyCheckRegisterBookPdf(coreSafetyTask);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRES_NEW)
+    public String createSafetyCheckRegisterBookPdf(CoreSafetyTask appSafetyCheckTask) {
+        SafeCheckTaskRegisterBookVo registerBookVo = buildSafetyCheckRegisterBookData(appSafetyCheckTask);
+        String url = this.createSafeCheckPdfNow(registerBookVo);
+        CoreRegisterBookPdf registerBookPdf = new CoreRegisterBookPdf();
+        registerBookPdf.setId(appSafetyCheckTask.getId());
+        registerBookPdf.setRegisterBookType(RegisterBookType.SAFE_CHECK_REPORT.getNum());
+        registerBookPdf.setDate(new Date());
+        SysOrg org = orgService.selectSysOrgById(registerBookVo.getOrgId(), SecurityConstants.INNER);
+        registerBookPdf.setOrgId(org.getId());
+        registerBookPdf.setOrgPath(org.getPath());
+        registerBookPdf.setFileUrl(url);
+        registerBookPdf.setFileName(StringUtils.substringAfterLast(url, "\\"));
+        registerBookPdf.setOrgName(registerBookVo.getOrgName());
+        registerBookPdfService.save(registerBookPdf);
+        CoreSafetyTask tem = new CoreSafetyTask();
+        tem.setId(appSafetyCheckTask.getId());
+        tem.setPdfUrl(url);
+        coreSafetyTaskMapper.updateById(tem);
+        return url;
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    public String createSafeCheckPdfNow(SafeCheckTaskRegisterBookVo data) {
+        return buildSafeCheckPdfData(data);
+    }
+
+    public static String getCacheDir() {
+        String resource = "cache";
+        File file = new File(resource);
+        if (!file.exists()) {
+            file.mkdirs();
+        }
+
+        return resource;
+    }
+
+    private String generateFilePath(String fileName) {
+        final String resource = getCacheDir();
+        return resource + File.separator + fileName;
+    }
+
+    private String buildSafeCheckPdfData(SafeCheckTaskRegisterBookVo data) {
+
+        String fileOrgName = registerBookPdfService.getFileOrgName(data.getOrgId());
+        String fileName = fileOrgName + "_" + RegisterBookType.SAFE_CHECK_REPORT.getText()+ "_" + DateUtil.format(new Date(), "yyyyMMddHHmmss") + ".pdf";
+
+        data.setDest(fileName);
+        //新方式生成pdf
+        try {
+            //返回相对地址
+            return fileService.generateSafeCheckPdf(data).getData();
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+
+    private String getParentName(Long parentId, String name) {
+        SysOrg org = orgService.selectSysOrgById(parentId, SecurityConstants.INNER);
+        if (org != null && org.getParentId() == -1) {
+            return ObjectUtil.isEmpty(name) ? org.getName() : name;
+        }
+        if (org != null) {
+            if (ObjectUtil.isNotNull(name)) {
+                name = this.getParentName(org.getParentId(), org.getName() + "/" + name);
+            }
+            if (ObjectUtil.isNull(name)) {
+                name = this.getParentName(org.getParentId(), org.getName());
+            }
+        } else {
+            String string = name.subSequence(0, name.length() - 1).toString();
+            name = StringUtils.substringAfter(string, "/");
+        }
+        return name;
+    }
+
+    public SafeCheckTaskRegisterBookVo buildSafetyCheckRegisterBookData(CoreSafetyTask appSafetyCheckTask) {
+        SafeCheckTaskRegisterBookVo registerBookVo = new SafeCheckTaskRegisterBookVo();
+        registerBookVo.setTaskTitle(appSafetyCheckTask.getTitle() + getRegisterBookCycleText(Math.toIntExact(appSafetyCheckTask.getCheckCycle()), appSafetyCheckTask.getSubmitTime()));
+        final SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日");
+        String dateStr = format.format(appSafetyCheckTask.getSubmitTime());
+        registerBookVo.setDateStr(dateStr);
+        registerBookVo.setCheckOrgId(appSafetyCheckTask.getCheckOrgId());
+        registerBookVo.setCheckOrgName(appSafetyCheckTask.getCheckOrgName());
+        registerBookVo.setOrgId(appSafetyCheckTask.getOrgId());
+        registerBookVo.setOrgName(appSafetyCheckTask.getOrgName());
+        String checkUserInfo = appSafetyCheckTask.getSubmitBy();
+        registerBookVo.setCheckUserInfo(checkUserInfo);
+
+        List<CheckDataVo> pointCheckDataList = new ArrayList<>();
+
+        List<AppTaskRegisterPointVo> appTaskRegisterPointVos = coreSafetyTaskMapper.selectPointByTask(appSafetyCheckTask.getId());
+        for (AppTaskRegisterPointVo vo :
+                appTaskRegisterPointVos) {
+            CheckDataVo v = new CheckDataVo();
+            v.setItemName(vo.getItemName());
+            v.setPointName(vo.getPointName());
+            v.setResRemark(vo.getRemark());
+            pointCheckDataList.add(v);
+        }
+
+        registerBookVo.setCheckDatas(pointCheckDataList);
+        return registerBookVo;
+    }
+
+    private String getRegisterBookCycleText(int cycle, Date checkDate) {
+
+
+        String cycleText = StringUtil.EMPTY_STRING;
+        DateHelper dh = new DateHelper(checkDate);
+        switch (cycle) {
+            case 2:// 每月
+                SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月");
+                cycleText = sdf.format(checkDate);
+                return MessageFormat.format("({0})", cycleText);
+            case 3:// 每季
+                cycleText = dh.getYear() + "年第" + dh.getQuarter() + "季度";
+                return MessageFormat.format("({0})", cycleText);
+            case 4:// 每半年
+                cycleText = dh.getYear() + "年" + (dh.getHalfyear() == 1 ? "上半年" : "下半年");
+                return MessageFormat.format("({0})", cycleText);
+            case 5:// 每年
+            case 6:// 无周期
+            case 1:// 每周
+            case 0:// 每日
+            default:
+                return StringUtil.EMPTY_STRING;
+        }
+    }
 }

+ 7 - 3
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/service/impl/SafetyCheckRegisterSericeImpl.java

@@ -82,6 +82,8 @@ public class SafetyCheckRegisterSericeImpl extends ServiceImpl<CoreSafetyTaskMap
 
     @Resource
     RemoteUserService remoteUserService;
+    @Resource
+    CoreSafecheckPlanServiceImpl coreSafecheckPlanService;
 
     @Override
     public TableDataInfo appList(AppPageDto dto) {
@@ -282,8 +284,8 @@ public class SafetyCheckRegisterSericeImpl extends ServiceImpl<CoreSafetyTaskMap
             }
 
             roleIds = coreSafecheckPlanToRoleMapper.selectList(new LambdaQueryWrapper<CoreSafecheckPlanToRole>()
-                            .eq(CoreSafecheckPlanToRole::getPlanId, plan.getId())
-                            .select(CoreSafecheckPlanToRole::getRoleId))
+                    .eq(CoreSafecheckPlanToRole::getPlanId, plan.getId())
+                    .select(CoreSafecheckPlanToRole::getRoleId))
                     .stream()
                     .map(CoreSafecheckPlanToRole::getRoleId)
                     .collect(Collectors.toList());
@@ -432,7 +434,9 @@ public class SafetyCheckRegisterSericeImpl extends ServiceImpl<CoreSafetyTaskMap
         } else {
             updateTask(data, questions.size(), data.getIsSubmit());
         }
-
+        if (data.getIsSubmit() > 0) {
+            coreSafecheckPlanService.buildPdf(data.getId());
+        }
         return true;
     }
 

+ 46 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/vo/AppSafetyTaskDataRemarkDto.java

@@ -0,0 +1,46 @@
+package com.xunmei.core.safetyCheck.vo;
+
+import com.xunmei.core.safetyCheck.domain.CoreSafetyTaskDataRemarkimg;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+
+import java.util.List;
+
+/**
+ * 安全检查项表问题描述表(t_app_safety_task_data_remark)实体类
+ *
+ * @author oygj
+ * @since 2022-06-28 15:11:42
+ * @description 由 Mybatisplus Code Generator 创建
+ */
+@Data
+@Accessors(chain = true)
+@AllArgsConstructor
+@NoArgsConstructor
+
+@Builder
+public class AppSafetyTaskDataRemarkDto {
+
+    /**
+     * id
+     */
+	private Long id;
+    /**
+     * 检查项id
+     */
+    private Long taskDataId;
+    /**
+     * 检查任务id
+     */
+    private String taskId;
+    /**
+     * 问题描述
+     */
+    private String remark;
+
+    List<CoreSafetyTaskDataRemarkimg> imgList;
+
+}

+ 35 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/vo/PointDto.java

@@ -0,0 +1,35 @@
+package com.xunmei.core.safetyCheck.vo;
+
+import com.xunmei.core.safetyCheck.domain.CoreSafetyTaskDataNfc;
+import com.xunmei.core.safetyCheck.domain.CoreSafetyTaskDataRemarkimg;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+public class PointDto {
+    private Long pointId;
+    private int resValue;
+    private Long itemId;
+    private Long areaId;
+    private Long planId;
+    private String pointName;
+    private Long pointDataId;
+    private int resStatus;
+    private int timeType;
+    private String resTime;
+    private int pointnum;
+    private String itemName;
+    private String areaName;
+    private List<CoreSafetyTaskDataNfc> pointNfcList;
+    private List<CoreSafetyTaskDataRemarkimg> remarkList;
+
+
+}
+

+ 7 - 0
soc-modules/soc-modules-file/src/main/java/com/xunmei/file/controller/SysFileController.java

@@ -7,6 +7,7 @@ import com.xunmei.common.core.utils.file.FileUtils;
 import com.xunmei.file.service.ISysFileService;
 import com.xunmei.file.utils.DesUtil;
 import com.xunmei.file.vo.FileBase64Vo;
+import com.xunmei.system.api.domain.SafeCheckTaskRegisterBookVo;
 import com.xunmei.system.api.domain.SysFile;
 import io.swagger.annotations.ApiOperation;
 import org.slf4j.Logger;
@@ -146,6 +147,12 @@ public class SysFileController {
         return R.ok(sysFileService.generateResumptionPdf(data));
 
     }
+    @ApiOperation(value = "生成安全检查pdf")
+    @PostMapping(value = "/generateSafeCheckPdf")
+    R<String> generateSafeCheckPdf(@RequestBody SafeCheckTaskRegisterBookVo data) throws Exception {
+        return R.ok(sysFileService.generateSafeCheckPdf(data));
+
+    }
     @ApiOperation(value = "预案演练pdf")
     @PostMapping(value = "/generateDrillPdf")
     R<String> generateDrillPdf(@RequestBody Map<String, Object> data) throws Exception {

+ 2 - 0
soc-modules/soc-modules-file/src/main/java/com/xunmei/file/service/ISysFileService.java

@@ -3,6 +3,7 @@ package com.xunmei.file.service;
 import com.xunmei.common.core.domain.registerbook.dto.CoreRegisterBookPdfExportDto;
 import com.xunmei.common.core.domain.registerbook.dto.ExportPdfDto;
 import com.xunmei.file.vo.FileBase64Vo;
+import com.xunmei.system.api.domain.SafeCheckTaskRegisterBookVo;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletResponse;
@@ -49,6 +50,7 @@ public interface ISysFileService
     String generateEduTrainingPdf(Map<String, Object> data) throws Exception;
     String generateResumptionPdf(Map<String, Object> data) throws Exception;
 
+    String generateSafeCheckPdf(SafeCheckTaskRegisterBookVo data) throws Exception;
     String getRelativePath(String path);
 
     void getFileStream(String path, HttpServletResponse response);

+ 49 - 4
soc-modules/soc-modules-file/src/main/java/com/xunmei/file/service/LocalSysFileServiceImpl.java

@@ -4,13 +4,11 @@ import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.io.FileUtil;
 import cn.hutool.core.util.ObjectUtil;
-import com.alibaba.fastjson.JSON;
 import com.lowagie.text.*;
 import com.lowagie.text.pdf.BaseFont;
 import com.lowagie.text.pdf.PdfPCell;
 import com.lowagie.text.pdf.PdfPTable;
 import com.lowagie.text.pdf.PdfWriter;
-import com.xunmei.common.core.constant.CacheConstants;
 import com.xunmei.common.core.domain.IdName;
 import com.xunmei.common.core.domain.registerbook.dto.CoreRegisterBookPdfExportDto;
 import com.xunmei.common.core.domain.registerbook.dto.ExportPdfDto;
@@ -253,6 +251,53 @@ public class LocalSysFileServiceImpl implements ISysFileService {
     }
 
     @Override
+    public String generateSafeCheckPdf(SafeCheckTaskRegisterBookVo data) throws Exception {
+        PdfFilePathVo pathVo = getLocalFilePath(localFilePath, "safeCheck", data.getDest());
+        log.info("开始生成安全检查登记簿,当前绝对地址为:{}", pathVo.getAbsolutePath());
+        final ItextPdfTableVo pdfTableVo = PdfUtil.createTable(pathVo.getAbsolutePath(), 46, 7);
+        final Document document = pdfTableVo.getDocument();
+        final PdfWriter writer = pdfTableVo.getWriter();
+        final PdfPTable table = pdfTableVo.getTable();
+        final BaseFont fs = pdfTableVo.getFs();
+        final Font tableFont = pdfTableVo.getTableFont();
+        Font font = new Font(fs, 9, Font.NORMAL);
+
+        PdfUtil.dealHeader(document, fs, data.getTaskTitle(), 14);
+        //日期
+        String orgName = "被查支行: " + data.getOrgName();
+        String checkUser = "检查人签名: " + data.getCheckUserInfo();
+        String dateStr = data.getDateStr();
+        PdfPCell orgCell = new PdfPCell(new Phrase(orgName, font));
+        orgCell.setColspan(16);
+        orgCell.setRowspan(1);
+        orgCell.setBorder(Rectangle.NO_BORDER);
+        orgCell.setHorizontalAlignment(Element.ALIGN_LEFT);
+
+        PdfPCell checkUserCell = new PdfPCell(new Phrase(checkUser, font));
+        checkUserCell.setColspan(20);
+        checkUserCell.setRowspan(1);
+        checkUserCell.setBorder(Rectangle.NO_BORDER);
+        checkUserCell.setHorizontalAlignment(Element.ALIGN_CENTER);
+
+        PdfPCell dateStrCell = new PdfPCell(new Phrase(dateStr, font));
+        dateStrCell.setColspan(10);
+        dateStrCell.setRowspan(1);
+        dateStrCell.setBorder(Rectangle.NO_BORDER);
+        dateStrCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
+        table.addCell(orgCell);
+        table.addCell(checkUserCell);
+        table.addCell(dateStrCell);
+        Font titleFont = new Font(fs, 8, Font.NORMAL);
+        PdfUtil.dealSafeCheckPBody(document, table, tableFont, titleFont, data.getCheckDatas());
+
+        document.close();
+        writer.close();
+        log.info("安全检查登记簿生成结束,当前绝对地址为:{}", pathVo.getAbsolutePath());
+        //此处返回  /statics/edu/xxx.pdf
+        return this.prefix + pathVo.getRelativePath();
+    }
+
+    @Override
     public String generateDrillPdf(Map<String, Object> data) throws Exception {
         PdfFilePathVo pathVo = getLocalFilePath(localFilePath, "drill", data.get("fileName").toString());
         log.info("开始生成预案演练登记簿,当前绝对地址为:{}", pathVo.getAbsolutePath());
@@ -564,8 +609,8 @@ public class LocalSysFileServiceImpl implements ISysFileService {
             response.setContentType("application/octet-stream");
             response.setHeader("Content-Disposition", "attachment; filename=" + zipName);
             List<PdfToZipTempVo> pdfToZipTempVoList = registerBookPdfList.parallelStream().map(pdf -> {
-                        return resolve(pdf, pdfDto, count);
-                    }).filter(Objects::nonNull)
+                return resolve(pdf, pdfDto, count);
+            }).filter(Objects::nonNull)
                     .collect(Collectors.toList());
             count.await();
             pdfToZipTempVoList.removeIf(pdfToZipTempVo -> !FileUtil.exist(pdfToZipTempVo.getFile()));

+ 23 - 141
soc-modules/soc-modules-file/src/main/java/com/xunmei/file/utils/PdfUtil.java

@@ -6,15 +6,16 @@ import cn.hutool.extra.spring.SpringUtil;
 import com.lowagie.text.*;
 import com.lowagie.text.pdf.*;
 import com.xunmei.file.vo.ItextPdfTableVo;
+import com.xunmei.file.vo.PdfFilePathVo;
+import com.xunmei.system.api.domain.CheckDataVo;
 import com.xunmei.system.api.domain.ResumptionPdf;
+import com.xunmei.system.api.domain.SafeCheckTaskRegisterBookVo;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.context.ApplicationContext;
 import org.springframework.core.io.Resource;
 
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
+import java.io.*;
 import java.util.*;
 import java.util.List;
 
@@ -245,143 +246,7 @@ public class PdfUtil {
         document.add(foot);
 
 
-        //
-//
-////        //段落
-////        Paragraph p = new Paragraph("测试结算单", new Font(abf, 12, Font.BOLD));
-////        p.setAlignment(Paragraph.ALIGN_CENTER);
-////        document.add(p);
-//
-//        //表格
-//        table.setSpacingBefore(16f);//表格与上面段落的空隙
-//
-//        //表格列创建并赋值
-//        PdfPCell cell = new PdfPCell(new Phrase("单位名称:测试有限公司", font));
-//        cell.setHorizontalAlignment(Element.ALIGN_LEFT);//居中
-//        cell.disableBorderSide(13);//去除左右上边框,保留下边框
-//        cell.setColspan(4);//合并列数
-//        table.addCell(cell);
-//        cell = new PdfPCell(new Phrase("日期:2020-06-05", font));
-//        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
-//        cell.disableBorderSide(13);
-//        cell.setColspan(3);
-//        table.addCell(cell);
-//        cell = new PdfPCell(new Phrase("单位(元)", font));
-//        cell.setHorizontalAlignment(Element.ALIGN_LEFT);
-//        cell.disableBorderSide(13);
-//        cell.setColspan(1);
-//        table.addCell(cell);
-//        //首行
-//        cell = new PdfPCell(new Phrase("期间", font));
-//        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
-//        cell.setColspan(2);
-//        table.addCell(cell);
-//        cell = new PdfPCell(new Phrase("月份", font));
-//        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
-//        table.addCell(cell);
-//        cell = new PdfPCell(new Phrase("分类", font));
-//        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
-//        table.addCell(cell);
-//        cell = new PdfPCell(new Phrase("年利率", font));
-//        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
-//        table.addCell(cell);
-//        cell = new PdfPCell(new Phrase("日利率", font));
-//        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
-//        table.addCell(cell);
-//        cell = new PdfPCell(new Phrase("基数", font));
-//        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
-//        table.addCell(cell);
-//        cell = new PdfPCell(new Phrase("利息", font));
-//        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
-//        table.addCell(cell);
-//
-//        cell = new PdfPCell(new Phrase("起始日:2020-03-26\n" +
-//                "结束日:2020-04-25", font));
-//        cell.setPadding(16f);
-//        cell.setVerticalAlignment(Element.ALIGN_CENTER);
-//        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
-//        cell.setRowspan(3);
-//        cell.setColspan(2);
-//        table.addCell(cell);
-//        cell = new PdfPCell(new Phrase("4", font));
-//        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
-//        table.addCell(cell);
-//        cell = new PdfPCell(new Phrase("资金", font));
-//        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
-//        table.addCell(cell);
-//        cell = new PdfPCell(new Phrase("1.10%", font));
-//        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
-//        table.addCell(cell);
-//        cell = new PdfPCell(new Phrase("0.000031", font));
-//        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
-//        table.addCell(cell);
-//        cell = new PdfPCell(new Phrase("10598164.91", font));
-//        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
-//        table.addCell(cell);
-//        cell = new PdfPCell(new Phrase("325.01", font));
-//        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
-//        table.addCell(cell);
-//
-//        cell = new PdfPCell(new Phrase("4", font));
-//        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
-//        table.addCell(cell);
-//        cell = new PdfPCell(new Phrase("资金", font));
-//        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
-//        table.addCell(cell);
-//        cell = new PdfPCell(new Phrase("1.10%", font));
-//        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
-//        table.addCell(cell);
-//        cell = new PdfPCell(new Phrase("0.000031", font));
-//        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
-//        table.addCell(cell);
-//        cell = new PdfPCell(new Phrase("-", font));
-//        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
-//        table.addCell(cell);
-//        cell = new PdfPCell(new Phrase("-", font));
-//        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
-//        table.addCell(cell);
-//
-//        cell = new PdfPCell(new Phrase("4", font));
-//        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
-//        table.addCell(cell);
-//        cell = new PdfPCell(new Phrase("资金", font));
-//        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
-//        table.addCell(cell);
-//        cell = new PdfPCell(new Phrase("1.10%", font));
-//        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
-//        table.addCell(cell);
-//        cell = new PdfPCell(new Phrase("0.000031", font));
-//        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
-//        table.addCell(cell);
-//        cell = new PdfPCell(new Phrase("-", font));
-//        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
-//        table.addCell(cell);
-//        cell = new PdfPCell(new Phrase("-", font));
-//        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
-//        table.addCell(cell);
-//
-//        cell = new PdfPCell(new Phrase("合计", font));
-//        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
-//        cell.setColspan(7);
-//        table.addCell(cell);
-//        cell = new PdfPCell(new Phrase("325.01", font));
-//        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
-//        table.addCell(cell);
-//
-//        cell = new PdfPCell(new Phrase("会计制单:", font));
-//        cell.setHorizontalAlignment(Element.ALIGN_LEFT);
-//        cell.disableBorderSide(14);
-//        cell.setColspan(4);
-//        table.addCell(cell);
-//        cell = new PdfPCell(new Phrase("复核:", font));
-//        cell.setHorizontalAlignment(Element.ALIGN_LEFT);
-//        cell.disableBorderSide(14);
-//        cell.setColspan(4);
-//        table.addCell(cell);
-//        table.setSpacingBefore(16f);
-//
-//
-//        document.add(table);
+
     }
 
     public static String getLineStr(String str) {
@@ -568,4 +433,21 @@ public class PdfUtil {
             throw new RuntimeException(e);
         }
     }
+
+    public static void dealSafeCheckPBody(Document document, PdfPTable table, Font tableFont, Font tableTitleFont, List<CheckDataVo> data) throws DocumentException {
+        PdfUtil.createPDFCell(tableTitleFont, table, "序号", Element.ALIGN_MIDDLE, 2, 0);
+        PdfUtil.createPDFCell(tableTitleFont, table, "检查内容", Element.ALIGN_MIDDLE, 5, 0);
+        PdfUtil.createPDFCell(tableTitleFont, table, "主要指标描述情况", Element.ALIGN_MIDDLE, 19, 0);
+        PdfUtil.createPDFCell(tableTitleFont, table, "检查情况", Element.ALIGN_MIDDLE, 5, 0);
+        PdfUtil.createPDFCell(tableTitleFont, table, "存在的问题及整改意见", Element.ALIGN_MIDDLE, 15, 0);
+//        List<Object> dataList = (List<Object>) data.get("content");
+        for (int i = 1; i <= data.size(); i++) {
+            PdfUtil.createPDFCell(tableFont, table, String.valueOf(i), Element.ALIGN_MIDDLE, 2, 0, 10);
+            PdfUtil.createPDFCell(tableFont, table, data.get(i - 1).getItemName(), Element.ALIGN_LEFT, 5, 0, 10);
+            PdfUtil.createPDFCell(tableFont, table, data.get(i - 1).getPointName(), Element.ALIGN_LEFT, 19, 0, 10);
+            PdfUtil.createPDFCell(tableFont, table, StringUtils.isEmpty(data.get(i - 1).getResRemark()) ? "√" : "×", Element.ALIGN_MIDDLE, 5, 0, 10);
+            PdfUtil.createPDFCell(tableFont, table, StringUtils.isEmpty(data.get(i - 1).getResRemark()) ? "" : data.get(i - 1).getResRemark(), Element.ALIGN_LEFT, 15, 0, 10);
+        }
+        document.add(table);
+    }
 }

+ 6 - 6
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/controller/SysDeptController.java

@@ -156,7 +156,7 @@ public class SysDeptController extends BaseController {
      */
     @GetMapping("/deptTree/hangshe")
     public AjaxResult hangsheDeptTree() {
-        return success(deptService.selectTreeByOrgType(false,false,OrgTypeEnum.HANG_SHE));
+        return success(deptService.selectTreeByOrgType(false, false, OrgTypeEnum.HANG_SHE));
     }
 
     /**
@@ -172,7 +172,7 @@ public class SysDeptController extends BaseController {
      */
     @GetMapping("/deptTree/wholetree/bytype")
     public AjaxResult wholeTreeByType(@RequestParam Integer orgType) {
-        return success(deptService.selectTreeByOrgType(true,true,OrgTypeEnum.getOrgTypeEnum(orgType)));
+        return success(deptService.selectTreeByOrgType(true, true, OrgTypeEnum.getOrgTypeEnum(orgType)));
     }
 
     @PostMapping("/deptTree/business")
@@ -343,19 +343,19 @@ public class SysDeptController extends BaseController {
     @InnerAuth
     @GetMapping("/findByOrgTypeAndParent")
     List<SysOrg> findByOrgTypeAndParent(Integer orgType, String path) {
-        return orgService.findByOrgTypeAndParent(orgType,path);
+        return orgService.findByOrgTypeAndParent(orgType, path);
     }
 
 
     @ApiOperation(value = "获取机构查询参数")
     @PostMapping("/selectOrgTreeReq")
-    R<OrgTreeResp>  getOrgTreeResp(@RequestBody OrgTreeReq orgTreeReq){
+    R<OrgTreeResp> getOrgTreeResp(@RequestBody OrgTreeReq orgTreeReq) {
         return R.ok(orgService.getOrgTreeReq(orgTreeReq));
     }
 
-    @GetMapping("/dept/selectOrgNameByPath")
+    @GetMapping("/selectOrgNameByPath")
     @InnerAuth
-    String selectOrgNameByPath(@RequestParam("orgId") Long orgId) {
+    String selectOrgNameByPath(Long orgId) {
         return orgService.selectOrgNameByPath(orgId);
     }
 }

+ 2 - 2
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysOrgServiceImpl.java

@@ -419,7 +419,7 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
                 .flatMap(Collection::stream)
                 .map(Long::valueOf)
                 .distinct().
-                collect(Collectors.toList());
+                        collect(Collectors.toList());
 
         return sysOrgMapper.selectList(new LambdaQueryWrapper<SysOrg>()
                 .in(SysOrg::getId, orgIdList)
@@ -571,7 +571,7 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
         List<Long> collect = Arrays.stream(first.get().getPath().split("-")).map(Long::valueOf).collect(Collectors.toList());
         List<String> list = new ArrayList<>();
         collect.forEach(id -> {
-            orgCache.stream().filter(org -> org.getId().equals(id)).findFirst().ifPresent(org -> list.add(org.getName()));
+            orgCache.stream().filter(org -> org.getId().equals(id)).findFirst().ifPresent(org -> list.add(org.getShortName()));
         });
         return String.join("_", list);
     }