From 6795b4d0da75c07887c3e48de1e88122eef2b060 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Tue, 30 Jan 2024 18:00:38 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=86=E7=B1=BB=E6=A0=91=E6=A0=87=E5=87=86?= =?UTF-8?q?=E6=B3=95=E8=A7=84=E5=9B=9E=E5=86=99=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/jero/config/shiro/ShiroConfig.java | 2 + .../srms/controller/SrmsApiController.java | 6 +- .../docking/srms/entity/LawsPartStandard.java | 15 +-- .../srms/mapper/LawsStandardMapper.java | 12 +++ .../srms/mapper/xml/LawsStandardMapper.xml | 26 +++++- .../docking/srms/service/SrmsApiService.java | 13 ++- .../srms/service/impl/SrmsApiServiceImpl.java | 93 +++++++++++++++++-- .../src/main/resources/application-dev.yml | 2 + 8 files changed, 148 insertions(+), 21 deletions(-) diff --git a/laws-base/laws-base-core/src/main/java/com/jero/config/shiro/ShiroConfig.java b/laws-base/laws-base-core/src/main/java/com/jero/config/shiro/ShiroConfig.java index d4a2b16c..28ea4cc8 100644 --- a/laws-base/laws-base-core/src/main/java/com/jero/config/shiro/ShiroConfig.java +++ b/laws-base/laws-base-core/src/main/java/com/jero/config/shiro/ShiroConfig.java @@ -160,6 +160,8 @@ public class ShiroConfig { filterChainDefinitionMap.put("/srms/getByLawsSystem", "anon"); // 分页查询标准数据 filterChainDefinitionMap.put("/srms/getByLawsStandardPage", "anon"); + // 分页查询标准数据 + filterChainDefinitionMap.put("/srms/syncPartData", "anon"); // 添加自己的过滤器并且取名为jwt Map filterMap = new HashMap<>(1); diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/controller/SrmsApiController.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/controller/SrmsApiController.java index f1ac16ed..9a20b4dc 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/controller/SrmsApiController.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/controller/SrmsApiController.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.jero.common.api.vo.Result; import com.jero.common.aspect.annotation.AutoLog; import com.jero.common.constant.CommonConstant; +import com.jero.modules.docking.srms.entity.LawsPartStandard; import com.jero.modules.docking.srms.service.SrmsApiService; import com.jero.modules.docking.srms.vo.ByFileRows; import com.jero.modules.docking.srms.vo.StandardPageVO; @@ -158,7 +159,10 @@ public class SrmsApiController { } } - + @PostMapping("/syncPartStandard") + public Result syncPartStandard(){ + return srmsApiService.syncPartStandard(); + } // @ApiOperation("E采通获取标准信息") @AutoLog(value = "E采通获取标准信息") diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/entity/LawsPartStandard.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/entity/LawsPartStandard.java index c279c662..466a4b42 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/entity/LawsPartStandard.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/entity/LawsPartStandard.java @@ -24,15 +24,18 @@ public class LawsPartStandard implements Serializable { @TableId(type = IdType.ASSIGN_ID) @ApiModelProperty(value = "主键ID") private String id; + /**标准id*/ + @ApiModelProperty(value = "标准id") + private String standardId; /**分类内部码*/ @ApiModelProperty(value = "分类内部码") private String partCategoryNum; - /**分类名称 (编号+名称)*/ - @ApiModelProperty(value = "分类名称 (编号+名称)") - private String partCategoryName; - /**父级分类内部码(根节点0)*/ - @ApiModelProperty(value = "父级分类内部码(根节点0)") - private String parentNum; + /**标准分类:设计规范:1释放规范:2*/ + @ApiModelProperty(value = "标准分类:设计规范:1释放规范:2") + private String standardPdmType; + /**标准编号*/ + @ApiModelProperty(value = "标准编号") + private String standardNumber; /**备用字段1*/ @ApiModelProperty(value = "备用字段1") private String remark1; diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/LawsStandardMapper.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/LawsStandardMapper.java index a92ab4a3..1e0e3ff5 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/LawsStandardMapper.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/LawsStandardMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Constants; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.jero.modules.docking.srms.entity.LawsPartStandard; import com.jero.modules.docking.srms.vo.ByFileRows; import com.jero.modules.docking.srms.vo.StandardPageVO; import com.jero.modules.docking.srms.vo.StandardVO; @@ -54,4 +55,15 @@ public interface LawsStandardMapper{ */ void updatePartParentId(); + /** + * 获取所有 标准分类: + * 设计规范:1 + * 释放规范:2 (系统中编码为4) + * @author LQT + * @date 2024/1/30 16:51 + * @param + * @return void + */ + List getSyncPartStandard(); + } diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/xml/LawsStandardMapper.xml b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/xml/LawsStandardMapper.xml index c26ce392..f06f508e 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/xml/LawsStandardMapper.xml +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/xml/LawsStandardMapper.xml @@ -141,8 +141,32 @@ - + update laws_part_name l1 set parent_id = (select id from (select id from laws_part_name l2 where l2.code = l1.parent_code) aa) + diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/SrmsApiService.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/SrmsApiService.java index e88bd4a6..59603244 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/SrmsApiService.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/SrmsApiService.java @@ -80,11 +80,18 @@ public interface SrmsApiService { * 分类树标准法规回写 * @author LQT * @date 2024/1/26 16:05 - * @param json - * @param req * @return com.jero.common.api.vo.Result */ - Result syncPartStandard(JSONObject json, HttpServletRequest req); + Result syncPartStandard(); + + /** + * 发送分类树标准法规 + * @author LQT + * @date 2024/1/30 17:15 + * @param + * @return com.jero.common.api.vo.Result + */ + void sendPartStandard(); /** * E采通获取标准信息 diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/impl/SrmsApiServiceImpl.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/impl/SrmsApiServiceImpl.java index af1dd3f6..18e7abb1 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/impl/SrmsApiServiceImpl.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/impl/SrmsApiServiceImpl.java @@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.google.common.base.CaseFormat; @@ -16,8 +17,10 @@ import com.jero.common.util.RedisUtil; import com.jero.common.util.TokenUtils; import com.jero.modules.docking.srms.dto.ByTokenRequests; import com.jero.modules.docking.srms.dto.ProductDesign; +import com.jero.modules.docking.srms.entity.LawsPartStandard; import com.jero.modules.docking.srms.entity.LawsSysApiInfo; import com.jero.modules.docking.srms.mapper.LawsStandardMapper; +import com.jero.modules.docking.srms.service.ILawsPartStandardService; import com.jero.modules.docking.srms.service.ILawsSysApiInfoService; import com.jero.modules.docking.srms.service.SrmsApiService; import com.jero.modules.docking.srms.vo.*; @@ -43,11 +46,13 @@ import org.apache.shiro.SecurityUtils; import org.jetbrains.annotations.Nullable; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.web.client.RestTemplate; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; +import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.util.*; import java.util.stream.Collectors; @@ -83,6 +88,10 @@ public class SrmsApiServiceImpl implements SrmsApiService { private PartNameService partNameService; @Resource private ILawsSysApiInfoService lawsSysApiInfoService; + @Resource + private ILawsPartStandardService lawsPartStandardService; + @Resource + private RestTemplate restTemplate; @Value("${srms.font_url_pdf}") private String fontUrlPdf; @@ -98,6 +107,8 @@ public class SrmsApiServiceImpl implements SrmsApiService { private String ettonSysCode; @Value("${srms.etton_sys_user}") private String ettonSysUser; + @Value("${srms.part_standard_url}") + private String partStandardUrl; private static final String REQUESTS = "Requests"; private static final String SYS_ERR = "访问受限,token授权过期"; @@ -106,6 +117,12 @@ public class SrmsApiServiceImpl implements SrmsApiService { private static final String PUBLISH_OF_ORIGINAL = "publish_of_original"; private static final String X_ACCESS_TOKEN = "X-Access-Token"; private static final String ADD_NOT_NULL = "必填项不能为空"; + private static final String PART_CATEGROY_NUM = "PartCategroyNum"; + private static final String PART_CATEGROY_NAME = "PartCategroyName"; + private static final String PARENT_NUM = "ParentNum"; + + + @Override public Result getByToken(JSONObject json) { @@ -600,25 +617,29 @@ public class SrmsApiServiceImpl implements SrmsApiService { List listPartName = new ArrayList<>(); for (Object request : rows) { JSONObject js = JSON.parseObject(JSON.toJSONString(request)); - if(!js.containsKey("PartCategroyNum") || !js.containsKey("PartCategroyName") || !js.containsKey("ParentNum")){ + if(!js.containsKey(PART_CATEGROY_NUM) || !js.containsKey(PART_CATEGROY_NAME) || !js.containsKey(PARENT_NUM)){ return Result.error(ADD_NOT_NULL); } - if(StringUtils.isBlank(js.getString("PartCategroyNum")) - || StringUtils.isBlank(js.getString("PartCategroyName")) - || StringUtils.isBlank(js.getString("ParentNum"))){ + if(StringUtils.isBlank(js.getString(PART_CATEGROY_NUM)) + || StringUtils.isBlank(js.getString(PART_CATEGROY_NAME)) + || StringUtils.isBlank(js.getString(PARENT_NUM))){ return Result.error(ADD_NOT_NULL); } PartName partName = new PartName(); - partName.setCode(js.getString("PartCategroyNum")); - partName.setName(js.getString("PartCategroyName")); - partName.setParentCode(js.getString("ParentNum")); + partName.setCode(js.getString(PART_CATEGROY_NUM)); + partName.setName(js.getString(PART_CATEGROY_NAME)); + partName.setParentCode(js.getString(PARENT_NUM)); partName.setRemark1(js.getString("Remark1")); partName.setRemark2(js.getString("Remark2")); partName.setRemark3(js.getString("Remark3")); listPartName.add(partName); } if(!CollectionUtils.isEmpty(listPartName)){ - // todo 是否清空数据 + // 清空数据 + LambdaUpdateWrapper updatePartName = new LambdaUpdateWrapper<>(); + updatePartName.eq(PartName::getDelFlag,"0"); + partNameService.remove(updatePartName); + // 保存数据 partNameService.saveBatch(listPartName); // 更新父级id lawsStandardMapper.updatePartParentId(); @@ -631,8 +652,60 @@ public class SrmsApiServiceImpl implements SrmsApiService { } @Override - public Result syncPartStandard(JSONObject json, HttpServletRequest req) { - return null; + public Result syncPartStandard() { + // 清理数据 + LambdaUpdateWrapper updateLawsPartStandard = new LambdaUpdateWrapper<>(); + updateLawsPartStandard.eq(LawsPartStandard::getDelFlag,"0"); + lawsPartStandardService.remove(updateLawsPartStandard); + // 同步数据到分类树标准法规回写表 + List listLawsPartStandard = lawsStandardMapper.getSyncPartStandard(); + lawsPartStandardService.saveBatch(listLawsPartStandard); + return Result.OK("操作成功"); + } + + @Override + public void sendPartStandard() { + try { + List listLawsPartStandard = lawsPartStandardService.list(); + JSONObject all = new JSONObject(); + JSONObject messageHeader = new JSONObject(); + String date = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()); + // todo Interface_ID,UUID + messageHeader.put("Interface_ID",""); + messageHeader.put("UUID",""); + messageHeader.put("MessageId",""); + messageHeader.put("Sender","SRMS"); + messageHeader.put("Receiver","PDM"); + messageHeader.put("SendDate",date.substring(0,8)); + messageHeader.put("SendTime",date.substring(8)); + all.put("MessageHeader",messageHeader); + List listObj = new ArrayList<>(); + if(!CollectionUtils.isEmpty(listLawsPartStandard)){ + for (LawsPartStandard lawsPartStandard : listLawsPartStandard) { + JSONObject rows = new JSONObject(); + rows.put("PartCategroyNum",lawsPartStandard.getPartCategoryNum()); + rows.put("StandardPdmType",lawsPartStandard.getStandardPdmType()); + rows.put("StandardNumber",lawsPartStandard.getStandardNumber()); + rows.put("Remark1",lawsPartStandard.getRemark1()); + rows.put("Remark2",lawsPartStandard.getRemark2()); + rows.put("Remark3",lawsPartStandard.getRemark3()); + listObj.add(rows); + } + } + JSONObject requests = new JSONObject(); + requests.put("Rows",listObj); + all.put("Requests",requests); + // todo url + JSONObject reData = restTemplate.postForObject(partStandardUrl,all,JSONObject.class); + log.info(JSON.toJSONString(reData)); + if(!Objects.isNull(reData) && reData.containsKey("Success") && Objects.equals("true",reData.getString("Success"))){ + log.info("分类树标准法规回写接口成功"); + }else{ + log.error("分类树标准法规回写接口失败"); + } + }catch (Exception e){ + log.error("分类树标准法规回写接口失败",e); + } } @Override diff --git a/laws-single-startup/src/main/resources/application-dev.yml b/laws-single-startup/src/main/resources/application-dev.yml index 181c244f..97783207 100644 --- a/laws-single-startup/src/main/resources/application-dev.yml +++ b/laws-single-startup/src/main/resources/application-dev.yml @@ -493,3 +493,5 @@ srms: etton_sys_code: ETTON # E彩通默认账户 etton_sys_user: etton + # 分类树标准法规回写接口 url + part_standard_url: