From 377ef81de03a4a80d00f3cf1e0d1e2ff85ab7688 Mon Sep 17 00:00:00 2001 From: xiejun <xj@2023> Date: 星期一, 19 六月 2023 11:38:18 +0800 Subject: [PATCH] 接口定时分发其他系统功能开发 --- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingTaskServiceImpl.java | 11 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java | 7 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/DockingTaskVO.java | 184 ++------ Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeDuckingSyncServiceImpl.java | 673 ++++++++++++++++++++++++++++++ Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/Scheduling/DockingClassSyncScheduling.java | 54 ++ Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/DockingTaskMapper.xml | 48 ++ Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/DockingTaskWrapper.java | 67 +++ Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/DockingTask.java | 118 +++++ Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/Scheduling/DockingDataSyncScheduling.java | 56 ++ Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeDuckingSyncService.java | 51 ++ Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/DockingTaskMapper.java | 7 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/IDockingTaskService.java | 7 12 files changed, 1,149 insertions(+), 134 deletions(-) diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/DockingTask.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/DockingTask.java new file mode 100644 index 0000000..9e7d7fe --- /dev/null +++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/DockingTask.java @@ -0,0 +1,118 @@ +package com.vci.ubcs.code.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.vci.ubcs.starter.revision.model.BaseModel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/*** + * 瀹氭椂鍒嗗彂浠诲姟瀵硅薄 + */ +@Data +@TableName("PL_CODE_DOCKINGTASK") +@ApiModel(value = "DockingTask", description = "瀹氭椂鍒嗗彂浠诲姟瀵硅薄") +@EqualsAndHashCode +public class DockingTask extends BaseModel { + + /** + * 搴忓垪鍖� + */ + private static final long serialVersionUID = 5020487634341415429L; + + /** + * 绯荤粺鎺ュ彛oid + */ + @ApiModelProperty(value = "绯荤粺鎺ュ彛oid") + private String sysInfoOid; + + /** + * 绯荤粺id + */ + @ApiModelProperty(value = "绯荤粺id") + private String systemOid; + + /** + * 绯荤粺缂栧彿 + */ + @ApiModelProperty(value = "绯荤粺缂栧彿") + private String systemCode; + + /** + * 绯荤粺鍚嶇О + */ + @ApiModelProperty(value = "绯荤粺鍚嶇О") + private String systemName; + + /** + * 鍒嗙被oid + */ + @ApiModelProperty(value = "鍒嗙被oid") + private String classifyOid; + + /** + * 鍒嗙被id + */ + @ApiModelProperty(value = "鍒嗙被id") + private String classifyId; + + /** + * 鍒嗙被鍚嶇О + */ + @ApiModelProperty(value = "鍒嗙被鍚嶇О") + private String classifyName; + + /** + * 涓氬姟绫诲瀷鏁版嵁oid + */ + @ApiModelProperty(value = "涓氬姟绫诲瀷鏁版嵁oid") + private String btmOid; + + /** + * 涓氬姟绫诲瀷鏁版嵁id + */ + @ApiModelProperty(value = "涓氬姟绫诲瀷鏁版嵁id") + private String btmId; + + /** + * 鍞竴鏍囪瘑 + */ + @ApiModelProperty(value = "鍞竴鏍囪瘑") + private String uniqueCode; + + /** + * 鍙戦�佺被鍨� + */ + @ApiModelProperty(value = "鍙戦�佺被鍨�") + private String sendType; + + /** + * 鍙戦�佺被鍨嬫樉绀烘枃鏈� + */ + @ApiModelProperty(value = "鍙戦�佺被鍨嬫樉绀烘枃鏈�") + @TableField(exist = true) + private String sendTypeText; + + /** + * 鏄惁鍙戦�佹垚鍔� + */ + @ApiModelProperty(value = "鏄惁鍙戦�佹垚鍔�") + private String sendFlag; + + + /** + * 鏄惁鍙戦�佹垚鍔熸樉绀烘枃鏈� + */ + @ApiModelProperty(value = "鏄惁鍙戦�佹垚鍔熸樉绀烘枃鏈�") + @TableField(exist = true) + private String sendFlagText; + + + /** + * dockingdata鐨刼id + */ + @ApiModelProperty(value = "涓氬姟鏁版嵁涓婚敭") + private String dataOid; +} diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/DockingTaskVO.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/DockingTaskVO.java index 1a5c926..8b23a74 100644 --- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/DockingTaskVO.java +++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/DockingTaskVO.java @@ -10,191 +10,107 @@ */ public class DockingTaskVO extends BaseModel { + /** - * 绂佹淇敼杩欎釜鍊� + * 搴忓垪鍖� */ - private static final long serialVersionUID = 4615707119707777641L; + private static final long serialVersionUID = 5020487634341415429L; /** * 绯荤粺鎺ュ彛oid */ - private String sysinfooid; + private String sysInfoOid; /** * 绯荤粺id */ - private String systemoid; + private String systemOid; /** * 绯荤粺缂栧彿 */ - private String systemcode; + private String systemCode; /** * 绯荤粺鍚嶇О */ - private String systemname; + private String systemName; /** * 鍒嗙被oid */ - private String classifyoid; + private String classifyOid; + /** * 鍒嗙被id */ - private String classifyid; + private String classifyId; /** * 鍒嗙被鍚嶇О */ - private String classifyname; + private String classifyName; /** * 涓氬姟绫诲瀷鏁版嵁oid */ - private String btmoid; + private String btmOid; /** * 涓氬姟绫诲瀷鏁版嵁id */ - private String btmid; + private String btmId; /** - * uniquecode + * 鍞竴鏍囪瘑 */ - private String uniquecode; + private String uniqueCode; + + /** + * 鍙戦�佺被鍨� + */ + private String sendType; + + /** + * 鍙戦�佺被鍨嬫樉绀烘枃鏈� + */ + private String sendTypeText; + + /** + * 鏄惁鍙戦�佹垚鍔� + */ + private String sendFlag; /** * 鏄惁鍙戦�佹垚鍔� */ - private String sendflag; + private String sendFlagText; + /** - * 鍙戦�佺被鍨�,lcstatus + * dockingdata鐨刼id */ - private String sendtype; - /** - * 鏄惁鍙戦�佹垚鍔� - */ - private String dataoid; - - public String getDataoid() { - return dataoid; - } - - public void setDataoid(String dataoid) { - this.dataoid = dataoid; - } - public String getSendtype() { - return sendtype; - } - - public void setSendtype(String sendtype) { - this.sendtype = sendtype; - } - - public String getSysinfooid() { - return sysinfooid; - } - - public void setSysinfooid(String sysinfooid) { - this.sysinfooid = sysinfooid; - } - - public String getSystemoid() { - return systemoid; - } - - public void setSystemoid(String systemoid) { - this.systemoid = systemoid; - } - - public String getSystemcode() { - return systemcode; - } - - public void setSystemcode(String systemcode) { - this.systemcode = systemcode; - } - - public String getSystemname() { - return systemname; - } - - public void setSystemname(String systemname) { - this.systemname = systemname; - } - - public String getClassifyoid() { - return classifyoid; - } - - public void setClassifyoid(String classifyoid) { - this.classifyoid = classifyoid; - } - public String getClassifyid() { - return classifyid; - } - - public void setClassifyid(String classifyid) { - this.classifyid = classifyid; - } - public String getClassifyname() { - return classifyname; - } - - public void setClassifyname(String classifyname) { - this.classifyname = classifyname; - } - - public String getBtmoid() { - return btmoid; - } - - public void setBtmoid(String btmoid) { - this.btmoid = btmoid; - } - public String getBtmid() { - return btmid; - } - - public void setBtmid(String btmid) { - this.btmoid = btmid; - } - - public String getSendflag() { - return sendflag; - } - - public void setSendflag(String sendflag) { - this.sendflag = sendflag; - } - - public String getUniquecode() { - return uniquecode; - } - - public void setUniquecode(String uniquecode) { - this.uniquecode = uniquecode; - } + private String dataOid; @Override public String toString() { return "DockingTaskVO{" + - "sysinfooid='" + sysinfooid + '\'' + - ", systemoid='" + systemoid + '\'' + - ", systemcode='" + systemcode + '\'' + - ", systemname='" + systemname + '\'' + - ", classifyoid='" + classifyoid + '\'' + - ", classifyid='" + classifyid + '\'' + - ", classifyname='" + classifyname + '\'' + - ", btmoid='" + btmoid + '\'' + - ", btmid='" + btmid + '\'' + - ", uniquecode='" + uniquecode + '\'' + - ", sendflag='" + sendflag + '\'' + - ", sendtype='" + sendtype + '\'' + - ", dataoid='" + dataoid + '\'' + - '}'; + "sysInfoOid='" + sysInfoOid + '\'' + + ", systemOid='" + systemOid + '\'' + + ", systemCode='" + systemCode + '\'' + + ", systemName='" + systemName + '\'' + + ", classifyOid='" + classifyOid + '\'' + + ", classifyId='" + classifyId + '\'' + + ", classifyName='" + classifyName + '\'' + + ", btmOid='" + btmOid + '\'' + + ", btmId='" + btmId + '\'' + + ", uniqueCode='" + uniqueCode + '\'' + + ", sendType='" + sendType + '\'' + + ", sendTypeText='" + sendTypeText + '\'' + + ", sendFlag='" + sendFlag + '\'' + + ", sendFlagText='" + sendFlagText + '\'' + + ", dataOid='" + dataOid + '\'' + + '}'; } } diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/Scheduling/DockingClassSyncScheduling.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/Scheduling/DockingClassSyncScheduling.java new file mode 100644 index 0000000..b0fbc9e --- /dev/null +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/Scheduling/DockingClassSyncScheduling.java @@ -0,0 +1,54 @@ +package com.vci.ubcs.code.Scheduling; + +import com.vci.ubcs.code.service.ICodeDuckingSyncService; +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; + +/** + * 闆嗘垚浠诲姟瀹氭椂鍣� + * 鎻掑叆dockingtask涓� + * 浠巇ockingtask涓彇鍑烘潵鏁版嵁锛屾帹閫佸嚭鍘荤殑鎿嶄綔 + */ +@Component +@Slf4j +public class DockingClassSyncScheduling { + + @Resource + private ICodeDuckingSyncService codeDuckingSyncServiceI; + + @Value("${clsfSyncPush.isStart:false}") + public boolean CLSF_SYNC_PUSH_ISSTARE; + + /** + * 鏄惁鍒濆鍖栧畬鎴愪簡 + */ + public static volatile String FINISH_INIT = "false"; + + /** + * 鍦ㄥ垵濮嬪寲瀹屾垚鍚庢墽琛� + */ + @PostConstruct() + public void onInit(){ + FINISH_INIT = "true"; + } + + //榛樿姣忓垎閽熸墽琛屾柟娉� + @Scheduled(cron = "${clsfSyncPush.cronTime:0 0/10 * * * ?}") + public void scheduled() { + if(CLSF_SYNC_PUSH_ISSTARE && BooleanEnum.TRUE.getValue().equalsIgnoreCase(FINISH_INIT)) { + codeDuckingSyncServiceI.DockingClassSyncScheduing(); + SimpleDateFormat formatter= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss."); + String time = formatter.format(new Date()); + String outinfo = "============鍦� "+time+" 鎵ц浜嗗垎绫婚泦鎴愭帹閫�"; + log.info(outinfo); + } + } +} diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/Scheduling/DockingDataSyncScheduling.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/Scheduling/DockingDataSyncScheduling.java new file mode 100644 index 0000000..08a1e3e --- /dev/null +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/Scheduling/DockingDataSyncScheduling.java @@ -0,0 +1,56 @@ +package com.vci.ubcs.code.Scheduling; + +import com.vci.ubcs.code.service.ICodeDuckingSyncService; +import com.vci.ubcs.starter.web.enumpck.BooleanEnum; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +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; + +/** + * 闆嗘垚浠诲姟瀹氭椂鍣� + * 鎻掑叆dockingtask涓� + * 浠巇ockingtask涓彇鍑烘潵鏁版嵁锛屾帹閫佸嚭鍘荤殑鎿嶄綔 + */ +@Component +public class DockingDataSyncScheduling { + + private Logger logger = LoggerFactory.getLogger(getClass()); + + @Resource + private ICodeDuckingSyncService codeDuckingSyncServiceI; + + @Value("${dataSyncPush.isStart:false}") + public boolean DATA_SYNC_PUSH_ISSTARE; + + /** + * 鏄惁鍒濆鍖栧畬鎴愪簡 + */ + public static volatile String FINISH_INIT = "false"; + + /** + * 鍦ㄥ垵濮嬪寲瀹屾垚鍚庢墽琛� + */ + @PostConstruct() + public void onInit(){ + FINISH_INIT = "true"; + } + + //榛樿姣忓垎閽熸墽琛屾柟娉� + @Scheduled(cron = "${dataSyncPush.cronTime:0 0/10 * * * ?}") + public void scheduled() { + if(DATA_SYNC_PUSH_ISSTARE && BooleanEnum.TRUE.getValue().equalsIgnoreCase(FINISH_INIT)) { + codeDuckingSyncServiceI.DockingDataSyncScheduing(); + SimpleDateFormat formatter= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss."); + String time = formatter.format(new Date()); + String outinfo = "============鍦� "+time+" 鎵ц浜嗕富鏁版嵁闆嗘垚鏁版嵁鎺ㄩ��"; + logger.info(outinfo); + } + } +} diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/DockingTaskMapper.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/DockingTaskMapper.java new file mode 100644 index 0000000..93ef117 --- /dev/null +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/DockingTaskMapper.java @@ -0,0 +1,7 @@ +package com.vci.ubcs.code.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.vci.ubcs.code.entity.DockingTask; + +public interface DockingTaskMapper extends BaseMapper<DockingTask> { +} diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeDuckingSyncService.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeDuckingSyncService.java new file mode 100644 index 0000000..21f6d55 --- /dev/null +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeDuckingSyncService.java @@ -0,0 +1,51 @@ +package com.vci.ubcs.code.service; + + +import org.springblade.core.tool.api.R; + +import java.util.List; +import java.util.Map; + +/** + * 涓�銆侀厤缃垎绫汇�佺郴缁熴�佹帴鍙f暟鎹� + * 1銆侀厤缃郴缁烻ysIntBaseDO + * 2銆侀厤缃郴缁熴�佹帴鍙c�佸垎绫籗ysIntInfoDO + * + * 浜屻�佸鐞嗛鐢宠鏁版嵁 + * 1銆佹帴鏀秞mlData + * 2銆佸伐鑹虹郴缁熺壒娈婂鐞嗭紝鏍规嵁unique鏌ヨ缂栫爜锛屾湁宸茬粡鍙戝竷鐨勬暟鎹紝鐩存帴杩斿洖缂栫爜銆傛病鏈夋煡璇㈠埌宸茬粡鍙戝竷鐨勭紪鐮侊紙缂栬緫涓�佹彁浜や腑銆佸鏍镐腑銆佸仠鐢ㄧ瓑锛夊拰涓�鑸郴缁熶竴鏍锋寜鐓х3姝ュ鐞� + * 3銆佽В鏋恱mlData閲屾瘡涓�涓猟ata鑺傜偣锛屽瓨鍌ㄥ叆DockingPreApplyDataDO锛宒ata鑺傜偣涓媝ros鑺傜偣瀛樺偍鍏ockingPreApplyDataInfoDO + * 4銆佽繑鍥瀤mlData锛岄噷杈规爣璇嗕簡姣忎竴涓猟ata鐨勫鐞嗙粨鏋� + * + * 涓夈�佹牴鎹鐢宠鏁版嵁锛屾彃鍏ヤ富鏁版嵁 + * 1銆佸叧鑱斿垎绫� + * 2銆佹煡璇㈠嚭DockingPreApplyDataInfoDO瀛樺偍鐨勬暟鎹紝鎸夌収鏁版嵁鏄犲皠xml锛岃浆鎹负鎴戜滑鐨刱ey锛岃繑缁欏墠绔嚜鍔ㄥ~鍏呭埌鏂板鏁版嵁鐨勯〉闈� + * 3銆佽皟鐢ㄩ�氱敤鐨勬暟鎹柊澧炴帴鍙d繚瀛樻暟鎹紝杩欎竴姝ュ拰涓绘暟鎹鐞嗘ā鍧楀姛鑳戒竴鏍� + * + * 鍥涖�佹帹閫佹暟鎹� + * 1銆佸垎绫绘暟鎹拰涓绘暟鎹湁鍙樺寲鐨勬椂鍊欙紝鏁版嵁搴撹Е鍙戝櫒(TIG_CODEALLCODE_FORDOCKINGDATA,TIG_codeclsify_FORDOCKINGDATA)鑷姩鎻掑叆dockingdata + * 2銆丏ockingScheduling鎵ц鏃讹紝鏌ヨdockingdatasendflag=false鐨勬暟鎹紝缁撳悎鏌ヨsysintinfo鏁版嵁锛屾煡璇ockingtask + * 3銆乨ockingtask涓彇鍑烘潵鏁版嵁锛屾牴鎹産tmname鍜屾暟鎹畂id鏌ヨ鍑烘潵瑕佹帹閫佺殑鏁版嵁锛屾煡璇ysIntInfoDO锛屾牴鎹竴銆�2銆佷腑閰嶇疆鐨勪俊鎭紝鎵ц鎺ㄩ�� + * + * @author xieun + * @date 2022-06-19 + */ +public interface ICodeDuckingSyncService { + + /** + * 鏁版嵁瀹氭椂浠诲姟璋冪敤 + */ + void DockingDataSyncScheduing(); + + /** + * 鏁版嵁瀹氭椂浠诲姟璋冪敤 + */ + void DockingClassSyncScheduing(); + + /** + * 鎺ㄩ�佹湭瀹屾垚鐨勯泦鎴愭暟鎹� + * @return + */ + R sendData(String oids); +} + diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/IDockingTaskService.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/IDockingTaskService.java new file mode 100644 index 0000000..b020819 --- /dev/null +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/IDockingTaskService.java @@ -0,0 +1,7 @@ +package com.vci.ubcs.code.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.vci.ubcs.code.entity.DockingTask; + +public interface IDockingTaskService extends IService<DockingTask> { +} diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeDuckingSyncServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeDuckingSyncServiceImpl.java new file mode 100644 index 0000000..08af97d --- /dev/null +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeDuckingSyncServiceImpl.java @@ -0,0 +1,673 @@ +/* +package com.vci.ubcs.code.service.impl; + + +import com.alibaba.fastjson.JSONObject; +import com.thoughtworks.xstream.XStream; +import com.thoughtworks.xstream.io.xml.DomDriver; +import com.vci.mdm.constant.MdmDuckingConstant; +import com.vci.mdm.dao.*; +import com.vci.mdm.dto.datapush.classify.JsonRootDataDTO; +import com.vci.mdm.dto.datapush.classify.NodeClassifyDTO; +import com.vci.mdm.dto.datapush.classify.NodeDataDTO; +import com.vci.mdm.dto.datapush.classify.NodeLibraryDTO; +import com.vci.mdm.dto.datapush.data.NodeJosnDTO; +import com.vci.mdm.dto.datapush.data.NodeObjectDTO; +import com.vci.mdm.dto.datapush.data.NodeProDTO; +import com.vci.mdm.dto.datapush.data.NodedataDTO; +import com.vci.mdm.dto.datapush.result.ResultJsonDTO; +import com.vci.mdm.dto.datapush.result.ResultNodeDataDTO; +import com.vci.mdm.dto.datapush.result.ResultNodeObjectDTO; +import com.vci.mdm.model.*; +import com.vci.mdm.pagemodel.CodeClassifyTemplateAttrVO; +import com.vci.mdm.pagemodel.CodeClassifyTemplateVO; +import com.vci.mdm.pagemodel.SysIntInfoVO; +import com.vci.mdm.service.*; +import com.vci.mdm.utils.*; +import com.vci.starter.web.constant.QueryOptionConstant; +import com.vci.starter.web.enumpck.UserSecretEnum; +import com.vci.starter.web.pagemodel.BaseResult; +import com.vci.starter.web.pagemodel.SessionInfo; +import com.vci.starter.web.util.VciBaseUtil; +import com.vci.starter.web.wrapper.VciQueryWrapperForDO; +import com.vci.web.pageModel.BatchCBO; +import com.vci.web.redis.RedisService; +import com.vci.web.service.WebBoServiceI; +import com.vci.web.util.PlatformClientUtil; +import com.vci.web.util.WebUtil; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Lazy; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; +import org.springframework.util.LinkedMultiValueMap; +import org.springframework.util.MultiValueMap; + +import javax.annotation.Resource; +import java.util.*; +import java.util.stream.Collectors; + +import static com.vci.mdm.constant.MdmDuckingConstant.*; + + +*/ +/** + * 涓婚搴撻泦鎴愭湇鍔� + * @author wangyi + * @date 2022-03-20 + *//* + +@Service +public class CodeDuckingSyncServiceImpl implements CodeDuckingSyncServiceI { + + */ +/** + * 鏃ュ織 + *//* + + private Logger logger = LoggerFactory.getLogger(getClass()); + + */ +/** + * 闆嗘垚鎺ㄩ�佷换鍔℃暟鎹搷浣滃眰 + *//* + + @Resource + private DockingTaskDaoI dockingTaskDaoI; + + */ +/** + * 闆嗘垚鎺ㄩ�佷换鍔℃暟鎹搷浣滃眰 + *//* + + @Resource + private DockingDataDaoI dockingDataDaoI; + + */ +/** + * 闆嗘垚鏃ュ織鏁版嵁鎿嶄綔灞� + *//* + + @Resource + private DockingLogeDaoI dockingLogeDaoI; + + */ +/** + * 妯℃澘灞炴�ф暟鎹搷浣滃眰 + *//* + + @Resource + private CodeClassifyDaoI codeClassifyDaoI; + + */ +/** + * 涓氬姟绫诲瀷鎿嶄綔鐨勬湇鍔� + *//* + + @Autowired + private WebBoServiceI boService; + + */ +/** + * 缂撳瓨鏈嶅姟 + *//* + + @Autowired + private RedisService redisService; + + */ +/** + * 鏁版嵁鏈嶅姟 + *//* + + @Autowired(required = false) + @Lazy + private MdmEngineServiceI mdmEngineServiceI; + + + */ +/** + * 瑕佹帹閫佺郴缁熺殑鏈嶅姟 + *//* + + @Autowired + private SysIntInfoServiceI sysIntInfoServiceI; + + @Value("${dataSyncPush.dataParamName:xmlData}") + public String DATA_PARAM_NAME; + + */ +/** + * 瀹氭椂浠诲姟鎺ㄩ�� + *//* + + @Override + public void DockingDataSyncScheduing(){ + // insertCache2(); + initPushDataTaks(1); + sendpushDataForService(); + } + + */ +/** + * 鍒嗙被瀹氭椂浠诲姟鎺ㄩ�� + *//* + + @Override + public void DockingClassSyncScheduing(){ + initPushDataTaks(2);//鍒嗙被鎺ㄩ�� + sendpushClsfForService(); + } + + */ +/** + * 鎵嬪姩鎺ㄩ�佷负瀹屾垚鐨勬暟鎹� + * @param oids + * @return + *//* + + @Override + public BaseResult sendData(String oids) { + VciBaseUtil.alertNotNull(oids,"绯荤粺闆嗘垚鍩虹淇℃伅鏁版嵁瀵硅薄",oids,"绯荤粺闆嗘垚鍩虹淇℃伅鐨勪富閿�"); + List<String> dockingTaskOidList=new ArrayList<>(); + dockingTaskOidList= VciBaseUtil.str2List(oids); + List<DockingTaskDO> newDockingTaskDOs= this.dockingTaskDaoI.selectByPrimaryKeyCollection(dockingTaskOidList); + Map<String,List<DockingTaskDO>> typeDockingTaskDOMap=new HashMap<>(); + newDockingTaskDOs.stream().forEach(newDockingTaskDO->{ + String btmId=newDockingTaskDO.getBtmid(); + if(btmId.equalsIgnoreCase(DOCKING_DEFAULT_CLASSIFY.toLowerCase(Locale.ROOT))){ + List<DockingTaskDO> dockingTaskDOList= typeDockingTaskDOMap.get(DOCKING_DEFAULT_CLASSIFY.toLowerCase(Locale.ROOT)); + if(CollectionUtils.isEmpty(dockingTaskDOList)){ + dockingTaskDOList=new ArrayList<>(); + } + dockingTaskDOList.add(newDockingTaskDO); + typeDockingTaskDOMap.put(DOCKING_DEFAULT_CLASSIFY.toLowerCase(Locale.ROOT),dockingTaskDOList); + }else{ + List<DockingTaskDO> dockingTaskDOList= typeDockingTaskDOMap.get("data"); + if(CollectionUtils.isEmpty(dockingTaskDOList)){ + dockingTaskDOList=new ArrayList<>(); + } + dockingTaskDOList.add(newDockingTaskDO); + typeDockingTaskDOMap.put("data",dockingTaskDOList); + } + }); + typeDockingTaskDOMap.keySet().forEach(type->{ + List<DockingTaskDO> DockingTaskDO=typeDockingTaskDOMap.get(type); + if(!CollectionUtils.isEmpty(DockingTaskDO)){ + if(type.equalsIgnoreCase(DOCKING_DEFAULT_CLASSIFY.toLowerCase(Locale.ROOT))){ + this.sendpushClsfForService(DockingTaskDO); + }else{ + this.sendpushDataForService(DockingTaskDO); + } + } + }); + return BaseResult.successMsg("鎵嬪姩鎺ㄩ�佸畬鎴�,璇锋牳瀵规槸鍚︽帹閫佹垚鍔�"); + } + */ +/*** + * 鏌ヨredis涓暟鎹紝瀵规瘮鍚庢彃鍏ockingtask + * @param type + *//* + + private void initPushDataTaks(int type){ + initSysadmin(); + //sysintinfo鏌ヨ瑕佹帹閫佺殑涓婚搴撳拰鐩稿叧绯荤粺淇℃伅 + Map<String, String> conditionMap = new HashMap<>(); + conditionMap.put("usedflag","true"); + conditionMap.put("pushType",type==2?"2":"1") ;//2鏄唬琛ㄥ垎绫绘帹閫侊紝1鏄唬琛ㄦ暟鎹帹閫� + + List<SysIntInfoDO> sysIntInfoVOList = sysIntInfoServiceI.selectAll(conditionMap); + if(CollectionUtils.isEmpty(sysIntInfoVOList)){ + String title=type==2?"鍒嗙被鎺ㄩ��":"鏁版嵁鎺ㄩ��"; + logger.info("info->鎵�鏈夐泦鎴愮郴缁燂紝鏈煡璇㈠埌鐩稿叧鐨勩��"+title+"銆戠殑鎺ュ彛閰嶇疆淇℃伅锛岄厤缃�"); + return; + } + Map<String ,List<SysIntInfoDO>> sysIntInfoDOMap = new HashMap<String ,List<SysIntInfoDO>>();//key=classifyoid,value=list<map> + for (SysIntInfoDO sysIntInfoVOi:sysIntInfoVOList){ + List<SysIntInfoDO> SysIntInfoVOListi = sysIntInfoDOMap.get(sysIntInfoVOi.getClassifyoid()); + if(SysIntInfoVOListi==null){ + SysIntInfoVOListi = new ArrayList<SysIntInfoDO>(); + } + SysIntInfoVOListi.add(sysIntInfoVOi); + sysIntInfoDOMap.put(sysIntInfoVOi.getClassifyoid(),SysIntInfoVOListi); + } + //鏍规嵁绫诲瀷鍘绘煡璇㈤渶瑕侀泦鎴愮殑鍒嗙被鎴栬�呮暟鎹� + VciQueryWrapperForDO queryWrapperForDO = new VciQueryWrapperForDO(DockingDataDO.class); + queryWrapperForDO.addQueryMap("sendflag","false"); + if(type==2){ + queryWrapperForDO.addQueryMap("btmTypeId",DOCKING_DEFAULT_CLASSIFY.toLowerCase(Locale.ROOT)); + }else { + queryWrapperForDO.addQueryMap("btmTypeId", QueryOptionConstant.NOTIN + "(" + VciBaseUtil.toInSql(DOCKING_DEFAULT_CLASSIFY.toLowerCase(Locale.ROOT)) + ")"); + } + List<DockingDataDO> dataList = dockingDataDaoI.selectByWrapper(queryWrapperForDO); + + for (DockingDataDO mapi:dataList){ + WebUtil.setPersistence(false); + BatchCBO batchCBO = new BatchCBO(); + String dataoid = mapi.getOid();//data瀵硅薄鐨刼id + String classifyoid = mapi.getClassifyoid(); + String id = mapi.getId(); + String uniquecode = mapi.getUniquecode(); + String btmid = mapi.getBtmid(); + String btmoid = mapi.getBtmoid(); + String sendtype = mapi.getSendtype(); + String classifyid = mapi.getClassifyid(); + String classifyname = mapi.getClassifyname(); + String curentClassOid=null; + if(type==2){ + curentClassOid=btmoid; + }else{ + curentClassOid=classifyoid; + } + List<SysIntInfoDO> effectiveSysIntInfoVOs=new ArrayList<>(); + //鏍规嵁褰撳墠鏁版嵁鐨刬d锛屾煡璇㈣幏鍙栧摢浜涚郴缁熼渶瑕佸仛闆嗘垚 + List<CodeClassifyDO> parentLeveDO= codeClassifyDaoI.selectAllLevelParentByOid(curentClassOid); + if(CollectionUtils.isEmpty(parentLeveDO)){ + continue;//璇存槑杩欎釜鍒嗙被琚垹鎺変簡锛屼笉鍋氬鐞� + } + Map<String, CodeClassifyDO> oidCodeclassifyDOMap = parentLeveDO.stream().filter(codeClassifyDO -> codeClassifyDO != null && StringUtils.isNotBlank(codeClassifyDO.getOid())).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getOid(), t -> t)); + + oidCodeclassifyDOMap.keySet().forEach(oid->{ + if(sysIntInfoDOMap.containsKey(oid)){ + List<SysIntInfoDO> sysIntInfoDOS= sysIntInfoDOMap.get(oid); + effectiveSysIntInfoVOs.addAll(sysIntInfoDOS); + } + }); + //濡傛灉鏍¢獙鐨勭郴缁熸帴鍙d俊鎭笉瀛樺湪锛屽垯鏁版嵁涓嶄笉寰�淇℃伅閲屾帹閫� + if(CollectionUtils.isEmpty(effectiveSysIntInfoVOs)){ + continue; + } + List<DockingTaskDO> dockingTaskDO_insert = new ArrayList<DockingTaskDO>(); + for (SysIntInfoDO sysIntInfoVOi:effectiveSysIntInfoVOs){ + DockingTaskDO dockingTaskDO = new DockingTaskDO(); + dockingTaskDO.setOid(redisService.getUUIDEveryDay()); + dockingTaskDO.setSendflag(SEND_FLAG_FALSE); + dockingTaskDO.setId(id);//缂栫爜 + dockingTaskDO.setUniquecode(uniquecode); + dockingTaskDO.setBtmoid(btmoid);//鏁版嵁oid + dockingTaskDO.setBtmid(btmid);//鏁版嵁涓氬姟绫诲瀷id + dockingTaskDO.setClassifyid(classifyid);//鏁版嵁鍦ㄥ垎绫籭d + dockingTaskDO.setClassifyoid(classifyoid);//鏁版嵁鎵�鍦ㄥ垎绫籵id + dockingTaskDO.setClassifyname(classifyname);//鏁版嵁鎵�鍦ㄥ垎绫诲悕绉� + dockingTaskDO.setSendtype(sendtype);//鏁版嵁鎺ㄩ�佺被鍨� + dockingTaskDO.setDataoid(dataoid); + + //intinfo + dockingTaskDO.setSysinfooid(sysIntInfoVOi.getOid());//intinfo鐨刼id + dockingTaskDO.setSystemoid(sysIntInfoVOi.getSysbaseoid());//绯荤粺oid + dockingTaskDO.setSystemcode(sysIntInfoVOi.getSysbaseid());//绯荤粺缂栫爜 + dockingTaskDO.setSystemname(sysIntInfoVOi.getSysbasename());//绯荤粺name + dockingTaskDO_insert.add(dockingTaskDO); + } + + BatchCBO bi = null; + if(dockingTaskDO_insert.size()!=0) { + bi = dockingTaskDaoI.batchInsert(dockingTaskDO_insert); + batchCBO.copyFromOther(bi); + } + WebUtil.setPersistence(true); + boService.persistenceBatch(batchCBO); + //dockingTaskDaoI.updateByPrimaryKey鏂规硶鎶ラ敊浜嗭紝鎵�浠ユ墜鍐欎簡杩欎釜 + boolean u = updateDockingDatasSendFlag(dataoid,SEND_FLAG_TRUE); + if(!u){ + logger.error("闆嗘垚data鍒嗚В浠诲姟澶辫触锛乨ataoid:"+dataoid); + continue; + } + + } + } + private void sendpushDataForService (){ + initSysadmin(); + //鏌ヨ鍝簺浠诲姟杩樻病鏈夋墽琛屽畬鎴� + VciQueryWrapperForDO queryWrapper = new VciQueryWrapperForDO(DockingTaskDO.class); + queryWrapper.addQueryMap("sendFlag",MdmDuckingConstant.SEND_FLAG_FALSE); + queryWrapper.addQueryMap("btmId", QueryOptionConstant.NOTIN + "(" + VciBaseUtil.toInSql(DOCKING_DEFAULT_CLASSIFY.toUpperCase(Locale.ROOT)) + ")"); + List<DockingTaskDO> dockingTaskDOS = dockingTaskDaoI.selectByWrapper(queryWrapper); + sendpushDataForService(dockingTaskDOS); + } + */ +/*** + * 鍙戦�佺紪鐮佷富鏁版嵁 + *//* + + private void sendpushDataForService (List<DockingTaskDO> dockingTaskDOS){ + + //姣忎釜task渚濇鎵ц鎺ㄩ�� + for (DockingTaskDO dockingTaskDO:dockingTaskDOS){ + //姣忎釜task涓�涓簨鍔★紝寮�鍚� + WebUtil.setPersistence(false); + BatchCBO batchCBO = new BatchCBO(); + String paramString=""; + String sendString=""; + String backString=""; + try { + //鏌ヨ绯荤粺鎺ュ彛淇℃伅,ip method,dataType + String systeminfooid = dockingTaskDO.getSysinfooid();//sysininfo 鐨刼id + String classifyoid = dockingTaskDO.getClassifyoid(); + //鏌ヨ瑕佹帹閫佺殑鏁版嵁 + String btmoid = dockingTaskDO.getBtmoid();//鏁版嵁btmid + //琛ㄧず鏄富鏁版嵁 + CodeClassifyTemplateVO codeClassifyTemplateVO = mdmEngineServiceI.getUsedTemplateByClassifyOid(classifyoid); + BaseResult<Map<String, String>> baseResult = mdmEngineServiceI.getDataByOid(btmoid, codeClassifyTemplateVO.getOid()); + List<CodeClassifyTemplateAttrVO> attrVOS = codeClassifyTemplateVO.getAttributes(); + Map<String*/ +/**鑻辨枃鍚嶇О**//* +, String*/ +/**涓枃鍚嶇О**//* +> attrIdNameMap = attrVOS.stream().collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t.getName(), (o1, o2) -> o2)); + Map<String, String> data = new HashMap<>(); + if (baseResult == null) { + JSONObject josni = redisService.getCacheObject(DOCKING_CACHE2_DELETE + btmoid); + data = (Map) josni; + } else { + data = baseResult.getObj(); + } + List<NodeProDTO> nodeProDTOS = new ArrayList<>(); + Map<String, String> finalData = data; + attrIdNameMap.keySet().forEach(field -> { + String outName = attrIdNameMap.get(field); + if (finalData.containsKey(field)) { + String Value = finalData.get(field); + NodeProDTO nodeProDTO = new NodeProDTO(); + nodeProDTO.setFiledName(field); + nodeProDTO.setOutname(outName); + nodeProDTO.setFiledValue(Value); + nodeProDTOS.add(nodeProDTO); + } + }); + + String[] classCodeLeves = dockingTaskDO.getClassifyid().split(","); + NodeJosnDTO nodeJosnDTO = new NodeJosnDTO(); + NodedataDTO nodeDataDTO = new NodedataDTO(); + NodeObjectDTO nodeObjectDTO = new NodeObjectDTO(); + nodeObjectDTO.setCode(dockingTaskDO.getId());//璁剧疆缂栫爜 + nodeObjectDTO.setClassCode(classCodeLeves[0]); + nodeObjectDTO.setStatus(data.get("lcstatus")); + nodeObjectDTO.setLibrary(classCodeLeves[classCodeLeves.length - 1]); + nodeObjectDTO.setPro(nodeProDTOS); + List<NodeObjectDTO> nodeObjectDTOS = new ArrayList<>(); + nodeObjectDTOS.add(nodeObjectDTO); + nodeDataDTO.setObject(nodeObjectDTOS); + nodeJosnDTO.setData(nodeDataDTO); + //鏌ヨ鎺ㄩ�佹帴鍙e弬鏁� + SysIntInfoVO sysIntInfoVO = sysIntInfoServiceI.getObjectByOid(systeminfooid); + String paramType = sysIntInfoVO.getParamtype();//xml/json + if (paramType.equals(DATATYPE_JSON)) { + Object object = JSONObject.toJSON(nodeJosnDTO); + sendString = object.toString(); + } else { + //缁勭粐杩斿洖鎺ュ彛淇℃伅 + XStream xStream = new XStream(new DomDriver()); + xStream.processAnnotations(NodedataDTO.class); + xStream.autodetectAnnotations(true); + sendString = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n" + xStream.toXML(nodeDataDTO); + } + //璋冪敤鎺ュ彛 + callInterface(sendString,sysIntInfoVO, dockingTaskDO, batchCBO); + }catch (Throwable e){ + e.printStackTrace(); + }finally { + //姣忎竴涓猼ask涓�涓簨鐗� + WebUtil.setPersistence(true); + boService.persistenceBatch(batchCBO); + } + } + } + public void sendpushClsfForService(){ + initSysadmin(); + //鏌ヨ鍝簺浠诲姟杩樻病鏈夋墽琛屽畬鎴� + VciQueryWrapperForDO queryWrapper = new VciQueryWrapperForDO(DockingTaskDO.class); + queryWrapper.addQueryMap("sendFlag",MdmDuckingConstant.SEND_FLAG_FALSE); + queryWrapper.addQueryMap("btmId",DOCKING_DEFAULT_CLASSIFY.toUpperCase(Locale.ROOT)); + List<DockingTaskDO> dockingTaskDOS = dockingTaskDaoI.selectByWrapper(queryWrapper); + sendpushClsfForService(dockingTaskDOS); + } + */ +/*** + * 鍙戦�佸垎绫绘暟鎹� + *//* + + private void sendpushClsfForService(List<DockingTaskDO> dockingTaskDOS){ + //姣忎釜task渚濇鎵ц鎺ㄩ�� + for (DockingTaskDO dockingTaskDO:dockingTaskDOS){ + //姣忎釜task涓�涓簨鍔★紝寮�鍚� + WebUtil.setPersistence(false); + BatchCBO batchCBO = new BatchCBO(); + String paramString=""; + String sendString=""; + String backString=""; + //鏌ヨ绯荤粺鎺ュ彛淇℃伅,ip method,dataType + String systeminfooid = dockingTaskDO.getSysinfooid();//sysininfo 鐨刼id + try { + //鏌ヨ瑕佹帹閫佺殑鏁版嵁 + String btmoid = dockingTaskDO.getBtmoid();//鏁版嵁btmid + JsonRootDataDTO jsonRootDataDTO=new JsonRootDataDTO(); + CodeClassifyDO codeClassifyDO=codeClassifyDaoI.selectByPrimaryKey(btmoid); + List<NodeClassifyDTO>nodeClassifyDTOList=new ArrayList<>(); + NodeClassifyDTO nodeClassifyDTO=new NodeClassifyDTO(); + nodeClassifyDTO.setClassCode(codeClassifyDO.getId());//鍒嗙被浠e彿 + nodeClassifyDTO.setDescription(codeClassifyDO.getDescription());//鍒嗙被鎻忚堪 + nodeClassifyDTO.setFullPathName(codeClassifyDO.getPath());//鍏ㄨ矾寰� + nodeClassifyDTO.setLcStatus(codeClassifyDO.getLcStatus());//鐘舵�� + // CodeClassifyDO parentClassDo=codeClassifyDaoI.selectByPrimaryKey(codeClassifyDO.getParentCodeClassifyOid()); + nodeClassifyDTO.setPid(codeClassifyDO.getParentCodeClassifyOid());//鐖秈d鑺傜偣 + nodeClassifyDTO.setId(codeClassifyDO.getOid());//鍒嗙被oid + nodeClassifyDTO.setName(codeClassifyDO.getName());//鍒嗙被鍚嶇О + nodeClassifyDTOList.add(nodeClassifyDTO); + NodeLibraryDTO nodeLibraryDTO=new NodeLibraryDTO(); + CodeClassifyDO rootClassify=codeClassifyDaoI.getRootClassify(btmoid); + nodeLibraryDTO.setClassify(nodeClassifyDTOList); + nodeLibraryDTO.setId(rootClassify.getOid()); + nodeLibraryDTO.setName(rootClassify.getName()); + nodeLibraryDTO.setClassCode(rootClassify.getId()); + NodeDataDTO nodeDataDTO=new NodeDataDTO(); + nodeDataDTO.setLibrary(nodeLibraryDTO); + jsonRootDataDTO.setData(nodeDataDTO); + + //鏌ヨ鎺ㄩ�佹帴鍙e弬鏁� + SysIntInfoVO sysIntInfoVO = sysIntInfoServiceI.getObjectByOid(systeminfooid); + String paramType = sysIntInfoVO.getParamtype();//xml/json + if(paramType.equals(DATATYPE_JSON)){ + Object object = JSONObject.toJSON(jsonRootDataDTO); + sendString = object.toString(); + }else{ + //缁勭粐杩斿洖鎺ュ彛淇℃伅 + XStream xStream = new XStream(new DomDriver()); + xStream.processAnnotations(NodeDataDTO.class); + xStream.autodetectAnnotations(true); + sendString = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n" + xStream.toXML(nodeDataDTO); + } + //璋冪敤鎺ュ彛 + callInterface(sendString,sysIntInfoVO,dockingTaskDO,batchCBO); + }catch (Throwable e){ + e.printStackTrace(); + }finally { + //姣忎竴涓猼ask涓�涓簨鐗� + WebUtil.setPersistence(true); + boService.persistenceBatch(batchCBO); + } + } + } + + */ +/*** + * 璋冪敤鎺ュ彛 + * @param sysIntInfoVO + * @throws Throwable + *//* + + private void callInterface(String sendString , SysIntInfoVO sysIntInfoVO,DockingTaskDO dockingTaskDO,BatchCBO batchCBO) throws Throwable{ + String paramString = ""; + + String backString = ""; + String msg=""; + String url = sysIntInfoVO.getRequesturl();//url + List<ResultNodeObjectDTO> resultNodeObjectDTOS =new ArrayList<>(); + try { + + String type = sysIntInfoVO.getInterfacetype().toLowerCase(Locale.ROOT);//get/post/webserver/corba + String paramType = sysIntInfoVO.getParamtype();//xml/json + String returnType = sysIntInfoVO.getReturntype();//xml/json + String requestmethod= sysIntInfoVO.getRequestmethod(); + String interfaceFunction = sysIntInfoVO.getInterfaceFunction();//涓昏鏄痺ebservice鐨勬柟娉曞悕 + String namespace = sysIntInfoVO.getNamespace();//namespace + String soapaction = sysIntInfoVO.getSoapaction();//soapaction + String targName = sysIntInfoVO.getTargName();//targName + String cxfaxis = sysIntInfoVO.getCxfaxis();//webservice鏄痗xf/axis + //鏌ヨparam + List<SysIntParamDO> sysIntParamDOList = sysIntInfoServiceI.getParamsBySystemInfoOid(sysIntInfoVO.getOid()); + //鏌ヨheader + List<SysIntHeaderDO> sysIntHeaderDOList = sysIntInfoServiceI.getHeadersBySystemInfoOid(sysIntInfoVO.getOid()); + if(type.equals(URLTYPE_HTTP)) { + if (requestmethod.equals(URLTYPE_GET)) {//GET璇锋眰 + String sendurl = url + "?" + DATA_PARAM_NAME + "=" + sendString; + //鎷兼帴param + for (SysIntParamDO sysIntParamDO : sysIntParamDOList) { + sendurl = sendurl + "&" + sysIntParamDO.getParamkey() + "=" + sysIntParamDO.getParamvalue(); + } + paramString = sendurl; + backString = HttpUtils.get(sendurl); + } else if (requestmethod.equals(URLTYPE_POST)) {//POST璇锋眰 + MultiValueMap<String, String> params = new LinkedMultiValueMap<>(); + for (SysIntParamDO sysIntParamDO : sysIntParamDOList) { + params.add(sysIntParamDO.getParamkey(), sysIntParamDO.getParamvalue()); + } + params.add(DATA_PARAM_NAME,sendString); + paramString = params.toString(); + MultiValueMap<String, String> headers = new LinkedMultiValueMap<>(); + for (SysIntHeaderDO sysIntHeaderDO : sysIntHeaderDOList) { + headers.add(sysIntHeaderDO.getHeaderkey(), sysIntHeaderDO.getHeaderalue()); + } + backString = HttpUtils.post(url, params, headers); + } + if(backString.startsWith("\"")){ + backString=backString.substring(backString.indexOf("\"")+1); + } + if(backString.endsWith("\"")){ + backString=backString.substring(0,backString.lastIndexOf("\"")); + } + if(backString.contains("\n")){ + String res="\n"; + backString= backString.replaceAll(res,""); + } + if(backString.contains("\\")){ + String res="\\\\\""; + backString= backString.replaceAll(res,"\"").trim(); + } + }else if (type.equals(URLTYPE_WEBSERVICE)) {//webserver璇锋眰 + MultiValueMap<String, String> params = new LinkedMultiValueMap<>(); + for (SysIntParamDO sysIntParamDO : sysIntParamDOList) { + params.add(sysIntParamDO.getParamkey(), sysIntParamDO.getParamvalue()); + } + paramString = sendString; + MultiValueMap<String, String> headers = new LinkedMultiValueMap<>(); + for (SysIntHeaderDO sysIntHeaderDO : sysIntHeaderDOList) { + headers.add(sysIntHeaderDO.getHeaderkey(), sysIntHeaderDO.getHeaderalue()); + } + backString = WsErpClientUtil.sendMsg(url, namespace, soapaction, interfaceFunction, targName, sendString, 10000); + + } else {//corba鎺ュ彛 + //paramString=sendString; + // backString = jacorbClient.getBOFactoryService().sendCode(sendString); + } + + ResultJsonDTO resultJsonDTO = new ResultJsonDTO(); + if(returnType.equals(DATATYPE_JSON)){ + resultJsonDTO =JSONObject.toJavaObject(JSONObject.parseObject(backString), ResultJsonDTO.class); + }else { + //缁勭粐杩斿洖鎺ュ彛淇℃伅 + XStream xStream = new XStream(new DomDriver()); + xStream.processAnnotations(ResultNodeDataDTO.class); + xStream.autodetectAnnotations(true); + ResultNodeDataDTO resultNodeDataDTO = (ResultNodeDataDTO) xStream.fromXML(backString); + resultJsonDTO.setData(resultNodeDataDTO); + } + ResultNodeDataDTO resultNodeDataDTO=resultJsonDTO.getData(); + resultNodeObjectDTOS=resultNodeDataDTO.getObject(); + + }catch (Throwable e){ + msg="璋冪敤鎺ュ彛澶辫触:"+e; + e.printStackTrace(); + // throw new Throwable("璋冪敤鎺ュ彛澶辫触:"+e); + ResultNodeObjectDTO resultNodeObjectDTO=new ResultNodeObjectDTO(); + resultNodeObjectDTO.setErroid("1"); + resultNodeObjectDTO.setMsg(msg); + resultNodeObjectDTO.setCode(sysIntInfoVO.getPushType().equalsIgnoreCase("2")?dockingTaskDO.getClassifyid():dockingTaskDO.getId()); + resultNodeObjectDTO.setOid(dockingTaskDO.getBtmoid()); + resultNodeObjectDTOS.add(resultNodeObjectDTO); + }finally { + boolean isSend = false; + for (ResultNodeObjectDTO resultNodeObjectDTO:resultNodeObjectDTOS){ + String erroid = resultNodeObjectDTO.getErroid(); + msg = resultNodeObjectDTO.getMsg(); + if("0".equals(erroid)){ + isSend = true; + }else if("1".equals(erroid)){ + isSend=false; + }else{ + isSend=false; + } + DockingLogeDO dockingLogeDO = new DockingLogeDO(); + String oid=redisService.getUUIDEveryDay(); + dockingLogeDO.setOid(oid); + dockingLogeDO.setSystemcode(dockingTaskDO.getSystemcode()); + dockingLogeDO.setSystemname(dockingTaskDO.getSystemname()); + dockingLogeDO.setSystemoid(dockingTaskDO.getSystemoid()); + dockingLogeDO.setClassifyoid(dockingTaskDO.getClassifyoid()); + dockingLogeDO.setClassifyid(dockingTaskDO.getClassifyid()); + dockingLogeDO.setClassifyname(dockingTaskDO.getClassifyname()); + dockingLogeDO.setId(dockingTaskDO.getId()); + dockingLogeDO.setUniquecode(dockingTaskDO.getUniquecode()); + dockingLogeDO.setParamstring(paramString); + dockingLogeDO.setReturnstring(backString); + dockingLogeDO.setInterfacestatus(isSend?"true":"false"); + dockingLogeDO.setType(DATA_LOGE_OUT); + dockingLogeDO.setMsg(msg); + logger.error("闆嗘垚鎺ㄩ�佹暟鎹�,systemcode:"+dockingTaskDO.getSystemcode()+",systemname:"+dockingTaskDO.getSystemname()+",url:"+url+",param:"+paramString+",e:"+msg); + BatchCBO dockingLogeDOBo = dockingLogeDaoI.insert(dockingLogeDO); + batchCBO.copyFromOther(dockingLogeDOBo); + } + //鍏ㄩ兘鎺ユ敹鎴愬姛鐨勬儏鍐典笅,淇敼dockingtask sendflag涓哄凡鍙戦�� + if(isSend) { + dockingTaskDO.setSendflag(MdmDuckingConstant.SEND_FLAG_TRUE); + BatchCBO updateTask = dockingTaskDaoI.updateByPrimaryKey(dockingTaskDO); + batchCBO.copyFromOther(updateTask); + } + } + } + public void initSysadmin(){ + SessionInfo sessionInfo = new SessionInfo(); + sessionInfo.setUserId("sysAdmin"); + sessionInfo.setUserName("绯荤粺绠$悊鍛�"); + sessionInfo.setIp(WebUtil.getLocalIp()); + sessionInfo.setUserOid("193C026F-7DB8-27B4-F383-4E8BE083FB07"); + sessionInfo.setUserSecret(UserSecretEnum.PRIVACY.getValue()+""); + WebUtil.setSessionInfo(sessionInfo); + } + + @Autowired + private PlatformClientUtil platformClientUtil; + */ +/** + * dockingdata鏍规嵁oid淇敼sendflag + * @param oid + * @param sendflag + * @return + *//* + + public boolean updateDockingDatasSendFlag(String oid,String sendflag){ + boolean u=false; + String sql = "update PLATFORMBTM_codedockingdata set sendFlag = '"+sendflag+"' where oid='"+oid+"'"; + try { + u=platformClientUtil.getBOFactoryService().executeUpdateSql(sql); + }catch (Exception e){ + + } + return u; + } +} + +*/ diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingTaskServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingTaskServiceImpl.java new file mode 100644 index 0000000..d9d9908 --- /dev/null +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingTaskServiceImpl.java @@ -0,0 +1,11 @@ +package com.vci.ubcs.code.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.vci.ubcs.code.entity.CodeClassifyValue; +import com.vci.ubcs.code.entity.DockingTask; +import com.vci.ubcs.code.mapper.CodeClassifyValueMapper; +import com.vci.ubcs.code.mapper.DockingTaskMapper; +import com.vci.ubcs.code.service.IDockingTaskService; + +public class DockingTaskServiceImpl extends ServiceImpl<DockingTaskMapper, DockingTask> implements IDockingTaskService { +} diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java index 4221c45..970d631 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java @@ -699,7 +699,14 @@ }); resultDataVO.setObject(dataObjectVOS); } + }else{ + errorid = "101"; + msg = "鎺ュ彛鍙傛暟锛歝lassCode 鏈煡璇㈠埌瀵瑰簲鐨勫垎绫讳俊鎭�"; + throw new Throwable(msg); } + }else{ + errorid = "101"; + msg = "鎺ュ彛鍙傛暟锛歭ibrary 鏈煡璇㈠埌瀵瑰簲鐨勫簱鑺傜偣淇℃伅"; } errorid = "0"; msg = "鏁版嵁鏌ヨ鎴愬姛"; diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/DockingTaskWrapper.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/DockingTaskWrapper.java new file mode 100644 index 0000000..2118a86 --- /dev/null +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/DockingTaskWrapper.java @@ -0,0 +1,67 @@ +package com.vci.ubcs.code.wrapper; + +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import com.vci.ubcs.code.entity.DockingTask; +import com.vci.ubcs.code.vo.DockingTaskVO; +import com.vci.ubcs.code.vo.pagemodel.DockingTaskVO; +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.Objects; + +public class DockingTaskWrapper extends BaseEntityWrapper<DockingTask, DockingTaskVO> { + public static DockingSystemWrapper build() { + return new DockingSystemWrapper(); + } + @Override + public DockingTaskVO entityVO(DockingTask entity) { + DockingTaskVO vo = Objects.requireNonNull(BeanUtil.copy(entity, DockingTaskVO.class)); + return vo; + } + + + /*** + * 鏁扮粍瀵硅薄杞崲 + * @param entitys + * @return + */ + public List<DockingTaskVO> entityVOs(Collection<DockingTask> entitys) { + if(CollectionUtils.isEmpty(entitys)) {return new ArrayList<>();} + List<DockingTaskVO> vos=new ArrayList<>(); + if(!CollectionUtils.isEmpty(entitys)) { + entitys.stream().forEach(vo -> { + vos.add(entityVO(vo)); + }); + } + return vos; + } + + /*** + * 鏁扮粍瀵硅薄杞崲 + * @param vos + * @return + */ + public List<DockingTask> voentitys(Collection<DockingTaskVO> vos) { + if(CollectionUtils.isEmpty(vos)) {return new ArrayList<>();} + List<DockingTask>entitys =new ArrayList<>(); + if(!CollectionUtils.isEmpty(vos)) { + vos.stream().forEach(entity -> { + entitys.add(voentity(entity)); + }); + } + return entitys; + } + + /*** + * 鏁扮粍瀵硅薄杞崲 + * @param vo + * @return + */ + public DockingTask voentity( DockingTaskVO vo) { + DockingTask entity = Objects.requireNonNull(BeanUtil.copy(vo, DockingTask.class)); + return entity; + } +} diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/DockingTaskMapper.xml b/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/DockingTaskMapper.xml new file mode 100644 index 0000000..675e7a7 --- /dev/null +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/DockingTaskMapper.xml @@ -0,0 +1,48 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.vci.ubcs.code.mapper.DockingTaskMapper"> + <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 --> + <resultMap id="plDockingLogResultMap" type="com.vci.ubcs.code.entity.DockingTask"> + <result column="OID" property="oid"/> + <result column="REVISIONOID" property="revisionOid"/> + <result column="NAMEOID" property="nameOid"/> + <result column="BTMNAME" property="btmname"/> + <result column="LASTR" property="lastR"/> + <result column="FIRSTR" property="firstR"/> + <result column="LASTV" property="lastV"/> + <result column="FIRSTV" property="firstV"/> + <result column="CREATOR" property="creator"/> + <result column="CREATETIME" property="createTime"/> + <result column="LASTMODIFIER" property="lastModifier"/> + <result column="LASTMODIFYTIME" property="lastModifyTime"/> + <result column="REVISIONRULE" property="revisionRule"/> + <result column="VERSIONRULE" property="versionRule"/> + <result column="REVISIONSEQ" property="revisionSeq"/> + <result column="REVISIONVALUE" property="revisionValue"/> + <result column="VERSIONSEQ" property="versionSeq"/> + <result column="VERSIONVALUE" property="versionValue"/> + <result column="LCTID" property="lctid"/> + <result column="LCSTATUS" property="lcStatus"/> + <result column="TS" property="ts"/> + <result column="ID" property="id"/> + <result column="NAME" property="name"/> + <result column="DESCRIPTION" property="description"/> + <result column="OWNER" property="owner"/> + <result column="COPYFROMVERSION" property="copyFromVersion"/> + <result column="SYSINFOOID" property="sysInfoOid"/> + <result column="SYSTEMOID" property="systemOid"/> + <result column="SYSINFOOID" property="sysInfoOid"/> + <result column="SYSTEMCODE" property="systemCode"/> + <result column="SYSTEMNAME" property="systemName"/> + <result column="CLASSIFYOID" property="classifyOid"/> + <result column="CLASSIFYID" property="classifyId"/> + <result column="CLASSIFYNAME" property="classifyName"/> + <result column="BTMOID" property="btmOid"/> + <result column="BTMID" property="btmId"/> + <result column="UNIQUECODE" property="uniqueCode"/> + <result column="SENDTYPE" property="sendType"/> + <result column="SENDFLAG" property="sendFlag"/> + <result column="DATAOID" property="dataOid"/> + + </resultMap> +</mapper> -- Gitblit v1.9.3