java110 6 lat temu
rodzic
commit
4d907d777b

+ 2 - 2
Api/src/main/java/com/java110/api/bmo/inspectionTask/IInspectionTaskBMO.java

@@ -22,7 +22,7 @@ public interface IInspectionTaskBMO extends IApiBaseBMO {
      * @param dataFlowContext 数据上下文
      * @return 订单服务能够接受的报文
      */
-    // JSONObject updateInspectionTask(JSONObject paramInJson, DataFlowContext dataFlowContext);
+     JSONObject updateInspectionTask(JSONObject paramInJson, DataFlowContext dataFlowContext);
 
     /**
      * 删除活动
@@ -31,7 +31,7 @@ public interface IInspectionTaskBMO extends IApiBaseBMO {
      * @param dataFlowContext 数据上下文
      * @return 订单服务能够接受的报文
      */
-     //JSONObject deleteInspectionTask(JSONObject paramInJson, DataFlowContext dataFlowContext);
+     JSONObject deleteInspectionTask(JSONObject paramInJson, DataFlowContext dataFlowContext);
 
 
 

+ 13 - 9
Api/src/main/java/com/java110/api/bmo/inspectionTask/impl/InspectionTaskBMOImpl.java

@@ -5,11 +5,16 @@ import com.java110.api.bmo.ApiBaseBMO;
 import com.java110.api.bmo.inspectionTask.IInspectionTaskBMO;
 import com.java110.core.context.DataFlowContext;
 import com.java110.core.smo.inspectionTask.IInspectionTaskInnerServiceSMO;
+import com.java110.dto.inspectionTask.InspectionTaskDto;
 import com.java110.utils.constant.BusinessTypeConstant;
 import com.java110.utils.constant.CommonConstant;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 @Service("inspectionTaskBMOImpl")
 public class InspectionTaskBMOImpl extends ApiBaseBMO implements IInspectionTaskBMO {
 
@@ -46,27 +51,27 @@ public class InspectionTaskBMOImpl extends ApiBaseBMO implements IInspectionTask
      * @param dataFlowContext 数据上下文
      * @return 订单服务能够接受的报文
      */
-   /* public JSONObject updateInspectionTask(JSONObject paramInJson, DataFlowContext dataFlowContext) {
+    public JSONObject updateInspectionTask(JSONObject paramInJson, DataFlowContext dataFlowContext) {
 
         InspectionTaskDto inspectionTaskDto = new InspectionTaskDto();
-        inspectionTaskDto.setInspectionTaskId(paramInJson.getString("inspectionTaskId"));
+        inspectionTaskDto.setTaskId(paramInJson.getString("taskId"));
         inspectionTaskDto.setCommunityId(paramInJson.getString("communityId"));
         List<InspectionTaskDto> inspectionTaskDtos = inspectionTaskInnerServiceSMOImpl.queryInspectionTasks(inspectionTaskDto);
 
-        Assert.listOnlyOne(inspectionTaskDtos, "未找到需要修改的活动 或多条数据");
+        Assert.listOnlyOne(inspectionTaskDtos, "未找到需要修改的巡检任务 或多条数据");
 
 
         JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
-        business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_UPDATE_inspectionTask);
+        business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_UPDATE_INSPECTION_TASK);
         business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ);
         business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
         JSONObject businessInspectionTask = new JSONObject();
-        businessInspectionTask.putAll(activitiesDtos.get(0));
+        businessInspectionTask.putAll(BeanConvertUtil.beanCovertMap(inspectionTaskDtos.get(0)));
         businessInspectionTask.putAll(paramInJson);
         //计算 应收金额
         business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessInspectionTask", businessInspectionTask);
         return business;
-    }*/
+    }
 
 
     /**
@@ -76,11 +81,11 @@ public class InspectionTaskBMOImpl extends ApiBaseBMO implements IInspectionTask
      * @param dataFlowContext 数据上下文
      * @return 订单服务能够接受的报文
      */
-    /*public JSONObject deleteInspectionTask(JSONObject paramInJson, DataFlowContext dataFlowContext) {
+    public JSONObject deleteInspectionTask(JSONObject paramInJson, DataFlowContext dataFlowContext) {
 
 
         JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
-        business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_DELETE_inspectionTask);
+        business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_DELETE_INSPECTION_TASK);
         business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ);
         business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
         JSONObject businessInspectionTask = new JSONObject();
@@ -89,5 +94,4 @@ public class InspectionTaskBMOImpl extends ApiBaseBMO implements IInspectionTask
         business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessInspectionTask", businessInspectionTask);
         return business;
     }
-*/
 }

+ 56 - 2
Api/src/main/java/com/java110/api/listener/inspectionTaskDetail/UpdateInspectionTaskDetailListener.java

@@ -2,10 +2,16 @@ package com.java110.api.listener.inspectionTaskDetail;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.java110.api.bmo.inspectionTask.IInspectionTaskBMO;
 import com.java110.api.bmo.inspectionTaskDetail.IInspectionTaskDetailBMO;
 import com.java110.api.listener.AbstractServiceApiListener;
 import com.java110.core.annotation.Java110Listener;
 import com.java110.core.context.DataFlowContext;
+import com.java110.core.smo.inspectionPoint.IInspectionInnerServiceSMO;
+import com.java110.core.smo.inspectionTask.IInspectionTaskInnerServiceSMO;
+import com.java110.core.smo.inspectionTaskDetail.IInspectionTaskDetailInnerServiceSMO;
+import com.java110.dto.inspectionTask.InspectionTaskDto;
+import com.java110.dto.inspectionTaskDetail.InspectionTaskDetailDto;
 import com.java110.entity.center.AppService;
 import com.java110.event.service.api.ServiceDataFlowEvent;
 import com.java110.utils.constant.CommonConstant;
@@ -14,8 +20,11 @@ import com.java110.utils.util.Assert;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpMethod;
+import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
 
+import java.util.List;
+
 
 /**
  * 保存巡检任务明细侦听
@@ -27,10 +36,22 @@ public class UpdateInspectionTaskDetailListener extends AbstractServiceApiListen
     @Autowired
     private IInspectionTaskDetailBMO inspectionTaskDetailBMOImpl;
 
+    @Autowired
+    private IInspectionTaskBMO inspectionTaskBMOImpl;
+
+
+    @Autowired
+    private IInspectionInnerServiceSMO inspectionInnerServiceSMOImpl;
+
+    @Autowired
+    private IInspectionTaskInnerServiceSMO inspectionTaskInnerServiceSMOImpl;
+
+    @Autowired
+    private IInspectionTaskDetailInnerServiceSMO inspectionTaskDetailInnerServiceSMOImpl;
+
     @Override
     protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
 
-        Assert.hasKeyAndValue(reqJson, "taskDetailId", "taskDetailId不能为空");
         Assert.hasKeyAndValue(reqJson, "taskDetailId", "请求报文中未包含taskDetailId");
         Assert.hasKeyAndValue(reqJson, "taskId", "请求报文中未包含taskId");
         Assert.hasKeyAndValue(reqJson, "communityId", "请求报文中未包含communityId");
@@ -52,8 +73,41 @@ public class UpdateInspectionTaskDetailListener extends AbstractServiceApiListen
         //添加单元信息
         businesses.add(inspectionTaskDetailBMOImpl.updateInspectionTaskDetail(reqJson, context));
 
-        ResponseEntity<String> responseEntity = inspectionTaskDetailBMOImpl.callService(context, service.getServiceCode(), businesses);
+        InspectionTaskDto inspectionTaskDto = new InspectionTaskDto();
+        inspectionTaskDto.setTaskId(reqJson.getString("taskId"));
+        inspectionTaskDto.setCommunityId(reqJson.getString("communityId"));
+        inspectionTaskDto.setState("20200405");
+        List<InspectionTaskDto> inspectionTaskDtos = inspectionTaskInnerServiceSMOImpl.queryInspectionTasks(inspectionTaskDto);
 
+        if (inspectionTaskDtos != null && inspectionTaskDtos.size() > 0) {
+            reqJson.put("state", "20200406");
+            businesses.add(inspectionTaskBMOImpl.updateInspectionTask(reqJson, context));
+        }
+        ResponseEntity<String> responseEntity = inspectionTaskDetailBMOImpl.callService(context, service.getServiceCode(), businesses);
+        context.setResponseEntity(responseEntity);
+        if (responseEntity.getStatusCode() != HttpStatus.OK) {
+            return;
+        }
+
+
+        //判断 巡检点是否都有巡检完
+        if (inspectionTaskDtos == null || inspectionTaskDtos.size() == 0) {
+            return;
+        }
+
+        InspectionTaskDetailDto inspectionTaskDetailDto = new InspectionTaskDetailDto();
+        inspectionTaskDetailDto.setCommunityId(reqJson.getString("communityId"));
+        inspectionTaskDetailDto.setTaskId(reqJson.getString("taskId"));
+        inspectionTaskDetailDto.setState("20200407");
+        int count = inspectionTaskDetailInnerServiceSMOImpl.queryInspectionTaskDetailsCount(inspectionTaskDetailDto);
+
+        if(count > 0){//说明还没有巡检完
+            return ;
+        }
+        businesses = new JSONArray();
+        reqJson.put("state", "20200407");//巡检完成
+        businesses.add(inspectionTaskBMOImpl.updateInspectionTask(reqJson, context));
+        responseEntity = inspectionTaskDetailBMOImpl.callService(context, service.getServiceCode(), businesses);
         context.setResponseEntity(responseEntity);
     }
 

+ 180 - 0
CommunityService/src/main/java/com/java110/community/listener/inspectionTask/DeleteInspectionTaskInfoListener.java

@@ -0,0 +1,180 @@
+package com.java110.community.listener.inspectionTask;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.java110.community.dao.IInspectionTaskServiceDao;
+import com.java110.core.annotation.Java110Listener;
+import com.java110.core.context.DataFlowContext;
+import com.java110.entity.center.Business;
+import com.java110.utils.constant.BusinessTypeConstant;
+import com.java110.utils.constant.ResponseConstant;
+import com.java110.utils.constant.StatusConstant;
+import com.java110.utils.exception.ListenerExecuteException;
+import com.java110.utils.util.Assert;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 删除活动信息 侦听
+ * <p>
+ * 处理节点
+ * 1、businessInspectionTask:{} 活动基本信息节点
+ * 2、businessInspectionTaskAttr:[{}] 活动属性信息节点
+ * 3、businessInspectionTaskPhoto:[{}] 活动照片信息节点
+ * 4、businessInspectionTaskCerdentials:[{}] 活动证件信息节点
+ * 协议地址 :https://github.com/java110/MicroCommunity/wiki/%E5%88%A0%E9%99%A4%E5%95%86%E6%88%B7%E4%BF%A1%E6%81%AF-%E5%8D%8F%E8%AE%AE
+ * Created by wuxw on 2018/5/18.
+ */
+@Java110Listener("deleteInspectionTaskInfoListener")
+@Transactional
+public class DeleteInspectionTaskInfoListener extends AbstractInspectionTaskBusinessServiceDataFlowListener {
+
+    private final static Logger logger = LoggerFactory.getLogger(DeleteInspectionTaskInfoListener.class);
+    @Autowired
+    IInspectionTaskServiceDao inspectionTaskServiceDaoImpl;
+
+    @Override
+    public int getOrder() {
+        return 3;
+    }
+
+    @Override
+    public String getBusinessTypeCd() {
+        return BusinessTypeConstant.BUSINESS_TYPE_DELETE_INSPECTION_TASK;
+    }
+
+    /**
+     * 根据删除信息 查出Instance表中数据 保存至business表 (状态写DEL) 方便撤单时直接更新回去
+     *
+     * @param dataFlowContext 数据对象
+     * @param business        当前业务对象
+     */
+    @Override
+    protected void doSaveBusiness(DataFlowContext dataFlowContext, Business business) {
+        JSONObject data = business.getDatas();
+
+        Assert.notEmpty(data, "没有datas 节点,或没有子节点需要处理");
+
+        //处理 businessInspectionTask 节点
+        if (data.containsKey("businessInspectionTask")) {
+            //处理 businessInspectionTask 节点
+            if (data.containsKey("businessInspectionTask")) {
+                Object _obj = data.get("businessInspectionTask");
+                JSONArray businessInspectionTasks = null;
+                if (_obj instanceof JSONObject) {
+                    businessInspectionTasks = new JSONArray();
+                    businessInspectionTasks.add(_obj);
+                } else {
+                    businessInspectionTasks = (JSONArray) _obj;
+                }
+                //JSONObject businessInspectionTask = data.getJSONObject("businessInspectionTask");
+                for (int _inspectionTaskIndex = 0; _inspectionTaskIndex < businessInspectionTasks.size(); _inspectionTaskIndex++) {
+                    JSONObject businessInspectionTask = businessInspectionTasks.getJSONObject(_inspectionTaskIndex);
+                    doBusinessInspectionTask(business, businessInspectionTask);
+                    if (_obj instanceof JSONObject) {
+                        dataFlowContext.addParamOut("taskId", businessInspectionTask.getString("taskId"));
+                    }
+                }
+            }
+        }
+
+
+    }
+
+    /**
+     * 删除 instance数据
+     *
+     * @param dataFlowContext 数据对象
+     * @param business        当前业务对象
+     */
+    @Override
+    protected void doBusinessToInstance(DataFlowContext dataFlowContext, Business business) {
+        String bId = business.getbId();
+        //Assert.hasLength(bId,"请求报文中没有包含 bId");
+
+        //活动信息
+        Map info = new HashMap();
+        info.put("bId", business.getbId());
+        info.put("operate", StatusConstant.OPERATE_DEL);
+
+        //活动信息
+        List<Map> businessInspectionTaskInfos = inspectionTaskServiceDaoImpl.getBusinessInspectionTaskInfo(info);
+        if (businessInspectionTaskInfos != null && businessInspectionTaskInfos.size() > 0) {
+            for (int _inspectionTaskIndex = 0; _inspectionTaskIndex < businessInspectionTaskInfos.size(); _inspectionTaskIndex++) {
+                Map businessInspectionTaskInfo = businessInspectionTaskInfos.get(_inspectionTaskIndex);
+                flushBusinessInspectionTaskInfo(businessInspectionTaskInfo, StatusConstant.STATUS_CD_INVALID);
+                inspectionTaskServiceDaoImpl.updateInspectionTaskInfoInstance(businessInspectionTaskInfo);
+                dataFlowContext.addParamOut("taskId", businessInspectionTaskInfo.get("task_id"));
+            }
+        }
+
+    }
+
+    /**
+     * 撤单
+     * 从business表中查询到DEL的数据 将instance中的数据更新回来
+     *
+     * @param dataFlowContext 数据对象
+     * @param business        当前业务对象
+     */
+    @Override
+    protected void doRecover(DataFlowContext dataFlowContext, Business business) {
+        String bId = business.getbId();
+        //Assert.hasLength(bId,"请求报文中没有包含 bId");
+        Map info = new HashMap();
+        info.put("bId", bId);
+        info.put("statusCd", StatusConstant.STATUS_CD_INVALID);
+
+        Map delInfo = new HashMap();
+        delInfo.put("bId", business.getbId());
+        delInfo.put("operate", StatusConstant.OPERATE_DEL);
+        //活动信息
+        List<Map> inspectionTaskInfo = inspectionTaskServiceDaoImpl.getInspectionTaskInfo(info);
+        if (inspectionTaskInfo != null && inspectionTaskInfo.size() > 0) {
+
+            //活动信息
+            List<Map> businessInspectionTaskInfos = inspectionTaskServiceDaoImpl.getBusinessInspectionTaskInfo(delInfo);
+            //除非程序出错了,这里不会为空
+            if (businessInspectionTaskInfos == null || businessInspectionTaskInfos.size() == 0) {
+                throw new ListenerExecuteException(ResponseConstant.RESULT_CODE_INNER_ERROR, "撤单失败(inspectionTask),程序内部异常,请检查! " + delInfo);
+            }
+            for (int _inspectionTaskIndex = 0; _inspectionTaskIndex < businessInspectionTaskInfos.size(); _inspectionTaskIndex++) {
+                Map businessInspectionTaskInfo = businessInspectionTaskInfos.get(_inspectionTaskIndex);
+                flushBusinessInspectionTaskInfo(businessInspectionTaskInfo, StatusConstant.STATUS_CD_VALID);
+                inspectionTaskServiceDaoImpl.updateInspectionTaskInfoInstance(businessInspectionTaskInfo);
+            }
+        }
+    }
+
+
+    /**
+     * 处理 businessInspectionTask 节点
+     *
+     * @param business               总的数据节点
+     * @param businessInspectionTask 活动节点
+     */
+    private void doBusinessInspectionTask(Business business, JSONObject businessInspectionTask) {
+
+        Assert.jsonObjectHaveKey(businessInspectionTask, "taskId", "businessInspectionTask 节点下没有包含 taskId 节点");
+
+        if (businessInspectionTask.getString("taskId").startsWith("-")) {
+            throw new ListenerExecuteException(ResponseConstant.RESULT_PARAM_ERROR, "taskId 错误,不能自动生成(必须已经存在的taskId)" + businessInspectionTask);
+        }
+        //自动插入DEL
+        autoSaveDelBusinessInspectionTask(business, businessInspectionTask);
+    }
+
+    public IInspectionTaskServiceDao getInspectionTaskServiceDaoImpl() {
+        return inspectionTaskServiceDaoImpl;
+    }
+
+    public void setInspectionTaskServiceDaoImpl(IInspectionTaskServiceDao inspectionTaskServiceDaoImpl) {
+        this.inspectionTaskServiceDaoImpl = inspectionTaskServiceDaoImpl;
+    }
+}

+ 190 - 0
CommunityService/src/main/java/com/java110/community/listener/inspectionTask/UpdateInspectionTaskInfoListener.java

@@ -0,0 +1,190 @@
+package com.java110.community.listener.inspectionTask;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.java110.community.dao.IInspectionTaskServiceDao;
+import com.java110.core.annotation.Java110Listener;
+import com.java110.core.context.DataFlowContext;
+import com.java110.entity.center.Business;
+import com.java110.utils.constant.BusinessTypeConstant;
+import com.java110.utils.constant.ResponseConstant;
+import com.java110.utils.constant.StatusConstant;
+import com.java110.utils.exception.ListenerExecuteException;
+import com.java110.utils.util.Assert;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 修改活动信息 侦听
+ * <p>
+ * 处理节点
+ * 1、businessInspectionTask:{} 活动基本信息节点
+ * 2、businessInspectionTaskAttr:[{}] 活动属性信息节点
+ * 3、businessInspectionTaskPhoto:[{}] 活动照片信息节点
+ * 4、businessInspectionTaskCerdentials:[{}] 活动证件信息节点
+ * 协议地址 :https://github.com/java110/MicroCommunity/wiki/%E4%BF%AE%E6%94%B9%E5%95%86%E6%88%B7%E4%BF%A1%E6%81%AF-%E5%8D%8F%E8%AE%AE
+ * Created by wuxw on 2018/5/18.
+ */
+@Java110Listener("updateInspectionTaskInfoListener")
+@Transactional
+public class UpdateInspectionTaskInfoListener extends AbstractInspectionTaskBusinessServiceDataFlowListener {
+
+    private static Logger logger = LoggerFactory.getLogger(UpdateInspectionTaskInfoListener.class);
+    @Autowired
+    private IInspectionTaskServiceDao inspectionTaskServiceDaoImpl;
+
+    @Override
+    public int getOrder() {
+        return 2;
+    }
+
+    @Override
+    public String getBusinessTypeCd() {
+        return BusinessTypeConstant.BUSINESS_TYPE_UPDATE_INSPECTION_TASK;
+    }
+
+    /**
+     * business过程
+     *
+     * @param dataFlowContext 上下文对象
+     * @param business        业务对象
+     */
+    @Override
+    protected void doSaveBusiness(DataFlowContext dataFlowContext, Business business) {
+
+        JSONObject data = business.getDatas();
+
+        Assert.notEmpty(data, "没有datas 节点,或没有子节点需要处理");
+
+        //处理 businessInspectionTask 节点
+        if (data.containsKey("businessInspectionTask")) {
+            //处理 businessInspectionTask 节点
+            if (data.containsKey("businessInspectionTask")) {
+                Object _obj = data.get("businessInspectionTask");
+                JSONArray businessInspectionTasks = null;
+                if (_obj instanceof JSONObject) {
+                    businessInspectionTasks = new JSONArray();
+                    businessInspectionTasks.add(_obj);
+                } else {
+                    businessInspectionTasks = (JSONArray) _obj;
+                }
+                //JSONObject businessInspectionTask = data.getJSONObject("businessInspectionTask");
+                for (int _inspectionTaskIndex = 0; _inspectionTaskIndex < businessInspectionTasks.size(); _inspectionTaskIndex++) {
+                    JSONObject businessInspectionTask = businessInspectionTasks.getJSONObject(_inspectionTaskIndex);
+                    doBusinessInspectionTask(business, businessInspectionTask);
+                    if (_obj instanceof JSONObject) {
+                        dataFlowContext.addParamOut("taskId", businessInspectionTask.getString("taskId"));
+                    }
+                }
+            }
+        }
+    }
+
+
+    /**
+     * business to instance 过程
+     *
+     * @param dataFlowContext 数据对象
+     * @param business        当前业务对象
+     */
+    @Override
+    protected void doBusinessToInstance(DataFlowContext dataFlowContext, Business business) {
+
+        JSONObject data = business.getDatas();
+
+        Map info = new HashMap();
+        info.put("bId", business.getbId());
+        info.put("operate", StatusConstant.OPERATE_ADD);
+
+        //活动信息
+        List<Map> businessInspectionTaskInfos = inspectionTaskServiceDaoImpl.getBusinessInspectionTaskInfo(info);
+        if (businessInspectionTaskInfos != null && businessInspectionTaskInfos.size() > 0) {
+            for (int _inspectionTaskIndex = 0; _inspectionTaskIndex < businessInspectionTaskInfos.size(); _inspectionTaskIndex++) {
+                Map businessInspectionTaskInfo = businessInspectionTaskInfos.get(_inspectionTaskIndex);
+                flushBusinessInspectionTaskInfo(businessInspectionTaskInfo, StatusConstant.STATUS_CD_VALID);
+                inspectionTaskServiceDaoImpl.updateInspectionTaskInfoInstance(businessInspectionTaskInfo);
+                if (businessInspectionTaskInfo.size() == 1) {
+                    dataFlowContext.addParamOut("taskId", businessInspectionTaskInfo.get("task_id"));
+                }
+            }
+        }
+
+    }
+
+    /**
+     * 撤单
+     *
+     * @param dataFlowContext 数据对象
+     * @param business        当前业务对象
+     */
+    @Override
+    protected void doRecover(DataFlowContext dataFlowContext, Business business) {
+
+        String bId = business.getbId();
+        //Assert.hasLength(bId,"请求报文中没有包含 bId");
+        Map info = new HashMap();
+        info.put("bId", bId);
+        info.put("statusCd", StatusConstant.STATUS_CD_VALID);
+        Map delInfo = new HashMap();
+        delInfo.put("bId", business.getbId());
+        delInfo.put("operate", StatusConstant.OPERATE_DEL);
+        //活动信息
+        List<Map> inspectionTaskInfo = inspectionTaskServiceDaoImpl.getInspectionTaskInfo(info);
+        if (inspectionTaskInfo != null && inspectionTaskInfo.size() > 0) {
+
+            //活动信息
+            List<Map> businessInspectionTaskInfos = inspectionTaskServiceDaoImpl.getBusinessInspectionTaskInfo(delInfo);
+            //除非程序出错了,这里不会为空
+            if (businessInspectionTaskInfos == null || businessInspectionTaskInfos.size() == 0) {
+                throw new ListenerExecuteException(ResponseConstant.RESULT_CODE_INNER_ERROR, "撤单失败(inspectionTask),程序内部异常,请检查! " + delInfo);
+            }
+            for (int _inspectionTaskIndex = 0; _inspectionTaskIndex < businessInspectionTaskInfos.size(); _inspectionTaskIndex++) {
+                Map businessInspectionTaskInfo = businessInspectionTaskInfos.get(_inspectionTaskIndex);
+                flushBusinessInspectionTaskInfo(businessInspectionTaskInfo, StatusConstant.STATUS_CD_VALID);
+                inspectionTaskServiceDaoImpl.updateInspectionTaskInfoInstance(businessInspectionTaskInfo);
+            }
+        }
+
+    }
+
+
+    /**
+     * 处理 businessInspectionTask 节点
+     *
+     * @param business               总的数据节点
+     * @param businessInspectionTask 活动节点
+     */
+    private void doBusinessInspectionTask(Business business, JSONObject businessInspectionTask) {
+
+        Assert.jsonObjectHaveKey(businessInspectionTask, "taskId", "businessInspectionTask 节点下没有包含 taskId 节点");
+
+        if (businessInspectionTask.getString("taskId").startsWith("-")) {
+            throw new ListenerExecuteException(ResponseConstant.RESULT_PARAM_ERROR, "taskId 错误,不能自动生成(必须已经存在的taskId)" + businessInspectionTask);
+        }
+        //自动保存DEL
+        autoSaveDelBusinessInspectionTask(business, businessInspectionTask);
+
+        businessInspectionTask.put("bId", business.getbId());
+        businessInspectionTask.put("operate", StatusConstant.OPERATE_ADD);
+        //保存活动信息
+        inspectionTaskServiceDaoImpl.saveBusinessInspectionTaskInfo(businessInspectionTask);
+
+    }
+
+
+    public IInspectionTaskServiceDao getInspectionTaskServiceDaoImpl() {
+        return inspectionTaskServiceDaoImpl;
+    }
+
+    public void setInspectionTaskServiceDaoImpl(IInspectionTaskServiceDao inspectionTaskServiceDaoImpl) {
+        this.inspectionTaskServiceDaoImpl = inspectionTaskServiceDaoImpl;
+    }
+
+
+}

+ 27 - 23
java110-code-generator/src/main/resources/back/template_1.json

@@ -1,48 +1,52 @@
 {
-  "id": "taskDetailId",
-  "name": "inspectionTaskDetail",
-  "desc": "巡检任务明细",
+  "id": "taskId",
+  "name": "inspectionTask",
+  "desc": "活动",
   "shareParam": "communityId",
   "shareColumn": "community_id",
-  "newBusinessTypeCd": "BUSINESS_TYPE_SAVE_INSPECTION_TASK_DETAIL",
-  "updateBusinessTypeCd": "BUSINESS_TYPE_UPDATE_INSPECTION_TASK_DETAIL",
-  "deleteBusinessTypeCd": "BUSINESS_TYPE_DELETE_INSPECTION_TASK_DETAIL",
-  "newBusinessTypeCdValue": "540200030001",
-  "updateBusinessTypeCdValue": "540200040001",
-  "deleteBusinessTypeCdValue": "540200040001",
-  "businessTableName": "business_inspection_task_detail",
-  "tableName": "inspection_task_detail",
+  "newBusinessTypeCd": "BUSINESS_TYPE_SAVE_INSPECTION_TASK",
+  "updateBusinessTypeCd": "BUSINESS_TYPE_UPDATE_INSPECTION_TASK",
+  "deleteBusinessTypeCd": "BUSINESS_TYPE_DELETE_INSPECTION_TASK",
+  "newBusinessTypeCdValue": "530200030001",
+  "updateBusinessTypeCdValue": "530200040001",
+  "deleteBusinessTypeCdValue": "530200050001",
+  "businessTableName": "business_inspection_task",
+  "tableName": "inspection_task",
   "param": {
-    "taskDetailId": "task_detail_id",
     "taskId": "task_id",
-    "inspectionId": "inspection_id",
-    "inspectionName": "inspection_name",
-    "state": "state",
+    "inspectionPlanId": "inspection_plan_id",
+    "planInsTime": "plan_ins_time",
+    "actInsTime": "act_ins_time",
+    "planUserId": "plan_user_id",
     "communityId": "community_id",
+    "planUserName": "plan_user_name",
+    "actUserId": "act_user_id",
+    "actUserName": "act_user_name",
+    "signType": "sign_type",
     "statusCd": "status_cd",
     "operate": "operate",
     "bId": "b_id"
   },
   "required": [
     {
-      "code": "taskDetailId",
-      "msg": "任务明细ID不能为空"
+      "code": "inspectionPlanId",
+      "msg": "巡检计划不能为空"
     },
     {
-      "code": "taskId",
-      "msg": "巡检任务不能为空"
+      "code": "actInsTime",
+      "msg": "巡检时间不能为空"
     },
     {
       "code": "communityId",
       "msg": "小区不能为空"
     },
     {
-      "code": "inspectionId",
-      "msg": "巡检不能为空"
+      "code": "actUserId",
+      "msg": "巡检不能为空"
     },
     {
-      "code": "inspectionName",
-      "msg": "巡检点名称不能为空"
+      "code": "actUserName",
+      "msg": "巡检不能为空"
     },
     {
       "code": "signType",

+ 0 - 56
java110-code-generator/src/main/resources/back/template_inspectionTask.json

@@ -1,56 +0,0 @@
-{
-  "id": "taskId",
-  "name": "inspectionTask",
-  "desc": "活动",
-  "shareParam": "communityId",
-  "shareColumn": "community_id",
-  "newBusinessTypeCd": "BUSINESS_TYPE_SAVE_INSPECTION_TASK",
-  "updateBusinessTypeCd": "BUSINESS_TYPE_UPDATE_INSPECTION_TASK",
-  "deleteBusinessTypeCd": "BUSINESS_TYPE_DELETE_INSPECTION_TASK",
-  "newBusinessTypeCdValue": "530200030001",
-  "updateBusinessTypeCdValue": "530200030001",
-  "deleteBusinessTypeCdValue": "530200030001",
-  "businessTableName": "business_inspection_task",
-  "tableName": "inspection_task",
-  "param": {
-    "taskId": "task_id",
-    "inspectionPlanId": "inspection_plan_id",
-    "planInsTime": "plan_ins_time",
-    "actInsTime": "act_ins_time",
-    "planUserId": "plan_user_id",
-    "communityId": "community_id",
-    "planUserName": "plan_user_name",
-    "actUserId": "act_user_id",
-    "actUserName": "act_user_name",
-    "signType": "sign_type",
-    "statusCd": "status_cd",
-    "operate": "operate",
-    "bId": "b_id"
-  },
-  "required": [
-    {
-      "code": "inspectionPlanId",
-      "msg": "巡检计划不能为空"
-    },
-    {
-      "code": "actInsTime",
-      "msg": "巡检时间不能为空"
-    },
-    {
-      "code": "communityId",
-      "msg": "小区不能为空"
-    },
-    {
-      "code": "actUserId",
-      "msg": "巡检人不能为空"
-    },
-    {
-      "code": "actUserName",
-      "msg": "巡检人不能为空"
-    },
-    {
-      "code": "signType",
-      "msg": "巡检方式不能为空"
-    }
-  ]
-}

+ 52 - 0
java110-code-generator/src/main/resources/back/template_inspectionTaskDetail.json

@@ -0,0 +1,52 @@
+{
+  "id": "taskDetailId",
+  "name": "inspectionTaskDetail",
+  "desc": "巡检任务明细",
+  "shareParam": "communityId",
+  "shareColumn": "community_id",
+  "newBusinessTypeCd": "BUSINESS_TYPE_SAVE_INSPECTION_TASK_DETAIL",
+  "updateBusinessTypeCd": "BUSINESS_TYPE_UPDATE_INSPECTION_TASK_DETAIL",
+  "deleteBusinessTypeCd": "BUSINESS_TYPE_DELETE_INSPECTION_TASK_DETAIL",
+  "newBusinessTypeCdValue": "540200030001",
+  "updateBusinessTypeCdValue": "540200040001",
+  "deleteBusinessTypeCdValue": "540200040001",
+  "businessTableName": "business_inspection_task_detail",
+  "tableName": "inspection_task_detail",
+  "param": {
+    "taskDetailId": "task_detail_id",
+    "taskId": "task_id",
+    "inspectionId": "inspection_id",
+    "inspectionName": "inspection_name",
+    "state": "state",
+    "communityId": "community_id",
+    "statusCd": "status_cd",
+    "operate": "operate",
+    "bId": "b_id"
+  },
+  "required": [
+    {
+      "code": "taskDetailId",
+      "msg": "任务明细ID不能为空"
+    },
+    {
+      "code": "taskId",
+      "msg": "巡检任务不能为空"
+    },
+    {
+      "code": "communityId",
+      "msg": "小区不能为空"
+    },
+    {
+      "code": "inspectionId",
+      "msg": "巡检点不能为空"
+    },
+    {
+      "code": "inspectionName",
+      "msg": "巡检点名称不能为空"
+    },
+    {
+      "code": "signType",
+      "msg": "巡检方式不能为空"
+    }
+  ]
+}

+ 75 - 74
java110-code-generator/src/main/resources/template/BMOImpl.java

@@ -2,100 +2,101 @@ package com.java110.api.bmo.activities.impl;
 
 import com.alibaba.fastjson.JSONObject;
 
-@ @TemplateCode @ @BMO;
+@@TemplateCode@@BMO;
 import com.java110.core.context.DataFlowContext;
-        import com.java110.core.smo.community.I@ @TemplateCode @ @InnerServiceSMO;
+import com.java110.core.smo.community.I@@TemplateCode@@InnerServiceSMO;
 import com.java110.core.smo.file.IFileInnerServiceSMO;
-        import com.java110.core.smo.file.IFileRelInnerServiceSMO;
-        import com.java110.dto.activities.@ @TemplateCode @ @Dto;
+import com.java110.core.smo.file.IFileRelInnerServiceSMO;
+import com.java110.dto.activities.@@TemplateCode@@Dto;
 import com.java110.dto.file.FileRelDto;
-        import com.java110.utils.constant.BusinessTypeConstant;
-        import com.java110.utils.constant.CommonConstant;
-        import com.java110.utils.util.Assert;
-        import com.java110.utils.util.BeanConvertUtil;
-        import org.springframework.beans.factory.annotation.Autowired;
-        import org.springframework.stereotype.Service;
+import com.java110.utils.constant.BusinessTypeConstant;
+import com.java110.utils.constant.CommonConstant;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
 
-        import java.util.List;
+import java.util.List;
 
 @Service("@@templateCode@@BMOImpl")
-public class@ @TemplateCode @ @BMOImpl extends ApiBaseBMO implements I@ @TemplateCode @ @BMO {
-
-@Autowired
-private I@ @TemplateCode @ @InnerServiceSMO @ @templateCode @ @InnerServiceSMOImpl;
-
-/**
- * 添加小区信息
- *
- * @param paramInJson     接口调用放传入入参
- * @param dataFlowContext 数据上下文
- * @return 订单服务能够接受的报文
- */
-public JSONObject add@ @TemplateCode @ @(JSONObject paramInJson, DataFlowContext dataFlowContext) {
-
-
-        JSONObject business=JSONObject.parseObject("{\"datas\":{}}");
-        business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD,BusinessTypeConstant.BUSINESS_TYPE_SAVE_@ @TEMPLATECODE @ @);
-        business.put(CommonConstant.HTTP_SEQ,DEFAULT_SEQ);
-        business.put(CommonConstant.HTTP_INVOKE_MODEL,CommonConstant.HTTP_INVOKE_MODEL_S);
-        JSONObject business@ @TemplateCode @ @ =new JSONObject();
-        business@ @TemplateCode @ @.putAll(paramInJson);
-        business@ @TemplateCode @ @.put("@@templateKey@@","-1");
+public class @@TemplateCode@@BMOImpl extends ApiBaseBMO implements I@@TemplateCode@@BMO {
+
+    @Autowired
+    private I@@TemplateCode@@InnerServiceSMO @@templateCode@@InnerServiceSMOImpl;
+
+    /**
+     * 添加小区信息
+     *
+     * @param paramInJson     接口调用放传入入参
+     * @param dataFlowContext 数据上下文
+     * @return 订单服务能够接受的报文
+     */
+    public JSONObject add@@TemplateCode@@(JSONObject paramInJson, DataFlowContext dataFlowContext) {
+
+
+        JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
+        business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_SAVE_@@TEMPLATECODE@@);
+        business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ);
+        business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
+        JSONObject business@@TemplateCode@@ = new JSONObject();
+        business@@TemplateCode@@.putAll(paramInJson);
+        business@@TemplateCode@@.put("@@templateKey@@", "-1");
         //计算 应收金额
-        business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("business@@TemplateCode@@",business@ @TemplateCode @ @);
+        business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("business@@TemplateCode@@", business@@TemplateCode@@);
         return business;
-        }
+    }
 
 
-/**
- * 添加活动信息
- *
- * @param paramInJson     接口调用放传入入参
- * @param dataFlowContext 数据上下文
- * @return 订单服务能够接受的报文
- */
-public JSONObject update@ @TemplateCode @ @(JSONObject paramInJson, DataFlowContext dataFlowContext) {
+    /**
+     * 添加活动信息
+     *
+     * @param paramInJson     接口调用放传入入参
+     * @param dataFlowContext 数据上下文
+     * @return 订单服务能够接受的报文
+     */
+    public JSONObject update@@TemplateCode@@(JSONObject paramInJson, DataFlowContext dataFlowContext) {
 
-@ @TemplateCode @ @Dto @ @templateCode @ @Dto =new@ @TemplateCode @ @Dto();
-@ @templateCode @ @Dto.set @ @TemplateCode @ @Id(paramInJson.getString("@@templateCode@@Id"));
-@ @templateCode @ @Dto.setCommunityId(paramInJson.getString("communityId"));
-        List<@ @TemplateCode @ @Dto>@ @templateCode @ @Dtos =@ @templateCode @ @InnerServiceSMOImpl.query @ @TemplateCode @ @s(@@templateCode@@Dto);
+        @@TemplateCode@@Dto @@templateCode@@Dto = new @@TemplateCode@@Dto();
+        @@templateCode@@Dto.set@@TemplateCode@@Id(paramInJson.getString("@@templateCode@@Id"));
+        @@templateCode@@Dto.setCommunityId(paramInJson.getString("communityId"));
+        List<@@TemplateCode@@Dto> @@templateCode@@Dtos = @@templateCode@@InnerServiceSMOImpl.query@@TemplateCode@@s(@@templateCode@@Dto);
 
-        Assert.listOnlyOne(@ @templateCode @ @Dtos,"未找到需要修改的活动 或多条数据");
+        Assert.listOnlyOne(@@templateCode@@Dtos, "未找到需要修改的活动 或多条数据");
 
 
-        JSONObject business=JSONObject.parseObject("{\"datas\":{}}");
-        business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD,BusinessTypeConstant.BUSINESS_TYPE_UPDATE_@ @TEMPLATECODE @ @);
-        business.put(CommonConstant.HTTP_SEQ,DEFAULT_SEQ);
-        business.put(CommonConstant.HTTP_INVOKE_MODEL,CommonConstant.HTTP_INVOKE_MODEL_S);
-        JSONObject business@ @TemplateCode @ @ =new JSONObject();
-        business@ @TemplateCode @ @.putAll(BeanConvertUtil.beanCovertMap(@ @templateCode @ @Dtos.get(0)));
-        business@ @TemplateCode @ @.putAll(paramInJson);
+        JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
+        business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_UPDATE_@@TEMPLATECODE@@);
+        business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ);
+        business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
+        JSONObject business@@TemplateCode@@ = new JSONObject();
+        business@@TemplateCode@@.putAll(BeanConvertUtil.beanCovertMap(@@templateCode@@Dtos.get(0)));
+        business@@TemplateCode@@.putAll(paramInJson);
         //计算 应收金额
-        business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("business@@TemplateCode@@",business@ @TemplateCode @ @);
+        business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("business@@TemplateCode@@", business@@TemplateCode@@);
         return business;
-        }
+    }
 
 
-/**
- * 添加小区信息
- *
- * @param paramInJson     接口调用放传入入参
- * @param dataFlowContext 数据上下文
- * @return 订单服务能够接受的报文
- */
-public JSONObject delete@ @TemplateCode @ @(JSONObject paramInJson, DataFlowContext dataFlowContext) {
 
+    /**
+     * 添加小区信息
+     *
+     * @param paramInJson     接口调用放传入入参
+     * @param dataFlowContext 数据上下文
+     * @return 订单服务能够接受的报文
+     */
+    public JSONObject delete@@TemplateCode@@(JSONObject paramInJson, DataFlowContext dataFlowContext) {
 
-        JSONObject business=JSONObject.parseObject("{\"datas\":{}}");
-        business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD,BusinessTypeConstant.BUSINESS_TYPE_DELETE_@ @TEMPLATECODE @ @);
-        business.put(CommonConstant.HTTP_SEQ,DEFAULT_SEQ);
-        business.put(CommonConstant.HTTP_INVOKE_MODEL,CommonConstant.HTTP_INVOKE_MODEL_S);
-        JSONObject business@ @TemplateCode @ @ =new JSONObject();
-        business@ @TemplateCode @ @.putAll(paramInJson);
+
+        JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
+        business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_DELETE_@@TEMPLATECODE@@);
+        business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ);
+        business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
+        JSONObject business@@TemplateCode@@ = new JSONObject();
+        business@@TemplateCode@@.putAll(paramInJson);
         //计算 应收金额
-        business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("business@@TemplateCode@@",business@ @TemplateCode @ @);
+        business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("business@@TemplateCode@@", business@@TemplateCode@@);
         return business;
-        }
+    }
 
-        }
+}

+ 2 - 0
java110-utils/src/main/java/com/java110/utils/constant/BusinessTypeConstant.java

@@ -920,6 +920,8 @@ public class BusinessTypeConstant {
      *  3保存
      */
     public static final String BUSINESS_TYPE_SAVE_INSPECTION_TASK="530200030001";
+    public static final String BUSINESS_TYPE_UPDATE_INSPECTION_TASK="530200040001";
+    public static final String BUSINESS_TYPE_DELETE_INSPECTION_TASK="530200050001";
 
     /**
      *  保存巡检任务