Source/ExampleIntegratedPushCalled/.idea/.gitignore
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,8 @@ # Default ignored files /shelf/ /workspace.xml # Editor-based HTTP Client requests /httpRequests/ # Datasource local storage ignored files /dataSources/ /dataSources.local.xml Source/ExampleIntegratedPushCalled/.idea/compiler.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,13 @@ <?xml version="1.0" encoding="UTF-8"?> <project version="4"> <component name="CompilerConfiguration"> <annotationProcessing> <profile name="Maven default annotation processors profile" enabled="true"> <sourceOutputDir name="target/generated-sources/annotations" /> <sourceTestOutputDir name="target/generated-test-sources/test-annotations" /> <outputRelativeToContentRoot value="true" /> <module name="ExampleIntegratedPushCalled" /> </profile> </annotationProcessing> </component> </project> Source/ExampleIntegratedPushCalled/.idea/easyCodeTableSetting.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,694 @@ <?xml version="1.0" encoding="UTF-8"?> <project version="4"> <component name="EasyCodeTableSetting"> <option name="tableInfoMap"> <map> <entry key="UBCS_MDM.PL_CODE_BASICSEC"> <value> <TableInfoDTO> <option name="fullColumn"> <list> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="oid" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="revisionoid" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="nameoid" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="btmname" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="lastr" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="firstr" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="lastv" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="firstv" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="creator" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="createtime" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="lastmodifier" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="lastmodifytime" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="revisionrule" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="versionrule" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="revisionseq" /> <option name="type" value="java.lang.Long" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="revisionvalue" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="versionseq" /> <option name="type" value="java.lang.Long" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="versionvalue" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="lctid" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="lcstatus" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="ts" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="id" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="name" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="description" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="owner" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="copyfromversion" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="sectype" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="pkcoderule" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="ordernum" /> <option name="type" value="java.lang.Long" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="getvalueclass" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="codedateformatstr" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="codeseclengthtype" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="codeseclength" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="codeleveltype" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="codelevelvalue" /> <option name="type" value="java.lang.Long" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="valuecutlength" /> <option name="type" value="java.lang.Long" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="valuecuttype" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="codegetvaluetype" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="refercodeclassifyoid" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="referconfig" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="refervalueinfo" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="filtersql" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="serialstart" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="serialstep" /> <option name="type" value="java.lang.Long" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="codefilltype" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="codefilltypetext" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="codefillseparator" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="codefilllength" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="codefilllimit" /> <option name="type" value="java.lang.Long" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="codefillflag" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="customcodeserialclass" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="matchclassifyvalueflag" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="parentclassifysecoid" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="nullableflag" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="componentcodeflag" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="serialdependflag" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="displayflag" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="serialdependorder" /> <option name="type" value="java.lang.Long" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="referattributename" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="referattributeid" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="referbtmname" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="referbtmid" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> </list> </option> <option name="name" value="PlCodeBasicsec" /> <option name="preName" value="" /> <option name="saveModelName" value="ubcs-omd-api" /> <option name="savePackageName" value="" /> <option name="savePath" value="$USER_HOME$/Desktop" /> <option name="templateGroupName" value="Default" /> </TableInfoDTO> </value> </entry> <entry key="UBCS_MDM.PL_CODE_REFERCONFIG"> <value> <TableInfoDTO> <option name="comment" value="åç §é 置表" /> <option name="fullColumn"> <list> <ColumnInfoDTO> <option name="comment" value="主é®" /> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="oid" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="revisionoid" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="nameoid" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="btmname" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="lastr" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="firstr" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="lastv" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="firstv" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="creator" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="createtime" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="revisionseq" /> <option name="type" value="java.lang.Long" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="revisionvalue" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="versionseq" /> <option name="type" value="java.lang.Long" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="versionvalue" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="lctid" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="lcstatus" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="ts" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="name" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="description" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="owner" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="copyfromversion" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="ordernum" /> <option name="type" value="java.lang.Long" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="comment" value="åç §çä¸å¡ç±»å" /> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="refertype" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="comment" value="æ¾ç¤ºç屿§" /> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="textfield" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="comment" value="åå¨å¼ç屿§" /> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="valuefield" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="comment" value="åç §çªå£ç±»å" /> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="type" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="comment" value="èªå®ä¹çåå°è·¯å¾" /> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="url" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="comment" value="æå¡çå°å" /> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="backpath" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="comment" value="请æ±åå°çåè®®æ¹å¼" /> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="method" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="comment" value="çªå£æ¾ç¤ºçé«åº¦" /> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="height" /> <option name="type" value="java.lang.Long" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="comment" value="è¿æ»¤å±æ§è¯·æ±åæ°" /> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="paramforformkey" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="comment" value="æ¯å¦å¤é" /> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="ismuti" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="comment" value="æ å°å ¶ä»å±æ§" /> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="mapfields" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="comment" value="åèçUIä¸ä¸æ" /> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="refercontent" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="comment" value="å¹³å°çè¡¨æ ¼ç¼å·" /> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="displaytable" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="comment" value="æ¯é¡µæ¾ç¤ºæ¡æ°" /> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="limit" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="comment" value="æåºå段" /> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="sortfield" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="comment" value="æåºç±»å" /> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="sorttype" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="comment" value="æ å½¢çä¸çº§å±æ§" /> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="parentfieldname" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="comment" value="ä¸çº§å±æ§å¼å¯¹åºå±æ§" /> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="parentusedfield" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="comment" value="æ ¹èç¹çå¼" /> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="parentvalue" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="comment" value="æ å è½½æ¹å¼" /> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="loadtype" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> <ColumnInfoDTO> <option name="comment" value="æ¯å¦åªè½éæ©å¶åèç¹" /> <option name="custom" value="false" /> <option name="ext" value="{}" /> <option name="name" value="onlyleaf" /> <option name="type" value="java.lang.String" /> </ColumnInfoDTO> </list> </option> <option name="name" value="PlCodeReferconfig" /> <option name="preName" value="" /> <option name="saveModelName" value="" /> <option name="savePackageName" value="" /> <option name="savePath" value="" /> <option name="templateGroupName" value="" /> </TableInfoDTO> </value> </entry> </map> </option> </component> </project> Source/ExampleIntegratedPushCalled/.idea/jarRepositories.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,35 @@ <?xml version="1.0" encoding="UTF-8"?> <project version="4"> <component name="RemoteRepositoriesConfiguration"> <remote-repository> <option name="id" value="central" /> <option name="name" value="Central Repository" /> <option name="url" value="https://repo.maven.apache.org/maven2" /> </remote-repository> <remote-repository> <option name="id" value="rdc-releases" /> <option name="name" value="rdc-releases" /> <option name="url" value="http://dev.yunkeruida.top:9000/repository/maven-releases/" /> </remote-repository> <remote-repository> <option name="id" value="central" /> <option name="name" value="central" /> <option name="url" value="http://dev.yunkeruida.top:9000/repository/maven-public/" /> </remote-repository> <remote-repository> <option name="id" value="central" /> <option name="name" value="Maven Central repository" /> <option name="url" value="https://repo1.maven.org/maven2" /> </remote-repository> <remote-repository> <option name="id" value="jboss.community" /> <option name="name" value="JBoss Community repository" /> <option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" /> </remote-repository> <remote-repository> <option name="id" value="rdc-snapshots" /> <option name="name" value="rdc-snapshots" /> <option name="url" value="http://dev.yunkeruida.top:9000/repository/maven-snapshots/" /> </remote-repository> </component> </project> Source/ExampleIntegratedPushCalled/.idea/misc.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,17 @@ <?xml version="1.0" encoding="UTF-8"?> <project version="4"> <component name="ExternalStorageConfigurationManager" enabled="true" /> <component name="MavenProjectsManager"> <option name="originalFiles"> <list> <option value="$PROJECT_DIR$/pom.xml" /> </list> </option> </component> <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK"> <output url="file://$PROJECT_DIR$/out" /> </component> <component name="ProjectType"> <option name="id" value="jpab" /> </component> </project> Source/ExampleIntegratedPushCalled/src/main/java/com/vci/ubcs/example/ExampleIntgraPushCallApplication.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,18 @@ package com.vci.ubcs.example; import javafx.application.Application; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** éææ¨éï¼è¢«è°ä»£ç ç¤ºä¾ * @author ludc * @date 2024/2/27 19:40 */ @SpringBootApplication public class ExampleIntgraPushCallApplication { public static void main(String[] args) { SpringApplication.run(ExampleIntgraPushCallApplication.class, args); } } Source/ExampleIntegratedPushCalled/src/main/java/com/vci/ubcs/example/controller/MyServiceTest.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,64 @@ package com.vci.ubcs.example.controller; import com.alibaba.fastjson.JSONObject; import com.vci.ubcs.example.util.HttpUtils; import lombok.AllArgsConstructor; import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.MultiValueMap; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.ArrayList; /** * @author ludc * @date 2024/2/20 22:04 */ @RestController @AllArgsConstructor @RequestMapping("/erpTest") public class MyServiceTest { @GetMapping("/test1") public void testMyService() { /*MultiValueMap<String, String> params = new LinkedMultiValueMap<>(); params.add("dataType","json"); // params.add("dataString","data:{object:[{\"classCodde\":\"RENYUAN\",\"itemid\":\"19986015\",\"code\":\"698021151\",\"library\":\"RENYUAN\",\"pro\":[{\"filedName\":\"sfz\",\"outName\":\"身份è¯\",\"filedValue\":\"\"}]}]}"); NodeJosnDTO nodeJosnDTO = new NodeJosnDTO(); NodedataDTO nodeDataDTO = new NodedataDTO(); NodeObjectDTO nodeObjectDTO = new NodeObjectDTO(); nodeObjectDTO.setCode("698021151");//设置ç¼ç nodeObjectDTO.setClassCode("RENYUAN"); nodeObjectDTO.setStatus("Released"); nodeObjectDTO.setItemid("19986015"); nodeObjectDTO.setLibrary("RENYUAN"); List<NodeObjectDTO> nodeObjectDTOS = new ArrayList<>(); nodeObjectDTOS.add(nodeObjectDTO); nodeDataDTO.setObject(nodeObjectDTOS); nodeJosnDTO.setData(nodeDataDTO); List<NodeProDTO> nodeProDTOS = new ArrayList<>(); NodeProDTO nodeProDTO = new NodeProDTO(); nodeProDTO.setFiledName("sfz"); nodeProDTO.setOutname("身份è¯"); nodeProDTO.setFiledValue(""); nodeProDTOS.add(nodeProDTO); nodeObjectDTO.setPro(nodeProDTOS); Object object = JSONObject.toJSON(nodeJosnDTO); String sendString = object.toString(); 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); params.add("dataString",sendString); MultiValueMap<String, String> headers = new LinkedMultiValueMap<>(); String backString = HttpUtils.post("http://localhost:8118/test/test", params, headers);*/ } } Source/ExampleIntegratedPushCalled/src/main/java/com/vci/ubcs/example/controller/PushIntegrationController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,89 @@ package com.vci.ubcs.example.controller; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.vci.ubcs.example.entity.RequestData; import org.springblade.core.tool.api.R; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import javax.servlet.ServletInputStream; import javax.servlet.ServletRequest; import javax.servlet.http.HttpServletRequest; import java.io.IOException; import java.nio.charset.StandardCharsets; import java.util.List; /** * ç¼ç èµæºç®¡çç³»ç»ç»ä¸æ¨é * UBCSç¼ç èµæºç®¡çç³»ç»å¯¹ï¼ * å ¶ä»éæçç³»ç»è¿è¡æ¨éçï¼ * æ¨éæ¾apiå®ä¹ç¤ºä¾ * @author ludc * @date 2024/2/27 20:31 */ @RestController("/pushIntegration") public class PushIntegrationController { /** * æ¨éæ¥å£è¯·æ±ç±»åï¼post * Content-Typeç±»å为x-www-form-urlencodedï¼æparamæ¶æ¥å£å®ä¹æ¹å¼ 1 * @param dataType * @param dataString * @return * @throws IOException */ @PostMapping("/testByForm1") public R test(@RequestParam String dataType, @RequestParam String dataString) throws IOException { // ç¸å ³é»è¾å¤ç System.out.println(dataType); System.out.println(dataString); return R.status(true); } /** * æ¨éæ¥å£è¯·æ±ç±»åï¼post * Content-Typeç±»å为x-www-form-urlencodedï¼æparamæ¶æ¥å£å®ä¹æ¹å¼ 2 * @param request * @return * @throws IOException */ @PostMapping("/testByForm2") public R test1(ServletRequest request) throws IOException { HttpServletRequest request1 = (HttpServletRequest) request; String dataString = request1.getParameter("dataString"); ServletInputStream inputStream = request1.getInputStream(); // è¯»åæ°æ® byte[] buffer = new byte[4096]; int len = inputStream.read(buffer); while (len != -1) { // do something with buffer len = inputStream.read(buffer); } String body = new String(buffer, StandardCharsets.UTF_8); JSONObject jsonObject = JSONObject.parseObject(body); JSONArray jsonArray = jsonObject.getJSONArray("dataString"); return R.data(jsonArray); } /** * æ¨éæ¥å£è¯·æ±ç±»åï¼post * Content-Typeç±»å为application/jsonæ¶æ¥å£å®ä¹æ¹å¼ * @param requestData * @return * @throws IOException */ @PostMapping("/testByAppjson") public R test1(@RequestBody RequestData requestData) throws IOException { // æ¿å°è¿ä¸ªåæ°ä¹åå该éåä¸ç第ä¸ä¸ªå ç´ ï¼å°±æ¯è¦json转æå¯¹è±¡çåæ° // å¦æå ·ä½è½¬æ¢è¦æ±ï¼åæ ¹æ®ç¼ç å¨ä¸çæ¥å£æä¾çé ç½®èå®ï¼é常为dataTypeåæ®µï¼å¦xmlï¼jsonä¸¤ç§æ åµ List<Object> dataString = requestData.getDataString(); // JSONObject.parseObject(dataString,/*æ ¹æ®ç¼ç ç³»ç»æä¾çå¯¹è±¡å±æ§èå®ä¹ç对象*/); List<String> dataType = requestData.getDataType(); return R.data(dataString); } } Source/ExampleIntegratedPushCalled/src/main/java/com/vci/ubcs/example/controller/TestCalledIntegrationController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,9 @@ package com.vci.ubcs.example.controller; /** * æµè¯è°ç¨ç¼ç ç³»ç»ä»£ç 示ä¾çapiå®ä¹ * @author ludc * @date 2024/2/27 20:34 */ public class TestCalledIntegrationController { } Source/ExampleIntegratedPushCalled/src/main/java/com/vci/ubcs/example/entity/RequestData.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,29 @@ package com.vci.ubcs.example.entity; import lombok.Data; import java.util.List; /** * ç¼ç ç³»ç»æ¨éï¼æ¥å£æ¥æ¶åæ°å®ä¹å®ä½ç±» * @author ludc * @date 2024/2/20 22:22 */ @Data public class RequestData { /** * é常ä¼å¸¦è¿ä¸ªåæ° */ private List<String> dataType; /** * å¿ ä¼ åæ° */ private List<Object> dataString; /** å ¶ä»åæ°éè¿ä¸æ ¹æ®ç¼ç èµæºç®¡çç³»ç»æ²éåè·åï¼å¹¶ä¸ä¹æ¯Listç±»å */ } Source/ExampleIntegratedPushCalled/src/main/java/com/vci/ubcs/example/service/ICalledIntegrationService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,23 @@ package com.vci.ubcs.example.service; /** * ç»ä¸ç³è¯·æ¥å£ï¼UBCSç¼ç èµæºç®¡çç³»ç»ï¼è¢«å ¶ä»éæçç³»ç»çéç¨æ¥å£è°ç¨ç¤ºä¾ * @author ludc * @date 2024/2/27 20:34 */ public interface ICalledIntegrationService { /** * ç¼ç ç³»ç»ï¼ç»ä¸ç³è¯·æ¥å£,ç¨httpï¼restæ¹å¼è°ç¨ */ void sendApplyCodeByRest(); /** * ç¼ç ç³»ç»ï¼ç»ä¸ç³è¯·æ¥å£,ç¨WebServiceæ¹å¼è°ç¨ */ void sendApplyCodeByWebService(); } Source/ExampleIntegratedPushCalled/src/main/java/com/vci/ubcs/example/service/impl/CalledIntegrationServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,30 @@ package com.vci.ubcs.example.service.impl; import com.vci.ubcs.example.service.ICalledIntegrationService; import org.springframework.stereotype.Service; /** * ç»ä¸ç³è¯·æ¥å£ï¼UBCSç¼ç èµæºç®¡çç³»ç»ï¼è¢«å ¶ä»éæçç³»ç»çéç¨æ¥å£è°ç¨ç¤ºä¾ * @author ludc * @date 2024/2/27 20:34 */ @Service public class CalledIntegrationServiceImpl implements ICalledIntegrationService { /** * ç¼ç ç³»ç»ï¼ç»ä¸ç³è¯·æ¥å£è°ç¨ */ @Override public void sendApplyCodeByRest() { } /** * ç¼ç ç³»ç»ï¼ç»ä¸ç³è¯·æ¥å£,ç¨WebServiceæ¹å¼è°ç¨ */ @Override public void sendApplyCodeByWebService() { } } Source/ExampleIntegratedPushCalled/src/main/java/com/vci/ubcs/example/util/HttpUtils.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,205 @@ package com.vci.ubcs.example.util; import org.springframework.http.*; import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.MultiValueMap; import org.springframework.web.client.RestTemplate; import javax.servlet.http.HttpServletRequest; /** * @author ludc * @date 2024/2/27 20:18 */ public class HttpUtils { //Content-Typeçkey public static String CONTENT_TYPE = "Content-Type"; //jsonæ°æ® public static String CONTENT_TYPE_JSON = MediaType.APPLICATION_JSON_VALUE; public static String CONTENT_TYPE_JSON_UTF8 = MediaType.APPLICATION_JSON_UTF8_VALUE; //è¡¨åæ ¼å¼,é»è®¤ public static String CONTENT_TYPE_TEXT = MediaType.APPLICATION_FORM_URLENCODED_VALUE; /** * getè¯·æ± * * @param url * @return */ public static String get(String url) { return get(url, null); } /** * getè¯·æ± * * @param url * @param headers 请æ±å¤´ * @return */ public static String get(String url, MultiValueMap<String, String> headers) { return request(url, null, headers, HttpMethod.GET); } /** * postè¯·æ± * * @param url * @param params 请æ±åæ° * @return */ public static String post(String url, MultiValueMap<String, String> params) { return post(url, params, null); } /** * postè¯·æ± * * @param url * @param params 请æ±åæ° * @param headers 请æ±å¤´ * @return */ public static String post(String url, MultiValueMap<String, String> params, MultiValueMap<String, String> headers) { return request(url, params, headers, HttpMethod.POST); } /** * postè¯·æ± TODO: 2024-02-25æ¹ï¼ä¸ºäºæ»¡è¶³æ ¹æ®Content-typeçç±»åæ¥å请æ±ï¼å¹¶ä¸paramä¸çjsonæ¯æåçæ¶ååé请æ±å转 * * @param url * @param params 请æ±åæ° * @param headers 请æ±å¤´ * @return */ public static String postByMediaType(String url, MultiValueMap<String, Object> params, MultiValueMap<String, String> headers,MediaType mediaType) { return request(url, params, headers, HttpMethod.POST,mediaType); } /** * putè¯·æ± * * @param url * @param params 请æ±åæ° * @return */ public static String put(String url, MultiValueMap<String, String> params) { return put(url, params, null); } /** * putè¯·æ± * * @param url * @param params 请æ±åæ° * @param headers 请æ±å¤´ * @return */ public static String put(String url, MultiValueMap<String, String> params, MultiValueMap<String, String> headers) { return request(url, params, headers, HttpMethod.PUT); } /** * deleteè¯·æ± * * @param url * @param params 请æ±åæ° * @return */ public static String delete(String url, MultiValueMap<String, String> params) { return delete(url, params, null); } /** * deleteè¯·æ± * * @param url * @param params 请æ±åæ° * @param headers 请æ±å¤´ * @return */ public static String delete(String url, MultiValueMap<String, String> params, MultiValueMap<String, String> headers) { return request(url, params, headers, HttpMethod.DELETE); } /** * 表åè¯·æ± * * @param url * @param params 请æ±åæ° * @param headers 请æ±å¤´ * @param method è¯·æ±æ¹å¼ * @return */ public static String request(String url, MultiValueMap<String, String> params, MultiValueMap<String, String> headers, HttpMethod method) { if (params == null) { params = new LinkedMultiValueMap<>(); } return request(url, params, headers, method, MediaType.APPLICATION_FORM_URLENCODED); } /** * httpè¯·æ± * * @param url * @param params 请æ±åæ° * @param headers 请æ±å¤´ * @param method è¯·æ±æ¹å¼ * @param mediaType åæ°ç±»å * @return */ public static String request(String url, Object params, MultiValueMap<String, String> headers, HttpMethod method, MediaType mediaType) { if (url == null || url.trim().isEmpty()) { return null; } RestTemplate client = new RestTemplate(); // header HttpHeaders httpHeaders = new HttpHeaders(); if (headers != null) { httpHeaders.addAll(headers); } // æäº¤æ¹å¼ï¼è¡¨åãjson httpHeaders.setContentType(mediaType); HttpEntity<Object> httpEntity = new HttpEntity(params, httpHeaders); ResponseEntity<String> response = client.exchange(url, method, httpEntity, String.class); return response.getBody(); } public static MultiValueMap<String, String> set_params_headers(String key,String value,MultiValueMap<String, String> map){ if(map==null){ map = new LinkedMultiValueMap<>(); } map.add(key,value); return map; } /** * è·åip * @param request * @return */ public static String getIpAddressFromRequest(HttpServletRequest request){ String ip = request.getHeader("X-Forwarded-For"); if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("Proxy-Client-IP"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("WL-Proxy-Client-IP"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("HTTP_CLIENT_IP"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("HTTP_X_FORWARDED_FOR"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getRemoteAddr(); } if (ip == null || ip.length() == 0 || ip.indexOf("0:0:0:0:0:0:0:1") >-1) { //0:0:0:0:0:0:0:1æ¯æ¬æºå¨è®¿é® ip = "127.0.0.1"; } return ip; } } Source/ExampleIntegratedPushCalled/src/main/resources/application.yml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,12 @@ server: port: 9999 undertow: threads: # 设置IOçº¿ç¨æ°, å®ä¸»è¦æ§è¡éé»å¡çä»»å¡,å®ä»¬ä¼è´è´£å¤ä¸ªè¿æ¥, é»è®¤è®¾ç½®æ¯ä¸ªCPUæ ¸å¿ä¸ä¸ªçº¿ç¨ io: 16 # é»å¡ä»»å¡çº¿ç¨æ± , 彿§è¡ç±»ä¼¼servlet请æ±é»å¡æä½, undertowä¼ä»è¿ä¸ªçº¿ç¨æ± ä¸åå¾çº¿ç¨,å®çå¼è®¾ç½®åå³äºç³»ç»çè´è½½ worker: 400 # 以ä¸çé ç½®ä¼å½±åbuffer,è¿äºbufferä¼ç¨äºæå¡å¨è¿æ¥çIOæä½,æç¹ç±»ä¼¼nettyçæ± åå å管ç buffer-size: 1024 # æ¯å¦åé çç´æ¥å å direct-buffers: true Source/ExampleIntegratedPushCalled/target/classes/application.yml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,12 @@ server: port: 9999 undertow: threads: # 设置IOçº¿ç¨æ°, å®ä¸»è¦æ§è¡éé»å¡çä»»å¡,å®ä»¬ä¼è´è´£å¤ä¸ªè¿æ¥, é»è®¤è®¾ç½®æ¯ä¸ªCPUæ ¸å¿ä¸ä¸ªçº¿ç¨ io: 16 # é»å¡ä»»å¡çº¿ç¨æ± , 彿§è¡ç±»ä¼¼servlet请æ±é»å¡æä½, undertowä¼ä»è¿ä¸ªçº¿ç¨æ± ä¸åå¾çº¿ç¨,å®çå¼è®¾ç½®åå³äºç³»ç»çè´è½½ worker: 400 # 以ä¸çé ç½®ä¼å½±åbuffer,è¿äºbufferä¼ç¨äºæå¡å¨è¿æ¥çIOæä½,æç¹ç±»ä¼¼nettyçæ± åå å管ç buffer-size: 1024 # æ¯å¦åé çç´æ¥å å direct-buffers: true Source/ExampleIntegratedPushCalled/±àÂë×ÊÔ´¹ÜÀíϵͳ¼¯³Éͳһ½Ó¿Újson²ÎÊýʾÀý
Source/UBCS-WEB/src/components/service-deploy/uploadServiceJarDialog.vue
@@ -101,7 +101,7 @@ // æä»¶ä¸ä¼ æå onSuccess(resbonse){ if (Object.keys(resbonse.data).length === 0) { this.$message.success( "主é¢åºåç±»å¯¼å ¥æåï¼"); this.$message.success( "æ´æ°å å¯¼å ¥æåï¼"); this.dialogVisible = false; return; } Source/UBCS-WEB/src/views/system/deploy.vue
@@ -15,6 +15,7 @@ @on-load="onLoad"> <template slot="menu" slot-scope="{ row, index }"> <el-button type="text" :disabled="row.name === 'ubcs-deploy'" icon="el-icon-upload" size="small" v-if="permissionList.upload" @@ -29,6 +30,7 @@ {{ row.status === 'UP' ? 'é å¯': 'å¯ å¨' }} </el-button> <el-button type="text" :disabled="row.name === 'ubcs-deploy'" v-if="permissionList.editBtn" icon="el-icon-edit" size="small" @@ -67,12 +69,13 @@ }, computed: { ...mapGetters(["userInfo", "permission"]), permissionList() { return { upload: true, restart: true, editBtn: true,// this.vaildData(this.permission, true), addBtn: true, upload: this.vaildData(this.permission.deploy.deploy_upload, false), restart: this.vaildData(this.permission.deploy.deploy_restart, false), editBtn: this.vaildData(this.permission.deploy.deploy_edit, false), addBtn: this.vaildData(this.permission.deploy.deploy_add, false), }; }, option(){ Source/UBCS/LICENSE
@@ -1,34 +1 @@ BladeXå䏿æè®¸å¯åè®® ä¸ã ç¥è¯äº§æï¼ BladeXç³»å产åç¥è¯äº§æå½ä¸æµ·å¸é·å¾·ç§ææéå ¬å¸ç¬ç«ææ äºã 许å¯ï¼ 1. 卿¨å®å ¨æ¥åå¹¶éµå®æ¬åè®®çåºç¡ä¸ï¼æ¬åè®®æäºæ¨ä½¿ç¨BladeXçæäºæå©åéç¬å æ§è®¸å¯ã 2. æ¬åè®®ä¸ï¼å°æ¬äº§å使ç¨ç¨éå为âä¸ä¸çç¨éâåâä¼ä¸çç¨éâã 3. âä¸ä¸çç¨éâå®ä¹ï¼æä¸ªäººå¨éå¢ä½æºæä¸åºäºä»»ä½ç®çä½¿ç¨æ¬äº§åï¼ä»»ä½ç®çå æ¬åä¸ç®çæéçå©ç®çï¼ã 4. âä¼ä¸çç¨éâå®ä¹ï¼æå¢ä½æºæï¼ä¾å¦å ¬å¸ä¼ä¸ãæ¿åºã妿 ¡ãåéãå»é¢ã社ä¼å¢ä½çåç±»ç»ç»ï¼ï¼ä¸å å«éå¢ï¼è¥éå¢ä½¿ç¨åé为å个åå ¬å¸åå«è´ä¹°ä¼ä¸ææï¼åºäºä»»ä½ç®çä½¿ç¨æ¬äº§åï¼ä»»ä½ç®çå æ¬åä¸ç®çæéçå©ç®çï¼ã ä¸ã 约æåéå¶ï¼ 1. æ¬äº§ååªè½ç±æ¨ä¸ºæ¬å议许å¯çç®çè使ç¨ï¼æ¨ä¸å¾éé²ç»ä»»ä½ç¬¬ä¸æ¹ï¼ 2. 仿¬äº§ååå¾çä»»ä½ä¿¡æ¯ã软件ãäº§åææå¡ï¼æ¨ä¸å¾å¯¹å ¶è¿è¡ä¿®æ¹ãæ¹ç¼æåºäºä»¥ä¸å 容å建åç§ç±»å«çè¡ç产åå¹¶å®åã 3. æ¨ä¸å¾å¯¹æ¬äº§å以åä¸ä¹å ³èçå䏿æè¿è¡åå¸ãåºç§ãéå®ãåéãæµæ¼ã转让ãè®¸å¯æåæ¾å许å¯è¯ã 4. æ¬äº§åå䏿æçå¯è½å å«ä¸äºç¬ç«åè½æç¹æ§ï¼è¿äºåè½åªæå¨æ¨è´ä¹°å䏿æåæå¯ä»¥ä½¿ç¨ã卿ªåå¾å䏿æçæ åµä¸ï¼æ¨ä¸å¾ä½¿ç¨ãå°è¯ä½¿ç¨æå¤å¶è¿äºææçç¬ç«åè½ã 5. è¥æ¨ç客æ·è¦æ±ä»¥æºç æ¹å¼äº¤ä»è½¯ä»¶ï¼é缴纳ä¼ä¸çææè´¹ç¨ï¼å¦åæ¬äº§åé¨åä¸å¾æä¾æºç ã åã ä¸å¾ç¨äºéæ³æç¦æ¢çç¨éï¼ æ¨å¨ä½¿ç¨æ¬äº§åææå¡æ¶ï¼ä¸å¾å°æ¬äº§åäº§åææå¡ç¨äºä»»ä½éæ³ç¨éææ¬åè®®æ¡æ¬¾ãæ¡ä»¶å声æç¦æ¢çç¨éã äºã å 责说æï¼ 1. æ¬äº§åæâç°ç¶âæäºè®¸å¯ï¼æ¨é¡»èªè¡æ¿æ ä½¿ç¨æ¬äº§åçé£é©ãBladeXå¢éä¸å¯¹æ¤æä¾ä»»ä½æç¤ºãæç¤ºæä»»ä½å ¶å®å½¢å¼çæ ä¿å表示ãå¨ä»»ä½æ åµä¸ï¼å¯¹äºå ä½¿ç¨ææ æ³ä½¿ç¨æ¬è½¯ä»¶è导è´ç任使失ï¼å æ¬ä½ä¸ä» éäºåä¸å©æ¶¦æå¤±ãä¸å¡ä¸ææä¸å¡ä¿¡æ¯ä¸¢å¤±ï¼ï¼BladeXå¢éæ é忍æä»»ä½ç¬¬ä¸æ¹è´è´£ï¼å³ä½¿BladeXå¢é已被åç¥å¯è½ä¼é ææ¤ç±»æå¤±ãå¨ä»»ä½æ åµä¸ï¼ BladeXå¢éåä¸å°±ä»»ä½ç´æ¥çãé´æ¥çãé带çãåææ§çãç¹å«çãæ©ææ§çåå¤ç½æ§çæå®³èµå¿æ¿æ ä»»ä½è´£ä»»ï¼æ è®ºè¯¥ä¸»å¼ æ¯åºäºä¿è¯ãååãä¾µæï¼å æ¬çå¿½ï¼ææ¯åºäºå ¶ä»åå ä½åºã 2. æ¬äº§åå¯è½å ç½®æç¬¬ä¸æ¹æå¡ï¼æ¨åºèªè¡è¯ä¼°ä½¿ç¨è¿äºç¬¬ä¸æ¹æå¡çé£é©ï¼ç±ä½¿ç¨æ¤ç±»ç¬¬ä¸æ¹æå¡è产çççº çº·ï¼å ¨é¨è´£ä»»ç±æ¨èªè¡æ¿æ ã 3. BladeXå¢éä¸å¯¹ä½¿ç¨æ¬äº§åæå»ºçç½ç«ä¸ä»»ä½ä¿¡æ¯å 容以å导è´çä»»ä½çæçº çº·ãæ³å¾äºè®®ååææ¿æ ä»»ä½è´£ä»»ï¼å ¨é¨è´£ä»»ç±æ¨èªè¡æ¿æ ã 4. BladeXå¢éå¯è½ä¼ç»å¸¸æä¾äº§åæ´æ°æå级ï¼ä½BladeXå¢é没æä¸ºæ ¹æ®æ¬å议许å¯ç产åæä¾ç»´æ¤ææ´æ°ç责任ã 5. BladeXå¢éå¯è½ä¼æç §å®æ¹å¶å®çççè§å为æ¨è¿è¡ççï¼ä½BladeXå¢é没æä¸ºæ ¹æ®æ¬å议许å¯ç产åæä¾ææ¯æ¯æçä¹å¡æè´£ä»»ã å ã æå©åæææçä¿çï¼ BladeXå¢éä¿çæææªå¨æ¬åè®®ä¸æç¡®æäºæ¨çæææå©ãBladeXå¢éä¿çéæ¶æ´æ°æ¬åè®®çæå©ï¼å¹¶åªéå ¬ç¤ºäºå¯¹åºäº§å项ç®çLICENSEæä»¶ï¼æ éå¾å¾æ¨çäºå åæä¸æ éå¦è¡éç¥ï¼æ´æ°åçå 容åºäºå ¬ç¤ºå³æ¶çæãæ¨å¯ä»¥éæ¶è®¿é®äº§åå°åå¹¶æ¥é ææ°çè®¸å¯æ¡æ¬¾ï¼å¨æ´æ°çæåæ¨ç»§ç»ä½¿ç¨æ¬äº§åå被è§ä½æ¨å·²æ¥åäºæ°çæ¡æ¬¾ã ä¸ã åè®®ç»æ¢ 1. æ¨ä¸æ¦å¼å§å¤å¶ãä¸è½½ãå®è£ æè ä½¿ç¨æ¬äº§åï¼å³è¢«è§ä¸ºå®å ¨ç解并æ¥åæ¬åè®®çåé¡¹æ¡æ¬¾ï¼å¨äº«æä¸è¿°æ¡æ¬¾æäºçè®¸å¯æååæ¶ï¼ä¹åå°ç¸å ³ç约æåéå¶ï¼æ¬å议许å¯èå´ä»¥å¤çè¡ä¸ºï¼å°ç´æ¥è¿åæ¬å议并ææä¾µæã 2. 䏿¦æ¨è¿åæ¬åè®®çæ¡æ¬¾ï¼BladeXå¢ééæ¶å¯è½ç»æ¢æ¬åè®®ãæ¶å许å¯åææï¼å¹¶è¦æ±æ¨æ¿æ ç¸åºæ³å¾åç»æµè´£ä»»ã UBCS -ç¼ç èµæºç®¡çç³»ç» Source/UBCS/pom.xml
@@ -108,11 +108,11 @@ <resource> <directory>src/main/resources</directory> <excludes> <!-- <exclude>bootstrap.yml</exclude> <exclude>bootstrap.yml</exclude> <exclude>application.yml</exclude> <exclude>application-dev.yml</exclude> <exclude>application-test.yml</exclude> <exclude>application-prop.yml</exclude>--> <exclude>application-prop.yml</exclude> </excludes> </resource> <resource> Source/UBCS/ubcs-gateway/pom.xml
@@ -74,6 +74,17 @@ <groupId>de.codecentric</groupId> <artifactId>spring-boot-admin-starter-client</artifactId> </dependency> <!--<dependency> <groupId>org.springblade</groupId> <artifactId>blade-starter-log</artifactId> <exclusions> <exclusion> <groupId>org.springblade</groupId> <artifactId>blade-core-cloud</artifactId> </exclusion> </exclusions> </dependency>--> </dependencies> <build> Source/UBCS/ubcs-ops/ubcs-admin/pom.xml
@@ -80,10 +80,10 @@ <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <!--<dependency> <groupId>org.springframework.security.oauth.boot</groupId> <artifactId>spring-security-oauth2-autoconfigure</artifactId> </dependency>--> <!-- <dependency>--> <!-- <groupId>org.springframework.security.oauth.boot</groupId>--> <!-- <artifactId>spring-security-oauth2-autoconfigure</artifactId>--> <!-- </dependency>--> <!--Taobao-Sdk--> <dependency> <groupId>com.taobao</groupId> @@ -108,4 +108,28 @@ </plugins> </build> <!--<build> <plugins> <plugin> <groupId>com.spotify</groupId> <artifactId>dockerfile-maven-plugin</artifactId> <configuration> <username>${docker.username}</username> <password>${docker.password}</password> <repository>${docker.registry.url}/${docker.namespace}/${project.artifactId}</repository> <tag>${project.version}</tag> <useMavenSettingsForAuth>true</useMavenSettingsForAuth> <buildArgs> <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE> </buildArgs> <skip>false</skip> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-plugin</artifactId> </plugin> </plugins> </build>--> </project> Source/UBCS/ubcs-ops/ubcs-admin/src/main/java/com/vci/ubcs/admin/config/CustomUserDetailsService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,32 @@ package com.vci.ubcs.admin.config; import org.springframework.beans.factory.annotation.Value; import org.springframework.security.core.userdetails.User; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.stereotype.Service; @Service public class CustomUserDetailsService implements UserDetailsService { @Value("${spring.security.user.name:admin}") private String USERNAME; @Value("${spring.security.user.password:admin}") private String PWD; @Override public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { // è¿é为äºç¤ºä¾ï¼å建ä¸ä¸ªç®åçç¨æ· if (USERNAME.equals(username)) { return User.builder() .username(username) .password(PWD) // 使ç¨{noop}表示ææå¯ç ï¼å®é ç产ç¯å¢ä¸åºè¯¥ä½¿ç¨å å¯å¯ç .roles("ADMIN") .build(); } else { throw new UsernameNotFoundException("User not found"); } } } Source/UBCS/ubcs-ops/ubcs-admin/src/main/java/com/vci/ubcs/admin/config/SecurityConfiguration.java
@@ -16,15 +16,22 @@ */ package com.vci.ubcs.admin.config; import com.vci.ubcs.admin.security.CustomAuthenticationManager; import de.codecentric.boot.admin.server.config.AdminServerProperties; import com.vci.ubcs.admin.security.InternalAuthorizationManager; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.authentication.ReactiveAuthenticationManager; import org.springframework.security.authorization.ReactiveAuthorizationManager; import org.springframework.security.config.annotation.web.reactive.EnableWebFluxSecurity; import org.springframework.security.config.web.server.ServerHttpSecurity; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.web.server.SecurityWebFilterChain; import org.springframework.security.web.server.authentication.RedirectServerAuthenticationSuccessHandler; import org.springframework.security.web.server.authorization.AuthorizationContext; import java.net.URI; @@ -44,7 +51,12 @@ } @Bean public SecurityWebFilterChain securityWebFilterChain(ServerHttpSecurity http) { public CustomAuthenticationManager customAuthenticationManager(UserDetailsService userDetailsService) { return new CustomAuthenticationManager(userDetailsService); } @Bean public SecurityWebFilterChain securityWebFilterChain(ServerHttpSecurity http, CustomAuthenticationManager customAuthenticationManager) { // @formatter:off RedirectServerAuthenticationSuccessHandler successHandler = new RedirectServerAuthenticationSuccessHandler(); successHandler.setLocation(URI.create(contextPath + "/")); @@ -63,7 +75,8 @@ .pathMatchers(contextPath + "/actuator", contextPath + "/actuator/**").access(new InternalAuthorizationManager()) .anyExchange().authenticated().and() .formLogin().loginPage(contextPath + "/login") .authenticationSuccessHandler(successHandler).and() .authenticationSuccessHandler(successHandler) .authenticationManager(customAuthenticationManager).and() .logout().logoutUrl(contextPath + "/logout").and() .httpBasic().disable() .csrf().disable() Source/UBCS/ubcs-ops/ubcs-admin/src/main/java/com/vci/ubcs/admin/security/CustomAuthenticationManager.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,31 @@ package com.vci.ubcs.admin.security; import org.springframework.security.authentication.ReactiveAuthenticationManager; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.Authentication; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetailsService; import reactor.core.publisher.Mono; public class CustomAuthenticationManager implements ReactiveAuthenticationManager { private final UserDetailsService userDetailsService; public CustomAuthenticationManager(UserDetailsService userDetailsService) { this.userDetailsService = userDetailsService; } @Override public Mono<Authentication> authenticate(Authentication authentication) { String username = authentication.getName(); String password = authentication.getCredentials().toString(); UserDetails userDetails = userDetailsService.loadUserByUsername(username); if (userDetails.getPassword().equals(password)) { return Mono.just(new UsernamePasswordAuthenticationToken(userDetails, password, userDetails.getAuthorities())); } else { return Mono.empty(); } } } Source/UBCS/ubcs-ops/ubcs-admin/src/main/java/com/vci/ubcs/admin/security/InternalAuthorizationManager.java
@@ -16,6 +16,7 @@ */ package com.vci.ubcs.admin.security; import lombok.extern.slf4j.Slf4j; import org.springblade.core.launch.utils.INetUtil; import org.springframework.http.HttpHeaders; import org.springframework.http.server.reactive.ServerHttpRequest; @@ -34,6 +35,7 @@ * * @author L.cm */ @Slf4j public class InternalAuthorizationManager implements ReactiveAuthorizationManager<AuthorizationContext> { private static final String HEADER_X_FORWARDED_FOR = "X-Forwarded-For"; @@ -65,6 +67,16 @@ if (!headers.containsKey(HEADER_X_FORWARDED_FOR)) { return true; } log.error("===========1========="+context.toString()); log.error("===========2========="+request.getHeaders()); log.error("===========3========="+Optional.of(request) .map(ServerHttpRequest::getRemoteAddress) .map(InetSocketAddress::getAddress) .map(INetUtil::isInternalIp) .orElse(false)); log.error("===========4========="+request.getRemoteAddress()); return Optional.of(request) .map(ServerHttpRequest::getRemoteAddress) .map(InetSocketAddress::getAddress) Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/DockingSystemConfig.java
@@ -175,6 +175,12 @@ @ApiModelProperty(value = "è¿åå¼ç±»å") private String returnType; /** * å 容类å */ @ApiModelProperty(value = "å 容类å") private String contentType; /** * è¿åå¼ç±»åæ¾ç¤ºææ¬ Source/UBCS/ubcs-service-api/ubcs-deploy-api/pom.xml
@@ -10,6 +10,8 @@ <modelVersion>4.0.0</modelVersion> <artifactId>ubcs-deploy-api</artifactId> <name>${project.artifactId}</name> <version>${bladex.project.version}</version> <properties> <maven.compiler.source>8</maven.compiler.source> Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/HttpUtils.java
@@ -1,7 +1,5 @@ package com.vci.ubcs.starter.util; import com.alibaba.fastjson.JSON; import org.springblade.core.tool.utils.WebUtil; import org.springframework.http.*; import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.MultiValueMap; @@ -69,7 +67,19 @@ return request(url, params, headers, HttpMethod.POST); } /** /** * postè¯·æ± TODO: 2024-02-25æ¹ï¼ä¸ºäºæ»¡è¶³æ ¹æ®Content-typeçç±»åæ¥å请æ±ï¼å¹¶ä¸paramä¸çjsonæ¯æåçæ¶ååé请æ±å转 * * @param url * @param params 请æ±åæ° * @param headers 请æ±å¤´ * @return */ public static String postByMediaType(String url, MultiValueMap<String, Object> params, MultiValueMap<String, String> headers,MediaType mediaType) { return request(url, params, headers, HttpMethod.POST,mediaType); } /** * putè¯·æ± * * @param url Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmEngineService.java
@@ -9,6 +9,7 @@ import com.vci.ubcs.code.dto.CodeDeleteBatchDTO; import com.vci.ubcs.code.dto.CodeOrderDTO; import com.vci.ubcs.code.dto.datapush.BaseModelDTO; import com.vci.ubcs.code.entity.CodeSynonym; import com.vci.ubcs.code.vo.CodeKeyAttrRepeatVO; import com.vci.ubcs.code.vo.pagemodel.UITableFieldVO; import com.vci.ubcs.code.vo.pagemodel.*; @@ -84,6 +85,7 @@ * * @param value å½åçå¼ * @param keyRuleVO å ³é®å±æ§çæ§å¶è§åï¼å¯ä»¥ä¸ºç©º * @param codeSynonymMaps è¿ä¹è¯æ¥è¯¢è§å * @param attrId 屿§çç¼å· * @param trim æ¯å¦å»é¤ç©ºæ ¼ * @param ignoreCase æ¯å¦ä¸åºå大å°å @@ -91,19 +93,17 @@ * @param trimAll æ¯å¦å¿½ç¥å ¨é¨ç©ºæ ¼ * @param conditionMap æ¥è¯¢æ¡ä»¶ */ void wrapperKeyAttrConditionMap(String value, CodeKeyAttrRepeatVO keyRuleVO, String attrId, boolean trim, boolean ignoreCase, boolean ignoreWidth, boolean trimAll, Map<String, String> conditionMap); void wrapperKeyAttrConditionMap(String value, CodeKeyAttrRepeatVO keyRuleVO, List<CodeSynonym> codeSynonymMaps, String attrId, boolean trim, boolean ignoreCase, boolean ignoreWidth, boolean trimAll, Map<String, String> conditionMap); /** * å°è£ è¿ä¹è¯æ¥è¯¢è§å屿§çæ¥è¯¢è¯å¥ * @param value å½åçå¼ * @param keyRuleVO 屿§çç¼å· * @param attrId * @param conditionMap æ¥è¯¢æ¡ä»¶ * è¿ä¹è¯æ¥è¯¢è§åè½¬æ¢ * @param codeSynonymMaps * @param value * @return */ void wrapperSynonymAttrConditionMap(String value, CodeKeyAttrRepeatVO keyRuleVO, String attrId, Map<String, String> conditionMap); String getValueToSynony(/*è¿ä¹è¯æ¥è¯¢è§å*/List<CodeSynonym> codeSynonymMaps,String value); /** * åå§åä¸å¡ç±»å Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeDuckingSyncServiceImpl.java
@@ -59,6 +59,7 @@ import org.springblade.core.tool.utils.Func; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.http.MediaType; import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -95,6 +96,7 @@ @Service @Slf4j public class CodeDuckingSyncServiceImpl implements ICodeDuckingSyncService { @Value("${dataSyncPush.dataParamName:xmlData}") public String DATA_PARAM_NAME; @Value("${dataSyncPush.dataId:itemid}") @@ -146,21 +148,28 @@ @Autowired private ICodeClassifyValueService codeClassifyValueService; @Autowired(required = false) private AttributeMapConfig attributeMapConfig; /*** * resdisç¼åæå¡ */ @Resource private BladeRedis bladeRedis; @Resource private IDockingSysIntParamService dockingSysIntParamService; @Resource private IDockingSysIntHeaderService dockingSysIntHeaderService; @Autowired(required = false) private MdmSearchItemCodeProvider mdmSearchItemCodeProvider; @Autowired HttpServletRequest request; @Override public void DockingDataSyncScheduing() { @@ -222,6 +231,7 @@ }); return R.success("æå¨æ¨é宿,è¯·æ ¸å¯¹æ¯å¦æ¨éæå"); } private SearchItemDataVO initData(String status,String itemCode,String mmCode){ SearchItemDataVO searchItemDataVO=new SearchItemDataVO(); searchItemDataVO.setLastchangedon(new Date()); @@ -258,6 +268,7 @@ return request; } /*** * 忥åå·ä»£å· */ @@ -574,6 +585,7 @@ } return codeOrderSecDTOList; } /*** * 读å屿§æ å°é ç½®ä¿¡æ¯ * @param systemId @@ -698,7 +710,8 @@ throw new Throwable("ç»ç»æ°æ®æ å°å¼å¤±è´¥"); } } private void changeObjectToMap(SearchItemUpperCaseDataVO searchItemDataVO, String code, BladeUser user,String operation,List<ApplyDataVO> object){ private void changeObjectToMap(SearchItemUpperCaseDataVO searchItemDataVO, String code, BladeUser user,String operation,List<ApplyDataVO> object){ ApplyDataVO applyDataVO=new ApplyDataVO(); List<ProppertyVO> propList=new ArrayList<>(); //String status= searchItemDataVO.getStatus();//æ°æ®ç¶æ å符åï¼æä¸¾å¼ï¼å¶åï¼0ï¼å®¡æ¹ä¸ï¼1ï¼éè¿ï¼2ï¼é©³åï¼3ï¼ @@ -731,13 +744,15 @@ applyDataVO.setProp(propList); object.add(applyDataVO); } private void initProperty(String key,String text,String value,List<ProppertyVO> propList){ private void initProperty(String key,String text,String value,List<ProppertyVO> propList){ ProppertyVO vo=new ProppertyVO(); vo.setKey(key); vo.setText(StringUtils.isBlank(text)?"":text); vo.setValue(StringUtils.isBlank(value)?"":value); propList.add(vo); } /*** * æ¥è¯¢redis䏿°æ®ï¼å¯¹æ¯åæå ¥dockingtask * @param type @@ -863,7 +878,7 @@ for (DockingTask dockingTask:dockingTaskList){ //æ¯ä¸ªtaskä¸ä¸ªäºå¡ï¼å¼å¯ String paramString=""; String sendString=""; Object sendString=""; String backString=""; //æ¥è¯¢ç³»ç»æ¥å£ä¿¡æ¯,ip method,dataType String systeminfooid = dockingTask.getSysInfoOid();//sysininfo çoid @@ -897,8 +912,9 @@ DockingSystemConfig dockingSystemConfig = dockingSystemConfigService.getById(systeminfooid); String paramType = dockingSystemConfig.getParamType();//xml/json if(paramType.equals(DATATYPE_JSON)){ Object object = JSONObject.toJSON(jsonRootDataDTO); sendString = object.toString(); // Object object = JSONObject.toJSON(jsonRootDataDTO); // sendString = object.toString(); sendString = jsonRootDataDTO; }else{ //ç»ç»è¿åæ¥å£ä¿¡æ¯ XStream xStream = new XStream(new DomDriver()); @@ -915,6 +931,7 @@ } } } /*** * åéç¼ç ä¸»æ°æ® */ @@ -923,7 +940,7 @@ for (DockingTask dockingTask:dockingTaskS){ //æ¯ä¸ªtaskä¸ä¸ªäºå¡ï¼å¼å¯ String paramString=""; String sendString=""; String sendObject=""; String backString=""; try { //æ¥è¯¢ç³»ç»æ¥å£ä¿¡æ¯,ip method,dataType @@ -997,34 +1014,35 @@ String paramType = dockingSystemConfig.getParamType();//xml/json if (paramType.equals(DATATYPE_JSON)) { Object object = JSONObject.toJSON(nodeJosnDTO); sendString = object.toString(); sendObject = 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); sendObject = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n" + xStream.toXML(nodeDataDTO); } //è°ç¨æ¥å£ callInterface(sendString,dockingSystemConfig, dockingTask,"pushData"); callInterface(sendObject,dockingSystemConfig, dockingTask,"pushData"); }catch (Throwable e){ e.printStackTrace(); }finally { } } } /*** * è°ç¨æ¥å£ * @param sendString * è°ç¨æ¥å£ï¼ä¼ å为JSONæ¶ä¼ objectç±»å,Content-Typeæ¹ä¸ºçé¢é ç½®ç * @param sendObject * @param dockingSystemConfig * @param dockingTask * @throws Throwable */ private void callInterface(String sendString , DockingSystemConfig dockingSystemConfig,DockingTask dockingTask,String operation) throws Throwable{ private void callInterface(Object sendObject, DockingSystemConfig dockingSystemConfig,DockingTask dockingTask,String operation) throws Throwable{ String paramString = ""; String backString = ""; String msg=""; String sendString = dockingSystemConfig.getContentType().equals(DATATYPE_JSON) ? JSONObject.toJSON(sendObject).toString():sendObject.toString(); String msg= "" ; String url = dockingSystemConfig.getRequestUrl();//url List<ResultNodeObjectDTO> resultNodeObjectDTOS =new ArrayList<>(); try { @@ -1055,17 +1073,17 @@ paramString = sendurl; backString = HttpUtils.get(sendurl); } else if (requestmethod.equals(URLTYPE_POST)) {//POSTè¯·æ± MultiValueMap<String, String> params = new LinkedMultiValueMap<>(); MultiValueMap<String, Object> params = new LinkedMultiValueMap<>(); for (DockingSysIntParam dockingSysIntParam : dockingSysIntParamList) { params.add(dockingSysIntParam.getParamKey(), dockingSysIntParam.getParamValue()); } params.add(DATA_PARAM_NAME,sendString); params.add(DATA_PARAM_NAME,sendObject); paramString = params.toString(); MultiValueMap<String, String> headers = new LinkedMultiValueMap<>(); for (DockingSysIntHeader dockingSysIntHeader : dockingSysIntHeaderList) { headers.add(dockingSysIntHeader.getHeaderKey(), dockingSysIntHeader.getHeaderValue()); } backString = HttpUtils.post(url, params, headers); backString = HttpUtils.postByMediaType(url, params, headers,new MediaType(dockingSystemConfig.getContentType())); } if(backString.startsWith("\"")){ backString=backString.substring(backString.indexOf("\"")+1); @@ -1163,6 +1181,160 @@ } } } /** * è°ç¨æ¥å£ï¼ä¼ å为JSONæ¶ä¼ objectç±»å * @param sendObject * @param dockingSystemConfig * @param dockingTask * @param operation * @throws Throwable */ private void callInterfaceByContentType(Object sendObject, DockingSystemConfig dockingSystemConfig,DockingTask dockingTask,String operation,String sendType) throws Throwable{ String paramString = ""; String sendString = sendType.equals(DATATYPE_JSON) ? JSONObject.toJSON(sendObject).toString():sendObject.toString(); String backString = ""; String msg=""; String url = dockingSystemConfig.getRequestUrl();//url List<ResultNodeObjectDTO> resultNodeObjectDTOS =new ArrayList<>(); try { boolean usedFlag= dockingSystemConfig.getUsedFlag().equals("true")?true:false; if(!usedFlag){ throw new Throwable("æ¥å£å·²ç»åç¨ï¼"); } String type = dockingSystemConfig.getInterfaceType().toLowerCase(Locale.ROOT);//get/post/webserver/corba String paramType = dockingSystemConfig.getParamType();//xml/json String returnType = dockingSystemConfig.getReturnType();//xml/json String requestmethod= dockingSystemConfig.getRequestMethod(); String interfaceFunction = dockingSystemConfig.getInterfaceFunction();//ä¸»è¦æ¯webserviceçæ¹æ³å String namespace = dockingSystemConfig.getNamespace();//namespace String soapaction = dockingSystemConfig.getSoapAction();//soapaction String targName = dockingSystemConfig.getTargetName();//targName String cxfaxis = dockingSystemConfig.getCxfAxis();//webserviceæ¯cxf/axis //æ¥è¯¢param List<DockingSysIntParam> dockingSysIntParamList = dockingSysIntParamService.list(Wrappers.<DockingSysIntParam>query().lambda().eq(DockingSysIntParam::getInfoOid,dockingSystemConfig.getOid())); //æ¥è¯¢header List<DockingSysIntHeader> dockingSysIntHeaderList = dockingSysIntHeaderService.list(Wrappers.<DockingSysIntHeader>query().lambda().eq(DockingSysIntHeader::getInfoOid,dockingSystemConfig.getOid())); if(type.equals(URLTYPE_HTTP)) { if (requestmethod.equals(URLTYPE_GET)) {//GETè¯·æ± String sendurl = url + "?" + DATA_PARAM_NAME + "=" + sendString; //æ¼æ¥param for (DockingSysIntParam dockingSysIntParam : dockingSysIntParamList) { sendurl = sendurl + "&" + dockingSysIntParam.getParamKey() + "=" + dockingSysIntParam.getParamValue(); } paramString = sendurl; backString = HttpUtils.get(sendurl); } else if (requestmethod.equals(URLTYPE_POST)) {//POSTè¯·æ± MultiValueMap<String, Object> params = new LinkedMultiValueMap<>(); for (DockingSysIntParam dockingSysIntParam : dockingSysIntParamList) { params.add(dockingSysIntParam.getParamKey(), dockingSysIntParam.getParamValue()); } params.add(DATA_PARAM_NAME,sendObject); paramString = params.toString(); MultiValueMap<String, String> headers = new LinkedMultiValueMap<>(); for (DockingSysIntHeader dockingSysIntHeader : dockingSysIntHeaderList) { headers.add(dockingSysIntHeader.getHeaderKey(), dockingSysIntHeader.getHeaderValue()); } // TODO: 2024-02-25æ¹ï¼ä¸ºäºæ»¡è¶³HR以åå ¶ä»æ åµä¸æ ¹æ®Content-typeçç±»åæ¥å请æ±ï¼å¹¶ä¸paramä¸çjsonæ¯æåçæ¶ååé请æ±å转 backString = HttpUtils.postByMediaType(url, params, headers, MediaType.APPLICATION_FORM_URLENCODED); } 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 (DockingSysIntParam dockingSysIntParam : dockingSysIntParamList) { params.add(dockingSysIntParam.getParamKey(), dockingSysIntParam.getParamValue()); } paramString = sendString; MultiValueMap<String, String> headers = new LinkedMultiValueMap<>(); for (DockingSysIntHeader dockingSysIntHeader : dockingSysIntHeaderList) { headers.add(dockingSysIntHeader.getHeaderKey(), dockingSysIntHeader.getHeaderValue()); } 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.getMessage(); e.printStackTrace(); log.error("è°ç¨æ¥å£å¤±è´¥:"+e); // throw new Throwable("è°ç¨æ¥å£å¤±è´¥:"+e); ResultNodeObjectDTO resultNodeObjectDTO=new ResultNodeObjectDTO(); resultNodeObjectDTO.setErroid("1"); resultNodeObjectDTO.setMsg(msg); resultNodeObjectDTO.setCode(dockingSystemConfig.getPushType().equalsIgnoreCase("2")?dockingTask.getClassifyId():dockingTask.getId()); resultNodeObjectDTO.setItemid(dockingTask.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; } DockingLog dockingLogeDO = new DockingLog(); String oid=VciBaseUtil.getPk(); dockingLogeDO.setOid(oid); dockingLogeDO.setSystemCode(dockingTask.getSystemCode()); dockingLogeDO.setSystemName(dockingTask.getSystemName()); dockingLogeDO.setSystemOid(dockingTask.getSystemOid()); dockingLogeDO.setClassifyOid(dockingTask.getClassifyOid()); dockingLogeDO.setClassifyId(dockingTask.getClassifyId()); dockingLogeDO.setClassifyName(dockingTask.getClassifyName()); dockingLogeDO.setCreateTime(new Date()); dockingLogeDO.setId(dockingTask.getId()); dockingLogeDO.setUniqueCode(dockingTask.getUniqueCode()); dockingLogeDO.setParamString(paramString); dockingLogeDO.setReturnString(backString); dockingLogeDO.setInterfaceStatus(isSend?"true":"false"); dockingLogeDO.setType(operation); dockingLogeDO.setMsg(msg); log.error("éææ¨éæ°æ®,systemcode:"+dockingTask.getSystemCode()+",systemname:"+dockingTask.getSystemName()+",url:"+url+",param:"+paramString+",e:"+msg); dockingLogeService.save(dockingLogeDO); } //å ¨é½æ¥æ¶æåçæ åµä¸,ä¿®æ¹dockingtask sendflag为已åé if(isSend) { dockingTask.setSendFlag(MdmDuckingConstant.SEND_FLAG_TRUE); dockingTask.setLastModifyTime(new Date()); dockingTaskService.updateById(dockingTask); } } } /*** * æ¥è¯¢éè¦éæçä¸å¡æ°æ®ä»»å¡ */ @@ -1199,6 +1371,7 @@ List<DockingTask> dockingTaskDOS = dockingTaskService.list(queryWrapper); sendpushClsfForService(dockingTaskDOS); } public void initSysadmin(){ SessionInfo sessionInfo = new SessionInfo(); sessionInfo.setUserId("sysAdmin"); @@ -1208,6 +1381,7 @@ sessionInfo.setUserSecret(UserSecretEnum.PRIVACY.getValue()+""); WebUtil.setSessionInfo(sessionInfo); } /** * dockingdataæ ¹æ®oidä¿®æ¹sendflag * @param oid @@ -1223,5 +1397,6 @@ } return u; } } Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
@@ -177,6 +177,11 @@ private MdmProductCodeService productCodeService; /** * è¿ä¹è¯è§åæ¥è¯¢æå¡ */ @Autowired ICodeSynonymService codeSynonymService; /** * å¯è¾å¯éçæå¡ */ @Resource @@ -358,7 +363,6 @@ */ @Autowired private SaveLogUtil saveLogUtil; /** * 使ç¨åç±»ç主é®è·åå¯ä»¥ä½¿ç¨ç模æ¿å¯¹è±¡ @@ -755,27 +759,36 @@ //注æçæ¯keyRuleVOå¯è½ä¸ºç©ºï¼è¡¨ç¤ºä¸ä½¿ç¨è§åæ§å¶ //è·åææçå ³é®å±æ§ Map<String, CodeClassifyTemplateAttrVO> ketAttrMap = templateVO.getAttributes().stream().filter(s -> VciBaseUtil.getBoolean(s.getKeyAttrFlag())).collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t)); // TODO:2024-02-01 å è·åé ç½®äºè¿ä¹è¯æ¥è¯¢è§åç屿§ï¼ä¸åäºå ³é®å±æ§ï¼è®¾ç½®äºè¿ä¹è¯æ¥è¯¢è§åç屿§å¯è½æ¯å¤æ¡ä¸åçè¿ä¹è¯æ¥è¯¢è§å Map<String, CodeClassifyTemplateAttrVO> sysonymAttrMaps = templateVO.getAttributes().stream().filter(item -> Func.isNotBlank(item.getSysonymRuleOids())).collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t)); // è·åæ¯å¦æé ç½®è¿ä¹è¯æ¥è¯¢è§å屿§ Map<String, List<CodeSynonym>> codeSynonymMaps = new HashMap<>(); if(!sysonymAttrMaps.isEmpty()){ // æ¥è¯¢è¿ä¹è¯è§åï¼å卿¹å¼keyï¼å±æ§idï¼valueè¿ä¹è¯æ¥è¯¢è§åå表 codeSynonymMaps = codeSynonymService.getCodeSynonymByOids(sysonymAttrMaps); } Map<String, String> conditionMap = new HashMap<>(); boolean trimAll = keyRuleVO == null ? false : VciBaseUtil.getBoolean(keyRuleVO.getIgnoreallspaceflag()); //å ¨é¨å»ç©ºçä¼å 级大äºå»ç©º boolean trim = keyRuleVO == null ? false : VciBaseUtil.getBoolean(keyRuleVO.getIgnorespaceflag()); boolean ignoreCase = keyRuleVO == null ? false : VciBaseUtil.getBoolean(keyRuleVO.getIgnorecaseflag()); boolean ignoreWidth = keyRuleVO == null ? false : VciBaseUtil.getBoolean(keyRuleVO.getIgnorewidthflag()); Map<String, List<CodeSynonym>> finalCodeSynonymMaps = codeSynonymMaps; ketAttrMap.forEach((attrId, attrVO) -> { String value = getValueFromOrderDTO(orderDTO, attrId); if (value == null) { value = ""; } wrapperKeyAttrConditionMap(value, keyRuleVO, attrId, trim, ignoreCase, ignoreWidth, trimAll, conditionMap); wrapperKeyAttrConditionMap(value, keyRuleVO, finalCodeSynonymMaps.get(attrId), attrId, trim, ignoreCase, ignoreWidth, trimAll, conditionMap); }); //没æéå¶åç±»ï¼ä½æ¯ä¸ä¸ªæ¨¡æ¿åªå¯è½å¨ä¸ä¸ªä¸å¡ç±»åéé¢ï¼æä»¥ç´æ¥æ¥è¯¢è¿ä¸ªä¸å¡ç±»åå³å¯ if (!CollectionUtils.isEmpty(conditionMap)) { // TODO: åä¸ä¸ªåºå¤éä¸éè¦åºååç±»oid // conditionMap.put("CODETEMPLATEOID","'" + orderDTO.getTemplateOid() + "'"); // final String[] sql = {"select count(*) from " + VciBaseUtil.getTableName(classifyFullInfo.getTopClassifyVO().getBtmtypeid()) + " t where 1 = 1 "}; // final String[] sql = {"select count(*) from " + VciBaseUtil.getTableName(classifyFullInfo.getTopClassifyVO().getBtmtypeid()) + " t where 1 = 1 "}; R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(classifyFullInfo.getTopClassifyVO().getBtmTypeId())); // String referTable = VciBaseUtil.getTableName(referVO.getReferType()); // String referTable = VciBaseUtil.getTableName(referVO.getReferType()); if (!listR.isSuccess() || listR.getData().size() == 0) { throw new VciBaseException("ä¼ å ¥ä¸å¡ç±»åæªæ¥è¯¢å°ç¸åºè¡¨åï¼è¯·æ£æ¥ï¼"); } @@ -800,7 +813,7 @@ if (Func.isNotEmpty(isParticipateCheckOids)) { sql[0] += " and codeclsfid not in(" + isParticipateCheckOids + ")"; } // if (boService.queryCountBySql(sql[0], new HashMap<>()) > 0) { // if (boService.queryCountBySql(sql[0], new HashMap<>()) > 0) { List<String> repeatData = commonsMapper.selectList(sql[0]); if (!repeatData.isEmpty()) { String ruleInfoMsg = keyRuleVO == null ? "" : "æ¥è¯¢è§åï¼å»é¤ç©ºæ ¼--{0},忽ç¥å¤§å°å--{1},忽ç¥å ¨åè§--{2},忽ç¥å ¨é¨ç©ºæ ¼--{3}"; @@ -825,18 +838,27 @@ //注æçæ¯keyRuleVOå¯è½ä¸ºç©ºï¼è¡¨ç¤ºä¸ä½¿ç¨è§åæ§å¶ //è·åææçå ³é®å±æ§ Map<String, CodeClassifyTemplateAttrVO> ketAttrMap = templateVO.getAttributes().stream().filter(s -> VciBaseUtil.getBoolean(s.getKeyAttrFlag())).collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t)); // TODO:2024-02-01 å è·åé ç½®äºè¿ä¹è¯æ¥è¯¢è§åç屿§ï¼ä¸åäºå ³é®å±æ§ï¼è®¾ç½®äºè¿ä¹è¯æ¥è¯¢è§åç屿§å¯è½æ¯å¤æ¡ä¸åçè¿ä¹è¯æ¥è¯¢è§å Map<String, CodeClassifyTemplateAttrVO> sysonymAttrMaps = templateVO.getAttributes().stream().filter(item -> Func.isNotBlank(item.getSysonymRuleOids())).collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t)); // è·åæ¯å¦æé ç½®è¿ä¹è¯æ¥è¯¢è§å屿§ Map<String, List<CodeSynonym>> codeSynonymMaps = new HashMap<>(); if(!sysonymAttrMaps.isEmpty()){ // æ¥è¯¢è¿ä¹è¯è§åï¼å卿¹å¼keyï¼å±æ§idï¼valueè¿ä¹è¯æ¥è¯¢è§åå表 codeSynonymMaps = codeSynonymService.getCodeSynonymByOids(sysonymAttrMaps); } Map<String, String> conditionMap = new HashMap<>(); boolean trimAll = keyRuleVO == null ? false : VciBaseUtil.getBoolean(keyRuleVO.getIgnoreallspaceflag()); //å ¨é¨å»ç©ºçä¼å 级大äºå»ç©º boolean trim = keyRuleVO == null ? false : VciBaseUtil.getBoolean(keyRuleVO.getIgnorespaceflag()); boolean ignoreCase = keyRuleVO == null ? false : VciBaseUtil.getBoolean(keyRuleVO.getIgnorecaseflag()); boolean ignoreWidth = keyRuleVO == null ? false : VciBaseUtil.getBoolean(keyRuleVO.getIgnorewidthflag()); Map<String, List<CodeSynonym>> finalCodeSynonymMaps = codeSynonymMaps; ketAttrMap.forEach((attrId, attrVO) -> { String value = getValueFromOrderDTO(orderDTO, attrId); if (value == null) { value = ""; } wrapperKeyAttrConditionMap(value, keyRuleVO, attrId, trim, ignoreCase, ignoreWidth, trimAll, conditionMap); wrapperKeyAttrConditionMap(value, keyRuleVO, finalCodeSynonymMaps.get(attrId), attrId, trim, ignoreCase, ignoreWidth, trimAll, conditionMap); }); //没æéå¶åç±»ï¼ä½æ¯ä¸ä¸ªæ¨¡æ¿åªå¯è½å¨ä¸ä¸ªä¸å¡ç±»åéé¢ï¼æä»¥ç´æ¥æ¥è¯¢è¿ä¸ªä¸å¡ç±»åå³å¯ @@ -927,7 +949,7 @@ } //æ¯å¦ç³»å if (!codeBZApplyDTO.isSeries()) { boolean isSeriesValue = codeBZApplyDTO.getData().get(isSeries).equals("true") ? true : false; boolean isSeriesValue = Func.toBoolean(codeBZApplyDTO.getData().get(isSeries)); codeBZApplyDTO.setSeries(isSeriesValue); } //åæ åå· @@ -947,7 +969,7 @@ } //æ¯å¦åæ´ç³»å if (!codeBZApplyDTO.isEditSeries()) { boolean isEditSeriesValue = codeBZApplyDTO.getData().get(isEditSeries).equals("true") ? true : false; boolean isEditSeriesValue = Func.toBoolean(codeBZApplyDTO.getData().get(isEditSeries)); codeBZApplyDTO.setEditSeries(isEditSeriesValue); } VciBaseUtil.alertNotNull(codeBZApplyDTO.getOperationType(), "æä½ç±»å", @@ -965,7 +987,7 @@ } else if (codeBZApplyDTO.getOperationType().equals(CodeBZOperationTypeEnum.CODE_BZ_DISABLE.getValue())) {//ä½åº code = amendmentDataBZ(codeBZApplyDTO, authUser); createChangeOder(code, codeBZApplyDTO, authUser); } else if (codeBZApplyDTO.getOperationType().equals(CodeBZOperationTypeEnum.CODE_BZ_AMENDMENT.getValue())) {//夿¥ } else if (codeBZApplyDTO.getOperationType().equals(CodeBZOperationTypeEnum.CODE_BZ_FOR_REFERENCE.getValue())) {//夿¥ code = amendmentDataBZ(codeBZApplyDTO, authUser); createChangeOder(code, codeBZApplyDTO, authUser); } @@ -1235,14 +1257,18 @@ * @param conditionMap æ¥è¯¢æ¡ä»¶ */ @Override public void wrapperKeyAttrConditionMap(String value, CodeKeyAttrRepeatVO keyRuleVO, String attrId, public void wrapperKeyAttrConditionMap(String value, CodeKeyAttrRepeatVO keyRuleVO, List<CodeSynonym> codeSynonymMaps, String attrId, boolean trim, boolean ignoreCase, boolean ignoreWidth, boolean trimAll, Map<String, String> conditionMap) { boolean ignoreSpace = trim || trimAll; if (StringUtils.isBlank(value)) { //ä¸ºç©ºçæ¶åï¼ä¸è½ç¨QueryOperation.ISNULLï¼å¹³å°ä¸ç¥é奿¶åä¸å¤çè¿ç§äº //å¼ä¸ºç©ºçæ¶åï¼ä¸è½ç¨QueryOperation.ISNULLï¼å¹³å°ä¸ç¥é奿¶åä¸å¤çè¿ç§äº conditionMap.put("t." + attrId, QueryOptionConstant.ISNULL); } else { //è¿ä¹è¯æ¥è¯¢è§åvaluå¼è½¬æ¢ value = this.getValueToSynony(codeSynonymMaps, value); if (keyRuleVO != null) { String queryKey = ""; String queryValue = ""; @@ -1278,7 +1304,7 @@ conditionMap.put(queryKey, queryValue); } else { if (StringUtils.isNotBlank(value)) { //ä¸ºç©ºçæ¶åä¸ä»£è¡¨ä¸æ ¡éªï¼åªæ¯ä¸å»é¤ç¸å ³çä¿¡æ¯ //å ³é®å±æ§æ¥éè§åä¸ºç©ºçæ¶åä¸ä»£è¡¨ä¸æ ¡éªï¼åªæ¯ä¸å»é¤ç¸å ³çä¿¡æ¯ conditionMap.put("nvl(" + "t." + attrId + ",'/')", "'" + SpecialCharacterConverter.escapeSpecialCharacters(value) + "'"); } else { conditionMap.put("t." + attrId, QueryOptionConstant.ISNULL); @@ -1288,17 +1314,20 @@ } /** * å°è£ è¿ä¹è¯æ¥è¯¢è§å屿§çæ¥è¯¢è¯å¥ * @param value å½åçå¼ * @param keyRuleVO 屿§çç¼å· * @param attrId * @param conditionMap æ¥è¯¢æ¡ä»¶ * è¿ä¹è¯æ¥è¯¢è§åè½¬æ¢ * @param codeSynonymMaps * @param value * @return */ @Override public void wrapperSynonymAttrConditionMap(String value, CodeKeyAttrRepeatVO keyRuleVO, String attrId, Map<String, String> conditionMap) { // mapæé æè·¯ï¼1ãå 宿æ£åæ¿æ¢sqlå¼ // 2ãå宿ååæ¿æ¢sqlå¼ public String getValueToSynony(/*è¿ä¹è¯æ¥è¯¢è§å*/List<CodeSynonym> codeSynonymMaps,String value){ // è·å并夿æ¯å¦é ç½®äºè¿ä¹è¯æ¥è¯¢è§å // TODOï¼è¿ä¹è¯æ¿æ¢ææºå¼ï¼æºå¼æ¯æ£ç¡®çå¼ï¼è¿ä¹è¯æ¯ç¸å½äºè¾éç¬è¯¯çåç¬¦ï¼ if(!codeSynonymMaps.isEmpty()){ for (int i = 0; i < codeSynonymMaps.size(); i++) { value = value.replace(codeSynonymMaps.get(i).getSynonymValue(),codeSynonymMaps.get(i).getSourceValue()); } } return value; } /** Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java
@@ -165,6 +165,9 @@ @Autowired private ICodeKeyAttrRepeatService keyRuleService; /** * è¿ä¹è¯è§åæ¥è¯¢æå¡ */ @Autowired ICodeSynonymService codeSynonymService; /** @@ -3095,18 +3098,27 @@ //注æçæ¯keyRuleVOå¯è½ä¸ºç©ºï¼è¡¨ç¤ºä¸ä½¿ç¨è§åæ§å¶ //è·åææçå ³é®å±æ§ Map<String, CodeClassifyTemplateAttrVO> ketAttrMap = templateVO.getAttributes().stream().filter(s -> VciBaseUtil.getBoolean(s.getKeyAttrFlag())).collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t)); // TODO:2024-02-01 å è·åé ç½®äºè¿ä¹è¯æ¥è¯¢è§åç屿§ï¼ä¸åäºå ³é®å±æ§ï¼è®¾ç½®äºè¿ä¹è¯æ¥è¯¢è§åç屿§å¯è½æ¯å¤æ¡ä¸åçè¿ä¹è¯æ¥è¯¢è§å Map<String, CodeClassifyTemplateAttrVO> sysonymAttrMaps = templateVO.getAttributes().stream().filter(item -> Func.isNotBlank(item.getSysonymRuleOids())).collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t)); // è·åæ¯å¦æé ç½®è¿ä¹è¯æ¥è¯¢è§å屿§ Map<String, List<CodeSynonym>> codeSynonymMaps = new HashMap<>(); if(!sysonymAttrMaps.isEmpty()){ // æ¥è¯¢è¿ä¹è¯è§åï¼å卿¹å¼keyï¼å±æ§idï¼valueè¿ä¹è¯æ¥è¯¢è§åå表 codeSynonymMaps = codeSynonymService.getCodeSynonymByOids(sysonymAttrMaps); } Map<String, String> conditionMap = new HashMap<>(); boolean trimAll = keyRuleVO == null ? false : VciBaseUtil.getBoolean(keyRuleVO.getIgnoreallspaceflag()); //å ¨é¨å»ç©ºçä¼å 级大äºå»ç©º boolean trim = keyRuleVO == null ? false : VciBaseUtil.getBoolean(keyRuleVO.getIgnorespaceflag()); boolean ignoreCase = keyRuleVO == null ? false : VciBaseUtil.getBoolean(keyRuleVO.getIgnorecaseflag()); boolean ignoreWidth = keyRuleVO == null ? false : VciBaseUtil.getBoolean(keyRuleVO.getIgnorewidthflag()); Map<String, List<CodeSynonym>> finalCodeSynonymMaps = codeSynonymMaps; ketAttrMap.forEach((attrId, attrVO) -> { String value = getValueFromOrderDTO(orderDTO, attrId); if (value == null) { value = ""; } engineService.wrapperKeyAttrConditionMap(value, keyRuleVO, attrId, trim, ignoreCase, ignoreWidth, trimAll, conditionMap); engineService.wrapperKeyAttrConditionMap(value, keyRuleVO, finalCodeSynonymMaps.get(attrId), attrId, trim, ignoreCase, ignoreWidth, trimAll, conditionMap); }); //没æéå¶åç±»ï¼ä½æ¯ä¸ä¸ªæ¨¡æ¿åªå¯è½å¨ä¸ä¸ªä¸å¡ç±»åéé¢ï¼æä»¥ç´æ¥æ¥è¯¢è¿ä¸ªä¸å¡ç±»åå³å¯ @@ -4398,7 +4410,7 @@ // TODO:2024-02-01 å è·åé ç½®äºè¿ä¹è¯æ¥è¯¢è§åç屿§ï¼ä¸åäºå ³é®å±æ§ï¼è®¾ç½®äºè¿ä¹è¯æ¥è¯¢è§åç屿§å¯è½æ¯å¤æ¡ä¸åçè¿ä¹è¯æ¥è¯¢è§å Map<String, CodeClassifyTemplateAttrVO> sysonymAttrMaps = templateVO.getAttributes().stream().filter(item -> Func.isNotBlank(item.getSysonymRuleOids())).collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t)); // æé ç½®è¿ä¹è¯æ¥è¯¢è§å屿§ // è·åæ¯å¦æé ç½®è¿ä¹è¯æ¥è¯¢è§å屿§ Map<String, List<CodeSynonym>> codeSynonymMaps = new HashMap<>(); if(!sysonymAttrMaps.isEmpty()){ // æ¥è¯¢è¿ä¹è¯è§åï¼å卿¹å¼keyï¼å±æ§idï¼valueè¿ä¹è¯æ¥è¯¢è§åå表 @@ -4417,8 +4429,8 @@ new String[]{trim?"æ¯":"å¦",ignoreCase?"æ¯":"å¦",ignoreWidth?"æ¯":"å¦",trimAll?"æ¯":"å¦"})); //resultVO.setSelfRepeatRowIndexList(getSelfRepeatRowIndex(keyAttrMap,cboList,keyRuleVO)); // å å¨è¡¨æ ¼ä¸æ¥è¯¢å ³é®å±æ§éå¤çå getSelfRepeatRowIndex(keyAttrMap,cboList,keyRuleVO,resultVO); // å å¨è¡¨æ ¼ä¸æ¥è¯¢å ³é®å±æ§åè¿ä¹è¯è½¬æ¢åéå¤çå getSelfRepeatRowIndex(keyAttrMap,cboList,keyRuleVO,codeSynonymMaps,resultVO); // åå¨è¡¨æ ¼ä¸æ¥è¯¢è¿ä¹è¯æ¥è¯¢è§åçå //getSelfRepeatSysnomRowIndex(sysonymAttrMaps,cboList,codeSynonymMaps,resultVO); @@ -4435,6 +4447,7 @@ // ,æä»¥ææ¶å°parallelStreamæ¹æäºstreamï¼æ¹æäºstreamä¹ååç°å·¨æ ¢ // customForkJoinPoolæ§å¶å¹¶å度 List<ClientBusinessObject> finalCboList = cboList; Map<String, List<CodeSynonym>> finalCodeSynonymMaps = codeSynonymMaps; List<ClientBusinessObject> repeatDataMap = (List<ClientBusinessObject>) customForkJoinPool.submit(()->{ finalCboList.parallelStream().filter(cbo -> { //æ¯è¡é½å¾æ¥è¯¢.å¦æå ¶ä¸åºç°äºéè¯¯ï¼æä»¬å°±ç´æ¥æåºå¼å¸¸ï¼å ¶ä½çæ¾ç¤º @@ -4447,9 +4460,7 @@ } value= value.replace(REQUIRED_CHAR,SPECIAL_CHAR); // å ³é®å±æ§æ¥è¯¢æ¡ä»¶mapè·å engineService.wrapperKeyAttrConditionMap(value, keyRuleVO, attrId, trim, ignoreCase, ignoreWidth, trimAll, conditionMap); // è¿ä¹è¯æ¥è¯¢è§åæ¡ä»¶mapè·å //engineService.wrapperSynonymAttrConditionMap(value); engineService.wrapperKeyAttrConditionMap(value, keyRuleVO, finalCodeSynonymMaps.get(attrId), attrId, trim, ignoreCase, ignoreWidth, trimAll, conditionMap); }); if (!CollectionUtils.isEmpty(keyAttrMap)) { @@ -4603,14 +4614,14 @@ } /** * è·åå¯¼å ¥çå 容ä¸å ³é®å±æ§éå¤çè¡å· * è·åå¯¼å ¥çå 容ä¸å ³é®å±æ§è¿ä¹è¯è½¬æ¢åéå¤çè¡å· * @param ketAttrMap å ³é®å±æ§çæ å° * @param dataList å¯¼å ¥çæ°æ® * @param keyRuleVO å ³é®å±æ§æ§å¶è§å * @return éå¤çè¡å· */ private void getSelfRepeatRowIndex(Map<String/**屿§çç¼å·**/, CodeClassifyTemplateAttrVO> ketAttrMap, List<ClientBusinessObject> dataList,CodeKeyAttrRepeatVO keyRuleVO,CodeImportResultVO resultVO){ List<ClientBusinessObject> dataList,CodeKeyAttrRepeatVO keyRuleVO,/*è¿ä¹è¯æ¥è¯¢è§å*/Map<String,List<CodeSynonym>> codeSynonymMaps, CodeImportResultVO resultVO){ Set<String> selfRepeatRowIndexList = new CopyOnWriteArraySet<>(); Map<String,List<String>> keyAttrOkOidTORepeatOidMap=new HashMap<>(); boolean trimAll =keyRuleVO ==null?false: VciBaseUtil.getBoolean(keyRuleVO.getIgnoreallspaceflag()); @@ -4626,10 +4637,10 @@ String rowIndex = cbo.getAttributeValue(IMPORT_ROW_INDEX); String oid=cbo.getOid(); StringBuilder sb = new StringBuilder(); // å ³é®å±æ§é夿 ¡éªå¼å¤ç for (int i = 0; i < attrVOList.size(); i++) { CodeClassifyTemplateAttrVO attrVO = attrVOList.get(i); String attrId = attrVO.getId().toLowerCase(Locale.ROOT); // TODOï¼ 2024-02-25æ¹é å®ç°è¿ä¹è¯æ¥è¯¢è§ååè½ï¼å ³é®å±æ§é夿 ¡éªå¼å¤ç attrVOList.stream().forEach(item->{ String attrId = item.getId().toLowerCase(Locale.ROOT); String value = cbo.getAttributeValue( attrId); if (value == null) { value = ""; @@ -4646,61 +4657,9 @@ if(ignoreWidth){ value = VciBaseUtil.toDBC(value); } value = mdmEngineService.getValueToSynony(codeSynonymMaps.get(attrId),value); sb.append(value).append("${ks}"); } String keyString = sb.toString(); if(rowIndexKeyStringMap.containsValue(keyString) && StringUtils.isNotBlank(keyString)){ selfRepeatRowIndexList.add(rowIndex); String okOid=okOidKeyStringMap.getOrDefault(keyString,""); if(StringUtils.isNotBlank(okOid)){ List<String>newOidList=new ArrayList<>(); newOidList.add(oid); if(keyAttrOkOidTORepeatOidMap.containsKey(okOid)){ List<String> oldOidList = keyAttrOkOidTORepeatOidMap.get(okOid); newOidList.addAll(oldOidList); } keyAttrOkOidTORepeatOidMap.put(okOid,newOidList); } }else { okOidKeyStringMap.put(sb.toString(),oid); rowIndexKeyStringMap.put(rowIndex, sb.toString()); } }); //å ä¸ºåªæ¯å ³é®å±æ§éå¤ï¼æä»¥æä»¬ä¸è½éå¤ç夿¡é䏿¡æ¥æ¥é resultVO.setKeyAttrRepeatRowIndexList(selfRepeatRowIndexList); resultVO.setKeyAttrOkOidTORepeatOidMap(keyAttrOkOidTORepeatOidMap); } /** * è·åè¿ä¹è¯æ¥è¯¢åå¨ç¸åçè¡å· * @param sysonymAttr * @param dataList * @param CodeSynonymMaps * @param resultVO */ private void getSelfRepeatSysnomRowIndex(Map<String/**屿§çç¼å·**/, CodeClassifyTemplateAttrVO> sysonymAttr, List<ClientBusinessObject> dataList, Map<String, List<CodeSynonym>> CodeSynonymMaps,CodeImportResultVO resultVO) { Set<String> selfRepeatRowIndexList = new CopyOnWriteArraySet<>(); Map<String,List<String>> keyAttrOkOidTORepeatOidMap=new HashMap<>(); //å¿ é¡»å°å±æ§æç §é¡ºåºæåºå¥½ List<CodeClassifyTemplateAttrVO> attrVOList = sysonymAttr.values().stream().sorted(((o1, o2) -> o1.getOrderNum().compareTo(o2.getOrderNum()))).collect(Collectors.toList()); Map<String/**è¡å·**/,String/**å ³é®å±æ§çç»åå 容**/> rowIndexKeyStringMap = new HashMap<>(); Map<String/**å ³é®å±æ§çç»åå 容**/,String/**第ä¸ä¸ªå ³é®å±æ§çæ°æ®oid**/> okOidKeyStringMap = new HashMap<>(); dataList.parallelStream().forEach(cbo-> { String rowIndex = cbo.getAttributeValue(IMPORT_ROW_INDEX); String oid = cbo.getOid(); StringBuilder sb = new StringBuilder(); for (int i = 0; i < attrVOList.size(); i++) { CodeClassifyTemplateAttrVO attrVO = attrVOList.get(i); String attrId = attrVO.getId().toLowerCase(Locale.ROOT); String value = cbo.getAttributeValue(attrId); List<CodeSynonym> codeSynonyms = CodeSynonymMaps.get(attrId); // 对è¿ä¹è¯æ¥è¯¢å¼è¿è¡è½¬æ¢ value = synonymConversion(codeSynonyms,value); // 妿codeSynonymsæ¯å¤ä¸ªå°±éè¦èèç»åé®é¢ sb.append(value).append("${sys}"); } }); String keyString = sb.toString(); if(rowIndexKeyStringMap.containsValue(keyString) && StringUtils.isNotBlank(keyString)){ selfRepeatRowIndexList.add(rowIndex); @@ -4722,23 +4681,6 @@ //å ä¸ºåªæ¯å ³é®å±æ§éå¤ï¼æä»¥æä»¬ä¸è½éå¤ç夿¡é䏿¡æ¥æ¥é resultVO.setKeyAttrRepeatRowIndexList(selfRepeatRowIndexList); resultVO.setKeyAttrOkOidTORepeatOidMap(keyAttrOkOidTORepeatOidMap); } /** * è¿ä¹è¯ä¸æºå¼ç¸äºè½¬æ¢ * @param codeSynonyms * @param value * @return */ private String synonymConversion(List<CodeSynonym> codeSynonyms,String value){ // åªæä¸æ¡è¿ä¹è¯æ¥è¯¢è§åæ¶ if(codeSynonyms.isEmpty() || codeSynonyms.size() == 1){ return value.replace(codeSynonyms.get(0).getSourceValue(),codeSynonyms.get(0).getSynonymValue()); } // è¿ä¹è¯è§åå¯è½åºç°çæ 嵿¯ä¸ä¸ªæºå¼å¯¹åºå¤ä¸ªè¿ä¹è¯ï¼è忥æ¶åæ ·ä¼åºç°ä¸ä¸ªè¿ä¹è¯å¯¹åºå¤ä¸ªæºå¼ // codeSynonyms.stream().map() return value; } /** Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/webService/config/VciCxfPublishConfig.java
@@ -42,7 +42,7 @@ public void autoPushCxf(){ log.info("å¼å§è¿è¡èªå¨åå¸webServiceæ¥å£"); Map<String, Object> beansWithAnnotation = ApplicationContextProvider.getApplicationContext().getBeansWithAnnotation(VciWebservice.class); Map<String, Object> beansWithAnnotation = ApplicationContextProvider.getApplicationContext().getBeansWithAnnotation(VciWebservice.class); if(!CollectionUtils.isEmpty(beansWithAnnotation)){ //æ¾è¿äºbeanç beansWithAnnotation.forEach((beanName,bean)->{ Source/UBCS/ubcs-service/ubcs-deploy/src/main/java/com/vci/ubcs/deploy/service/impl/DeployAppsServiceImpl.java
@@ -17,8 +17,10 @@ import com.vci.ubcs.starter.util.HttpUtils; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.Func; import org.springblade.core.tool.utils.WebUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.cloud.client.ServiceInstance; @@ -30,6 +32,8 @@ import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.MultiValueMap; import org.springframework.web.multipart.MultipartFile; import javax.servlet.ServletRequest; @@ -40,6 +44,8 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.StandardCopyOption; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.*; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -167,18 +173,18 @@ if(deployAppsVO.getName().isEmpty()){ throw new ServiceException("缺å°å¿ ä¼ åæ°name"); } DeployApps deployApps = deployAppsMapper.selectOne(Wrappers.<DeployApps>query().lambda().eq(DeployApps::getServerName, deployAppsVO.getName())); List<DeployApps> deployApps = deployAppsMapper.selectList(Wrappers.<DeployApps>query().lambda().eq(DeployApps::getServerName, deployAppsVO.getName())); if(Func.isNotEmpty(deployApps)){ return deployApps; return deployApps.get(0); } // æªä»åºä¸æ¥è¯¢å°ï¼éè¦çææå¡ä¿¡æ¯ä¿åé»è®¤ä¿¡æ¯å°åºä¸ DeployApps defaultDeployApps = new DeployApps(); defaultDeployApps.setLogPath(PARENTPATH + "\\" + deployAppsVO.getName().replace("-","_") + LOGPATH); defaultDeployApps.setLogPath(PARENTPATH + deployAppsVO.getName().replace("-","_") + LOGPATH); defaultDeployApps.setServerName(deployAppsVO.getName()); defaultDeployApps.setStartCmd(CmdConfigEnum.START_CMD.getValue() + deployAppsVO.getName()); defaultDeployApps.setStopCmd(CmdConfigEnum.STOP_CMD.getValue() + deployAppsVO.getName()); defaultDeployApps.setRestartCmd(CmdConfigEnum.RESTART_CMD.getValue() + deployAppsVO.getName()); defaultDeployApps.setServerPath(PARENTPATH + "\\" + deployAppsVO.getName().replace("-","_")); defaultDeployApps.setServerPath(PARENTPATH + deployAppsVO.getName().replace("-","_")); int eft = deployAppsMapper.insert(defaultDeployApps); if (!SqlHelper.retBool(eft)) { throw new ServiceException("çæé»è®¤æå¡ä¿¡æ¯å°åºä¸æ¶å¤±è´¥ï¼"); @@ -194,8 +200,7 @@ */ @Override public boolean saveOrUpdateServiceInfo(DeployAppsVO deployAppsVO) throws ServiceException { boolean b = this.saveOrUpdate(deployAppsVO); return b; return this.saveOrUpdate(deployAppsVO); } /** @@ -208,6 +213,10 @@ public boolean addSave(DeployApps deployApps) throws ServiceException { if (Func.isBlank(deployApps.getServerName()) || Func.isBlank(deployApps.getServerPath())) { throw new ServiceException("å¿ ä¼ åæ°[æå¡åç§°ï¼æå¡åæ¾è·¯å¾]ä¸è½ä¸ºç©º"); } List<DeployApps> deployAppsList = deployAppsMapper.selectList(Wrappers.<DeployApps>query().lambda().eq(DeployApps::getServerName, deployApps.getServerName())); if (!deployAppsList.isEmpty()) { throw new ServiceException("æ°å¢æå¡çæå¡åéå¤ï¼"); } return SqlHelper.retBool(deployAppsMapper.insert(deployApps)); } @@ -238,12 +247,12 @@ String backName = ""; String fileType = "file"; // æ¯å缩æä»¶,å 为åªä¼åå¨ä¸¤ç§æ åµï¼æä»¶åæ¯å缩æä»¶ï¼æè æä»¶ï¼.jarç±»åçæä»¶ï¼ // å½åæ¶é´ String currentDateTime = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); if (file.getContentType().equals("application/zip") || file.getContentType().equals("application/x-zip-compressed")) { backName = file.getOriginalFilename().replace(".zip","_"+Func.formatDate(new Date())); fileType = "zip"; backName = file.getOriginalFilename().replace(".zip","_" + currentDateTime); }else{ backName = file.getOriginalFilename().replace(".","_"+Func.formatDate(new Date())+"."); fileType = "file"; backName = file.getOriginalFilename().replace(".","_" + currentDateTime + "."); } File source = new File(deployAppsDB.get(0).getServerPath() + this.SEPARATOR + file.getOriginalFilename().replace(".zip", "")); File destination = new File(deployAppsDB.get(0).getFileBack() + this.SEPARATOR + backName); @@ -338,6 +347,7 @@ return "The executed command is empty"; } // æ§è¡Linuxå½ä»¤ log.info("å¼å§æ§è¡å½ä»¤ï¼"+cmd); Process process = Runtime.getRuntime().exec(cmd); // 读åå½ä»¤æ§è¡ç»æ BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); @@ -347,7 +357,7 @@ } // çå¾ å½ä»¤æ§è¡å®æ int exitCode = process.waitFor(); log.info("å½ä»¤æ§è¡ç»æï¼" + output.toString()); log.info("å½ä»¤æ§è¡ç»æï¼" + output.toString()+":"+exitCode); return output.toString(); }catch (IOException | InterruptedException e){ e.printStackTrace();