feat: E采通对接 401 402接口
This commit is contained in:
+15
@@ -12,11 +12,13 @@ import com.jero.modules.activiti.process.esInitChange.entity.enums.ESPApplicatio
|
||||
import com.jero.modules.activiti.process.esInitChange.entity.enums.ESPChangeType;
|
||||
import com.jero.modules.activiti.process.esInitChange.entity.enums.ESPProjectType;
|
||||
import com.jero.modules.activiti.process.esInitChange.service.ProcessEsInitChangeService;
|
||||
import com.jero.modules.bindPart.docking.DockingService;
|
||||
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardPlan;
|
||||
import com.jero.modules.laws.enterprise.service.EnterpriseStandardPlanService;
|
||||
import com.jero.modules.laws.enterprise.util.BeanCopyUtils;
|
||||
import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard;
|
||||
import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService;
|
||||
import com.jero.modules.tag.enums.TableNameEnum;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.activiti.engine.delegate.DelegateExecution;
|
||||
import org.activiti.engine.delegate.ExecutionListener;
|
||||
@@ -25,6 +27,8 @@ import org.springframework.stereotype.Component;
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
|
||||
import static com.jero.modules.bindPart.docking.DockingServiceImpl.STANDARD_ABOLISH;
|
||||
|
||||
/**
|
||||
* @author: Mzaxd
|
||||
* @Date: 2023/10/10 14:14
|
||||
@@ -39,6 +43,9 @@ public class ProcessESAbolishEndListener implements ExecutionListener {
|
||||
@Resource
|
||||
private ProcessEsAbolishService esAbolishService;
|
||||
|
||||
@Resource
|
||||
private DockingService dockingService;
|
||||
|
||||
/**
|
||||
* 企标废止流程结束之后需要把标准状态设为废止
|
||||
* @param delegateExecution
|
||||
@@ -52,10 +59,18 @@ public class ProcessESAbolishEndListener implements ExecutionListener {
|
||||
abolishLambdaQueryWrapper.eq(ProcessEsAbolish::getProcessInstanceId, processInstanceId);
|
||||
ProcessEsAbolish abolish = esAbolishService.getOne(abolishLambdaQueryWrapper);
|
||||
String standNo = abolish.getStandardNumber();
|
||||
LambdaQueryWrapper<LawsEnterpriseStandard> esWrapper = new LambdaQueryWrapper<>();
|
||||
esWrapper.eq(LawsEnterpriseStandard::getStandardNumber, standNo);
|
||||
LawsEnterpriseStandard one = esService.getOne(esWrapper);
|
||||
log.info("企标废止流程监听执行器开始执行,企标编号为:{}", standNo);
|
||||
esService.update(new LambdaUpdateWrapper<LawsEnterpriseStandard>()
|
||||
.set(LawsEnterpriseStandard::getStandardState, StandardStateEnum.ABOLISH.getStateValue())
|
||||
.eq(LawsEnterpriseStandard::getStandardNumber, standNo));
|
||||
try {
|
||||
dockingService.sendStandardChangeToSCM(one.getId(), TableNameEnum.ENTERPRISE_STANDARDS.getValue(), STANDARD_ABOLISH, null);
|
||||
} catch (Exception e) {
|
||||
log.error("E采通同步标准信息出错", e);
|
||||
}
|
||||
log.info("企标废止流程结束监听执行器执行结束");
|
||||
}
|
||||
}
|
||||
|
||||
+189
@@ -0,0 +1,189 @@
|
||||
package com.jero.modules.bindPart.controller;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.common.api.vo.ResultCommon;
|
||||
import com.jero.common.aspect.annotation.AutoLog;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.common.util.MessageUtils;
|
||||
import com.jero.modules.bindPart.entity.BindPartStandardVO;
|
||||
import com.jero.modules.bindPart.entity.LawsBindPart;
|
||||
import com.jero.modules.bindPart.service.ILawsBindPartService;
|
||||
import com.jero.modules.laws.documenttool.service.IDocumentSplitService;
|
||||
import com.jero.modules.split.entity.SarFileSplitMenuEO;
|
||||
import com.jero.modules.split.page.SarFileSplitMenuEOPage;
|
||||
import com.jero.modules.split.service.ISarFileSplitMenuEOService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import io.swagger.annotations.ApiParam;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.poi.ss.formula.functions.T;
|
||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Slf4j
|
||||
@Api(tags="绑定零部件")
|
||||
@RestController
|
||||
@RequestMapping("/laws/bindPart")
|
||||
public class LawsBindPartController {
|
||||
|
||||
@Autowired
|
||||
private ILawsBindPartService lawsBindPartService;
|
||||
|
||||
@Resource
|
||||
private IDocumentSplitService documentSplitService;
|
||||
|
||||
@Resource
|
||||
private ISarFileSplitMenuEOService sarFileSplitMenuEOService;
|
||||
|
||||
|
||||
@AutoLog(value = "绑定零部件-分页列表查询")
|
||||
@ApiOperation(value="绑定零部件-分页列表查询", notes="绑定零部件-分页列表查询")
|
||||
@GetMapping(value = "/page")
|
||||
@RequiresPermissions("sys:bindingPart:search")
|
||||
public Result<IPage<LawsBindPart>> queryPageList(LawsBindPart lawsBindPart,
|
||||
@RequestParam(name="pageNo", defaultValue="1") @ApiParam("页码") Integer pageNo,
|
||||
@RequestParam(name="pageSize", defaultValue="10") @ApiParam("页面显示数量") Integer pageSize) {
|
||||
IPage<LawsBindPart> pageList= lawsBindPartService.queryPage(lawsBindPart, pageNo, pageSize);
|
||||
return Result.OK(pageList);
|
||||
}
|
||||
|
||||
@AutoLog(value = "绑定零部件-是否显示使用绑定关系")
|
||||
@ApiOperation(value="绑定零部件-是否显示使用绑定关系", notes="绑定零部件-是否显示使用绑定关系")
|
||||
@GetMapping(value = "/isShowUseBindRelation")
|
||||
public Result<?> isShowUseBindRelation(LawsBindPart lawsBindPart) {
|
||||
return Result.OK(lawsBindPartService.isShowUseBindRelation(lawsBindPart));
|
||||
}
|
||||
|
||||
@AutoLog(value = "绑定零部件-使用绑定关系")
|
||||
@ApiOperation(value="绑定零部件-使用绑定关系", notes="绑定零部件-使用绑定关系")
|
||||
@GetMapping(value = "/useBindRelation")
|
||||
public Result<?> useBindRelation(@RequestParam("id") String id) {
|
||||
lawsBindPartService.useBindRelation(id);
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加
|
||||
*
|
||||
* @param lawsBindPart
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "绑定零部件-添加")
|
||||
@ApiOperation(value="绑定零部件-添加", notes="绑定零部件-添加")
|
||||
@PostMapping(value = "/add")
|
||||
@RequiresPermissions("sys:bindingPart:add")
|
||||
public Result<T> add(@Validated @RequestBody LawsBindPart lawsBindPart) {
|
||||
lawsBindPartService.add(lawsBindPart);
|
||||
return Result.OK("操作成功!");
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
*
|
||||
* @param lawsBindPart
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "绑定零部件-编辑")
|
||||
@ApiOperation(value="绑定零部件-编辑", notes="绑定零部件-编辑")
|
||||
@PostMapping(value = "/edit")
|
||||
@RequiresPermissions("sys:bindingPart:edit")
|
||||
public Result<T> edit(@Validated @RequestBody LawsBindPart lawsBindPart) {
|
||||
lawsBindPartService.editById(lawsBindPart);
|
||||
return Result.OK("操作成功!");
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过id删除
|
||||
*
|
||||
* @param map
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "绑定零部件-通过id删除")
|
||||
@ApiOperation(value="绑定零部件-通过id删除", notes="绑定零部件-通过id删除")
|
||||
@PostMapping(value = "/delete")
|
||||
@RequiresPermissions("sys:bindingPart:delete")
|
||||
public Result<T> delete(@RequestBody Map<String, String> map) {
|
||||
if(!map.containsKey("id") || StringUtils.isEmpty(map.get("id"))){
|
||||
return Result.error("请选择数据!");
|
||||
}
|
||||
lawsBindPartService.deleteById(map.get("id"));
|
||||
return Result.OK("删除成功!");
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除
|
||||
*
|
||||
* @param map
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "绑定零部件-批量删除")
|
||||
@ApiOperation(value="绑定零部件-批量删除", notes="绑定零部件-批量删除")
|
||||
@PostMapping(value = "/deleteBatch")
|
||||
@RequiresPermissions("sys:bindingPart:batchDel")
|
||||
public Result<T> deleteBatch(@RequestBody Map<String, String> map) {
|
||||
if(!map.containsKey("ids") || StringUtils.isEmpty(map.get("ids"))){
|
||||
return Result.error("请选择数据!");
|
||||
}
|
||||
this.lawsBindPartService.deleteByIds(Arrays.asList(map.get("ids").split(",")));
|
||||
return Result.OK("批量删除成功!");
|
||||
}
|
||||
|
||||
/**
|
||||
* 选择标准
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "绑定零部件-选择标准")
|
||||
@ApiOperation(value="绑定零部件-选择标准", notes="绑定零部件-选择标准")
|
||||
@GetMapping(value = "/selectStandard")
|
||||
public Result<IPage<BindPartStandardVO>> selectStandard(BindPartStandardVO bindPartStandardVO,
|
||||
@RequestParam(name="pageNo", defaultValue="1") @ApiParam("页码") Integer pageNo,
|
||||
@RequestParam(name="pageSize", defaultValue="10") @ApiParam("页面显示数量") Integer pageSize) {
|
||||
IPage<BindPartStandardVO> pageList= lawsBindPartService.selectStandard(bindPartStandardVO, pageNo, pageSize);
|
||||
return Result.OK(pageList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 选择条款
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "绑定零部件-条款列表")
|
||||
@ApiOperation(value="绑定零部件-条款列表", notes="绑定零部件-条款列表")
|
||||
@PostMapping(value = "/selectClause")
|
||||
public Result<IPage<Map<String, Object>>> selectClause(@RequestBody Map<String, Object> parameter) {
|
||||
try {
|
||||
IPage<Map<String, Object>> data = documentSplitService.queryDocumentSplitDetail(parameter, false);
|
||||
return Result.OK(data);
|
||||
} catch (JeroBootException e){
|
||||
return Result.error(e.getMessage());
|
||||
} catch (Exception e){
|
||||
return Result.error(MessageUtils.getMessage(ResultCommon.ERROR));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 选择条款
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "绑定零部件-条款目录树")
|
||||
@ApiOperation(value="绑定零部件-条款目录树", notes="绑定零部件-条款目录树")
|
||||
@GetMapping(value = "/clauseTree")
|
||||
public Result<List<SarFileSplitMenuEO>> clauseTree(SarFileSplitMenuEOPage page) {
|
||||
page.setValidFlag("0");
|
||||
page.setOrderBy("display_seq asc");
|
||||
List<SarFileSplitMenuEO> getList = sarFileSplitMenuEOService.queryByList(page);
|
||||
return Result.OK(getList);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.jero.modules.bindPart.docking;
|
||||
|
||||
public interface DockingService {
|
||||
|
||||
/**
|
||||
* PDM验证零部件号是否可修改
|
||||
*
|
||||
* @return com.jero.common.api.vo.Result<java.util.List < com.alibaba.fastjson.JSONObject>>
|
||||
* @author CHH
|
||||
* @date 2024/4/28 15:08
|
||||
*/
|
||||
void validPartNoEdit(String partNo, String partName, String bindUserInfo);
|
||||
|
||||
/**
|
||||
* PDM校验某个零部件是否所属于某个零部件分类
|
||||
* @author CHH
|
||||
* @date 2024/4/28 15:08
|
||||
* @return com.jero.common.api.vo.Result<java.util.List<com.alibaba.fastjson.JSONObject>>
|
||||
*/
|
||||
boolean validPartBelong(String partNo, String partName, String partCategoryNum);
|
||||
|
||||
/**
|
||||
* E采通接收消息接口
|
||||
* @author CHH
|
||||
* @date 2024/5/20 15:08
|
||||
* @return com.jero.common.api.vo.Result<java.util.List<com.alibaba.fastjson.JSONObject>>
|
||||
*/
|
||||
void sendStandardChangeToSCM(String standardId, String standardType, String operateType, String bindPartId);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,280 @@
|
||||
package com.jero.modules.bindPart.docking;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.modules.bindPart.entity.LawsBindPart;
|
||||
import com.jero.modules.bindPart.service.ILawsBindPartService;
|
||||
import com.jero.modules.laws.standard.entity.LawsDomesticStandard;
|
||||
import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard;
|
||||
import com.jero.modules.laws.standard.entity.LawsOverseasStandard;
|
||||
import com.jero.modules.laws.standard.service.ILawsDomesticStandardService;
|
||||
import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService;
|
||||
import com.jero.modules.laws.standard.service.ILawsOverseasStandardService;
|
||||
import com.jero.modules.tag.enums.TableNameEnum;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.http.HttpEntity;
|
||||
import org.springframework.http.HttpHeaders;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.web.client.RestTemplate;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
public class DockingServiceImpl implements DockingService{
|
||||
|
||||
@Resource
|
||||
private RestTemplate restTemplate;
|
||||
@Resource
|
||||
private ILawsBindPartService lawsBindPartService;
|
||||
@Resource
|
||||
private ILawsEnterpriseStandardService esService;
|
||||
@Resource
|
||||
private ILawsDomesticStandardService gbService;
|
||||
@Resource
|
||||
private ILawsOverseasStandardService fbService;
|
||||
|
||||
@Value("${bindPart.pdm_Ip}")
|
||||
private String poIp;
|
||||
@Value("${bindPart.edit_valid_url}")
|
||||
private String editValidUrl;
|
||||
@Value("${bindPart.part_belong_url}")
|
||||
private String partBelongUrl;
|
||||
@Value("${srms.etton_message_url}")
|
||||
private String etton_message_url;
|
||||
@Value("${bindPart.auth_username}")
|
||||
private String authUsername;
|
||||
@Value("${bindPart.auth_password}")
|
||||
private String authPassword;
|
||||
|
||||
private static final String REQUESTS = "Requests";
|
||||
private static final String MESSAGE_HANDLER = "MessageHeader";
|
||||
private static final String STANDARD_NUMBER = "standardNumber";
|
||||
private static final String STANDARD_NAME = "standardName";
|
||||
public static final String BIND_RELATION_CHANGE = "1";
|
||||
public static final String STANDARD_EDIT = "2";
|
||||
public static final String STANDARD_ABOLISH = "3";
|
||||
|
||||
@Override
|
||||
public void validPartNoEdit(@NotNull String partNo, String partName, @NotNull String bindUserInfo) {
|
||||
JSONObject all = new JSONObject();
|
||||
all.put(MESSAGE_HANDLER, getMessageHandler("CNHTC_PO1000495", null, "PDM"));
|
||||
JSONObject requests = new JSONObject();
|
||||
requests.put("PartNum", partNo);
|
||||
requests.put("PartName", partName);
|
||||
requests.put("BindUserInfo", bindUserInfo);
|
||||
requests.put("Remark1", "");
|
||||
requests.put("Remark2", "");
|
||||
requests.put("Remark3", "");
|
||||
all.put(REQUESTS, requests);
|
||||
|
||||
// 创建 HttpEntity 包含请求体和头信息
|
||||
HttpHeaders headers = this.getBasicAuthHeaders();
|
||||
HttpEntity<String> entity = new HttpEntity<>(all.toString(), headers);
|
||||
// 打印完整的请求报文信息
|
||||
log.info("发送验证零部件是否可修改请求");
|
||||
log.info("IP: " + poIp + editValidUrl);
|
||||
log.info("Headers: " + headers);
|
||||
log.info("Request body: " + all);
|
||||
|
||||
JSONObject reData = restTemplate.postForObject(poIp + editValidUrl, entity, JSONObject.class);
|
||||
log.info("接收验证零部件是否可修改请求返回");
|
||||
log.info("返回报文: " + JSON.toJSONString(reData));
|
||||
JSONObject response = null;
|
||||
if (!Objects.isNull(reData) && reData.containsKey("Responses")) {
|
||||
response = reData.getJSONObject("Responses");
|
||||
}
|
||||
if (!Objects.isNull(response) && response.containsKey("Success")) {
|
||||
String success = response.getString("Success");
|
||||
String message = "";
|
||||
if (response.containsKey("Message")) {
|
||||
message = response.getString("Message");
|
||||
}
|
||||
if ("true".equals(success)) {
|
||||
log.info("验证零部件号是否可修改接口成功");
|
||||
return;
|
||||
}
|
||||
if ("false".equals(success)) {
|
||||
log.error("验证零部件号是否可修改接口失败");
|
||||
log.error("验证零部件号是否可修改接口失败原因: " + message);
|
||||
throw new JeroBootException(message);
|
||||
}
|
||||
}
|
||||
throw new JeroBootException("零部件号" + partNo + "不可新增");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean validPartBelong(String partNo, String partName, String partCategoryNum) {
|
||||
try {
|
||||
JSONObject all = new JSONObject();
|
||||
all.put(MESSAGE_HANDLER, getMessageHandler("CNHTC_PO1000497", null, "PDM"));
|
||||
JSONObject requests = new JSONObject();
|
||||
requests.put("PartNum", partNo);
|
||||
requests.put("PartName", partName);
|
||||
requests.put("PartCategoryNum", partCategoryNum);
|
||||
requests.put("PartCategoryName", "");
|
||||
requests.put("Remark1", "");
|
||||
requests.put("Remark2", "");
|
||||
requests.put("Remark3", "");
|
||||
all.put(REQUESTS, requests);
|
||||
|
||||
// 创建 HttpEntity 包含请求体和头信息
|
||||
HttpHeaders headers = this.getBasicAuthHeaders();
|
||||
HttpEntity<String> entity = new HttpEntity<>(all.toString(), headers);
|
||||
// 打印完整的请求报文信息
|
||||
log.info("发送校验某个零部件是否属于某个零部件分类请求");
|
||||
log.info("IP: " + poIp + editValidUrl);
|
||||
log.info("Headers: " + headers);
|
||||
log.info("Request body: " + all);
|
||||
|
||||
JSONObject reData = restTemplate.postForObject(poIp + partBelongUrl, entity, JSONObject.class);
|
||||
log.info("接收校验某个零部件是否属于某个零部件分类返回");
|
||||
log.info("返回报文: " + JSON.toJSONString(reData));
|
||||
JSONObject response = null;
|
||||
if (!Objects.isNull(reData) && reData.containsKey("Responses")) {
|
||||
response = reData.getJSONObject("Responses");
|
||||
}
|
||||
if (!Objects.isNull(response) && response.containsKey("Success")) {
|
||||
String success = response.getString("Success");
|
||||
String message = "";
|
||||
if (response.containsKey("Message")) {
|
||||
message = response.getString("Message");
|
||||
}
|
||||
if ("true".equals(success)) {
|
||||
log.info("校验某个零部件是否所属于某个零部件分类接口成功");
|
||||
return true;
|
||||
}
|
||||
if ("false".equals(success)) {
|
||||
log.error("校验某个零部件是否所属于某个零部件分类接口失败");
|
||||
log.error("失败原因: " + message);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("校验某个零部件是否所属于某个零部件分类异常", e);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendStandardChangeToSCM(String standardId, String standardType, String operateType, String bindPartId) {
|
||||
LawsBindPart lawsBindPart = null;
|
||||
if (BIND_RELATION_CHANGE.equals(operateType)) {
|
||||
lawsBindPart = lawsBindPartService.getById(bindPartId);
|
||||
standardId = lawsBindPart.getStandardId();
|
||||
} else if (STANDARD_EDIT.equals(operateType) || STANDARD_ABOLISH.equals(operateType)) {
|
||||
LambdaQueryWrapper<LawsBindPart> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.eq(LawsBindPart::getStandardId, standardId);
|
||||
List<LawsBindPart> list = lawsBindPartService.list(lambdaQueryWrapper);
|
||||
if (CollectionUtils.isEmpty(list)) {
|
||||
log.info("没有标准Id为{}的零部件绑定关系,不向E采通发送消息", standardId);
|
||||
return;
|
||||
}
|
||||
lawsBindPart = list.get(0);
|
||||
} else {
|
||||
throw new JeroBootException("E采通接收消息接口失败,参数不正确,未发送");
|
||||
}
|
||||
// 根据操作类型和标准id 填充标准编号和标准名称字段
|
||||
if (standardType == null || TableNameEnum.DOMESTIC_REGULATIONS.getValue().equals(standardType)) {
|
||||
LawsDomesticStandard gb = gbService.getById(standardId);
|
||||
if (gb != null) {
|
||||
standardType = TableNameEnum.DOMESTIC_REGULATIONS.getValue();
|
||||
lawsBindPart.setStandardNo(gb.getStandardNumber());
|
||||
lawsBindPart.setStandardName(gb.getStandardName());
|
||||
}
|
||||
}
|
||||
if (standardType == null || TableNameEnum.FOREIGN_REGULATIONS.getValue().equals(standardType)) {
|
||||
LawsOverseasStandard fb = fbService.getById(standardId);
|
||||
if (fb != null) {
|
||||
standardType = TableNameEnum.FOREIGN_REGULATIONS.getValue();
|
||||
lawsBindPart.setStandardNo(fb.getStandardNumber());
|
||||
lawsBindPart.setStandardName(fb.getStandardName());
|
||||
}
|
||||
}
|
||||
if (standardType == null || TableNameEnum.ENTERPRISE_STANDARDS.getValue().equals(standardType)) {
|
||||
LawsEnterpriseStandard es = esService.getById(standardId);
|
||||
if (es != null) {
|
||||
standardType = TableNameEnum.ENTERPRISE_STANDARDS.getValue();
|
||||
lawsBindPart.setStandardNo(es.getStandardNumber());
|
||||
lawsBindPart.setStandardName(es.getStandardName());
|
||||
}
|
||||
}
|
||||
try {
|
||||
JSONObject all = new JSONObject();
|
||||
all.put(MESSAGE_HANDLER, getMessageHandler("CNHTC_PO1000401", null, "SCM"));
|
||||
JSONObject requests = new JSONObject();
|
||||
requests.put("partNum", lawsBindPart.getPartNo());
|
||||
requests.put("partName", lawsBindPart.getPartName());
|
||||
requests.put(STANDARD_NUMBER, lawsBindPart.getStandardNo());
|
||||
requests.put(STANDARD_NAME, lawsBindPart.getStandardName());
|
||||
requests.put("type", Integer.valueOf(operateType));
|
||||
all.put(REQUESTS, requests);
|
||||
|
||||
// 创建 HttpEntity 包含请求体和头信息
|
||||
HttpHeaders headers = this.getBasicAuthHeaders();
|
||||
HttpEntity<String> entity = new HttpEntity<>(all.toString(), headers);
|
||||
// 打印完整的请求报文信息
|
||||
log.info("发送E采通接收消息请求");
|
||||
log.info("IP: " + poIp + etton_message_url);
|
||||
log.info("Headers: " + headers);
|
||||
log.info("Request body: " + all);
|
||||
|
||||
JSONObject reData = restTemplate.postForObject(poIp + etton_message_url, entity, JSONObject.class);
|
||||
log.info("接收E采通接收消息接口返回");
|
||||
log.info("返回报文: " + JSON.toJSONString(reData));
|
||||
JSONObject response = null;
|
||||
if (!Objects.isNull(reData) && reData.containsKey("Responses")) {
|
||||
response = reData.getJSONObject("Responses");
|
||||
}
|
||||
if (!Objects.isNull(response) && response.containsKey("success")) {
|
||||
String success = response.getString("success");
|
||||
if ("true".equals(success)) {
|
||||
log.info("E采通接收消息接口成功");
|
||||
}
|
||||
if ("false".equals(success)) {
|
||||
log.error("E采通接收消息接口失败");
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("E采通接收消息接口异常", e);
|
||||
}
|
||||
}
|
||||
|
||||
// 创建 HttpHeaders 并设置 Basic Auth
|
||||
private HttpHeaders getBasicAuthHeaders() {
|
||||
// 创建 HttpHeaders 并设置 Basic Auth
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
headers.setContentType(MediaType.APPLICATION_JSON);
|
||||
String auth = authUsername + ":" + authPassword; // 用户名:密码
|
||||
byte[] encodedAuth = Base64.getEncoder().encode(auth.getBytes(StandardCharsets.US_ASCII));
|
||||
String authHeader = "Basic " + new String(encodedAuth);
|
||||
headers.set("Authorization", authHeader);
|
||||
return headers;
|
||||
}
|
||||
|
||||
public JSONObject getMessageHandler(String interfaceId, String uuid, String receiver) {
|
||||
if (StrUtil.isBlank(uuid)) {
|
||||
uuid = UUID.randomUUID().toString();
|
||||
}
|
||||
JSONObject messageHeader = new JSONObject();
|
||||
String date = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
|
||||
messageHeader.put("Interface_ID", interfaceId);
|
||||
messageHeader.put("UUID", uuid);
|
||||
messageHeader.put("MessageId", "");
|
||||
messageHeader.put("Sender", "SRMS");
|
||||
messageHeader.put("Receiver", receiver);
|
||||
messageHeader.put("SendDate", date.substring(0, 8));
|
||||
messageHeader.put("SendTime", date.substring(8));
|
||||
return messageHeader;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,92 @@
|
||||
package com.jero.modules.bindPart.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.jero.common.aspect.annotation.Dict;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.jeecgframework.poi.excel.annotation.Excel;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @author: Mzaxd
|
||||
* @Date: 2024/4/18 10:09
|
||||
*/
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class BindPartStandardVO implements Serializable {
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
@ApiModelProperty(value = "id")
|
||||
private String id;
|
||||
/**
|
||||
* 标准号
|
||||
*/
|
||||
@ApiModelProperty(value = "标准号")
|
||||
private String standardNumber;
|
||||
/**
|
||||
* 标准名称
|
||||
*/
|
||||
@ApiModelProperty(value = "标准名称")
|
||||
private String standardName;
|
||||
/**
|
||||
* 标准状态
|
||||
*/
|
||||
@ApiModelProperty(value = "标准状态")
|
||||
@Dict(dicCode = "standard_state")
|
||||
private String standardState;
|
||||
/**
|
||||
* 标准状态
|
||||
*/
|
||||
@ApiModelProperty(value = "企标标准状态")
|
||||
@Dict(dicCode = "es_status")
|
||||
private String esStandardState;
|
||||
/**
|
||||
* 发布日期
|
||||
*/
|
||||
@ApiModelProperty(value = "发布日期")
|
||||
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||
private Date releaseDate;
|
||||
/**实施日期*/
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||
@ApiModelProperty(value = "实施日期")
|
||||
private java.util.Date implementationDate;
|
||||
/**创建时间*/
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
private java.util.Date createTime;
|
||||
/**更新时间*/
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||
@ApiModelProperty(value = "更新时间")
|
||||
private java.util.Date updateTime;
|
||||
/**
|
||||
* 标准类型(1:国内,2:海外,3:企业)
|
||||
*/
|
||||
@ApiModelProperty(value = "标准类型(1:国内,2:海外,3:企业)")
|
||||
@Dict(dicCode = "standard_source")
|
||||
private String standardType;
|
||||
/**
|
||||
* 拆分条款记录Id(选择条款用)
|
||||
*/
|
||||
@ApiModelProperty(value = "拆分条款记录Id(选择条款用)")
|
||||
private String infoId;
|
||||
/**
|
||||
* 预览地址
|
||||
*/
|
||||
@ApiModelProperty(value = "预览地址")
|
||||
private String standardUrl;
|
||||
|
||||
@TableField(exist = false)
|
||||
private static final long serialVersionUID = 1L;
|
||||
}
|
||||
@@ -0,0 +1,141 @@
|
||||
package com.jero.modules.bindPart.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.jero.common.aspect.annotation.Dict;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
/**
|
||||
*
|
||||
* @TableName laws_bind_part
|
||||
*/
|
||||
@TableName(value ="laws_bind_part")
|
||||
@Data
|
||||
public class LawsBindPart implements Serializable {
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@TableId(type = IdType.ASSIGN_ID)
|
||||
@ApiModelProperty(value = "主键ID")
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 创建人
|
||||
*/
|
||||
@ApiModelProperty(value = "创建人")
|
||||
private String createBy;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
private Date createTime;
|
||||
|
||||
/**
|
||||
* 更新人
|
||||
*/
|
||||
@ApiModelProperty(value = "更新人")
|
||||
private String updateBy;
|
||||
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
@ApiModelProperty(value = "更新时间")
|
||||
private Date updateTime;
|
||||
|
||||
/**
|
||||
* 所属部门
|
||||
*/
|
||||
@ApiModelProperty(value = "所属部门")
|
||||
private String orgCode;
|
||||
|
||||
/**
|
||||
* 标准Id
|
||||
*/
|
||||
@ApiModelProperty(value = "标准Id")
|
||||
private String standardId;
|
||||
|
||||
/**
|
||||
* 标准类型
|
||||
*/
|
||||
@ApiModelProperty(value = "标准类型")
|
||||
private String standardType;
|
||||
|
||||
/**
|
||||
* 零部件号
|
||||
*/
|
||||
@ApiModelProperty(value = "零部件号")
|
||||
private String partNo;
|
||||
|
||||
/**
|
||||
* 零部件分类码
|
||||
*/
|
||||
@ApiModelProperty(value = "零部件分类码")
|
||||
private String partCategoryNum;
|
||||
|
||||
/**
|
||||
* 零部件名称
|
||||
*/
|
||||
@ApiModelProperty(value = "零部件名称")
|
||||
private String partName;
|
||||
|
||||
/**
|
||||
* 文档拆分Id
|
||||
*/
|
||||
@ApiModelProperty(value = "文档拆分Id")
|
||||
private String docSplitId;
|
||||
|
||||
/**
|
||||
* 绑定人员
|
||||
*/
|
||||
@ApiModelProperty(value = "绑定人员")
|
||||
@Dict(dicCode = "id", dictTable = "sys_user", dicText = "realname")
|
||||
private String bindUser;
|
||||
|
||||
/**
|
||||
* 绑定时间
|
||||
*/
|
||||
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm")
|
||||
@ApiModelProperty(value = "绑定时间")
|
||||
private Date bindTime;
|
||||
|
||||
/**
|
||||
* 条款Id
|
||||
*/
|
||||
@ApiModelProperty(value = "条款Id(多个逗号拼接)")
|
||||
@TableField(exist = false)
|
||||
private String clauseIds;
|
||||
|
||||
/**
|
||||
* 条款号
|
||||
*/
|
||||
@ApiModelProperty(value = "条款号(多个逗号拼接)")
|
||||
@TableField(exist = false)
|
||||
private String clauseNos;
|
||||
|
||||
/**
|
||||
* 标准编号
|
||||
*/
|
||||
@ApiModelProperty(value = "标准编号")
|
||||
@TableField(exist = false)
|
||||
private String standardNo;
|
||||
|
||||
/**
|
||||
* 标准名称
|
||||
*/
|
||||
@ApiModelProperty(value = "标准名称")
|
||||
@TableField(exist = false)
|
||||
private String standardName;
|
||||
|
||||
@TableField(exist = false)
|
||||
private static final long serialVersionUID = 1L;
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
package com.jero.modules.bindPart.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
*
|
||||
* @TableName laws_bind_part_doc
|
||||
*/
|
||||
@TableName(value ="laws_bind_part_doc")
|
||||
@Data
|
||||
public class LawsBindPartDoc implements Serializable {
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@TableId(type = IdType.ASSIGN_ID)
|
||||
@ApiModelProperty(value = "主键ID")
|
||||
private String id;
|
||||
|
||||
|
||||
/**创建人*/
|
||||
@ApiModelProperty(value = "创建人")
|
||||
private String createBy;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
private Date createTime;
|
||||
|
||||
/**
|
||||
* 更新人
|
||||
*/
|
||||
@ApiModelProperty(value = "更新人")
|
||||
private String updateBy;
|
||||
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
@ApiModelProperty(value = "更新时间")
|
||||
private Date updateTime;
|
||||
|
||||
/**
|
||||
* 所属部门
|
||||
*/
|
||||
@ApiModelProperty(value = "所属部门")
|
||||
private String orgCode;
|
||||
|
||||
/**
|
||||
* 绑定id
|
||||
*/
|
||||
@ApiModelProperty(value = "绑定id")
|
||||
private String bindId;
|
||||
|
||||
/**
|
||||
* 条款id
|
||||
*/
|
||||
@ApiModelProperty(value = "条款id")
|
||||
private String clauseId;
|
||||
|
||||
@TableField(exist = false)
|
||||
private static final long serialVersionUID = 1L;
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
package com.jero.modules.bindPart.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class SAMStandardInfo implements Serializable {
|
||||
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
@ApiModelProperty(value = "id")
|
||||
private String id;
|
||||
/**
|
||||
* 标准号
|
||||
*/
|
||||
@ApiModelProperty(value = "标准号")
|
||||
private String standardNumber;
|
||||
/**
|
||||
* 标准名称
|
||||
*/
|
||||
@ApiModelProperty(value = "标准名称")
|
||||
private String standardName;
|
||||
/**
|
||||
* 标准状态
|
||||
*/
|
||||
@ApiModelProperty(value = "标准状态")
|
||||
private String standardState;
|
||||
/**
|
||||
* 预览链接
|
||||
*/
|
||||
@ApiModelProperty(value = "预览链接")
|
||||
private String standardUrl;
|
||||
|
||||
@TableField(exist = false)
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
}
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
package com.jero.modules.bindPart.mapper;
|
||||
|
||||
import com.jero.modules.bindPart.entity.LawsBindPartDoc;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
/**
|
||||
* @author ThinkBook
|
||||
* @description 针对表【laws_bind_part_doc】的数据库操作Mapper
|
||||
* @createDate 2024-04-15 11:27:29
|
||||
* @Entity com.jero.modules.laws.bindPart.entity.LawsBindPartDoc
|
||||
*/
|
||||
public interface LawsBindPartDocMapper extends BaseMapper<LawsBindPartDoc> {
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
package com.jero.modules.bindPart.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.jero.modules.bindPart.entity.LawsBindPart;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* @author ThinkBook
|
||||
* @description 针对表【laws_bind_part】的数据库操作Mapper
|
||||
* @createDate 2024-04-15 11:27:06
|
||||
* @Entity com.jero.modules.laws.bindPart.entity.LawsBindPart
|
||||
*/
|
||||
public interface LawsBindPartMapper extends BaseMapper<LawsBindPart> {
|
||||
|
||||
IPage<LawsBindPart> page(IPage<LawsBindPart> page, @Param("param") LawsBindPart lawsBindPart);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.jero.modules.bindPart.mapper.LawsBindPartDocMapper">
|
||||
|
||||
<resultMap id="BaseResultMap" type="com.jero.modules.bindPart.entity.LawsBindPartDoc">
|
||||
<id property="id" column="id" jdbcType="VARCHAR"/>
|
||||
<result property="createBy" column="create_by" jdbcType="VARCHAR"/>
|
||||
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
|
||||
<result property="updateBy" column="update_by" jdbcType="VARCHAR"/>
|
||||
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
|
||||
<result property="orgCode" column="org_code" jdbcType="VARCHAR"/>
|
||||
<result property="bindId" column="bind_id" jdbcType="VARCHAR"/>
|
||||
<result property="docId" column="doc_id" jdbcType="VARCHAR"/>
|
||||
</resultMap>
|
||||
|
||||
<sql id="Base_Column_List">
|
||||
id,create_by,create_time,
|
||||
update_by,update_time,org_code,
|
||||
bind_id,doc_id
|
||||
</sql>
|
||||
</mapper>
|
||||
+82
@@ -0,0 +1,82 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.jero.modules.bindPart.mapper.LawsBindPartMapper">
|
||||
|
||||
<resultMap id="BaseResultMap" type="com.jero.modules.bindPart.entity.LawsBindPart">
|
||||
<id property="id" column="id" jdbcType="VARCHAR"/>
|
||||
<result property="createBy" column="create_by" jdbcType="VARCHAR"/>
|
||||
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
|
||||
<result property="updateBy" column="update_by" jdbcType="VARCHAR"/>
|
||||
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
|
||||
<result property="orgCode" column="org_code" jdbcType="VARCHAR"/>
|
||||
<result property="standardId" column="standard_id" jdbcType="VARCHAR"/>
|
||||
<result property="standardType" column="standard_type" jdbcType="VARCHAR"/>
|
||||
<result property="partNo" column="part_no" jdbcType="VARCHAR"/>
|
||||
<result property="partName" column="part_name" jdbcType="VARCHAR"/>
|
||||
<result property="docSplitId" column="doc_split_id" jdbcType="VARCHAR"/>
|
||||
<result property="bindUser" column="bind_user" jdbcType="VARCHAR"/>
|
||||
<result property="bindTime" column="bind_time" jdbcType="TIMESTAMP"/>
|
||||
</resultMap>
|
||||
|
||||
<sql id="Base_Column_List">
|
||||
id,create_by,create_time,
|
||||
update_by,update_time,org_code,
|
||||
part_no,part_name,standard_id,
|
||||
bind_user,bind_time
|
||||
</sql>
|
||||
|
||||
<select id="page" resultType="com.jero.modules.bindPart.entity.LawsBindPart">
|
||||
SELECT
|
||||
bp.id,
|
||||
bp.part_no,
|
||||
bp.part_name,
|
||||
bp.doc_split_id,
|
||||
bp.standard_id,
|
||||
bp.standard_type,
|
||||
standard.standard_number AS standardNo,
|
||||
standard.standard_name,
|
||||
GROUP_CONCAT(lbpd.clause_id ORDER BY split.item_num SEPARATOR ',') AS clauseIds,
|
||||
GROUP_CONCAT(split.item_num ORDER BY split.item_num SEPARATOR ',') AS clauseNos,
|
||||
bp.bind_user,
|
||||
bp.bind_time
|
||||
FROM
|
||||
`laws_bind_part` AS bp
|
||||
LEFT JOIN (
|
||||
select id, standard_number, standard_name from laws_enterprise_standard where del_flag = 0
|
||||
UNION ALL
|
||||
select id, standard_number, standard_name from laws_domestic_standard where del_flag = 0
|
||||
UNION ALL
|
||||
select id, standard_number, standard_name from laws_overseas_standard where del_flag = 0
|
||||
) AS standard ON bp.standard_id = standard.id
|
||||
LEFT JOIN sar_file_split_info AS sfsi ON bp.doc_split_id = sfsi.id
|
||||
LEFT JOIN laws_bind_part_doc AS lbpd ON lbpd.bind_id = bp.id
|
||||
LEFT JOIN laws_document_split AS split ON split.id = lbpd.clause_id
|
||||
LEFT JOIN sys_user AS u ON u.id = bp.bind_user
|
||||
<where>
|
||||
<!--零部件号-->
|
||||
<if test="param.partNo != null and param.partNo != ''">
|
||||
AND bp.part_no LIKE CONCAT('%',#{param.partNo},'%')
|
||||
</if>
|
||||
<!--零部件名称-->
|
||||
<if test="param.partName != null and param.partName != ''">
|
||||
AND bp.part_name LIKE CONCAT('%',#{param.partName},'%')
|
||||
</if>
|
||||
<!--标准编号-->
|
||||
<if test="param.standardNo != null and param.standardNo != ''">
|
||||
AND standard.standard_number LIKE CONCAT('%',#{param.standardNo},'%')
|
||||
</if>
|
||||
<!--标准名称-->
|
||||
<if test="param.standardName != null and param.standardName != ''">
|
||||
AND standard.standard_name LIKE CONCAT('%',#{param.standardName},'%')
|
||||
</if>
|
||||
<!--绑定人员-->
|
||||
<if test="param.bindUser != null and param.bindUser != ''">
|
||||
AND CONCAT(u.realname, '(', u.username, ')') LIKE CONCAT('%',#{param.bindUser},'%')
|
||||
</if>
|
||||
</where>
|
||||
GROUP BY
|
||||
bp.id, bp.create_time
|
||||
ORDER BY
|
||||
bp.create_time DESC
|
||||
</select>
|
||||
</mapper>
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
package com.jero.modules.bindPart.service;
|
||||
|
||||
import com.jero.modules.bindPart.entity.LawsBindPartDoc;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
/**
|
||||
* @author ThinkBook
|
||||
* @description 针对表【laws_bind_part_doc】的数据库操作Service
|
||||
* @createDate 2024-04-15 11:27:29
|
||||
*/
|
||||
public interface ILawsBindPartDocService extends IService<LawsBindPartDoc> {
|
||||
|
||||
}
|
||||
+89
@@ -0,0 +1,89 @@
|
||||
package com.jero.modules.bindPart.service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.jero.modules.bindPart.entity.BindPartStandardVO;
|
||||
import com.jero.modules.bindPart.entity.LawsBindPart;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author ThinkBook
|
||||
* @description 针对表【laws_bind_part】的数据库操作Service
|
||||
* @createDate 2024-04-15 11:27:06
|
||||
*/
|
||||
public interface ILawsBindPartService extends IService<LawsBindPart> {
|
||||
|
||||
/**
|
||||
* 分页查询
|
||||
*
|
||||
* @param lawsBindPart
|
||||
* @param pageNo
|
||||
* @param pageSize
|
||||
* @return
|
||||
*/
|
||||
IPage<LawsBindPart> queryPage(LawsBindPart lawsBindPart, Integer pageNo, Integer pageSize);
|
||||
|
||||
/**
|
||||
* 保存
|
||||
*
|
||||
* @param lawsBindPart
|
||||
* @return
|
||||
*/
|
||||
void add(LawsBindPart lawsBindPart);
|
||||
|
||||
/**
|
||||
* 更新
|
||||
*
|
||||
* @param lawsBindPart
|
||||
* @return
|
||||
*/
|
||||
void editById(LawsBindPart lawsBindPart);
|
||||
|
||||
/**
|
||||
* 通过id删除
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
void deleteById(String id);
|
||||
|
||||
/**
|
||||
* 批量删除
|
||||
*
|
||||
* @param ids
|
||||
* @return
|
||||
*/
|
||||
void deleteByIds(List<String> ids);
|
||||
|
||||
/**
|
||||
* 通过id查询
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
LawsBindPart queryById(String id);
|
||||
|
||||
/**
|
||||
* 选择标准
|
||||
* @param bindPartStandardVO
|
||||
* @param pageNo
|
||||
* @param pageSize
|
||||
* @return
|
||||
*/
|
||||
IPage<BindPartStandardVO> selectStandard(BindPartStandardVO bindPartStandardVO, Integer pageNo, Integer pageSize);
|
||||
|
||||
/**
|
||||
* 是否显示使用绑定关系按钮
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
void useBindRelation(String id);
|
||||
|
||||
/**
|
||||
* 使用绑定关系
|
||||
* @param lawsBindPart
|
||||
* @return
|
||||
*/
|
||||
LawsBindPart isShowUseBindRelation(LawsBindPart lawsBindPart);
|
||||
}
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
package com.jero.modules.bindPart.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.jero.modules.bindPart.mapper.LawsBindPartDocMapper;
|
||||
import com.jero.modules.bindPart.entity.LawsBindPartDoc;
|
||||
import com.jero.modules.bindPart.service.ILawsBindPartDocService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* @author ThinkBook
|
||||
* @description 针对表【laws_bind_part_doc】的数据库操作Service实现
|
||||
* @createDate 2024-04-15 11:27:29
|
||||
*/
|
||||
@Service
|
||||
public class LawsBindPartDocServiceImpl extends ServiceImpl<LawsBindPartDocMapper, LawsBindPartDoc>
|
||||
implements ILawsBindPartDocService {
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
+418
@@ -0,0 +1,418 @@
|
||||
package com.jero.modules.bindPart.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.jero.common.api.dto.message.SendMessageDTO;
|
||||
import com.jero.common.api.vo.SendMessageAPI;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.common.system.vo.LoginUser;
|
||||
import com.jero.modules.activiti.process.common.enums.StandardStateEnum;
|
||||
import com.jero.modules.bindPart.docking.DockingService;
|
||||
import com.jero.modules.bindPart.mapper.LawsBindPartMapper;
|
||||
import com.jero.modules.bindPart.entity.BindPartStandardVO;
|
||||
import com.jero.modules.bindPart.entity.LawsBindPart;
|
||||
import com.jero.modules.bindPart.entity.LawsBindPartDoc;
|
||||
import com.jero.modules.bindPart.service.ILawsBindPartDocService;
|
||||
import com.jero.modules.bindPart.service.ILawsBindPartService;
|
||||
|
||||
import com.jero.modules.laws.common.constant.MessageTemplateCodeCommon;
|
||||
import com.jero.modules.laws.documenttool.entity.LawsDocumentSplit;
|
||||
import com.jero.modules.laws.documenttool.mapper.DocumentSplitMapper;
|
||||
import com.jero.modules.laws.enterprise.util.BeanCopyUtils;
|
||||
import com.jero.modules.laws.standard.entity.LawsDomesticStandard;
|
||||
import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard;
|
||||
import com.jero.modules.laws.standard.entity.LawsOverseasStandard;
|
||||
import com.jero.modules.laws.standard.service.ILawsDomesticStandardService;
|
||||
import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService;
|
||||
import com.jero.modules.laws.standard.service.ILawsOverseasStandardService;
|
||||
import com.jero.modules.onlyoffice.entity.StandardFileType;
|
||||
import com.jero.modules.split.entity.SarFileSplitInfoEO;
|
||||
import com.jero.modules.split.service.ISarFileSplitInfoService;
|
||||
import com.jero.modules.sys.utils.UserUtils;
|
||||
import com.jero.modules.system.entity.SysUser;
|
||||
import com.jero.modules.system.service.ISysUserService;
|
||||
import com.jero.modules.tag.enums.TableNameEnum;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static com.jero.common.constant.CommonConstant.HAS_SEND;
|
||||
import static com.jero.modules.bindPart.docking.DockingServiceImpl.BIND_RELATION_CHANGE;
|
||||
|
||||
/**
|
||||
* @author ThinkBook
|
||||
* @description 针对表【laws_bind_part】的数据库操作Service实现
|
||||
* @createDate 2024-04-15 11:27:06
|
||||
*/
|
||||
@Service
|
||||
public class LawsBindPartServiceImpl extends ServiceImpl<LawsBindPartMapper, LawsBindPart>
|
||||
implements ILawsBindPartService {
|
||||
|
||||
@Resource
|
||||
private LawsBindPartMapper lawsBindPartMapper;
|
||||
|
||||
@Resource
|
||||
private ISarFileSplitInfoService fileSplitInfoService;
|
||||
|
||||
@Resource
|
||||
private ILawsBindPartDocService lawsBindPartDocService;
|
||||
|
||||
@Resource
|
||||
private ILawsDomesticStandardService gbService;
|
||||
|
||||
@Resource
|
||||
private ILawsOverseasStandardService fbService;
|
||||
|
||||
@Resource
|
||||
private ILawsEnterpriseStandardService esService;
|
||||
|
||||
@Resource
|
||||
private DockingService dockingService;
|
||||
|
||||
@Resource
|
||||
private ISysUserService sysUserService;
|
||||
|
||||
@Resource
|
||||
private SendMessageAPI sendMessageAPI;
|
||||
|
||||
@Resource
|
||||
private DocumentSplitMapper documentSplitMapper;
|
||||
|
||||
@Override
|
||||
public IPage<LawsBindPart> queryPage(LawsBindPart lawsBindPart, Integer pageNo, Integer pageSize) {
|
||||
IPage<LawsBindPart> page = new Page<>(pageNo, pageSize);
|
||||
lawsBindPartMapper.page(page, lawsBindPart);
|
||||
return page;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void add(LawsBindPart lawsBindPart) {
|
||||
// 访问PDM校验该零部件号是否可以修改
|
||||
try {
|
||||
dockingService.validPartNoEdit(lawsBindPart.getPartNo(),
|
||||
lawsBindPart.getPartName(),
|
||||
getBindUsernameAndRealName(lawsBindPart.getBindUser()));
|
||||
} catch (Exception e) {
|
||||
throw new JeroBootException(e.getMessage());
|
||||
}
|
||||
lawsBindPart.setBindTime(new Date());
|
||||
save(lawsBindPart);
|
||||
String clauseIds = lawsBindPart.getClauseIds();
|
||||
this.saveBindPartDoc(clauseIds, lawsBindPart.getId());
|
||||
// 发消息
|
||||
this.sendMessageToBindUser(lawsBindPart);
|
||||
try {
|
||||
dockingService.sendStandardChangeToSCM(lawsBindPart.getStandardId(), lawsBindPart.getStandardType(), BIND_RELATION_CHANGE, lawsBindPart.getId());
|
||||
} catch (Exception e) {
|
||||
log.error("E采通同步标准信息出错", e);
|
||||
}
|
||||
}
|
||||
|
||||
private void saveBindPartDoc(String clauseIds, String bindId) {
|
||||
if (StrUtil.isBlank(clauseIds)) {
|
||||
return;
|
||||
}
|
||||
String[] clauseIdList = clauseIds.split(",");
|
||||
List<LawsBindPartDoc> lawsBindPartDocList = new ArrayList<>();
|
||||
for (String clause : clauseIdList) {
|
||||
LawsBindPartDoc lawsBindPartDoc = new LawsBindPartDoc();
|
||||
lawsBindPartDoc.setBindId(bindId);
|
||||
lawsBindPartDoc.setClauseId(clause);
|
||||
lawsBindPartDocList.add(lawsBindPartDoc);
|
||||
}
|
||||
lawsBindPartDocService.saveBatch(lawsBindPartDocList);
|
||||
}
|
||||
|
||||
private String getBindUsernameAndRealName(String userId) {
|
||||
SysUser user = sysUserService.getById(userId);
|
||||
return user.getUsername();
|
||||
}
|
||||
|
||||
/**
|
||||
* 向pdm确认零部件是否可以修改
|
||||
* @param ids
|
||||
*/
|
||||
private void pdmValidPartEdit(List<String> ids) {
|
||||
List<LawsBindPart> lawsBindParts = lawsBindPartMapper.selectBatchIds(ids);
|
||||
if (CollectionUtil.isEmpty(lawsBindParts)) {
|
||||
return;
|
||||
}
|
||||
// 转换为Map
|
||||
Map<String, LawsBindPart> lawsBindPartMap = lawsBindParts.stream().collect(Collectors.toMap(LawsBindPart::getId, e -> e));
|
||||
Set<String> errPartSet = new HashSet<>();
|
||||
// 访问PDM校验该零部件号是否可以修改
|
||||
for (String id : ids) {
|
||||
LawsBindPart existBindPart = lawsBindPartMap.get(id);
|
||||
try {
|
||||
dockingService.validPartNoEdit(existBindPart.getPartNo(),
|
||||
existBindPart.getPartName(),
|
||||
getBindUsernameAndRealName(existBindPart.getBindUser()));
|
||||
} catch (Exception e) {
|
||||
errPartSet.add(existBindPart.getPartNo());
|
||||
}
|
||||
}
|
||||
if (CollectionUtil.isNotEmpty(errPartSet)) {
|
||||
throw new JeroBootException("零部件号" + String.join(",", errPartSet) + "不能修改");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void editById(LawsBindPart lawsBindPart) {
|
||||
if (StrUtil.isBlank(lawsBindPart.getId())) {
|
||||
throw new JeroBootException("id不能为空");
|
||||
}
|
||||
this.pdmValidPartEdit(Collections.singletonList(lawsBindPart.getId()));
|
||||
lawsBindPart.setBindUser(UserUtils.getUserId());
|
||||
updateById(lawsBindPart);
|
||||
// 清空关联关系
|
||||
removeBindPartDoc(lawsBindPart.getId());
|
||||
// 保存新关系
|
||||
String clauseIds = lawsBindPart.getClauseIds();
|
||||
this.saveBindPartDoc(clauseIds, lawsBindPart.getId());
|
||||
try {
|
||||
dockingService.sendStandardChangeToSCM(lawsBindPart.getStandardId(), lawsBindPart.getStandardType(), BIND_RELATION_CHANGE, lawsBindPart.getId());
|
||||
} catch (Exception e) {
|
||||
log.error("E采通同步标准信息出错", e);
|
||||
}
|
||||
}
|
||||
|
||||
private void removeBindPartDoc(String bindIds) {
|
||||
if (StrUtil.isBlank(bindIds)) {
|
||||
return;
|
||||
}
|
||||
List<String> bindIdList = Arrays.asList(bindIds.split(","));
|
||||
LambdaQueryWrapper<LawsBindPartDoc> lawsBindPartDocLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lawsBindPartDocLambdaQueryWrapper.in(LawsBindPartDoc::getBindId, bindIdList);
|
||||
lawsBindPartDocService.remove(lawsBindPartDocLambdaQueryWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteById(String id) {
|
||||
// 访问PDM校验该零部件号是否可以修改
|
||||
this.pdmValidPartEdit(Collections.singletonList(id));
|
||||
try {
|
||||
dockingService.sendStandardChangeToSCM(null, null, BIND_RELATION_CHANGE, id);
|
||||
} catch (Exception e) {
|
||||
log.error("E采通同步标准信息出错", e);
|
||||
}
|
||||
removeById(id);
|
||||
removeBindPartDoc(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteByIds(List<String> ids) {
|
||||
// 访问PDM校验该零部件号是否可以修改
|
||||
this.pdmValidPartEdit(ids);
|
||||
for (String id : ids) {
|
||||
try {
|
||||
dockingService.sendStandardChangeToSCM(null, null, BIND_RELATION_CHANGE, id);
|
||||
} catch (Exception e) {
|
||||
log.error("E采通同步标准信息出错", e);
|
||||
}
|
||||
}
|
||||
removeByIds(ids);
|
||||
removeBindPartDoc(ids.stream().map(String::valueOf).collect(Collectors.joining(",")));
|
||||
}
|
||||
|
||||
@Override
|
||||
public LawsBindPart queryById(String id) {
|
||||
return getById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPage<BindPartStandardVO> selectStandard(BindPartStandardVO bindPartStandardVO, Integer pageNo, Integer pageSize) {
|
||||
String standardType = bindPartStandardVO.getStandardType();
|
||||
String standardName = bindPartStandardVO.getStandardName();
|
||||
IPage<BindPartStandardVO> resultPage = new Page<>(pageNo, pageSize);
|
||||
List<BindPartStandardVO> records = new ArrayList<>();
|
||||
if (StrUtil.isBlank(standardType) || standardType.equals(TableNameEnum.DOMESTIC_REGULATIONS.getValue())) {
|
||||
IPage<LawsDomesticStandard> page = new Page<>(pageNo, pageSize);
|
||||
LambdaQueryWrapper<LawsDomesticStandard> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.ne(LawsDomesticStandard::getStandardState, "7");
|
||||
queryWrapper.like(StrUtil.isNotBlank(standardName), LawsDomesticStandard::getStandardNumber, standardName).or()
|
||||
.like(StrUtil.isNotBlank(standardName),LawsDomesticStandard::getStandardName, standardName);
|
||||
IPage<LawsDomesticStandard> lawsDomesticStandardIPage = gbService.page(page, queryWrapper);
|
||||
records = BeanCopyUtils.copyBeanList(lawsDomesticStandardIPage.getRecords(), BindPartStandardVO.class);
|
||||
records.forEach(r -> {
|
||||
r.setStandardType(TableNameEnum.DOMESTIC_REGULATIONS.getValue());
|
||||
});
|
||||
resultPage.setPages(page.getPages())
|
||||
.setCurrent(page.getCurrent())
|
||||
.setSize(page.getSize())
|
||||
.setTotal(page.getTotal())
|
||||
.setRecords(records);
|
||||
}
|
||||
if (standardType.equals(TableNameEnum.FOREIGN_REGULATIONS.getValue())){
|
||||
IPage<LawsOverseasStandard> page = new Page<>(pageNo, pageSize);
|
||||
LambdaQueryWrapper<LawsOverseasStandard> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.ne(LawsOverseasStandard::getStandardState, "7");
|
||||
queryWrapper.like(StrUtil.isNotBlank(standardName), LawsOverseasStandard::getStandardNumber, standardName).or()
|
||||
.like(StrUtil.isNotBlank(standardName), LawsOverseasStandard::getStandardName, standardName);
|
||||
IPage<LawsOverseasStandard> lawsOverseasStandardIPage = fbService.page(page, queryWrapper);
|
||||
records = BeanCopyUtils.copyBeanList(lawsOverseasStandardIPage.getRecords(), BindPartStandardVO.class);
|
||||
records.forEach(r -> {
|
||||
r.setStandardType(TableNameEnum.FOREIGN_REGULATIONS.getValue());
|
||||
});
|
||||
resultPage.setPages(page.getPages())
|
||||
.setCurrent(page.getCurrent())
|
||||
.setSize(page.getSize())
|
||||
.setTotal(page.getTotal())
|
||||
.setRecords(records);
|
||||
}
|
||||
if (standardType.equals(TableNameEnum.ENTERPRISE_STANDARDS.getValue())){
|
||||
IPage<LawsEnterpriseStandard> page = new Page<>(pageNo, pageSize);
|
||||
LambdaQueryWrapper<LawsEnterpriseStandard> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.ne(LawsEnterpriseStandard::getStandardState, StandardStateEnum.ABOLISH);
|
||||
queryWrapper.like(StrUtil.isNotBlank(standardName), LawsEnterpriseStandard::getStandardNumber, standardName).or()
|
||||
.like(StrUtil.isNotBlank(standardName), LawsEnterpriseStandard::getStandardName, standardName);
|
||||
IPage<LawsEnterpriseStandard> lawsEnterpriseStandardIPage = esService.page(page, queryWrapper);
|
||||
records = BeanCopyUtils.copyBeanList(lawsEnterpriseStandardIPage.getRecords(), BindPartStandardVO.class);
|
||||
records.forEach(r -> {
|
||||
r.setEsStandardState(r.getStandardState());
|
||||
r.setStandardType(TableNameEnum.ENTERPRISE_STANDARDS.getValue());
|
||||
});
|
||||
resultPage.setPages(page.getPages())
|
||||
.setCurrent(page.getCurrent())
|
||||
.setSize(page.getSize())
|
||||
.setTotal(page.getTotal())
|
||||
.setRecords(records);
|
||||
}
|
||||
|
||||
// 获取所有标准Id
|
||||
List<String> standardIdList = records.stream().map(BindPartStandardVO::getId).collect(Collectors.toList());
|
||||
LambdaQueryWrapper<SarFileSplitInfoEO> sarFileSplitInfoEOLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
sarFileSplitInfoEOLambdaQueryWrapper.isNotNull(SarFileSplitInfoEO::getStandardId);
|
||||
sarFileSplitInfoEOLambdaQueryWrapper.in(!standardIdList.isEmpty(), SarFileSplitInfoEO::getStandardId, standardIdList);
|
||||
sarFileSplitInfoEOLambdaQueryWrapper.eq(SarFileSplitInfoEO::getSplitStatus, HAS_SEND);
|
||||
// 设置拆分信息id
|
||||
List<SarFileSplitInfoEO> splitInfoEOList = fileSplitInfoService.list(sarFileSplitInfoEOLambdaQueryWrapper);
|
||||
Map<String, List<SarFileSplitInfoEO>> map = splitInfoEOList.stream().collect(Collectors.groupingBy(SarFileSplitInfoEO::getStandardId));
|
||||
// 创建映射:枚举的value到order的映射
|
||||
Map<String, Integer> orderMap = java.util.Arrays.stream(StandardFileType.values())
|
||||
.collect(Collectors.toMap(StandardFileType::getValue, StandardFileType::getOrder));
|
||||
records.forEach(standard -> {
|
||||
List<SarFileSplitInfoEO> sarFileSplitInfoEOS = map.get(standard.getId());
|
||||
if (sarFileSplitInfoEOS == null || sarFileSplitInfoEOS.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
if (sarFileSplitInfoEOS.size() == 1) {
|
||||
standard.setInfoId(sarFileSplitInfoEOS.get(0).getId());
|
||||
return;
|
||||
}
|
||||
// 需要对所有拆分信息按照文件类型排序
|
||||
sarFileSplitInfoEOS.sort((file1, file2) -> {
|
||||
Integer order1 = orderMap.get(file1.getFileType());
|
||||
Integer order2 = orderMap.get(file2.getFileType());
|
||||
return Integer.compare(order1, order2);
|
||||
});
|
||||
standard.setInfoId(sarFileSplitInfoEOS.get(0).getId());
|
||||
});
|
||||
// 设置编辑Id
|
||||
return resultPage;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void useBindRelation(String id) {
|
||||
LawsBindPart bindPart = getById(id);
|
||||
LawsBindPart newBindPart = BeanCopyUtils.copyBean(bindPart, LawsBindPart.class);
|
||||
LoginUser currentUser = UserUtils.getCurrentUser();
|
||||
newBindPart.setCreateBy(null);
|
||||
newBindPart.setCreateTime(null);
|
||||
newBindPart.setUpdateBy(null);
|
||||
newBindPart.setUpdateTime(null);
|
||||
newBindPart.setBindUser(currentUser.getId());
|
||||
newBindPart.setBindTime(new Date());
|
||||
newBindPart.setId(null);
|
||||
save(newBindPart);
|
||||
String newId = newBindPart.getId();
|
||||
LambdaQueryWrapper<LawsBindPartDoc> lawsBindPartDocLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lawsBindPartDocLambdaQueryWrapper.eq(LawsBindPartDoc::getBindId, id);
|
||||
List<LawsBindPartDoc> list = lawsBindPartDocService.list(lawsBindPartDocLambdaQueryWrapper);
|
||||
list.forEach(b -> {
|
||||
b.setId(null);
|
||||
b.setBindId(newId);
|
||||
});
|
||||
lawsBindPartDocService.saveBatch(list);
|
||||
|
||||
// 发消息
|
||||
this.sendMessageToBindUser(newBindPart);
|
||||
}
|
||||
|
||||
/**
|
||||
1、如当前零部件绑定关系数据为空,则查询法规绑定关系中 当前零部件分类树下是否有绑定关系,无则进入序号3;有则获取零部件分类、零部件编号调用PDM的接口,判断零部件编号是否在当前的零部件分类下。
|
||||
2、在零部件分类下则 弹框文字提醒:【当前零部件分类结构下已有XXXX绑定标准关联关系,是否引入对应关系?】(XXXX指第一次绑定的零部件名称+编号)。
|
||||
3、如某分类的第一个零部件第一次绑定,进入法规系统点击新增/编辑,弹窗中自动带出零部件号、零部件名称和绑定人员。需要选择标准以及该标准下的条款,其中标准为单选,条款可以多选。绑定成功后,在列表最上方生成一条数据。pdm可以获取到零部件绑定的全部标准信息。
|
||||
* @param lawsBindPart
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public LawsBindPart isShowUseBindRelation(LawsBindPart lawsBindPart) {
|
||||
LambdaQueryWrapper<LawsBindPart> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.eq(LawsBindPart::getPartCategoryNum, lawsBindPart.getPartCategoryNum());
|
||||
List<LawsBindPart> list = this.list(lambdaQueryWrapper);
|
||||
// 第一次绑定不显示使用绑定关系
|
||||
if (list == null || list.isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
for (LawsBindPart existBind : list) {
|
||||
// 调用PDM判断零部件编号是否在当前的零部件分类下
|
||||
boolean validPartBelong = dockingService.validPartBelong(lawsBindPart.getPartNo(), lawsBindPart.getPartName(), existBind.getPartCategoryNum());
|
||||
if (validPartBelong) {
|
||||
return existBind;
|
||||
}
|
||||
// 零部件编号和零部件分类码绑定关系发生变更,所以需要将系统中存储的所有该零部件号的零部件分类码清空
|
||||
existBind.setPartCategoryNum(null);
|
||||
updateById(existBind);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
private void sendMessageToBindUser(LawsBindPart lawsBindPart) {
|
||||
String userId = UserUtils.getUserId();
|
||||
String standardId = lawsBindPart.getStandardId();
|
||||
String clauseIds = lawsBindPart.getClauseIds();
|
||||
Map<String, String> sendMap = new HashMap<>();
|
||||
if (StrUtil.isBlank(clauseIds)) {
|
||||
sendMap.put("clause", "");
|
||||
} else {
|
||||
List<String> clauseIdList = Arrays.asList(clauseIds.split(","));
|
||||
List<LawsDocumentSplit> lawsDocumentSplits = documentSplitMapper.selectBatchIds(clauseIdList);
|
||||
String clause = lawsDocumentSplits.stream().sorted()
|
||||
.map(LawsDocumentSplit::getItemNum).collect(Collectors.joining(","));
|
||||
String msg = "的" + clause + "条款";
|
||||
sendMap.put("clause", msg);
|
||||
}
|
||||
String standardNumber = "";
|
||||
LawsEnterpriseStandard es = esService.getById(standardId);
|
||||
if (es != null) {
|
||||
standardNumber = es.getStandardNumber();
|
||||
}
|
||||
LawsDomesticStandard gb = gbService.getById(standardId);
|
||||
if (gb != null) {
|
||||
standardNumber = gb.getStandardNumber();
|
||||
}
|
||||
LawsOverseasStandard fb = fbService.getById(standardId);
|
||||
if (fb != null) {
|
||||
standardNumber = fb.getStandardNumber();
|
||||
}
|
||||
// 发送消息
|
||||
SendMessageDTO sendMessageDTO = new SendMessageDTO();
|
||||
sendMessageDTO.setTemplateCode(MessageTemplateCodeCommon.BIND_PART_ADD);
|
||||
sendMessageDTO.setToUserId(userId);
|
||||
sendMap.put("standardNo", standardNumber);
|
||||
sendMap.put("partNo", lawsBindPart.getPartNo() + lawsBindPart.getPartName());
|
||||
sendMessageDTO.setMap(sendMap);
|
||||
sendMessageAPI.sendMessage(sendMessageDTO);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
+30
-1
@@ -22,6 +22,7 @@ import com.jero.common.util.MessageUtils;
|
||||
import com.jero.common.util.MinioUtil;
|
||||
import com.jero.modules.activiti.process.common.enums.StandardStateEnum;
|
||||
import com.jero.modules.activiti.process.fb.service.IProcessFbStandardConsultationService;
|
||||
import com.jero.modules.bindPart.docking.DockingService;
|
||||
import com.jero.modules.laws.common.constant.FieldCommon;
|
||||
import com.jero.modules.laws.common.mapper.LawsCommonMapper;
|
||||
import com.jero.modules.laws.common.service.ILawsCommonService;
|
||||
@@ -102,6 +103,9 @@ import java.util.stream.Collectors;
|
||||
import java.util.zip.ZipEntry;
|
||||
import java.util.zip.ZipOutputStream;
|
||||
|
||||
import static com.jero.modules.bindPart.docking.DockingServiceImpl.STANDARD_ABOLISH;
|
||||
import static com.jero.modules.bindPart.docking.DockingServiceImpl.STANDARD_EDIT;
|
||||
|
||||
/**
|
||||
* @Author: liao
|
||||
* @Date: 2023/8/23 16:54
|
||||
@@ -180,6 +184,9 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
|
||||
@Resource
|
||||
private ISysDepartService departService;
|
||||
|
||||
@Resource
|
||||
private DockingService dockingService;
|
||||
|
||||
public static boolean ENCRYPT_ENABLE;
|
||||
public static String DECRYPT_URL;
|
||||
public static String DECRYPT_APP_CODE;
|
||||
@@ -983,7 +990,29 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
|
||||
|
||||
// 同步es数据库
|
||||
lawsHomeSearchService.updateEsData(module, id, LawsHomeSearchCommon.LAWS_ES_UPDATE);
|
||||
|
||||
// 给E采通同步标准变更的信息
|
||||
try {
|
||||
boolean isAbolish = false;
|
||||
if (module.equals(TableNameEnum.DOMESTIC_REGULATIONS.getValue())
|
||||
|| module.equals(TableNameEnum.FOREIGN_REGULATIONS.getValue())) {
|
||||
if (standardState.equals(OutStandardStateEnum.ABOLISH.getStateValue())) {
|
||||
isAbolish = true;
|
||||
}
|
||||
}
|
||||
if (module.equals(TableNameEnum.ENTERPRISE_STANDARDS.getValue())) {
|
||||
if (standardState.equals(StandardStateEnum.ABOLISH.getStateValue())) {
|
||||
isAbolish = true;
|
||||
}
|
||||
}
|
||||
// 判断是否是改为废止
|
||||
if (isAbolish) {
|
||||
dockingService.sendStandardChangeToSCM(id, module, STANDARD_ABOLISH, null);
|
||||
} else{
|
||||
dockingService.sendStandardChangeToSCM(id, module, STANDARD_EDIT, null);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("E采通同步标准信息出错", e);
|
||||
}
|
||||
return ResultCommon.OK;
|
||||
}
|
||||
|
||||
|
||||
@@ -14,7 +14,10 @@ public enum StandardFileType {
|
||||
FILE_DRAFT_FOR_REVIEW("报批稿", "draft_for_review", 3), // 报批稿
|
||||
FILE_DRAFT_FOR_APPROVAL("送审稿", "draft_for_approval", 4), // 送审稿
|
||||
FILE_DRAFT_FOR_COMMENT("征求意见稿", "draft_for_comment", 5), // 征求意见稿
|
||||
FILE_DRAFT("草稿", "draft", 6); // 草稿
|
||||
FILE_DRAFT("草稿", "draft", 6), // 草稿
|
||||
TEST_PROCEDURES("测试规程", "test_procedures", 7), // 草稿
|
||||
OTHER_FILES("其他文件", "other_files", 8), // 草稿
|
||||
INTERPRET_DOCUMENT("解读文件", "interpret_document", 9); // 解读文件
|
||||
|
||||
private final String name;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user