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> variablesList = new ArrayList<>(); +// Map startUserId = new HashMap<>(); +// startUserId.put("name","id"); +// startUserId.put("type","Long"); +// startUserId.put("value", advertEntity.getAdvertId()); +// map.put("variables",variablesList);// 非必传 ,流程变量中用到的变量需要在此传入 + + if ("草稿".equals(advertEntity.getAdvertState())){ + //提交流程 + bpmProcessingUtil.asynchronousToBpm(map); + } + } + /** + * 工作流每走一步都会在这里有一条消息 判断不同的状态 更新不同的业务表 + * @param msgId + * @param redisMessageContentBean + */ + @Override + @DistrTransMessageConsumer(desc = "updateAdvertState") + public void updateAdvertState(@DistrTransMessageParam Long msgId, RedisMessageContentBean redisMessageContentBean) { + String payload = redisMessageContentBean.getMessageBody(); + FlowProcessCallbackEntity callbackEntity = JSONObject.parseObject(payload, FlowProcessCallbackEntity.class); + //看下是不是 请假的流程标识 + if (QJSQD.equals(callbackEntity.getProcDefKey())){ + AdvertEntity entity = advertDao.getById(callbackEntity.getId()); + //审批通过 + if (WorkflowApprovalStatus.ALLOW.getIndex().equals(callbackEntity.getStatus())){ + entity.setAdvertState(001); + //处理其他业务 发邮件 什么的 + advertDao.update(entity); + //驳回 + } else if (WorkflowApprovalStatus.REFUSAL.getIndex().equals(callbackEntity.getStatus())){ + entity.setAdvertState(002); + advertDao.update(entity); + //审批中 + }else if (WorkflowApprovalStatus.APPROVAL.getIndex().equals(callbackEntity.getStatus())){ + entity.setAdvertState(003); + advertDao.update(entity); + } + } + } +} diff --git a/2068-yexiu-read-application/src/main/resources/com/yuexiu/secp/read/config/spring.mybatis.cfg.xml b/2068-yexiu-read-application/src/main/resources/com/yuexiu/secp/read/config/spring.mybatis.cfg.xml index c897107..cfe1d65 100644 --- a/2068-yexiu-read-application/src/main/resources/com/yuexiu/secp/read/config/spring.mybatis.cfg.xml +++ b/2068-yexiu-read-application/src/main/resources/com/yuexiu/secp/read/config/spring.mybatis.cfg.xml @@ -125,7 +125,8 @@ --> + value="com.yuexiu.secp.read.model.dao,com.sie.iot.base.model.dao"> + @@ -149,7 +150,8 @@ + || execution(* com.sie.iot.common.model.inter.server.*.*(..)) + || execution(* com.sie.iot.base.model.inter.server.*.*(..))"/>