Browse Source

检查跟踪增加所属地区、行社

jiawuxian 1 năm trước cách đây
mục cha
commit
db231bacdd

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

@@ -180,4 +180,7 @@ public interface RemoteOrgService {
 
     @GetMapping("/dept/selectOrgByPath/{orgId}")
     List<SysOrg> selectOrgByPath(@PathVariable("orgId") Long orgId);
+
+    @GetMapping("/dept/selectdqandhs")
+    List<SysOrg> selectDqAndHs( @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
 }

+ 5 - 0
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/factory/RemoteOrgFallbackFactory.java

@@ -202,6 +202,11 @@ public class RemoteOrgFallbackFactory implements FallbackFactory<RemoteOrgServic
             public List<SysOrg> selectOrgByPath(Long orgId) {
                 return new ArrayList<>();
             }
+
+            @Override
+            public  List<SysOrg> selectDqAndHs(String source){
+                return  new ArrayList<>();
+            }
         };
     }
 }

+ 1 - 8
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/controller/CoreSafetyTaskController.java

@@ -145,14 +145,7 @@ public class CoreSafetyTaskController extends BaseController {
             if (ObjectUtil.isEmpty(list)) {
                 throw new RuntimeException("导出数据为空!");
             }
-            AtomicInteger xh = new AtomicInteger();
-            xh.getAndIncrement();
-            list.forEach(e -> {
-                e.setIndex(xh.getAndIncrement());
-            });
-            if (list.size() > 10000) {
-                throw new RuntimeException("导出数据量过大(单次导出限量10000条数据),请填写条件分批导出");
-            }
+
 
 
         try {

+ 14 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/domain/CoreSafetyTask.java

@@ -67,6 +67,20 @@ public class CoreSafetyTask extends BaseEntity {
     private Long orgId;
 
     /**
+     * 受检机构所属地区
+     */
+    @ApiModelProperty(value = "受检机构所属地区")
+    @TableField(exist = false)
+    private String dqOrgName;
+
+    /**
+     * 受检机构所属行社
+     */
+    @ApiModelProperty(value = "受检机构所属行社")
+    @TableField(exist = false)
+    private String hsOrgName;
+
+    /**
      * 受检机构
      */
     @ApiModelProperty(value = "受检机构")

+ 67 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/service/impl/CoreSafetyTaskServiceImpl.java

@@ -5,6 +5,7 @@ import java.util.*;
 
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.NumberUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
@@ -15,8 +16,10 @@ 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.enums.drill.DrillDoStatus;
 import com.xunmei.common.core.utils.DateUtils;
+import com.xunmei.common.core.utils.StringUtils;
 import com.xunmei.common.core.vo.IdNameVo;
 import com.xunmei.common.security.utils.DictUtils;
 import com.xunmei.common.security.utils.SecurityUtils;
@@ -30,11 +33,15 @@ import com.xunmei.core.safetyCheck.vo.CheckNfcRecord;
 import com.xunmei.core.safetyCheck.vo.CoreSafetyTaskExport;
 import com.xunmei.core.safetyCheck.vo.plan.SafetyPlanRoleVo;
 import com.xunmei.system.api.Eto.RoleConditionEto;
+import com.xunmei.system.api.RemoteOrgService;
 import com.xunmei.system.api.RemoteRoleService;
+import com.xunmei.system.api.domain.SysOrg;
+import com.xunmei.system.api.vo.FindOrgTypes;
 import org.ehcache.config.ResourceType;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.concurrent.atomic.AtomicInteger;
 import java.util.stream.Collectors;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -59,6 +66,9 @@ public class CoreSafetyTaskServiceImpl extends ServiceImpl<CoreSafetyTaskMapper,
     @Autowired
     private RemoteRoleService remoteRoleService;
 
+    @Autowired
+    RemoteOrgService remoteOrgService;
+
     @Override
     public TableDataInfo<CoreSafetyTask> selectPage(CoreSafetyTask coreSafetyTask) {
         //未删除
@@ -93,6 +103,8 @@ public class CoreSafetyTaskServiceImpl extends ServiceImpl<CoreSafetyTaskMapper,
         page = coreSafetyTaskMapper.selectCoreSafetyTaskPage(page, coreSafetyTask);
         if (CollectionUtil.isNotEmpty(page.getRecords())) {
             List<Long> planIds = page.getRecords().stream().map(r -> r.getPlanId()).distinct().collect(Collectors.toList());
+            Map<Long, SysOrg> dqAndHs = remoteOrgService.selectDqAndHs(SecurityConstants.INNER)
+                    .stream().collect(Collectors.toMap(SysOrg::getId, o -> o));
 
             List<Long> tempTaskRoldIds = page.getRecords().stream().filter(r -> ObjectUtil.equal(r.getSourceType(), SafetyTaskSourceType.TempTask.getCode().longValue())).map(r -> r.getRoleId()).distinct().collect(Collectors.toList());
             final List<IdNameVo> tempTaskRoles = new ArrayList();
@@ -122,6 +134,26 @@ public class CoreSafetyTaskServiceImpl extends ServiceImpl<CoreSafetyTaskMapper,
                         r.getRoles().add(roleVo);
                     }
                 }
+
+                if (ObjectUtil.isNotEmpty(r.getOrgPath())) {
+                    List<Long> ids = Arrays.stream(r.getOrgPath().split("-"))
+                            .filter(id -> NumberUtil.isLong(id))
+                            .map(id -> NumberUtil.parseLong(id))
+                            .collect(Collectors.toList());
+
+                    for (Long id : ids) {
+                        if (!dqAndHs.containsKey(id)) {
+                            continue;
+                        }
+
+                        SysOrg org = dqAndHs.get(id);
+                        if (ObjectUtil.equal(org.getType(), OrgTypeEnum.HANG_SHE.getCode())) {
+                            r.setHsOrgName(org.getShortName());
+                        } else if (StringUtils.endsWith(org.getShortName(), "地区行社")) {
+                            r.setDqOrgName(org.getShortName());
+                        }
+                    }
+                }
             });
         }
 
@@ -266,6 +298,40 @@ public class CoreSafetyTaskServiceImpl extends ServiceImpl<CoreSafetyTaskMapper,
             coreSafetyTask.getRange().set(1, DateUtil.endOfDay(coreSafetyTask.getRange().get(1)));
         }
         coreSafetyTask.setGrantUserId(SecurityUtils.getUserId());
-        return coreSafetyTaskMapper.down(coreSafetyTask);
+        List<CoreSafetyTaskExport> list = coreSafetyTaskMapper.down(coreSafetyTask);
+        
+        if (ObjectUtil.isNotEmpty(list)) {
+            AtomicInteger xh = new AtomicInteger();
+            xh.getAndIncrement();
+            if (list.size() > 10000) {
+                throw new RuntimeException("导出数据量过大(单次导出限量10000条数据),请填写条件分批导出");
+            }
+            Map<Long, SysOrg> dqAndHs = remoteOrgService.selectDqAndHs(SecurityConstants.INNER)
+                    .stream().collect(Collectors.toMap(SysOrg::getId, o -> o));
+            list.forEach(e -> {
+                e.setIndex(xh.getAndIncrement());
+                if (ObjectUtil.isNotEmpty(e.getOrgPath())) {
+                    List<Long> ids = Arrays.stream(e.getOrgPath().split("-"))
+                            .filter(id -> NumberUtil.isLong(id))
+                            .map(id -> NumberUtil.parseLong(id))
+                            .collect(Collectors.toList());
+
+                    for (Long id : ids) {
+                        if (!dqAndHs.containsKey(id)) {
+                            continue;
+                        }
+
+                        SysOrg org = dqAndHs.get(id);
+                        if (ObjectUtil.equal(org.getType(), OrgTypeEnum.HANG_SHE.getCode())) {
+                            e.setHsOrgName(org.getShortName());
+                        } else if (StringUtils.endsWith(org.getShortName(), "地区行社")) {
+                            e.setDqOrgName(org.getShortName());
+                        }
+                    }
+                }
+            });
+        }
+
+        return list;
     }
 }

+ 21 - 4
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/vo/CoreSafetyTaskExport.java

@@ -40,20 +40,37 @@ public class CoreSafetyTaskExport {
     @ExcelProperty(value = "任务进度", index = 4,converter = SafeStatusConverter.class)
     private String status;
 
+    @ExcelIgnore
+    private String orgPath;
+
+    /**
+     * 受检机构所属地区
+     */
+    @ApiModelProperty(value = "受检机构所属地区")
+    @ExcelProperty(value = "所属地区", index = 5)
+    private String dqOrgName;
+
+    /**
+     * 受检机构所属行社
+     */
+    @ApiModelProperty(value = "受检机构所属行社")
+    @ExcelProperty(value = "行社", index = 6)
+    private String hsOrgName;
+
     @ApiModelProperty(value = "受检机构")
-    @ExcelProperty(value = "受检机构", index = 5)
+    @ExcelProperty(value = "受检机构", index = 7)
     @ColumnWidth(25)
     private String orgName;
 
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     @ApiModelProperty(value = "开始日期")
-    @ExcelProperty(value = "开始日期", index = 6)
+    @ExcelProperty(value = "开始日期", index = 8)
     @ColumnWidth(20)
     private Date planStartTime;
 
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     @ApiModelProperty(value = "截止日期")
-    @ExcelProperty(value = "截止日期", index = 7)
+    @ExcelProperty(value = "截止日期", index = 9)
     @ColumnWidth(20)
     private Date planEndTime;
 
@@ -69,6 +86,6 @@ public class CoreSafetyTaskExport {
     private String checkTeam;
 
     @ApiModelProperty(value = "异常数目")
-    @ExcelProperty(value = "隐患问题数", index = 8)
+    @ExcelProperty(value = "隐患问题数", index = 10)
     private String exceptionCount;
 }

+ 2 - 0
soc-modules/soc-modules-core/src/main/resources/mapper/safetycheck/CoreSafetyTaskMapper.xml

@@ -199,6 +199,7 @@
     <select id="selectCoreSafetyTaskPage" resultType="com.xunmei.core.safetyCheck.domain.CoreSafetyTask">
 SELECT t.id,
         t.title,
+        t.org_path,
         o1.`short_name` as org_name,
         o2.`short_name` as check_org_name,
         u1.name as submit_name,
@@ -912,6 +913,7 @@ SELECT t.id,
         t.id,
         t.title,
         t.check_org_name,
+        t.org_path,
         t.org_name,
         GROUP_CONCAT( DISTINCT r.role_name ) AS submit_name,
         t.plan_start_time,

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

@@ -481,4 +481,15 @@ public class SysDeptController extends BaseController {
     List<SysOrg> selectOrgByPath(@PathVariable("orgId") Long orgId) {
         return orgService.selectOrgByPath(orgId);
     }
+
+    /**
+     * 获取所有的地区及行社
+     *
+     * @return
+     */
+    @InnerAuth
+    @GetMapping("/selectdqandhs")
+    List<SysOrg> selectDqAndHs() {
+        return orgService.selectDqAndHs();
+    }
 }

+ 2 - 0
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/ISysOrgService.java

@@ -171,4 +171,6 @@ public interface ISysOrgService extends IService<SysOrg> {
     List<SysOrg> findByOrgTypesAndParent(FindOrgTypes types);
 
     List<SysOrg> selectOrgByPath(Long orgId);
+
+    List<SysOrg> selectDqAndHs();
 }

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

@@ -909,4 +909,15 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
         wrapper.select(SysOrg::getId, SysOrg::getName, SysOrg::getShortName, SysOrg::getType, SysOrg::getPath, SysOrg::getParentId);
         return sysOrgMapper.selectList(wrapper);
     }
+
+    @Override
+    public List<SysOrg> selectDqAndHs(){
+        LambdaQueryWrapper<SysOrg> wrapper = new LambdaQueryWrapper<>();
+        wrapper.and(w->w.eq(SysOrg::getType,OrgTypeEnum.HANG_SHE.getCode()).or().likeRight(SysOrg::getShortName,"地区行社"))
+                .eq(SysOrg::getDeleted,0)
+                .eq(SysOrg::getIsLock,0)
+                .select(SysOrg::getType,SysOrg::getShortName,SysOrg::getId);
+
+        return  sysOrgMapper.selectList(wrapper);
+    }
 }