Bladeren bron

后台任务修改

9060 9 maanden geleden
bovenliggende
commit
6aca01e2e4

+ 4 - 4
deployed_metas/com/kingdee/eas/custom/shuiyou/incomeTax/TaxSpeAddDedReportExFacade.facade

@@ -20,7 +20,7 @@
             <innerID>8f35e5f2-4d16-471e-b12e-bf40f58d2657</innerID>
             <accessLevel>public</accessLevel>
             <subClassingMode>normal</subClassingMode>
-            <returnValueType>java.util.List</returnValueType>
+            <returnValueType>com.kingdee.eas.custom.shuiyou.task.MessageResult</returnValueType>
             <metadataRef />
             <transactionAttribute>Supports</transactionAttribute>
             <userDefined>true</userDefined>
@@ -100,9 +100,9 @@
         </rs>
         <rs key="facade[com.kingdee.eas.custom.shuiyou.incomeTax.TaxSpeAddDedReportExFacade].methods.method[report].description">
             <lang locale="en_US" value="null" />
-            <lang locale="zh_CN" value="[description][%description][invokedemo][%invokedemo][returndesc]任务ID集合[%returndesc]" />
-            <lang locale="zh_HK" value="[description][%description][invokedemo][%invokedemo][returndesc]任務ID集合[%returndesc]" />
-            <lang locale="zh_TW" value="[description][%description][invokedemo][%invokedemo][returndesc]任務ID集合[%returndesc]" />
+            <lang locale="zh_CN" value="[description][%description][invokedemo][%invokedemo][returndesc]结果[%returndesc]" />
+            <lang locale="zh_HK" value="[description][%description][invokedemo][%invokedemo][returndesc]結果[%returndesc]" />
+            <lang locale="zh_TW" value="[description][%description][invokedemo][%invokedemo][returndesc]結果[%returndesc]" />
         </rs>
         <rs key="facade[com.kingdee.eas.custom.shuiyou.incomeTax.TaxSpeAddDedReportExFacade].methods.method[report].parameters.parameter[paramMap].alias">
             <lang locale="en_US" value="null" />

+ 5 - 5
src/com/kingdee/eas/custom/shuiyou/incomeTax/AbstractTaxSpeAddDedReportExFacadeControllerBean.java

@@ -20,8 +20,8 @@ import com.kingdee.eas.framework.LineResult;
 import com.kingdee.eas.framework.exception.EASMultiException;
 import com.kingdee.bos.dao.ormapping.ObjectUuidPK;
 
+import com.kingdee.eas.custom.shuiyou.task.MessageResult;
 import java.util.Map;
-import java.util.List;
 import java.lang.String;
 
 
@@ -37,24 +37,24 @@ public abstract class AbstractTaxSpeAddDedReportExFacadeControllerBean extends A
         return new BOSObjectType("83A301BC");
     }
 
-    public List report(Context ctx, Map paramMap) throws BOSException
+    public MessageResult report(Context ctx, Map paramMap) throws BOSException
     {
         try {
             ServiceContext svcCtx = createServiceContext(new MetaDataPK("8f35e5f2-4d16-471e-b12e-bf40f58d2657"), new Object[]{ctx, paramMap});
             invokeServiceBefore(svcCtx);
             if(!svcCtx.invokeBreak()) {
-            List retValue = (List)_report(ctx, paramMap);
+            MessageResult retValue = (MessageResult)_report(ctx, paramMap);
             svcCtx.setMethodReturnValue(retValue);
             }
             invokeServiceAfter(svcCtx);
-            return (List)svcCtx.getMethodReturnValue();
+            return (MessageResult)svcCtx.getMethodReturnValue();
         } catch (BOSException ex) {
             throw ex;
         } finally {
             super.cleanUpServiceState();
         }
     }
-    protected List _report(Context ctx, Map paramMap) throws BOSException
+    protected MessageResult _report(Context ctx, Map paramMap) throws BOSException
     {    	
         return null;
     }

+ 0 - 2
src/com/kingdee/eas/custom/shuiyou/incomeTax/ITaxDirectDeductionExFacade.java

@@ -8,11 +8,9 @@ import com.kingdee.bos.Context;
 
 import com.kingdee.shr.compensation.app.tax.TaxUnitInfo;
 import com.kingdee.bos.Context;
-
 import com.kingdee.bos.BOSException;
 import java.util.Map;
 import java.util.List;
-
 import java.lang.String;
 import com.kingdee.bos.framework.*;
 import com.kingdee.bos.util.*;

+ 2 - 2
src/com/kingdee/eas/custom/shuiyou/incomeTax/ITaxSpeAddDedReportExFacade.java

@@ -7,15 +7,15 @@ import com.kingdee.bos.util.*;
 import com.kingdee.bos.Context;
 
 import com.kingdee.bos.Context;
+import com.kingdee.eas.custom.shuiyou.task.MessageResult;
 import com.kingdee.bos.BOSException;
 import java.util.Map;
-import java.util.List;
 import java.lang.String;
 import com.kingdee.bos.framework.*;
 import com.kingdee.bos.util.*;
 
 public interface ITaxSpeAddDedReportExFacade extends IBizCtrl
 {
-    public List report(Map paramMap) throws BOSException;
+    public MessageResult report(Map paramMap) throws BOSException;
     public void save(String taskId, String result) throws BOSException;
 }

+ 3 - 3
src/com/kingdee/eas/custom/shuiyou/incomeTax/TaxSpeAddDedReportExFacade.java

@@ -8,9 +8,9 @@ import com.kingdee.bos.orm.template.ORMObject;
 
 import com.kingdee.eas.custom.shuiyou.incomeTax.*;
 import com.kingdee.bos.Context;
+import com.kingdee.eas.custom.shuiyou.task.MessageResult;
 import com.kingdee.bos.BOSException;
 import java.util.Map;
-import java.util.List;
 import java.lang.String;
 import com.kingdee.bos.framework.*;
 import com.kingdee.bos.util.*;
@@ -36,11 +36,11 @@ public class TaxSpeAddDedReportExFacade extends AbstractBizCtrl implements ITaxS
         return (TaxSpeAddDedReportExFacadeController)getBizController();
     }
     /**
-     *[description][%description][invokedemo][%invokedemo][returndesc]ÈÎÎñID¼¯ºÏ[%returndesc]-User defined method
+     *[description][%description][invokedemo][%invokedemo][returndesc]½á¹û[%returndesc]-User defined method
      *@param paramMap ²ÎÊý
      *@return
      */
-    public List report(Map paramMap) throws BOSException
+    public MessageResult report(Map paramMap) throws BOSException
     {
         try {
             return getController().report(getContext(), paramMap);

+ 2 - 2
src/com/kingdee/eas/custom/shuiyou/incomeTax/TaxSpeAddDedReportExFacadeController.java

@@ -7,9 +7,9 @@ import com.kingdee.bos.util.*;
 import com.kingdee.bos.Context;
 
 import com.kingdee.bos.Context;
+import com.kingdee.eas.custom.shuiyou.task.MessageResult;
 import com.kingdee.bos.BOSException;
 import java.util.Map;
-import java.util.List;
 import java.lang.String;
 import com.kingdee.bos.framework.*;
 import com.kingdee.bos.util.*;
@@ -19,6 +19,6 @@ import com.kingdee.bos.framework.ejb.BizController;
 
 public interface TaxSpeAddDedReportExFacadeController extends BizController
 {
-    public List report(Context ctx, Map paramMap) throws BOSException, RemoteException;
+    public MessageResult report(Context ctx, Map paramMap) throws BOSException, RemoteException;
     public void save(Context ctx, String taskId, String result) throws BOSException, RemoteException;
 }

+ 33 - 42
src/com/kingdee/eas/custom/shuiyou/incomeTax/TaxSpeAddDedReportExFacadeControllerBean.java

@@ -7,10 +7,11 @@ import com.kingdee.bos.dao.ormapping.ObjectUuidPK;
 import com.kingdee.bos.util.BOSUuid;
 import com.kingdee.eas.basedata.person.Genders;
 import com.kingdee.eas.basedata.person.PersonInfo;
-import com.kingdee.eas.custom.shuiyou.RequestTypeEnum;
+
 import com.kingdee.eas.custom.shuiyou.six.osf.vo.SixTPersonInfo;
 import com.kingdee.eas.custom.shuiyou.six.osf.vo.SpecialAmountInfo;
-import com.kingdee.eas.custom.shuiyou.task.TaskCatalogEnum;
+
+import com.kingdee.eas.custom.shuiyou.task.MessageResult;
 import com.kingdee.eas.custom.shuiyou.task.TaskFactory;
 import com.kingdee.eas.custom.shuiyou.task.TaskInfo;
 import com.kingdee.eas.custom.shuiyou.uitls.ISYUtilsFacade;
@@ -26,21 +27,9 @@ import com.kingdee.shr.compensation.app.taxCal.TaxCalInitDetailStateEnum;
 import com.kingdee.shr.compensation.util.Base64Utils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.log4j.Logger;
-import javax.ejb.*;
-import java.rmi.RemoteException;
+
 import com.kingdee.bos.*;
-import com.kingdee.bos.util.BOSObjectType;
-import com.kingdee.bos.metadata.IMetaDataPK;
-import com.kingdee.bos.metadata.rule.RuleExecutor;
-import com.kingdee.bos.metadata.MetaDataPK;
-//import com.kingdee.bos.metadata.entity.EntityViewInfo;
-import com.kingdee.bos.framework.ejb.AbstractEntityControllerBean;
-import com.kingdee.bos.framework.ejb.AbstractBizControllerBean;
-//import com.kingdee.bos.dao.IObjectPK;
-import com.kingdee.bos.dao.IObjectValue;
-import com.kingdee.bos.dao.IObjectCollection;
-import com.kingdee.bos.service.ServiceContext;
-import com.kingdee.bos.service.IServiceContext;
+
 
 import java.text.SimpleDateFormat;
 import java.util.*;
@@ -70,13 +59,14 @@ public class TaxSpeAddDedReportExFacadeControllerBean extends AbstractTaxSpeAddD
         }
     }
     @Override
-    protected List _report(Context ctx, Map paramMap) throws BOSException {
+    protected MessageResult _report(Context ctx, Map paramMap) throws BOSException {
 
         logger.error("_report:"+paramMap);
         if (this.checkParams(paramMap)) {
             throw new BOSException("专项附加扣除申报服务参数缺失,请检查参数");
         } else {
-
+            //前置任务
+            String RELAYTASK = (String)paramMap.get("RELAYTASK");
             String taxUnitID = (String)paramMap.get("TAXUNITID");
             String initIds = (String)paramMap.get("initIds");
             String period = (String)paramMap.get("PERIOD");
@@ -201,30 +191,31 @@ public class TaxSpeAddDedReportExFacadeControllerBean extends AbstractTaxSpeAddD
                                     paramMap.put("data", dataMap);
                                     Map<String,Object> config = facade.getConfig();
                                     String url = config.get("ip")+ URLConfigEnum.QUERYPREDEDUCT_VALUE;
-                                    String tastId = facade.addTask(url, RequestTypeEnum.POST, JSONUtil.toJsonStr(specialAmountInfo),"querySpecialAmountService", TaskCatalogEnum.TAXSPEADDDEDREPORT,null);
-
-                                    TaskInfo taxCalTaskInfo = TaskFactory.getLocalInstance(ctx).getTaskInfo(new ObjectUuidPK(tastId));
-
-                                    int i = 0;
-
-                                    for(int size = recordCollection.size(); i < size; ++i) {
-                                        TaxSpeAddDedRecordInfo taxSpeAddDedRecordInfo = (TaxSpeAddDedRecordInfo)recordCollection.get(i);
-                                        taxSpeAddDedRecordInfo.put("task",taxCalTaskInfo);
-                                    }
-
-                                    Object[] objects;
-                                    for(Iterator i$ = updateParamList.iterator(); i$.hasNext(); objects[0] = tastId) {
-                                        objects = (Object[])i$.next();
-                                    }
-
-                                    TaxSpeAddDedRecordFactory.getLocalInstance(ctx).saveBatchData(recordCollection);
-                                    if (updateParamList.size() > 0) {
-                                        DbUtil.executeBatch(ctx, updateRecordSQL, updateParamList);
-                                    }
-
-                                    List<IObjectPK> arrayList = new ArrayList();
-                                    arrayList.add(new ObjectUuidPK(tastId));
-                                    return arrayList;
+                                    String result = facade.post(url, JSONUtil.toJsonStr(specialAmountInfo));
+//                                    if
+//                                    facade.addTask("GetQuerySpecialAmountFeedback",);
+//                                    TaskInfo taxCalTaskInfo = TaskFactory.getLocalInstance(ctx).getTaskInfo(new ObjectUuidPK(tastId));
+//
+//                                    int i = 0;
+//
+//                                    for(int size = recordCollection.size(); i < size; ++i) {
+//                                        TaxSpeAddDedRecordInfo taxSpeAddDedRecordInfo = (TaxSpeAddDedRecordInfo)recordCollection.get(i);
+//                                        taxSpeAddDedRecordInfo.put("task",taxCalTaskInfo);
+//                                    }
+//
+//                                    Object[] objects;
+//                                    for(Iterator i$ = updateParamList.iterator(); i$.hasNext(); objects[0] = tastId) {
+//                                        objects = (Object[])i$.next();
+//                                    }
+//
+//                                    TaxSpeAddDedRecordFactory.getLocalInstance(ctx).saveBatchData(recordCollection);
+//                                    if (updateParamList.size() > 0) {
+//                                        DbUtil.executeBatch(ctx, updateRecordSQL, updateParamList);
+//                                    }
+//
+//                                    List<IObjectPK> arrayList = new ArrayList();
+//                                    arrayList.add(new ObjectUuidPK(tastId));
+                                    return MessageResult.SUCCESS();
                                 }
 
                                 String recordId = rowSet.getString("RECORDID");

+ 15 - 15
src/com/kingdee/eas/custom/shuiyou/task/TaskExecuteFacadeControllerBean.java

@@ -69,23 +69,23 @@ public class TaskExecuteFacadeControllerBean extends AbstractTaskExecuteFacadeCo
                 viewInfo.setSelector(sc);
                 FilterInfo filterInfo = new FilterInfo();
                 filterInfo.getFilterItems().add(
-                        new FilterItemInfo("requestState",
-                                RequestStateEnum.NOTSTARTED_VALUE, CompareType.EQUALS));
+                        new FilterItemInfo("state",
+                                TaskStateEnum.STANDBY_VALUE, CompareType.EQUALS));
                 filterInfo.getFilterItems().add(
                         new FilterItemInfo("state",
                                 TaskStateEnum.DELETE_VALUE, CompareType.NOTEQUALS));
-                FilterInfo filterPre1Info = new FilterInfo();
-                filterPre1Info.getFilterItems().add(
-                        new FilterItemInfo("taskPre.requestState",
-                                RequestStateEnum.SUCCESSFUL_VALUE, CompareType.EQUALS));
-                filterPre1Info.getFilterItems().add(
-                        new FilterItemInfo("taskPre.state",
-                                TaskStateEnum.FINISHED_VALUE, CompareType.EQUALS));
-                FilterInfo filterPre2Info = new FilterInfo();
-                filterPre2Info.getFilterItems().add(
-                        new FilterItemInfo("taskPre.id is null"));
-                filterPre1Info.mergeFilter(filterPre2Info,"or");
-                filterInfo.mergeFilter(filterPre1Info,"and");
+//                FilterInfo filterPre1Info = new FilterInfo();
+//                filterPre1Info.getFilterItems().add(
+//                        new FilterItemInfo("taskPre.requestState",
+//                                RequestStateEnum.SUCCESSFUL_VALUE, CompareType.EQUALS));
+//                filterPre1Info.getFilterItems().add(
+//                        new FilterItemInfo("taskPre.state",
+//                                TaskStateEnum.FINISHED_VALUE, CompareType.EQUALS));
+//                FilterInfo filterPre2Info = new FilterInfo();
+//                filterPre2Info.getFilterItems().add(
+//                        new FilterItemInfo("taskPre.id is null"));
+//                filterPre1Info.mergeFilter(filterPre2Info,"or");
+//                filterInfo.mergeFilter(filterPre1Info,"and");
                 viewInfo.setFilter(filterInfo);
                 TaskCollection taskCollection = iTask.getTaskCollection(viewInfo);
                 //更新状态为进行中
@@ -97,7 +97,7 @@ public class TaskExecuteFacadeControllerBean extends AbstractTaskExecuteFacadeCo
                     TaskInfo taskInfo = taskCollection.get(i);
 
                     taskInfo.setRequestState(RequestStateEnum.Ongoing);
-                    taskInfo.setState(TaskStateEnum.RUNNING);
+                    taskInfo.setState(TaskStateEnum.WAITTING);
                     iTask.updatePartial(taskInfo,scUp);
                 }
                 //添加任务阻塞

+ 38 - 2
src/com/kingdee/eas/custom/shuiyou/task/TaskInfo.java

@@ -10,6 +10,9 @@ import com.google.common.collect.Maps;
 import com.kingdee.bos.BOSException;
 import com.kingdee.bos.Context;
 
+import com.kingdee.bos.dao.ormapping.ObjectUuidPK;
+import com.kingdee.bos.metadata.entity.*;
+import com.kingdee.bos.metadata.query.util.CompareType;
 import com.kingdee.eas.common.EASBizException;
 import com.kingdee.eas.custom.shuiyou.RequestStateEnum;
 import com.kingdee.eas.custom.shuiyou.RequestTypeEnum;
@@ -91,8 +94,40 @@ public class TaskInfo extends AbstractTaskInfo implements Serializable, Task
     public void execute() {
         this.i=this.i+1;
         try {
-            //设置执行中
-            ISYUtilsFacade syu = SYUtilsFacadeFactory.getLocalInstance(this.ctx);
+            //更新为执行中
+            if (TaskStateEnum.WAITTING.equals(this.getState())){
+                this.setState(TaskStateEnum.RUNNING);
+                TaskFactory.getLocalInstance(ctx).save(this);
+            }
+            //校验是否执行执行中
+            TaskInfo taskPre = this.getTaskPre();
+            //检查前置任务
+            if(null!=taskPre&&null!=taskPre.getId()) {
+                ITask iTask = TaskFactory.getLocalInstance(ctx);
+                SelectorItemCollection sc = new SelectorItemCollection();
+                sc.add(new SelectorItemInfo("id"));
+                sc.add(new SelectorItemInfo("state"));
+                taskPre = iTask.getTaskInfo(new ObjectUuidPK(this.getId()), sc);
+                TaskStateEnum taskStateEnum = taskPre.getState();
+                if (TaskStateEnum.FAIDED.equals(taskStateEnum)) {
+                    //前置任务执行失败后续任务标记失败
+                    this.setState(TaskStateEnum.FAIDED);
+                    this.setExecutionStatus(ExecutionStatusEnum.failed);
+                    //移除任务
+                    this.stop();
+                }
+                if (TaskStateEnum.DELETE.equals(taskStateEnum)) {
+                    //前置任务执行删除后续任务标记删除
+                    this.setState(TaskStateEnum.DELETE);
+                    this.setExecutionStatus(ExecutionStatusEnum.failed);
+                    //移除任务
+                    this.stop();
+                }
+                if (!TaskStateEnum.FINISHED.equals(taskStateEnum)) {
+                    //前置任务未执行完成等待下次执行
+                    return;
+                }
+            }
             Map<String,Object> paramOsf = Maps.newHashMap();
             Optional<TaskRequestParamInfo> requestParamInfo = Optional.ofNullable(this.getRequestParam());
             String param = requestParamInfo.orElse((new TaskRequestParamInfo())).getParamContent();
@@ -107,6 +142,7 @@ public class TaskInfo extends AbstractTaskInfo implements Serializable, Task
             this.setCalTime(new Date());
             paramOsf.put("this_taskId",this.getId().toString());
             logger.info("任务:"+this.getId().toString()+",请求地址:"+this.getUrl()+",请求参数:"+param+"。");
+            //调用业务实现
             MessageResult messageResult = this.callBackOSF(paramOsf);
             if(ExecutionStatusEnum.success.equals(messageResult.getStatus())){
                 Optional<TaskRequestResultInfo> resultInfo = Optional.ofNullable(this.getRequestResult());

+ 1 - 1
src/com/kingdee/eas/custom/shuiyou/uitls/ISYUtilsFacade.java

@@ -10,7 +10,7 @@ import com.kingdee.bos.Context;
 import com.kingdee.bos.BOSException;
 import java.util.Map;
 import com.kingdee.eas.custom.shuiyou.interfacelog.LogInfoInfo;
-import com.kingdee.eas.custom.shuiyou.interfaceiog.LogInfoInfo;
+
 import java.lang.String;
 import com.kingdee.eas.custom.shuiyou.task.TaskCatalogEnum;
 import com.kingdee.bos.framework.*;