| @@ -20,9 +20,13 @@ | |||
| </dependency> | |||
| <dependency> | |||
| <groupId>com.sie.irradiator</groupId> | |||
| <artifactId>2069-siedemo-comm-api</artifactId> | |||
| <artifactId>2068-yexiu-read-api</artifactId> | |||
| <version>2.0.3</version> | |||
| </dependency> | |||
| <dependency> | |||
| <groupId>com.sie.irradiator</groupId> | |||
| <artifactId>5002-sieiot-eventual-consistency-component</artifactId> | |||
| </dependency> | |||
| <!--<dependency>--> | |||
| <!--<groupId>org.springframework.boot</groupId>--> | |||
| <!--<artifactId>spring-boot-starter-data-mongodb</artifactId>--> | |||
| @@ -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<AdvertEntity> { | |||
| } | |||
| @@ -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<AdvertEntityRo> { | |||
| } | |||
| @@ -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; | |||
| } | |||
| @@ -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; | |||
| } | |||
| @@ -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; | |||
| } | |||
| @@ -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; | |||
| } | |||
| @@ -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<Pagination<AdvertEntityRo>> findTestUsersPagination(@RequestBody PaginationRequestData<AdvertDto> 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<AdvertEntityRo> 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(); | |||
| // } | |||
| } | |||
| @@ -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<String,Object> 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()); | |||
| } | |||
| } | |||
| } | |||
| @@ -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; | |||
| } | |||
| } | |||
| @@ -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<AdvertEntity> { | |||
| /** | |||
| * 分页查询列表 | |||
| * @param jsonObject | |||
| * @return | |||
| */ | |||
| Pagination<AdvertEntityRo> 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); | |||
| } | |||
| @@ -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<AdvertEntity> implements IAdvertServer { | |||
| @Autowired | |||
| private ViewObject<AdvertEntity> advertDao; | |||
| @Autowired | |||
| private AdvertDaoRO advertDaoRO; | |||
| @Autowired | |||
| private BpmProcessingUtil bpmProcessingUtil; | |||
| /***********流程标识***********/ | |||
| /** | |||
| * 请假 | |||
| */ | |||
| public final static String QJSQD = "OABUS.QINGJ"; | |||
| @Override | |||
| public Pagination<AdvertEntityRo> findAdvertPagination(JSONObject jsonObject, Integer pageIndex, Integer pageRows, OrderByBean orderByBean) { | |||
| StringBuffer sql = new StringBuffer(AdvertEntityRo.QUERY); | |||
| Map<String,Object> map = new HashMap<String,Object>(); | |||
| //拼接查询参数 | |||
| SaafToolUtils.parperHbmParam(AdvertEntityRo.class,jsonObject,sql,map); | |||
| SaafToolUtils.changeQuerySort(jsonObject, sql, "ya.LAST_UPDATE_DATE desc", false); //排序 | |||
| Pagination<AdvertEntityRo> 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<String,Object> 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<Map<String,Object>> variablesList = new ArrayList<>(); | |||
| // Map<String,Object> 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); | |||
| } | |||
| } | |||
| } | |||
| } | |||
| @@ -125,7 +125,8 @@ | |||
| --> | |||
| <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> | |||
| <property name="basePackage" | |||
| value="com.yuexiu.secp.read.model.dao"></property> | |||
| value="com.yuexiu.secp.read.model.dao,com.sie.iot.base.model.dao"></property> | |||
| </bean> | |||
| <!-- 配置事务的传播特性 --> | |||
| @@ -149,7 +150,8 @@ | |||
| <!-- 那些类的哪些方法参与事务 --> | |||
| <aop:config><!--|| execution(* com.sie.saaf.*.model.dao.readonly.*.*(..))--> | |||
| <aop:pointcut id="businessService" expression="execution(* com.yuexiu.secp.read.model.service.impl.*.*(..)) | |||
| || execution(* com.sie.iot.common.model.inter.server.*.*(..))"/> | |||
| || execution(* com.sie.iot.common.model.inter.server.*.*(..)) | |||
| || execution(* com.sie.iot.base.model.inter.server.*.*(..))"/> | |||
| <aop:advisor advice-ref="txAdvice" pointcut-ref="businessService" order="0"/> | |||
| </aop:config> | |||