xujie 1 жил өмнө
parent
commit
b33c483c99

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

@@ -524,4 +524,22 @@ public class SysDeptController extends BaseController {
             response.setCharacterEncoding("utf-8");
         }
     }
+
+    /**
+     * 机构补充信息导出
+     * @param dept
+     * @param response
+     */
+    @RequiresPermissions("system:dept:exportDefenseDetailExtend")
+    @PostMapping("/exportDefenseDetailExtend")
+    public void exportDefenseDetailExtend(SysOrg dept, HttpServletResponse response) {
+        try {
+            orgService.exportDefenseDetailExtend(dept,response);
+        }catch (Exception e){
+            // 重置response
+            response.reset();
+            response.setContentType("application/json");
+            response.setCharacterEncoding("utf-8");
+        }
+    }
 }

+ 3 - 0
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/mapper/SysOrgMapper.java

@@ -9,6 +9,7 @@ import com.xunmei.system.api.vo.SysOrgVO;
 import com.xunmei.system.dto.SysOrgDto;
 import com.xunmei.system.util.ConstructionDetailExport;
 import com.xunmei.system.util.OrgExtendExport;
+import com.xunmei.system.util.OrgPhysicalDefenseConstructionDetailExport;
 import com.xunmei.system.util.OrgPhysicalDefenseConstructionExport;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Component;
@@ -199,4 +200,6 @@ public interface SysOrgMapper extends BaseMapper<SysOrg> {
     List<SysOrg> selectOrgs(@Param("org") SysOrgDto org);
 
     List<OrgExtendExport> exportOrgExtend(@Param("org") SysOrg org,@Param("typeList") List<Integer> typeList);
+
+    List<OrgPhysicalDefenseConstructionDetailExport> exportDefenseDetailExtend(@Param("org") SysOrg org, @Param("typeList") List<Integer> typeList);
 }

+ 3 - 1
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/ISysOrgService.java

@@ -186,5 +186,7 @@ public interface ISysOrgService extends IService<SysOrg> {
      */
     List<SysOrg> selectOrgList(SysOrgDto org);
 
-    void exportOrgExtend(SysOrg dept, HttpServletResponse response) throws IOException;
+    void exportOrgExtend(SysOrg dept, HttpServletResponse response) throws Exception;
+
+    void exportDefenseDetailExtend(SysOrg dept, HttpServletResponse response) throws Exception;
 }

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

@@ -1107,7 +1107,7 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
     }
 
     @Override
-    public void exportOrgExtend(SysOrg dept, HttpServletResponse response) throws IOException {
+    public void exportOrgExtend(SysOrg dept, HttpServletResponse response) throws Exception {
         List<Integer> typeList = new ArrayList<>();
         if (dept.getType() != null){
             typeList.add(dept.getType());
@@ -1233,4 +1233,49 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
                     .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).sheet("机构补充信息").doWrite(orgExtendExports);
         }
     }
+
+    @Override
+    public void exportDefenseDetailExtend(SysOrg dept, HttpServletResponse response) throws IOException {
+        List<Integer> typeList = new ArrayList<>();
+        if (dept.getType() != null){
+            typeList.add(dept.getType());
+        }else {
+            typeList.add(4);//营业网点
+            typeList.add(5);//离行式自助银行
+            typeList.add(6);//中心业务库
+            typeList.add(10);//监控中心
+        }
+        Long parentId = dept.getParentId();
+        if (parentId == null) {
+            parentId = SecurityUtils.getLoginUser().getSysUser().getOrgId();
+        }
+        SysOrg sysOrg = sysOrgMapper.selectById(parentId);
+        //查询条件
+        if (sysOrg != null) {
+            //下穿
+            if (dept.getCheckSub()) {
+                dept.setParentId(null);
+                dept.setPath(sysOrg.getPath());
+            } else {
+                dept.setPath(sysOrg.getPath());
+            }
+        }
+        List<OrgPhysicalDefenseConstructionDetailExport> detailExports= null;
+        detailExports = baseMapper.exportDefenseDetailExtend(dept, typeList);
+
+        AtomicInteger xh = new AtomicInteger();
+        xh.getAndIncrement();
+        detailExports.forEach(e -> {
+            e.setXh(String.valueOf(xh.getAndIncrement()));
+        });
+
+        // 设置响应头
+        response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("安全防范设施建设达标信息", "utf-8"));
+        response.setContentType("application/octet-stream;charset=UTF-8");
+        response.setCharacterEncoding("utf-8");
+
+        // 数据导出
+        EasyExcel.write(response.getOutputStream(), OrgPhysicalDefenseConstructionDetailExport.class)
+                .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).sheet("安全防范设施建设达标信息").doWrite(detailExports);
+    }
 }

+ 65 - 0
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/util/OrgPhysicalDefenseConstructionDetailExport.java

@@ -0,0 +1,65 @@
+package com.xunmei.system.util;
+
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author :
+ * @date :
+ */
+@Data
+@ColumnWidth(25) //列宽,最大值为255
+@HeadRowHeight(16) //表头行高
+@ContentRowHeight(16) //数据行高
+public class OrgPhysicalDefenseConstructionDetailExport {
+
+    @ExcelIgnore
+    private Long orgId;
+
+    @ExcelProperty(value = "序号", index = 0)
+    @TableField(exist = false)
+    private String xh;
+
+    @ExcelProperty(value = "地区", index = 1)
+    private String city;
+
+    @ExcelProperty(value = "行社", index = 2)
+    private String affiliatedBank;
+
+    @ExcelProperty(value = "机构简称", index = 3)
+    private String shortName;
+
+    @ExcelProperty(value = "地址", index = 4)
+    private String address;
+
+    @ExcelProperty(value = "机构类型", index = 5)
+    private String typeName;
+
+    @ExcelProperty(value = "GA38机构类型", index = 6)
+    private String extendTypeName;
+
+    @ExcelProperty(value = "GA38标准", index = 7)
+    private String standard;
+
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @ExcelProperty(value = "达标日期", index = 8)
+    private Date dateOfCompliance;
+
+    @ExcelProperty(value = "未达标原因", index = 9)
+    private String reason;
+
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @ExcelProperty(value = "计划达标日期", index = 10)
+    private Date dateOfComplete;
+
+    @ExcelProperty(value = "证书", index = 11,converter = ImgUrlConverter.class)
+    private String certificate;
+}

+ 35 - 0
soc-modules/soc-modules-system/src/main/resources/mapper/system/SysOrgMapper.xml

@@ -1380,5 +1380,40 @@ and a.org_path LIKE concat(#{orgPath}, '%')
                 </foreach>
             </if>
     </select>
+    <select id="exportDefenseDetailExtend" resultType="com.xunmei.system.util.OrgPhysicalDefenseConstructionDetailExport">
+        SELECT
+            b.id AS orgId,
+            b.affiliated_area AS city,
+            b.affiliated_bank AS affiliatedBank,
+            b.short_name AS shortName,
+            ( SELECT dict_label FROM sys_dict_data WHERE dict_type = 'sys_org_type' AND dict_value = b.type ) AS typeName,
+            b.address AS address,
+            ( SELECT dict_label FROM sys_dict_data WHERE dict_type = 'org_extend_type' AND dict_value = a.type ) AS extendTypeName,
+            ( SELECT dict_label FROM sys_dict_data WHERE dict_type = 'org_extend_standard' AND dict_value = a.standard ) AS standard,
+            a.date_of_compliance as dateOfCompliance,
+            a.reason as reason,
+            a.date_of_complete as dateOfComplete,
+            a.certificate as certificate
+        FROM
+            sys_org b
+            LEFT JOIN sys_org_physical_defense_construction a ON a.org_id = b.id
+        WHERE
+            b.deleted = 0
+            <if test="  org.checkSub != null and org.checkSub == true">
+                and b.path like concat(concat('%',#{org.path}),'%')
+            </if>
+            <if test="  org.checkSub != null and org.checkSub == false">
+                and b.path like concat('%',#{org.path})
+            </if>
+            <if test="  org.isLock != null ">
+                AND b.is_lock = #{org.isLock}
+            </if>
+            <if test="typeList != null and typeList.size > 0">
+                AND b.type IN
+                <foreach collection="typeList" item="orgType" open="(" separator="," close=")">
+                    #{orgType}
+                </foreach>
+            </if>
+    </select>
 
 </mapper>