xiejun
2024-01-23 8238e7215367e39de004c29244d2597bb1e5519b
集团码申请接口调试
已修改4个文件
已添加5个文件
412 ■■■■ 文件已修改
Source/UBCS/ubcs-service-api/ubcs-applyjtcodeservice-api/src/main/java/com/vci/ubcs/code/applyjtcodeservice/vo/DockingMainData.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/feign/MdmSearchItemCodeProvider.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/SearchItemDataVO.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/SearchItemParam.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/SearchItemVO.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/service/impl/GroupMdmInterServiceImpl.java 130 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/Scheduling/SearchDataSyncForERPScheduling.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeDuckingSyncService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeDuckingSyncServiceImpl.java 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-applyjtcodeservice-api/src/main/java/com/vci/ubcs/code/applyjtcodeservice/vo/DockingMainData.java
@@ -28,6 +28,10 @@
     */
    private String  className;
    /***
     * é›†å›¢ç 
     */
    private String customCoding;
    /***
     * æ¨¡åž‹è§†å›¾ä¿¡æ¯
     */
    private List<DockingViewVO> viewInfos;
@@ -41,6 +45,7 @@
            ", createBy='" + createBy + '\'' +
            ", className='" + className + '\'' +
            ", viewInfos=" + viewInfos +
            ", customCoding=" + customCoding +
            '}';
    }
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/feign/MdmSearchItemCodeProvider.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
package com.vci.ubcs.code.feign;
import com.vci.ubcs.code.vo.pagemodel.SearchItemParam;
import com.vci.ubcs.code.vo.pagemodel.SearchItemVO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import javax.validation.constraints.NotNull;
/****
 * ä»Žå¤–部获取型号代号,或者项目代号
 * @author xiejun
 * @date 2023-05-26
 */
@FeignClient(name = "erpIntegration",
    url = "${erp.item.url:http://127.0.0.1:8080}",
    path = "")
public interface MdmSearchItemCodeProvider {
    /***
     * æŸ¥è¯¢é¡¹ç›®ä»£å·æˆ–者型号代号
     * @param searchItemParam
     * @return æ‰§è¡Œç»“æžœ
     */
    @PostMapping("/api/pp/pp/ext/extend/v1.0/getppModelByElem")
    SearchItemVO getppModelByElem(@NotNull @RequestBody SearchItemParam searchItemParam);
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/SearchItemDataVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,49 @@
package com.vci.ubcs.code.vo.pagemodel;
import lombok.Data;
import java.util.Date;
@Data
public class SearchItemDataVO {
    /***
     * æ•°æ®çŠ¶æ€ å­—符型,枚举值;制单:0;审批中:1;通过:2;驳回:3;
     */
    private String status;
    /**
     * åˆ¶é€ åž‹å·ä»£å·
     */
    private String mmodelcode;
    /**
     * é¡¹ç›®ä»£å·
     */
    private String projectitem;
    /***
     * é¡¹ç›®ç¼–码
     */
    private String projectcode;
    /***
     * äº§å“ç¼–码
     */
    private String materialcode;
    /***
     * åˆ›å»ºè€…
     */
    private String creatby;
    /***
     * åˆ›å»ºæ—¥æœŸ æ—¥æœŸåž‹ï¼Œå¦‚:2023-09-08 19:24:11
     */
    private Date createdon;
    /***
     * æ›´æ”¹è€…
     */
    private String lastchangedby;
    /***
     * æ›´æ”¹æ—¶é—´ æ—¥æœŸåž‹ï¼Œå¦‚:2023-09-08 19:24:11
     */
    private Date lastchangedon;
    /***
     * å­—符型,枚举值;停用:0;启用:1;
     */
    private String isenabled;
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/SearchItemParam.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
package com.vci.ubcs.code.vo.pagemodel;
import lombok.Data;
import java.util.Date;
@Data
public class SearchItemParam {
    /***
     * è°ƒç”¨ç³»ç»Ÿæ ‡è¯†
     */
    private String systag;
    /**
     * æ•°æ®çŠ¶æ€
     */
    private String status;
    /**
     * æ˜¯å¦åœç”¨
     */
    private String isenabled;
    /**
     * æœ€åŽä¿®æ”¹æ—¥æœŸ
     */
    private Date lastchangedon;
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/SearchItemVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
package com.vci.ubcs.code.vo.pagemodel;
import lombok.Data;
import java.util.List;
@Data
public class SearchItemVO {
    /***
     * è¿”回标识
     */
    private String code;
    /***
     * æ¶ˆæ¯ä¿¡æ¯
     */
    private String msg;
    private List<SearchItemDataVO> data;
}
Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/service/impl/GroupMdmInterServiceImpl.java
@@ -1,5 +1,6 @@
package com.vci.ubcs.code.applyjtcodeservice.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -10,6 +11,8 @@
import com.vci.ubcs.code.applyjtcodeservice.service.IGroupMdmInterService;
import com.vci.ubcs.code.applyjtcodeservice.vo.*;
import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateAttrVO;
import com.vci.ubcs.code.vo.webserviceModel.apply.ApplyDataVO;
import com.vci.ubcs.code.vo.webserviceModel.apply.InterParameterVO;
import com.vci.ubcs.code.vo.webserviceModel.result.xml.XMLResultDataObjectDetailDO;
import com.vci.ubcs.starter.util.MdmBtmTypeConstant;
import com.vci.ubcs.code.applyjtcodeservice.feign.MdmApplyGroupCodeProvider;
@@ -22,6 +25,7 @@
import org.apache.commons.collections4.map.CaseInsensitiveMap;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
@@ -44,11 +48,11 @@
    private String code="";
    private String msg="";
    @Value("${docking.apply.partCoe:10}")
    @Value("${docking.apply.partCode:101}")
    public String partCoe;
    @Value("${docking.apply.usedFlag:false}")
    public boolean usedFlag;
    @Value("${docking.apply.unitCode:41000}")
    @Value("${docking.apply.unitCode:4100}")
    public String dockingApplyUnitCode;
    @Value("${docking.apply.sysName:410-MDM}")
@@ -120,18 +124,33 @@
                    Map<String, DockingPreApplyForm> addDockingPreApplyFormMap = new HashMap<String, DockingPreApplyForm>();
                    Map<String, DockingPreApplyForm> editDockingPreApplyFormMap = new HashMap<String, DockingPreApplyForm>();
                    Map<String, BaseModel> baseModelMap = new HashMap<String, BaseModel>();
                    //数据库不存在的
                    /*List<BaseModel> newDdataModelList = dataModelList.stream().filter(cbo -> {
                        String groupcode =cbo.getData().getOrDefault("GROUPCODE","");
                        return StringUtils.isBlank(groupcode);
                    }).collect(Collectors.toList());
                    if(newDdataModelList.size()==0)
                        return R.fail("申请接口调用成功,所有数据已经存在集团码");*/
                    //组织数据
                    dockingGroupDataVO = queryApplycodeDataObjects(1, dataModelList, addDockingPreApplyFormMap, editDockingPreApplyFormMap, baseModelMap);
                    DockingResultVO resultDataObject = mdmApplyGroupCodeProvider.receiveAddApply(dockingGroupDataVO);
                    Object object = JSONObject.toJSON(dockingGroupDataVO);
                    String resultStr = object.toString();
                    log.info("申请集团码数据格式:->"+resultStr);
                    DockingResultVO resultDataObject =new DockingResultVO();
                    resultDataObject=    mdmApplyGroupCodeProvider.receiveAddApply(dockingGroupDataVO);
                    code = resultDataObject.getCode();
                    msg = resultDataObject.getMsg();
                    boolean res=false;
                    if ("1".equals(resultDataObject.getCode())) {//结果正确的情况
                        List<DockingDataVO> dataObjectVOList = resultDataObject.getData();
                        res=true;
                        dataObjectVOList.stream().forEach(dataObject -> {
                            boolean isEditDatas = false;
                            String code2 = dataObject.getCode();
                            DockingMainDataVO data2 = dataObject.getData();
                            String applyId = data2.getApplyId();//申请单id
                            BaseModel baseModel = baseModelMap.get(applyId);
                            String customCoding = StringUtils.isBlank(data2.getCustomCoding()) ? "" : data2.getCustomCoding();//集团码段
                            msg = dataObject.getMsg();
                            if (code2.equals("1")) {//结果正确的情况
@@ -143,8 +162,16 @@
                            if (editDockingPreApplyFormMap.containsKey(applyId)) {
                                DockingPreApplyForm dockingPreApplyForm = editDockingPreApplyFormMap.get(applyId);
                                dockingPreApplyForm.setCode(code2);
                                //dockingPreApplyForm.setDescription(baseModel.getId());
                                dockingPreApplyForm.setMsg("申请:" + msg);
                                dockingPreApplyForm.setGroupCode(customCoding);
                                if(StringUtils.isBlank(dockingPreApplyForm.getGroupCode())) {
                                    dockingPreApplyForm.setGroupCode(customCoding);
                                }else{
                                    isEditDatas = true;
                                    if (StringUtils.isBlank(customCoding)) {
                                        customCoding=dockingPreApplyForm.getGroupCode();
                                    }
                                }
                                ObjectMapper mp = new ObjectMapper();
                                String writeValueAsString = null;
                                try {
@@ -152,11 +179,13 @@
                                    dockingPreApplyForm.setContent(writeValueAsString);
                                } catch (JsonProcessingException e) {
                                }
                                DefaultAttrAssimtUtil.updateDefaultAttrAssimt(dockingPreApplyForm);
                            }
                            //新增的申请单数据
                            if (addDockingPreApplyFormMap.containsKey(applyId)) {
                                DockingPreApplyForm dockingPreApplyForm = addDockingPreApplyFormMap.get(applyId);
                                dockingPreApplyForm.setCode(code2);
                                dockingPreApplyForm.setDescription(baseModel.getId());
                                dockingPreApplyForm.setMsg("申请:" + msg);
                                dockingPreApplyForm.setGroupCode(customCoding);
                                ObjectMapper mp = new ObjectMapper();
@@ -166,25 +195,28 @@
                                    dockingPreApplyForm.setContent(writeValueAsString);
                                } catch (JsonProcessingException e) {
                                }
                                DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingPreApplyForm, MdmBtmTypeConstant.DOCKING_PRE_JAPPLYFORM);
                            }
                            //如果有集团码则更新数据
                            if (isEditDatas) {
                                if (baseModelMap.containsKey(applyId)) {
                                    BaseModel baseModel = baseModelMap.get(applyId);
                                    String classOid=baseModel.getData().getOrDefault("CODECLSFID","");
                                    baseModel = baseModelMap.get(applyId);
                                    Map<String,String> dataValueMap=new CaseInsensitiveMap<>(baseModel.getData());
                                    String classOid=dataValueMap.getOrDefault("CODECLSFID","");
                                    if(partCoe.equals(classOid)){
                                        baseModel.setId(10+customCoding);
                                        customCoding=10+customCoding;
                                    }
                                    BeanUtilForVCI.copyDeclaredIgnoreCase(baseModel, baseModel);
                                    DefaultAttrAssimtUtil.updateDefaultAttrAssimt(baseModel);
                                    DefaultAttrAssimtUtil.updateDefaultAttrAssimt(baseModel);
                                    baseModel.getData().getOrDefault("groupCode", customCoding);
                                //    DefaultAttrAssimtUtil.updateDefaultAttrAssimt(baseModel);
                                    baseModel.getData().put("GROUPCODE",customCoding);
                                    updateCbos.add(baseModel);//更新数据集团code
                                }
                            }
                        });
                    } else {
                        res=false;
                        editDockingPreApplyFormMap.forEach((key, dockingPreApplyForm) -> {
                            dockingPreApplyForm.setCode("2");
                            dockingPreApplyForm.setMsg("申请:" + msg);
@@ -209,6 +241,9 @@
                    //保存表单数据
                    dockingPreApplyFormService.saveOrUpdateBatch(dockingPreAttrMappings);
                    mdmEngineClient.updateBatchBtypeDatas(btmName, updateCbos);//保存数据
                    if(!res){
                        throw new VciBaseException(msg);
                    }
                }
                return R.success("申请接口调用成功");
            } catch (VciBaseException e) {
@@ -274,7 +309,9 @@
                            DockingPreApplyForm dockingPreApplyForm = editDockingPreApplyFormMap.get(applyId);
                            dockingPreApplyForm.setCode(code2);
                            dockingPreApplyForm.setMsg("修改:" + msg);
                            dockingPreApplyForm.setGroupCode(customCoding);
                            if(StringUtils.isBlank(dockingPreApplyForm.getGroupCode())) {
                                dockingPreApplyForm.setGroupCode(customCoding);
                            }
                            ObjectMapper mp = new ObjectMapper();
                            String writeValueAsString = null;
                            try {
@@ -282,13 +319,16 @@
                                dockingPreApplyForm.setContent(writeValueAsString);
                            } catch (JsonProcessingException e) {
                            }
                            DefaultAttrAssimtUtil.updateDefaultAttrAssimt(dockingPreApplyForm);
                        }
                        //新增的申请单数据
                        if (addDockingPreApplyFormMap.containsKey(applyId)) {
                            DockingPreApplyForm dockingPreApplyForm = addDockingPreApplyFormMap.get(applyId);
                            dockingPreApplyForm.setCode(code2);
                            dockingPreApplyForm.setMsg("修改:" + msg);
                            dockingPreApplyForm.setGroupCode(customCoding);
                            if(StringUtils.isBlank(dockingPreApplyForm.getGroupCode())) {
                                dockingPreApplyForm.setGroupCode(customCoding);
                            }
                            ObjectMapper mp = new ObjectMapper();
                            String writeValueAsString = null;
                            try {
@@ -296,6 +336,7 @@
                                dockingPreApplyForm.setContent(writeValueAsString);
                            } catch (JsonProcessingException e) {
                            }
                            DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingPreApplyForm, MdmBtmTypeConstant.DOCKING_PRE_JAPPLYFORM);
                        }
                        //如果有集团码则更新数据
                        if (isEditDatas) {
@@ -308,7 +349,7 @@
                                }
                                DefaultAttrAssimtUtil.updateDefaultAttrAssimt(baseModel);
                                //    baseModel.setId(customCoding);
                                baseModel.getData().put("groupCode", customCoding);
                                baseModel.getData().put("GROUPCODE", customCoding);
                                updateCbos.add(baseModel);//更新数据集团code
                            }
                        }
@@ -519,8 +560,9 @@
            int code=dockingApplyFormQueryStatusVO.getCode();
            String mesg=dockingApplyFormQueryStatusVO.getMsg();
            if(code==1){
                message=mesg;
                List<DockingApplyFormStatusVO> dockingApplyFormStatusVOList=dockingApplyFormQueryStatusVO.getData();
                if(CollectionUtils.isEmpty(dockingApplyFormStatusVOList)){
                if(!CollectionUtils.isEmpty(dockingApplyFormStatusVOList)){
                    for (DockingApplyFormStatusVO applyFormDataState : dockingApplyFormStatusVOList) {
                        String applyId=applyFormDataState.getApplyNum();
                        String state= applyFormDataState.getFormState();
@@ -532,20 +574,23 @@
                        }
                    }
                    boolean res=this.dockingPreApplyFormService.saveOrUpdateBatch(dockingPreApplyFormList);
                    if(res){
                        R.success("申请集团码状态查询成功:"+mesg);
                    }
                }else{
                    throw new Throwable("没有获取到相关数据信息");
                }
            }else{
                throw new    Throwable(mesg);
                message=mesg;
                dockingPreApplyFormList.stream().forEach(dockingPreApplyForm -> {
                    dockingPreApplyForm.setMsg("申请单查看失败:"+mesg);
                });
                this.dockingPreApplyFormService.saveOrUpdateBatch(dockingPreApplyFormList);
                throw new Throwable(message);
            }
        }catch (Throwable e){
            e.printStackTrace();
            //message=""+e;
            log.error("获取申请单状态失败"+e);
            throw  new VciBaseException(message);
            throw  new VciBaseException(e.getMessage());
        }
        log.info("查询申请单状态接口end");
        return R.success(message);
@@ -609,6 +654,7 @@
                log.info("classify:-------------->链接名称:"+nodeLinkName);
                if (dockingPreClassify == null || StringUtils.isBlank(dockingPreClassify.getOid())) {
                    dockingPreClassify=new DockingPreClassify();
                    DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingPreClassify,MdmBtmTypeConstant.DOCKING_PRE_JCLASSIFY);
                } else {
                    DefaultAttrAssimtUtil.updateDefaultAttrAssimt(dockingPreClassify);
@@ -704,7 +750,7 @@
                .eq(DockingPreMetaAttr::getSourceClassifyId,jclassId).eq(DockingPreMetaAttr::getViewModelId,jviewModelObject.getOid())
                .eq(DockingPreMetaAttr:: getPid,pid));
            Map<String,DockingPreMetaAttr> jmetaattrMap = dockingPreMetaAttrList.stream().filter(
                s -> com.alibaba.cloud.commons.lang.StringUtils.isNotBlank(s.getEnglishName())).collect(Collectors.toMap(s -> s.getEnglishName().toLowerCase(Locale.ROOT), t -> t));
                s -> com.alibaba.cloud.commons.lang.StringUtils.isNotBlank(s.getEnglishName())).collect(Collectors.toMap(s -> s.getEnglishName(), t -> t));
            for (DockingClassifyMetaAttrVO dockingClassifyMetaAttrVO : metaList) {
                String chineseName = com.alibaba.cloud.commons.lang.StringUtils.isBlank(dockingClassifyMetaAttrVO.getChineseName())?"":dockingClassifyMetaAttrVO.getChineseName();// å±žæ€§åç§°
@@ -773,6 +819,7 @@
     */
    private void getRange(DockingPreMetaAttr metaAttrObject,Map<String, String> range) throws Throwable {
        String metaAttrOid = com.alibaba.cloud.commons.lang.StringUtils.isBlank(metaAttrObject.getOid())?"":metaAttrObject.getOid();// å±žæ€§çš„oid
        String jchinesename = com.alibaba.cloud.commons.lang.StringUtils.isBlank(metaAttrObject.getChineseName())?"":metaAttrObject.getChineseName();
        Map<String, DockingPreAttrRange> rangeMap = new HashMap<>();
        try {
@@ -780,7 +827,9 @@
            condtionMa.put("jmetalistid", metaAttrOid);
            List<DockingPreAttrRange> jmetaattrList = dockingPreAttrRangeService.selectByWrapper(Wrappers.<DockingPreAttrRange>query().lambda()
                .eq(DockingPreAttrRange::getMetaListId,metaAttrOid));// æ ¹æ®åˆ†ç±»æŸ¥è¯¢æ¨¡åž‹è§†å›¾å¯¹è±¡
            rangeMap= jmetaattrList.stream().collect(Collectors.toMap(s -> com.alibaba.cloud.commons.lang.StringUtils.isNotBlank(s.getNumText().toLowerCase(Locale.ROOT))?"":s.getNumText().toLowerCase(Locale.ROOT), t -> t));
            log.info("获取属性美剧 å±žæ€§id------->"+metaAttrOid);
            //rangeMap= jmetaattrList.stream().collect(Collectors.toMap(s ->StringUtils.isNotBlank(s.getNumText())?"":s.getNumText(), t -> t));
            rangeMap=jmetaattrList.stream().filter(data -> data != null && StringUtils.isNotBlank(data.getNumText())).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getNumText(), t -> t));
            for (String rangeKey : range.keySet()) {
                DockingPreAttrRange rangeObject = new DockingPreAttrRange();
@@ -810,44 +859,42 @@
        }
    }
    /**
     * ç»„织数据
     * */
    private DockingGroupDataVO queryApplycodeDataObjects(int optationtype,List<BaseModel>  codeWupins,Map<String,DockingPreApplyForm>   addDockingPreApplyFormMap,Map<String,DockingPreApplyForm>  editDockingPreApplyFormMap,Map<String,BaseModel>  codeWupinMap) throws VciBaseException{
        try {
            String curUserName = AuthUtil.getUser().getUserName();
            String curUserName ="28201728"; //AuthUtil.getUser().getUserName();
            //申请的数据
            List<DockingMainData> mainDataList=new ArrayList<DockingMainData>();
            for (BaseModel dataBusinessObject : codeWupins) {
                String format = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date());
                Map<String,String>  dataValueMap=new CaseInsensitiveMap<>(dataBusinessObject.getData());
                String codeclsfid =dataValueMap.getOrDefault("codeclsfid","");
                //String codeclsfid = dataBusinessObject.getData().getOrDefault("codeclsfid".toUpperCase(Locale.ROOT),"");
                 Map<String,String> dataMap=new CaseInsensitiveMap<>(dataBusinessObject.getData());
                String codeclsfid=dataMap.getOrDefault("codeclsfid","");
                String btmName = dataBusinessObject.getBtmname();
                String oid = dataBusinessObject.getOid();
                DockingPreApplyForm dockingPreApplyForm = new DockingPreApplyForm();
                String dataOid = dataBusinessObject.getOid();
                Map<String, String> conditionsMap = new HashMap<String, String>();
                List<DockingPreApplyForm> applyFormObjects = dockingPreApplyFormService.list(Wrappers.<DockingPreApplyForm>query().lambda().eq(DockingPreApplyForm::getDataOid, dataOid).eq(DockingPreApplyForm::getOperationType, optationtype));
                //List<DockingPreApplyForm> applyFormObjects = dockingPreApplyFormService.list(Wrappers.<DockingPreApplyForm>query().lambda().eq(DockingPreApplyForm::getDataOid, dataOid).eq(DockingPreApplyForm::getOperationType, optationtype));
            //    DockingPreApplyForm dockingPreApplyForm=new DockingPreApplyForm();
                String apllyCode = "";
                if (!CollectionUtils.isEmpty(applyFormObjects)) {
                /*if (!CollectionUtils.isEmpty(applyFormObjects)) {
                    dockingPreApplyForm = applyFormObjects.get(0);
                    apllyCode = dockingPreApplyForm.getId();
                    editDockingPreApplyFormMap.put(apllyCode, dockingPreApplyForm);//申请单和申请单对象关系
                } else {
                } else {*/
                    apllyCode = dockingApplyUnitCode + "-" + format;
                    dockingPreApplyForm.setId(apllyCode);
                    dockingPreApplyForm.setName("");
                    dockingPreApplyForm.setOperationType(optationtype+"");
                    dockingPreApplyForm.setDescription(dataBusinessObject.getDescription());//获取数据描述信息
                    dockingPreApplyForm.setDescription(dataBusinessObject.getId());//获取数据描述信息
                    dockingPreApplyForm.setDataOid(oid);
                    dockingPreApplyForm.setDataBtmName(btmName);
                    addDockingPreApplyFormMap.put(apllyCode, dockingPreApplyForm);//申请单和申请单对象关系
                }
            //    }
                codeWupinMap.put(apllyCode, dataBusinessObject);//申请单和对应数据关系
                conditionsMap = new HashMap<String, String>();
@@ -865,6 +912,11 @@
                mainData.setApplyId(apllyCode);//申请单号
                mainData.setClassName(dockingPreClassify.getNodeLinkName());//分类名称
                mainData.setCreateBy(curUserName);//
                if(optationtype==2) {
                    String groucode=dataBusinessObject.getData().getOrDefault("GROUPCODE","");
                    dockingPreApplyForm.setGroupCode(groucode);
                    mainData.setCustomCoding(groucode);
                }
                mainData.setSecretLevel("内部");//密级,默认为内部
                mainData.setViewInfos(getviewInfos(optationtype,dockingPreClassify, dataBusinessObject));//获取视图模型
                mainDataList.add(mainData);
@@ -919,7 +971,7 @@
        //构造模型视图数据
        List<Map<String, Object>> viewValueList=new ArrayList<Map<String,Object>>();
        String oid = dockingPreViewModel.getOid();
        Map<String,String>  dataValueMap=new CaseInsensitiveMap<>(dataBusinessObject.getData());
        Map<String,String> dataValueMap=new CaseInsensitiveMap<>(dataBusinessObject.getData());
        String codeClassifyId=dataValueMap.get("codeclsfid");
        Map<String,String>conditionsMap=new HashMap<String, String>();
        List<DockingPreAttrMapping> dockingPreAttrMappingList = dockingPreAttrMappingMapper.selectList(Wrappers.<DockingPreAttrMapping>query().lambda()
@@ -946,15 +998,15 @@
                Object newVaue=null;
                if(StringUtils.isNotBlank(jtargetattrkey)){
                    getAttrRange(dockingPreMetaAttr);//获取字段取值范围
                    String value ="";
                    String value="";
                    if(jtargetattrkey.toLowerCase(Locale.ROOT).equals("name")){
                        value=dataBusinessObject.getName();
                    }else if(jtargetattrkey.toLowerCase(Locale.ROOT).equals("id")){
                        value=dataBusinessObject.getId();
                    }else if(jtargetattrkey.toLowerCase(Locale.ROOT).equals("description")){
                        value=dataBusinessObject.getDescription();
                    }else {
                        value = dataValueMap.get(jtargetattrkey) == null ? "" : dataValueMap.getOrDefault(jtargetattrkey, "");
                    }else{
                        value=dataValueMap.get(jtargetattrkey)==null?"":dataValueMap.getOrDefault(jtargetattrkey,"");
                    }
                    newVaue = getVaue(dockingPreMetaAttr, value);
                }else{
@@ -963,9 +1015,11 @@
                if(newVaue==null||"".equals(newVaue)){
                    newVaue= dockingPreMetaAttr.getDefaultValue();
                }
                //newVaue= Func.isNotEmpty(newVaue)?newVaue:"";
                viewValueMap.put(jenglishname, newVaue);
            }
        }
        viewValueList.add(viewValueMap);
        return viewValueList;
    }
@@ -1027,7 +1081,7 @@
                return null;
            }else {
                try {
                    return simpleDateFormat.parse(value);
                    return simpleDateFormat.format(simpleDateFormat.parse(value));
                } catch (ParseException e) {
                    throw new VciBaseException("date", new String[]{"日期格式转换错误"});
                }
@@ -1038,7 +1092,7 @@
                return null;
            }else{
                try {
                    return simpleDateFormat.parse(value);
                    return simpleDateFormat.format(simpleDateFormat.parse(value));
                } catch (ParseException e) {
                    throw new VciBaseException("date", new String[]{"日期格式转换错误"});
                }
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/Scheduling/SearchDataSyncForERPScheduling.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,59 @@
package com.vci.ubcs.code.Scheduling;
import com.vci.ubcs.code.service.ICodeDuckingSyncService;
import com.vci.ubcs.code.service.UniversalInterfaceI;
import com.vci.ubcs.starter.web.enumpck.BooleanEnum;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.Date;
/***
 *  é›†æˆä»»åŠ¡å®šæ—¶å™¨
 * ä»ŽERP查询型号代号,项目代号
 * @author xj
 * @date 2024-01-19
 */
@Component
@Slf4j
public class SearchDataSyncForERPScheduling {
    @Resource
    private ICodeDuckingSyncService codeDuckingSyncServiceI;
    @Value("${erp.item.isStart:false}")
    public boolean ERP_ITEM_ISSTARE;
    @Value("${erp.item.btmName:XHDH}")
    public String ERP_ITEM_BTMNAME;
    /**
     * æ˜¯å¦åˆå§‹åŒ–完成了
     */
    public static volatile String FINISH_INIT = "false";
    /**
     * åœ¨åˆå§‹åŒ–完成后执行
     */
    @PostConstruct()
    public void onInit(){
        FINISH_INIT = "true";
    }
    //默认每十分钟执行方法
    @Scheduled(cron = "${dataSyncPush.cronTime:0 0/10 * * * ?}")
    public void scheduled() {
        log.info("执行从ERP项目代号/型号代号数据 start:");
        log.info("执行主数据集成数据推送 end: "+ "开关是否开启:" +ERP_ITEM_ISSTARE);
        if(ERP_ITEM_ISSTARE && BooleanEnum.TRUE.getValue().equalsIgnoreCase(FINISH_INIT)) {
            SimpleDateFormat formatter= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.");
            String time = formatter.format(new Date());
            codeDuckingSyncServiceI.saveItemDataSyncScheduing(ERP_ITEM_BTMNAME);
            String outInfo = "============ æ‰§è¡Œäº†ä»ŽERP项目代号/型号代号数据 end;";
            log.info(outInfo+time);
        }
    }
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeDuckingSyncService.java
@@ -47,5 +47,7 @@
     * @return
     */
    R sendData(String oids);
    void saveItemDataSyncScheduing(String btmName);
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeDuckingSyncServiceImpl.java
@@ -7,6 +7,7 @@
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.DomDriver;
import com.vci.ubcs.code.applyjtcodeservice.feign.MdmApplyGroupCodeProvider;
import com.vci.ubcs.code.constant.MdmDuckingConstant;
import com.vci.ubcs.code.dto.datapush.classify.JsonRootDataDTO;
import com.vci.ubcs.code.dto.datapush.classify.NodeClassifyDTO;
@@ -21,19 +22,23 @@
import com.vci.ubcs.code.dto.datapush.result.ResultNodeObjectDTO;
import com.vci.ubcs.code.entity.*;
import com.vci.ubcs.code.enumpack.SysIntegrationDataFlowTypeEnum;
import com.vci.ubcs.code.feign.MdmSearchItemCodeProvider;
import com.vci.ubcs.code.mapper.CommonsMapper;
import com.vci.ubcs.code.service.*;
import com.vci.ubcs.code.vo.pagemodel.*;
import com.vci.ubcs.omd.feign.IBtmTypeClient;
import com.vci.ubcs.omd.vo.BtmTypeVO;
import com.vci.ubcs.starter.util.HttpUtils;
import com.vci.ubcs.code.util.WsErpClientUtil;
import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateAttrVO;
import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateVO;
import com.vci.ubcs.code.vo.pagemodel.CodeClassifyVO;
import com.vci.ubcs.starter.web.enumpck.UserSecretEnum;
import com.vci.ubcs.starter.web.pagemodel.SessionInfo;
import com.vci.ubcs.starter.web.util.VciBaseUtil;
import com.vci.ubcs.starter.web.util.WebUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.util.StringUtil;
import org.springblade.core.redis.cache.BladeRedis;
import org.springblade.core.tool.api.R;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -62,6 +67,20 @@
    public String DATA_PARAM_NAME;
    @Value("${dataSyncPush.dataId:itemid}")
    private String itemId;
    @Value("${erp.item.attrKey:xhdh}")
    public String attrKey;
    /**
     * ä¸šåŠ¡ç±»åž‹çš„æœåŠ¡
     */
    @Autowired
    private IBtmTypeClient btmTypeClient;
    /**
     * é€šç”¨æŸ¥è¯¢
     */
    @Resource
    private CommonsMapper commonsMapper;
    @Resource
    private  MdmEngineService  mdmEngineServiceI;
@@ -84,7 +103,8 @@
    private IDockingSysIntParamService dockingSysIntParamService;
    @Resource
    private IDockingSysIntHeaderService dockingSysIntHeaderService;
    @Autowired(required = false)
    private MdmSearchItemCodeProvider mdmSearchItemCodeProvider;
    @Override
@@ -149,6 +169,74 @@
        return  R.success("手动推送完成,请核对是否推送成功");
    }
    /***
     * åŒæ­¥åž‹å·ä»£å·
     */
    @Override
    public void saveItemDataSyncScheduing(String btmName) {
        SearchItemParam searchItemParam=new SearchItemParam();
        searchItemParam.setSystag("CODE"); //调用系统标识
        searchItemParam.setLastchangedon(new Date());
        searchItemParam.setStatus("1");//
        SearchItemVO searchItemVO= mdmSearchItemCodeProvider.getppModelByElem(searchItemParam);
        if(searchItemVO!=null) {
            searchItemVO.getCode();
            searchItemVO.getMsg();
            List<CodeClassify> codeClassifyList = codeClassifyService.selectByWrapper(Wrappers.<CodeClassify>query().lambda().in(CodeClassify::getId, btmName));
            try {
                if (CollectionUtils.isEmpty(codeClassifyList)) {
                    throw new Throwable("分类未查询到");
                }
                CodeClassify codeClassify= codeClassifyList.get(0);
                List<SearchItemDataVO> dataList = searchItemVO.getData();
                Map<String, SearchItemDataVO> dataVOMap = new HashMap<>();
                List<String> itemCodeList = new ArrayList<>();
                if (!CollectionUtils.isEmpty(dataList)) {
                    dataList.stream().forEach(searchItemDataVO -> {
                        String itemCode = StringUtils.isNotBlank(searchItemDataVO.getProjectitem()) ? searchItemDataVO.getProjectitem() : searchItemDataVO.getMmodelcode();//项目代号
                        dataVOMap.put(itemCode, searchItemDataVO);
                        itemCodeList.add(itemCode);
                    });
                    String tableName = "";
                    R<BtmTypeVO> r = btmTypeClient.getAllAttributeByBtmId(btmName);
                    if (!r.isSuccess()) {
                        throw new Throwable(r.getMsg());
                    }
                    BtmTypeVO btmTypeVO = r.getData();
                    if (btmTypeVO == null) {
                        throw new Throwable("根据业务类型未查询到业务类型对象!");
                    }
                    tableName = btmTypeVO.getTableName();
                    if (com.alibaba.nacos.common.utils.StringUtils.isBlank(tableName)) {
                        throw new Throwable("根据业务类型未查询到业务类型相关联的表");
                    }
                    StringBuffer sb = new StringBuffer();
                    sb.append(" select * from  ");
                    sb.append(tableName);
                    sb.append(" where 1=1");
                    sb.append(" and lastr=1 and lastv=1");
                    sb.append(" and codeclsfid = '" + codeClassify.getOid() + "'");
                    List<Map<String, String>> newDataList = commonsMapper.queryByOnlySqlForMap(sb.toString());
                    newDataList.stream().forEach(dataMap->{
                        String value= dataMap.getOrDefault(attrKey,"");
                        if(dataVOMap.containsKey(attrKey)){
                            SearchItemDataVO searchItemDataVO=dataVOMap.get(attrKey);
                        }else{
                        }
                    });
                }
            }
            catch (Throwable e){
                log.error("查询失败--->"+e);
            }
        }
    }
    /***
     * æŸ¥è¯¢redis中数据,对比后插入dockingtask