xiejun
2023-11-30 529b40cc4cd049ae3e96d3aedae3142e0effea60
标准申请集成接口添加
已修改6个文件
已添加4个文件
434 ■■■■ 文件已修改
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/applybz/ApplyBZDataVO.java 92 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/applybz/ClassfyBZVO.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/attrmap/appcodeBZ.xml 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/attrmap/result.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/attrmap/标准..JSON 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/attrmap/标准结果.json 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeSyncUniversalController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmEngineService.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java 173 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/applybz/ApplyBZDataVO.java
@@ -4,6 +4,7 @@
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
import com.thoughtworks.xstream.annotations.XStreamImplicit;
import com.vci.ubcs.code.vo.webserviceModel.apply.ProppertyVO;
import org.springframework.beans.factory.annotation.Value;
import java.util.List;
@@ -41,20 +42,42 @@
    @XStreamImplicit
    private List<ProppertyVO> prop;
    /***
     * æ˜¯å¦ä¿®è®¢
     *  æ“ä½œç±»åž‹
     */
    private boolean amendmentFlag;
    @XStreamAsAttribute
    private String operationType;
    /***
     *是否是系列标准
     */
    private boolean seriesStandardFlag;
    /**
     * æ˜¯å¦ç»§ç»­ç¼–号
    @XStreamAsAttribute
    private boolean seriesFlag;
    /***
     * å‘布时间
     */
    private boolean continueNumberFlag;
    @XStreamAsAttribute
    private String releaseTime;
    /***
     * æºæ ‡å‡†å·
     */
    @XStreamAsAttribute
    private String oldCode;
    /***
     * ç³»åˆ—流水
     */
    @XStreamAsAttribute
    private String seriesFlow;
    /***
     * æ˜¯å¦å˜æ›´ç³»åˆ—
     */
    @XStreamAsAttribute
    private boolean editSeriesFlag;
    /***
     * å¹´ä»£å·
     */
    @XStreamAsAttribute
    private String yearNumber;
    public String getId() {
@@ -105,28 +128,52 @@
        this.prop = prop;
    }
    public boolean isAmendmentFlag() {
        return amendmentFlag;
    public String getOperationType() {
        return operationType;
    }
    public void setAmendmentFlag(boolean amendmentFlag) {
        this.amendmentFlag = amendmentFlag;
    public void setOperationType(String operationType) {
        this.operationType = operationType;
    }
    public boolean isSeriesStandardFlag() {
        return seriesStandardFlag;
    public boolean isSeriesFlag() {
        return seriesFlag;
    }
    public void setSeriesStandardFlag(boolean seriesStandardFlag) {
        this.seriesStandardFlag = seriesStandardFlag;
    public void setSeriesFlag(boolean seriesFlag) {
        this.seriesFlag = seriesFlag;
    }
    public boolean isContinueNumberFlag() {
        return continueNumberFlag;
    public String getReleaseTime() {
        return releaseTime;
    }
    public void setContinueNumberFlag(boolean continueNumberFlag) {
        this.continueNumberFlag = continueNumberFlag;
    public void setReleaseTime(String releaseTime) {
        this.releaseTime = releaseTime;
    }
    public String getOldCode() {
        return oldCode;
    }
    public void setOldCode(String oldCode) {
        this.oldCode = oldCode;
    }
    public String getSeriesFlow() {
        return seriesFlow;
    }
    public void setSeriesFlow(String seriesFlow) {
        this.seriesFlow = seriesFlow;
    }
    public boolean isEditSeriesFlag() {
        return editSeriesFlag;
    }
    public void setEditSeriesFlag(boolean editSeriesFlag) {
        this.editSeriesFlag = editSeriesFlag;
    }
    public String getYearNumber() {
@@ -146,9 +193,12 @@
            ", creator='" + creator + '\'' +
            ", editor='" + editor + '\'' +
            ", prop=" + prop +
            ", amendmentFlag=" + amendmentFlag +
            ", seriesStandardFlag=" + seriesStandardFlag +
            ", continueNumberFlag=" + continueNumberFlag +
            ", operationType='" + operationType + '\'' +
            ", seriesFlag=" + seriesFlag +
            ", releaseTime='" + releaseTime + '\'' +
            ", oldCode='" + oldCode + '\'' +
            ", seriesFlow='" + seriesFlow + '\'' +
            ", editSeriesFlag='" + editSeriesFlag + '\'' +
            ", yearNumber='" + yearNumber + '\'' +
            '}';
    }
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/applybz/ClassfyBZVO.java
@@ -3,6 +3,7 @@
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
import com.vci.ubcs.code.vo.webserviceModel.apply.ApplyDatasVO;
import com.vci.ubcs.code.vo.webserviceModel.apply.SectionsVO;
/**
 * åˆ†ç±»ä¿¡æ¯
@@ -24,6 +25,12 @@
     */
    @XStreamAsAttribute
    private  String fullclsfNamePath;
    /**
     * ç æ®µä¿¡æ¯
     */
    private SectionsVO sections;
    /**
     * æ•°æ®é›†åˆ
     */
@@ -61,6 +68,14 @@
        this.objects = objects;
    }
    public SectionsVO getSections() {
        return sections;
    }
    public void setSections(SectionsVO sections) {
        this.sections = sections;
    }
    @Override
    public String toString() {
        return "ClassfyBZVO{" +
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/attrmap/appcodeBZ.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<data systemId="ZZ">
        <user userName="weidy" trueName="魏大勇" ip="127.0.0.1"/>
        <classify classCode="QYBZ" library="standard" fullclsfNamePath="标准##VCI##企业标准">
            <sections>
                <section name="固定码段" value="Q/3B"></section>
                <section name="系列号" value=""></section>
                <section name="分割符" value="-"></section>
                <section name="年代号" value="2023"></section>
            </sections>
            <objects>
                <object code=""  id="0023401" status="Released" operate="create" creator="weidy" operationType="1" seriesFlag="false" releaseTime="2023-11-14" oldCode="" seriesFlow="" editSeriesFlag="false" yearNumber="2023" >
                    <prop key="name" text="名称" value="测试标准"/>
                    <prop key="approveDate" text="批准日期" value="2023-11-14"/>
                    <prop key="releaseDate" text="发布日期" value="2023-11-14"/>
                    <prop key="ImplementationDate" text="实施日期" value="2023-11-14"/>
                    <prop key="isSeries" text="是否系列" value="false"/>
                    <prop key="reviseSeries" text="修订为系列" value="false"/>
                </object>
            </objects>
        </classify>
</data>
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/attrmap/result.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
<data errorid="0">
    <msg>编码申请成功:编码为:Q/3B9-2023</msg>
    <classifys>
        <classify classCode="QYBZ" library="standard" fullclsfNamePath="标准##VCI##企业标准">
            <objects class="linked-list">
                <object id="0023401" errorid="0" code="Q/3B9-2023">
                    <msg>编码申请成功:编码为:Q/3B9-2023</msg>
                </object>
            </objects>
        </classify>
    </classifys>
</data>
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/attrmap/±ê×¼..JSON
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,79 @@
{
    "data": {
        "systemId": "ZZ",
        "user": {
            "ip": "127.0.0.1",
            "trueName": "魏大勇",
            "userName": "weidy"
        },
        "classify": {
            "fullclsfNamePath": "标准##VCI##企业标准",
            "library": "standard",
            "classCode": "QYBZ",
            "sections": {
                "section": [
                    {
                        "value": "Q/3B",
                        "name": "固定码段"
                    },
                    { "name": "系列号" },
                    {
                        "value": "-",
                        "name": "分割符"
                    },
                    {
                        "value": "2023",
                        "name": "年代号"
                    }
                ]
            },
            "objects": {
                "object": {
                    "yearNumber": "2023",
                    "editSeriesFlag": "false",
                    "releaseTime": "2023-11-14",
                    "seriesFlag": "false",
                    "oldCode": "",
                    "seriesFlow": "",
                    "operationType": "1",
                    "creator": "weidy",
                    "operate": "create",
                    "status": "Released",
                    "id": "0023401",
                    "prop": [
                        {
                            "value": "测试标准",
                            "text": "名称",
                            "key": "name"
                        },
                        {
                            "value": "2023-11-14",
                            "text": "批准日期",
                            "key": "approveDate"
                        },
                        {
                            "value": "2023-11-14",
                            "text": "发布日期",
                            "key": "releaseDate"
                        },
                        {
                            "value": "2023-11-14",
                            "text": "实施日期",
                            "key": "ImplementationDate"
                        },
                        {
                            "value": "false",
                            "text": "是否系列",
                            "key": "isSeries"
                        },
                        {
                            "value": "false",
                            "text": "修订为系列",
                            "key": "reviseSeries"
                        }
                    ]
                }
            }
        }
    }
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/attrmap/±ê×¼½á¹û.json
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
{
  "data": {
    "errorid": "0",
    "msg": "编码申请成功:编码为:Q/3B9-2023",
    "classifys": {
      "classify": {
        "fullclsfNamePath": "标准##VCI##企业标准",
        "library": "standard",
        "classCode": "QYBZ",
        "objects": {
          "class": "linked-list",
          "object": {
            "id": "0023401",
            "code": "Q/3B9-2023",
            "errorid": "0",
            "msg": "编码申请成功:编码为:Q/3B9-2023"
          }
        }
      }
    }
  }
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeSyncUniversalController.java
@@ -144,6 +144,7 @@
     * @return
     * @throws Throwable
     */
    @PostMapping("/applyCodeForBZ")
    public String applyCodeForBZ(@RequestParam("dataString")String dataString,@RequestParam("dataType")String dataType, HttpServletRequest request){
        String result="";
        try {
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmEngineService.java
@@ -64,7 +64,12 @@
     * @return è¿”回编码的内容
     */
    String addSaveCode(CodeOrderDTO orderDTO) throws Exception;
    /**
     * ç”³è¯·å•一编码
     * @param orderDTO ç”³è¯·çš„信息,需要包含属性的内容和码段相关的内容
     * @param  authUser æ˜¯å¦æ¨¡æ‹Ÿç™»å½•,true,不模拟,false是模拟
     * @return è¿”回编码的内容
     */
    String addSaveCodeNotauthUser(CodeOrderDTO orderDTO, boolean authUser) throws Exception;
    /**
@@ -501,4 +506,11 @@
     * @return æ‰§è¡Œç»“æžœ
     */
    String addSaveBZ(CodeBZApplyDTO codeBZApplyDTO) throws Exception;
    /**
     * æ ‡å‡†ç”³è¯·å’Œä¿®è®¢ç”¨
     * @param codeBZApplyDTO ç¼–码申请相关的信息,需要有属性和码段相关的信息
     * @param authUser æ˜¯å¦æ¨¡æ‹Ÿç™»å½•,true,不模拟,false是模拟
     * @return æ‰§è¡Œç»“æžœ
     */
    String addSaveBZCodeNotauthUser(CodeBZApplyDTO codeBZApplyDTO, boolean authUser) throws Exception;
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
@@ -886,7 +886,7 @@
     * @param authUser
     * @return
     */
    private String addSaveBZCode(CodeBZApplyDTO codeBZApplyDTO, boolean authUser) throws Exception {
    public String addSaveBZCode(CodeBZApplyDTO codeBZApplyDTO, boolean authUser) throws Exception {
        String code="";
        VciBaseUtil.alertNotNull(codeBZApplyDTO.getCodeClassifyOid(), "主题库分类的主键",
            codeBZApplyDTO.getTemplateOid(), "模板的主键", codeBZApplyDTO.getCodeRuleOid(), "编码规则的主键");
@@ -1112,6 +1112,7 @@
     * @return
     * @throws Exception
     */
    @Override
    public String addSaveBZCodeNotauthUser(CodeBZApplyDTO codeBZApplyDTO, boolean authUser) throws Exception {
        return    addSaveBZCode(codeBZApplyDTO,authUser);
    }
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java
@@ -8,6 +8,7 @@
import com.thoughtworks.xstream.io.xml.DomDriver;
import com.vci.ubcs.code.bo.CodeClassifyFullInfoBO;
import com.vci.ubcs.code.constant.MdmDuckingConstant;
import com.vci.ubcs.code.dto.CodeBZApplyDTO;
import com.vci.ubcs.code.dto.CodeOrderDTO;
import com.vci.ubcs.code.dto.CodeOrderSecDTO;
import com.vci.ubcs.code.entity.*;
@@ -37,7 +38,6 @@
import com.vci.ubcs.code.webService.annotation.VciWebservice;
import com.vci.ubcs.code.webService.config.AttributeMapConfig;
import com.vci.ubcs.code.webService.config.PersonAndDeptConfig;
import com.vci.ubcs.code.wrapper.CodeClassifyWrapper;
import com.vci.ubcs.omd.feign.IBtmTypeClient;
import com.vci.ubcs.omd.vo.BtmTypeVO;
import com.vci.ubcs.starter.exception.VciBaseException;
@@ -54,7 +54,6 @@
import com.vci.ubcs.system.vo.DeptVO;
import com.vci.ubcs.system.vo.RoleVO;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.auth.AuthenticationException;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
@@ -72,6 +71,7 @@
import java.util.*;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.function.Function;
import java.util.stream.Collectors;
import static com.vci.ubcs.code.constant.MdmEngineConstant.DEFAULT_SYNC_ATTR_LIST;
@@ -84,6 +84,50 @@
@Slf4j
@VciWebservice(path = "/universalInterface")
public class UniversalInterfaceImpl<IDockingLogeServiceing> implements UniversalInterfaceI {
    /***
     * æ“ä½œç±»åž‹
     */
    @Value("${bzApply.operationType:operationType}")
    private String operationType;
    /***
     * æ˜¯å¦ç³»åˆ—
     */
    @Value("${bzApply.isSeries:isSeries}")
    private String isSeries;
    /***
     *发布时间
     */
    @Value("${bzApply.releaseTime:releaseTime}")
    private String releaseTime;
    /***
     * æºæ ‡å‡†å·
     */
    @Value("${bzApply.oldCode:oldCode}")
    private String oldCode;
    /***
     * ç³»åˆ—流水
     */
    @Value("${bzApply.seriesFlow:seriesFlow}")
    private String seriesFlow;
    /***
     * æ˜¯å¦å˜æ›´ç³»åˆ—
     */
    @Value("${bzApply.isEditSeries:isEditSeries}")
    private String isEditSeries;
    /***
     * æŽ§åˆ¶æ˜¯å¦å†™å…¥å€¼çš„码段名称
     */
    @Value("${bzApply.secName:系列号}")
    private String secName;
    /***
     * æŽ§åˆ¶æ˜¯å¦å†™å…¥å€¼çš„码段名称
     */
    @Value("${bzApply.yearSecName:年代号}")
    private String yearSecName;
    @Value("${code.universalinterface.checkSystemConfig:true}")
    public boolean CODE_CHECKCONFIG;
@@ -858,6 +902,7 @@
                            orderDTO.setData(rowData.getFiledValue());
                            String code=engineService.addSaveCodeNotauthUser(orderDTO,false);
                            if(StringUtils.isNotBlank(code)) {
                                //rowData.setCode(code);
                                StringBuffer sqlsb = new StringBuffer();
                                sqlsb.append(" select * from ");
                                sqlsb.append(tableName);
@@ -1982,7 +2027,7 @@
            try {
                if ("xml".equals(dataType)) {
                    XStream xStream = new XStream(new DomDriver());
                    xStream.processAnnotations(RootDataVO.class);
                    xStream.processAnnotations(ApplyBZVO.class);
                    xStream.autodetectAnnotations(true);
                    ApplyBZVO rootDataVO = (ApplyBZVO) xStream.fromXML(data);
                    applyBZParamVO.setData(rootDataVO);
@@ -1999,18 +2044,15 @@
            //免密登录申请token,request中添加用户信息
            //passwordFreeLoginService.pwdFreeLoginByBoolean(userVo.getUserName(), this.getRequest());
            passwordFreeLoginService.pwdFreeLoginByBoolean(systemId.toLowerCase(),this.getRequest());
            AuthUtil.getUser();
            //这是账号信息
            SessionInfo sessionInfo = new SessionInfo();
            sessionInfo.setUserId(userVo.getUserName());
            sessionInfo.setUserName(userVo.getTrueName());
            sessionInfo.setIp(userVo.getIp());
            VciBaseUtil.setCurrentUserSessionInfo(sessionInfo);
//            List<XMLResultDataObjectDetailDO> allResultDataObjectDetailDOS=new ArrayList<>();
            String finalSystemId = systemId;
            String libray="";
            boolean isCodeOrGroupCode=false;
            libray = classfyBZVO.getLibrary();
            CodeClassifyVO codeClassifyVO = getClassfy(classfyBZVO,libray);
            log.info("end:分类查询完毕");
@@ -2032,8 +2074,8 @@
            }
            CodeClassifyTemplateVO templateVO = engineService.getUsedTemplateByClassifyOid(codeClassifyVO.getOid());
            if(templateVO==null||StringUtils.isBlank(templateVO.getOid())){
                objerrorCode="1";
                throw  new  Throwable ("根据传输的分类,未获取MDM系统中对应模板");
                objerrorCode="100";
                throw  new  Throwable ("根据传输的分类,未获取系统中对应模板");
            }
            log.info("end:模板查询完毕");
            ApplyBZDatasVO applyBZDatasVO = classfyBZVO.getObjects();
@@ -2041,54 +2083,76 @@
            List<CodeClassifyTemplateAttrVO> attrVOS = templateVO.getAttributes().stream().filter(s -> !DEFAULT_SYNC_ATTR_LIST.contains(s.getId()) && VciBaseUtil.getBoolean(s.getFormDisplayFlag())
            ).collect(Collectors.toList());
            List<ApplyBZDataVO> applyBZDataVOList=    applyBZDatasVO.getObject();
            if(applyBZDataVOList.size()>1){
                objerrorCode="1";
                throw  new  Throwable ("标准申请只支持一条数据申请");
            }
            String finalLibray = libray;
            ClassfyBZVO finalClassfyBZVO = classfyBZVO;
            //规则的主键需要去获取
            CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(codeClassifyVO.getOid());
            if(classifyFullInfo==null ||classifyFullInfo.getCurrentClassifyVO()==null || StringUtils.isBlank(classifyFullInfo.getCurrentClassifyVO().getOid())){
                objerrorCode="1";
                log.info("classifyFullInfo:"+"根据传输的分类,未获取分类相关信息");
                throw  new  Throwable ("根据传输的分类,未获取分类相关信息");
            }
            CodeRuleVO ruleVO = engineService.getCodeRuleByClassifyFullInfo(classifyFullInfo);
            if(ruleVO==null||StringUtils.isBlank(ruleVO.getOid())){
                objerrorCode="102";
                throw  new  Throwable ("根据传输的分类,未获取MDM系统中对应规则");
            }
            log.info("end:规则获取完毕");
            List<CodeOrderSecDTO> codeOrderSecDTOList = getRuleCodeOrderSecDTOs(classfyBZVO.getSections().getSection(), ruleVO,classifyFullInfo);
            log.info("end:码段获取完毕");
            CodeBZApplyDTO codeBZApplyDTO=new CodeBZApplyDTO();
            codeBZApplyDTO.setSecDTOList(codeOrderSecDTOList);//分类码段
            applyBZDataVOList.stream().forEach(applyBZDataVO -> {
                String code="";
                String id=applyBZDataVO.getId();
                try {
                    this.getConfigDatas(finalSystemId, finalLibray, applyBZDatasVO, attrVOS, dataObjectVO);
                    List<ProppertyVO> proppertyVOList=applyBZDataVO.getProp();
                    String oldCodeValue=applyBZDataVO.getOldCode();
                    setPropertyValue(oldCode,oldCodeValue,proppertyVOList);//源标准号
                    boolean editSeriesFlag= applyBZDataVO.isEditSeriesFlag();
                    setPropertyValue(isEditSeries,String.valueOf(editSeriesFlag),proppertyVOList);//是否更为系列
                    boolean seriesFlag=applyBZDataVO.isSeriesFlag();
                    setPropertyValue(isSeries,String.valueOf(seriesFlag),proppertyVOList);//源标准类型
                    String operationTypeValue=applyBZDataVO.getOperationType();
                    setPropertyValue(operationType,operationTypeValue,proppertyVOList);//操作类型1:制定,2:修订
                    String releaseTimeValue= applyBZDataVO.getReleaseTime();
                    setPropertyValue(releaseTime,releaseTimeValue,proppertyVOList);//发布时间
                    String seriesFlow=applyBZDataVO.getSeriesFlow();//系列流水
                    codeBZApplyDTO.setOldCode(oldCodeValue);
                    codeBZApplyDTO.setReleaseTime(releaseTimeValue);
                    codeBZApplyDTO.setEditSeries(editSeriesFlag);
                    codeBZApplyDTO.setSeries(seriesFlag);
                    codeBZApplyDTO.setOperationType(operationTypeValue);
                    codeBZApplyDTO.setSeriesFlow(seriesFlow);
                    codeBZApplyDTO.setCodeClassifyOid(codeClassifyVO.getOid());
                    codeBZApplyDTO.setCodeRuleOid(ruleVO.getOid());
                    codeBZApplyDTO.setTemplateOid(templateVO.getOid());
                    codeBZApplyDTO.setCreator(applyBZDataVO.getCreator());
                    codeBZApplyDTO.setLastModifier(applyBZDataVO.getEditor());
                    codeBZApplyDTO.setLcStatus(applyBZDataVO.getStatus());
                    ApplyBZDatasVO newApplyBZDatasVO=new ApplyBZDatasVO();
                    newApplyBZDatasVO.setObject(Arrays.asList(applyBZDataVO));
                    log.info("end:数据组织完毕");
                    //规则的主键需要去获取
                    CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(codeClassifyVO.getOid());
                    if(classifyFullInfo==null ||classifyFullInfo.getCurrentClassifyVO()==null || StringUtils.isBlank(classifyFullInfo.getCurrentClassifyVO().getOid())){
                        objerrorCode="1";
                        log.info("classifyFullInfo:"+"根据传输的分类,未获取分类相关信息");
                        throw  new  Throwable ("根据传输的分类,未获取分类相关信息");
                    }
                    CodeRuleVO ruleVO = engineService.getCodeRuleByClassifyFullInfo(classifyFullInfo);
                    if(ruleVO==null||StringUtils.isBlank(ruleVO.getOid())){
                        objerrorCode="102";
                        throw  new  Throwable ("根据传输的分类,未获取MDM系统中对应规则");
                    }
                    log.info("end:规则获取完毕");
                    //List<CodeOrderSecDTO> codeOrderSecDTOList = getRuleCodeOrderSecDTOs(ruleVO,classifyFullInfo);
                    log.info("end:码段获取完毕");
                    CodeOrderDTO orderDTO = new CodeOrderDTO();
                    orderDTO.setCodeClassifyOid(codeClassifyVO.getOid());//分类主键
                    //orderDTO.setSecDTOList(codeOrderSecDTOList);//分类码段
                    //mdmIOService.batchSyncApplyCode(orderDTO, dataObjectVO, resultDataObjectDetailDOs,isCodeOrGroupCode);
                    //allResultDataObjectDetailDOS.add(resultDataObjectDetailDOs);
                    log.info("end:申请获取完毕");
                    this.getConfigDatas(finalSystemId, finalLibray, newApplyBZDatasVO, attrVOS, dataObjectVO);
                    log.info("end:数据组织完毕");
                    codeBZApplyDTO.setData(dataObjectVO.getRowData().get(0).getFiledValue());
                    code=engineService.addSaveBZCodeNotauthUser(codeBZApplyDTO,false);
                    msg="编码申请成功:编码为:"+code;
                } catch (Throwable e) {
                    List<ApplyBZDataVO> applyDataVOList = finalClassfyBZVO.getObjects().getObject();
                    objerrorCode = "1";
                    if (!CollectionUtils.isEmpty(applyDataVOList)) {
                        applyDataVOList.stream().forEach(applyDataVO -> {
                            XMLResultDataObjectDetailDO xmlResultDataObjectDetailDO = new XMLResultDataObjectDetailDO();
                            xmlResultDataObjectDetailDO.setCode("");
                            xmlResultDataObjectDetailDO.setId(applyDataVO.getId());
                            xmlResultDataObjectDetailDO.setErrorid(objerrorCode);
                            xmlResultDataObjectDetailDO.setMsg("编码申请失败:" + e.getMessage());
                            resultDataObjectDetailDOs.add(xmlResultDataObjectDetailDO);
                        });
                    } else {
                        XMLResultDataObjectDetailDO xmlResultDataObjectDetailDO = new XMLResultDataObjectDetailDO();
                        xmlResultDataObjectDetailDO.setCode("");
                        xmlResultDataObjectDetailDO.setId("");
                        xmlResultDataObjectDetailDO.setErrorid(objerrorCode);
                        xmlResultDataObjectDetailDO.setMsg("编码申请失败:" + e.getMessage());
                        resultDataObjectDetailDOs.add(xmlResultDataObjectDetailDO);
                    }
                    msg="编码申请失败:" +e.getMessage();
                    e.printStackTrace();
                }finally {
                    XMLResultDataObjectDetailDO xmlResultDataObjectDetailDO = new XMLResultDataObjectDetailDO();
                    xmlResultDataObjectDetailDO.setCode(code);
                    xmlResultDataObjectDetailDO.setId(id);
                    xmlResultDataObjectDetailDO.setErrorid(objerrorCode);
                    xmlResultDataObjectDetailDO.setMsg(msg);
                    resultDataObjectDetailDOs.add(xmlResultDataObjectDetailDO);
                }
            });
            XMLResultClassfyVO resultClassfyVO = new XMLResultClassfyVO();
@@ -2106,7 +2170,6 @@
            e.printStackTrace();
            msg="申请编码失败:"+e.getMessage();
        }finally {
            XMLResultSystemVO xmlResultSystemVO=new XMLResultSystemVO();
            xmlResultSystemVO.setClassifys(resultClassfyVOList);
            xmlResultSystemVO.setMsg(msg);
@@ -2137,6 +2200,13 @@
        log.info("返回参数:"+resultStr);
        //调用集团申请接口申请集团码
        return resultStr;
    }
    private void setPropertyValue(String key,String value,List<ProppertyVO> proppertyVOList){
        ProppertyVO proppertyVO=new ProppertyVO();
        proppertyVO.setKey(key);
        proppertyVO.setValue(StringUtils.isBlank(value)?"":value);
        proppertyVOList.add(proppertyVO);
    }
    /***
     * æŸ¥è¯¢æ ¡éªŒåˆ†ç±»ä¿¡æ¯
@@ -2265,6 +2335,7 @@
        Map<String,String> errorMap=new HashMap<>();
        for(CodeBasicSecVO codeBasicSecVO: codeBasicSecVOS) {
            String sectype = codeBasicSecVO.getSecType();
            String newSecName=codeBasicSecVO.getName();
            String classifySecOid= codeBasicSecVO.getOid();
            String message="";
            if (!sectype.equals(CodeSecTypeEnum.CODE_SERIAL_SEC.getValue())) {
@@ -2294,7 +2365,7 @@
                            }
                        }
                    }
                    if(StringUtils.isBlank(sectypeValue)){
                    if(StringUtils.isBlank(sectypeValue)&&!newSecName.equals(secName)){
                        message="传入的分类码段:【" + name + " ã€‘的值不允许为空";
                        errorMap.put("error",errorMap.getOrDefault("error","")+";"+message);
                    }
@@ -2384,7 +2455,7 @@
                LinkedHashMap<Integer, String> integerValueMap = new LinkedHashMap<>();
                Map<String, String> filedValueMap = new HashMap<>();
                if (!CollectionUtils.isEmpty(proppertyVOList)) {
                    Map<String, String> sourceKeyValueMap = proppertyVOList.stream().collect(Collectors.toMap(ProppertyVO::getKey, ProppertyVO::getValue, (key1, key2) -> key2));
                    Map<String, String> sourceKeyValueMap = proppertyVOList.stream().collect(Collectors.toMap(ProppertyVO::getKey,  ProppertyVO::getValue, (key1, key2) -> key2));
                    Map<String, String> keyValueMap = new HashMap<>();
                    //判断attrMapConfigMap是否有值,如果没有则说明基础默认的是编码系统字段
                    if (!CollectionUtils.isEmpty(attrMapConfigMap)) {