diff --git a/src/main/java/com/qs/serve/modules/qms/controller/QmsGroupController.java b/src/main/java/com/qs/serve/modules/qms/controller/QmsGroupController.java index 049da8fa..840daef7 100644 --- a/src/main/java/com/qs/serve/modules/qms/controller/QmsGroupController.java +++ b/src/main/java/com/qs/serve/modules/qms/controller/QmsGroupController.java @@ -14,6 +14,7 @@ import com.qs.serve.common.util.PageUtil; import com.qs.serve.modules.qms.entity.QmsForm; import com.qs.serve.modules.qms.entity.QmsGroupScope; import com.qs.serve.modules.qms.entity.bo.QmsGroupBo; +import com.qs.serve.modules.qms.entity.bo.QmsHastenBo; import com.qs.serve.modules.qms.service.QmsFormService; import com.qs.serve.modules.qms.service.QmsGroupScopeService; import com.qs.serve.modules.sys.entity.SysDept; @@ -118,7 +119,7 @@ public class QmsGroupController { qmsGroup.setFormContext(qmsForm.getFormContext()); qmsGroup.setVersion(qmsForm.getVersion()); qmsGroupService.updateById(qmsGroup); - qmsGroupScopeService.removeById(qmsGroup.getFormId()); + qmsGroupScopeService.removeByGroupId(qmsGroup.getId()); qmsGroupScopeService.saveByBo(qmsGroup.getId(),param); return R.ok(); } @@ -137,11 +138,39 @@ public class QmsGroupController { if(qmsGroup.getPublishState().equals(1)){ return R.error("请勿重新发布"); } - //TODO 发布 + qmsGroup.setPublishState(1); + qmsGroupService.updateById(qmsGroup); + this.qmsGroupScopeService.publish(groupId); + //todo 发送推送 + return R.ok(); + } + + /** + * 催办 + * @param hastenBo + * @return + */ + @LimitSubmit + @PostMapping("/hasten") + @SysLog(module = SystemModule.QUESTION, title = "发布组", biz = BizType.UPDATE) + public R hasten(@RequestBody @Valid QmsHastenBo hastenBo){ + QmsGroup qmsGroup = qmsGroupService.getById(hastenBo.getGroupId()); + if(qmsGroup.getPublishState().equals(0)){ + return R.error("未发布不可以催办"); + } + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(QmsGroupScope::getGroupId,hastenBo.getGroupId()); + lqw.eq(QmsGroupScope::getFinished,0); + lqw.ne(QmsGroupScope::getScopeType,0); + lqw.ne(QmsGroupScope::getScopeType,2); + List groupScopes = qmsGroupScopeService.list(lqw); + List userIds = groupScopes.stream() + .map(QmsGroupScope::getScopeValue) + .distinct().collect(Collectors.toList()); + //todo 根据userId加载微信用户进行推送 return R.ok(); } - //TODO 催办 /** * 催办列表 @@ -155,11 +184,14 @@ public class QmsGroupController { LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); if(finished!=null){ lqw.eq(QmsGroupScope::getFinished,finished); + }else { + lqw.ne(QmsGroupScope::getFinished,-1); } if(groupId!=null){ lqw.eq(QmsGroupScope::getGroupId,groupId); } - lqw.in(QmsGroupScope::getScopeType,1,3); + lqw.ne(QmsGroupScope::getScopeType,0); + lqw.ne(QmsGroupScope::getScopeType,2); PageUtil.startPage(); List groupScopes = qmsGroupScopeService.list(lqw); List list = new ArrayList<>(); diff --git a/src/main/java/com/qs/serve/modules/qms/controller/api/QmsSubmitApiController.java b/src/main/java/com/qs/serve/modules/qms/controller/api/QmsSubmitApiController.java index dcc42d8d..e79df6f4 100644 --- a/src/main/java/com/qs/serve/modules/qms/controller/api/QmsSubmitApiController.java +++ b/src/main/java/com/qs/serve/modules/qms/controller/api/QmsSubmitApiController.java @@ -59,6 +59,8 @@ public class QmsSubmitApiController { lqw.eq(QmsGroupScope::getScopeValue,userId); if(finished!=null){ lqw.eq(QmsGroupScope::getFinished,finished); + }else { + lqw.ne(QmsGroupScope::getFinished,-1); } PageUtil.startPage(); List groupScopes = qmsGroupScopeService.list(lqw); diff --git a/src/main/java/com/qs/serve/modules/qms/entity/bo/QmsHastenBo.java b/src/main/java/com/qs/serve/modules/qms/entity/bo/QmsHastenBo.java new file mode 100644 index 00000000..abd68e35 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/qms/entity/bo/QmsHastenBo.java @@ -0,0 +1,25 @@ +package com.qs.serve.modules.qms.entity.bo; + +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * @author YenHex + * @since 2022/9/20 + */ +@Data +public class QmsHastenBo { + + /** + * 发送组id + */ + @NotNull + private Long groupId; + + /** + * 为空则发送给所用人 + */ + private String[] userIds; + +} diff --git a/src/main/java/com/qs/serve/modules/qms/service/QmsGroupScopeService.java b/src/main/java/com/qs/serve/modules/qms/service/QmsGroupScopeService.java index d7bbf4b1..16e0b106 100644 --- a/src/main/java/com/qs/serve/modules/qms/service/QmsGroupScopeService.java +++ b/src/main/java/com/qs/serve/modules/qms/service/QmsGroupScopeService.java @@ -18,6 +18,6 @@ public interface QmsGroupScopeService extends IService { QmsGroupScope getByGroupAndUid(Long groupId,String userId); void removeByGroupId(Long groupId); void saveByBo(Long groupId,QmsGroupBo groupBo); - + void publish(Long groupId); } diff --git a/src/main/java/com/qs/serve/modules/qms/service/impl/QmsGroupScopeServiceImpl.java b/src/main/java/com/qs/serve/modules/qms/service/impl/QmsGroupScopeServiceImpl.java index db695300..aef1a45f 100644 --- a/src/main/java/com/qs/serve/modules/qms/service/impl/QmsGroupScopeServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/qms/service/impl/QmsGroupScopeServiceImpl.java @@ -42,7 +42,8 @@ public class QmsGroupScopeServiceImpl extends ServiceImpl lqw = new LambdaQueryWrapper<>(); lqw.eq(QmsGroupScope::getGroupId,groupId); lqw.eq(QmsGroupScope::getScopeValue,userId); - lqw.in(QmsGroupScope::getScopeType,1,3); + lqw.ne(QmsGroupScope::getScopeType,0); + lqw.ne(QmsGroupScope::getScopeType,2); return this.getOne(lqw); } @@ -60,25 +61,45 @@ public class QmsGroupScopeServiceImpl extends ServiceImpl list = new ArrayList<>(); for (String scopeValue : groupBo.getScopeValue()) { + boolean isPersonType = groupBo.getScopeType().equals(1); QmsGroupScope groupScope = new QmsGroupScope(); groupScope.setGroupId(groupId); groupScope.setScopeType(groupBo.getScopeType()); - groupScope.setFinished(0); + //人员类型,临时修改为-1 表示未发布 + groupScope.setFinished(isPersonType?-1:0); groupScope.setScopeValue(scopeValue); list.add(groupScope); - if(groupBo.getScopeType().equals(2)){ + } + this.saveBatch(list); + } + + @Override + public void publish(Long groupId) { + List qmsGroupScopeList = this.listByGroupId(groupId); + List list = new ArrayList<>(); + for (QmsGroupScope groupScope : qmsGroupScopeList) { + boolean isDeptType = groupScope.getScopeType().equals(2); + boolean isPersonType = groupScope.getScopeType().equals(1); + boolean isAllType = groupScope.getScopeType().equals(1); + if(isDeptType || isAllType){ LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); - lqw.eq(SysUser::getDeptId,scopeValue); + if(isDeptType){ + lqw.eq(SysUser::getDeptId,groupScope.getScopeValue()); + } + lqw.isNotNull(SysUser::getMobile); lqw.select(SysUser::getId); List sysUsers = sysUserMapper.selectList(lqw); for (SysUser sysUser : sysUsers) { QmsGroupScope groupScope2 = new QmsGroupScope(); groupScope2.setGroupId(groupId); - groupScope2.setScopeType(3); + groupScope2.setScopeType(isDeptType?3:4); groupScope2.setFinished(0); groupScope2.setScopeValue(sysUser.getId()); - list.add(groupScope); + list.add(groupScope2); } + }else if (isPersonType){ + groupScope.setFinished(0); + this.updateById(groupScope); } } this.saveBatch(list);