Browse Source

2026-06-17

Lab优化
master
fengyuan_yang 2 days ago
parent
commit
e477799672
  1. 6
      src/main/java/com/spring/modules/lab/service/LabService.java
  2. 45
      src/main/java/com/spring/modules/lab/service/impl/LabServiceImpl.java
  3. 18
      src/main/java/com/spring/modules/request/service/impl/RequestManageServiceImpl.java
  4. 6
      src/main/java/com/spring/modules/rohs/service/RohsService.java
  5. 53
      src/main/java/com/spring/modules/rohs/service/impl/RohsServiceImpl.java

6
src/main/java/com/spring/modules/lab/service/LabService.java

@ -2,6 +2,7 @@ package com.spring.modules.lab.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.spring.common.utils.PageUtils;
import com.spring.modules.change.vo.ChangeRequestVo;
import com.spring.modules.change.vo.ProcessFormVo;
import com.spring.modules.lab.entity.LabEntity;
import com.spring.modules.lab.entity.LabItemEntity;
@ -60,4 +61,9 @@ public interface LabService extends IService<LabEntity> {
* 删除属性信息
*/
void deleteLabPropertyItems(String site, String referenceNo);
/**
* 流程干预提交节点更新/流程干预
*/
void submitLabToFlow(ChangeRequestVo data);
}

45
src/main/java/com/spring/modules/lab/service/impl/LabServiceImpl.java

@ -18,6 +18,7 @@ import com.spring.modules.change.entity.ParamData;
import com.spring.modules.change.entity.ProcessFormEntity;
import com.spring.modules.change.mapper.ChangeManagementMapper;
import com.spring.modules.change.service.impl.ChangeManagementServiceImpl;
import com.spring.modules.change.vo.ChangeRequestVo;
import com.spring.modules.change.vo.ProcessFormVo;
import com.spring.modules.lab.entity.LabEntity;
import com.spring.modules.lab.entity.LabItemEntity;
@ -401,6 +402,50 @@ public class LabServiceImpl extends ServiceImpl<LabMapper, LabEntity> implements
labItemMapper.deleteLabItems(site, referenceNo);
}
/**
* 流程干预提交节点更新/流程干预
*/
@Override
@Transactional
public void submitLabToFlow(ChangeRequestVo data) {
if (data == null || StringUtils.isBlank(data.getSite()) || StringUtils.isBlank(data.getDocumentNo()) || StringUtils.isBlank(data.getUserName())) {
throw new RuntimeException("流程干预参数不完整,无法提交Lab流程");
}
Map<String, String> baseData = changeManagementService.getSubmitBaseData(data.getSite(), data.getUserName(), data.getDocumentNo());
LabEntity lab = this.getDetail(data.getSite(), data.getDocumentNo());
if (lab == null) {
throw new RuntimeException("未找到对应Lab单据");
}
ParamData paramData = new ParamData(data.getSite(), baseData.get("nodeId"), baseData.get("nodeName"), data.getDocumentNo(), data.getUserName(), baseData.get("classificationNo"),
baseData.get("userId"), baseData.get("workflowId"), baseData.get("workflowname"), baseData.get("requestName"), baseData.get("path"), baseData.get("requestId"),
"plm_lab", "reference_no", "status", lab.getStepId(), data.getBu() == null ? "" : data.getBu(),
baseData.get("domainControlAccount"), baseData.get("menuId"), baseData.get("menuName"), data.getNodeConclusion(), data.getRejectOpinion() == null ? "" : data.getRejectOpinion(), data.getNodeId());
if ("update".equals(data.getProcessFlag())) {
List<MainData> mainData = getSubmitMainData(data.getSite(), baseData, lab);
paramData.setMainData(mainData);
SubmitRequestParam submitRequestParam = new SubmitRequestParam();
submitRequestParam.setUserId(data.getUpdateBy());
submitRequestParam.setRequestId(paramData.getRequestId());
submitRequestParam.setMainData(paramData.getMainData());
String submitRequestURL = apiUrlOa + "/oa/interface/submitRequest";
ResponseData submitRequestResponses = HttpClientUtil.doPostByRawWithOA(submitRequestURL, submitRequestParam);
if (!"0".equals(submitRequestResponses.getCode())) {
throw new RuntimeException("OA提交流程异常信息:" + submitRequestResponses.getMsg());
}
// 节点更新时后续OA流转操作人使用上一节点审批人
paramData.setUserId(data.getUpdateBy());
}
try {
changeManagementService.agreeFunction(paramData, Constant.LAB);
} catch (Exception e) {
handleSubmitRollback(paramData, e);
}
}
private List<MainData> getSubmitMainData(String site, Map<String, String> baseData, LabEntity lab) {
List<MainData> mainData = new ArrayList<>();
List<PlmRequestDetailVo> nodeDetails = changeManagementMapper.queryNodeDetails(site, baseData.get("workflowId"), baseData.get("nodeId"), baseData.get("classificationNo"));

18
src/main/java/com/spring/modules/request/service/impl/RequestManageServiceImpl.java

@ -25,6 +25,8 @@ import com.spring.modules.change.vo.ProcessFormVo;
import com.spring.modules.part.vo.BomDetailVo;
import com.spring.modules.part.vo.RoutingDetailVo;
import com.spring.modules.proofing.service.impl.ProofingInformationServiceImpl;
import com.spring.modules.rohs.service.impl.RohsServiceImpl;
import com.spring.modules.lab.service.impl.LabServiceImpl;
import com.spring.modules.quotation.service.impl.QuotationInformationServiceImpl;
import com.spring.modules.quote.service.impl.QuoteServiceImpl;
import com.spring.modules.request.entity.PlmFieldData;
@ -85,6 +87,10 @@ public class RequestManageServiceImpl extends ServiceImpl<RequestManageMapper, P
private TechnicalSpecificationServiceImpl technicalSpecificationService;
@Autowired
private QuoteServiceImpl quoteService;
@Autowired
private RohsServiceImpl rohsService;
@Autowired
private LabServiceImpl labService;
@Value("${oa-api.api-url}")
private String apiUrlOa;
@ -507,6 +513,14 @@ public class RequestManageServiceImpl extends ServiceImpl<RequestManageMapper, P
paramData.setTableName("plm_quote");
paramData.setFieldName1("quote_version_no");
paramData.setFieldName2("status");
} else if (Constant.ROHS.equals(inData.getDocumentType())) {
paramData.setTableName("plm_rohs");
paramData.setFieldName1("reference_no");
paramData.setFieldName2("status");
} else if (Constant.LAB.equals(inData.getDocumentType())) {
paramData.setTableName("plm_lab");
paramData.setFieldName1("reference_no");
paramData.setFieldName2("status");
}
if ("update".equals(data.getProcessFlag())) {
// 2025-07-14 根据上一个节点的updateBy获取域控账号 再根据域控查询oa人员id
@ -545,6 +559,10 @@ public class RequestManageServiceImpl extends ServiceImpl<RequestManageMapper, P
technicalSpecificationService.submitQuotationToFlow(vo);
} else if (Constant.QUOTE.equals(inData.getDocumentType())) {
quoteService.submitQuoteToFlow(vo);
} else if (Constant.ROHS.equals(inData.getDocumentType())) {
rohsService.submitRohsToFlow(vo);
} else if (Constant.LAB.equals(inData.getDocumentType())) {
labService.submitLabToFlow(vo);
}
} else {
// 修改单据的节点结论和驳回意见

6
src/main/java/com/spring/modules/rohs/service/RohsService.java

@ -2,6 +2,7 @@ package com.spring.modules.rohs.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.spring.common.utils.PageUtils;
import com.spring.modules.change.vo.ChangeRequestVo;
import com.spring.modules.change.vo.ProcessFormVo;
import com.spring.modules.rohs.entity.RohsEntity;
import com.spring.modules.rohs.entity.RohsMaterialEntity;
@ -70,4 +71,9 @@ public interface RohsService extends IService<RohsEntity> {
* 删除RoHs材料明细
*/
void removeMaterials(String site, String referenceNo);
/**
* 流程干预提交节点更新/流程干预
*/
void submitRohsToFlow(ChangeRequestVo data);
}

53
src/main/java/com/spring/modules/rohs/service/impl/RohsServiceImpl.java

@ -17,6 +17,7 @@ import com.spring.modules.change.entity.ParamData;
import com.spring.modules.change.entity.ProcessFormEntity;
import com.spring.modules.change.mapper.ChangeManagementMapper;
import com.spring.modules.change.service.impl.ChangeManagementServiceImpl;
import com.spring.modules.change.vo.ChangeRequestVo;
import com.spring.modules.change.vo.ProcessFormVo;
import com.spring.modules.request.vo.PlmRequestDetailVo;
import com.spring.modules.rohs.entity.RohsEntity;
@ -437,6 +438,58 @@ public class RohsServiceImpl extends ServiceImpl<RohsMapper, RohsEntity> impleme
rohsMaterialService.remove(removeWrapper);
}
/**
* 流程干预提交节点更新/流程干预
*/
@Override
@Transactional
public void submitRohsToFlow(ChangeRequestVo data) {
if (data == null || StringUtils.isBlank(data.getSite()) || StringUtils.isBlank(data.getDocumentNo()) || StringUtils.isBlank(data.getUserName())) {
throw new RuntimeException("流程干预参数不完整,无法提交RoHs流程");
}
Map<String, String> baseData = changeManagementService.getSubmitBaseData(data.getSite(), data.getUserName(), data.getDocumentNo());
RohsEntity rohs = this.getDetail(data.getSite(), data.getDocumentNo());
if (rohs == null) {
throw new RuntimeException("未找到对应RoHs单据");
}
ParamData paramData = new ParamData(data.getSite(), baseData.get("nodeId"), baseData.get("nodeName"), data.getDocumentNo(), data.getUserName(), baseData.get("classificationNo"),
baseData.get("userId"), baseData.get("workflowId"), baseData.get("workflowname"), baseData.get("requestName"), baseData.get("path"), baseData.get("requestId"),
"plm_rohs", "reference_no", "status", rohs.getStepId(), data.getBu() == null ? "" : data.getBu(),
baseData.get("domainControlAccount"), baseData.get("menuId"), baseData.get("menuName"), data.getNodeConclusion(), data.getRejectOpinion() == null ? "" : data.getRejectOpinion(), data.getNodeId());
if ("update".equals(data.getProcessFlag())) {
List<MainData> mainData = getSubmitMainData(data.getSite(), baseData, rohs);
paramData.setMainData(mainData);
SubmitRequestParam submitRequestParam = new SubmitRequestParam();
submitRequestParam.setUserId(data.getUpdateBy());
submitRequestParam.setRequestId(paramData.getRequestId());
submitRequestParam.setMainData(paramData.getMainData());
String submitRequestURL = apiUrlOa + "/oa/interface/submitRequest";
ResponseData submitRequestResponses = HttpClientUtil.doPostByRawWithOA(submitRequestURL, submitRequestParam);
if (!"0".equals(submitRequestResponses.getCode())) {
throw new RuntimeException("OA提交流程异常信息:" + submitRequestResponses.getMsg());
}
// 节点更新时后续OA流转操作人使用上一节点审批人
paramData.setUserId(data.getUpdateBy());
}
try {
changeManagementService.agreeFunction(paramData, Constant.ROHS);
} catch (Exception e) {
DoForceDrawBackParam doForceDrawBackParam = new DoForceDrawBackParam();
doForceDrawBackParam.setUserId(paramData.getUserId());
doForceDrawBackParam.setRequestId(paramData.getRequestId());
String doForceDrawBackURL = apiUrlOa + "/oa/interface/doForceDrawBack";
ResponseData doForceDrawBackResponses = HttpClientUtil.doPostByRawWithOA(doForceDrawBackURL, doForceDrawBackParam);
if (!"0".equals(doForceDrawBackResponses.getCode())) {
throw new RuntimeException("OA撤回流程异常信息:" + doForceDrawBackResponses.getMsg());
}
throw new RuntimeException(e.getMessage());
}
}
private List<MainData> getSubmitMainData(String site, Map<String, String> baseData, RohsEntity rohs) {
List<MainData> mainData = new ArrayList<>();
List<PlmRequestDetailVo> nodeDetails = changeManagementMapper.queryNodeDetails(site, baseData.get("workflowId"), baseData.get("nodeId"), baseData.get("classificationNo"));

Loading…
Cancel
Save