Browse Source

表单推送,供应商联系人等

contract
Yen 2 years ago
parent
commit
298b406dfb
  1. 12
      src/main/java/com/qs/serve/common/framework/exception/UnifiedExceptionHandler.java
  2. 9
      src/main/java/com/qs/serve/common/framework/security/filter/SecurityRequestFilter.java
  3. 16
      src/main/java/com/qs/serve/common/util/AuthContextUtils.java
  4. 3
      src/main/java/com/qs/serve/modules/baz/service/impl/BazVisitInstanceServiceImpl.java
  5. 1
      src/main/java/com/qs/serve/modules/biz/controller/api/BizVisitApi.java
  6. 4
      src/main/java/com/qs/serve/modules/biz/entity/BizVisit.java
  7. 31
      src/main/java/com/qs/serve/modules/bms/controller/BmsCostCenterController.java
  8. 2
      src/main/java/com/qs/serve/modules/bms/controller/BmsSubjectController.java
  9. 2
      src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierAddressController.java
  10. 136
      src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierContactsController.java
  11. 41
      src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierController.java
  12. 1
      src/main/java/com/qs/serve/modules/bms/entity/BmsCostCenter.java
  13. 115
      src/main/java/com/qs/serve/modules/bms/entity/BmsSupplierContacts.java
  14. 14
      src/main/java/com/qs/serve/modules/bms/entity/bo/BmsChannelPointBo.java
  15. 50
      src/main/java/com/qs/serve/modules/bms/entity/bo/BmsSupplierContactsBo.java
  16. 2
      src/main/java/com/qs/serve/modules/bms/entity/bo/BmsSupplierParentBo.java
  17. 45
      src/main/java/com/qs/serve/modules/bms/entity/so/BmsSupplierContactsSo.java
  18. 14
      src/main/java/com/qs/serve/modules/bms/mapper/BmsSupplierContactsMapper.java
  19. 14
      src/main/java/com/qs/serve/modules/bms/service/BmsSupplierContactsService.java
  20. 22
      src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierContactsServiceImpl.java
  21. 1
      src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierServiceImpl.java
  22. 2
      src/main/java/com/qs/serve/modules/qms/controller/api/QmsDraftApiController.java
  23. 2
      src/main/java/com/qs/serve/modules/qms/entity/so/QmsGroupSo.java
  24. 2
      src/main/java/com/qs/serve/modules/qms/service/impl/QmsDraftServiceImpl.java
  25. 94
      src/main/java/com/qs/serve/modules/third/PortalFormPushController.java
  26. 24
      src/main/java/com/qs/serve/modules/third/ThirdTokenUtil.java
  27. 1
      src/main/java/com/qs/serve/modules/wx/api/WxSvcUserApi.java
  28. 120
      src/main/java/com/qs/serve/modules/wx/controller/WxFormPushController.java
  29. 5
      src/main/java/com/qs/serve/modules/wx/controller/WxUserController.java
  30. 96
      src/main/java/com/qs/serve/modules/wx/entity/WxFormPush.java
  31. 102
      src/main/java/com/qs/serve/modules/wx/entity/WxFormPushUser.java
  32. 1
      src/main/java/com/qs/serve/modules/wx/entity/WxUser.java
  33. 48
      src/main/java/com/qs/serve/modules/wx/entity/bo/WxFormPushBo.java
  34. 19
      src/main/java/com/qs/serve/modules/wx/entity/vo/WxPushResultVo.java
  35. 14
      src/main/java/com/qs/serve/modules/wx/mapper/WxFormPushMapper.java
  36. 14
      src/main/java/com/qs/serve/modules/wx/mapper/WxFormPushUserMapper.java
  37. 14
      src/main/java/com/qs/serve/modules/wx/service/WxFormPushService.java
  38. 14
      src/main/java/com/qs/serve/modules/wx/service/WxFormPushUserService.java
  39. 22
      src/main/java/com/qs/serve/modules/wx/service/impl/WxFormPushServiceImpl.java
  40. 22
      src/main/java/com/qs/serve/modules/wx/service/impl/WxFormPushUserServiceImpl.java
  41. 2
      src/main/resources/mapper/bms/BmsSupplierAddressMapper.xml
  42. 4
      src/main/resources/mapper/qms/QmsGroupScopeMapper.xml

12
src/main/java/com/qs/serve/common/framework/exception/UnifiedExceptionHandler.java

@ -11,6 +11,7 @@ import org.springframework.security.access.AccessDeniedException;
import org.springframework.security.authentication.BadCredentialsException;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.stereotype.Component;
import org.springframework.validation.BeanPropertyBindingResult;
import org.springframework.validation.BindException;
import org.springframework.web.HttpRequestMethodNotSupportedException;
import org.springframework.web.bind.MethodArgumentNotValidException;
@ -78,19 +79,26 @@ public class UnifiedExceptionHandler {
@ExceptionHandler({
BindException.class,
MethodArgumentNotValidException.class,
HttpRequestMethodNotSupportedException.class
})
@ResponseBody
public R handleDevPrintMsgException(Exception e,HttpServletRequest request) {
log.warn("参数校验异常:{}",e.getMessage());
if(DevEnvironmentConfig.isDev()){
log.warn("参数校验异常【{}】,请求地址:{}",e.getMessage(),request.getRequestURI());
return R.error(e.getMessage());
}
return R.error();
}
@ExceptionHandler({
MethodArgumentNotValidException.class,
})
@ResponseBody
public R handleMethodArgumentNotValidException(MethodArgumentNotValidException e,HttpServletRequest request) {
log.warn("参数校验异常【{}】,请求地址:{}",e.getMessage(),request.getRequestURI());
return R.error(e.getBindingResult().getAllErrors().get(0).getDefaultMessage());
}
@ExceptionHandler(value = DuplicateKeyException.class)
@ResponseBody

9
src/main/java/com/qs/serve/common/framework/security/filter/SecurityRequestFilter.java

@ -115,16 +115,9 @@ public class SecurityRequestFilter extends OncePerRequestFilter {
String token = request.getHeader(GySysConst.AUTHORIZATION_PROP);
if(tenant!=null&&token!=null&&JwtUtils.verify(token)){
String userId = JwtUtils.getUserId(token);
String userType = JwtUtils.getUserType(token);
AuthContextUtils.setTenant(tenant);
if(SecurityContextHolder.getContext().getAuthentication()==null){
UserDetails userDetails = null;
if(userType.equals(LoginUserType.SYS_USER.getCode())
||userType.equals(LoginUserType.SYS_SUP_USER.getCode())){
//后台管理员登录
userDetails = sysUserService.getLoginUserById(userId);
}
UserDetails userDetails = sysUserService.getLoginUserById(userId);
if(userDetails!=null){
UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(userDetails, null, userDetails.getAuthorities());
authentication.setDetails(new WebAuthenticationDetailsSource().buildDetails(request));

16
src/main/java/com/qs/serve/common/util/AuthContextUtils.java

@ -47,28 +47,12 @@ public class AuthContextUtils {
return getLoginUser(true);
}
/**
* 获取微信用户ID
* @return
*/
public static String getWxUserId(){
LoginUser loginUser = getLoginUser();
if(loginUser.getTypeFlag().equals(LoginUserType.APP_USER)){
return loginUser.getUserId();
}
return null;
}
/**
* 系统用户ID
* @return
*/
public static String getSysUserId(){
LoginUser loginUser = getLoginUser();
// if(loginUser.getTypeFlag().equals(LoginUserType.SYS_SUP_USER)
// ||loginUser.getTypeFlag().equals(LoginUserType.SYS_USER)){
// return loginUser.getUserId();
// }
return loginUser.getUserId();
}

3
src/main/java/com/qs/serve/modules/baz/service/impl/BazVisitInstanceServiceImpl.java

@ -29,6 +29,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import com.qs.serve.modules.baz.service.BazVisitInstanceService;
import com.qs.serve.modules.baz.mapper.BazVisitInstanceMapper;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDate;
import java.time.LocalDateTime;
@ -55,6 +56,7 @@ public class BazVisitInstanceServiceImpl extends ServiceImpl<BazVisitInstanceMap
private BazVisitInfoService bazVisitInfoService;
@Override
@Transactional(rollbackFor = Exception.class)
public BazVisitInstance create(BazCreateVisitInstanceBo param) {
SysUser sysUser = sysUserMapper.selectById(AuthContextUtils.getSysUserId());
BazVisit bazVisit = visitMapper.selectById(param.getVisitId());
@ -167,6 +169,7 @@ public class BazVisitInstanceServiceImpl extends ServiceImpl<BazVisitInstanceMap
@Override
@Transactional(rollbackFor = Exception.class)
public void submit(BazVisitInstanceFlowBo param) {
BazVisitInstanceFlow instanceFlowDb = instanceFlowService.getById(param.getInstanceFlowId());
if(instanceFlowDb.getFlowState().equals(1)){

1
src/main/java/com/qs/serve/modules/biz/controller/api/BizVisitApi.java

@ -146,6 +146,7 @@ public class BizVisitApi {
String userId = wxUser.getSysUserId();
SysUser sysUser = sysUserService.getById(userId);
param.setVisitorId(userId);
param.setVisitorCode(sysUser.getCode());
param.setVisitorName(sysUser.getName());
boolean result = bizVisitService.save(param);
return R.isTrue(result);

4
src/main/java/com/qs/serve/modules/biz/entity/BizVisit.java

@ -56,8 +56,12 @@ public class BizVisit implements Serializable {
@Length(max = 32,message = "拜访人id长度不能超过32字")
private String visitorId;
@TableField(condition = SqlCondition.LIKE)
private String visitorCode;
/** 拜访人 */
@Length(max = 32,message = "拜访人长度不能超过32字")
@TableField(condition = SqlCondition.LIKE)
private String visitorName;
/** 备注 */

31
src/main/java/com/qs/serve/modules/bms/controller/BmsCostCenterController.java

@ -167,14 +167,31 @@ public class BmsCostCenterController {
private void commonEdit(BmsCostCenterBo param){
BmsCostCenter costCenter = CopierUtil.copy(param,new BmsCostCenter());
if(costCenter.getPid()==null||costCenter.getPid().equals(0L)){
costCenter.setPid(0L);
costCenter.setLevel(1);
}else {
BmsCostCenter parent = bmsCostCenterService.getById(costCenter.getPid());
costCenter.setLevel(parent.getLevel()+1);
BmsCostCenter dbCostCenter = bmsCostCenterService.getById(costCenter.getId());
if(dbCostCenter!=null && !dbCostCenter.getPid().equals(costCenter.getPid())){
if(costCenter.getPid()==null||costCenter.getPid().equals(0L)){
costCenter.setPid(0L);
costCenter.setLevel(1);
}else {
BmsCostCenter parent = bmsCostCenterService.getById(costCenter.getPid());
Integer level = parent.getLevel();
if(level>1){
checkRepeat(parent,dbCostCenter.getId());
}
costCenter.setLevel(parent.getLevel()+1);
}
}
bmsCostCenterService.saveOrUpdate(costCenter);
}
private void checkRepeat(BmsCostCenter parent,Long id){
if(parent.getId().equals(id)){
Assert.throwEx("数据出现循环递归,保存失败");
}
if(parent.getLevel()>1){
BmsCostCenter netParent = bmsCostCenterService.getById(parent.getPid());
checkRepeat(netParent, id);
}
bmsCostCenterService.saveOrUpdate(costCenter);
}
/**

2
src/main/java/com/qs/serve/modules/bms/controller/BmsSubjectController.java

@ -65,7 +65,7 @@ public class BmsSubjectController {
return treeNode;
}).collect(Collectors.toList());
treeVoList = TreeUtil.buildByRecursive(treeVoList,TreeUtil.DEFAULT_PID_STRING);
if(StringUtils.hasText(supplierId)){
if(StringUtils.hasText(supplierId)&&!supplierId.equals("0")){
BmsSupplier bmsSupplier = bmsSupplierService.getById(supplierId);
LambdaQueryWrapper<BmsSubject> subjectLqw = new LambdaQueryWrapper<>();
subjectLqw.eq(BmsSubject::getBizRegionFlag,0).or().eq(BmsSubject::getSaleRegionFlag,0);

2
src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierAddressController.java

@ -136,7 +136,7 @@ public class BmsSupplierAddressController {
@DeleteMapping("/deleteById/{id}")
@SysLog(module = SystemModule.BASE, title = "供应商地址", biz = BizType.DELETE)
@PreAuthorize("hasRole('bms:supplierAddress:delete')")
public R<?> deleteById(@PathVariable("id") String id){
public R<?> deleteById(@PathVariable("id") Long id){
boolean result = bmsSupplierAddressService.removeById(id);
return R.isTrue(result);
}

136
src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierContactsController.java

@ -0,0 +1,136 @@
package com.qs.serve.modules.bms.controller;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.model.annotation.SysLog;
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.bms.entity.BmsSupplier;
import com.qs.serve.modules.bms.service.BmsSupplierService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import com.qs.serve.modules.bms.entity.so.BmsSupplierContactsSo;
import com.qs.serve.modules.bms.entity.bo.BmsSupplierContactsBo;
import com.qs.serve.modules.bms.entity.BmsSupplierContacts;
import com.qs.serve.modules.bms.service.BmsSupplierContactsService;
import javax.validation.Valid;
import java.util.List;
/**
* 基础档案 供应商联系人
* @author YenHex
* @since 2023-04-19
*/
@Slf4j
@AllArgsConstructor
@RestController
@RequestMapping("bms/supplierContacts")
public class BmsSupplierContactsController {
private BmsSupplierContactsService bmsSupplierContactsService;
private BmsSupplierService bmsSupplierService;
/**
* 列表
* @param param
* @return
*/
@GetMapping("/list")
public R<List<BmsSupplierContacts>> getList(BmsSupplierContactsSo param){
BmsSupplierContacts entity = CopierUtil.copy(param,new BmsSupplierContacts());
LambdaQueryWrapper<BmsSupplierContacts> lqw = new LambdaQueryWrapper<>(entity);
PageUtil.startPage();
List<BmsSupplierContacts> list = bmsSupplierContactsService.list(lqw);
return R.ok(list);
}
/**
* 翻页
* @param param
* @return
*/
@GetMapping("/page")
public R<PageVo<BmsSupplierContacts>> getPage(BmsSupplierContactsSo param){
BmsSupplierContacts entity = CopierUtil.copy(param,new BmsSupplierContacts());
LambdaQueryWrapper<BmsSupplierContacts> lqw = new LambdaQueryWrapper<>(entity);
PageUtil.startPage();
List<BmsSupplierContacts> list = bmsSupplierContactsService.list(lqw);
return R.byPageHelperList(list);
}
/**
* ID查询
* @param id
* @return
*/
@GetMapping("/getById/{id}")
public R<BmsSupplierContacts> getById(@PathVariable("id") String id){
BmsSupplierContacts bmsSupplierContacts = bmsSupplierContactsService.getById(id);
return R.ok(bmsSupplierContacts);
}
/**
* 更新
* @param param
* @return
*/
@PostMapping("/updateById")
@SysLog(module = SystemModule.BASE, title = "供应商联系人", biz = BizType.UPDATE)
public R<?> updateById(@RequestBody @Valid BmsSupplierContactsBo param){
BmsSupplierContacts entity = CopierUtil.copy(param,new BmsSupplierContacts());
if(StrUtil.isEmpty(param.getContactsName())&&StrUtil.isEmpty(param.getContactsPost())){
Assert.throwEx("姓名和职务至少填一个");
}
BmsSupplier supplier = bmsSupplierService.getById(param.getSupplierId());
entity.setSupplierCode(supplier.getCode());
entity.setSupplierName(supplier.getName());
boolean result = bmsSupplierContactsService.updateById(entity);
return R.isTrue(result);
}
/**
* 新增
* @param param
* @return
*/
@PostMapping("/save")
@SysLog(module = SystemModule.BASE, title = "供应商联系人", biz = BizType.INSERT)
public R<BmsSupplierContacts> save(@RequestBody @Valid BmsSupplierContactsBo param){
BmsSupplierContacts entity = CopierUtil.copy(param,new BmsSupplierContacts());
if(StrUtil.isEmpty(param.getContactsName())&&StrUtil.isEmpty(param.getContactsPost())){
Assert.throwEx("姓名和职务至少填一个");
}
BmsSupplier supplier = bmsSupplierService.getById(param.getSupplierId());
entity.setSupplierCode(supplier.getCode());
entity.setSupplierName(supplier.getName());
bmsSupplierContactsService.save(entity);
return R.ok(entity);
}
/**
* 删除
* @param ids
* @return
*/
@DeleteMapping("/deleteById/{ids}")
@SysLog(module = SystemModule.BASE, title = "供应商联系人", biz = BizType.DELETE)
public R<?> deleteById(@PathVariable("ids") String ids){
List<Long> idsLong = StringUtils.splitIdLong(ids);
boolean result = bmsSupplierContactsService.removeByIds(idsLong);
return R.isTrue(result);
}
}

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

@ -427,27 +427,29 @@ public class BmsSupplierController {
@PreAuthorize("hasRole('bms:supplier:update')")
public R<?> updateParent(@RequestBody BmsSupplierParentBo param){
BmsSupplier supplier = new BmsSupplier();
supplier.setId(param.getId());
if(param.getPid()==null||param.getPid().equals(0L)){
supplier.setPid("0");
supplier.setParentCode("0");
}else {
BmsSupplier supplierdb = null;
List<BmsSupplier> childList = null;
if(param.getId()!=null){
supplierdb = bmsSupplierService.getById(param.getId());
childList = bmsSupplierService.listChildByPathIds(supplierdb.getPathIds());
}
BmsSupplier parentNode = bmsSupplierService.getById(param.getPid());
supplier.setPid(param.getPid()+"");
String[] pids = parentNode.getPathIds().split("_");
for (String pid : pids) {
if(pid.equals(supplier.getId())){
return R.error("数据出现循环递归,保存失败");
BmsSupplier supplierdb = null;
if(param.getId()!=null){
supplier.setId(param.getId());
supplierdb = bmsSupplierService.getById(param.getId());
}
if(supplierdb!=null && !supplierdb.getPid().equals(param.getPid())){
List<BmsSupplier> childList = bmsSupplierService.listChildByPathIds(supplierdb.getPathIds());
if(param.getPid()==null||param.getPid().equals("0")){
supplier.setPid("0");
supplier.setParentCode("0");
supplier.setPathIds("0_"+supplier.getId());
}else {
BmsSupplier parentNode = bmsSupplierService.getById(param.getPid());
supplier.setPid(param.getPid());
String[] pids = parentNode.getPathIds().split("_");
for (String pid : pids) {
if(pid.equals(supplier.getId())){
return R.error("数据出现循环递归,保存失败");
}
}
supplier.setPathIds(parentNode.getPathIds()+"_"+supplier.getId());
supplier.setParentCode(parentNode.getCode());
}
supplier.setPathIds(parentNode.getPathIds()+"_"+supplier.getId());
supplier.setParentCode(parentNode.getCode());
for (BmsSupplier bmsSupplier : childList) {
BmsSupplier bmsSupplier2 = new BmsSupplier();
bmsSupplier2.setPathIds(bmsSupplier.getPathIds().replace(supplierdb.getPathIds(),supplier.getPathIds()));
@ -455,6 +457,7 @@ public class BmsSupplierController {
bmsSupplierService.updateById(bmsSupplier2);
}
}
bmsSupplierService.updateById(supplier);
redisService.remove(RedisCacheKeys.SUPPLIER_RELATE_TREE);
return R.ok();

1
src/main/java/com/qs/serve/modules/bms/entity/BmsCostCenter.java

@ -50,6 +50,7 @@ public class BmsCostCenter implements Serializable {
@NotNull(message = "父级节点不能为空")
private Long pid;
/** 备注 */
@Length(max = 255,message = "备注长度不能超过255字")
private String remark;

115
src/main/java/com/qs/serve/modules/bms/entity/BmsSupplierContacts.java

@ -0,0 +1,115 @@
package com.qs.serve.modules.bms.entity;
import java.time.LocalDate;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank;
/**
* 供应商联系人 实体类
* @author YenHex
* @since 2023-04-19
*/
@Data
@TableName("bms_supplier_contacts")
public class BmsSupplierContacts implements Serializable {
private static final long serialVersionUID = 1L;
/** id */
@TableId(type = IdType.AUTO)
private Long id;
/** 经销商id */
private Long supplierId;
/** 经销商名称 */
@Length(max = 255,message = "经销商名称长度不能超过255字")
@TableField(condition = SqlCondition.LIKE)
private String supplierName;
/** 经销商编码 */
@Length(max = 255,message = "经销商编码长度不能超过255字")
@TableField(condition = SqlCondition.LIKE)
private String supplierCode;
/** 联系号码 */
@Length(max = 255,message = "联系号码长度不能超过255字")
@TableField(condition = SqlCondition.LIKE)
private String contactsNumber;
/** 联系名称 */
@Length(max = 255,message = "联系名称长度不能超过255字")
@TableField(condition = SqlCondition.LIKE)
private String contactsName;
/** 联系岗位 */
@Length(max = 255,message = "联系岗位长度不能超过255字")
@TableField(condition = SqlCondition.LIKE)
private String contactsPost;
/** 备注 */
private String remark;
/** 创建时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
/** 创建人 */
@TableField(fill = FieldFill.INSERT)
private String createBy;
/** 更新时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.UPDATE)
private LocalDateTime updateTime;
/** 更新人 */
@TableField(fill = FieldFill.UPDATE)
private String updateBy;
/** 租户id */
@JsonIgnore
@JsonProperty
private String tenantId;
/** 删除标识 */
@JsonIgnore
@JsonProperty
private Boolean delFlag;
public static BmsSupplierContacts toNewObject(BmsSupplierContacts source){
BmsSupplierContacts supplierContacts = new BmsSupplierContacts();
supplierContacts.setId(source.getId());
supplierContacts.setSupplierId(source.getSupplierId());
supplierContacts.setSupplierName(source.getSupplierName());
supplierContacts.setSupplierCode(source.getSupplierCode());
supplierContacts.setContactsNumber(source.getContactsNumber());
supplierContacts.setContactsName(source.getContactsName());
supplierContacts.setContactsPost(source.getContactsPost());
supplierContacts.setCreateTime(source.getCreateTime());
supplierContacts.setCreateBy(source.getCreateBy());
supplierContacts.setUpdateTime(source.getUpdateTime());
supplierContacts.setUpdateBy(source.getUpdateBy());
supplierContacts.setTenantId(source.getTenantId());
supplierContacts.setDelFlag(source.getDelFlag());
return supplierContacts;
}
}

14
src/main/java/com/qs/serve/modules/bms/entity/bo/BmsChannelPointBo.java

@ -1,8 +1,11 @@
package com.qs.serve.modules.bms.entity.bo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.qs.serve.common.framework.mybatis.handler.meta.SplitStringTypeHandler;
import lombok.Data;
import org.apache.ibatis.type.JdbcType;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
@ -80,4 +83,15 @@ public class BmsChannelPointBo {
@Length(max = 255,message = "地图地址长度不能超过255字")
private String mapAddress;
/** 行政区域 */
@NotBlank(message = "行政区域不能为空")
@Length(max = 255,message = "行政区域长度不能超过255字")
private String bizRegionPath;
private String bizRegionPathIds;
/** 图片多张用句号隔开 */
@TableField(typeHandler = SplitStringTypeHandler.class,jdbcType= JdbcType.VARCHAR)
private String[] photos;
}

50
src/main/java/com/qs/serve/modules/bms/entity/bo/BmsSupplierContactsBo.java

@ -0,0 +1,50 @@
package com.qs.serve.modules.bms.entity.bo;
import java.time.LocalDate;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank;
/**
* 供应商联系人 Bo
* @author YenHex
* @since 2023-04-19
*/
@Data
public class BmsSupplierContactsBo implements Serializable {
private static final long serialVersionUID = 1L;
/** id */
private Long id;
/** 经销商id */
private Long supplierId;
/** 联系号码 */
@Length(max = 255,message = "联系号码长度不能超过255字")
private String contactsNumber;
/** 联系名称 */
@Length(max = 255,message = "联系名称长度不能超过255字")
private String contactsName;
/** 联系岗位 */
@Length(max = 255,message = "联系岗位长度不能超过255字")
private String contactsPost;
/** 备注 */
private String remark;
}

2
src/main/java/com/qs/serve/modules/bms/entity/bo/BmsSupplierParentBo.java

@ -18,6 +18,6 @@ public class BmsSupplierParentBo {
private String id;
/** 父级id,0表总公司无上级 */
private Long pid;
private String pid;
}

45
src/main/java/com/qs/serve/modules/bms/entity/so/BmsSupplierContactsSo.java

@ -0,0 +1,45 @@
package com.qs.serve.modules.bms.entity.so;
import java.time.LocalDate;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank;
/**
* 供应商联系人 查询参数
* @author YenHex
* @since 2023-04-19
*/
@Data
public class BmsSupplierContactsSo implements Serializable {
private static final long serialVersionUID = 1L;
/** 经销商名称 */
private String supplierName;
/** 经销商编码 */
private String supplierCode;
/** 联系号码 */
private String contactsNumber;
/** 联系名称 */
private String contactsName;
/** 联系岗位 */
private String contactsPost;
}

14
src/main/java/com/qs/serve/modules/bms/mapper/BmsSupplierContactsMapper.java

@ -0,0 +1,14 @@
package com.qs.serve.modules.bms.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.serve.modules.bms.entity.BmsSupplierContacts;
/**
* 供应商联系人 Mapper
* @author YenHex
* @date 2023-04-19
*/
public interface BmsSupplierContactsMapper extends BaseMapper<BmsSupplierContacts> {
}

14
src/main/java/com/qs/serve/modules/bms/service/BmsSupplierContactsService.java

@ -0,0 +1,14 @@
package com.qs.serve.modules.bms.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.modules.bms.entity.BmsSupplierContacts;
/**
* 供应商联系人 服务接口
* @author YenHex
* @date 2023-04-19
*/
public interface BmsSupplierContactsService extends IService<BmsSupplierContacts> {
}

22
src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierContactsServiceImpl.java

@ -0,0 +1,22 @@
package com.qs.serve.modules.bms.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import com.qs.serve.modules.bms.entity.BmsSupplierContacts;
import com.qs.serve.modules.bms.service.BmsSupplierContactsService;
import com.qs.serve.modules.bms.mapper.BmsSupplierContactsMapper;
/**
* 供应商联系人 服务实现类
* @author YenHex
* @since 2023-04-19
*/
@Slf4j
@Service
@AllArgsConstructor
public class BmsSupplierContactsServiceImpl extends ServiceImpl<BmsSupplierContactsMapper,BmsSupplierContacts> implements BmsSupplierContactsService {
}

1
src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierServiceImpl.java

@ -83,6 +83,7 @@ public class BmsSupplierServiceImpl extends ServiceImpl<BmsSupplierMapper,BmsSup
supplier.setParentCode("0");
}else {
BmsSupplier parentNode = this.getById(param.getPid());
supplier.setPid(parentNode.getId());
supplier.setParentCode(parentNode.getCode());
}
}else {

2
src/main/java/com/qs/serve/modules/qms/controller/api/QmsDraftApiController.java

@ -56,7 +56,7 @@ public class QmsDraftApiController {
qmsDraft = new QmsDraft();
qmsDraft.setGroupId(param.getGroupId());
qmsDraft.setContext(param.getContext());
qmsDraft.setUserId(AuthContextUtils.getWxUserId());
qmsDraft.setUserId(AuthContextUtils.getSysUserId());
qmsDraft.setPubFlag("0");
qmsDraftService.save(qmsDraft);
}else {

2
src/main/java/com/qs/serve/modules/qms/entity/so/QmsGroupSo.java

@ -13,6 +13,8 @@ import java.time.LocalDate;
@Data
public class QmsGroupSo {
private String title;
Integer finished;
@DateTimeFormat(pattern = "yyyy-MM-dd")

2
src/main/java/com/qs/serve/modules/qms/service/impl/QmsDraftServiceImpl.java

@ -23,7 +23,7 @@ public class QmsDraftServiceImpl extends ServiceImpl<QmsDraftMapper,QmsDraft> im
@Override
public QmsDraft getUserFormDraft(Long groupId) {
LambdaQueryWrapper<QmsDraft> lqw = new LambdaQueryWrapper<>();
lqw.eq(QmsDraft::getCreateBy, AuthContextUtils.getWxUserId());
lqw.eq(QmsDraft::getCreateBy, AuthContextUtils.getSysUserId());
lqw.eq(QmsDraft::getGroupId,groupId);
lqw.eq(QmsDraft::getPubFlag,0);
return this.getOne(lqw,false);

94
src/main/java/com/qs/serve/modules/third/PortalFormPushController.java

@ -0,0 +1,94 @@
package com.qs.serve.modules.third;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.model.annotation.SysLog;
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.PageUtil;
import com.qs.serve.common.util.CopierUtil;
import com.qs.serve.common.util.StringUtils;
import com.qs.serve.modules.wx.entity.WxFormPushUser;
import com.qs.serve.modules.wx.entity.WxUser;
import com.qs.serve.modules.wx.entity.bo.WxFormPushBo;
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.service.WxFormPushUserService;
import com.qs.serve.modules.wx.service.WxPushService;
import com.qs.serve.modules.wx.service.WxUserService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import com.qs.serve.modules.wx.entity.WxFormPush;
import com.qs.serve.modules.wx.service.WxFormPushService;
import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
* 第三方接口 表单推送
* @author YenHex
* @since 2023-04-19
*/
@Slf4j
@AllArgsConstructor
@RestController
@RequestMapping("thirty/formPush")
public class PortalFormPushController {
private WxFormPushService wxFormPushService;
private WxFormPushUserService wxFormPushUserService;
private WxUserService wxUserService;
private WxPushService wxPushService;
/**
* 新增
* @param param
* @return
*/
@PostMapping("/publish")
public R<?> save(@RequestBody @Valid WxFormPushBo param, HttpServletRequest request){
ThirdTokenUtil.checkToken(request);
WxFormPush entity = CopierUtil.copy(param,new WxFormPush());
wxFormPushService.save(entity);
List<String> userCodes = param.getUserCodes().stream().distinct().collect(Collectors.toList());
LambdaQueryWrapper<WxUser> lqw = new LambdaQueryWrapper<>();
lqw.eq(WxUser::getAppId,param.getAppId());
lqw.in(WxUser::getSysUserCode,userCodes);
List<WxUser> wxUserList = wxUserService.list(lqw);
List<String> userCodes2 = wxUserList.stream().map(WxUser::getSysUserCode).distinct().collect(Collectors.toList());
List<WxFormPushUser> pushUserList = new ArrayList<>();
for (WxUser wxUser : wxUserList) {
if(wxUser.getOpenId().equals("0")){
continue;
}
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());
wxPushService.sendWxMsg(wxUser,"表单通知",wxSmsNewForm,true,entity.getId());
WxFormPushUser pushUser = new WxFormPushUser();
pushUser.setFormPushId(entity.getId());
pushUser.setUserId(wxUser.getSysUserId());
pushUser.setUserCode(wxUser.getSysUserCode());
pushUser.setUserName(wxUser.getEmpName());
pushUserList.add(pushUser);
}
wxFormPushUserService.saveBatch(pushUserList);
List<String> userCodes3 = userCodes.stream().filter(a->!userCodes2.contains(a)).collect(Collectors.toList());
WxPushResultVo resultVo = new WxPushResultVo();
resultVo.setNotBindUserCodeList(userCodes3);
return R.ok(resultVo);
}
}

24
src/main/java/com/qs/serve/modules/third/ThirdTokenUtil.java

@ -22,6 +22,7 @@ public class ThirdTokenUtil {
String token = request.getHeader(ThirtyConst.TOKEN_API_PARAM);
if(token==null||!token.equalsIgnoreCase(match)){
if(DevEnvironmentConfig.isDev()){
log.debug("HttpServletRequest v-token==>{}",token);
log.error("v-token==>"+match);
Assert.throwEx("请求头 v-token 为空。或token无效");
}
@ -29,4 +30,27 @@ public class ThirdTokenUtil {
}
}
public static String makeToken() {
String time = LocalDate.now().toString();
String token = SecureUtil.md5("jslApi-" + time);
return token;
}
public static void main(String[] args) {
String token = makeToken();
System.out.println(token);
String time = LocalDate.now().toString();
String match = SecureUtil.md5(ThirtyConst.PREFIX_MD5_VALUE + time);
if(token==null||!token.equalsIgnoreCase(match)){
if(DevEnvironmentConfig.isDev()){
log.error("v-token==>"+match);
Assert.throwEx("请求头 v-token 为空。或token无效");
}
Assert.throwEx("err");
}
}
}

1
src/main/java/com/qs/serve/modules/wx/api/WxSvcUserApi.java

@ -93,6 +93,7 @@ public class WxSvcUserApi {
wxUser.setPhone(param.getPhone());
wxUser.setEmpName(sysUser.getName());
wxUser.setSysUserId(sysUser.getId());
wxUser.setSysUserCode(sysUser.getCode());
wxUserService.updateById(wxUser);
return R.ok();

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

@ -0,0 +1,120 @@
package com.qs.serve.modules.wx.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.model.annotation.SysLog;
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.PageUtil;
import com.qs.serve.common.util.CopierUtil;
import com.qs.serve.common.util.StringUtils;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import com.qs.serve.modules.wx.entity.bo.WxFormPushBo;
import com.qs.serve.modules.wx.entity.WxFormPush;
import com.qs.serve.modules.wx.service.WxFormPushService;
import javax.validation.Valid;
import java.util.List;
/**
* 微信 表单推送
* @author YenHex
* @since 2023-04-19
*/
@Slf4j
@AllArgsConstructor
@RestController
@RequestMapping("wx/formPush")
public class WxFormPushController {
private WxFormPushService wxFormPushService;
/**
* 列表
* @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
* @return
*/
@GetMapping("/page")
public R<PageVo<WxFormPush>> getPage(WxFormPush param){
LambdaQueryWrapper<WxFormPush> lqw = new LambdaQueryWrapper<>(param);
PageUtil.startPage();
List<WxFormPush> list = wxFormPushService.list(lqw);
return R.byPageHelperList(list);
}
/**
* ID查询
* @param id
* @return
*/
@GetMapping("/getById/{id}")
@SysLog(module = SystemModule.Verification, title = "表单推送", biz = BizType.QUERY)
public R<WxFormPush> getById(@PathVariable("id") String id){
WxFormPush wxFormPush = wxFormPushService.getById(id);
return R.ok(wxFormPush);
}
/**
* 更新
* @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
* @return
*/
//@PostMapping("/save")
@SysLog(module = SystemModule.Verification, title = "表单推送", biz = BizType.INSERT)
@PreAuthorize("hasRole('wx:formPush:insert')")
public R<?> save(@RequestBody @Valid WxFormPushBo param){
WxFormPush entity = CopierUtil.copy(param,new WxFormPush());
boolean result = wxFormPushService.save(entity);
return R.isTrue(result);
}
/**
* 删除
* @param ids
* @return
*/
@DeleteMapping("/deleteById/{ids}")
@SysLog(module = SystemModule.Verification, title = "表单推送", biz = BizType.DELETE)
public R<?> deleteById(@PathVariable("ids") String ids){
List<Long> idsLong = StringUtils.splitIdLong(ids);
boolean result = wxFormPushService.removeByIds(idsLong);
return R.isTrue(result);
}
}

5
src/main/java/com/qs/serve/modules/wx/controller/WxUserController.java

@ -87,6 +87,7 @@ public class WxUserController {
WxUser updVo = new WxUser();
updVo.setId(wxUser.getId());
updVo.setSysUserId(sysUser.getId());
updVo.setSysUserCode(sysUser.getCode());
updVo.setEmpName(sysUser.getName());
updVo.setPhone(sysUser.getMobile());
wxUserService.updateById(updVo);
@ -95,6 +96,7 @@ public class WxUserController {
lqw.eq(WxUser::getUnionId,wxUser.getUnionId());
WxUser updVo = new WxUser();
updVo.setSysUserId(sysUser.getId());
updVo.setSysUserCode(sysUser.getCode());
updVo.setEmpName(sysUser.getName());
updVo.setPhone(sysUser.getMobile());
wxUserService.update(updVo,lqw);
@ -117,6 +119,7 @@ public class WxUserController {
wxUserId = wxUser.getId();
if(!StringUtils.hasText(wxUser.getUnionId())){
wxUser.setSysUserId("0");
wxUser.setSysUserCode("");
wxUser.setEmpName(wxUser.getNickName());
wxUser.setPhone("");
wxUserService.updateById(wxUser);
@ -125,6 +128,7 @@ public class WxUserController {
lqw.eq(WxUser::getUnionId,wxUser.getUnionId());
WxUser updVo = new WxUser();
updVo.setSysUserId("0");
wxUser.setSysUserCode("");
updVo.setEmpName(wxUser.getNickName());
updVo.setPhone("");
wxUserService.update(updVo,lqw);
@ -135,6 +139,7 @@ public class WxUserController {
List<WxUser> wxUserList = wxUserService.getBySysUserId(sysUser.getId());
for (WxUser wxUser : wxUserList) {
wxUser.setSysUserId("0");
wxUser.setSysUserCode("");
wxUser.setEmpName(wxUser.getNickName());
wxUser.setPhone("");
wxUserService.updateById(wxUser);

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

@ -0,0 +1,96 @@
package com.qs.serve.modules.wx.entity;
import java.time.LocalDate;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank;
/**
* 表单推送 实体类
* @author YenHex
* @since 2023-04-19
*/
@Data
@TableName("wx_form_push")
public class WxFormPush implements Serializable {
private static final long serialVersionUID = 1L;
/** id */
@TableId(type = IdType.ASSIGN_UUID)
private String id;
/** 标题 */
@Length(max = 255,message = "标题长度不能超过255字")
private String title;
/** 表单内容 */
private String formContext;
/** 表单值 */
private String formContextValue;
/** 备注 */
@Length(max = 600,message = "备注长度不能超过600字")
private String remark;
/** 创建时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
/** 最后更新时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.UPDATE)
private LocalDateTime updateTime;
/** 所属租户 */
@JsonIgnore
@JsonProperty
private String tenantId;
/** 创建人 */
@TableField(fill = FieldFill.INSERT)
private String createBy;
/** 更新人 */
@TableField(fill = FieldFill.UPDATE)
private String updateBy;
/** 逻辑删除标记(0:显示;1:隐藏) */
@JsonIgnore
@JsonProperty
private String delFlag;
public static WxFormPush toNewObject(WxFormPush source){
WxFormPush formPush = new WxFormPush();
formPush.setId(source.getId());
formPush.setTitle(source.getTitle());
formPush.setFormContext(source.getFormContext());
formPush.setFormContextValue(source.getFormContextValue());
formPush.setRemark(source.getRemark());
formPush.setCreateTime(source.getCreateTime());
formPush.setUpdateTime(source.getUpdateTime());
formPush.setTenantId(source.getTenantId());
formPush.setCreateBy(source.getCreateBy());
formPush.setUpdateBy(source.getUpdateBy());
formPush.setDelFlag(source.getDelFlag());
return formPush;
}
}

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

@ -0,0 +1,102 @@
package com.qs.serve.modules.wx.entity;
import java.time.LocalDate;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank;
/**
* 表单推送用户 实体类
* @author YenHex
* @since 2023-04-19
*/
@Data
@TableName("wx_form_push_user")
public class WxFormPushUser implements Serializable {
private static final long serialVersionUID = 1L;
/** id */
@TableId(type = IdType.AUTO)
private Long id;
/** */
private String formPushId;
/** */
@Length(max = 64,message = "长度不能超过64字")
private String userId;
/** */
@Length(max = 255,message = "长度不能超过255字")
private String userCode;
/** */
@Length(max = 255,message = "长度不能超过255字")
private String userName;
/** 备注 */
@Length(max = 600,message = "备注长度不能超过600字")
private String remark;
/** 创建时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
/** 最后更新时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.UPDATE)
private LocalDateTime updateTime;
/** 所属租户 */
@JsonIgnore
@JsonProperty
private String tenantId;
/** 创建人 */
@TableField(fill = FieldFill.INSERT)
private String createBy;
/** 更新人 */
@TableField(fill = FieldFill.UPDATE)
private String updateBy;
/** 逻辑删除标记(0:显示;1:隐藏) */
@JsonIgnore
@JsonProperty
private String delFlag;
public static WxFormPushUser toNewObject(WxFormPushUser source){
WxFormPushUser formPushUser = new WxFormPushUser();
formPushUser.setId(source.getId());
formPushUser.setFormPushId(source.getFormPushId());
formPushUser.setUserId(source.getUserId());
formPushUser.setUserCode(source.getUserCode());
formPushUser.setUserName(source.getUserName());
formPushUser.setRemark(source.getRemark());
formPushUser.setCreateTime(source.getCreateTime());
formPushUser.setUpdateTime(source.getUpdateTime());
formPushUser.setTenantId(source.getTenantId());
formPushUser.setCreateBy(source.getCreateBy());
formPushUser.setUpdateBy(source.getUpdateBy());
formPushUser.setDelFlag(source.getDelFlag());
return formPushUser;
}
}

1
src/main/java/com/qs/serve/modules/wx/entity/WxUser.java

@ -31,6 +31,7 @@ public class WxUser implements Serializable {
private String appId;
private String sysUserId;
private String sysUserCode;
/** 应用类型【1->小程序;2->公众号】 */
private Integer appType;

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

@ -0,0 +1,48 @@
package com.qs.serve.modules.wx.entity.bo;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;
/**
* 表单推送 实体类
* @author YenHex
* @since 2023-04-19
*/
@Data
public class WxFormPushBo implements Serializable {
/** APPID */
@NotNull(message = "appId不能为空")
private String appId;
/** 标题 */
@NotNull(message = "标题不能为空")
private String title;
/** 表单内容 */
@NotNull(message = "表单内容不能为空")
private String formContext;
/** 业务类型,默认:通知 */
private String businessType;
/** 表单值 */
private String formContextValue;
/** 备注 */
private String remark;
/** 工号列表 */
@NotNull(message = "工号列表不能为空")
private List<String> userCodes;
}

19
src/main/java/com/qs/serve/modules/wx/entity/vo/WxPushResultVo.java

@ -0,0 +1,19 @@
package com.qs.serve.modules.wx.entity.vo;
import lombok.Data;
import java.util.List;
/**
* @author YenHex
* @since 2023/4/19
*/
@Data
public class WxPushResultVo {
/**
* 未绑定的用户列表
*/
List<String> notBindUserCodeList;
}

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

@ -0,0 +1,14 @@
package com.qs.serve.modules.wx.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.serve.modules.wx.entity.WxFormPush;
/**
* 表单推送 Mapper
* @author YenHex
* @date 2023-04-19
*/
public interface WxFormPushMapper extends BaseMapper<WxFormPush> {
}

14
src/main/java/com/qs/serve/modules/wx/mapper/WxFormPushUserMapper.java

@ -0,0 +1,14 @@
package com.qs.serve.modules.wx.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.serve.modules.wx.entity.WxFormPushUser;
/**
* 表单推送用户 Mapper
* @author YenHex
* @date 2023-04-19
*/
public interface WxFormPushUserMapper extends BaseMapper<WxFormPushUser> {
}

14
src/main/java/com/qs/serve/modules/wx/service/WxFormPushService.java

@ -0,0 +1,14 @@
package com.qs.serve.modules.wx.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.modules.wx.entity.WxFormPush;
/**
* 表单推送 服务接口
* @author YenHex
* @date 2023-04-19
*/
public interface WxFormPushService extends IService<WxFormPush> {
}

14
src/main/java/com/qs/serve/modules/wx/service/WxFormPushUserService.java

@ -0,0 +1,14 @@
package com.qs.serve.modules.wx.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.modules.wx.entity.WxFormPushUser;
/**
* 表单推送用户 服务接口
* @author YenHex
* @date 2023-04-19
*/
public interface WxFormPushUserService extends IService<WxFormPushUser> {
}

22
src/main/java/com/qs/serve/modules/wx/service/impl/WxFormPushServiceImpl.java

@ -0,0 +1,22 @@
package com.qs.serve.modules.wx.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import com.qs.serve.modules.wx.entity.WxFormPush;
import com.qs.serve.modules.wx.service.WxFormPushService;
import com.qs.serve.modules.wx.mapper.WxFormPushMapper;
/**
* 表单推送 服务实现类
* @author YenHex
* @since 2023-04-19
*/
@Slf4j
@Service
@AllArgsConstructor
public class WxFormPushServiceImpl extends ServiceImpl<WxFormPushMapper,WxFormPush> implements WxFormPushService {
}

22
src/main/java/com/qs/serve/modules/wx/service/impl/WxFormPushUserServiceImpl.java

@ -0,0 +1,22 @@
package com.qs.serve.modules.wx.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import com.qs.serve.modules.wx.entity.WxFormPushUser;
import com.qs.serve.modules.wx.service.WxFormPushUserService;
import com.qs.serve.modules.wx.mapper.WxFormPushUserMapper;
/**
* 表单推送用户 服务实现类
* @author YenHex
* @since 2023-04-19
*/
@Slf4j
@Service
@AllArgsConstructor
public class WxFormPushUserServiceImpl extends ServiceImpl<WxFormPushUserMapper,WxFormPushUser> implements WxFormPushUserService {
}

2
src/main/resources/mapper/bms/BmsSupplierAddressMapper.xml

@ -57,6 +57,7 @@
FROM `bms_supplier_address` `bms_supplier_address`
left join `bms_supplier` `bms_supplier` on `bms_supplier`.id = `bms_supplier_address`.`supplier_id`
<where>
and `bms_supplier_address`.`del_flag` = 0
<if test="query.id != null"> and `bms_supplier_address`.`id` = #{query.id}</if>
<if test="query.supplierId != null"> and `bms_supplier_address`.`supplier_id` = #{query.supplierId}</if>
<if test="query.defaultFlag != null"> and `bms_supplier_address`.`default_flag` = #{query.defaultFlag}</if>
@ -73,7 +74,6 @@
<if test="query.createTime != null"> and `bms_supplier_address`.`create_time` = #{query.createTime}</if>
<if test="query.updateTime != null"> and `bms_supplier_address`.`update_time` = #{query.updateTime}</if>
<if test="query.tenantId != null and query.tenantId != ''"> and `bms_supplier_address`.`tenant_id` = #{query.tenantId}</if>
<if test="query.delFlag != null and query.delFlag != ''"> and `bms_supplier_address`.`del_flag` = #{query.delFlag}</if>
<if test="query.createBy != null and query.createBy != ''"> and `bms_supplier_address`.`create_by` = #{query.createBy}</if>
<if test="query.updateBy != null and query.updateBy != ''"> and `bms_supplier_address`.`update_by` = #{query.updateBy}</if>
<if test="query.supplierName != null and query.supplierName != ''"> and `bms_supplier`.`name` like concat('%',#{query.supplierName},'%')</if>

4
src/main/resources/mapper/qms/QmsGroupScopeMapper.xml

@ -70,7 +70,9 @@
<if test="query.queryEndDate != null">
and qms_group_scope.`create_time` &lt;= #{query.queryEndDate}
</if>
<if test="query.title != null and query.title != ''">
and qms_group.`name` like concat('%',#{query.title},'%')
</if>
</where>
order by `qms_group_scope`.`create_time` desc
</select>

Loading…
Cancel
Save