Browse Source

调整

contract
Yen 2 years ago
parent
commit
c7721ecb5f
  1. 5
      src/main/java/com/qs/serve/modules/bms/controller/BmsChannelPointController.java
  2. 10
      src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierController.java
  3. 57
      src/main/java/com/qs/serve/modules/bms/controller/my/BmsChannelMyController.java
  4. 47
      src/main/java/com/qs/serve/modules/bms/controller/my/BmsChannelPointMyController.java
  5. 5
      src/main/java/com/qs/serve/modules/bms/mapper/BmsChannelMapper.java
  6. 4
      src/main/java/com/qs/serve/modules/bms/mapper/BmsChannelPointMapper.java
  7. 3
      src/main/java/com/qs/serve/modules/bms/service/BmsChannelPointService.java
  8. 3
      src/main/java/com/qs/serve/modules/bms/service/BmsChannelService.java
  9. 2
      src/main/java/com/qs/serve/modules/bms/service/BmsMasterUserService.java
  10. 5
      src/main/java/com/qs/serve/modules/bms/service/impl/BmsChannelPointServiceImpl.java
  11. 7
      src/main/java/com/qs/serve/modules/bms/service/impl/BmsChannelServiceImpl.java
  12. 21
      src/main/java/com/qs/serve/modules/his/service/impl/HisUserSupplierServiceImpl.java
  13. 7
      src/main/java/com/qs/serve/modules/qms/controller/QmsGroupController.java
  14. 8
      src/main/java/com/qs/serve/modules/qms/entity/QmsGroup.java
  15. 9
      src/main/java/com/qs/serve/modules/qms/entity/bo/QmsGroupBo.java
  16. 4
      src/main/java/com/qs/serve/modules/qms/mapper/QmsGroupMapper.java
  17. 6
      src/main/java/com/qs/serve/modules/sys/controller/SysUserController.java
  18. 1
      src/main/java/com/qs/serve/modules/sys/service/SysUserService.java
  19. 7
      src/main/java/com/qs/serve/modules/sys/service/impl/SysUserServiceImpl.java
  20. 22
      src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityPayConditionController.java
  21. 8
      src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityPayCondition.java
  22. 25
      src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityPayConditionBo.java
  23. 6
      src/main/java/com/qs/serve/modules/tbs/mapper/TbsActivityPayConditionMapper.java
  24. 2
      src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyApplicationServiceImpl.java
  25. 18
      src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationApplication.java
  26. 3
      src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java
  27. 185
      src/main/java/com/qs/serve/modules/wx/controller/WxFormPushController.java
  28. 8
      src/main/java/com/qs/serve/modules/wx/controller/WxFormPushTypeController.java
  29. 6
      src/main/java/com/qs/serve/modules/wx/controller/my/WxFormPushMyController.java
  30. 23
      src/main/java/com/qs/serve/modules/wx/entity/WxFormPush.java
  31. 3
      src/main/java/com/qs/serve/modules/wx/entity/WxFormPushUser.java
  32. 15
      src/main/java/com/qs/serve/modules/wx/entity/bo/WxFormPushBo.java
  33. 3
      src/main/java/com/qs/serve/modules/wx/entity/so/WxFormPushUserSo.java
  34. 4
      src/main/java/com/qs/serve/modules/wx/mapper/WxFormPushMapper.java
  35. 65
      src/main/resources/mapper/bms/BmsChannelMapper.xml
  36. 55
      src/main/resources/mapper/bms/BmsChannelPointMapper.xml
  37. 1
      src/main/resources/mapper/bms/BmsSupplierMapper.xml
  38. 6
      src/main/resources/mapper/wx/WxFormPushMapper.xml

5
src/main/java/com/qs/serve/modules/bms/controller/BmsChannelPointController.java

@ -36,6 +36,7 @@ import org.springframework.web.bind.annotation.*;
import com.qs.serve.modules.bms.entity.BmsChannelPoint;
import javax.validation.Valid;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
@ -68,10 +69,8 @@ public class BmsChannelPointController {
@GetMapping("/page4Visit")
public R<PageVo<BmsUserPoint4VisitVo>> getPage4Visit(BmsPointVisitSo param){
String sysUserId = AuthContextUtils.getSysUserId();
param.setUserId(sysUserId);
param.setTenantId(AuthContextUtils.getTenant());
PageUtil.startPage();
List<BmsUserPoint4VisitVo> list = channelPointMapper.selectUserPointList4Visit(param);
List<BmsUserPoint4VisitVo> list = channelPointMapper.selectUserPointList4Visit(param, Arrays.asList(sysUserId));
for (BmsUserPoint4VisitVo visitVo : list) {
LambdaQueryWrapper<BazVisitInfo> visitInfoLqw = new LambdaQueryWrapper<>();
visitInfoLqw.eq(BazVisitInfo::getTargetType, BazTargetTypeConsts.POINT);

10
src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierController.java

@ -272,6 +272,16 @@ public class BmsSupplierController {
BmsSupplier supplier1 = new BmsSupplier();
supplier1.setId(supplier.getId());
supplier1.setOtherUserIds(otherUserIds.toArray(new String[otherUserIds.size()]));
if(otherUserIds.size()<1){
supplier1.setOtherUserNames("");
supplier1.setOtherUserCodes("");
}else {
List<SysUser> sysUsers = sysUserService.listByIds(otherUserIds);
String names = sysUsers.stream().map(SysUser::getName).collect(Collectors.joining(","));
String codes = sysUsers.stream().map(SysUser::getCode).collect(Collectors.joining(","));
supplier1.setOtherUserNames(names);
supplier1.setOtherUserCodes(codes);
}
bmsSupplierService.updateById(supplier1);
}
initSupplierOtherInfo(Arrays.asList(supplier.getId()));

57
src/main/java/com/qs/serve/modules/bms/controller/my/BmsChannelMyController.java

@ -32,6 +32,7 @@ import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
@ -57,20 +58,22 @@ public class BmsChannelMyController {
*/
@GetMapping("/page")
public R<PageVo<BmsChannel>> getPage(BmsChannel param){
LambdaQueryWrapper<BmsMasterUser> lqw = new LambdaQueryWrapper<>();
lqw.eq(BmsMasterUser::getUserId, AuthContextUtils.getSysUserId());
lqw.eq(BmsMasterUser::getType,MasterUserType.Channel);
lqw.select(BmsMasterUser::getTargetId);
List<BmsMasterUser> masterUsers = bmsMasterUserService.list(lqw);
List<String> targetIds = masterUsers.stream().map(BmsMasterUser::getTargetId).distinct().collect(Collectors.toList());
if(CollectionUtil.isEmpty(targetIds)){
return R.byEmptyList();
}
// LambdaQueryWrapper<BmsMasterUser> lqw = new LambdaQueryWrapper<>();
// lqw.eq(BmsMasterUser::getUserId, AuthContextUtils.getSysUserId());
// lqw.eq(BmsMasterUser::getType,MasterUserType.Channel);
// lqw.select(BmsMasterUser::getTargetId);
// List<BmsMasterUser> masterUsers = bmsMasterUserService.list(lqw);
// List<String> targetIds = masterUsers.stream().map(BmsMasterUser::getTargetId).distinct().collect(Collectors.toList());
// if(CollectionUtil.isEmpty(targetIds)){
// return R.byEmptyList();
// }
// PageUtil.startPage();
// LambdaQueryWrapper<BmsChannel> channelWrapper = new LambdaQueryWrapper<>(param);
// channelWrapper.orderByDesc(BmsChannel::getCreateTime);
// channelWrapper.in(BmsChannel::getId,targetIds);
// List<BmsChannel> list = bmsChannelService.list(channelWrapper);
PageUtil.startPage();
LambdaQueryWrapper<BmsChannel> channelWrapper = new LambdaQueryWrapper<>(param);
channelWrapper.orderByDesc(BmsChannel::getCreateTime);
channelWrapper.in(BmsChannel::getId,targetIds);
List<BmsChannel> list = bmsChannelService.list(channelWrapper);
List<BmsChannel> list = bmsChannelService.selectChannelList(param, Arrays.asList(AuthContextUtils.getSysUserId()));
return R.byPageHelperList(list);
}
@ -87,20 +90,22 @@ public class BmsChannelMyController {
if(CollectionUtil.isEmpty(userIds)){
return R.byEmptyList();
}
LambdaQueryWrapper<BmsMasterUser> lqw = new LambdaQueryWrapper<>();
lqw.in(BmsMasterUser::getUserId, userIds);
lqw.eq(BmsMasterUser::getType,MasterUserType.Channel);
lqw.select(BmsMasterUser::getTargetId);
List<BmsMasterUser> masterUsers = bmsMasterUserService.list(lqw);
List<String> targetIds = masterUsers.stream().map(BmsMasterUser::getTargetId).distinct().collect(Collectors.toList());
if(CollectionUtil.isEmpty(targetIds)){
return R.byEmptyList();
}
// LambdaQueryWrapper<BmsMasterUser> lqw = new LambdaQueryWrapper<>();
// lqw.in(BmsMasterUser::getUserId, userIds);
// lqw.eq(BmsMasterUser::getType,MasterUserType.Channel);
// lqw.select(BmsMasterUser::getTargetId);
// List<BmsMasterUser> masterUsers = bmsMasterUserService.list(lqw);
// List<String> targetIds = masterUsers.stream().map(BmsMasterUser::getTargetId).distinct().collect(Collectors.toList());
// if(CollectionUtil.isEmpty(targetIds)){
// return R.byEmptyList();
// }
// PageUtil.startPage();
// LambdaQueryWrapper<BmsChannel> channelWrapper = new LambdaQueryWrapper<>(param);
// channelWrapper.orderByDesc(BmsChannel::getCreateTime);
// channelWrapper.in(BmsChannel::getId,targetIds);
// List<BmsChannel> list = bmsChannelService.list(channelWrapper);
PageUtil.startPage();
LambdaQueryWrapper<BmsChannel> channelWrapper = new LambdaQueryWrapper<>(param);
channelWrapper.orderByDesc(BmsChannel::getCreateTime);
channelWrapper.in(BmsChannel::getId,targetIds);
List<BmsChannel> list = bmsChannelService.list(channelWrapper);
List<BmsChannel> list = bmsChannelService.selectChannelList(param, userIds);
return R.byPageHelperList(list);
}

47
src/main/java/com/qs/serve/modules/bms/controller/my/BmsChannelPointMyController.java

@ -10,19 +10,14 @@ import com.qs.serve.common.util.*;
import com.qs.serve.modules.baz.common.BazTargetTypeConsts;
import com.qs.serve.modules.baz.entity.BazVisitInfo;
import com.qs.serve.modules.baz.service.BazVisitInfoService;
import com.qs.serve.modules.bms.entity.BmsChannelPoint;
import com.qs.serve.modules.bms.entity.BmsRegion;
import com.qs.serve.modules.bms.entity.BmsRegion2;
import com.qs.serve.modules.bms.entity.BmsRegionUser;
import com.qs.serve.modules.bms.common.MasterUserType;
import com.qs.serve.modules.bms.entity.*;
import com.qs.serve.modules.bms.entity.bo.BmsChannelPointBo;
import com.qs.serve.modules.bms.entity.bo.BmsChannelPointMapInfoBo;
import com.qs.serve.modules.bms.entity.so.BmsPointVisitSo;
import com.qs.serve.modules.bms.entity.vo.BmsUserPoint4VisitVo;
import com.qs.serve.modules.bms.mapper.BmsChannelPointMapper;
import com.qs.serve.modules.bms.service.BmsChannelPointService;
import com.qs.serve.modules.bms.service.BmsRegion2Service;
import com.qs.serve.modules.bms.service.BmsRegionService;
import com.qs.serve.modules.bms.service.BmsRegionUserService;
import com.qs.serve.modules.bms.service.*;
import com.qs.serve.modules.his.service.HisUserChannelPointService;
import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.sys.service.SysPostUserService;
@ -36,6 +31,7 @@ import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
@ -60,6 +56,7 @@ public class BmsChannelPointMyController {
private SysUserService sysUserService;
private BmsRegionUserService bmsRegionUserService;
private SysPostUserService postUserService;
private BmsMasterUserService bmsMasterUserService;
/**
@ -70,7 +67,7 @@ public class BmsChannelPointMyController {
@GetMapping("/page")
public R<PageVo<BmsChannelPoint>> getPage(BmsChannelPoint param){
PageUtil.startPage();
param.setUserId(AuthContextUtils.getSysUserId());
/*param.setUserId(AuthContextUtils.getSysUserId());
param.setTenantId(AuthContextUtils.getTenant());
List<BmsChannelPoint> list = bmsChannelPointService.selectChannelPointMyList(param);
for (BmsChannelPoint channelPoint : list) {
@ -86,7 +83,8 @@ public class BmsChannelPointMyController {
channelPoint.setSaleRegionName(regions[regions.length-1]);
}
}
}
}*/
List<BmsChannelPoint> list = bmsChannelPointService.selectChannelPointMyList(param, Arrays.asList(AuthContextUtils.getSysUserId()));
return R.byPageHelperList(list);
}
@ -101,19 +99,22 @@ public class BmsChannelPointMyController {
public R<PageVo<BmsChannelPoint>> getPage4Under(BmsChannelPoint param){
String loginUserId = AuthContextUtils.getSysUserId();
List<String> userIds = postUserService.listByChildIds(loginUserId);
param.setUserIdList(userIds);
LambdaQueryWrapper<BmsRegionUser> rulqw = new LambdaQueryWrapper<>();
rulqw.select(BmsRegionUser::getPathIds,BmsRegionUser::getId);
rulqw.eq(BmsRegionUser::getUserId,loginUserId);
List<BmsRegionUser> regionUserList = bmsRegionUserService.list(rulqw);
if(CollectionUtil.isNotEmpty(regionUserList)){
List<String> regionPaths = regionUserList.stream().map(BmsRegionUser::getPathIds)
.filter(StringUtils::hasText).distinct().collect(Collectors.toList());
param.setSourceIdsList(regionPaths);
}
PageUtil.startPage();
param.setTenantId(AuthContextUtils.getTenant());
List<BmsChannelPoint> list = bmsChannelPointService.selectChannelPointMyUnderList(param);
//旧版本加载方式
// param.setUserIdList(userIds);
// LambdaQueryWrapper<BmsRegionUser> rulqw = new LambdaQueryWrapper<>();
// rulqw.select(BmsRegionUser::getPathIds,BmsRegionUser::getId);
// rulqw.eq(BmsRegionUser::getUserId,loginUserId);
// List<BmsRegionUser> regionUserList = bmsRegionUserService.list(rulqw);
// if(CollectionUtil.isNotEmpty(regionUserList)){
// List<String> regionPaths = regionUserList.stream().map(BmsRegionUser::getPathIds)
// .filter(StringUtils::hasText).distinct().collect(Collectors.toList());
// param.setSourceIdsList(regionPaths);
// }
// PageUtil.startPage();
// param.setTenantId(AuthContextUtils.getTenant());
// List<BmsChannelPoint> list = bmsChannelPointService.selectChannelPointMyUnderList(param);
//新版本加载方式
List<BmsChannelPoint> list = bmsChannelPointService.selectChannelPointMyList(param, userIds);
for (BmsChannelPoint channelPoint : list) {
if(StringUtils.hasText(channelPoint.getBizRegionPath())){
String[] bizRegions = channelPoint.getBizRegionPath().split("_");

5
src/main/java/com/qs/serve/modules/bms/mapper/BmsChannelMapper.java

@ -2,6 +2,9 @@ package com.qs.serve.modules.bms.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.serve.modules.bms.entity.BmsChannel;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 渠道 Mapper
@ -10,5 +13,7 @@ import com.qs.serve.modules.bms.entity.BmsChannel;
*/
public interface BmsChannelMapper extends BaseMapper<BmsChannel> {
List<BmsChannel> selectChannelList(@Param("query") BmsChannel channel, @Param("userIds") List<String> userIds);
}

4
src/main/java/com/qs/serve/modules/bms/mapper/BmsChannelPointMapper.java

@ -31,13 +31,15 @@ public interface BmsChannelPointMapper extends BaseMapper<BmsChannelPoint> {
List<BmsChannelPoint> selectChannelPointList(@Param("query") BmsChannelPoint channelPoint);
List<BmsChannelPoint> selectPointByUserIds(@Param("query")BmsChannelPoint channelPoint, @Param("userIds")List<String> userIds);
/**
* 直属管理人
* @param param
* @return
*/
@InterceptorIgnore(tenantLine = "1")
List<BmsUserPoint4VisitVo> selectUserPointList4Visit(@Param("query") BmsPointVisitSo param);
List<BmsUserPoint4VisitVo> selectUserPointList4Visit(@Param("query") BmsPointVisitSo param,@Param("userIds")List<String> userIds);
/**
* 直属管理人

3
src/main/java/com/qs/serve/modules/bms/service/BmsChannelPointService.java

@ -19,8 +19,9 @@ public interface BmsChannelPointService extends IService<BmsChannelPoint> {
List<BmsChannelPoint> selectChannelPointList(BmsChannelPoint channelPoint);
List<BmsChannelPoint> selectChannelPointMyList(BmsChannelPoint channelPoint);
List<BmsChannelPoint> selectChannelPointMyList(BmsChannelPoint channelPoint,List<String> userIds);
List<BmsChannelPoint> selectChannelPointMyList(BmsChannelPoint channelPoint);
List<BmsChannelPoint> selectChannelPointMyUnderList(BmsChannelPoint channelPoint);
List<BmsChannelPoint> listByBizRegionId(String id);

3
src/main/java/com/qs/serve/modules/bms/service/BmsChannelService.java

@ -2,6 +2,7 @@ package com.qs.serve.modules.bms.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.modules.bms.entity.BmsChannel;
import java.util.List;
/**
* 渠道 服务接口
@ -10,5 +11,7 @@ import com.qs.serve.modules.bms.entity.BmsChannel;
*/
public interface BmsChannelService extends IService<BmsChannel> {
List<BmsChannel> selectChannelList(BmsChannel channel,List<String> userIds);
}

2
src/main/java/com/qs/serve/modules/bms/service/BmsMasterUserService.java

@ -3,7 +3,7 @@ package com.qs.serve.modules.bms.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.modules.bms.entity.BmsMasterUser;
import com.qs.serve.modules.bms.entity.BmsRegionUser;
import java.util.List;
/**
* 负责人 服务接口
* @author YenHex

5
src/main/java/com/qs/serve/modules/bms/service/impl/BmsChannelPointServiceImpl.java

@ -112,6 +112,11 @@ public class BmsChannelPointServiceImpl extends ServiceImpl<BmsChannelPointMappe
return baseMapper.selectChannelPointList(channelPoint);
}
@Override
public List<BmsChannelPoint> selectChannelPointMyList(BmsChannelPoint channelPoint, List<String> userIds) {
return baseMapper.selectPointByUserIds(channelPoint, userIds);
}
@Override
public List<BmsChannelPoint> selectChannelPointMyList(BmsChannelPoint channelPoint) {
return baseMapper.selectUserPointList4My(channelPoint);

7
src/main/java/com/qs/serve/modules/bms/service/impl/BmsChannelServiceImpl.java

@ -8,6 +8,8 @@ import com.qs.serve.modules.bms.entity.BmsChannel;
import com.qs.serve.modules.bms.service.BmsChannelService;
import com.qs.serve.modules.bms.mapper.BmsChannelMapper;
import java.util.List;
/**
* 渠道 服务实现类
* @author YenHex
@ -18,5 +20,10 @@ import com.qs.serve.modules.bms.mapper.BmsChannelMapper;
@AllArgsConstructor
public class BmsChannelServiceImpl extends ServiceImpl<BmsChannelMapper,BmsChannel> implements BmsChannelService {
@Override
public List<BmsChannel> selectChannelList(BmsChannel channel, List<String> userIds) {
return baseMapper.selectChannelList(channel, userIds);
}
}

21
src/main/java/com/qs/serve/modules/his/service/impl/HisUserSupplierServiceImpl.java

@ -15,6 +15,7 @@ import com.qs.serve.modules.bms.service.BmsRegion2Service;
import com.qs.serve.modules.bms.service.BmsRegionService;
import com.qs.serve.modules.bms.service.BmsRegionUserService;
import com.qs.serve.modules.bms.service.BmsSupplierService;
import com.qs.serve.modules.sys.service.SysPostUserService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@ -39,6 +40,7 @@ public class HisUserSupplierServiceImpl extends ServiceImpl<HisUserSupplierMappe
private BmsRegionService saleRegionService;
private BmsRegion2Service bizRegionService;
private BmsRegionUserService regionUserService;
private SysPostUserService sysPostUserService;
@Override
public List<HisUserSupplier> selectSupplier(BmsSupplier param, boolean usePage) {
@ -83,6 +85,10 @@ public class HisUserSupplierServiceImpl extends ServiceImpl<HisUserSupplierMappe
public boolean initByUserId(String userId,boolean hasCheck) {
if(!hasCheck){
boolean checkInit = this.checkInit(userId);
List<String> childUserList = sysPostUserService.listByChildIds(userId);
for (String childUserId : childUserList) {
this.initByUserId(childUserId,false);
}
if(checkInit){
return true;
}
@ -141,11 +147,20 @@ public class HisUserSupplierServiceImpl extends ServiceImpl<HisUserSupplierMappe
if(regionIds.size()>0){
LambdaQueryWrapper<BmsSupplier> lqw = new LambdaQueryWrapper<>();
if(level.equals(1)){
lqw.in(BmsSupplier::getRegionFirst,regionIds);
lqw.and(
aa->aa.in(BmsSupplier::getRegionFirst,regionIds)
.or().in(BmsSupplier::getRegion2First,regionIds)
);
}else if(level.equals(2)){
lqw.in(BmsSupplier::getRegionSecond,regionIds);
lqw.and(
aa->aa.in(BmsSupplier::getRegionSecond,regionIds)
.or().in(BmsSupplier::getRegion2Second,regionIds)
);
}else if(level.equals(3)){
lqw.in(BmsSupplier::getRegionThird,regionIds);
lqw.and(
aa->aa.in(BmsSupplier::getRegionThird,regionIds)
.or().in(BmsSupplier::getRegion2Third,regionIds)
);
}
List<BmsSupplier> supplierList = bmsSupplierService.list(lqw);
for (BmsSupplier supplier : supplierList) {

7
src/main/java/com/qs/serve/modules/qms/controller/QmsGroupController.java

@ -13,6 +13,7 @@ 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.mapper.QmsGroupMapper;
import com.qs.serve.modules.qms.service.QmsFormService;
import com.qs.serve.modules.qms.service.QmsGroupScopeService;
import com.qs.serve.modules.sys.entity.SysDept;
@ -48,6 +49,7 @@ import java.util.stream.Collectors;
@RequestMapping("qms/group")
public class QmsGroupController {
private QmsGroupMapper qmsGroupMapper;
private QmsGroupService qmsGroupService;
private QmsFormService qmsFormService;
private QmsGroupScopeService qmsGroupScopeService;
@ -123,7 +125,11 @@ public class QmsGroupController {
QmsForm qmsForm = qmsFormService.getById(qmsGroup.getFormId());
qmsGroup.setFormContext(qmsForm.getFormContext());
qmsGroup.setVersion(qmsForm.getVersion());
qmsGroup.setPreNotifyStatus(param.getPreNotifyTime()==null?0:1);
qmsGroupService.updateById(qmsGroup);
if(param.getPreNotifyTime()==null){
qmsGroupMapper.updateSetNotifyTimeNull(param.getId()+"");
}
qmsGroupScopeService.removeByGroupId(qmsGroup.getId());
qmsGroupScopeService.saveByBo(qmsGroup.getId(),param);
return R.ok();
@ -245,6 +251,7 @@ public class QmsGroupController {
qmsGroup.setFormContext(qmsForm.getFormContext());
qmsGroup.setVersion(qmsForm.getVersion());
qmsGroup.setPublishState(0);
qmsGroup.setPreNotifyStatus(param.getPreNotifyTime()==null?0:1);
qmsGroupService.save(qmsGroup);
qmsGroupScopeService.saveByBo(qmsGroup.getId(),param);
return R.ok();

8
src/main/java/com/qs/serve/modules/qms/entity/QmsGroup.java

@ -77,6 +77,14 @@ public class QmsGroup implements Serializable {
private Integer version;
/** 预通知标识:0->无通知;1->未通知;2->已通知 */
private Integer preNotifyStatus;
/** 预通知时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDateTime preNotifyTime;
/** 使用范围值 */
//@TableField(typeHandler = SplitStringTypeHandler.class,jdbcType= JdbcType.VARCHAR)
//private String[] scopeValue;

9
src/main/java/com/qs/serve/modules/qms/entity/bo/QmsGroupBo.java

@ -1,9 +1,12 @@
package com.qs.serve.modules.qms.entity.bo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;
/**
* @author YenHex
@ -39,4 +42,10 @@ public class QmsGroupBo {
* 最少提交人数,0表示不限制
*/
private Integer limitSubmit;
/** 预通知时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDateTime preNotifyTime;
}

4
src/main/java/com/qs/serve/modules/qms/mapper/QmsGroupMapper.java

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.serve.modules.qms.entity.QmsGroup;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import java.util.List;
@ -22,5 +23,8 @@ public interface QmsGroupMapper extends BaseMapper<QmsGroup> {
*/
List<QmsGroup> listByUserIdOrDeptId(@Param("userId")String userId,@Param("deptId")String deptId);
@Update("update `qms_group` set pre_notify_time = null where id = #{id}")
void updateSetNotifyTimeNull(@Param("id")String id);
}

6
src/main/java/com/qs/serve/modules/sys/controller/SysUserController.java

@ -465,9 +465,9 @@ public class SysUserController {
@PreAuthorize("hasRole('sys:user:reset')")
public R<?> resetPwd(@PathVariable("uid") String uid){
SysUser sysUser = sysUserService.getById(uid);
if(sysUser.getSuperFlag().equals(1)){
Assert.throwEx("最高级管理员不可重置密码");
}
// if(sysUser.getSuperFlag().equals(1)){
// Assert.throwEx("最高级管理员不可重置密码");
// }
SysUser sysUser1 = new SysUser();
sysUser1.setId(uid);
sysUser1.setPassword(SecureUtil.md5(GySysConst.DEFAULT_PASSWORD));

1
src/main/java/com/qs/serve/modules/sys/service/SysUserService.java

@ -42,6 +42,7 @@ public interface SysUserService extends IService<SysUser> {
LoginUser buildLoginUser(SysUser sysUser);
List<SysUser> listByOaMemberIds(List<String> memberIds);
List<SysUser> listByCodes(List<String> codes);
SysUser listByOaMemberId(String memberId);

7
src/main/java/com/qs/serve/modules/sys/service/impl/SysUserServiceImpl.java

@ -180,6 +180,13 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
return this.list(lqw);
}
@Override
public List<SysUser> listByCodes(List<String> codes) {
LambdaQueryWrapper<SysUser> lqw = new LambdaQueryWrapper<>();
lqw.in(SysUser::getCode,codes);
return this.list(lqw);
}
@Override
public SysUser listByOaMemberId(String memberId) {
LambdaQueryWrapper<SysUser> lqw = new LambdaQueryWrapper<>();

22
src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityPayConditionController.java

@ -6,11 +6,16 @@ import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.enums.BizType;
import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.Assert;
import com.qs.serve.common.util.PageUtil;
import com.qs.serve.common.util.CopierUtil;
import com.qs.serve.common.util.StringUtils;
import com.qs.serve.modules.tbs.common.TbsCostApplyState;
import com.qs.serve.modules.tbs.entity.TbsActivity;
import com.qs.serve.modules.tbs.entity.TbsCostApply;
import com.qs.serve.modules.tbs.mapper.TbsActivityPayConditionMapper;
import com.qs.serve.modules.tbs.service.TbsActivityService;
import com.qs.serve.modules.tbs.service.TbsCostApplyService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
@ -35,8 +40,10 @@ import java.util.List;
@RequestMapping("tbs/activityPayCondition")
public class TbsActivityPayConditionController {
private TbsActivityPayConditionMapper tbsActivityPayConditionMapper;
private TbsActivityPayConditionService tbsActivityPayConditionService;
private TbsActivityService tbsActivityService;
private final TbsCostApplyService costApplyService;
/**
* 列表
@ -87,7 +94,16 @@ public class TbsActivityPayConditionController {
@PostMapping("/updateById")
@SysLog(module = SystemModule.Budget, title = "活动支付条件", biz = BizType.UPDATE)
public R<?> updateById(@RequestBody @Valid TbsActivityPayConditionBo param){
TbsCostApply costApply = costApplyService.getById(param.getCostApplyId());
if(!costApply.getChargeState().equals(TbsCostApplyState.State_0_unPublish.getCode())
&&!costApply.getChargeState().equals(TbsCostApplyState.State_4_refused.getCode())){
Assert.throwEx("因费用状态不支持编辑!!");
}
TbsActivityPayCondition entity = CopierUtil.copy(param,new TbsActivityPayCondition());
entity.setPreNotifyStatus(param.getPreNotifyTime()==null?0:1);
if(param.getPreNotifyTime()==null){
tbsActivityPayConditionMapper.updateSetNotifyTimeNull(entity.getId()+"");
}
entity.setCostApplyId(null);
boolean result = tbsActivityPayConditionService.updateById(entity);
return R.isTrue(result);
@ -101,10 +117,16 @@ public class TbsActivityPayConditionController {
@PostMapping("/save")
@SysLog(module = SystemModule.Budget, title = "活动支付条件", biz = BizType.INSERT)
public R<?> save(@RequestBody @Valid TbsActivityPayConditionBo param){
TbsCostApply costApply = costApplyService.getById(param.getCostApplyId());
if(!costApply.getChargeState().equals(TbsCostApplyState.State_0_unPublish.getCode())
&&!costApply.getChargeState().equals(TbsCostApplyState.State_4_refused.getCode())){
Assert.throwEx("因费用状态不支持编辑!!");
}
TbsActivityPayCondition entity = CopierUtil.copy(param,new TbsActivityPayCondition());
List<TbsActivity> activityList = tbsActivityService.listByCostApplyId(param.getCostApplyId());
Long actId = activityList.get(0).getId();
entity.setActivityId(actId);
entity.setPreNotifyStatus(param.getPreNotifyTime()==null?0:1);
boolean result = tbsActivityPayConditionService.save(entity);
return R.isTrue(result);
}

8
src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityPayCondition.java

@ -52,6 +52,14 @@ public class TbsActivityPayCondition implements Serializable {
@NotNull(message = "付款金额不能为空")
private BigDecimal paymentPrice;
/** 预通知标识:0->无通知;1->未通知;2->已通知 */
private Integer preNotifyStatus;
/** 预通知时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDateTime preNotifyTime;
/** 付款时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")

25
src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityPayConditionBo.java

@ -55,29 +55,10 @@ public class TbsActivityPayConditionBo implements Serializable {
@Length(max = 255,message = "备注长度不能超过255字")
private String remark;
/** 创建时间 */
/** 预支付通知时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
/** 更新时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime updateTime;
/** 创建人 */
private String createBy;
/** 更新人 */
private String updateBy;
/** 租户id */
@JsonIgnore
@JsonProperty
private String tenantId;
/** 删除标识 */
@JsonIgnore
@JsonProperty
private Boolean delFlag;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDateTime preNotifyTime;
}

6
src/main/java/com/qs/serve/modules/tbs/mapper/TbsActivityPayConditionMapper.java

@ -2,6 +2,8 @@ package com.qs.serve.modules.tbs.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.serve.modules.tbs.entity.TbsActivityPayCondition;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;
/**
* 活动支付条件 Mapper
@ -10,5 +12,9 @@ import com.qs.serve.modules.tbs.entity.TbsActivityPayCondition;
*/
public interface TbsActivityPayConditionMapper extends BaseMapper<TbsActivityPayCondition> {
@Update("update `tbs_activity_pay_condition` set pre_notify_time = null where id = #{id}")
void updateSetNotifyTimeNull(@Param("id")String id);
}

2
src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyApplicationServiceImpl.java

@ -230,7 +230,7 @@ public class TzcPolicyApplicationServiceImpl implements TzcPolicyApplicationServ
budgetLogService.saveBatch(budgetLogList);
}
//创建流程后回调
BaseCreateCallbackBo callbackBo = new BaseCreateCallbackBo(TbsSeeYonConst.PolicyConf.Code(),formId);
BaseCreateCallbackBo callbackBo = new BaseCreateCallbackBo(TbsSeeYonConst.PolicyConf.Code(),tzcPolicy.getId()+"");
seeYonService.createCallbackStatus(callbackBo);
}

18
src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationApplication.java

@ -216,10 +216,12 @@ public class VtbVerificationApplication {
vtbVerificationSubjectService.updateBatchById(verSubject4Update);
//重新计算合计
if(isFinish){
//支付条件完成
TbsActivityPayCondition payCondition = activityPayConditionService.getById(verification.getPayConditionId());
payCondition.setFinishedFlag(1);
activityPayConditionService.updateById(payCondition);
if(verification.getPayConditionId()!=null){
//支付条件完成
TbsActivityPayCondition payCondition = activityPayConditionService.getById(verification.getPayConditionId());
payCondition.setFinishedFlag(1);
activityPayConditionService.updateById(payCondition);
}
//更新金额,已完成
VtbVerification vtbVer = new VtbVerification();
vtbVer.setId(verification.getId());
@ -259,9 +261,11 @@ public class VtbVerificationApplication {
vtbVerificationService.updateById(vtbVer);
}
//还原支付条件
TbsActivityPayCondition payCondition = activityPayConditionService.getById(verification.getPayConditionId());
payCondition.setFinishedFlag(0);
activityPayConditionService.updateById(payCondition);
if(verification.getPayConditionId()!=null){
TbsActivityPayCondition payCondition = activityPayConditionService.getById(verification.getPayConditionId());
payCondition.setFinishedFlag(0);
activityPayConditionService.updateById(payCondition);
}
//还原活动为待核销状态
TbsActivity activity = new TbsActivity();
activity.setId(verification.getActivityId());

3
src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java

@ -335,6 +335,7 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
data.put("targetId",verification.getId());
data.put("targetCode",verification.getVerificationCode());
data.put("exsp1",TbsSeeYonConst.CostCheckConf.Code());
data.put("jinE",verification.getAmount().toString());
BaseCreateProcessBo createProcess = new BaseCreateProcessBo();
createProcess.setTemplateCode(TbsSeeYonConst.CostCheckConf.Code());
createProcess.setMemberLoginName(sysUser.getSyAccount());
@ -353,7 +354,7 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
verification.setSyFlowId(flowId);
verification.setSyFormId(formId);
//创建流程后回调
BaseCreateCallbackBo callbackBo = new BaseCreateCallbackBo(TbsSeeYonConst.CostCheckConf.Code(),formId);
BaseCreateCallbackBo callbackBo = new BaseCreateCallbackBo(TbsSeeYonConst.CostCheckConf.Code(),verification.getId()+"");
seeYonService.createCallbackStatus(callbackBo);
}

185
src/main/java/com/qs/serve/modules/wx/controller/WxFormPushController.java

@ -11,10 +11,13 @@ import com.qs.serve.common.util.PageUtil;
import com.qs.serve.common.util.CopierUtil;
import com.qs.serve.common.util.StringUtils;
import com.qs.serve.modules.sys.entity.SysAttach;
import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.sys.service.SysAttachService;
import com.qs.serve.modules.sys.service.SysUserService;
import com.qs.serve.modules.wx.entity.*;
import com.qs.serve.modules.wx.entity.dto.sms.WxSmsNewForm;
import com.qs.serve.modules.wx.entity.vo.WxPushResultVo;
import com.qs.serve.modules.wx.mapper.WxFormPushMapper;
import com.qs.serve.modules.wx.service.*;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@ -40,6 +43,7 @@ import java.util.stream.Collectors;
@RequestMapping("wx/formPush")
public class WxFormPushController {
private WxFormPushMapper wxFormPushMapper;
private WxFormPushService wxFormPushService;
private WxFormPushUserService wxFormPushUserService;
private WxFormPushTypeService wxFormPushTypeService;
@ -47,22 +51,9 @@ public class WxFormPushController {
private WxPushService wxPushService;
private WxAppService wxAppService;
private SysAttachService attachService;
private SysUserService sysUserService;
/**
* 列表
* @param param
* @return
*/
//@GetMapping("/list")
// @PreAuthorize("hasRole('wx:formPush:query')")
public R<List<WxFormPush>> getList(WxFormPush param){
LambdaQueryWrapper<WxFormPush> lqw = new LambdaQueryWrapper<>(param);
PageUtil.startPage();
List<WxFormPush> list = wxFormPushService.list(lqw);
return R.ok(list);
}
/**
* 翻页
* @param param
@ -89,6 +80,13 @@ public class WxFormPushController {
LambdaQueryWrapper<WxFormPushUser> userlqw = new LambdaQueryWrapper<>();
userlqw.eq(WxFormPushUser::getFormPushId,wxFormPush.getId());
List<WxFormPushUser> list = wxFormPushUserService.list(userlqw);
wxFormPush.setShowCompensateButton(0);
for (WxFormPushUser pushUser : list) {
if(pushUser.getPushStatus().equals(0)){
wxFormPush.setShowCompensateButton(1);
break;
}
}
wxFormPush.setWxFormPushUserList(list);
if(CollectionUtil.isNotEmpty(wxFormPush.getAttachIds())){
List<String> attachIds = Arrays.asList(wxFormPush.getAttachIds());
@ -100,20 +98,6 @@ public class WxFormPushController {
/**
* 更新
* @param param
* @return
*/
// @PostMapping("/updateById")
@SysLog(module = SystemModule.Verification, title = "表单推送", biz = BizType.UPDATE)
// @PreAuthorize("hasRole('wx:formPush:update')")
public R<?> updateById(@RequestBody @Valid WxFormPushBo param){
WxFormPush entity = CopierUtil.copy(param,new WxFormPush());
boolean result = wxFormPushService.updateById(entity);
return R.isTrue(result);
}
/**
* 发布
* @param param
@ -121,7 +105,6 @@ public class WxFormPushController {
*/
@PostMapping("/publishById")
@SysLog(module = SystemModule.Verification, title = "表单推送发布", biz = BizType.UPDATE)
// @PreAuthorize("hasRole('wx:formPush:update')")
public R<?> publishById(@RequestBody WxFormPushBo param){
String id = param.getId();
WxFormPush entity = wxFormPushService.getById(id);
@ -130,11 +113,10 @@ public class WxFormPushController {
}
entity.setStatus("1");
boolean result = wxFormPushService.updateById(entity);
LambdaQueryWrapper<WxFormPushUser> userlqw = new LambdaQueryWrapper<>();
userlqw.eq(WxFormPushUser::getFormPushId,entity.getId());
userlqw.eq(WxFormPushUser::getPushStatus,0);
List<WxFormPushUser> list = wxFormPushUserService.list(userlqw);
List<String> userCodes = list.stream().map(WxFormPushUser::getUserCode).collect(Collectors.toList());
if(userCodes.size()<1){
return R.ok();
@ -162,11 +144,75 @@ public class WxFormPushController {
wxSmsNewForm.setBitTime(LocalDateTime.now().toString().replace("T", " "));
wxSmsNewForm.setRemark(entity.getRemark());
wxPushService.sendWxMsg(wxUser, "表单通知", wxSmsNewForm, true, entity.getId());
}
return R.isTrue(result);
}
/**
* 补偿通知
* @param param
* @return
*/
@PostMapping("/compensate")
@SysLog(module = SystemModule.Verification, title = "表单推送发布", biz = BizType.UPDATE)
public R<?> compensate(@RequestBody WxFormPushBo param){
String id = param.getId();
List<String> userIds = param.getUserIds();
WxFormPush entity = wxFormPushService.getById(id);
if(entity.getId().equals("0")){
return R.error("未发布");
}
LambdaQueryWrapper<WxFormPushUser> userlqw = new LambdaQueryWrapper<>();
if(StringUtils.hasText(id)){
userlqw.eq(WxFormPushUser::getFormPushId,entity.getId());
}else {
userlqw.in(WxFormPushUser::getUserId,userIds);
}
userlqw.eq(WxFormPushUser::getPushStatus,0);
List<WxFormPushUser> list = wxFormPushUserService.list(userlqw);
userIds = list.stream().map(WxFormPushUser::getUserId).collect(Collectors.toList());
if(userIds.size()<1){
return R.ok();
}
WxApp app = wxAppService.getOne(new LambdaQueryWrapper<>(),false);
LambdaQueryWrapper<WxUser> lqw = new LambdaQueryWrapper<>();
lqw.eq(WxUser::getAppId,app.getId());
lqw.in(WxUser::getSysUserId,userIds);
List<WxUser> wxUserList = wxUserService.list(lqw);
Set<String> wxUserIdSet = new HashSet<>();
int successCount = 0;
for (WxFormPushUser pushUser : list) {
boolean pushOk = false;
for (WxUser wxUser : wxUserList) {
if (wxUser.getOpenId().equals("0")) {
continue;
}
boolean exist = wxUserIdSet.stream().anyMatch(a->a.equals(wxUser.getOpenId()));
if(exist){
continue;
}else {
wxUserIdSet.add(wxUser.getOpenId());
}
pushOk = true;
WxSmsNewForm wxSmsNewForm = new WxSmsNewForm();
wxSmsNewForm.setTitle(entity.getTitle());
wxSmsNewForm.setUserName(wxUser.getEmpName());
wxSmsNewForm.setBizType(entity.getBusinessType() == null ? "通知" : entity.getBusinessType());
wxSmsNewForm.setBitTime(LocalDateTime.now().toString().replace("T", " "));
wxSmsNewForm.setRemark(entity.getRemark());
wxPushService.sendWxMsg(wxUser, "表单通知", wxSmsNewForm, true, entity.getId());
}
if(pushOk){
successCount++;
WxFormPushUser upd_param = new WxFormPushUser();
upd_param.setId(pushUser.getId());
upd_param.setPushStatus(1);
wxFormPushUserService.updateById(upd_param);
}
}
return R.ok("成功通知数:"+successCount);
}
/**
* 撤消
* @param param
@ -174,46 +220,46 @@ public class WxFormPushController {
*/
@PostMapping("/unPublishById")
@SysLog(module = SystemModule.Verification, title = "撤消表单推送", biz = BizType.UPDATE)
// @PreAuthorize("hasRole('wx:formPush:update')")
public R<?> unPublishById(@RequestBody WxFormPushBo param){
String id = param.getId();
WxFormPush entity = wxFormPushService.getById(id);
entity.setStatus("0");
boolean result = wxFormPushService.updateById(entity);
LambdaQueryWrapper<WxFormPushUser> dellqw = new LambdaQueryWrapper<>();
dellqw.eq(WxFormPushUser::getFormPushId,entity.getId());
wxFormPushUserService.remove(dellqw);
return R.isTrue(result);
}
/**
* 新增
* 新增或保存
* @param param
* @return
*/
@PostMapping("/save")
@SysLog(module = SystemModule.Verification, title = "表单推送", biz = BizType.INSERT)
// @PreAuthorize("hasRole('wx:formPush:insert')")
public R<?> save(@RequestBody @Valid WxFormPushBo param){
public R<?> saveOrUpdate(@RequestBody @Valid WxFormPushBo param){
WxFormPush entity = CopierUtil.copy(param,new WxFormPush());
entity.setPreNotifyStatus(param.getPreNotifyTime()==null?0:1);
WxFormPushType pushType = null;
if(param.getTypeId()!=null){
pushType = wxFormPushTypeService.getById(param.getTypeId());
entity.setTypeCode(pushType.getCode());
entity.setTypeName(pushType.getTitle());
}else{
return R.error("分类不存在");
entity.setTypeId("0");
entity.setTypeCode("默认");
entity.setTypeName("默认分类");
}
boolean result;
entity.setPreNotifyStatus(entity.getPreNotifyTime()==null?0:1);
if(null==entity.getId()) {
result = wxFormPushService.save(entity);
wxFormPushService.save(entity);
}else{
WxFormPush ori_entity = wxFormPushService.getById(entity.getId());
if(ori_entity.getStatus().equals("1")){
return R.error("已发布的消息不能更新");
}
result = wxFormPushService.updateById(entity);
if(entity.getPreNotifyTime()==null){
wxFormPushMapper.updateSetNotifyTimeNull(entity.getId());
}
wxFormPushService.updateById(entity);
}
//保存推送人员
@ -225,37 +271,44 @@ public class WxFormPushController {
List<WxUser> wxUserList = wxUserService.list(lqw);
List<WxFormPushUser> pushUserList = new ArrayList<>();
Set<String> wxUserIdSet = new HashSet<>();
for (WxUser wxUser : wxUserList) {
if (wxUser.getOpenId().equals("0")) {
continue;
}
boolean exist = wxUserIdSet.stream().anyMatch(a->a.equals(wxUser.getOpenId()));
if(exist){
continue;
}else {
wxUserIdSet.add(wxUser.getOpenId());
}
WxSmsNewForm wxSmsNewForm = new WxSmsNewForm();
wxSmsNewForm.setTitle(param.getTitle());
wxSmsNewForm.setUserName(wxUser.getEmpName());
wxSmsNewForm.setBizType(param.getBusinessType()==null?"通知":param.getBusinessType());
wxSmsNewForm.setBitTime(LocalDateTime.now().toString().replace("T"," "));
wxSmsNewForm.setRemark(param.getRemark());
if(param.getStatus().equals("1")) {
wxPushService.sendWxMsg(wxUser, "表单通知", wxSmsNewForm, true, entity.getId());
List<SysUser> sysUserList = sysUserService.listByIds(userIds);
for (SysUser sysUser : sysUserList) {
int pushOk = 0;
for (WxUser wxUser : wxUserList) {
if(wxUser.getSysUserId().equals(sysUser.getId())){
if (wxUser.getOpenId().equals("0")) {
continue;
}
boolean exist = wxUserIdSet.stream().anyMatch(a->a.equals(wxUser.getOpenId()));
if(exist){
continue;
}else {
wxUserIdSet.add(wxUser.getOpenId());
}
pushOk = 1;
WxSmsNewForm wxSmsNewForm = new WxSmsNewForm();
wxSmsNewForm.setTitle(param.getTitle());
wxSmsNewForm.setUserName(wxUser.getEmpName());
wxSmsNewForm.setBizType(param.getBusinessType()==null?"通知":param.getBusinessType());
wxSmsNewForm.setBitTime(LocalDateTime.now().toString().replace("T"," "));
wxSmsNewForm.setRemark(param.getRemark());
if(param.getStatus().equals("1")) {
wxPushService.sendWxMsg(wxUser, "表单通知", wxSmsNewForm, true, entity.getId());
}
}
}
WxFormPushUser pushUser = new WxFormPushUser();
pushUser.setFormPushId(entity.getId());
pushUser.setFormTitle(entity.getTitle());
pushUser.setUserId(wxUser.getSysUserId());
pushUser.setUserCode(wxUser.getSysUserCode());
pushUser.setUserName(wxUser.getEmpName());
pushUser.setPushStatus(pushOk);
pushUser.setUserId(sysUser.getId());
pushUser.setUserCode(sysUser.getCode());
pushUser.setUserName(sysUser.getName());
pushUser.setTypeId(pushType.getId());
pushUser.setTypeCode(pushType.getCode());
pushUser.setTypeName(pushType.getTitle());
pushUserList.add(pushUser);
}
pushUserList = pushUserList.stream().distinct().collect(Collectors.toList());
if(null==entity.getId()) {
wxFormPushUserService.saveBatch(pushUserList);
}else{

8
src/main/java/com/qs/serve/modules/wx/controller/WxFormPushTypeController.java

@ -88,6 +88,9 @@ public class WxFormPushTypeController {
@PostMapping("/updateById")
@SysLog(module = SystemModule.Verification, title = "表单类型", biz = BizType.UPDATE)
public R<?> updateById(@RequestBody @Valid WxFormPushTypeBo param){
if(param.getId().equals("0")){
return R.error("默认分类无法删除");
}
WxFormPushType entity = CopierUtil.copy(param,new WxFormPushType());
boolean result = wxFormPushTypeService.updateById(entity);
return R.isTrue(result);
@ -115,6 +118,11 @@ public class WxFormPushTypeController {
@SysLog(module = SystemModule.Verification, title = "表单类型", biz = BizType.DELETE)
public R<?> deleteById(@PathVariable("ids") String ids){
List<String> idsString = StringUtils.splitIdString(ids);
for (String id : idsString) {
if(id.equals("0")){
return R.error("默认分类无法删除");
}
}
boolean result = wxFormPushTypeService.removeByIds(idsString);
return R.isTrue(result);
}

6
src/main/java/com/qs/serve/modules/wx/controller/my/WxFormPushMyController.java

@ -85,6 +85,12 @@ public class WxFormPushMyController {
@GetMapping("/getById/{id}")
@SysLog(module = SystemModule.Verification, title = "表单推送", biz = BizType.QUERY)
public R<WxFormPush> getById(@PathVariable("id") String id){
LambdaQueryWrapper<WxFormPushUser> lqw2 = new LambdaQueryWrapper<>();
lqw2.eq(WxFormPushUser::getFormPushId,id);
lqw2.eq(WxFormPushUser::getUserId, AuthContextUtils.getSysUserId());
if(wxFormPushUserService.count(lqw2)<1){
return R.error("表单已撤销");
}
WxFormPush wxFormPush = wxFormPushService.getById(id);
if(wxFormPush.getStatus().equals("0")){
//未发布不能查询

23
src/main/java/com/qs/serve/modules/wx/entity/WxFormPush.java

@ -49,6 +49,7 @@ public class WxFormPush implements Serializable {
private String typeName;
/** 业务类型,默认:通知 */
@TableField(condition = SqlCondition.LIKE)
private String businessType;
/** 标题 */
@Length(max = 255,message = "标题长度不能超过255字")
@ -68,6 +69,24 @@ public class WxFormPush implements Serializable {
@Length(max = 600,message = "备注长度不能超过600字")
private String remark;
/** 预通知标识:0->无通知;1->未通知;2->已通知 */
private Integer preNotifyStatus;
/** 生效开始时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDateTime effectiveStartTime;
/** 生效结束时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDateTime effectiveEndTime;
/** 预通知时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDateTime preNotifyTime;
/** 附件ids */
@TableField(typeHandler = SplitStringTypeHandler.class,jdbcType= JdbcType.VARCHAR)
private String[] attachIds;
@ -130,6 +149,10 @@ public class WxFormPush implements Serializable {
@TableField(exist = false)
private List<?> attachList;
/** 显示补偿按钮 */
@TableField(exist = false)
private Integer showCompensateButton;
public static WxFormPush toNewObject(WxFormPush source){
WxFormPush formPush = new WxFormPush();
formPush.setId(source.getId());

3
src/main/java/com/qs/serve/modules/wx/entity/WxFormPushUser.java

@ -38,6 +38,9 @@ public class WxFormPushUser implements Serializable {
@TableField(condition = SqlCondition.LIKE)
private String formTitle;
/** 推送状态 0-N,1-Y */
private Integer pushStatus;
/** 用户id */
@Length(max = 64,message = "用户id长度不能超过64字")
private String userId;

15
src/main/java/com/qs/serve/modules/wx/entity/bo/WxFormPushBo.java

@ -10,6 +10,7 @@ import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;
/**
* 表单推送 实体类
@ -53,5 +54,19 @@ public class WxFormPushBo implements Serializable {
/** 附件ids */
private String[] attachIds;
/** 预通知时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDateTime preNotifyTime;
/** 生效开始时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDateTime effectiveStartTime;
/** 生效结束时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDateTime effectiveEndTime;
}

3
src/main/java/com/qs/serve/modules/wx/entity/so/WxFormPushUserSo.java

@ -34,6 +34,9 @@ public class WxFormPushUserSo implements Serializable {
/** 用户id */
private String userId;
/** 推送状态 0-N,1-Y */
private Integer pushStatus;
/** 用户编码 */
private String userCode;

4
src/main/java/com/qs/serve/modules/wx/mapper/WxFormPushMapper.java

@ -3,6 +3,8 @@ package com.qs.serve.modules.wx.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.serve.modules.wx.entity.WxFormPush;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;
import java.util.List;
/**
* 表单推送 Mapper
@ -13,5 +15,7 @@ public interface WxFormPushMapper extends BaseMapper<WxFormPush> {
List<WxFormPush> selectUserFormPushList(@Param("query") WxFormPush param);
@Update("update `wx_form_push` set pre_notify_time = null where id = #{id}")
void updateSetNotifyTimeNull(@Param("id")String id);
}

65
src/main/resources/mapper/bms/BmsChannelMapper.xml

@ -0,0 +1,65 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.qs.serve.modules.bms.mapper.BmsChannelMapper">
<resultMap id="bmsChannelMap" type="com.qs.serve.modules.bms.entity.BmsChannel" >
<result property="id" column="id"/>
<result property="channelCode" column="channel_code"/>
<result property="channelName" column="channel_name"/>
<result property="channelType" column="channel_type"/>
<result property="remark" column="remark"/>
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
<result property="tenantId" column="tenant_id"/>
<result property="delFlag" column="del_flag"/>
<result property="createBy" column="create_by"/>
<result property="updateBy" column="update_by"/>
<result property="costFlag" column="cost_flag"/>
</resultMap>
<sql id="bmsChannelSql">
bms_channel.`id`,
bms_channel.`channel_code`,
bms_channel.`channel_name`,
bms_channel.`channel_type`,
bms_channel.`remark`,
bms_channel.`create_time`,
bms_channel.`update_time`,
bms_channel.`tenant_id`,
bms_channel.`del_flag`,
bms_channel.`create_by`,
bms_channel.`update_by`,
bms_channel.`cost_flag` </sql>
<select id="selectChannelList" parameterType="com.qs.serve.modules.bms.entity.BmsChannel" resultMap="bmsChannelMap">
SELECT <include refid="bmsChannelSql"/> FROM
( SELECT channel_id FROM `bms_supplier_channel`
LEFT JOIN `his_user_supplier` ON `his_user_supplier`.supplier_id = bms_supplier_channel.supplier_id
where his_user_supplier.user_id in
<foreach collection="userIds" item ="selectId" index="i" open="(" close=")" separator=",">
#{selectId}
</foreach>
and `bms_supplier_channel`.`del_flag` = 0
GROUP BY channel_id
) tmp
left join `bms_channel` `bms_channel` ON `tmp`.channel_id = bms_channel.`id`
<where>
and `bms_channel`.`del_flag` = 0
<if test="query.id != null"> and `bms_channel`.`id` = #{query.id}</if>
<if test="query.channelCode != null and query.channelCode != ''"> and `bms_channel`.`channel_code` like concat('%',#{query.channelCode},'%')</if>
<if test="query.channelName != null and query.channelName != ''"> and `bms_channel`.`channel_name` like concat('%',#{query.channelName},'%') </if>
<if test="query.channelType != null and query.channelType != ''"> and `bms_channel`.`channel_type` = #{query.channelType}</if>
<if test="query.remark != null and query.remark != ''"> and `bms_channel`.`remark` = #{query.remark}</if>
<if test="query.createTime != null"> and `bms_channel`.`create_time` = #{query.createTime}</if>
<if test="query.updateTime != null"> and `bms_channel`.`update_time` = #{query.updateTime}</if>
<if test="query.tenantId != null and query.tenantId != ''"> and `bms_channel`.`tenant_id` = #{query.tenantId}</if>
<if test="query.delFlag != null and query.delFlag != ''"> and `bms_channel`.`del_flag` = #{query.delFlag}</if>
<if test="query.createBy != null and query.createBy != ''"> and `bms_channel`.`create_by` = #{query.createBy}</if>
<if test="query.updateBy != null and query.updateBy != ''"> and `bms_channel`.`update_by` = #{query.updateBy}</if>
<if test="query.costFlag != null"> and `bms_channel`.`cost_flag` = #{query.costFlag}</if>
</where>
</select>
</mapper>

55
src/main/resources/mapper/bms/BmsChannelPointMapper.xml

@ -129,12 +129,28 @@
POINT ( bms_channel_point.local_y, bms_channel_point.local_x ),
POINT ( #{query.localY}, #{query.localX} )) AS distance
</if>
FROM ( SELECT DISTINCT mu.point_id target_id FROM `his_user_channel_point` mu WHERE del_flag = 0 AND user_id = #{query.userId} AND tenant_id = #{query.tenantId} ) pmu
LEFT JOIN `bms_channel_point` `bms_channel_point` ON `bms_channel_point`.id = pmu.target_id
FROM
( SELECT channel_id FROM `bms_supplier_channel`
LEFT JOIN `his_user_supplier` ON `his_user_supplier`.supplier_id = bms_supplier_channel.supplier_id
where his_user_supplier.user_id in
<foreach collection="userIds" item ="selectId" index="i" open="(" close=")" separator=",">
#{selectId}
</foreach>
and `bms_supplier_channel`.`del_flag` = 0
GROUP BY channel_id
) tmp
left join bms_channel_point ON `tmp`.channel_id = bms_channel_point.`channel_id`
<where>
and `bms_channel_point`.`del_flag` = 0
and `bms_supplier_channel`.`del_flag` = 0
<if test="query.pointCode != null and query.pointCode != ''"> and `bms_channel_point`.`point_code` like concat('%',#{query.pointCode},'%') </if>
<if test="query.pointName != null and query.pointName != ''"> and `bms_channel_point`.`point_name` like concat('%',#{query.pointName},'%') </if>
<if test="userIds != null and userIds.size > 0">
and his_user_supplier.user_id in
<foreach collection="userIds" item ="selectId" index="i" open="(" close=")" separator=",">
#{selectId}
</foreach>
</if>
</where>
ORDER BY
<if test="query.localY!=null and query.localX!=null">
@ -239,4 +255,39 @@
</select>
<select id="selectPointByUserIds" resultType="com.qs.serve.modules.bms.entity.BmsChannelPoint">
SELECT <include refid="bmsChannelPointSql"/> FROM
( SELECT channel_id FROM `bms_supplier_channel`
LEFT JOIN `his_user_supplier` ON `his_user_supplier`.supplier_id = bms_supplier_channel.supplier_id
where his_user_supplier.user_id in
<foreach collection="userIds" item ="selectId" index="i" open="(" close=")" separator=",">
#{selectId}
</foreach>
and `bms_supplier_channel`.`del_flag` = 0
GROUP BY channel_id
) tmp left join`bms_channel_point` `bms_channel_point` ON `tmp`.channel_id = bms_channel_point.`channel_id`
<where>
and `bms_channel_point`.`del_flag` = 0
<if test="query.id != null"> and `bms_channel_point`.`id` = #{query.id}</if>
<if test="query.channelId != null"> and `bms_channel_point`.`channel_id` = #{query.channelId}</if>
<if test="query.channelName != null and query.channelName != ''"> and `bms_channel_point`.`channel_name` like concat('%',#{query.channelName},'%') </if>
<if test="query.pointCode != null and query.pointCode != ''"> and `bms_channel_point`.`point_code` like concat('%',#{query.pointCode},'%') </if>
<if test="query.pointName != null and query.pointName != ''"> and `bms_channel_point`.`point_name` like concat('%',#{query.pointName},'%') </if>
<if test="query.shopArea != null and query.shopArea != ''"> and `bms_channel_point`.`shop_area` = #{query.shopArea}</if>
<if test="query.countCheckstand != null"> and `bms_channel_point`.`count_checkstand` = #{query.countCheckstand}</if>
<if test="query.pointLevel != null and query.pointLevel != ''"> and `bms_channel_point`.`point_level` = #{query.pointLevel}</if>
<if test="query.pointType != null and query.pointType != ''"> and `bms_channel_point`.`point_type` like concat('%',#{query.pointType},'%') </if>
<if test="query.address != null and query.address != ''"> and `bms_channel_point`.`address` = #{query.address}</if>
<if test="query.saleRegionId != null and query.saleRegionId != ''"> and `bms_channel_point`.`sale_region_id` = #{query.saleRegionId}</if>
<if test="query.saleRegionPath != null and query.saleRegionPath != ''"> and `bms_channel_point`.`sale_region_path` like concat('%',#{query.saleRegionPath},'%') </if>
<if test="query.saleRegionPathIds != null and query.saleRegionPathIds != ''"> and `bms_channel_point`.`sale_region_path_ids` = #{query.saleRegionPathIds}</if>
<if test="query.bizRegionId != null and query.bizRegionId != ''"> and `bms_channel_point`.`biz_region_id` = #{query.bizRegionId}</if>
<if test="query.bizRegionPath != null and query.bizRegionPath != ''"> and `bms_channel_point`.`biz_region_path` like concat('%',#{query.bizRegionPath},'%') </if>
<if test="query.bizRegionPathIds != null and query.bizRegionPathIds != ''"> and `bms_channel_point`.`biz_region_path_ids` = #{query.bizRegionPathIds}</if>
<if test="query.remark != null and query.remark != ''"> and `bms_channel_point`.`remark` = #{query.remark}</if>
</where>
</select>
</mapper>

1
src/main/resources/mapper/bms/BmsSupplierMapper.xml

@ -82,6 +82,7 @@
<if test="query.regionFirst != null"> and `bms_supplier`.`region_first` = #{query.regionFirst}</if>
<if test="query.regionSecond != null"> and `bms_supplier`.`region_second` = #{query.regionSecond}</if>
<if test="query.regionThird != null"> and `bms_supplier`.`region_third` = #{query.regionThird}</if>
<if test="query.supplierFlag != null"> and `bms_supplier`.`supplier_flag` = #{query.supplierFlag}</if>
<if test="query.address != null and query.address != ''"> and `bms_supplier`.`address` = #{query.address}</if>
<if test="query.name != null and query.name != ''"> and `bms_supplier`.`name` like concat('%',#{query.name},'%') </if>
<if test="query.code != null and query.code != ''"> and `bms_supplier`.`code` like concat('%',#{query.code},'%') </if>

6
src/main/resources/mapper/wx/WxFormPushMapper.xml

@ -22,6 +22,9 @@
<result property="status" column="status"/>
<result property="businessType" column="business_type"/>
<result property="readFlag" column="read_flag"/>
<result property="effectiveEndTime" column="effective_end_time"/>
<result property="preNotifyTime" column="pre_notify_time"/>
<result property="effectiveStartTime" column="effective_start_time"/>
</resultMap>
<sql id="wxFormPushSql">
@ -40,6 +43,9 @@
wx_form_push.`update_by`,
wx_form_push.`del_flag`,
wx_form_push.`status`,
wx_form_push.`pre_notify_status`,
wx_form_push.`effective_start_time`,
wx_form_push.`effective_end_time`,
wx_form_push.`business_type` </sql>
<select id="selectUserFormPushList" parameterType="com.qs.serve.modules.wx.entity.WxFormPush" resultMap="wxFormPushMap">

Loading…
Cancel
Save