From 4b2f6ddbf8de622c073b606cbe70e832f0c943bd Mon Sep 17 00:00:00 2001 From: du <1725534722@qq.com> Date: Tue, 11 Feb 2025 09:17:28 +0800 Subject: [PATCH] =?UTF-8?q?2.11=E6=96=B0=E5=A2=9E=E5=9C=A8=E7=BA=BF?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../declaration/entity/BmsTemplateRecord.java | 5 + .../entity/dto/BmsTemplateRecordAddDto.java | 2 + .../impl/BmsTemplateRecordServiceImpl.java | 5 +- .../ent/controller/JPolicyFileController.java | 129 +++++++++++------- .../jjh/ent/mapper/JMemorandumMapper.java | 2 +- .../jjh/ent/service/JMemorandumService.java | 2 +- .../service/impl/JMemorandumServiceImpl.java | 4 +- .../mapper/jjh/ent/JMemorandumMapper.xml | 18 ++- 8 files changed, 105 insertions(+), 62 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsTemplateRecord.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsTemplateRecord.java index d9faba4..bdcf3b6 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsTemplateRecord.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/BmsTemplateRecord.java @@ -9,6 +9,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; +import javax.validation.constraints.NotBlank; import java.time.LocalDate; /** @@ -85,4 +86,8 @@ public class BmsTemplateRecord extends BaseInfoEntity { @Excel(name = "是否需要审批", readConverterExp = "0=不需要审批,1=需要审批") @ApiModelProperty(value = "0=不需要审批,1=需要审批") private Integer isApproval; + + @NotBlank + @ApiModelProperty(value = "短信内容") + private String smsInfo; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsTemplateRecordAddDto.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsTemplateRecordAddDto.java index b37634c..c3cd0e9 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsTemplateRecordAddDto.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/entity/dto/BmsTemplateRecordAddDto.java @@ -6,6 +6,8 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; +import javax.validation.Valid; +import javax.validation.constraints.NotBlank; import java.util.List; /** diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsTemplateRecordServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsTemplateRecordServiceImpl.java index d1c24cb..f2e7423 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsTemplateRecordServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/service/impl/BmsTemplateRecordServiceImpl.java @@ -20,6 +20,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import javax.validation.Valid; import java.time.Year; import java.util.ArrayList; import java.util.List; @@ -188,7 +189,7 @@ public class BmsTemplateRecordServiceImpl extends ServiceImpl { batch.forEach(data -> { // 处理每条数据 - timingRemindImpl.getContact(data.getCreditCode(), "您好,在金鸡湖现代服务业品牌管理系统中,您有1条新消息,请及时登录平台进行处理,具体内容为:关于园区总部企业区外分支机构(包括子公司、分公司)营收占总部企业营收比重的摸排,详请登录金鸡湖现代服务业品牌管理系统https://idp.sipac.gov.cn/bms/#/login 首页查看待办事项,感谢支持!"); + timingRemindImpl.getContact(data.getCreditCode(), bmsTemplateRecordAddDto.getSmsInfo()); }); })); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/ent/controller/JPolicyFileController.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/ent/controller/JPolicyFileController.java index 5b28d60..fe84267 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/jjh/ent/controller/JPolicyFileController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/ent/controller/JPolicyFileController.java @@ -1,11 +1,13 @@ package com.ruoyi.jjh.ent.controller; import com.alibaba.excel.EasyExcel; +import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.exception.ServiceException; import com.ruoyi.jjh.declaration.entity.BmsDeclarationRecords; import com.ruoyi.jjh.ent.entity.JPolicyFile; import com.ruoyi.jjh.ent.entity.request.JPolicyFileRequest; @@ -24,8 +26,9 @@ import java.io.Serializable; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.util.ArrayList; -import java.util.Arrays; +import java.util.LinkedHashMap; import java.util.List; +import java.util.Map; /** * 政策文件(j_policy_file)表控制层 @@ -62,71 +65,97 @@ public class JPolicyFileController extends BaseController { @ApiOperation(value = "获取某个模板的已填报数据并且导出") @GetMapping("/getYtb") - public void getYtb(HttpServletResponse response, Long templateRecordId) { - List ytb = jMemorandumService.getYtb(templateRecordId); + @PreAuthorize("@ss.hasAnyRoles('admin,other-gov,gov')") + public void getYtb(HttpServletResponse response, @RequestParam(name = "list") List list1) { + List ytb = jMemorandumService.getYtb(list1); + int size1 = 0; + if(ytb!=null&& !ytb.isEmpty()){ + Long trId = ytb.get(0).getTemplateRecordId(); + for (BmsDeclarationRecords item : ytb) { + if (item.getTemplateRecordId().equals(trId)) { + size1++; + } + } + if(size1!=ytb.size()){ + throw new ServiceException("请选择同一在线模板数据!"); + } + }else { + throw new ServiceException("请选择企业填报数据!"); + } + List> data = new ArrayList<>(); - //单选的value - List value1 = new ArrayList<>(); - List> list = new ArrayList<>(); + List> final1 = new ArrayList<>(); + // 创建一个 Map 用于存储不同的列表,键为字符串表示“变量名”,值为列表 + Map> list = new LinkedHashMap<>(); List head0 = new ArrayList<>(); head0.add("企业名称"); List head1 = new ArrayList<>(); head1.add("统一社会信用代码"); - list.add(head0); - list.add(head1); + list.put("head0", head0); + list.put("head1", head1); + + //根据数据添加近excel for (int i = 0; i < ytb.size(); i++) { JSONArray js1 = JSONObject.parse(ytb.get(i).getTemplateJson()).getJSONArray("fields"); - JSONArray op1 = JSONObject.parse(js1.get(0).toString()).getJSONArray("options"); - if (i == 0) { - for (Object s1 : op1) { - List head2 = new ArrayList<>(); - JSONObject parse = JSONObject.parse(s1.toString()); - head2.add(parse.get("label").toString()); - value1.add(parse.get("value").toString()); - list.add(head2); - } - } - JSONArray jsonArray = JSONObject.parse(js1.get(0).toString()).getJSONArray("defaultValue"); - for (Object o : jsonArray) { - int i1 = value1.indexOf(o.toString()); - if (i1 != -1) { - if (i1==0) { - data.add(Arrays.asList(ytb.get(i).getMatter(), ytb.get(i).getCreditCode(), "是", "", "", "", "")); - } - if (i1==1) { - data.add(Arrays.asList(ytb.get(i).getMatter(), ytb.get(i).getCreditCode(), "", "是", "", "", "")); - } - if (i1==2) { - data.add(Arrays.asList(ytb.get(i).getMatter(), ytb.get(i).getCreditCode(), "", "", "是", "", "")); - } - if (i1==3) { - data.add(Arrays.asList(ytb.get(i).getMatter(), ytb.get(i).getCreditCode(), "", "", "", "是", "")); - } - if (i1==4) { - data.add(Arrays.asList(ytb.get(i).getMatter(), ytb.get(i).getCreditCode(), "", "", "", "", "是")); + //要添加的数据 + List addData = new ArrayList<>(); + addData.add(ytb.get(i).getMatter()); + addData.add(ytb.get(i).getCreditCode()); + for (int i1 = 0; i1 < js1.size(); i1++) { + //获取每个组件 + JSONObject lb = JSON.parseObject(js1.get(i1).toString()); + if ("el-select".equals(lb.get("tag").toString()) || "el-radio-group".equals(lb.get("tag").toString())) { + List head6 = new ArrayList<>(); + head6.add(lb.get("label").toString()); + list.put("headi" + i1, head6); + JSONArray op1 = JSONObject.parse(js1.get(i1).toString()).getJSONArray("options"); + for (Object s1 : op1) { + JSONObject parse = JSONObject.parse(s1.toString()); + if (parse.get("value").toString().equals(lb.get("defaultValue").toString())) { + addData.add(parse.get("label").toString()); + break; + } + } + } else if ("el-checkbox-group".equals(lb.get("tag").toString())) { + List head7 = new ArrayList<>(); + head7.add(lb.get("label").toString()); + list.put("headi" + i1, head7); + JSONArray op1 = JSONObject.parse(js1.get(i1).toString()).getJSONArray("options"); + StringBuilder as = new StringBuilder(); + JSONArray jsonArray = JSONObject.parse(js1.get(i1).toString()).getJSONArray("defaultValue"); + for (Object o : jsonArray) { + for (Object s1 : op1) { + JSONObject parse = JSONObject.parse(s1.toString()); + if(parse.get("value").toString().equals(o.toString())){ + as.append(parse.get("label")).append(","); + break; + } + } } + addData.add(as.toString()); + } else { + List head2 = new ArrayList<>(); + head2.add(lb.get("label").toString()); + list.put("head2" + i1, head2); + addData.add(lb.get("defaultValue").toString()); } } + data.add(addData); } - - - String fileName = "数据导出" + ".xlsx"; - try { - fileName = URLEncoder.encode(fileName, "UTF-8").replaceAll("\\+", "%20"); - } catch (UnsupportedEncodingException e) { - throw new RuntimeException("文件名编码失败", e); + for (Map.Entry> st : list.entrySet()) { + final1.add(st.getValue()); } - // 创建 Excel 写入流 - // 设置响应头,告诉浏览器下载文件 - // 设置响应头,告诉浏览器下载文件 - response.setContentType("application/vnd.ms-excel"); - response.setHeader("Content-Disposition", "attachment; filename=" + fileName); - try (ServletOutputStream outputStream = response.getOutputStream()) { + + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + response.setCharacterEncoding("utf-8"); + response.setHeader("Content-Disposition", "attachment; filename=data.xlsx"); + try { + ServletOutputStream outputStream = response.getOutputStream(); // 使用 EasyExcel 写数据到响应流 EasyExcel.write(outputStream) // 这里放入动态头 - .head(list).sheet("模板") + .head(final1).sheet("模板") // 当然这里数据也可以用 List> 去传入 .doWrite(data); } catch (IOException e) { diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/ent/mapper/JMemorandumMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/ent/mapper/JMemorandumMapper.java index 0590ba3..ceb1047 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/jjh/ent/mapper/JMemorandumMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/ent/mapper/JMemorandumMapper.java @@ -37,6 +37,6 @@ public interface JMemorandumMapper extends BaseMapper { List selectIdToAll(@Param("req") JMemorandumRequest jMemorandumRequest); - List getYtb(@Param("templateRecordId") Long templateRecordId); + List getYtb(@Param("list") List list); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/ent/service/JMemorandumService.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/ent/service/JMemorandumService.java index 6f59092..ef70b8d 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/jjh/ent/service/JMemorandumService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/ent/service/JMemorandumService.java @@ -35,6 +35,6 @@ public interface JMemorandumService extends IService { */ List selectIdToAll(JMemorandumRequest jMemorandumRequest); - List getYtb(Long templateRecordId); + List getYtb(List list); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/ent/service/impl/JMemorandumServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/ent/service/impl/JMemorandumServiceImpl.java index 77095ab..54acacd 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/jjh/ent/service/impl/JMemorandumServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/ent/service/impl/JMemorandumServiceImpl.java @@ -49,8 +49,8 @@ public class JMemorandumServiceImpl extends ServiceImpl getYtb(Long templateRecordId) { - return baseMapper.getYtb(templateRecordId); + public List getYtb(List list) { + return baseMapper.getYtb(list); } } diff --git a/ruoyi-admin/src/main/resources/mapper/jjh/ent/JMemorandumMapper.xml b/ruoyi-admin/src/main/resources/mapper/jjh/ent/JMemorandumMapper.xml index 4b77c8d..008efe7 100644 --- a/ruoyi-admin/src/main/resources/mapper/jjh/ent/JMemorandumMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/jjh/ent/JMemorandumMapper.xml @@ -37,12 +37,18 @@ SELECT a.credit_code, b.qymc as matter, - a.template_json + a.template_json, + a.template_record_id FROM - bms_declaration_records a - LEFT JOIN bms_enterprise_basic_info b ON a.credit_code = b.tyshxydm - WHERE - a.template_record_id = #{templateRecordId} - AND a.`status` = '6' + bms_declaration_records as a + LEFT JOIN bms_enterprise_basic_info as b ON a.credit_code = b.tyshxydm + + + and a.id in + + #{item} + + +