diff --git a/1068-yexiu-read-model-mybatis/pom.xml b/1068-yexiu-read-model-mybatis/pom.xml
index 55d2af7..a6812c8 100644
--- a/1068-yexiu-read-model-mybatis/pom.xml
+++ b/1068-yexiu-read-model-mybatis/pom.xml
@@ -20,9 +20,13 @@
com.sie.irradiator
- 2069-siedemo-comm-api
+ 2068-yexiu-read-api
+ 2.0.3
+
+
+ com.sie.irradiator
+ 5002-sieiot-eventual-consistency-component
-
diff --git a/1068-yexiu-read-model-mybatis/src/main/java/com/yuexiu/secp/read/model/dao/AdvertDao.java b/1068-yexiu-read-model-mybatis/src/main/java/com/yuexiu/secp/read/model/dao/AdvertDao.java
new file mode 100644
index 0000000..9dc359c
--- /dev/null
+++ b/1068-yexiu-read-model-mybatis/src/main/java/com/yuexiu/secp/read/model/dao/AdvertDao.java
@@ -0,0 +1,13 @@
+package com.yuexiu.secp.read.model.dao;
+
+import com.sie.iot.common.model.dao.BaseCommonDAO_HI;
+import com.yuexiu.secp.read.model.entities.AdvertEntity;
+import org.springframework.stereotype.Component;
+
+/**
+ * 广告维护Dao
+ */
+@Component("AdvertDao")
+public interface AdvertDao extends BaseCommonDAO_HI {
+
+}
diff --git a/1068-yexiu-read-model-mybatis/src/main/java/com/yuexiu/secp/read/model/dao/readonly/AdvertDaoRO.java b/1068-yexiu-read-model-mybatis/src/main/java/com/yuexiu/secp/read/model/dao/readonly/AdvertDaoRO.java
new file mode 100644
index 0000000..0160caf
--- /dev/null
+++ b/1068-yexiu-read-model-mybatis/src/main/java/com/yuexiu/secp/read/model/dao/readonly/AdvertDaoRO.java
@@ -0,0 +1,11 @@
+package com.yuexiu.secp.read.model.dao.readonly;
+
+
+import com.siefw.hibernate.core.dao.DynamicViewObjectImpl;
+import com.yuexiu.secp.read.model.entities.readonly.AdvertEntityRo;
+import org.springframework.stereotype.Component;
+
+@Component("advertDaoRO")
+public interface AdvertDaoRO extends DynamicViewObjectImpl {
+
+}
diff --git a/1068-yexiu-read-model-mybatis/src/main/java/com/yuexiu/secp/read/model/entities/AdvertEntity.java b/1068-yexiu-read-model-mybatis/src/main/java/com/yuexiu/secp/read/model/entities/AdvertEntity.java
new file mode 100644
index 0000000..1e6d7dc
--- /dev/null
+++ b/1068-yexiu-read-model-mybatis/src/main/java/com/yuexiu/secp/read/model/entities/AdvertEntity.java
@@ -0,0 +1,57 @@
+package com.yuexiu.secp.read.model.entities;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.sie.iot.common.idgenerate.GeneratedKeyValue;
+import com.sie.iot.common.model.entity.BaseEntity;
+import com.yuexiu.secp.read.model.entities.readonly.AdvertEntityRo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@TableName("yxh_advert")
+@GeneratedKeyValue
+@ApiModel(value = "广告维护表")
+public class AdvertEntity implements Serializable {
+ @TableId(value = "advert_id", type = IdType.ASSIGN_ID)
+ @ApiModelProperty(value = "主键id")
+ private Long advertId;
+ @ApiModelProperty(value = "排列方式")
+ private Integer arrangementMode;
+ @ApiModelProperty(value = "投放位置")
+ private Integer putLocation;
+ @ApiModelProperty(value = "显示顺序")
+ private Integer accordingOrder;
+ @ApiModelProperty(value = "开始时间")
+ @JSONField(format = "yyyy-MM-dd HH:mm:ss")
+ private Date beginTime;
+ @ApiModelProperty(value = "结束时间")
+ @JSONField(format = "yyyy-MM-dd HH:mm:ss")
+ private Date endTime;
+ @ApiModelProperty(value = "广告状态")
+ private Integer advertState;
+ @ApiModelProperty(value = "跳转路径")
+ private String skipUrl;
+ @ApiModelProperty(value = "图片路径")
+ private String pictureUrl;
+ @ApiModelProperty(value = "广告说明")
+ private String advertExplain;
+ @ApiModelProperty(value = "租户id")
+ private Long tenantId;
+ private Long createdBy;
+ @JSONField(format = "yyyy-MM-dd HH:mm:ss")
+ private Date creationDate;
+ private Long lastUpdatedBy;
+ @JSONField(format = "yyyy-MM-dd HH:mm:ss")
+ private Date lastUpdateDate;
+ private Long lastUpdateLogin;
+ private Integer deleteFlag;
+ private Integer versionNum;
+}
+
diff --git a/1068-yexiu-read-model-mybatis/src/main/java/com/yuexiu/secp/read/model/entities/FlowProcessCallbackEntity.java b/1068-yexiu-read-model-mybatis/src/main/java/com/yuexiu/secp/read/model/entities/FlowProcessCallbackEntity.java
new file mode 100644
index 0000000..e5cdf8a
--- /dev/null
+++ b/1068-yexiu-read-model-mybatis/src/main/java/com/yuexiu/secp/read/model/entities/FlowProcessCallbackEntity.java
@@ -0,0 +1,61 @@
+package com.yuexiu.secp.read.model.entities;
+
+import lombok.Data;
+
+/**
+ * 流程回调接收实体
+ */
+@Data
+public class FlowProcessCallbackEntity {
+
+ /**
+ * 流程实例id
+ */
+ private String processInstanceId ;
+ /**
+ * 回调时间
+ */
+ private String completeTime;
+ /**
+ * 业务id
+ */
+ private Long id ;
+ /**
+ * 用户id
+ */
+ private Long userId;
+ /**
+ * url
+ */
+ private String url ;
+ /**
+ * 任务id
+ */
+ private String taskId;
+ /**
+ * 状态
+ */
+ private String status ;
+ /**
+ *
+ */
+ private String processDefinitionKey;
+
+ private String procDefKey;
+ /**
+ * 当前节点key
+ */
+ private String taskDefinitionKey;
+ /**
+ * 当前节点名称
+ */
+ private String taskName ;
+ /**
+ * 下一个节点信息
+ */
+ private String nextTasks;
+ /**
+ * 下一个节点信息key
+ */
+ private String nextTaskId;
+}
diff --git a/1068-yexiu-read-model-mybatis/src/main/java/com/yuexiu/secp/read/model/entities/readonly/AdvertEntityRo.java b/1068-yexiu-read-model-mybatis/src/main/java/com/yuexiu/secp/read/model/entities/readonly/AdvertEntityRo.java
new file mode 100644
index 0000000..9d9fe87
--- /dev/null
+++ b/1068-yexiu-read-model-mybatis/src/main/java/com/yuexiu/secp/read/model/entities/readonly/AdvertEntityRo.java
@@ -0,0 +1,67 @@
+package com.yuexiu.secp.read.model.entities.readonly;
+
+import cn.hutool.core.date.DateTime;
+import com.alibaba.fastjson.annotation.JSONField;
+import com.sie.iot.common.model.entity.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@ApiModel(value = "广告")
+public class AdvertEntityRo implements Serializable {
+
+ public static final String QUERY= "SELECT\n" +
+ "ya.advert_id AS advertId,\n" +
+ "ya.arrangement_mode AS arrangementMode,\n" +
+ "ya.put_location AS putLocation,\n" +
+ "ya.according_order AS accordingOrder,\n" +
+ "ya.begin_time AS beginTime,\n" +
+ "ya.end_time AS endTime,\n" +
+ "ya.advert_state AS advertState,\n" +
+ "ya.skip_url AS skipUrl,\n" +
+ "ya.picture_url AS pictureUrl,\n" +
+ "ya.advert_explain AS advertExplain,\n" +
+ "ya.tenant_id AS tenantId,\n" +
+ "ya.created_by AS createdBy,\n" +
+ "ya.creation_date AS creationDate,\n" +
+ "ya.last_updated_by AS lastUpdatedBy,\n" +
+ "ya.last_update_date AS lastUpdateDate,\n" +
+ "ya.last_update_login AS lastUpdateLogin,\n" +
+ "ya.delete_flag AS deleteFlag,\n" +
+ "ya.version_num AS versionNum\n" +
+ "FROM\n" +
+ "yxh_advert ya\n" +
+ "where 1=1 \n";
+
+ @ApiModelProperty(value = "主键id")
+ private Long advertId;
+ @ApiModelProperty(value = "排列方式")
+ private Integer arrangementMode;
+ @ApiModelProperty(value = "投放位置")
+ private Integer putLocation;
+ @ApiModelProperty(value = "显示顺序")
+ private Integer accordingOrder;
+ @ApiModelProperty(value = "开始时间")
+ @JSONField(format = "yyyy-MM-dd HH:mm:ss")
+ private Date beginTime;
+ @ApiModelProperty(value = "结束时间")
+ @JSONField(format = "yyyy-MM-dd HH:mm:ss")
+ private Date endTime;
+ @ApiModelProperty(value = "广告状态")
+ private Integer advertState;
+ @ApiModelProperty(value = "跳转路径")
+ private String skipUrl;
+ @ApiModelProperty(value = "图片路径")
+ private String pictureUrl;
+ @ApiModelProperty(value = "广告说明")
+ private String advertExplain;
+ @ApiModelProperty(value = "租户id")
+ private Long tenantId;
+
+
+}
+
diff --git a/2068-yexiu-read-api/src/main/java/com/yuexiu/secp/read/dto/AdvertDto.java b/2068-yexiu-read-api/src/main/java/com/yuexiu/secp/read/dto/AdvertDto.java
new file mode 100644
index 0000000..e2cb639
--- /dev/null
+++ b/2068-yexiu-read-api/src/main/java/com/yuexiu/secp/read/dto/AdvertDto.java
@@ -0,0 +1,40 @@
+package com.yuexiu.secp.read.dto;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import com.sie.iot.common.bean.ReqeustCommonDataBean;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.Date;
+
+@Data
+@ApiModel(value = "广告维护Dto")
+public class AdvertDto extends ReqeustCommonDataBean {
+
+ @ApiModelProperty(value = "主键id")
+ private Long advertId;
+ @ApiModelProperty(value = "排列方式")
+ private Integer arrangementMode;
+ @ApiModelProperty(value = "投放位置")
+ private Integer putLocation;
+ @ApiModelProperty(value = "显示顺序")
+ private Integer accordingOrder;
+ @ApiModelProperty(value = "开始时间")
+ @JSONField(format = "yyyy-MM-dd HH:mm:ss")
+ private Date beginTime;
+ @ApiModelProperty(value = "结束时间")
+ @JSONField(format = "yyyy-MM-dd HH:mm:ss")
+ private Date endTime;
+ @ApiModelProperty(value = "广告状态")
+ private Integer advertState;
+ @ApiModelProperty(value = "跳转路径")
+ private String skipUrl;
+ @ApiModelProperty(value = "图片路径")
+ private String pictureUrl;
+ @ApiModelProperty(value = "广告说明")
+ private String advertExplain;
+ @ApiModelProperty(value = "租户id")
+ private Long tenantId;
+}
diff --git a/2068-yexiu-read-application/src/main/java/com/yuexiu/secp/read/controller/AdvertController.java b/2068-yexiu-read-application/src/main/java/com/yuexiu/secp/read/controller/AdvertController.java
new file mode 100644
index 0000000..f80c718
--- /dev/null
+++ b/2068-yexiu-read-application/src/main/java/com/yuexiu/secp/read/controller/AdvertController.java
@@ -0,0 +1,102 @@
+package com.yuexiu.secp.read.controller;
+
+import com.alibaba.fastjson.JSONObject;
+
+import com.sie.iot.common.bean.PaginationRequestData;
+import com.sie.iot.common.bean.ResponseData;
+import com.sie.iot.common.iotenum.ResponseMsgCode;
+import com.sie.iot.common.model.inter.IBaseCommon;
+import com.sie.iot.common.services.CommonAbstractService;
+import com.sie.iot.component.exception.GushenRuntimeException;
+import com.siefw.hibernate.core.paging.Pagination;
+import com.yuexiu.secp.read.dto.AdvertDto;
+import com.yuexiu.secp.read.model.entities.AdvertEntity;
+import com.yuexiu.secp.read.model.entities.readonly.AdvertEntityRo;
+import com.yuexiu.secp.read.model.service.IAdvertServer;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+@Validated
+@Api(value = "测试", tags = "测试-用户")
+@RestController
+@Slf4j
+@RequestMapping("/advert/advertMaintenance")
+public class AdvertController extends CommonAbstractService {
+ private static final Logger LOGGER = LoggerFactory.getLogger(AdvertController.class);
+
+ @Autowired
+ private IAdvertServer iAdvertServer;
+
+ @Override
+ public IBaseCommon> getBaseCommonServer() {
+ return this.iAdvertServer;
+ }
+
+ @ApiOperation("获取广告维护表分页列表")
+ @PostMapping(value = "/findAdvertInfo")
+ public ResponseData> findTestUsersPagination(@RequestBody PaginationRequestData paginationRequestData) {
+ Integer pageIndex = paginationRequestData.getPageIndex();
+ Integer pageRows = paginationRequestData.getPageRows();
+ AdvertDto advertDto = paginationRequestData.getParams();
+ JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(advertDto));
+ try {
+ log.info("分页查询广告列表 参数:query:{}",advertDto);
+ Pagination pagination = iAdvertServer.findAdvertPagination(jsonObject, pageIndex, pageRows, paginationRequestData.getOrderByBean());
+ return ResponseData.data(pagination);
+ } catch (Exception e) {
+ LOGGER.error(" find - AdvertInfo error:"+e);
+ throw new GushenRuntimeException(ResponseMsgCode.ERROR.msgCode, e);
+ }
+ }
+
+ @ApiOperation(value = "保存或者更新广告列表")
+ @PostMapping(value = "/saveOrUpdateAdvertInfo")
+ public ResponseData saveOrUpdateAdvertInfo(@RequestBody AdvertEntity advertEntity) {
+ log.info("保存 参数:{}",advertEntity);
+ iAdvertServer.saveOrUpdateAdvertInfo(advertEntity);
+ return ResponseData.success();
+ }
+ @ApiOperation(value = "根据广告表 advertId 查询详细")
+ @PostMapping(value = "/findById")
+ public ResponseData findById(@RequestParam Long advertId){
+ try {
+ log.info("根据 primaryKey 查询广告详细 id:{}", advertId);
+ AdvertEntity entity = iAdvertServer.findById(advertId);
+ return ResponseData.data(entity);
+ }catch (Exception e){
+ throw new GushenRuntimeException(ResponseMsgCode.ERROR.msgCode, e);
+ }
+ }
+ @ApiOperation(value = "根据广告表 advertId 删除")
+ @PostMapping(value = "/delete")
+ public ResponseData deleteById(@RequestParam Long advertId){
+ log.info("根据 id 删除 参数:{}",advertId);
+ AdvertEntity advertEntity = iAdvertServer.findById(advertId);
+ if (advertEntity != null) {
+ advertEntity.setDeleteFlag(1);
+ }
+ iAdvertServer.update(advertEntity);
+ return ResponseData.success();
+ }
+
+// @ApiOperation(value = "广告申请流程使用")
+// @PostMapping(value = "/setCommit")
+// public ResponseData setCommit(@RequestBody AdvertEntity advertEntity,@RequestParam String processDefinitionKey) {
+// log.info("广告维护申请流程 参数:{}", advertEntity);
+// iAdvertServer.doCommit(advertEntity,processDefinitionKey);
+// return ResponseData.success();
+// }
+// @ApiOperation(value = "广告流程回调使用")
+// @PostMapping(value = "/updateAdvertState")
+// public ResponseData updateAdvertState(@DistrTransMessageParam Long msgId, RedisMessageContentBean redisMessageContentBean) {
+// log.info("广告维护申请流程回调 参数:{}", redisMessageContentBean);
+// iAdvertServer.updateAdvertState(msgId,redisMessageContentBean);
+// return ResponseData.success();
+// }
+}
diff --git a/2068-yexiu-read-application/src/main/java/com/yuexiu/secp/read/infra/config/BpmProcessingUtil.java b/2068-yexiu-read-application/src/main/java/com/yuexiu/secp/read/infra/config/BpmProcessingUtil.java
new file mode 100644
index 0000000..747421d
--- /dev/null
+++ b/2068-yexiu-read-application/src/main/java/com/yuexiu/secp/read/infra/config/BpmProcessingUtil.java
@@ -0,0 +1,34 @@
+package com.yuexiu.secp.read.infra.config;
+
+import com.alibaba.fastjson.JSONObject;
+import com.sie.iot.base.bean.RedisMessageContentBean;
+import com.sie.iot.distribute.transation.invoke.RemoteServiceInvoke;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.Map;
+
+@Component
+public class BpmProcessingUtil {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(BpmProcessingUtil.class);
+
+ @Autowired
+ private RemoteServiceInvoke remoteServiceInvoke;
+
+ private static final String imSynchronizationKafkaTopic = "message.queue.bpm.asynchronous2";
+ //提交流程 加入对应的group group不存在的时候会自动创建
+ public void asynchronousToBpm(Map params){
+ LOGGER.info("流程提交参数:"+ JSONObject.toJSONString(params));
+ try {
+ RedisMessageContentBean redisMessageContentBean=new RedisMessageContentBean();
+ redisMessageContentBean.setMessageBody(JSONObject.toJSONString(params));
+ redisMessageContentBean.setQueueName(imSynchronizationKafkaTopic);
+ remoteServiceInvoke.sendMessageBody2Redis(redisMessageContentBean);
+ }catch (Exception e){
+ LOGGER.error("流程提交异常,错误信息:"+e.getMessage());
+ }
+ }
+}
diff --git a/2068-yexiu-read-application/src/main/java/com/yuexiu/secp/read/infra/config/WorkflowApprovalStatus.java b/2068-yexiu-read-application/src/main/java/com/yuexiu/secp/read/infra/config/WorkflowApprovalStatus.java
new file mode 100644
index 0000000..0d3fdb2
--- /dev/null
+++ b/2068-yexiu-read-application/src/main/java/com/yuexiu/secp/read/infra/config/WorkflowApprovalStatus.java
@@ -0,0 +1,46 @@
+package com.yuexiu.secp.read.infra.config;
+
+/**
+ * 审批流程状态
+ */
+public enum WorkflowApprovalStatus {
+ DRAFT("DRAFT", "草稿"),
+ APPROVAL("APPROVAL", "审批中"),
+ ALLOW("ALLOW", "审批通过"),
+ REFUSAL("REFUSAL", "审批驳回"),
+ CLOSED("CLOSED", "已关闭");
+
+ private String index;
+ private String name;
+
+ WorkflowApprovalStatus(String index, String name) {
+ this.index = index;
+ this.name = name;
+ }
+
+ public static WorkflowApprovalStatus convert(String index){
+ WorkflowApprovalStatus[] statuses = WorkflowApprovalStatus.values();
+ for (int i = 0; i < statuses.length; i++) {
+ if (statuses[i].index.equals(index)){
+ return statuses[i];
+ }
+ }
+ return null;
+ }
+
+ public String getIndex() {
+ return index;
+ }
+
+ private void setIndex(String index) {
+ this.index = index;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ private void setName(String name) {
+ this.name = name;
+ }
+}
diff --git a/2068-yexiu-read-application/src/main/java/com/yuexiu/secp/read/model/service/IAdvertServer.java b/2068-yexiu-read-application/src/main/java/com/yuexiu/secp/read/model/service/IAdvertServer.java
new file mode 100644
index 0000000..f08be21
--- /dev/null
+++ b/2068-yexiu-read-application/src/main/java/com/yuexiu/secp/read/model/service/IAdvertServer.java
@@ -0,0 +1,52 @@
+package com.yuexiu.secp.read.model.service;
+
+
+import com.alibaba.fastjson.JSONObject;
+
+
+import com.sie.iot.base.bean.RedisMessageContentBean;
+import com.sie.iot.common.bean.OrderByBean;
+import com.sie.iot.common.model.inter.IBaseCommon;
+
+
+import com.sie.iot.distribute.transation.annotation.DistrTransMessageParam;
+import com.siefw.hibernate.core.paging.Pagination;
+import com.yuexiu.secp.read.model.entities.AdvertEntity;
+import com.yuexiu.secp.read.model.entities.readonly.AdvertEntityRo;
+import com.yuexiu.secp.read.model.service.impl.AdvertServer;
+
+public interface IAdvertServer extends IBaseCommon {
+
+ /**
+ * 分页查询列表
+ * @param jsonObject
+ * @return
+ */
+ Pagination findAdvertPagination(JSONObject jsonObject, Integer pageIndex, Integer pageRows, OrderByBean orderByBean);
+ /**
+ * 根据 id 查询详细
+ * @param *
+ * @return
+ */
+ AdvertEntity findById(Long id);
+ /**
+ * 新增或者更新
+ * @param testUsers
+ * @return
+ */
+ AdvertEntity saveOrUpdateAdvertInfo(AdvertEntity testUsers);
+ /**
+ * 提交流程
+ * @param advertEntity
+ * * @param processDefinitionKey
+ * @return
+ */
+ void doCommit(AdvertEntity advertEntity,String processDefinitionKey);
+ /**
+ * 流程回调方法
+ * @param msgId
+ * * @param processDefinitionKey
+ * @return
+ */
+ void updateAdvertState(@DistrTransMessageParam Long msgId, RedisMessageContentBean redisMessageContentBean);
+}
diff --git a/2068-yexiu-read-application/src/main/java/com/yuexiu/secp/read/model/service/impl/AdvertServer.java b/2068-yexiu-read-application/src/main/java/com/yuexiu/secp/read/model/service/impl/AdvertServer.java
new file mode 100644
index 0000000..d219918
--- /dev/null
+++ b/2068-yexiu-read-application/src/main/java/com/yuexiu/secp/read/model/service/impl/AdvertServer.java
@@ -0,0 +1,132 @@
+package com.yuexiu.secp.read.model.service.impl;
+
+
+import com.alibaba.fastjson.JSONObject;
+import com.sie.iot.base.bean.RedisMessageContentBean;
+import com.sie.iot.common.bean.OrderByBean;
+import com.sie.iot.common.model.inter.server.BaseCommonServer;
+import com.sie.iot.common.util.SaafToolUtils;
+
+import com.sie.iot.distribute.transation.annotation.DistrTransMessageConsumer;
+import com.sie.iot.distribute.transation.annotation.DistrTransMessageParam;
+import com.sie.iot.distribute.transation.annotation.DistrTransMessageProvider;
+import com.siefw.hibernate.core.dao.ViewObject;
+import com.siefw.hibernate.core.paging.Pagination;
+import com.yuexiu.secp.read.infra.config.BpmProcessingUtil;
+import com.yuexiu.secp.read.infra.config.WorkflowApprovalStatus;
+import com.yuexiu.secp.read.model.dao.readonly.AdvertDaoRO;
+import com.yuexiu.secp.read.model.entities.AdvertEntity;
+import com.yuexiu.secp.read.model.entities.FlowProcessCallbackEntity;
+import com.yuexiu.secp.read.model.entities.readonly.AdvertEntityRo;
+import com.yuexiu.secp.read.model.service.IAdvertServer;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import java.util.HashMap;
+import java.util.Map;
+
+@Component("advertServer")
+public class AdvertServer extends BaseCommonServer implements IAdvertServer {
+
+ @Autowired
+ private ViewObject advertDao;
+ @Autowired
+ private AdvertDaoRO advertDaoRO;
+ @Autowired
+ private BpmProcessingUtil bpmProcessingUtil;
+
+ /***********流程标识***********/
+ /**
+ * 请假
+ */
+ public final static String QJSQD = "OABUS.QINGJ";
+
+ @Override
+ public Pagination findAdvertPagination(JSONObject jsonObject, Integer pageIndex, Integer pageRows, OrderByBean orderByBean) {
+ StringBuffer sql = new StringBuffer(AdvertEntityRo.QUERY);
+ Map map = new HashMap();
+ //拼接查询参数
+ SaafToolUtils.parperHbmParam(AdvertEntityRo.class,jsonObject,sql,map);
+ SaafToolUtils.changeQuerySort(jsonObject, sql, "ya.LAST_UPDATE_DATE desc", false); //排序
+ Pagination findListResult = advertDaoRO.findPagination(sql,map,pageIndex,pageRows);
+ return findListResult;
+ }
+ @Override
+ public AdvertEntity findById(Long id) {
+ AdvertEntity advertEntity = advertDao.getById(id);
+ return advertEntity;
+ }
+
+ @Override
+ public AdvertEntity saveOrUpdateAdvertInfo(AdvertEntity advertEntity) {
+ try {
+ //判断更新还是保存
+ if(advertEntity.getAdvertId() != null ){
+ advertDao.update(advertEntity);
+ }else {
+ advertDao.save(advertEntity);
+ }
+ } catch (Exception e){
+ e.printStackTrace();
+ }
+ return advertEntity;
+ }
+ @Override
+ @DistrTransMessageProvider(desc = "leaveProvider")
+ public void doCommit(AdvertEntity advertEntity,String processDefinitionKey) {
+ //提交之前先进行保存
+ this.saveOrUpdateAdvertInfo(advertEntity);
+
+ //封装流程参数
+ Map map = new HashMap<>();
+ map.put("processDefinitionKey",processDefinitionKey);//必传 流程定义Key 指定启动哪个流程
+ map.put("saveonly",false);//saveonly : 为true提交流程,流程不会走到下一个节点,为false流程会走到下一个节点
+ map.put("businessKey", advertEntity.getAdvertId());//必传 传入业务主键
+ map.put("title","广告维护申请流程:"+ advertEntity.getAdvertId());
+ map.put("orgId", advertEntity.getTenantId());//旧版传 记录租户id
+ map.put("companyId", advertEntity.getTenantId());//必传 记录租户id
+ //map.put("systemType","demo");//非必要
+ map.put("applyPersonId", advertEntity.getCreatedBy());//必传 申请人id
+
+// //非必传 ,这种是表单参数 流程变量中有用到表单字段需要在此传入
+// List