| | |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.thoughtworks.xstream.XStream; |
| | | import com.thoughtworks.xstream.io.xml.DomDriver; |
| | | import com.vci.ubcs.code.Scheduling.NonWebRequestAttributes; |
| | | import com.vci.ubcs.code.bo.CodeClassifyFullInfoBO; |
| | | import com.vci.ubcs.code.constant.MdmDuckingConstant; |
| | | import com.vci.ubcs.code.dto.CodeOrderDTO; |
| | |
| | | import com.vci.ubcs.starter.web.util.WebUtil; |
| | | import com.vci.ubcs.system.user.entity.User; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.collections4.map.CaseInsensitiveMap; |
| | | import org.springblade.core.log.exception.ServiceException; |
| | | import org.springblade.core.redis.cache.BladeRedis; |
| | | import org.springblade.core.secure.BladeUser; |
| | |
| | | import org.springblade.core.tool.utils.Func; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.mock.web.MockHttpServletRequest; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.transaction.support.DefaultTransactionStatus; |
| | | import org.springframework.util.CollectionUtils; |
| | | import org.springframework.util.LinkedMultiValueMap; |
| | | import org.springframework.util.MultiValueMap; |
| | | import org.springframework.web.context.request.RequestAttributes; |
| | | import org.springframework.web.context.request.RequestContextHolder; |
| | | import org.springframework.web.context.request.ServletRequestAttributes; |
| | | |
| | | import javax.annotation.Resource; |
| | | import javax.jws.WebMethod; |
| | |
| | | |
| | | @Value("${erp.item.systemId:ERP}") |
| | | public String systemId; |
| | | @Value("${erp.item.secName:åºå®ç 段}") |
| | | public String secName; |
| | | @Value("${erp.item.secValue:A}") |
| | | public String secValue; |
| | | |
| | | |
| | | /** |
| | | * ä¸å¡ç±»åçæå¡ |
| | |
| | | private MdmIOService mdmIOService; |
| | | @Resource |
| | | private IPasswordFreeLoginService passwordFreeLoginService; |
| | | @Resource |
| | | private WebServiceContext webServiceContext; |
| | | |
| | | @Resource |
| | | private IDockingLogeService dockingLogeService; |
| | | @Resource |
| | |
| | | private MdmSearchItemCodeProvider mdmSearchItemCodeProvider; |
| | | @Autowired |
| | | HttpServletRequest request; |
| | | |
| | | @Override |
| | | public void DockingDataSyncScheduing() { |
| | | |
| | |
| | | }); |
| | | return R.success("æå¨æ¨é宿,è¯·æ ¸å¯¹æ¯å¦æ¨éæå"); |
| | | } |
| | | private SearchItemDataVO initData(String status,String itemCode,String mmCode){ |
| | | SearchItemDataVO searchItemDataVO=new SearchItemDataVO(); |
| | | searchItemDataVO.setLastchangedon(new Date()); |
| | | searchItemDataVO.setLastchangedby("19831133"); |
| | | searchItemDataVO.setCreatby("19831133"); |
| | | searchItemDataVO.setCreatedon(new Date()); |
| | | searchItemDataVO.setIsenabled(status); |
| | | searchItemDataVO.setMaterialcode("XMDH0001"); |
| | | searchItemDataVO.setStatus("1"); |
| | | searchItemDataVO.setProjectcode("3333"); |
| | | searchItemDataVO.setProjectitem(itemCode); |
| | | searchItemDataVO.setMmodelcode(mmCode); |
| | | |
| | | return searchItemDataVO; |
| | | } |
| | | |
| | | public HttpServletRequest getRequest(){ |
| | | HttpServletRequest request =null; |
| | | RequestAttributes requestAttributes = null; |
| | | try{ |
| | | requestAttributes = RequestContextHolder.currentRequestAttributes(); |
| | | }catch (IllegalStateException e){ |
| | | //requestAttributes = new NonWebRequestAttributes(); |
| | | //RequestContextHolder.setRequestAttributes(requestAttributes, true); |
| | | request = new MockHttpServletRequest(); |
| | | RequestContextHolder.setRequestAttributes(new ServletRequestAttributes(request),true); |
| | | }finally { |
| | | if (requestAttributes instanceof ServletRequestAttributes) { |
| | | ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes)RequestContextHolder.currentRequestAttributes(); |
| | | request = servletRequestAttributes.getRequest(); |
| | | } |
| | | } |
| | | return request; |
| | | } |
| | | /*** |
| | | * 忥åå·ä»£å· |
| | | */ |
| | |
| | | searchItemParam.setLastchangedon(lastchangedon); |
| | | searchItemParam.setStatus("1");// |
| | | Map<String,String>searchDataMap= VciBaseUtil.objectToMapString(searchItemParam); |
| | | SearchItemVO searchItemVO= mdmSearchItemCodeProvider.getppModelByElem(searchDataMap); |
| | | //SearchItemVO searchItemVO= mdmSearchItemCodeProvider.getppModelByElem(searchDataMap); |
| | | SearchItemVO searchItemVO=new SearchItemVO(); |
| | | List<SearchItemDataVO> data=new ArrayList<>(); |
| | | SearchItemDataVO searchItemDataVO1=initData("1","","pro-00001"); |
| | | SearchItemDataVO searchItemDataVO2=initData("0","item-00001",""); |
| | | data.add(searchItemDataVO1); |
| | | data.add(searchItemDataVO2); |
| | | searchItemVO.setData(data); |
| | | searchItemVO.setCode("200"); |
| | | searchItemVO.setMsg(""); |
| | | String paramString=""; |
| | | String backString="æå"; |
| | | String msg="æå"; |
| | | boolean success=true; |
| | | if(searchItemVO!=null) { |
| | | paramString = JSONObject.toJSON(searchItemVO).toString(); |
| | | try { |
| | | //å
å¯ç»å½ç³è¯·tokenï¼request䏿·»å ç¨æ·ä¿¡æ¯ |
| | | try { |
| | | passwordFreeLoginService.pwdFreeLoginByBoolean(systemId.toLowerCase(Locale.ROOT), request); |
| | | passwordFreeLoginService.pwdFreeLoginByBoolean(systemId.toLowerCase(Locale.ROOT),getRequest()); |
| | | }catch (Throwable e){ |
| | | throw new Throwable("ç¨æ·é´æå¤±è´¥."); |
| | | } |
| | |
| | | List<SearchItemDataVO> dataList = searchItemVO.getData(); |
| | | Map<String, SearchItemDataVO> dataVOMap = new HashMap<>(); |
| | | List<String> itemCodeList = new ArrayList<>(); |
| | | ApplyDatasVO allDatasVO = new ApplyDatasVO(); |
| | | List<ApplyDataVO> allObjectList=new ArrayList<>(); |
| | | if (!CollectionUtils.isEmpty(dataList)) { |
| | | dataList.stream().forEach(searchItemDataVO -> { |
| | | String itemCode = StringUtils.isNotBlank(searchItemDataVO.getProjectitem()) ? searchItemDataVO.getProjectitem() : searchItemDataVO.getMmodelcode();//项ç®ä»£å· |
| | |
| | | itemCodeList.add(itemCode); |
| | | }); |
| | | String tableName = ""; |
| | | R<BtmTypeVO> r = btmTypeClient.getAllAttributeByBtmId(btmName); |
| | | R<BtmTypeVO> r = btmTypeClient.getAllAttributeByBtmId(codeClassify.getBtmTypeId()); |
| | | if (!r.isSuccess()) { |
| | | throw new Throwable(r.getMsg()); |
| | | } |
| | |
| | | throw new Throwable("æ ¹æ®ä¸å¡ç±»åæªæ¥è¯¢å°ä¸å¡ç±»å对象ï¼"); |
| | | } |
| | | tableName = btmTypeVO.getTableName(); |
| | | if (com.alibaba.nacos.common.utils.StringUtils.isBlank(tableName)) { |
| | | if (StringUtils.isBlank(tableName)) { |
| | | throw new Throwable("æ ¹æ®ä¸å¡ç±»åæªæ¥è¯¢å°ä¸å¡ç±»åç¸å
³èç表"); |
| | | } |
| | | StringBuffer sb = new StringBuffer(); |
| | |
| | | sb.append(" where 1=1"); |
| | | sb.append(" and lastr=1 and lastv=1"); |
| | | sb.append(" and codeclsfid = '" + codeClassify.getOid() + "' "); |
| | | sb.append( VciBaseUtil.toInSql(attrKey,VciBaseUtil.array2String(itemCodeList.toArray(new String[]{})))); |
| | | sb.append(" and "+ VciBaseUtil.toInSql(attrKey,itemCodeList.toArray(new String[]{}))); |
| | | List<Map<String, String>> newDataList = commonsMapper.queryByOnlySqlForMap(sb.toString()); |
| | | //List<BaseModel> baseModelList=new ArrayList<>(); |
| | | Map<String,BaseModel> baseModelMap=new HashMap<>(); |
| | | newDataList.stream().forEach(dataMap->{ |
| | | BaseModel baseModel=new BaseModel(); |
| | | DefaultAttrAssimtUtil.copplyDefaultAttrAssimt(dataMap,baseModel,false,user); |
| | | Map<String,String> newDateMap=new CaseInsensitiveMap<>(dataMap); |
| | | DefaultAttrAssimtUtil.copplyDefaultAttrAssimt(newDateMap,baseModel,true,user); |
| | | DefaultAttrAssimtUtil.updateDefaultAttrAssimt(baseModel,user); |
| | | //baseModelList.add(baseModel); |
| | | String attrKeyValue=dataMap.getOrDefault(attrKey,""); |
| | | |
| | | String attrKeyValue=newDateMap.getOrDefault(attrKey,""); |
| | | baseModelMap.put(attrKeyValue,baseModel); |
| | | }); |
| | | ApplyDatasVO editDatasVO = new ApplyDatasVO(); |
| | | |
| | | List<ApplyDataVO> addObjectList=new ArrayList<>(); |
| | | List<ApplyDataVO> editObjectList=new ArrayList<>(); |
| | | dataVOMap.forEach((key,value)->{ |
| | |
| | | changeObjectToMap(value,"",user,"create",addObjectList); |
| | | } |
| | | }); |
| | | allObjectList.addAll(addObjectList); |
| | | allObjectList.addAll(editObjectList); |
| | | allDatasVO.setObject(allObjectList); |
| | | LinkedList<XMLResultDataObjectDetailDO> allResultDataObjectDetailDOS=new LinkedList<>(); |
| | | if(!CollectionUtils.isEmpty(addObjectList)){ |
| | | //è§åç主é®éè¦å»è·å |
| | | CodeClassifyFullInfoBO classifyFullInfo = codeClassifyService.getClassifyFullInfo(codeClassify.getOid()); |
| | |
| | | this.getConfigDatas(systemId, btmName, applyDatasVO, attrVOS, dataObjectVO); |
| | | CodeOrderDTO orderDTO = new CodeOrderDTO(); |
| | | orderDTO.setCodeClassifyOid(codeClassify.getOid());//åç±»ä¸»é® |
| | | |
| | | //ç æ®µè®¾ç½® |
| | | List<SectionVO> section=new ArrayList<>(); |
| | | SectionVO sectionVO=new SectionVO(); |
| | | sectionVO.setValue(secValue); |
| | | sectionVO.setName(secName); |
| | | section.add(sectionVO); |
| | | log.info("endï¼è§åè·å宿¯"); |
| | | List<CodeOrderSecDTO> codeOrderSecDTOList = getRuleCodeOrderSecDTOs(null, ruleVO,classifyFullInfo); |
| | | List<CodeOrderSecDTO> codeOrderSecDTOList = getRuleCodeOrderSecDTOs(section, ruleVO,classifyFullInfo); |
| | | log.info("endï¼ç 段è·å宿¯"); |
| | | |
| | | orderDTO.setSecDTOList(codeOrderSecDTOList);//åç±»ç æ®µ |
| | | mdmIOService.batchSyncApplyCode(orderDTO, dataObjectVO, resultDataObjectDetailDOs,false); |
| | | allResultDataObjectDetailDOS.addAll(resultDataObjectDetailDOs); |
| | | } |
| | | |
| | | //æ´æ°æ°æ®ï¼æ´æ°ç¶æï¼ |
| | | if(!CollectionUtils.isEmpty(editObjectList)){ |
| | | DataObjectVO dataObjectVO = new DataObjectVO(); |
| | | ApplyDatasVO applyDatasVO = new ApplyDatasVO(); |
| | | applyDatasVO.setObject(editObjectList); |
| | | LinkedList<XMLResultDataObjectDetailDO> resultDataObjectDetailDOs = new LinkedList<>(); |
| | | CodeClassifyVO codeClassifyVO=new CodeClassifyVO(); |
| | | BeanUtilForVCI.copyPropertiesIgnoreCase(codeClassify, codeClassifyVO); |
| | | this.getConfigDatas(systemId, btmName, applyDatasVO, attrVOS, dataObjectVO); |
| | | mdmIOService.batchSyncEditDatas(codeClassifyVO,dataObjectVO, resultDataObjectDetailDOs,false); |
| | | |
| | | allResultDataObjectDetailDOS.addAll(resultDataObjectDetailDOs); |
| | | } |
| | | Object paramObject = JSONObject.toJSON(allDatasVO); |
| | | paramString=Func.isEmpty(paramObject)?"":paramObject.toString(); |
| | | Object backObject = JSONObject.toJSON(allResultDataObjectDetailDOS); |
| | | backString=Func.isEmpty(backObject)?"":backObject.toString(); |
| | | } |
| | | } |
| | | catch (Throwable e){ |
| | | e.printStackTrace();; |
| | | log.error("æ¥è¯¢å¤±è´¥--->"+e); |
| | | success=false; |
| | | backString="æ¥è¯¢å¤±è´¥--->"+e; |
| | | msg="æ¥è¯¢å¤±è´¥--->"+e; |
| | | }finally { |
| | | try { |
| | | //è®°å½æ¥å¿ |
| | | this.saveLogs(systemId, systemId, paramString, backString, success, msg, "queryData"); |
| | | }catch (Throwable e){ |
| | | e.printStackTrace(); |
| | | log.error(e.getMessage()); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | /*** |
| | | * è®°å½æ¥å¿ä¿¡æ¯ |
| | | * @param systemId |
| | | * @param parmaData |
| | | * @param result |
| | | * @return |
| | | */ |
| | | private void saveLogs(String systemId,String systemName,String parmaData, String result,boolean isSucess,String msg,String operation){ |
| | | //è®°å½æ¥å¿ä¿¡æ¯ |
| | | DockingLog dockingLoge=new DockingLog(); |
| | | //String oid=redisService.getUUIDEveryDay(); |
| | | dockingLoge.setSystemCode(StringUtils.isBlank(systemId)?"-":systemId);//è®¾ç½®ç³»ç»æ è¯ |
| | | dockingLoge.setSystemName(StringUtils.isBlank(systemName)?"-":systemName); |
| | | dockingLoge.setMsg(msg);//æ¥å¿æ¶æ¯ |
| | | dockingLoge.setClassifyId("-");//åç±»ç¼å· |
| | | dockingLoge.setClassifyName("-");//åç±»åç§° |
| | | dockingLoge.setClassifyOid("-");//åç±»ä¸»é® |
| | | dockingLoge.setUniqueCode("-");//å¯ä¸æ è¯ |
| | | dockingLoge.setSystemOid("-");//ç³»ç»æ è¯ |
| | | // dockingLogeDO.setName(operation); |
| | | //dockingLogeDO.setOid(oid);//æ¥å¿ä¸»é® |
| | | dockingLoge.setParamString(parmaData);//åæ°ä¿¡æ¯ |
| | | dockingLoge.setReturnString(result);//è¿åä¿¡æ¯ |
| | | dockingLoge.setType(operation);//æ¥å¿æä½ç±»å |
| | | dockingLoge.setCreateTime(new Date()); |
| | | if(isSucess) { |
| | | dockingLoge.setInterfaceStatus("true");//æ¥å£éæç¶æ |
| | | }else{ |
| | | dockingLoge.setInterfaceStatus("false");//æ¥å£éæç¶æ |
| | | } |
| | | dockingLogeService.save(dockingLoge); |
| | | log.info("éææ¨éæ°æ®æå,systemId:"+systemId+",systemname:"+systemName+",operation:"+operation+",param:"+parmaData); |
| | | } |
| | | |
| | | /*** |
| | | * æ ¹æ®ä¼ å
¥çåæ°ä¿¡æ¯æ ¡éªç 段è§å |
| | | */ |
| | |
| | | //String status= searchItemDataVO.getStatus();//æ°æ®ç¶æ å符åï¼æä¸¾å¼ï¼å¶åï¼0ï¼å®¡æ¹ä¸ï¼1ï¼éè¿ï¼2ï¼é©³åï¼3ï¼ |
| | | |
| | | String mmodelCode=searchItemDataVO.getMmodelcode();//å¶é åå·ä»£å· |
| | | initProperty("mmodelCode","","mmodelCode",propList); |
| | | initProperty("mmodelcode","",mmodelCode,propList); |
| | | String projectCode= searchItemDataVO.getProjectcode();//项ç®ç¼ç |
| | | initProperty("projectcode","","projectCode",propList); |
| | | initProperty("projectcode","",projectCode,propList); |
| | | String projectItem=searchItemDataVO.getProjectitem();//项ç®ä»£å· |
| | | initProperty("projectitem","","projectItem",propList); |
| | | initProperty("projectitem","",projectItem,propList); |
| | | String materialCode=searchItemDataVO.getMaterialcode();//产åç¼ç |
| | | initProperty("materialcode","","materialCode",propList); |
| | | initProperty("materialcode","",materialCode,propList); |
| | | //ç»å屿§çå¤ç |
| | | initProperty(attrKey,"",StringUtils.isNotBlank(projectItem)?projectItem:mmodelCode,propList); |
| | | String creatBy=searchItemDataVO.getCreatby();//å建è
|
| | | Date cretaeDon= searchItemDataVO.getCreatedon();//åå»ºæ¥æ æ¥æåï¼å¦ï¼2023-09-08 19:24:11 |
| | | String lastchangeBy=searchItemDataVO.getLastchangedby();//æ´æ¹è
|
| | |
| | | String isenabled= searchItemDataVO.getIsenabled();//å符åï¼æä¸¾å¼ï¼åç¨ï¼0ï¼å¯ç¨ï¼1ï¼ |
| | | applyDataVO.setOperate(operation); |
| | | applyDataVO.setCode(code); |
| | | if(isenabled.equals(0)){ |
| | | if(isenabled.equals("0")){ |
| | | applyDataVO.setStatus(CodeDefaultLC.DISABLE.getValue()); |
| | | }else{ |
| | | applyDataVO.setStatus(CodeDefaultLC.RELEASED.getValue()); |