|
@@ -25,6 +25,7 @@ import org.apache.commons.lang.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
+import org.springframework.web.bind.annotation.RequestBody;
|
|
|
|
|
|
import java.lang.reflect.InvocationTargetException;
|
|
|
import java.util.*;
|
|
@@ -106,24 +107,16 @@ public class GroupSopServiceImpl implements GroupSopService {
|
|
|
@Override
|
|
|
@Transactional
|
|
|
public boolean addPublishedSop(SaveSopVo saveSopVo) throws Exception {
|
|
|
-
|
|
|
//找到sop 与与对象、设备型号、工单类型、自定义标签、sop关系 并插入数据库中
|
|
|
addSopRelation(saveSopVo);
|
|
|
- //落库本条sop*/
|
|
|
- //填充必要字段
|
|
|
-
|
|
|
- //将 请求体中的参数拷贝到我们里面
|
|
|
- //将对象映射到数据库实体上面去
|
|
|
+ Set<String> sopRefSops = this.getSopRefSops(saveSopVo);
|
|
|
Sop sop = SopMapper.INSTANCE.SaveSopVoToSop(saveSopVo);
|
|
|
- /*sop.setSopStatus(SopConst.SOP_STATUS_PUBLISH);
|
|
|
- sop.setPublishStatus(SopConst.PUBLISH_STATUS_NORMAL);*/
|
|
|
SopState sopState = sopStateMachine.newPublic();
|
|
|
- //设置状态
|
|
|
setSopStatus(sop, sopState);
|
|
|
+ sop.setRefSopIds(new ArrayList<>(sopRefSops));
|
|
|
sop.setVersionCount(1);
|
|
|
sop.setVersion("V0.1");
|
|
|
sop.setVersionExplain("[\""+ CommonConst.version_explain_create+"\"]");
|
|
|
- //将参数转化为指定的字段后进行存储
|
|
|
sop.insert();
|
|
|
return true;
|
|
|
}
|
|
@@ -221,7 +214,6 @@ public class GroupSopServiceImpl implements GroupSopService {
|
|
|
List<SaveSopVo.FitObjsBean> sopRelObjs = getSopRelObjs(saveSopVo);
|
|
|
if(CollectionUtils.isNotEmpty(sopRelObjs)) {
|
|
|
for (SaveSopVo.FitObjsBean sopRelObj : sopRelObjs) {
|
|
|
-
|
|
|
SopObjRel sopObjRel = new SopObjRel();
|
|
|
sopObjRel.setSopId(saveSopVo.getSop_id());
|
|
|
sopObjRel.setObjId(sopRelObj.getObj_id());
|
|
@@ -558,9 +550,9 @@ public class GroupSopServiceImpl implements GroupSopService {
|
|
|
org.springframework.beans.BeanUtils.copyProperties(oldSop, sopHis);
|
|
|
//获取sop的版本信息
|
|
|
Integer versionCount = oldSop.getVersionCount();
|
|
|
- Map<String, SopHis.RefedSopBean> stringProfileMap = proccessSopIdRefProfile(oldSop.getRefSopIds());
|
|
|
+ Map<String, RefedSopBean> stringProfileMap = proccessSopIdRefProfile(oldSop.getRefSopIds());
|
|
|
//在每一步上追加该信息
|
|
|
- proccessSopItem(sopHis, stringProfileMap, null);
|
|
|
+ proccessSopItem(sopHis.getSteps(), stringProfileMap, null,null);
|
|
|
//在refed中添加信息
|
|
|
sopHis.setRefedSops(getSopProfileOfRefCurrentSop(sopHis.getSopId()));
|
|
|
|
|
@@ -601,15 +593,24 @@ public class GroupSopServiceImpl implements GroupSopService {
|
|
|
|
|
|
|
|
|
|
|
|
-
|
|
|
+ public boolean destoryAllSopRelation(String sopId) {
|
|
|
+ sopObjRelService.deleteBySopId(sopId);
|
|
|
+ sopEquipModelRelService.deleteBySopId(sopId);
|
|
|
+ sopOrderTypeRelService.deleteBySopId(sopId);
|
|
|
+ sopLabelRelService.deleteBySopId(sopId);
|
|
|
+ sopSopRelService.deleteBySopId(sopId);
|
|
|
+ return true;
|
|
|
+ }
|
|
|
private boolean updateSopRelation(SaveSopVo saveSopVo) throws Exception{
|
|
|
|
|
|
+ destoryAllSopRelation(saveSopVo.getSop_id());
|
|
|
+
|
|
|
//添加sop与对象关系-sop_obj_rel
|
|
|
List<SaveSopVo.FitObjsBean> sopRelObjs = getSopRelObjs(saveSopVo);
|
|
|
|
|
|
//查询数据库中的关联信息
|
|
|
//删除所有
|
|
|
- sopObjRelService.deleteBySopId(saveSopVo.getSop_id());
|
|
|
+
|
|
|
if(CollectionUtils.isNotEmpty(sopRelObjs)) {
|
|
|
for (SaveSopVo.FitObjsBean sopRelObj : sopRelObjs) {
|
|
|
SopObjRel sopObjRel = new SopObjRel();
|
|
@@ -622,7 +623,6 @@ public class GroupSopServiceImpl implements GroupSopService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- sopEquipModelRelService.deleteBySopId(saveSopVo.getSop_id());
|
|
|
|
|
|
|
|
|
//添加sop与设备型号关系-sop_equip_model_rel
|
|
@@ -640,7 +640,7 @@ public class GroupSopServiceImpl implements GroupSopService {
|
|
|
|
|
|
//删除所有
|
|
|
|
|
|
- sopOrderTypeRelService.deleteBySopId(saveSopVo.getSop_id());
|
|
|
+
|
|
|
|
|
|
|
|
|
//添加sop与工单类型关系-sop_order_type_rel
|
|
@@ -659,7 +659,7 @@ public class GroupSopServiceImpl implements GroupSopService {
|
|
|
//添加sop与自定义标签关系-sop_label_rel
|
|
|
|
|
|
|
|
|
- sopLabelRelService.deleteBySopId(saveSopVo.getSop_id());
|
|
|
+
|
|
|
List<String> labels = saveSopVo.getLabels();
|
|
|
distinctCollection(labels);
|
|
|
if(CollectionUtils.isNotEmpty(labels)) {
|
|
@@ -674,7 +674,7 @@ public class GroupSopServiceImpl implements GroupSopService {
|
|
|
|
|
|
|
|
|
|
|
|
- sopSopRelService.deleteBySopId(saveSopVo.getSop_id());
|
|
|
+
|
|
|
//添加sop与sop关系-sop_sop_rel
|
|
|
Set<String> sopRefSops = getSopRefSops(saveSopVo);
|
|
|
if(CollectionUtils.isNotEmpty(sopRefSops)) {
|
|
@@ -701,7 +701,7 @@ public class GroupSopServiceImpl implements GroupSopService {
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
- public List< SopHis.RefedSopBean> getSopProfileOfRefCurrentSop( String sopId) throws Exception{
|
|
|
+ public List<RefedSopBean> getSopProfileOfRefCurrentSop( String sopId) throws Exception{
|
|
|
//查询引用该sop的sopid
|
|
|
QueryWrapper<SopSopRel> sopSopRelQueryWrapper = new QueryWrapper<>();
|
|
|
sopSopRelQueryWrapper.eq("rel_sop_id",sopId);
|
|
@@ -718,45 +718,78 @@ public class GroupSopServiceImpl implements GroupSopService {
|
|
|
|
|
|
/**
|
|
|
* 处理sop详情 补充引用sop简介,添加内容对象变化标识
|
|
|
- * @param sop
|
|
|
+ * @param sopStepsBean
|
|
|
* @param refSopProfile
|
|
|
* @Param changedObjIds objId //对象变化数据key:objId value:{"objId":objId, "objName":objName, "objType":objType}
|
|
|
* @return
|
|
|
*/
|
|
|
- public void proccessSopItem(SopHis sop, Map<String, SopHis.RefedSopBean> refSopProfile, Set<String> changedObjIds){
|
|
|
- if(CollectionUtils.isNotEmpty(changedObjIds)) {
|
|
|
- List<SopHis.FitObjsBean> fitObjs = sop.getFitObjs();
|
|
|
- if(CollectionUtils.isNotEmpty(fitObjs)) {
|
|
|
- for (SopHis.FitObjsBean fitObj : fitObjs) {
|
|
|
+ public void proccessSopItem(List<SopStepsBean> sopStepsBean, Map<String, RefedSopBean> refSopProfile, List<FitObjsBean> fitObjs,Set<String> changedObjIds){
|
|
|
+ /* if(CollectionUtils.isNotEmpty(changedObjIds)) {
|
|
|
+ if (CollectionUtils.isNotEmpty(fitObjs)) {
|
|
|
+ for (FitObjsBean fitObj : fitObjs) {
|
|
|
String obj_id = fitObj.getObj_id();
|
|
|
- if(changedObjIds.contains(obj_id)) {
|
|
|
+ if (changedObjIds.contains(obj_id)) {
|
|
|
fitObj.setIs_revise(true);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- //處理步驟
|
|
|
- List<SopStepsBean> steps = sop.getSteps();
|
|
|
- for (SopStepsBean step : steps) {
|
|
|
+ }*/
|
|
|
+ //填充属性
|
|
|
+ if(CollectionUtils.isNotEmpty(sopStepsBean)) {
|
|
|
+ for (SopStepsBean step : sopStepsBean) {
|
|
|
Boolean from_sop = step.isFrom_sop();
|
|
|
- if(BooleanUtils.isTrue(from_sop)) {
|
|
|
+ if (BooleanUtils.isTrue(from_sop)) {
|
|
|
//将引用的简洁填充上去
|
|
|
String sop_id = step.getSop_id();
|
|
|
- SopHis.RefedSopBean profile = refSopProfile.get(sop_id);
|
|
|
- if(profile != null) {
|
|
|
+ RefedSopBean profile = refSopProfile.get(sop_id);
|
|
|
+ if (profile != null) {
|
|
|
step.setProfile(profile);
|
|
|
}
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
List<SopStepsBean.StepContentBean> step_content = step.getStep_content();
|
|
|
- if(CollectionUtils.isNotEmpty(step_content)) {
|
|
|
+ if (CollectionUtils.isNotEmpty(step_content)) {
|
|
|
for (SopStepsBean.StepContentBean stepContentBean : step_content) {
|
|
|
+
|
|
|
+ /*
|
|
|
+ * 根据专业code返回专业名称 此处待完善
|
|
|
+ */
|
|
|
+ stepContentBean.setDomain_name("没有提供接口");
|
|
|
Boolean from_sop1 = stepContentBean.isFrom_sop();
|
|
|
- if(BooleanUtils.isTrue(from_sop1)) {
|
|
|
+ if (BooleanUtils.isTrue(from_sop1)) {
|
|
|
String sop_id = stepContentBean.getSop_id();
|
|
|
- SopHis.RefedSopBean profile = refSopProfile.get(sop_id);
|
|
|
- if(profile != null) {
|
|
|
+ RefedSopBean profile = refSopProfile.get(sop_id);
|
|
|
+ if (profile != null) {
|
|
|
stepContentBean.setProfile(profile);
|
|
|
}
|
|
|
}
|
|
|
+ /*else {
|
|
|
+ if (CollectionUtils.isNotEmpty(changedObjIds)) {
|
|
|
+ List<SopStepsBean.StepContentBean.ContentObjsBean> content_objs = stepContentBean.getContent_objs();
|
|
|
+ if(CollectionUtils.isNotEmpty(content_objs)) {
|
|
|
+ for (SopStepsBean.StepContentBean.ContentObjsBean content_obj : content_objs) {
|
|
|
+ String obj_id = content_obj.getObj_id();
|
|
|
+ if(changedObjIds.contains(obj_id)) {
|
|
|
+ content_obj.setIs_revise(true);
|
|
|
+ }else {
|
|
|
+ List<SopStepsBean.StepContentBean.ContentObjsBean.ParentsBean> parents = content_obj.getParents();
|
|
|
+ if(CollectionUtils.isNotEmpty(parents)) {
|
|
|
+ for (SopStepsBean.StepContentBean.ContentObjsBean.ParentsBean parent : parents) {
|
|
|
+ List<String> parent_ids = parent.getParent_ids();
|
|
|
+ if(CollectionUtils.isNotEmpty(parent_ids)) {
|
|
|
+ for (String parent_id : parent_ids) {
|
|
|
+ if(changedObjIds.contains(parent_id)){
|
|
|
+ //内容对象所属大类变化
|
|
|
+ content_obj.setIs_revise(true);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }*/
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -772,18 +805,20 @@ public class GroupSopServiceImpl implements GroupSopService {
|
|
|
* @return map key:sopId value:sop对象
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
- public Map<String, SopHis.RefedSopBean> proccessSopIdRefProfile(List<String> refSopIds) throws Exception {
|
|
|
- List<Sop> sops = sopService.listByIds(refSopIds);
|
|
|
- Map<String, SopHis.RefedSopBean> sopId_Profile = new HashMap<>();
|
|
|
- for (Sop sopItem : sops) {
|
|
|
- SopHis.RefedSopBean profile = new SopHis.RefedSopBean();
|
|
|
- profile.setRef_sop_id(sopItem.getSopId());
|
|
|
- profile.setRef_sop_name(sopItem.getSopName());
|
|
|
- profile.setVersion(sopItem.getVersion());
|
|
|
- profile.setStep_count(sopItem.getSteps().size());
|
|
|
- profile.setStauts_explain(getSopStatus(sopItem));
|
|
|
- profile.setUpdate_time(DateUtil.transferDateFormat(sopItem.getUpdateTime(), CommonConst.date_format_save, CommonConst.date_format_show));
|
|
|
- sopId_Profile.put(sopItem.getSopId(), profile);
|
|
|
+ public Map<String, RefedSopBean> proccessSopIdRefProfile(List<String> refSopIds) throws Exception {
|
|
|
+ Map<String, RefedSopBean> sopId_Profile = new HashMap<>();
|
|
|
+ if(CollectionUtils.isNotEmpty(refSopIds)) {
|
|
|
+ List<Sop> sops = sopService.listByIds(refSopIds);
|
|
|
+ for (Sop sopItem : sops) {
|
|
|
+ RefedSopBean profile = new RefedSopBean();
|
|
|
+ profile.setRef_sop_id(sopItem.getSopId());
|
|
|
+ profile.setRef_sop_name(sopItem.getSopName());
|
|
|
+ profile.setVersion(sopItem.getVersion());
|
|
|
+ profile.setStep_count(sopItem.getSteps().size());
|
|
|
+ profile.setStauts_explain(getSopStatus(sopItem));
|
|
|
+ profile.setUpdate_time(DateUtil.transferDateFormat(sopItem.getUpdateTime(), CommonConst.date_format_save, CommonConst.date_format_show));
|
|
|
+ sopId_Profile.put(sopItem.getSopId(), profile);
|
|
|
+ }
|
|
|
}
|
|
|
return sopId_Profile;
|
|
|
}
|
|
@@ -1463,18 +1498,7 @@ public class GroupSopServiceImpl implements GroupSopService {
|
|
|
Sop one = sopService.getOne(sopQueryWrapper);
|
|
|
// 1通过sop_sop_rel关系表查询到所有引用当前sop的sopID
|
|
|
|
|
|
- QueryWrapper<SopSopRel> sopSopRelQueryWrapper = new QueryWrapper<>();
|
|
|
- sopSopRelQueryWrapper.in("rel_sop_id",one.getSopId()).eq("valid",true);
|
|
|
- List<SopSopRel> sopSopRels = sopSopRelService.list(sopSopRelQueryWrapper);
|
|
|
- Set<String> ids = new HashSet<>();
|
|
|
- for (SopSopRel sopSopRel : sopSopRels) {
|
|
|
- ids.add(sopSopRel.getRelSopId());
|
|
|
- }
|
|
|
- // 2根据sopID 和有效状态 批量查询sop:name、status、update_time、version、stauts_explain
|
|
|
-
|
|
|
- QueryWrapper<Sop> sopQueryWrapper2 = new QueryWrapper<>();
|
|
|
- sopQueryWrapper2.in("sop_id",ids).eq("valid",true);
|
|
|
- List<Sop> list = sopService.list(sopQueryWrapper2);
|
|
|
+ List<Sop> list = getReferencedSops(one.getSopId());
|
|
|
|
|
|
List<RefSopInfo> refSopInfos = new ArrayList<>();
|
|
|
if(CollectionUtils.isNotEmpty(list)) {
|
|
@@ -1526,6 +1550,21 @@ public class GroupSopServiceImpl implements GroupSopService {
|
|
|
return refSopInfos;
|
|
|
}
|
|
|
|
|
|
+ private List<Sop> getReferencedSops(String sopId) {
|
|
|
+ QueryWrapper<SopSopRel> sopSopRelQueryWrapper = new QueryWrapper<>();
|
|
|
+ sopSopRelQueryWrapper.in("rel_sop_id",sopId).eq("valid",true);
|
|
|
+ List<SopSopRel> sopSopRels = sopSopRelService.list(sopSopRelQueryWrapper);
|
|
|
+ Set<String> ids = new HashSet<>();
|
|
|
+ for (SopSopRel sopSopRel : sopSopRels) {
|
|
|
+ ids.add(sopSopRel.getRelSopId());
|
|
|
+ }
|
|
|
+ // 2根据sopID 和有效状态 批量查询sop:name、status、update_time、version、stauts_explain
|
|
|
+
|
|
|
+ QueryWrapper<Sop> sopQueryWrapper2 = new QueryWrapper<>();
|
|
|
+ sopQueryWrapper2.in("sop_id",ids).eq("valid",true);
|
|
|
+ return sopService.list(sopQueryWrapper2);
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
* 转换sop状态为汉字
|
|
@@ -1547,4 +1586,115 @@ public class GroupSopServiceImpl implements GroupSopService {
|
|
|
}
|
|
|
return status;
|
|
|
}
|
|
|
+
|
|
|
+ @Transactional
|
|
|
+ public boolean destroySopById(@RequestBody DestorySopVo destorySopVo) throws Exception{
|
|
|
+ //如果编辑表中有进行删除
|
|
|
+ sopEditService.deleteBySopId(destorySopVo.getSop_id());
|
|
|
+ Sop sop = sopService.getById(destorySopVo.getSop_id());
|
|
|
+
|
|
|
+ Map<String, RefedSopBean> refSop_profile =
|
|
|
+ this.proccessSopIdRefProfile(sop.getRefSopIds());
|
|
|
+ this.proccessSopItem(sop.getSteps(),refSop_profile,null,null);
|
|
|
+
|
|
|
+ SopState sopState = sopStateMachine.public2Distory();
|
|
|
+ setSopStatus(sop,sopState);
|
|
|
+ Sop.OperatorBean operatorBean = new Sop.OperatorBean();
|
|
|
+ BeanUtils.copyProperties(destorySopVo.getOperator(),operatorBean);
|
|
|
+ sop.setOperator(operatorBean);
|
|
|
+ sop.setVersionExplain(CommonConst.distory_sop);
|
|
|
+ //跟新sop
|
|
|
+ sopService.updateById(sop);
|
|
|
+
|
|
|
+ //删除引用
|
|
|
+ this.destoryAllSopRelation(sop.getSopId());
|
|
|
+
|
|
|
+ //查询引用这个sop的sop
|
|
|
+ List<Sop> list = this.getReferencedSops(destorySopVo.getSop_id());
|
|
|
+ for (Sop sop1 : list) {
|
|
|
+ SopHis sopHis = new SopHis();
|
|
|
+ BeanUtils.copyProperties(sop1,sopHis);
|
|
|
+ removeRefFromStep(sop1,destorySopVo.getSop_id());
|
|
|
+ //rugo sopstep 是空 销毁该sop
|
|
|
+ if(CollectionUtils.isEmpty(sop1.getSteps())) {
|
|
|
+ String sopId = sop1.getSopId();
|
|
|
+ DestorySopVo destorySopVo1 = new DestorySopVo();
|
|
|
+ destorySopVo1.setSop_id(sopId);;
|
|
|
+ destorySopVo1.setOperator(destorySopVo.getOperator());
|
|
|
+ //递归删除
|
|
|
+ destroySopById(destorySopVo1);
|
|
|
+
|
|
|
+ }else {
|
|
|
+ //保存历史版本
|
|
|
+ sopHis.setRefedSops(getSopProfileOfRefCurrentSop(sopHis.getSopId()));
|
|
|
+ sopHisService.save(sopHis);
|
|
|
+ List<String> refSopIds = sop1.getRefSopIds();
|
|
|
+ refSopIds.remove(destorySopVo.getSop_id());
|
|
|
+ updateRecordByKeyAndUpVersion(sop1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * sop引用的sop作废或删除时更新sop步骤(移除删除sop的步骤)
|
|
|
+ * @param sop
|
|
|
+ * @param removedSopId
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public void removeRefFromStep(Sop sop, String removedSopId) {
|
|
|
+
|
|
|
+ List<SopStepsBean> steps = sop.getSteps();
|
|
|
+ Iterator<SopStepsBean> iterator = steps.iterator();
|
|
|
+ while (iterator.hasNext()) {
|
|
|
+ SopStepsBean next = iterator.next();
|
|
|
+ if (BooleanUtils.isTrue(next.getFrom_sop())) {
|
|
|
+ if (StringUtils.equals(removedSopId, next.getSop_id())) {
|
|
|
+ iterator.remove();
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ List<SopStepsBean.StepContentBean> step_content = next.getStep_content();
|
|
|
+ Iterator<SopStepsBean.StepContentBean> stepContentBeanIterator = step_content.iterator();
|
|
|
+ while (stepContentBeanIterator.hasNext()) {
|
|
|
+ SopStepsBean.StepContentBean stepContentBean = stepContentBeanIterator.next();
|
|
|
+ if (BooleanUtils.isTrue(stepContentBean.getFrom_sop())) {
|
|
|
+ if (StringUtils.equals(removedSopId, stepContentBean.getSop_id())) {
|
|
|
+ stepContentBeanIterator.remove();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(CollectionUtils.isEmpty(step_content)) {
|
|
|
+ iterator.remove();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public Sop queryPublishedSopById( String sopId) throws Exception{
|
|
|
+ Sop sop = sopService.getById(sopId);
|
|
|
+ List<String> equipModelIds = sop.getEquipModelIds();
|
|
|
+ if(CollectionUtils.isNotEmpty(equipModelIds)) {
|
|
|
+ //查询设备的名称
|
|
|
+ }
|
|
|
+
|
|
|
+ //设置 equip_models
|
|
|
+ String publishStatus = sop.getPublishStatus();
|
|
|
+ Set<String> objectIds = new HashSet<>();
|
|
|
+ if(SopConst.PUBLISH_STATUS_REVISE.equals(publishStatus) || SopConst.PUBLISH_STATUS_REVISEING.equals(publishStatus)) {
|
|
|
+ //查询哪些对象发生了改变
|
|
|
+ //"没有提供接口"
|
|
|
+ }
|
|
|
+ Map<String, RefedSopBean> stringRefedSopBeanMap = this.proccessSopIdRefProfile(sop.getRefSopIds());
|
|
|
+ this.proccessSopItem(sop.getSteps(),stringRefedSopBeanMap,null,null);
|
|
|
+ String extend_field = sop.getExtendField();
|
|
|
+ if (!StringUtil.isNull(extend_field)) {
|
|
|
+ sop.setExtendField("没有提供接口");
|
|
|
+ }
|
|
|
+
|
|
|
+ return sop;
|
|
|
+
|
|
|
+ }
|
|
|
}
|