Selaa lähdekoodia

流程bug修改,删除任务bug修改

demon 8 vuotta sitten
vanhempi
commit
29d11520a6

+ 206 - 29
esb.iml

@ -18,40 +18,12 @@
    <output-test url="file://$MODULE_DIR$/target/test-classes" />
    <content url="file://$MODULE_DIR$">
      <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
      <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
      <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
      <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
      <excludeFolder url="file://$MODULE_DIR$/target" />
    </content>
    <orderEntry type="inheritedJdk" />
    <orderEntry type="sourceFolder" forTests="false" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-core:2.17.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-spring-boot:2.17.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-spring:2.17.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-http4:2.17.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-http-common:2.17.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-jms:2.17.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-cxf:2.17.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-cxf-transport:2.17.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-bindings-soap:3.1.5" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-core:3.1.5" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-wsdl:3.1.5" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-databinding-jaxb:3.1.5" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-frontend-jaxrs:3.1.5" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-transports-http:3.1.5" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-frontend-jaxws:3.1.5" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-bindings-xml:3.1.5" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-frontend-simple:3.1.5" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-ws-addr:3.1.5" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-ws-policy:3.1.5" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-rs-security-oauth:3.1.5" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-rs-client:3.1.5" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-quartz:2.17.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-quartz2:2.17.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-xmljson:2.17.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-stream:2.17.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-jetty:2.17.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-jetty9:2.17.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-jetty-common:2.17.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-jasper:8.5.5" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:8.5.5" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:8.5.5" level="project" />
@ -226,4 +198,209 @@
    <orderEntry type="library" scope="TEST" name="Maven: org.json:json:20140107" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:4.3.3.RELEASE" level="project" />
  </component>
  <component name="org.twodividedbyzero.idea.findbugs">
    <option name="_basePreferences">
      <map>
        <entry key="property.analysisEffortLevel" value="default" />
        <entry key="property.analyzeAfterAutoMake" value="false" />
        <entry key="property.analyzeAfterCompile" value="false" />
        <entry key="property.annotationGutterIconEnabled" value="true" />
        <entry key="property.annotationSuppressWarningsClass" value="edu.umd.cs.findbugs.annotations.SuppressFBWarnings" />
        <entry key="property.annotationTextRangeMarkupEnabled" value="true" />
        <entry key="property.exportAsHtml" value="true" />
        <entry key="property.exportAsXml" value="true" />
        <entry key="property.exportBaseDir" value="" />
        <entry key="property.exportCreateArchiveDir" value="false" />
        <entry key="property.exportOpenBrowser" value="true" />
        <entry key="property.minPriorityToReport" value="Medium" />
        <entry key="property.runAnalysisInBackground" value="false" />
        <entry key="property.showHiddenDetectors" value="false" />
        <entry key="property.toolWindowToFront" value="true" />
      </map>
    </option>
    <option name="_detectors">
      <map>
        <entry key="AppendingToAnObjectOutputStream" value="true" />
        <entry key="AtomicityProblem" value="true" />
        <entry key="BadAppletConstructor" value="false" />
        <entry key="BadResultSetAccess" value="true" />
        <entry key="BadSyntaxForRegularExpression" value="true" />
        <entry key="BadUseOfReturnValue" value="true" />
        <entry key="BadlyOverriddenAdapter" value="true" />
        <entry key="BooleanReturnNull" value="true" />
        <entry key="BuildInterproceduralCallGraph" value="false" />
        <entry key="BuildObligationPolicyDatabase" value="true" />
        <entry key="BuildStringPassthruGraph" value="true" />
        <entry key="CallToUnsupportedMethod" value="false" />
        <entry key="CalledMethods" value="true" />
        <entry key="CheckCalls" value="false" />
        <entry key="CheckExpectedWarnings" value="false" />
        <entry key="CheckImmutableAnnotation" value="true" />
        <entry key="CheckRelaxingNullnessAnnotation" value="true" />
        <entry key="CheckTypeQualifiers" value="true" />
        <entry key="CloneIdiom" value="true" />
        <entry key="ComparatorIdiom" value="true" />
        <entry key="ConfusedInheritance" value="true" />
        <entry key="ConfusionBetweenInheritedAndOuterMethod" value="true" />
        <entry key="CovariantArrayAssignment" value="false" />
        <entry key="CrossSiteScripting" value="true" />
        <entry key="DefaultEncodingDetector" value="true" />
        <entry key="DoInsideDoPrivileged" value="true" />
        <entry key="DontCatchIllegalMonitorStateException" value="true" />
        <entry key="DontIgnoreResultOfPutIfAbsent" value="true" />
        <entry key="DontUseEnum" value="true" />
        <entry key="DroppedException" value="true" />
        <entry key="DumbMethodInvocations" value="true" />
        <entry key="DumbMethods" value="true" />
        <entry key="DuplicateBranches" value="true" />
        <entry key="EmptyZipFileEntry" value="false" />
        <entry key="EqualsOperandShouldHaveClassCompatibleWithThis" value="true" />
        <entry key="ExplicitSerialization" value="true" />
        <entry key="FieldItemSummary" value="true" />
        <entry key="FinalizerNullsFields" value="true" />
        <entry key="FindBadCast2" value="true" />
        <entry key="FindBadForLoop" value="true" />
        <entry key="FindBugsSummaryStats" value="true" />
        <entry key="FindCircularDependencies" value="false" />
        <entry key="FindComparatorProblems" value="true" />
        <entry key="FindDeadLocalStores" value="true" />
        <entry key="FindDoubleCheck" value="true" />
        <entry key="FindEmptySynchronizedBlock" value="true" />
        <entry key="FindFieldSelfAssignment" value="true" />
        <entry key="FindFinalizeInvocations" value="true" />
        <entry key="FindFloatEquality" value="true" />
        <entry key="FindFloatMath" value="false" />
        <entry key="FindHEmismatch" value="true" />
        <entry key="FindInconsistentSync2" value="true" />
        <entry key="FindJSR166LockMonitorenter" value="true" />
        <entry key="FindLocalSelfAssignment2" value="true" />
        <entry key="FindMaskedFields" value="true" />
        <entry key="FindMismatchedWaitOrNotify" value="true" />
        <entry key="FindNakedNotify" value="true" />
        <entry key="FindNoSideEffectMethods" value="true" />
        <entry key="FindNonSerializableStoreIntoSession" value="false" />
        <entry key="FindNonSerializableValuePassedToWriteObject" value="false" />
        <entry key="FindNonShortCircuit" value="true" />
        <entry key="FindNullDeref" value="true" />
        <entry key="FindNullDerefsInvolvingNonShortCircuitEvaluation" value="true" />
        <entry key="FindOpenStream" value="true" />
        <entry key="FindPuzzlers" value="true" />
        <entry key="FindRefComparison" value="true" />
        <entry key="FindReturnRef" value="true" />
        <entry key="FindRoughConstants" value="true" />
        <entry key="FindRunInvocations" value="true" />
        <entry key="FindSelfComparison" value="true" />
        <entry key="FindSelfComparison2" value="true" />
        <entry key="FindSleepWithLockHeld" value="true" />
        <entry key="FindSpinLoop" value="true" />
        <entry key="FindSqlInjection" value="true" />
        <entry key="FindTwoLockWait" value="true" />
        <entry key="FindUncalledPrivateMethods" value="true" />
        <entry key="FindUnconditionalWait" value="true" />
        <entry key="FindUninitializedGet" value="true" />
        <entry key="FindUnrelatedTypesInGenericContainer" value="true" />
        <entry key="FindUnreleasedLock" value="true" />
        <entry key="FindUnsatisfiedObligation" value="true" />
        <entry key="FindUnsyncGet" value="true" />
        <entry key="FindUseOfNonSerializableValue" value="true" />
        <entry key="FindUselessControlFlow" value="true" />
        <entry key="FindUselessObjects" value="true" />
        <entry key="FormatStringChecker" value="true" />
        <entry key="FunctionsThatMightBeMistakenForProcedures" value="true" />
        <entry key="HugeSharedStringConstants" value="true" />
        <entry key="IDivResultCastToDouble" value="true" />
        <entry key="IncompatMask" value="true" />
        <entry key="InconsistentAnnotations" value="true" />
        <entry key="InefficientIndexOf" value="false" />
        <entry key="InefficientInitializationInsideLoop" value="false" />
        <entry key="InefficientMemberAccess" value="false" />
        <entry key="InefficientToArray" value="false" />
        <entry key="InfiniteLoop" value="true" />
        <entry key="InfiniteRecursiveLoop" value="true" />
        <entry key="InheritanceUnsafeGetResource" value="true" />
        <entry key="InitializationChain" value="true" />
        <entry key="InitializeNonnullFieldsInConstructor" value="true" />
        <entry key="InstantiateStaticClass" value="true" />
        <entry key="IntCast2LongAsInstant" value="true" />
        <entry key="InvalidJUnitTest" value="true" />
        <entry key="IteratorIdioms" value="true" />
        <entry key="LazyInit" value="true" />
        <entry key="LoadOfKnownNullValue" value="true" />
        <entry key="LostLoggerDueToWeakReference" value="true" />
        <entry key="MethodReturnCheck" value="true" />
        <entry key="Methods" value="true" />
        <entry key="MultithreadedInstanceAccess" value="true" />
        <entry key="MutableEnum" value="true" />
        <entry key="MutableLock" value="true" />
        <entry key="MutableStaticFields" value="true" />
        <entry key="Naming" value="true" />
        <entry key="Noise" value="false" />
        <entry key="NoiseNullDeref" value="false" />
        <entry key="NoteAnnotationRetention" value="true" />
        <entry key="NoteCheckReturnValueAnnotations" value="true" />
        <entry key="NoteDirectlyRelevantTypeQualifiers" value="true" />
        <entry key="NoteJCIPAnnotation" value="true" />
        <entry key="NoteNonNullAnnotations" value="false" />
        <entry key="NoteNonnullReturnValues" value="false" />
        <entry key="NoteSuppressedWarnings" value="true" />
        <entry key="NoteUnconditionalParamDerefs" value="true" />
        <entry key="NumberConstructor" value="true" />
        <entry key="OptionalReturnNull" value="true" />
        <entry key="OverridingEqualsNotSymmetrical" value="true" />
        <entry key="PreferZeroLengthArrays" value="true" />
        <entry key="PublicSemaphores" value="false" />
        <entry key="QuestionableBooleanAssignment" value="true" />
        <entry key="ReadOfInstanceFieldInMethodInvokedByConstructorInSuperclass" value="true" />
        <entry key="ReadReturnShouldBeChecked" value="true" />
        <entry key="RedundantConditions" value="true" />
        <entry key="RedundantInterfaces" value="true" />
        <entry key="ReflectiveClasses" value="true" />
        <entry key="RepeatedConditionals" value="true" />
        <entry key="ResolveAllReferences" value="false" />
        <entry key="RuntimeExceptionCapture" value="true" />
        <entry key="SerializableIdiom" value="true" />
        <entry key="StartInConstructor" value="true" />
        <entry key="StaticCalendarDetector" value="true" />
        <entry key="StringConcatenation" value="true" />
        <entry key="SuperfluousInstanceOf" value="true" />
        <entry key="SuspiciousThreadInterrupted" value="true" />
        <entry key="SwitchFallthrough" value="true" />
        <entry key="SynchronizationOnSharedBuiltinConstant" value="true" />
        <entry key="SynchronizeAndNullCheckField" value="true" />
        <entry key="SynchronizeOnClassLiteralNotGetClass" value="true" />
        <entry key="SynchronizingOnContentsOfFieldToProtectField" value="true" />
        <entry key="TestASM" value="false" />
        <entry key="TestDataflowAnalysis" value="false" />
        <entry key="TestingGround" value="false" />
        <entry key="TestingGround2" value="false" />
        <entry key="TrainFieldStoreTypes" value="true" />
        <entry key="TrainLongInstantfParams" value="true" />
        <entry key="TrainNonNullAnnotations" value="true" />
        <entry key="TrainUnconditionalDerefParams" value="true" />
        <entry key="URLProblems" value="true" />
        <entry key="UncallableMethodOfAnonymousClass" value="true" />
        <entry key="UnnecessaryMath" value="true" />
        <entry key="UnreadFields" value="true" />
        <entry key="UselessSubclassMethod" value="false" />
        <entry key="VarArgsProblems" value="true" />
        <entry key="VolatileUsage" value="true" />
        <entry key="WaitInLoop" value="true" />
        <entry key="WrongMapIterator" value="true" />
        <entry key="XMLFactoryBypass" value="true" />
      </map>
    </option>
    <option name="_reportCategories">
      <map>
        <entry key="BAD_PRACTICE" value="true" />
        <entry key="CORRECTNESS" value="true" />
        <entry key="EXPERIMENTAL" value="true" />
        <entry key="I18N" value="true" />
        <entry key="MALICIOUS_CODE" value="true" />
        <entry key="MT_CORRECTNESS" value="true" />
        <entry key="PERFORMANCE" value="true" />
        <entry key="SECURITY" value="true" />
        <entry key="STYLE" value="true" />
      </map>
    </option>
  </component>
</module>

+ 4 - 3
hos-arbiter/src/main/java/com/yihu/hos/arbiter/services/BrokerServerService.java

@ -55,10 +55,11 @@ public class BrokerServerService {
        update.set("port", brokerServer.getPort());
        update.set("updateTime", brokerServer.getUpdateTime());
        update.set("enable", brokerServer.isEnable());
        for (BrokerServer.ServiceFlow serviceFlow : brokerServer.getServiceFlows()) {
            update.addToSet("serviceFlows", serviceFlow);
        if (brokerServer.getServiceFlows()!=null) {
            for (BrokerServer.ServiceFlow serviceFlow : brokerServer.getServiceFlows()) {
                update.addToSet("serviceFlows", serviceFlow);
            }
        }
        WriteResult writeResult = mongoOperations.upsert(query, update, BrokerServer.class);
        if (writeResult.isUpdateOfExisting()) {
            //避免Broker重启的情况

+ 8 - 2
hos-arbiter/src/main/resources/application.yml

@ -26,7 +26,10 @@ arbiter:
      period: 10000
  central:
    url: http://127.0.0.1:10135
  terminal:
    url: http://127.0.0.1:10135
  tenant:
    name: jkzl
---
spring:
  profiles: test
@ -47,7 +50,10 @@ arbiter:
      period: 10000
  central:
    url: http://127.0.0.1:10135
  terminal:
    url: http://127.0.0.1:10135
  tenant:
    name: jkzl
---
spring:
  profiles: prod

+ 40 - 16
hos-broker/src/main/java/com/yihu/hos/broker/services/camel/ESBCamelService.java

@ -1,7 +1,10 @@
package com.yihu.hos.broker.services.camel;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Filters;
import com.mongodb.client.result.DeleteResult;
import com.yihu.hos.broker.configurations.MongoConfiguration;
import com.yihu.hos.core.constants.CoreConstant;
import com.yihu.hos.core.datatype.ClassFileUtil;
@ -13,6 +16,7 @@ import com.yihu.hos.web.framework.model.bo.ServiceFlow;
import com.yihu.hos.web.framework.util.GridFSUtil;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import org.bson.Document;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -45,6 +49,8 @@ public class ESBCamelService {
    @Autowired
    private MongoConfiguration mongoConfig;
    private String dbName = "upload";
    private String serviceFlow = "serviceFlow";
    private String configuration = "configuration";
    @Autowired
    private ObjectMapper objectMapper;
@ -148,12 +154,17 @@ public class ESBCamelService {
            if (serviceFlowValid.is()) return Result.error("必要的入参数据不正确,请检查!");
            ServiceFlow serviceFlow = serviceFlowValid.getServiceFlow();
            ServiceFlow.HandleFile handleFile = serviceFlowValid.getHandleFile();
            String routeCode = serviceFlow.getRouteCode();
            SystemCamelContext.getContext().stopRoute(routeCode);
            SystemCamelContext.getContext().removeRoute(routeCode);
            this.deleteClassFile(handleFile);  //清理文件?
            ArrayList<ServiceFlow.HandleFile> handleFiles =  serviceFlowValid.getHandleFiles();
            if (handleFiles!=null) {
                for (ServiceFlow.HandleFile handleFile : handleFiles) {
                    String routeCode = serviceFlow.getRouteCode();
                    SystemCamelContext.getContext().stopRoute(routeCode);
                    SystemCamelContext.getContext().removeRoute(routeCode);
                    this.deleteClassFile(handleFile);  //清理文件?
                    this.deleteServiceFlow(handleFile.getRouteCode());//删除mongo中serviceFlow信息
                    //TODO 删除mongodb中文件
                }
            }
            return Result.success("服务流程删除成功!");
        } catch (Exception e) {
            return Result.error("服务流程删除失败!");
@ -254,27 +265,40 @@ public class ESBCamelService {
            //编译成功后将class文件上传至mongodb;文件名为类名+ routeCode
            String packagePath = StringUtil.replaceStrAll(handleFile.getPackageName(), ".", "/");
            String classPath =  resource.getPath()+ packagePath + "/" + handleFile.getClassName() + ClassFileUtil.CLASS_FILE;
            String s = GridFSUtil.uploadFile(dbName, classPath, handleFile.getClassName()+handleFile.getRouteCode() + ClassFileUtil.CLASS_FILE);
            System.out.println("新生成Class文件:"+s);
            GridFSUtil.uploadFile(dbName, classPath, handleFile.getClassName()+handleFile.getRouteCode() + ClassFileUtil.CLASS_FILE);
        }
        return succ;
    }
    private void deleteClassFile(ServiceFlow.HandleFile handleFile) {
        String className = SystemCamelContext.getClassMapping(handleFile.getRouteCode(), handleFile.getClassName(), handleFile.getUsage());
        if (StringUtil.isEmpty(className)) {
            return;
        }
//        String className = SystemCamelContext.getClassMapping(handleFile.getRouteCode(), handleFile.getClassName(), handleFile.getUsage());
//        if (StringUtil.isEmpty(className)) {
//            return;
//        }
        String packagePath = StringUtil.replaceStrAll(handleFile.getPackageName(), ".", "/");
        String classPath = ClassLoader.getSystemResource("").getPath() + "/" + packagePath + "/" + className + ".class";
        String javaPath = ClassLoader.getSystemResource("").getPath() + "/" + packagePath + "/" + className + ".java";
        String classPath = ClassLoader.getSystemResource("").getPath() + "/" + packagePath + "/" + handleFile.getClassName() + ".class";
        String javaPath = ClassLoader.getSystemResource("").getPath() + "/" + packagePath + "/" + handleFile.getClassName() + ".java";
        ClassFileUtil.deleteClassfile(classPath);
        ClassFileUtil.deleteClassfile(javaPath);
        // 完成
        logger.info("===================" + handleFile.getPackageName() + CoreConstant.DOT + className + ".class 删除过程结束");
        logger.info("===================" + handleFile.getPackageName() + CoreConstant.DOT + handleFile.getClassName() + ".class 删除过程结束");
    }
    /**
     *  删除 serviceFlow记录
     * @param routeCode
     */
    private void deleteServiceFlow(String routeCode){
        try {
            MongoDatabase db = mongoConfig.mongoClient().getDatabase(configuration);
            MongoCollection<Document> collection = db.getCollection(serviceFlow);
            DeleteResult result = collection.deleteMany(Filters.eq("routeCode",routeCode));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    private void addRouter(ArrayList<ServiceFlow.HandleFile> handleFiles) throws Exception {

+ 6 - 6
hos-core/src/main/java/com/yihu/hos/core/datatype/ClassFileUtil.java

@ -13,8 +13,7 @@ public class ClassFileUtil {
    public static final String CLASS_FILE = ".class";
    public static final Logger logger = LoggerFactory.getLogger(ClassFileUtil.CLASS_FILE);
    public static final String JAVA_FILE = ".java";
    private static String packagePathTemplate = System.getProperty("user.dir")//获取到项目的根路径
            + "/hos-broker/src/main/java/";
    /**
     * 工具类不允许进行实例化
     */
@ -91,11 +90,12 @@ public class ClassFileUtil {
    public static Boolean deleteClassfile(String classPath) {
        // 开始输出文件内容
        try {
            boolean succ = false;
            File file = new File(classPath);
            if (file.isFile() && file.exists()) {
                file.delete();
                succ = file.delete();
            }
            return true;
            return succ;
        } catch (Exception e) {
            return false;
        }
@ -133,7 +133,7 @@ public class ClassFileUtil {
    public static FileOutputStream createFile(URL url, String packageName, String className, String fileType) {
        try {
            String packagePath = StringUtil.replaceStrAll(packageName, ".", "/");
            File packageFile = new File(packagePathTemplate + "/" + packagePath);
            File packageFile = new File(url.getPath() + "/" + packagePath);
            if (!packageFile.exists()) {
                boolean mkdirs = packageFile.mkdirs();
                if (!mkdirs) {
@ -163,6 +163,6 @@ public class ClassFileUtil {
    public static String getFilePath(URL url, String packageName, String className, String fileType) {
        String packagePath = StringUtil.replaceStrAll(packageName, ".", "/");
        return packagePathTemplate + packagePath + "/" + className + fileType;
        return url.getPath() + packagePath + "/" + className + fileType;
    }
}

+ 3 - 3
hos-rest/src/main/resources/spring/applicationContext.xml

@ -24,9 +24,9 @@
    <bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://192.168.1.220:3306/esb?useUnicode=true&amp;characterEncoding=UTF-8"/>
        <property name="username" value="hos2"/>
        <property name="password" value="hos2"/>
        <property name="url" value="jdbc:mysql://192.168.1.220:8066/hos1?useUnicode=true&amp;characterEncoding=UTF-8"/>
        <property name="username" value="hos"/>
        <property name="password" value="123456"/>
        <property name="initialSize" value="1"/>
        <property name="maxTotal" value="100"/>
        <property name="maxIdle" value="50"/>

+ 15 - 26
src/main/java/com/yihu/hos/system/service/FlowManager.java

@ -186,28 +186,6 @@ public class FlowManager implements IFlowManage {
            serviceFlowList.add(serviceFlow);
        }
        List<SystemServiceFlow> javaFlowList = flowDao.getFlowList(ServiceFlowConstant.JAVA);
        for (SystemServiceFlow systemServiceFlow : javaFlowList) {
            ServiceFlow serviceFlow = new ServiceFlow();
            serviceFlow.setRouteCode(systemServiceFlow.getCode());
            List<SystemServiceFlowTemp> tempList = flowTempDao.getFlowTempByFlowId(systemServiceFlow.getId());
            ArrayList<ServiceFlow.HandleFile> handleFileList = new ArrayList<>();
            for (SystemServiceFlowTemp flowTemp : tempList) {
                ServiceFlow.HandleFile handleFile = new ServiceFlow.HandleFile();
                handleFile.setFileType(ServiceFlowConstant.JAVA);
                handleFile.setClassName(flowTemp.getClassName());
                handleFile.setPackageName(flowTemp.getPackageName());
                handleFile.setFilePath(flowTemp.getClassPath());
                handleFile.setUsage(flowTemp.getType());
                handleFileList.add(handleFile);
            }
            serviceFlow.setHandleFiles(handleFileList);
            serviceFlowList.add(serviceFlow);
        }
        return serviceFlowList;
    }
@ -346,18 +324,29 @@ public class FlowManager implements IFlowManage {
    public Result deleteFlow(Integer id) throws Exception {
        SystemServiceFlow flow = flowDao.getEntity(SystemServiceFlow.class, id);
        if (flow == null){ return Result.error("删除流程失败");}
        ArrayList<ServiceFlow.HandleFile>  handleFiles =new ArrayList<>();
        List<SystemServiceFlowClass> flowClassList = flowClassDao.getFlowClassByFlowId(id);
        if (ServiceFlowConstant.JAVA.equals(flow.getFileType())) {
            flowTempDao.deleteFlowTempByFlowId(id);
        } else {
            for (SystemServiceFlowClass flowClass : flowClassList) {
                flowClassDao.deleteEntity(flowClass);
            }
            ServiceFlow serviceFlow = new ServiceFlow();
            serviceFlow.setRouteCode(flow.getCode());
            serviceFlow.setFlowType(ServiceFlowConstant.CLASS);
            for (SystemServiceFlowClass flowClass : flowClassList) {
                ServiceFlow.HandleFile handleFile = new ServiceFlow.HandleFile();
                handleFile.setRouteCode(flow.getCode());
                handleFile.setFileType(ServiceFlowConstant.JAVA);
                handleFile.setPackageName(flowClass.getPackageName());
                handleFile.setClassName(flowClass.getClassName());
                handleFile.setFilePath(flowClass.getClassPath());
                handleFile.setUsage(flowClass.getType());
                handleFiles.add(handleFile);
                flowClassDao.deleteEntity(flowClass);
            }
            serviceFlow.setHandleFiles(handleFiles);
            serviceFlowEventService.serviceFlowDelete(serviceFlow);
        }
        flowDao.deleteEntity(flow);