Browse Source

Merge remote-tracking branch 'origin/v1.0' into v1.0

v1.0
15989082884@163.com 2 years ago
parent
commit
d0b158fbd0
  1. 16
      src/main/java/com/qs/serve/common/framework/exception/UnifiedExceptionHandler.java
  2. 3
      src/main/java/com/qs/serve/modules/bir/service/impl/BirActivityCenterGoodsServiceImpl.java
  3. 12
      src/main/java/com/qs/serve/modules/biz/consts/GroupDataType.java
  4. 145
      src/main/java/com/qs/serve/modules/biz/controller/BizUserGroupController.java
  5. 94
      src/main/java/com/qs/serve/modules/biz/controller/BizUserGroupItemController.java
  6. 93
      src/main/java/com/qs/serve/modules/biz/entity/BizUserGroup.java
  7. 88
      src/main/java/com/qs/serve/modules/biz/entity/BizUserGroupItem.java
  8. 41
      src/main/java/com/qs/serve/modules/biz/entity/bo/BizUserGroupBatchBo.java
  9. 18
      src/main/java/com/qs/serve/modules/biz/entity/bo/BizUserGroupItemBatchBo.java
  10. 14
      src/main/java/com/qs/serve/modules/biz/mapper/BizUserGroupItemMapper.java
  11. 14
      src/main/java/com/qs/serve/modules/biz/mapper/BizUserGroupMapper.java
  12. 14
      src/main/java/com/qs/serve/modules/biz/service/BizUserGroupItemService.java
  13. 14
      src/main/java/com/qs/serve/modules/biz/service/BizUserGroupService.java
  14. 88
      src/main/java/com/qs/serve/modules/biz/service/impl/BizUserGroupApplicationService.java
  15. 22
      src/main/java/com/qs/serve/modules/biz/service/impl/BizUserGroupItemServiceImpl.java
  16. 22
      src/main/java/com/qs/serve/modules/biz/service/impl/BizUserGroupServiceImpl.java
  17. 8
      src/main/java/com/qs/serve/modules/bms/controller/BmsCostCenterController.java
  18. 2
      src/main/java/com/qs/serve/modules/bms/controller/BmsRegionController.java
  19. 2
      src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierController.java
  20. 3
      src/main/java/com/qs/serve/modules/bms/entity/BmsSupplier.java
  21. 16
      src/main/java/com/qs/serve/modules/bms/mapper/BmsSupplierMapper.java
  22. 66
      src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierApplicationService.java
  23. 2
      src/main/java/com/qs/serve/modules/data/entity/DataAffairCommit.java
  24. 164
      src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java
  25. 41
      src/main/java/com/qs/serve/modules/goods/entity/bo/GoodsSpuImportBo.java
  26. 3
      src/main/java/com/qs/serve/modules/seeyon/entity/bo/CtpAddNodeParam.java
  27. 28
      src/main/java/com/qs/serve/modules/seeyon/service/SeeYonOperationService.java
  28. 2
      src/main/java/com/qs/serve/modules/sys/controller/SysUserController.java
  29. 24
      src/main/java/com/qs/serve/modules/sys/entity/SysSyncLog.java
  30. 2
      src/main/java/com/qs/serve/modules/sys/service/SysUserRoleService.java
  31. 5
      src/main/java/com/qs/serve/modules/sys/service/SysUserService.java
  32. 16
      src/main/java/com/qs/serve/modules/sys/service/impl/SysUserRoleServiceImpl.java
  33. 80
      src/main/java/com/qs/serve/modules/sys/service/impl/SysUserServiceImpl.java
  34. 45
      src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java
  35. 40
      src/main/java/com/qs/serve/modules/tbs/entity/TbsBudgetBatch.java
  36. 3
      src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetMatchApplication.java
  37. 2
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetBatchServiceImpl.java
  38. 10
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetChangeOperationServiceImpl.java
  39. 18
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java
  40. 12
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyPart1ServiceImpl.java
  41. 13
      src/main/java/com/qs/serve/modules/third/PortalController.java
  42. 2
      src/main/java/com/qs/serve/modules/third/PortalOfCostController.java
  43. 2
      src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java
  44. 2
      src/main/java/com/qs/serve/modules/third/util/ThirtyVerificationUtil.java
  45. 4
      src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java
  46. 5
      src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationService.java
  47. 63
      src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java
  48. 14
      src/main/java/com/qs/serve/task/controller/TaskUserController.java
  49. 29
      src/main/resources/mapper/bir/BirActivityCenterGoodsMapper.xml
  50. 57
      src/main/resources/mapper/biz/BizUserGroupItemMapper.xml
  51. 3
      src/main/resources/mapper/bms/BmsChannelPointMapper.xml

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

@ -45,7 +45,7 @@ public class UnifiedExceptionHandler {
@ResponseBody
public R handleBindException(NullPointerException e,HttpServletRequest request) {
e.printStackTrace();
log.warn("空指针【{}】,请求地址:{}",e.getMessage(),request.getRequestURI());
log.error("空指针【{}】,请求地址:{}",e.getMessage(),request.getRequestURI());
return R.error("数据不存在或被移除");
}
@ -55,7 +55,7 @@ public class UnifiedExceptionHandler {
@ResponseBody
public R handleAccessException(AccessDeniedException e,HttpServletRequest request) {
HttpCode hc = HttpCode.FORBIDDEN_403;
log.warn("访问拦截【{}】,请求地址:{}",e.getMessage(),request.getRequestURI());
log.error("访问拦截【{}】,请求地址:{}",e.getMessage(),request.getRequestURI());
return new R(hc.getCode(),hc.getMsg());
}
@ -83,7 +83,7 @@ public class UnifiedExceptionHandler {
})
@ResponseBody
public R handleDevPrintMsgException(Exception e,HttpServletRequest request) {
log.warn("参数校验异常:{}",e.getMessage());
log.error("参数校验异常:{}",e.getMessage());
if(DevEnvironmentConfig.isDev()){
return R.error(e.getMessage());
}
@ -95,22 +95,22 @@ public class UnifiedExceptionHandler {
})
@ResponseBody
public R handleMethodArgumentNotValidException(MethodArgumentNotValidException e,HttpServletRequest request) {
log.warn("参数校验异常【{}】,请求地址:{}",e.getMessage(),request.getRequestURI());
log.error("参数校验异常【{}】,请求地址:{}",e.getMessage(),request.getRequestURI());
return R.error(e.getBindingResult().getAllErrors().get(0).getDefaultMessage());
}
@ExceptionHandler(value = DuplicateKeyException.class)
@ResponseBody
public R handleDuplicateKeyException(DuplicateKeyException e) {
e.printStackTrace();
public R handleDuplicateKeyException(DuplicateKeyException e,HttpServletRequest request) {
log.error("限制重复数据【{}】,请求地址:{}",e.getMessage(),request.getRequestURI());
return R.error("限制重复数据,请联系管理员");
}
@ExceptionHandler(value = HttpMessageNotReadableException.class)
@ResponseBody
public R handleHttpMessageNotReadableException(HttpMessageNotReadableException e) {
e.printStackTrace();
public R handleHttpMessageNotReadableException(HttpMessageNotReadableException e,HttpServletRequest request) {
log.error("请求参数无法解析【{}】,请求地址:{}",e.getMessage(),request.getRequestURI());
return R.error("请求参数无法解析");
}

3
src/main/java/com/qs/serve/modules/bir/service/impl/BirActivityCenterGoodsServiceImpl.java

@ -88,6 +88,9 @@ public class BirActivityCenterGoodsServiceImpl extends ServiceImpl<BirActivityCe
if(activityCenterGoodsAllList.size()<1){
return;
}
//添加支持:活动明细删除了,在bir_activity_center_goods还存在
// 删除历史数据
List<Long> activityIds = activityCenterGoodsAllList.stream().filter(a->a.getId()!=null)
.map(TbsActivityCenterGoods::getActivityId).collect(Collectors.toList());

12
src/main/java/com/qs/serve/modules/biz/consts/GroupDataType.java

@ -0,0 +1,12 @@
package com.qs.serve.modules.biz.consts;
/**
* @author YenHex
* @since 2023/10/25
*/
public interface GroupDataType {
String USER = "user";
String DEPT = "dept";
}

145
src/main/java/com/qs/serve/modules/biz/controller/BizUserGroupController.java

@ -0,0 +1,145 @@
package com.qs.serve.modules.biz.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.util.AuthContextUtils;
import com.qs.serve.common.util.PageUtil;
import com.qs.serve.common.util.StringUtils;
import com.qs.serve.modules.biz.entity.BizUserGroupItem;
import com.qs.serve.modules.biz.entity.bo.BizUserGroupBatchBo;
import com.qs.serve.modules.biz.service.BizUserGroupItemService;
import com.qs.serve.modules.biz.service.impl.BizUserGroupApplicationService;
import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.sys.service.SysUserService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import com.qs.serve.modules.biz.entity.BizUserGroup;
import com.qs.serve.modules.biz.service.BizUserGroupService;
import javax.validation.Valid;
import java.util.List;
/**
* 用户个人数据分组
* @author YenHex
* @since 2023-10-25
*/
@Slf4j
@AllArgsConstructor
@RestController
@RequestMapping("biz/dataGroup")
public class BizUserGroupController {
private final BizUserGroupApplicationService bizUserGroupApplicationService;
private BizUserGroupService bizUserGroupService;
private BizUserGroupItemService bizUserGroupItemService;
private SysUserService sysUserService;
/**
* 列表
* @param param
* @return
*/
@GetMapping("/list")
public R<List<BizUserGroup>> getList(BizUserGroup param){
LambdaQueryWrapper<BizUserGroup> lqw = new LambdaQueryWrapper<>(param);
lqw.eq(BizUserGroup::getUserId, AuthContextUtils.getSysUserId());
List<BizUserGroup> list = bizUserGroupService.list(lqw);
return R.ok(list);
}
/**
* 翻页
* @param param
* @return
*/
@GetMapping("/page")
public R<PageVo<BizUserGroup>> getPage(BizUserGroup param){
LambdaQueryWrapper<BizUserGroup> lqw = new LambdaQueryWrapper<>(param);
lqw.eq(BizUserGroup::getUserId, AuthContextUtils.getSysUserId());
PageUtil.startPage();
List<BizUserGroup> list = bizUserGroupService.list(lqw);
return R.byPageHelperList(list);
}
/**
* ID查询
* @param id
* @return
*/
@GetMapping("/getById/{id}")
public R<BizUserGroup> getById(@PathVariable("id") String id){
BizUserGroup bizUserGroup = bizUserGroupService.getById(id);
if(!bizUserGroup.getUserId().equals(AuthContextUtils.getSysUserId())){
return R.error("无相关数据");
}
LambdaQueryWrapper<BizUserGroupItem> itemLqw = new LambdaQueryWrapper<>();
itemLqw.eq(BizUserGroupItem::getGroupId,id);
List<BizUserGroupItem> itemList = bizUserGroupItemService.list(itemLqw);
bizUserGroup.setGroupItemList(itemList);
return R.ok(bizUserGroup);
}
/**
* 更新
* @param param
* @return
*/
@PostMapping("/update")
public R<?> updateById(@RequestBody @Valid BizUserGroup param){
BizUserGroup bizUserGroup = bizUserGroupService.getById(param.getId());
if(!bizUserGroup.getUserId().equals(AuthContextUtils.getSysUserId())){
return R.error("无相关数据");
}
boolean result = bizUserGroupService.updateById(param);
return R.isTrue(result);
}
/**
* 新增
* @param param
* @return
*/
@PostMapping("/save")
public R<?> save(@RequestBody @Valid BizUserGroup param){
SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId());
param.setUserId(sysUser.getId());
param.setUserCode(sysUser.getCode());
param.setUserName(sysUser.getName());
boolean result = bizUserGroupService.save(param);
return R.isTrue(result);
}
/**
* 编辑 场景同时编辑分组数据
* @param param
* @return
*/
@PostMapping("/editWithItem")
public R<?> editWithItem(@RequestBody @Valid BizUserGroupBatchBo param){
param.setEditGroupFlag(1);
bizUserGroupApplicationService.editWithItem(param);
return R.ok();
}
/**
* 删除整个组
* @param ids
* @return
*/
@DeleteMapping("/deleteById/{ids}")
public R<?> deleteById(@PathVariable("ids") String ids){
List<Long> idsLong = StringUtils.splitIdLong(ids);
LambdaQueryWrapper<BizUserGroup> lqw = new LambdaQueryWrapper<>();
lqw.in(BizUserGroup::getId,idsLong);
lqw.eq(BizUserGroup::getUserId,AuthContextUtils.getSysUserId());
boolean result = bizUserGroupService.remove(lqw);
return R.isTrue(result);
}
}

94
src/main/java/com/qs/serve/modules/biz/controller/BizUserGroupItemController.java

@ -0,0 +1,94 @@
package com.qs.serve.modules.biz.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 com.qs.serve.modules.biz.entity.bo.BizUserGroupBatchBo;
import com.qs.serve.modules.biz.entity.bo.BizUserGroupItemBatchBo;
import com.qs.serve.modules.biz.service.impl.BizUserGroupApplicationService;
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.biz.entity.BizUserGroupItem;
import com.qs.serve.modules.biz.service.BizUserGroupItemService;
import javax.validation.Valid;
import java.util.List;
/**
* 用户个人数据
* @author YenHex
* @since 2023-10-25
*/
@Slf4j
@AllArgsConstructor
@RestController
@RequestMapping("biz/dataItem")
public class BizUserGroupItemController {
private final BizUserGroupItemService bizUserGroupItemService;
private final BizUserGroupApplicationService bizUserGroupApplicationService;
/**
* 列表
* @param param
* @return
*/
@GetMapping("/list")
public R<List<BizUserGroupItem>> getList(BizUserGroupItem param){
LambdaQueryWrapper<BizUserGroupItem> lqw = new LambdaQueryWrapper<>(param);
List<BizUserGroupItem> list = bizUserGroupItemService.list(lqw);
return R.ok(list);
}
/**
* 翻页
* @param param
* @return
*/
@GetMapping("/page")
public R<PageVo<BizUserGroupItem>> getPage(BizUserGroupItem param){
LambdaQueryWrapper<BizUserGroupItem> lqw = new LambdaQueryWrapper<>(param);
PageUtil.startPage();
List<BizUserGroupItem> list = bizUserGroupItemService.list(lqw);
return R.byPageHelperList(list);
}
/**
* 新增
* @param param
* @return
*/
@PostMapping("/save")
public R<?> save(@RequestBody @Valid BizUserGroupItemBatchBo param){
BizUserGroupBatchBo groupBatchBo = new BizUserGroupBatchBo();
groupBatchBo.setEditGroupFlag(0);
groupBatchBo.setId(param.getGroupId());
groupBatchBo.setItems(param.getItems());
bizUserGroupApplicationService.editWithItem(groupBatchBo);
return R.ok();
}
/**
* 删除
* @param ids
* @return
*/
@DeleteMapping("/deleteById/{ids}")
public R<?> deleteById(@PathVariable("ids") String ids){
List<Long> idsLong = StringUtils.splitIdLong(ids);
boolean result = bizUserGroupItemService.removeByIds(idsLong);
return R.isTrue(result);
}
}

93
src/main/java/com/qs/serve/modules/biz/entity/BizUserGroup.java

@ -0,0 +1,93 @@
package com.qs.serve.modules.biz.entity;
import java.time.LocalDate;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
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-10-25
*/
@Data
@TableName("biz_user_group")
public class BizUserGroup implements Serializable {
private static final long serialVersionUID = 1L;
/** id */
@TableId(type = IdType.AUTO)
private Long id;
/** 分组名称 */
@Length(max = 255,message = "分组名称长度不能超过255字")
private String groupName;
/** 用户ID */
@Length(max = 255,message = "用户ID长度不能超过255字")
private String userId;
/** 用户编码 */
@Length(max = 255,message = "用户编码长度不能超过255字")
private String userCode;
/** 用户名称 */
@Length(max = 255,message = "用户名称长度不能超过255字")
private String userName;
/** 应用场景 */
@Length(max = 255,message = "应用场景长度不能超过255字")
private String scene;
/** 备注 */
@Length(max = 255,message = "备注长度不能超过255字")
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;
/** 删除标识 */
@JsonIgnore
@JsonProperty
private Boolean delFlag;
/** */
@JsonIgnore
@JsonProperty
private String tenantId;
@TableField(exist = false)
List<?> groupItemList;
}

88
src/main/java/com/qs/serve/modules/biz/entity/BizUserGroupItem.java

@ -0,0 +1,88 @@
package com.qs.serve.modules.biz.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-10-25
*/
@Data
@TableName("biz_user_group_item")
public class BizUserGroupItem implements Serializable {
private static final long serialVersionUID = 1L;
/** id */
@TableId(type = IdType.AUTO)
private Long id;
/** 分组名称 */
private Long groupId;
/** 数据类型:user;dept等 */
@Length(max = 255,message = "数据类型:user;dept等长度不能超过255字")
private String targetType;
/** 目标id */
@Length(max = 255,message = "目标id长度不能超过255字")
private String targetId;
/** 目标 */
@Length(max = 255,message = "目标长度不能超过255字")
private String targetName;
/** 目标编码 */
@Length(max = 255,message = "目标编码长度不能超过255字")
private String targetCode;
/** 备注 */
@Length(max = 255,message = "备注长度不能超过255字")
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;
/** 删除标识 */
@JsonIgnore
@JsonProperty
private Boolean delFlag;
/** */
@JsonIgnore
@JsonProperty
private String tenantId;
}

41
src/main/java/com/qs/serve/modules/biz/entity/bo/BizUserGroupBatchBo.java

@ -0,0 +1,41 @@
package com.qs.serve.modules.biz.entity.bo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import java.util.List;
/**
* @author YenHex
* @since 2023/10/25
*/
@Data
public class BizUserGroupBatchBo {
/** id */
private Long id;
/** 分组名称 */
private String groupName;
/** 应用场景 */
private String scene;
/** 备注 */
private String remark;
private List<Item> items;
private Integer editGroupFlag;
@Data
public static class Item{
private String targetType;
private String targetId;
}
}

18
src/main/java/com/qs/serve/modules/biz/entity/bo/BizUserGroupItemBatchBo.java

@ -0,0 +1,18 @@
package com.qs.serve.modules.biz.entity.bo;
import lombok.Data;
import java.util.List;
/**
* @author YenHex
* @since 2023/10/25
*/
@Data
public class BizUserGroupItemBatchBo {
private Long groupId;
private List<BizUserGroupBatchBo.Item> items;
}

14
src/main/java/com/qs/serve/modules/biz/mapper/BizUserGroupItemMapper.java

@ -0,0 +1,14 @@
package com.qs.serve.modules.biz.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.serve.modules.biz.entity.BizUserGroupItem;
/**
* 税务信息表 Mapper
* @author YenHex
* @date 2023-10-25
*/
public interface BizUserGroupItemMapper extends BaseMapper<BizUserGroupItem> {
}

14
src/main/java/com/qs/serve/modules/biz/mapper/BizUserGroupMapper.java

@ -0,0 +1,14 @@
package com.qs.serve.modules.biz.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.serve.modules.biz.entity.BizUserGroup;
/**
* 税务信息表 Mapper
* @author YenHex
* @date 2023-10-25
*/
public interface BizUserGroupMapper extends BaseMapper<BizUserGroup> {
}

14
src/main/java/com/qs/serve/modules/biz/service/BizUserGroupItemService.java

@ -0,0 +1,14 @@
package com.qs.serve.modules.biz.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.modules.biz.entity.BizUserGroupItem;
/**
* 税务信息表 服务接口
* @author YenHex
* @date 2023-10-25
*/
public interface BizUserGroupItemService extends IService<BizUserGroupItem> {
}

14
src/main/java/com/qs/serve/modules/biz/service/BizUserGroupService.java

@ -0,0 +1,14 @@
package com.qs.serve.modules.biz.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.modules.biz.entity.BizUserGroup;
/**
* 税务信息表 服务接口
* @author YenHex
* @date 2023-10-25
*/
public interface BizUserGroupService extends IService<BizUserGroup> {
}

88
src/main/java/com/qs/serve/modules/biz/service/impl/BizUserGroupApplicationService.java

@ -0,0 +1,88 @@
package com.qs.serve.modules.biz.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.util.Assert;
import com.qs.serve.common.util.AuthContextUtils;
import com.qs.serve.modules.biz.consts.GroupDataType;
import com.qs.serve.modules.biz.entity.BizUserGroup;
import com.qs.serve.modules.biz.entity.BizUserGroupItem;
import com.qs.serve.modules.biz.entity.bo.BizUserGroupBatchBo;
import com.qs.serve.modules.biz.service.BizUserGroupItemService;
import com.qs.serve.modules.biz.service.BizUserGroupService;
import com.qs.serve.modules.sys.entity.SysDept;
import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.sys.service.SysDeptService;
import com.qs.serve.modules.sys.service.SysUserService;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
/**
* @author YenHex
* @since 2023/10/25
*/
@Service
@AllArgsConstructor
public class BizUserGroupApplicationService {
private BizUserGroupService bizUserGroupService;
private BizUserGroupItemService bizUserGroupItemService;
private SysUserService sysUserService;
private SysDeptService sysDeptService;
/**
* 编辑 场景同时编辑分组数据
* @param param
* @return*/
@Transactional(rollbackFor = Exception.class)
public void editWithItem(BizUserGroupBatchBo param){
SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId());
BizUserGroup bizUserGroup = new BizUserGroup();
if(param.getId()!=null){
bizUserGroup = bizUserGroupService.getById(param.getId());
if(!bizUserGroup.getUserId().equals(AuthContextUtils.getSysUserId())){
Assert.throwEx("无相关数据");
}
}
if(param.getEditGroupFlag().equals(1)){
bizUserGroup.setGroupName(param.getGroupName());
bizUserGroup.setUserId(sysUser.getId());
bizUserGroup.setUserCode(sysUser.getCode());
bizUserGroup.setUserName(sysUser.getName());
bizUserGroup.setScene(param.getScene());
bizUserGroup.setRemark(param.getRemark());
bizUserGroupService.saveOrUpdate(bizUserGroup);
}
Long groupId = bizUserGroup.getId();
//移除历史ITEM
LambdaQueryWrapper<BizUserGroupItem> itemLqw = new LambdaQueryWrapper<>();
itemLqw.eq(BizUserGroupItem::getGroupId,groupId);
bizUserGroupItemService.remove(itemLqw);
//保存item
List<BizUserGroupItem> groupItemList = new ArrayList<>();
for (BizUserGroupBatchBo.Item item : param.getItems()) {
BizUserGroupItem groupItem = new BizUserGroupItem();
groupItem.setGroupId(groupId);
groupItem.setTargetType(item.getTargetType());
groupItem.setTargetId(item.getTargetId());
if(item.getTargetType().equals(GroupDataType.USER)){
SysUser user = sysUserService.getById(item.getTargetId());
groupItem.setTargetName(user.getName());
groupItem.setTargetCode(user.getCode());
}else if (item.getTargetType().equals(GroupDataType.DEPT)){
SysDept dept = sysDeptService.getById(item.getTargetId());
groupItem.setTargetName(dept.getName());
groupItem.setTargetCode(dept.getCode());
}else {
continue;
}
groupItemList.add(groupItem);
}
bizUserGroupItemService.saveBatch(groupItemList);
}
}

22
src/main/java/com/qs/serve/modules/biz/service/impl/BizUserGroupItemServiceImpl.java

@ -0,0 +1,22 @@
package com.qs.serve.modules.biz.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.biz.entity.BizUserGroupItem;
import com.qs.serve.modules.biz.service.BizUserGroupItemService;
import com.qs.serve.modules.biz.mapper.BizUserGroupItemMapper;
/**
* 税务信息表 服务实现类
* @author YenHex
* @since 2023-10-25
*/
@Slf4j
@Service
@AllArgsConstructor
public class BizUserGroupItemServiceImpl extends ServiceImpl<BizUserGroupItemMapper,BizUserGroupItem> implements BizUserGroupItemService {
}

22
src/main/java/com/qs/serve/modules/biz/service/impl/BizUserGroupServiceImpl.java

@ -0,0 +1,22 @@
package com.qs.serve.modules.biz.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.biz.entity.BizUserGroup;
import com.qs.serve.modules.biz.service.BizUserGroupService;
import com.qs.serve.modules.biz.mapper.BizUserGroupMapper;
/**
* 税务信息表 服务实现类
* @author YenHex
* @since 2023-10-25
*/
@Slf4j
@Service
@AllArgsConstructor
public class BizUserGroupServiceImpl extends ServiceImpl<BizUserGroupMapper,BizUserGroup> implements BizUserGroupService {
}

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

@ -278,6 +278,14 @@ public class BmsCostCenterController {
if(result){
return R.error("存在子节点无法删除");
}
//bmsCostCenterService
LambdaQueryWrapper<BmsCenterRegion> centerRegionLambdaQueryWrapper = new LambdaQueryWrapper<>();
centerRegionLambdaQueryWrapper.eq(BmsCenterRegion::getCenterId,id);
boolean centerRegionExist = bmsCenterRegionService.count(centerRegionLambdaQueryWrapper)>0;
if(centerRegionExist){
return R.error("区域使用中,删除失败");
}
bmsCostCenterService.removeById(id);
return R.ok();
}

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

@ -49,6 +49,7 @@ public class BmsRegionController {
private BmsRegionUserService bmsRegionUserService;
private HisUserSupplierService hisUserSupplierService;
private TbsBudgetService tbsBudgetService;
private BmsCostCenterService bmsCostCenterService;
/**
* 列表
@ -380,6 +381,7 @@ public class BmsRegionController {
if(bmsChannelPointService.listByBizRegionId(id).size()>0){
return R.error("地区含有网点无法删除");
}
LambdaQueryWrapper<TbsBudget> budgetLambdaQueryWrapper = new LambdaQueryWrapper<>();
budgetLambdaQueryWrapper.eq(TbsBudget::getCenterType, TbsCenterType.saleRegion);
budgetLambdaQueryWrapper.eq(TbsBudget::getCenterId,id);

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

@ -938,7 +938,7 @@ public class BmsSupplierController {
LambdaQueryWrapper<BmsRegion2> bmsRegion2LambdaQueryWrapper = new LambdaQueryWrapper<>();
bmsRegion2LambdaQueryWrapper.in(BmsRegion2::getPathNames,bmsBizRegionNames);
bizRegionList = bmsRegion2Service.list(bmsRegion2LambdaQueryWrapper);
List<String> exsitBizRegeionName = bizRegionList.stream().map(a->a.getName()).collect(Collectors.toList());
List<String> exsitBizRegeionName = bizRegionList.stream().map(BmsRegion2::getPathNames).collect(Collectors.toList());
if(bizRegionList.size()<bmsBizRegionNames.size()){
param.forEach(a->{
if(a.getType().equals("4")){

3
src/main/java/com/qs/serve/modules/bms/entity/BmsSupplier.java

@ -346,6 +346,9 @@ public class BmsSupplier implements Serializable {
private List<String> searchInIds;
/*-------------- ----------------- */
@TableField(exist = false)
private String otherUserIdsString;
public List<String> listBizRegionIds(){
List<String> list = new ArrayList<>();
list.add(this.getRegion2First());

16
src/main/java/com/qs/serve/modules/bms/mapper/BmsSupplierMapper.java

@ -18,6 +18,22 @@ public interface BmsSupplierMapper extends BaseMapper<BmsSupplier> {
@InterceptorIgnore(tenantLine = "1")
List<BmsSupplier> selectSupplierList(@Param("query") BmsSupplier bmsSupplier);
/**
*
* @param query
* @return
*/
@InterceptorIgnore(tenantLine = "1")
@Update("update bms_supplier" +
" set user_id = #{query.userId}" +
",user_code = #{query.userCode}" +
",user_name = #{query.userName}" +
",other_user_ids = #{query.otherUserIdsString}" +
",other_user_names = #{query.otherUserNames}" +
",other_user_codes = #{query.otherUserCodes}" +
" where id = #{query.id}")
int updateRelateUserInfo(@Param("query") BmsSupplier query);
@InterceptorIgnore(tenantLine = "1")
@Update("update bms_supplier set user_id = null,user_code = null, user_name = null where id = #{supplierId}")
int removeRelateUserInfo(@Param("supplierId") Long supplierId);

66
src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierApplicationService.java

@ -10,6 +10,8 @@ import com.qs.serve.modules.bms.entity.BmsSupplier;
import com.qs.serve.modules.bms.mapper.BmsRegion2Mapper;
import com.qs.serve.modules.bms.mapper.BmsRegionMapper;
import com.qs.serve.modules.bms.mapper.BmsSupplierMapper;
import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.sys.mapper.SysUserMapper;
import com.qs.serve.modules.tbs.common.TbsCenterType;
import com.qs.serve.modules.tbs.common.TbsGoodsType;
import com.qs.serve.modules.tbs.common.util.TbsBudgetLogBuildUtil;
@ -26,10 +28,7 @@ import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
/**
@ -50,6 +49,65 @@ public class BmsSupplierApplicationService {
// private TbsActivityMapper activityMapper;
private BmsSupplierMapper bmsSupplierMapper;
/**
* 移除用户所有的客户权限
* @param leaveUser 离职用户
* @param enterUser 入职用户(可空)
*/
public void removeUserOfSupplierList(final SysUser leaveUser,SysUser enterUser){
String leaveUserId = leaveUser.getId();
BmsSupplier query = new BmsSupplier();
query.setCurrUserId(leaveUser.getId());
query.setDelFlag(false);
List<BmsSupplier> supplierList = bmsSupplierMapper.selectSupplierList(query);
String enterUserId = "";
String enterUserCode = "";
String enterUserName = "";
if(enterUser!=null){
enterUserId = enterUser.getId();
enterUserCode = enterUser.getCode();
enterUserName = enterUser.getName();
}
for (BmsSupplier supplier : supplierList) {
//主要负责人
if(leaveUserId.equals(supplier.getUserId())){
supplier.setUserId(enterUserId);
if(enterUser==null){
supplier.setUserName("");
supplier.setUserCode("");
}else {
supplier.setUserName(enterUser.getName());
supplier.setUserCode(enterUser.getCode());
}
}
//其它负责人
List<String> otherUserIdList = new ArrayList<>();
if(supplier.getOtherUserIds()!=null){
for (String otherUserId : supplier.getOtherUserIds()) {
if(otherUserId.equals(leaveUserId)){
if(enterUserId==null){
continue;
}else {
otherUserIdList.add(enterUserId);
continue;
}
}
otherUserIdList.add(otherUserId);
}
}
if(otherUserIdList.size()>0){
String userIds = otherUserIdList.stream().distinct().collect(Collectors.joining(","));
supplier.setOtherUserIdsString(userIds);
String otherName = supplier.getOtherUserNames().replace(leaveUser.getName(),enterUserName);
String otherCode = supplier.getOtherUserCodes().replace(leaveUser.getCode(),enterUserCode);
supplier.setOtherUserNames(otherName);
supplier.setOtherUserCodes(otherCode);
bmsSupplierMapper.updateRelateUserInfo(supplier);
}
}
}
// /**
// * 客户更新区域时,预算政策统计
// * @param supplierId

2
src/main/java/com/qs/serve/modules/data/entity/DataAffairCommit.java

@ -48,7 +48,7 @@ public class DataAffairCommit implements Serializable {
/** 释放费用 */
private Integer releaseFlag;
/** 状态:0-否定,1-同意,2-退回 */
/** 状态:0-否定,1-同意,2-退回,3->加签 */
private Integer state;
/** 用户id */

164
src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java

@ -10,10 +10,7 @@ import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.*;
import com.qs.serve.modules.goods.common.GoodsConst;
import com.qs.serve.modules.goods.entity.*;
import com.qs.serve.modules.goods.entity.bo.GoodsSpuBatchTasteBo;
import com.qs.serve.modules.goods.entity.bo.GoodsSpuBo;
import com.qs.serve.modules.goods.entity.bo.GoodsSpuEditBo;
import com.qs.serve.modules.goods.entity.bo.GoodsSpuTasteBo;
import com.qs.serve.modules.goods.entity.bo.*;
import com.qs.serve.modules.goods.entity.dto.InventoryCusPrice;
import com.qs.serve.modules.goods.entity.so.InventoryCusPriceQuery;
import com.qs.serve.modules.goods.entity.vo.GoodsSpuVo;
@ -96,12 +93,14 @@ public class GoodsSpuController {
try {
String supplierCode = param.getSupplierCode();
List<String> skuCodes = toSkuKeys.stream().map(OmsSpuToSkuKey::getInvCode).collect(Collectors.toList());
InventoryCusPriceQuery query = new InventoryCusPriceQuery();
query.setCusCode(supplierCode);
query.setInvCodes(skuCodes);
R<String> res = seeYonRequestBaseService.postBase(TbsSeeYonConst.ERP_CUS_INV_PRICE,query,"查询客户特殊价");
if(res.getStatus().equals(200)){
inventoryCusPrices = JsonUtil.jsonToList(res.getData(), InventoryCusPrice.class);
if(skuCodes.size()>0){
InventoryCusPriceQuery query = new InventoryCusPriceQuery();
query.setCusCode(supplierCode);
query.setInvCodes(skuCodes);
R<String> res = seeYonRequestBaseService.postBase(TbsSeeYonConst.ERP_CUS_INV_PRICE,query,"查询客户特殊价");
if(res.getStatus().equals(200)){
inventoryCusPrices = JsonUtil.jsonToList(res.getData(), InventoryCusPrice.class);
}
}
} catch (Exception e) {
log.error("客户特殊价异常:{}",e.getMessage());
@ -279,6 +278,151 @@ public class GoodsSpuController {
return R.ok(goodsSpuService.editTasteSpu(param));
}
/**
* 导入
* @param param
* @return
*/
@PostMapping("/importSpu")
@SysLog(module = SystemModule.GOODS, title = "import", biz = BizType.INSERT)
public R<?> importSpu(@RequestBody @Valid GoodsSpuImportBo param){
final String UPDATE = "update";
final String DELETE = "delete";
final String SAVE = "save";
//导入
List<String> spuCodes = new ArrayList<>();
List<String> cateNames = new ArrayList<>();
for (GoodsSpuImportBo.SpuItem item : param.getSpuList()) {
spuCodes.add(item.getSpuCode());
//删除只需要spu编码
if(StringUtils.hasText(item.getCategoryName())&&!item.getOpt().equals(DELETE)){
cateNames.add(item.getCategoryName());
}
}
if(spuCodes.size()<1){
return R.error("获取SKU编码失败");
}
LambdaQueryWrapper<GoodsSpu> spuLqw = new LambdaQueryWrapper<>();
spuLqw.in(GoodsSpu::getSpuCode,spuCodes);
List<GoodsSpu> spuList = goodsSpuService.list(spuLqw);
List<GoodsCategory> cateList = null;
if(cateNames.size()>0){
LambdaQueryWrapper<GoodsCategory> cateLqw = new LambdaQueryWrapper<>();
cateLqw.in(GoodsCategory::getName,cateNames);
cateLqw.eq(GoodsCategory::getLevel,3);
cateList = goodsCategoryService.list(cateLqw);
}
boolean isError = false;
for (GoodsSpuImportBo.SpuItem item : param.getSpuList()) {
spuCodes.add(item.getSpuCode());
//更新或者保存,需要校验类目名称
if(StringUtils.hasText(item.getCategoryName())&&!item.getOpt().equals(DELETE)){
if(cateList==null){
isError = true;
item.setErrMsg("["+item.getCategoryName()+"]类目不存在");
}else {
String cateName = item.getCategoryName();
boolean existCate = cateList.stream().anyMatch(a->a.getName().equals(cateName));
if(!existCate){
isError = true;
item.setErrMsg("["+item.getCategoryName()+"]类目不存在");
}
}
}
String spuCode = item.getSpuCode();
boolean existSpu = spuList.stream().anyMatch(a->a.getSpuCode().equals(spuCode));
if(existSpu&&item.getOpt().equals(SAVE)){
isError = true;
item.setErrMsg("SKU编码已存在");
}else if(!existSpu && item.getOpt().equals(UPDATE)){
isError = true;
item.setErrMsg("SKU编码不存在");
}
}
if(isError){
return R.error("数据异常",param);
}
List<Long> rmIds = new ArrayList<>();
List<GoodsSpu> spuUpdateList = new ArrayList<>();
List<GoodsSpu> spuSaveList = new ArrayList<>();
for (GoodsSpuImportBo.SpuItem spuItem : param.getSpuList()) {
if(spuItem.getOpt().equals(SAVE)){
GoodsSpu goodsSpu = new GoodsSpu();
goodsSpu.setSpuCode(spuItem.getSpuCode());
goodsSpu.setName(spuItem.getName());
//修改类目
this.toSetSpuCate(cateList, spuItem, goodsSpu);
goodsSpu.setShelf(1);
goodsSpu.setCostFlag(1);
spuSaveList.add(goodsSpu);
continue;
}
for (GoodsSpu spu : spuList) {
if(spu.getSpuCode().equals(spuItem.getSpuCode())){
//删除
if(spuItem.getOpt().equals(DELETE)){
rmIds.add(spu.getId());
continue;
}
//更新start
if(StringUtils.hasText(spuItem.getName())){
spu.setName(spuItem.getName());
}
//修改类目
this.toSetSpuCate(cateList, spuItem, spu);
//关联
if(spuItem.getOpt().equals(UPDATE)){
spuUpdateList.add(spu);
}
}
}
}
if(rmIds.size()>0){
goodsSpuService.removeBatchByIds(rmIds);
}
if(spuUpdateList.size()>0){
goodsSpuService.updateBatchById(spuUpdateList);
}
if(spuSaveList.size()>0){
goodsSpuService.saveBatch(spuSaveList);
}
return R.ok();
}
/**
* 修改类目
* @param cateList
* @param spuItem
* @param spu
*/
private void toSetSpuCate(List<GoodsCategory> cateList, GoodsSpuImportBo.SpuItem spuItem, GoodsSpu spu) {
if(cateList !=null){
for (GoodsCategory category : cateList) {
if(category.getName().equals(spuItem.getCategoryName())){
String[] cateIds = category.getLevelPath().split("_");
if(cateIds.length==3){
spu.setCategoryFirst(cateIds[0]);
spu.setCategorySecond(cateIds[1]);
spu.setCategoryThird(cateIds[2]);
spu.setCategoryLast(cateIds[2]);
}
}
}
}
}
}

41
src/main/java/com/qs/serve/modules/goods/entity/bo/GoodsSpuImportBo.java

@ -0,0 +1,41 @@
package com.qs.serve.modules.goods.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 java.util.List;
/**
* 口味品类
* @author YenHex
* @since 2022/10/10
*/
@Data
public class GoodsSpuImportBo {
private List<SpuItem> spuList;
@Data
public static class SpuItem{
/**
* 操作方式save,update,delete
*/
private String opt;
/** 商品编码 */
private String spuCode;
/** 商品名字 */
private String name;
/** 分类名称 */
private String categoryName;
private String errMsg;
}
}

3
src/main/java/com/qs/serve/modules/seeyon/entity/bo/CtpAddNodeParam.java

@ -31,4 +31,7 @@ public class CtpAddNodeParam {
*/
String comment;
/** 附件id */
private String[] attachIds;
}

28
src/main/java/com/qs/serve/modules/seeyon/service/SeeYonOperationService.java

@ -96,6 +96,19 @@ public interface SeeYonOperationService extends SeeYonBaseService{
*/
default R<String> addNode(CtpAddNodeParam param){
getRequestService().testConnection();
//获取当前最新的affairId
List<CtpAffairVo> rList = this.pageAffair(param.getTargetId()).getData();
String affairId = null;
if(rList.size()>0){
CtpAffair affair = rList.get(0).getAffairInfo();
if(affair!=null){
affairId = affair.getAffairId();
}
}
if(affairId==null&&param.getAttachIds()!=null&&param.getAttachIds().length>0){
return R.error("附件上传失败(如果急需提交请移除附件)");
}
CtpAddNodeDTO addNodeDTO = new CtpAddNodeDTO();
addNodeDTO.setBackToMe(param.getBackToMe());
addNodeDTO.setTargetId(param.getTargetId());
@ -121,6 +134,21 @@ public interface SeeYonOperationService extends SeeYonBaseService{
addNodeDTO.setComment(param.getComment());
R<String> result = getRequestService().addNode(addNodeDTO);
if(result.getData()!=null&&result.getData().toLowerCase(Locale.ROOT).contains("ok")){
DataAffairCommitMapper dataAffairCommitMapper = SpringUtils.getBean(DataAffairCommitMapper.class);
DataAffairCommit dataAffairCommit = new DataAffairCommit();
dataAffairCommit.setTargetCode(getTemplateCode());
dataAffairCommit.setTargetId(param.getTargetId());
dataAffairCommit.setId(affairId);
dataAffairCommit.setCommentVal("加签:"+param.getComment());
dataAffairCommit.setReleaseFlag(0);
dataAffairCommit.setState(3);
dataAffairCommit.setUserId(sysUser.getId());
dataAffairCommit.setUserCode(sysUser.getCode());
dataAffairCommit.setUserName(sysUser.getName());
dataAffairCommit.setResultData("addNode");
dataAffairCommit.setAttachIds(param.getAttachIds());
dataAffairCommitMapper.insert(dataAffairCommit);
return R.ok();
}
return R.error(result.getMsg());

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

@ -623,7 +623,7 @@ public class SysUserController {
@SysLog(title = "人员",desc = "离职调整",biz = BizType.LEAVE)
@PostMapping("/leaveNow")
public R<?> leaveNow(String userId){
sysUserService.leaveNow(userId);
sysUserService.leaveNow(Arrays.asList(userId),true);
return R.ok();
}

24
src/main/java/com/qs/serve/modules/sys/entity/SysSyncLog.java

@ -34,7 +34,7 @@ public class SysSyncLog implements Serializable {
/** 来自系统 */
@Length(max = 255,message = "来自系统长度不能超过255字")
@TableField(value = "form_plat")
private String from;
private String fromPlat;
/** 请求地址 */
@Length(max = 255,message = "请求地址长度不能超过255字")
@ -58,6 +58,8 @@ public class SysSyncLog implements Serializable {
/** 是否需要处理 */
private Integer todoState;
private Integer tryTimes;
/** 备注 */
@Length(max = 255,message = "备注长度不能超过255字")
private String remark;
@ -92,25 +94,5 @@ public class SysSyncLog implements Serializable {
@JsonProperty
private Boolean delFlag;
public static SysSyncLog toNewObject(SysSyncLog source){
SysSyncLog syncLog = new SysSyncLog();
syncLog.setId(source.getId());
syncLog.setFrom(source.getFrom());
syncLog.setUrl(source.getUrl());
syncLog.setEntityClass(source.getEntityClass());
syncLog.setRequestJson(source.getRequestJson());
syncLog.setFailReason(source.getFailReason());
syncLog.setSuccessStatus(source.getSuccessStatus());
syncLog.setRemark(source.getRemark());
syncLog.setCreateTime(source.getCreateTime());
syncLog.setCreateBy(source.getCreateBy());
syncLog.setUpdateTime(source.getUpdateTime());
syncLog.setUpdateBy(source.getUpdateBy());
syncLog.setTenantId(source.getTenantId());
syncLog.setDelFlag(source.getDelFlag());
return syncLog;
}
}

2
src/main/java/com/qs/serve/modules/sys/service/SysUserRoleService.java

@ -24,5 +24,7 @@ public interface SysUserRoleService extends IService<SysUserRole> {
boolean remove(String roleId,List<String> userIds);
boolean replaceAndRemove(String leafUserId,String enterUserId);
}

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

@ -57,9 +57,10 @@ public interface SysUserService extends IService<SysUser> {
/**
* 立刻离职执行函数
* @param userId
* @param userIds
* @param updateLeaveStatus
*/
void leaveNow(String userId);
void leaveNow(List<String> userIds,Boolean updateLeaveStatus);
/**
* 取消离职

16
src/main/java/com/qs/serve/modules/sys/service/impl/SysUserRoleServiceImpl.java

@ -3,6 +3,7 @@ package com.qs.serve.modules.sys.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qs.serve.common.util.CollectionUtil;
import com.qs.serve.common.util.StringUtils;
import com.qs.serve.modules.sys.entity.SysUserRole;
import com.qs.serve.modules.sys.mapper.SysUserRoleMapper;
import com.qs.serve.modules.sys.service.SysUserRoleService;
@ -61,5 +62,20 @@ public class SysUserRoleServiceImpl extends ServiceImpl<SysUserRoleMapper, SysUs
return remove(wrapper);
}
@Override
public boolean replaceAndRemove(String leafUserId, String enterUserId) {
LambdaQueryWrapper<SysUserRole> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SysUserRole::getUserId,leafUserId);
if(!StringUtils.hasText(enterUserId)){
super.remove(wrapper);
}else {
List<SysUserRole> list = super.list(wrapper);
for (SysUserRole userRole : list) {
userRole.setUserId(enterUserId);
}
super.updateBatchById(list);
}
return true;
}
}

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

@ -11,6 +11,8 @@ import com.qs.serve.common.model.enums.HttpCode;
import com.qs.serve.common.util.*;
import com.qs.serve.modules.bms.entity.BmsRegionUser;
import com.qs.serve.modules.bms.mapper.BmsSupplierMapper;
import com.qs.serve.modules.bms.service.impl.BmsSupplierApplicationService;
import com.qs.serve.modules.his.service.HisUserSupplierService;
import com.qs.serve.modules.sys.entity.*;
import com.qs.serve.modules.sys.entity.bo.SysUserLeaveBo;
import com.qs.serve.modules.sys.entity.dto.SysUpdateSeeYonPassword;
@ -41,15 +43,15 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
private final SysPostUserService sysPostUserService;
private final SysUserRoleService sysUserRoleService;
private final SysUserLeaveService sysUserLeaveService;
private final SysRoleMenuMapper sysRoleMenuMapper;
private final SysPermitService sysPermitService;
private final SysRoleService sysRoleService;
private final SysUserRoleService userRoleService;
private final SysDeptMapper sysDeptMapper;
private final SysMenuMapper sysMenuMapper;
private final SysPostMapper postMapper;
private final SysPostUserMapper postUserMapper;
private final BmsSupplierMapper supplierMapper;
private SeeYonProperties seeYonProperties;
private final BmsSupplierApplicationService supplierApplicationService;
private final SeeYonProperties seeYonProperties;
@Override
public void updateSeeYonPassword(String syUserId, String password) {
@ -272,17 +274,71 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
}
@Override
public void leaveNow(String userId) {
SysUser user = new SysUser();
user.setId(userId);
user.setServingState(0);
user.setLoginEnable(0);
user.setServingLeaveDate(LocalDate.now());
this.updateById(user);
supplierMapper.updateBmsSuppliersOtherUserNullById(Arrays.asList(userId));
supplierMapper.updateBmsSuppliersUserNullById(Arrays.asList(userId));
@Transactional(rollbackFor = Exception.class)
public void leaveNow(List<String> userIds,Boolean updateLeaveStatus) {
if(userIds==null||userIds.size()<1){
return;
}
//人员业务继承-start
LambdaQueryWrapper<SysUserLeave> lqw = new LambdaQueryWrapper<>();
lqw.in(SysUserLeave::getUserId,userIds);
lqw.eq(SysUserLeave::getLeaveStatus,0);
List<SysUserLeave> sysUserLeaves = sysUserLeaveService.list(lqw);
for (String userId : userIds) {
SysUser leaveUser = super.baseMapper.selectById(userId);
boolean match = false;
for (SysUserLeave userLeave : sysUserLeaves) {
if(userId.equals(userLeave.getUserId())){
match = true;
//客户交接人
String cusUserId = userLeave.getCusUserId();
if(StringUtils.hasText(cusUserId)){
SysUser cusUser = super.baseMapper.selectById(userId);
supplierApplicationService.removeUserOfSupplierList(leaveUser,cusUser);
}
//角色交接人
String roleUserId = userLeave.getRoleUserId();
userRoleService.replaceAndRemove(userId,roleUserId);
//工作交接人
String flowUserId = userLeave.getFlowUserId();
}
}
//不匹配也要移除客户权限和角色
if(!match){
supplierApplicationService.removeUserOfSupplierList(leaveUser,null);
}
}
//更新离职记录标为完成
if(updateLeaveStatus&&sysUserLeaves.size()>0){
for (SysUserLeave userLeaf : sysUserLeaves) {
userLeaf.setLeaveStatus(1);
}
sysUserLeaveService.updateBatchById(sysUserLeaves);
}
//离职人员信息更新
LambdaQueryWrapper<SysUser> updLqw = new LambdaQueryWrapper<>();
updLqw.in(SysUser::getId,userIds);
SysUser sysUser = new SysUser();
sysUser.setServingState(0);
sysUser.setLoginEnable(0);
sysUser.setServingLeaveDate(LocalDate.now());
super.update(sysUser,updLqw);
HisUserSupplierService hisUserSupplierService = SpringUtils.getBean(HisUserSupplierService.class);
hisUserSupplierService.cleanTable();
}
@Override
public void cancelLeave(String userId) {
SysUser sysUser = this.getById(userId);

45
src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java

@ -12,7 +12,9 @@ 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.*;
import com.qs.serve.modules.bms.entity.BmsRegion2;
import com.qs.serve.modules.bms.entity.BmsSupplier;
import com.qs.serve.modules.bms.service.BmsRegion2Service;
import com.qs.serve.modules.bms.service.BmsSupplierService;
import com.qs.serve.modules.seeyon.entity.CtpAffairQo;
import com.qs.serve.modules.seeyon.entity.bo.CtpAddNodeParam;
@ -68,6 +70,7 @@ public class TbsCostApplyController {
private final TbsActivityChannelPointService activityChannelPointService;
private TbsBudgetLogService tbsBudgetLogService;
private BmsSupplierService bmsSupplierService;
private BmsRegion2Service region2Service;
private SysUserService sysUserService;
private SeeYonRequestService seeYonService;
private TbsBudgetApplicationService budgetApplicationService;
@ -262,6 +265,27 @@ public class TbsCostApplyController {
entity.setCode(CodeGenUtil.generate(CodeGenUtil.SourceKey.CostApply));
entity.setSupplierCode(supplier.getCode());
entity.setSupplierName(supplier.getName());
if(StringUtils.hasText(supplier.getRegion2First())){
BmsRegion2 region2 = region2Service.getById(supplier.getRegion2First());
if(region2!=null){
//Assert.throwEx("客户行政区域1错误");
entity.setSupplierBizRegionFirstName(region2.getName());
}
}
if(StringUtils.hasText(supplier.getRegion2Second())){
BmsRegion2 region2 = region2Service.getById(supplier.getRegion2Second());
if(region2!=null){
//Assert.throwEx("客户行政区域2错误");
entity.setSupplierBizRegionSecondName(region2.getName());
}
}
if(StringUtils.hasText(supplier.getRegion2Third())){
BmsRegion2 region2 = region2Service.getById(supplier.getRegion2Third());
if(region2!=null){
//Assert.throwEx("客户行政区域3错误");
entity.setSupplierBizRegionThirdName(region2.getName());
}
}
SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId());
entity.setUserId(sysUser.getId());
entity.setUserCode(sysUser.getCode());
@ -339,6 +363,27 @@ public class TbsCostApplyController {
activityBo.setTemplateId(param.getTemplateId());
activityBo.setTemplateTitle(param.getTemplateTitle());
entity.setSupplierCode(supplier.getCode());
if(StringUtils.hasText(supplier.getRegion2First())){
BmsRegion2 region2 = region2Service.getById(supplier.getRegion2First());
if(region2!=null){
//Assert.throwEx("客户行政区域1错误");
entity.setSupplierBizRegionFirstName(region2.getName());
}
}
if(StringUtils.hasText(supplier.getRegion2Second())){
BmsRegion2 region2 = region2Service.getById(supplier.getRegion2Second());
if(region2!=null){
//Assert.throwEx("客户行政区域2错误");
entity.setSupplierBizRegionSecondName(region2.getName());
}
}
if(StringUtils.hasText(supplier.getRegion2Third())){
BmsRegion2 region2 = region2Service.getById(supplier.getRegion2Third());
if(region2!=null){
//Assert.throwEx("客户行政区域3错误");
entity.setSupplierBizRegionThirdName(region2.getName());
}
}
entity.setSupplierName(supplier.getName());
SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId());
entity.setUserId(sysUser.getId());

40
src/main/java/com/qs/serve/modules/tbs/entity/TbsBudgetBatch.java

@ -112,26 +112,26 @@ public class TbsBudgetBatch implements Serializable {
@TableField(exist = false)
private List<TbsBudgetChange> changeList;
public static TbsBudgetBatch toNewObject(TbsBudgetBatch source){
TbsBudgetBatch budgetBatch = new TbsBudgetBatch();
budgetBatch.setId(source.getId());
budgetBatch.setBatchTitle(source.getBatchTitle());
budgetBatch.setBatchCode(source.getBatchCode());
budgetBatch.setBatchState(source.getBatchState());
budgetBatch.setSyFormId(source.getSyFormId());
budgetBatch.setUserId(source.getUserId());
budgetBatch.setUserCode(source.getUserCode());
budgetBatch.setUserName(source.getUserName());
budgetBatch.setSubmitTime(source.getSubmitTime());
budgetBatch.setRemark(source.getRemark());
budgetBatch.setCreateTime(source.getCreateTime());
budgetBatch.setUpdateTime(source.getUpdateTime());
budgetBatch.setTenantId(source.getTenantId());
budgetBatch.setCreateBy(source.getCreateBy());
budgetBatch.setUpdateBy(source.getUpdateBy());
budgetBatch.setDelFlag(source.getDelFlag());
return budgetBatch;
}
// public static TbsBudgetBatch toNewObject(TbsBudgetBatch source){
// TbsBudgetBatch budgetBatch = new TbsBudgetBatch();
// budgetBatch.setId(source.getId());
// budgetBatch.setBatchTitle(source.getBatchTitle());
// budgetBatch.setBatchCode(source.getBatchCode());
// budgetBatch.setBatchState(source.getBatchState());
// budgetBatch.setSyFormId(source.getSyFormId());
// budgetBatch.setUserId(source.getUserId());
// budgetBatch.setUserCode(source.getUserCode());
// budgetBatch.setUserName(source.getUserName());
// budgetBatch.setSubmitTime(source.getSubmitTime());
// budgetBatch.setRemark(source.getRemark());
// budgetBatch.setCreateTime(source.getCreateTime());
// budgetBatch.setUpdateTime(source.getUpdateTime());
// budgetBatch.setTenantId(source.getTenantId());
// budgetBatch.setCreateBy(source.getCreateBy());
// budgetBatch.setUpdateBy(source.getUpdateBy());
// budgetBatch.setDelFlag(source.getDelFlag());
// return budgetBatch;
// }
}

3
src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetMatchApplication.java

@ -115,6 +115,9 @@ public class TbsBudgetMatchApplication {
TbsActivity activity = activityMap.get(centerGoods.getActivityId());
String templateId = activity.getTemplateId()==null?null:activity.getTemplateId().toString();
TbsBudget budget = allBudgetMap.get(itemBudget.getBudgetId());
if(budget==null){
continue;
}
if (budget.getTemplateFlag().equals(1)) {
if(templateId==null||budget.getTemplateIds()==null||budget.getTemplateIds().length<1){
continue;

2
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetBatchServiceImpl.java

@ -73,7 +73,7 @@ public class TbsBudgetBatchServiceImpl extends ServiceImpl<TbsBudgetBatchMapper,
public Object commit(TbsBudgetBatchBo param) {
SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId());
String batchCode = CodeGenUtil.generate(CodeGenUtil.SourceKey.BudgetBatch);
String batchCode = "BH"+CodeGenUtil.generate(CodeGenUtil.SourceKey.BudgetBatch);
String templateCode = TbsSeeYonConst.BudgetBatchApplyConf.Code();
//构建Batch
TbsBudgetBatch budgetBatch = buildBatchData(param, batchCode, sysUser);

10
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetChangeOperationServiceImpl.java

@ -8,6 +8,7 @@ import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.enums.BudgetLogOptFlag;
import com.qs.serve.common.util.Assert;
import com.qs.serve.common.util.CollectionUtil;
import com.qs.serve.common.util.StringUtils;
import com.qs.serve.modules.seeyon.service.SeeYonOperationService;
import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.tbs.common.TbsBudgetCheckState;
@ -96,9 +97,16 @@ public class TbsBudgetChangeOperationServiceImpl implements SeeYonOperationServi
return;
}
TbsBudget tbsBudget = budgetMapper.selectById(budgetChange.getBudgetId());
tbsBudget.setBudgetCode(budgetChange.getBudgetTitle());
boolean updBudget = false;
if(StringUtils.hasText(budgetChange.getNewBudgetTitle())){
tbsBudget.setBudgetCode(budgetChange.getNewBudgetTitle());
updBudget = true;
}
if(budgetChange.getNewAttachIds()!=null&& budgetChange.getNewAttachIds().length>0){
tbsBudget.setAttachIds(budgetChange.getNewAttachIds());
updBudget = true;
}
if(updBudget){
budgetMapper.updateById(tbsBudget);
}
SysUser sysUser = getSysUserService().getById(budgetChange.getUserId());

18
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java

@ -574,15 +574,15 @@ public class TbsBudgetServiceImpl extends ServiceImpl<TbsBudgetMapper,TbsBudget>
budgetVo.setAttachList(attachList);
}
//TODO 添加子状态码;有更变时,修改为审批状态
if(budgetVo.getBudgetState().equals(1)&&!budgetVo.getBudgetCheckState().equals(TbsBudgetCheckState.State_1_apply)){
LambdaQueryWrapper<TbsBudgetChange> change_lqw = new LambdaQueryWrapper<>();
change_lqw.eq(TbsBudgetChange::getBudgetId,budgetVo.getId());
change_lqw.eq(TbsBudgetChange::getBudgetCheckState,TbsBudgetCheckState.State_1_apply);
long count = tbsBudgetChangeMapper.selectCount(change_lqw);
if(count>0){
budgetVo.setBudgetCheckState(TbsBudgetCheckState.State_1_apply);
}
}
// if(budgetVo.getBudgetState().equals(1)&&!budgetVo.getBudgetCheckState().equals(TbsBudgetCheckState.State_1_apply)){
// LambdaQueryWrapper<TbsBudgetChange> change_lqw = new LambdaQueryWrapper<>();
// change_lqw.eq(TbsBudgetChange::getBudgetId,budgetVo.getId());
// change_lqw.eq(TbsBudgetChange::getBudgetCheckState,TbsBudgetCheckState.State_1_apply);
// long count = tbsBudgetChangeMapper.selectCount(change_lqw);
// if(count>0){
// budgetVo.setBudgetCheckState(TbsBudgetCheckState.State_1_apply);
// }
// }
budgetVo.setTemplateFlag(budget.getTemplateFlag());
if(budget.getTemplateFlag().equals(1)&&budget.getTemplateIds()!=null&&budget.getTemplateIds().length>0){

12
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyPart1ServiceImpl.java

@ -71,8 +71,12 @@ public class TbsCostApplyPart1ServiceImpl implements TbsCostApplyPart1Service {
costApply.setChangeSourceId(null);
costApply.setChangeExtendId(null);
costApply.setCancelFlag(null);
costApply.setTotalActivityUsedAmount(null);
costApply.setCancelFlag(null);
costApply.setEditAmountFlag(null);
costApply.setChargeState(TbsCostApplyState.State_0_unPublish.getCode());
costApply.setChangeActionTime(null);
costApply.setChangeStateRecord(null);
tbsCostApplyService.save(costApply);
final Long newCostApplyId = costApply.getId();
@ -234,6 +238,14 @@ public class TbsCostApplyPart1ServiceImpl implements TbsCostApplyPart1Service {
orgActivity.setCreateTime(null);
orgActivity.setUpdateTime(null);
orgActivity.setUpdateBy(null);
orgActivity.setUsedAmount(null);
orgActivity.setReleaseAmount(null);
orgActivity.setCancelFlag(null);
orgActivity.setReopenFlag(null);
orgActivity.setFinishedFlag(null);
orgActivity.setFinishedTime(null);
orgActivity.setCostPassFlag(null);
orgActivity.setReleaseFlag(null);
tbsActivityMapper.insert(orgActivity);
final Long newActivityId = orgActivity.getId();

13
src/main/java/com/qs/serve/modules/third/PortalController.java

@ -13,6 +13,7 @@ import com.qs.serve.modules.seeyon.service.XiaoLuTonService;
import com.qs.serve.modules.sys.service.SysUserLoginService;
import com.qs.serve.modules.third.entity.AptPolicyPayment;
import com.qs.serve.modules.third.entity.param.SSOLoginParam;
import com.qs.serve.modules.vtb.service.VtbVerificationService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
@ -35,6 +36,7 @@ import java.util.Map;
public class PortalController {
private SysUserLoginService sysUserLoginService;
private VtbVerificationService vtbVerificationService;
/**
* 单点登录
@ -76,4 +78,15 @@ public class PortalController {
}
/**
* 同步错误的支付
* @apiNote headers+ => tenant-id = 001 \n headers+ => v-token = MD5.encrypt('jslApi-'+yyyy-MM-dd)
* @return
*/
@RequestMapping("/syncErrorPay")
public R<?> sync(){
vtbVerificationService.toPayRequest();
return R.ok("sync_success");
}
}

2
src/main/java/com/qs/serve/modules/third/PortalOfCostController.java

@ -46,7 +46,7 @@ public class PortalOfCostController {
@PostMapping("createByCostApply")
public R<?> createCostProcess(@Valid @RequestBody ProcessCreateCostApplyBo createBo,HttpServletRequest request){
SysSyncLog syncLog = new SysSyncLog();
syncLog.setFrom("一站式费用");
syncLog.setFromPlat("一站式费用");
syncLog.setUrl(request.getRequestURI());
syncLog.setRequestJson(JsonUtil.objectToJson(createBo));
syncLog.setEntityClass(ProcessCreateCostApplyBo.class.getName());

2
src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java

@ -858,7 +858,7 @@ public class PortalOfCostApplication {
String rs = HttpUtil.doPost(COST_TO_PAY_API, json, null);
SysSyncLog syncLog = new SysSyncLog();
syncLog.setFrom("to支付请求");
syncLog.setFromPlat("to支付请求");
syncLog.setUrl(COST_TO_PAY_API);
syncLog.setRequestJson(json);
if(rs==null||!rs.contains("200")){

2
src/main/java/com/qs/serve/modules/third/util/ThirtyVerificationUtil.java

@ -105,7 +105,7 @@ public class ThirtyVerificationUtil {
rs = e.getMessage();
}
SysSyncLog syncLog = new SysSyncLog();
syncLog.setFrom(title);
syncLog.setFromPlat(title);
syncLog.setUrl(api);
syncLog.setRequestJson(json);
if(rs==null||!rs.contains("200")){

4
src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java

@ -114,10 +114,10 @@ public class VtbVerificationController {
//减少mysql limit 产生的 IO
lqw.select(VtbVerification::getId);
if(param.getQueryStartTime()!=null){
lqw.ge(VtbVerification::getFinishedTime,param.getQueryStartTime());
lqw.ge(VtbVerification::getCreateTime,param.getQueryStartTime());
}
if(param.getQueryEndTime()!=null){
lqw.le(VtbVerification::getFinishedTime,param.getQueryEndTime());
lqw.le(VtbVerification::getCreateTime,param.getQueryEndTime());
}
if(loadChild!=null&&loadChild.equals(1)){
List<String> userIds = sysPostUserService.listByChildIds(AuthContextUtils.getSysUserId());

5
src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationService.java

@ -84,5 +84,10 @@ public interface VtbVerificationService extends IService<VtbVerification> {
*/
boolean checkCommitting(Long activityId);
/**
* 支付请求
*/
void toPayRequest();
}

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

@ -917,7 +917,7 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
if(activity.getActivityState().equals(TbsActivityState.STATE_1_Baning)){
Assert.throwEx("活动冻结中");
}
if(activity.getReleaseFlag().equals(1)||activity.getActivityState().equals(TbsActivityState.STATE_4_Release)){
if((activity.getReleaseFlag()!=null&&activity.getReleaseFlag().equals(1))||activity.getActivityState().equals(TbsActivityState.STATE_4_Release)){
Assert.throwEx("费用已释放");
}
if(activity.getFinishedFlag().equals(1)){
@ -957,8 +957,9 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
List<VtbVerificationSubjectBo> subjectBoList = verificationBo.getSubjectList();
int countCode = 1;
for (VtbVerificationSubjectBo subjectBo : subjectBoList) {
boolean isCheckZero = subjectBo.getAmount().compareTo(BigDecimal.ZERO)==0;
//忽略金额为0的数据
if (subjectBo.getAmount() == null || subjectBo.getAmount().compareTo(BigDecimal.ZERO) < 1) {
if ( !isCheckZero && subjectBo.getAmount() != null && subjectBo.getAmount().compareTo(BigDecimal.ZERO) < 1) {
continue;
}
BmsSubject subject = subjectService.getById(subjectBo.getSubjectId());
@ -970,17 +971,21 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
break;
}
}
List<VtbFundFlow> subjectFundFlowItems = funFlowListMap.get(subject.getId());
BigDecimal totalSubjectUsedAmount = BigDecimal.ZERO;
if (CollectionUtil.isNotEmpty(subjectFundFlowItems)) {
for (VtbFundFlow subjectFundFlowItem : subjectFundFlowItems) {
totalSubjectUsedAmount = totalSubjectUsedAmount.add(subjectFundFlowItem.getUsedAmount());
//兼容支持非0元核销
if(!isCheckZero){
List<VtbFundFlow> subjectFundFlowItems = funFlowListMap.get(subject.getId());
BigDecimal totalSubjectUsedAmount = BigDecimal.ZERO;
if (CollectionUtil.isNotEmpty(subjectFundFlowItems)) {
for (VtbFundFlow subjectFundFlowItem : subjectFundFlowItems) {
totalSubjectUsedAmount = totalSubjectUsedAmount.add(subjectFundFlowItem.getUsedAmount());
}
}
totalSubjectUsedAmount = totalSubjectUsedAmount.add(subjectBo.getAmount());
if (totalSubjectUsedAmount.compareTo(currentActivitySubject.getAmount()) > 0) {
Assert.throwEx("费用类型[" + subject.getSubjectName() + "]超额");
}
}
totalSubjectUsedAmount = totalSubjectUsedAmount.add(subjectBo.getAmount());
if (totalSubjectUsedAmount.compareTo(currentActivitySubject.getAmount()) > 0) {
Assert.throwEx("费用类型[" + subject.getSubjectName() + "]超额");
}
//保存费用结果
VtbVerificationSubject verificationSubject = new VtbVerificationSubject();
verificationSubject.setVerificationSubCode(verificationCode+"_"+countCode);
@ -1013,6 +1018,17 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
public void successCommit(Long verificationId) {
log.info("活动核销提交成功。verificationId:{}",verificationId);
VtbVerification verification = this.getById(verificationId);
boolean checkZero = verification.getAmount().compareTo(BigDecimal.ZERO)==0;
//0元核销只改变状态
if(checkZero){
fundFlowService.flushActivityAmount(verification.getActivityId());
verification = new VtbVerification();
verification.setId(verificationId);
verification.setVerificationState(VtbVerificationState.Finished.getCode());
verification.setFinishedTime(LocalDateTime.now());
super.updateById(verification);
return;
}
TbsActivity activity = activityService.getById(verification.getActivityId());
TbsCostApply costApply = costApplyService.getById(activity.getCostApplyId());
//移除历史数据
@ -1247,5 +1263,30 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
lqw.eq(VtbVerification::getVerificationState, VtbVerificationState.Commiting.getCode());
return this.count(lqw)>0;
}
@Override
public void toPayRequest() {
String COST_TO_PAY_API = projectApisProperties.getCostToPay();
LambdaQueryWrapper<SysSyncLog> lqw = new LambdaQueryWrapper<>();
lqw.eq(SysSyncLog::getFromPlat,"to支付请求")
.eq(SysSyncLog::getSuccessStatus,0)
.eq(SysSyncLog::getTodoState,1)
//重试两次
.lt(SysSyncLog::getTryTimes,3);
List<SysSyncLog> sysSyncLogs = sysSyncLogService.list(lqw);
for (SysSyncLog syncLog : sysSyncLogs) {
SysSyncLog syncLogBack = ThirtyVerificationUtil.requestToPayment("to支付请求",syncLog.getRemark(), COST_TO_PAY_API, syncLog.getRequestJson());
if(syncLogBack.getSuccessStatus().equals(1)){
syncLog.setSuccessStatus(1);
sysSyncLogService.updateById(syncLog);
}else {
syncLog.setFailReason(syncLogBack.getFailReason()+"");
syncLog.setTryTimes(syncLog.getTryTimes()+1);
syncLog.setUpdateTime(null);
sysSyncLogService.updateById(syncLog);
}
}
}
}

14
src/main/java/com/qs/serve/task/controller/TaskUserController.java

@ -16,6 +16,7 @@ import com.qs.serve.modules.wx.service.WxUserService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@ -45,7 +46,7 @@ public class TaskUserController {
private final BmsSupplierMapper supplierMapper;
private final HisUserSupplierService hisUserSupplierService;
@Transactional
public R<?> doLeave(){
LambdaQueryWrapper<SysUserLeave> lqw = new LambdaQueryWrapper<>();
lqw.select(SysUserLeave::getUserId,SysUserLeave::getId);
@ -60,16 +61,7 @@ public class TaskUserController {
}
sysUserLeaveService.updateBatchById(sysUserLeaves);
List<String> userIds = sysUserLeaves.stream().map(a->a.getUserId()).collect(Collectors.toList());
LambdaQueryWrapper<SysUser> updLqw = new LambdaQueryWrapper<>();
updLqw.in(SysUser::getId,userIds);
SysUser sysUser = new SysUser();
sysUser.setServingState(0);
sysUser.setLoginEnable(0);
sysUser.setServingLeaveDate(LocalDate.now());
sysUserService.update(sysUser,updLqw);
supplierMapper.updateBmsSuppliersOtherUserNullById(userIds);
supplierMapper.updateBmsSuppliersUserNullById(userIds);
hisUserSupplierService.cleanTable();
sysUserService.leaveNow(userIds,false);
return R.ok();
}

29
src/main/resources/mapper/bir/BirActivityCenterGoodsMapper.xml

@ -134,24 +134,19 @@
</select>
<select id="selectNoExistCenterGoods" resultType="com.qs.serve.modules.bir.entity.BirActivityCenterGoods">
select
bir_activity_center_goods.*
from bir_activity_center_goods
left join tbs_activity_center_goods
on tbs_activity_center_goods.id = bir_activity_center_goods.activity_center_goods_id
left join `tbs_cost_apply`
on `bir_activity_center_goods`.cost_apply_id = `tbs_cost_apply`.id
SELECT
*
FROM
bir_activity_center_goods
left join tbs_activity ON bir_activity_center_goods.activity_id = tbs_activity.id
left join `tbs_cost_apply` on `bir_activity_center_goods`.cost_apply_id = `tbs_cost_apply`.id
where
(
tbs_cost_apply.id is null
and tbs_activity_center_goods.id is null
)
or (
tbs_activity_center_goods.del_flag = 1
and tbs_cost_apply.del_flag = 1
and tbs_cost_apply.cancel_flag = 1
and tbs_cost_apply.charge_state not in (2,3)
)
tbs_cost_apply.del_flag = 1
or tbs_cost_apply.id is null
or tbs_cost_apply.cancel_flag = 1
or tbs_activity.cancel_flag = 1
or tbs_activity.id is null
or tbs_activity.del_flag = 1
</select>
<select id="listMonthCusCenterVo"

57
src/main/resources/mapper/biz/BizUserGroupItemMapper.xml

@ -0,0 +1,57 @@
<?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.biz.mapper.BizUserGroupItemMapper">
<resultMap id="bizUserGroupItemMap" type="com.qs.serve.modules.biz.entity.BizUserGroupItem" >
<result property="id" column="id"/>
<result property="groupId" column="group_id"/>
<result property="targetType" column="target_type"/>
<result property="targetId" column="target_id"/>
<result property="targetName" column="target_name"/>
<result property="targetCode" column="target_code"/>
<result property="remark" column="remark"/>
<result property="createTime" column="create_time"/>
<result property="createBy" column="create_by"/>
<result property="updateTime" column="update_time"/>
<result property="updateBy" column="update_by"/>
<result property="delFlag" column="del_flag"/>
<result property="tenantId" column="tenant_id"/>
</resultMap>
<sql id="bizUserGroupItemSql">
biz_user_group_item.`id`,
biz_user_group_item.`group_id`,
biz_user_group_item.`target_type`,
biz_user_group_item.`target_id`,
biz_user_group_item.`target_name`,
biz_user_group_item.`target_code`,
biz_user_group_item.`remark`,
biz_user_group_item.`create_time`,
biz_user_group_item.`create_by`,
biz_user_group_item.`update_time`,
biz_user_group_item.`update_by`,
biz_user_group_item.`del_flag`,
biz_user_group_item.`tenant_id` </sql>
<select id="selectBizUserGroupItemList" parameterType="com.qs.serve.modules.biz.entity.BizUserGroupItem" resultMap="bizUserGroupItemMap">
SELECT <include refid="bizUserGroupItemSql"/> FROM `biz_user_group_item` `biz_user_group_item`
<where>
<if test="query.id != null"> and `biz_user_group_item`.`id` = #{query.id}</if>
<if test="query.groupId != null"> and `biz_user_group_item`.`group_id` = #{query.groupId}</if>
<if test="query.targetType != null and query.targetType != ''"> and `biz_user_group_item`.`target_type` = #{query.targetType}</if>
<if test="query.targetId != null and query.targetId != ''"> and `biz_user_group_item`.`target_id` = #{query.targetId}</if>
<if test="query.targetName != null and query.targetName != ''"> and `biz_user_group_item`.`target_name` = #{query.targetName}</if>
<if test="query.targetCode != null and query.targetCode != ''"> and `biz_user_group_item`.`target_code` = #{query.targetCode}</if>
<if test="query.remark != null and query.remark != ''"> and `biz_user_group_item`.`remark` = #{query.remark}</if>
<if test="query.createTime != null"> and `biz_user_group_item`.`create_time` = #{query.createTime}</if>
<if test="query.createBy != null and query.createBy != ''"> and `biz_user_group_item`.`create_by` = #{query.createBy}</if>
<if test="query.updateTime != null"> and `biz_user_group_item`.`update_time` = #{query.updateTime}</if>
<if test="query.updateBy != null and query.updateBy != ''"> and `biz_user_group_item`.`update_by` = #{query.updateBy}</if>
<if test="query.delFlag != null"> and `biz_user_group_item`.`del_flag` = #{query.delFlag}</if>
<if test="query.tenantId != null and query.tenantId != ''"> and `biz_user_group_item`.`tenant_id` = #{query.tenantId}</if>
</where>
</select>
</mapper>

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

@ -111,7 +111,7 @@
<if test="query.updateBy != null and query.updateBy != ''"> and `bms_channel_point`.`update_by` = #{query.updateBy}</if>
<if test="query.costFlag != null and query.costFlag != ''"> and `bms_channel_point`.`cost_flag` = #{query.costFlag}</if>
</where>
ORDER BY `bms_channel_point`.`create_time` DESC
ORDER BY `bms_channel_point`.`id` DESC
</select>
@ -351,6 +351,7 @@
<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.channelCode != null and query.channelCode != ''"> and `bms_channel_point`.`channel_code` like concat('%',#{query.channelCode},'%') </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>

Loading…
Cancel
Save