Browse Source

feat: 拓展账套功能,关联到商品

refactor:行政区域更新重构,支持上下级更新
checkBack
Yen 1 year ago
parent
commit
ab9fbd4cb0
  1. 100
      src/main/java/com/qs/serve/modules/bms/controller/BmsAccountController.java
  2. 77
      src/main/java/com/qs/serve/modules/bms/controller/BmsAccountUserController.java
  3. 4
      src/main/java/com/qs/serve/modules/bms/controller/BmsRegion2Controller.java
  4. 97
      src/main/java/com/qs/serve/modules/bms/entity/BmsAccount.java
  5. 117
      src/main/java/com/qs/serve/modules/bms/entity/BmsAccountUser.java
  6. 36
      src/main/java/com/qs/serve/modules/bms/entity/bo/BmsAccountUserBo.java
  7. 14
      src/main/java/com/qs/serve/modules/bms/mapper/BmsAccountMapper.java
  8. 14
      src/main/java/com/qs/serve/modules/bms/mapper/BmsAccountUserMapper.java
  9. 14
      src/main/java/com/qs/serve/modules/bms/service/BmsAccountService.java
  10. 17
      src/main/java/com/qs/serve/modules/bms/service/BmsAccountUserService.java
  11. 11
      src/main/java/com/qs/serve/modules/bms/service/BmsRegion2Service.java
  12. 22
      src/main/java/com/qs/serve/modules/bms/service/impl/BmsAccountServiceImpl.java
  13. 59
      src/main/java/com/qs/serve/modules/bms/service/impl/BmsAccountUserServiceImpl.java
  14. 85
      src/main/java/com/qs/serve/modules/bms/service/impl/BmsRegion2ServiceImpl.java
  15. 2
      src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java
  16. 3
      src/main/java/com/qs/serve/modules/goods/entity/GoodsCategory.java
  17. 3
      src/main/java/com/qs/serve/modules/goods/entity/GoodsSku.java
  18. 6
      src/main/java/com/qs/serve/modules/goods/entity/GoodsSpu.java
  19. 3
      src/main/java/com/qs/serve/modules/goods/entity/bo/GoodsSpuBo.java
  20. 3
      src/main/java/com/qs/serve/modules/goods/entity/bo/GoodsSpuImportBo.java
  21. 3
      src/main/java/com/qs/serve/modules/goods/entity/vo/GoodsSpuExportVo.java
  22. 1
      src/main/java/com/qs/serve/modules/goods/service/impl/GoodsAccreditServiceImpl.java
  23. 4
      src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java
  24. 86
      src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java
  25. 1
      src/main/resources/mapper/goods/GoodsSpuMapper.xml

100
src/main/java/com/qs/serve/modules/bms/controller/BmsAccountController.java

@ -0,0 +1,100 @@
package com.qs.serve.modules.bms.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.bms.entity.BmsAccount;
import com.qs.serve.modules.bms.service.BmsAccountService;
import javax.validation.Valid;
import java.util.List;
/**
* 基础档案 账套
* @author YenHex
* @since 2024-04-11
*/
@Slf4j
@AllArgsConstructor
@RestController
@RequestMapping("bms/account")
public class BmsAccountController {
private BmsAccountService bmsAccountService;
/**
* 列表
* @param param
* @return
*/
@GetMapping("/list")
public R<List<BmsAccount>> getList(BmsAccount param){
LambdaQueryWrapper<BmsAccount> lqw = new LambdaQueryWrapper<>(param);
List<BmsAccount> list = bmsAccountService.list(lqw);
return R.ok(list);
}
/**
* ID查询
* @param id
* @return
*/
@GetMapping("/getById/{id}")
@SysLog(module = SystemModule.BASE, title = "账套", biz = BizType.QUERY)
public R<BmsAccount> getById(@PathVariable("id") String id){
BmsAccount bmsAccount = bmsAccountService.getById(id);
return R.ok(bmsAccount);
}
/**
* 更新
* @param param
* @return
*/
@PostMapping("/updateById")
@SysLog(module = SystemModule.BASE, title = "账套", biz = BizType.UPDATE)
public R<?> updateById(@RequestBody @Valid BmsAccount param){
boolean result = bmsAccountService.updateById(param);
return R.isTrue(result);
}
/**
* 新增
* @param param
* @return
*/
@PostMapping("/save")
@SysLog(module = SystemModule.BASE, title = "账套", biz = BizType.INSERT)
public R<?> save(@RequestBody @Valid BmsAccount param){
boolean result = bmsAccountService.save(param);
return R.isTrue(result);
}
/**
* 删除
* @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 = bmsAccountService.removeByIds(idsLong);
return R.isTrue(result);
}
}

77
src/main/java/com/qs/serve/modules/bms/controller/BmsAccountUserController.java

@ -0,0 +1,77 @@
package com.qs.serve.modules.bms.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.bms.entity.bo.BmsAccountUserBo;
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.BmsAccountUser;
import com.qs.serve.modules.bms.service.BmsAccountUserService;
import javax.validation.Valid;
import java.util.List;
/**
* 基础档案 账套的用户
* @author YenHex
* @since 2024-04-11
*/
@Slf4j
@AllArgsConstructor
@RestController
@RequestMapping("bms/accountUser")
public class BmsAccountUserController {
private BmsAccountUserService bmsAccountUserService;
/**
* 翻页
* @param param
* @return
*/
@GetMapping("/page")
public R<PageVo<BmsAccountUser>> getPage(BmsAccountUser param){
LambdaQueryWrapper<BmsAccountUser> lqw = new LambdaQueryWrapper<>(param);
PageUtil.startPage();
List<BmsAccountUser> list = bmsAccountUserService.list(lqw);
return R.byPageHelperList(list);
}
/**
* 新增
* @param param
* @return
*/
@PostMapping("/saveBatch")
@SysLog(module = SystemModule.BASE, title = "账套的用户", biz = BizType.INSERT)
public R<?> save(@RequestBody @Valid BmsAccountUserBo param){
bmsAccountUserService.modify(param);
return R.ok();
}
/**
* 删除
* @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 = bmsAccountUserService.removeByIds(idsLong);
return R.isTrue(result);
}
}

4
src/main/java/com/qs/serve/modules/bms/controller/BmsRegion2Controller.java

@ -238,7 +238,7 @@ public class BmsRegion2Controller {
}
/**
* 更新(只允许改名称)
* 更新
* @param regionBo
* @return
*/
@ -250,7 +250,7 @@ public class BmsRegion2Controller {
param.setId(regionBo.getId());
param.setName(regionBo.getName());
param.setPid(regionBo.getPid());
boolean result = bmsRegion2Service.updateBmsRegion2ById(param);
boolean result = bmsRegion2Service.updateBizRegionById(param);
return R.isTrue(result);
}

97
src/main/java/com/qs/serve/modules/bms/entity/BmsAccount.java

@ -0,0 +1,97 @@
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 2024-04-11
*/
@Data
@TableName("bms_account")
public class BmsAccount implements Serializable {
private static final long serialVersionUID = 1L;
/** id */
@TableId(type = IdType.AUTO)
private Long id;
/** 账套名称 */
@Length(max = 255,message = "账套名称长度不能超过255字")
private String bookName;
/** 账套编码 */
@Length(max = 255,message = "账套编码长度不能超过255字")
private String bookCode;
/** 是否停用 */
private Integer stopFlag;
/** 备注 */
@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;
/** 租户id */
@JsonIgnore
@JsonProperty
private String tenantId;
public static BmsAccount toNewObject(BmsAccount source){
BmsAccount account = new BmsAccount();
account.setId(source.getId());
account.setBookName(source.getBookName());
account.setBookCode(source.getBookCode());
account.setStopFlag(source.getStopFlag());
account.setRemark(source.getRemark());
account.setCreateTime(source.getCreateTime());
account.setCreateBy(source.getCreateBy());
account.setUpdateTime(source.getUpdateTime());
account.setUpdateBy(source.getUpdateBy());
account.setDelFlag(source.getDelFlag());
account.setTenantId(source.getTenantId());
return account;
}
}

117
src/main/java/com/qs/serve/modules/bms/entity/BmsAccountUser.java

@ -0,0 +1,117 @@
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 2024-04-11
*/
@Data
@TableName("bms_account_user")
public class BmsAccountUser implements Serializable {
private static final long serialVersionUID = 1L;
/** id */
@TableId(type = IdType.AUTO)
private Long id;
/** 账套ID */
@NotNull(message = "账套ID不能为空")
private Long bookId;
/** 账套编码 */
@Length(max = 255,message = "账套编码长度不能超过255字")
private String bookCode;
/** 账套名称 */
@Length(max = 255,message = "账套名称长度不能超过255字")
private String bookName;
/** 用户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;
/** 是否显示 */
private Integer stopFlag;
/** 备注 */
@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;
/** 租户id */
@JsonIgnore
@JsonProperty
private String tenantId;
public static BmsAccountUser toNewObject(BmsAccountUser source){
BmsAccountUser accountUser = new BmsAccountUser();
accountUser.setId(source.getId());
accountUser.setBookId(source.getBookId());
accountUser.setBookCode(source.getBookCode());
accountUser.setBookName(source.getBookName());
accountUser.setUserId(source.getUserId());
accountUser.setUserCode(source.getUserCode());
accountUser.setUserName(source.getUserName());
accountUser.setStopFlag(source.getStopFlag());
accountUser.setRemark(source.getRemark());
accountUser.setCreateTime(source.getCreateTime());
accountUser.setCreateBy(source.getCreateBy());
accountUser.setUpdateTime(source.getUpdateTime());
accountUser.setUpdateBy(source.getUpdateBy());
accountUser.setDelFlag(source.getDelFlag());
accountUser.setTenantId(source.getTenantId());
return accountUser;
}
}

36
src/main/java/com/qs/serve/modules/bms/entity/bo/BmsAccountUserBo.java

@ -0,0 +1,36 @@
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 java.util.List;
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 2024-04-11
*/
@Data
public class BmsAccountUserBo implements Serializable {
private static final long serialVersionUID = 1L;
/** 账套ID */
private Long bookId;
/** 用户ID列表 */
private List<String> userIds;
}

14
src/main/java/com/qs/serve/modules/bms/mapper/BmsAccountMapper.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.BmsAccount;
/**
* 账套 Mapper
* @author YenHex
* @date 2024-04-11
*/
public interface BmsAccountMapper extends BaseMapper<BmsAccount> {
}

14
src/main/java/com/qs/serve/modules/bms/mapper/BmsAccountUserMapper.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.BmsAccountUser;
/**
* 账套的用户 Mapper
* @author YenHex
* @date 2024-04-11
*/
public interface BmsAccountUserMapper extends BaseMapper<BmsAccountUser> {
}

14
src/main/java/com/qs/serve/modules/bms/service/BmsAccountService.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.BmsAccount;
/**
* 账套 服务接口
* @author YenHex
* @date 2024-04-11
*/
public interface BmsAccountService extends IService<BmsAccount> {
}

17
src/main/java/com/qs/serve/modules/bms/service/BmsAccountUserService.java

@ -0,0 +1,17 @@
package com.qs.serve.modules.bms.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.modules.bms.entity.BmsAccountUser;
import com.qs.serve.modules.bms.entity.bo.BmsAccountUserBo;
/**
* 账套的用户 服务接口
* @author YenHex
* @date 2024-04-11
*/
public interface BmsAccountUserService extends IService<BmsAccountUser> {
void modify(BmsAccountUserBo param);
}

11
src/main/java/com/qs/serve/modules/bms/service/BmsRegion2Service.java

@ -31,5 +31,16 @@ public interface BmsRegion2Service extends IService<BmsRegion2> {
boolean saveBmsRegion2(BmsRegion2 param);
boolean updateBmsRegion2ById(BmsRegion2 param);
/**
* 深度加载子集
* @param pid
* @param parentLevel 用于防止递归错误设置
* @return
*/
List<BmsRegion2> listTreeChildByDeep(String pid,Integer parentLevel);
boolean updateBizRegionById(BmsRegion2 param);
}

22
src/main/java/com/qs/serve/modules/bms/service/impl/BmsAccountServiceImpl.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.BmsAccount;
import com.qs.serve.modules.bms.service.BmsAccountService;
import com.qs.serve.modules.bms.mapper.BmsAccountMapper;
/**
* 账套 服务实现类
* @author YenHex
* @since 2024-04-11
*/
@Slf4j
@Service
@AllArgsConstructor
public class BmsAccountServiceImpl extends ServiceImpl<BmsAccountMapper,BmsAccount> implements BmsAccountService {
}

59
src/main/java/com/qs/serve/modules/bms/service/impl/BmsAccountUserServiceImpl.java

@ -0,0 +1,59 @@
package com.qs.serve.modules.bms.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qs.serve.common.util.Assert;
import com.qs.serve.modules.bms.entity.BmsAccount;
import com.qs.serve.modules.bms.entity.bo.BmsAccountUserBo;
import com.qs.serve.modules.bms.mapper.BmsAccountMapper;
import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.sys.mapper.SysUserMapper;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import com.qs.serve.modules.bms.entity.BmsAccountUser;
import com.qs.serve.modules.bms.service.BmsAccountUserService;
import com.qs.serve.modules.bms.mapper.BmsAccountUserMapper;
import java.util.List;
import java.util.stream.Collectors;
/**
* 账套的用户 服务实现类
* @author YenHex
* @since 2024-04-11
*/
@Slf4j
@Service
@AllArgsConstructor
public class BmsAccountUserServiceImpl extends ServiceImpl<BmsAccountUserMapper,BmsAccountUser> implements BmsAccountUserService {
private SysUserMapper sysUserMapper;
private BmsAccountMapper bmsAccountMapper;
@Override
public void modify(BmsAccountUserBo param) {
BmsAccount account = bmsAccountMapper.selectById(param.getBookId());
if(account.getStopFlag().equals(1)){
Assert.throwEx("账套已停用");
}
List<SysUser> userList = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
.select(SysUser::getId,SysUser::getName,SysUser::getCode)
.in(SysUser::getId,param.getUserIds())
);
List<BmsAccountUser> accountUserList = userList.stream().map(user->{
BmsAccountUser accUser = new BmsAccountUser();
accUser.setBookId(account.getId());
accUser.setBookCode(account.getBookCode());
accUser.setBookName(account.getBookName());
accUser.setUserId(user.getId());
accUser.setUserCode(user.getCode());
accUser.setUserName(user.getName());
accUser.setStopFlag(0);
return accUser;
}).collect(Collectors.toList());
this.saveBatch(accountUserList);
}
}

85
src/main/java/com/qs/serve/modules/bms/service/impl/BmsRegion2ServiceImpl.java

@ -69,6 +69,91 @@ public class BmsRegion2ServiceImpl extends ServiceImpl<BmsRegion2Mapper,BmsRegio
}
}
}
@Override
public boolean updateBizRegionById(BmsRegion2 newRegion) {
String regionId = newRegion.getId();
this.checkSysCodes(newRegion);
this.toSetLevel(newRegion);
BmsRegion2 orgRegion = this.getById(regionId);
boolean changePid = !orgRegion.getPid().equals(newRegion.getPid());
if(changePid){
//更变子级,拦截递归的错误设置
List<BmsRegion2> childTree = this.listTreeChildByDeep(regionId,newRegion.getLevel());
//罗列相关的客户进行更新
List<BmsSupplier> supplierList = bmsSupplierMapper.selectList(new LambdaQueryWrapper<BmsSupplier>()
.select(BmsSupplier::getId,BmsSupplier::getRegion2First,BmsSupplier::getRegion2Second,BmsSupplier::getRegion2Third)
.eq(BmsSupplier::getRegion2First,regionId)
.or()
.eq(BmsSupplier::getRegion2Second,regionId)
.or()
.eq(BmsSupplier::getRegion2Third,regionId)
.or()
.eq(BmsSupplier::getRegion2Fourthly,regionId)
);
//利用有序
List<String> sortList = new ArrayList<>();
sortList.add(newRegion.getId());
if (!newRegion.getPid().equals("0")){
BmsRegion2 p1 = this.getById(newRegion.getPid());
sortList.add(p1.getId());
if(!p1.getPid().equals("0")){
BmsRegion2 p2 = this.getById(newRegion.getPid());
sortList.add(p2.getId());
}
}
// size对应层级数
int size = sortList.size();
for (BmsSupplier supplier : supplierList) {
if(size==3){
//3级
supplier.setRegion2First(sortList.get(2));
supplier.setRegion2Second(sortList.get(1));
supplier.setRegionThird(sortList.get(0));
supplier.setRegionLast(sortList.get(0));
}else if (size==2){
//二级
supplier.setRegionFirst(sortList.get(1));
//supplier.setRegion2Second(sortList.get(0));
if (orgRegion.getLevel() > (newRegion.getLevel())){
supplier.setRegion2Second(sortList.get(0));
//层级变小,由三级变二级
supplier.setRegionThird("0");
}if (orgRegion.getLevel() < (newRegion.getLevel())){
//层级变小,由一级变二级
supplier.setRegionThird(supplier.getRegion2Second());
supplier.setRegion2Second(sortList.get(0));
}
}else {
//一级
supplier.setRegionFirst(sortList.get(0));
//平级更换
if (orgRegion.getLevel() > (newRegion.getLevel())){
//层级变小,由二级变一级
supplier.setRegionSecond(supplier.getRegionThird());
supplier.setRegionThird("0");
}
}
bmsSupplierMapper.updateById(supplier);
}
}
return true;
}
@Override
public List<BmsRegion2> listTreeChildByDeep(String pid,Integer parentLevel){
List<BmsRegion2> list = this.listChild(pid);
for (BmsRegion2 region2 : list) {
List<BmsRegion2> childList = listTreeChildByDeep(region2.getId(),parentLevel++);
if(parentLevel > 3 && CollectionUtil.isNotEmpty(childList)){
Assert.throwEx("最高只能设置3层级");
}
region2.setChildNodes(childList);
}
return list;
}
@Override
public boolean updateBmsRegion2ById(BmsRegion2 param){
this.checkSysCodes(param);

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

@ -621,6 +621,7 @@ public class GoodsSpuController {
goodsSpu.setShelf(spuItem.getShelf());
goodsSpu.setCostFlag(spuItem.getCostFlag());
goodsSpu.setOrderFlag(spuItem.getOrderFlag());
goodsSpu.setSpuCunhuoFlag(spuItem.getSpuCunhuoFlag());
spuSaveList.add(goodsSpu);
continue;
}
@ -642,6 +643,7 @@ public class GoodsSpuController {
spu.setShelf(spuItem.getShelf());
spu.setCostFlag(spuItem.getCostFlag());
spu.setOrderFlag(spuItem.getOrderFlag());
spu.setSpuCunhuoFlag(spuItem.getSpuCunhuoFlag());
//修改类目
this.toSetSpuCate(cateList, spuItem, spu);
//关联

3
src/main/java/com/qs/serve/modules/goods/entity/GoodsCategory.java

@ -59,7 +59,8 @@ public class GoodsCategory implements Serializable {
@Length(max = 255,message = "图片长度不能超过255字")
private String picUrl;
private String belong;
/** 账套 */
private String bookBelong;
/** 排序 */
private Integer sort;

3
src/main/java/com/qs/serve/modules/goods/entity/GoodsSku.java

@ -105,6 +105,9 @@ public class GoodsSku implements Serializable {
/** 备注 */
private String remark;
/** 账套 */
private String bookBelong;
/** 产地 */
@NotNull(message = "产地不能为空")
private String belong;

6
src/main/java/com/qs/serve/modules/goods/entity/GoodsSpu.java

@ -114,7 +114,8 @@ public class GoodsSpu implements Serializable {
/** 可投放费用标识 */
private Integer costFlag;
private String belong;
/** 账套 */
private String bookBelong;
/** 在线下单 */
private Integer orderOnlineFlag;
@ -122,6 +123,9 @@ public class GoodsSpu implements Serializable {
/** 线下下单 */
private Integer orderOfflineFlag;
/** 存货标识 */
private Integer spuCunhuoFlag;
/** 特殊SKUID */
private Long specialSkuId;

3
src/main/java/com/qs/serve/modules/goods/entity/bo/GoodsSpuBo.java

@ -66,5 +66,8 @@ public class GoodsSpuBo {
/** 下单标识 */
private Integer orderFlag;
/** 存货标识 */
private Integer spuCunhuoFlag;
private String belong;
}

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

@ -41,6 +41,9 @@ public class GoodsSpuImportBo {
/** 可投放费用标识 */
private Integer costFlag;
/** 存货标识 */
private Integer spuCunhuoFlag;
/** 分类名称 */
private String categoryName;

3
src/main/java/com/qs/serve/modules/goods/entity/vo/GoodsSpuExportVo.java

@ -47,6 +47,9 @@ public class GoodsSpuExportVo implements Serializable {
/** 可投放费用标识 */
private Integer costFlag;
/** 存货标识 */
private Integer spuCunhuoFlag;
/** 商品销售类型:0-普通商品;1-赠品 */
private Integer goodsSaleType;

1
src/main/java/com/qs/serve/modules/goods/service/impl/GoodsAccreditServiceImpl.java

@ -211,7 +211,6 @@ public class GoodsAccreditServiceImpl extends ServiceImpl<GoodsAccreditMapper,Go
result.setTargetType(ext.getTargetType());
result.setTargetCode(ext.getTargetCode());
result.setTargetName(ext.getTargetName());
result.setTargetId(ext.getTargetId());
results.add(result);
}
return results;

4
src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java

@ -239,7 +239,7 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im
order.setBrandRuleName(categoryRule.getLabel());
}
BmsSupplier supplier = null;
if(param.getSupplierId()!=null && !param.getSupplierId().equals(order.getSupplierId())){
if(param.getSupplierId()!=null){
supplier = bmsSupplierMapper.selectById(param.getSupplierId());
order.setSupplierId(param.getSupplierId());
order.setSupplierName(supplier.getSupplierName());
@ -329,7 +329,7 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im
//拦截商品授权维度规则
if(supplier!=null){
GoodsAccrIdsDto accrIdsDto = goodsAccreditService.listIgnoreAcc2(supplier.getId(),supplier.getSelectBizRegionIds(),supplier.getSelectSaleRegionIds());
GoodsAccrIdsDto accrIdsDto = goodsAccreditService.listIgnoreAcc2(supplier.getId(),supplier.listBizRegionIds(),supplier.listSaleRegionIds());
List<Long> skuIds = goodsSkuMapper.listByOtherIds(
accrIdsDto.getCateIds(),
accrIdsDto.getSpuIds(),

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

@ -3,6 +3,7 @@ package com.qs.serve.modules.third.service;
import com.baomidou.dynamic.datasource.annotation.DSTransactional;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.qs.serve.common.config.properties.ProjectApisProperties;
import com.qs.serve.common.model.enums.BudgetLogOptFlag;
import com.qs.serve.common.model.consts.ResultFlag;
@ -1186,7 +1187,7 @@ public class PortalOfCostApplication {
verificationSubject.setVerificationSubCode(verification.getVerificationCode()+"_1");
verificationSubject.setCostApplyId(costApply.getId());
verificationSubject.setActivityId(activity.getId());
verificationSubject.setSubjectId(subject.getId());
verificationSubject.setSubjectId(subject.getSubjectId());
verificationSubject.setSubjectCode(subject.getSubjectCode());
verificationSubject.setSubjectName(subject.getSubjectName());
verificationSubject.setSupplierId(Long.parseLong(supplier.getId()));
@ -1211,7 +1212,7 @@ public class PortalOfCostApplication {
paymentItem.setCostApplyId(costApply.getId());
paymentItem.setActivityId(activity.getId());
paymentItem.setActivityCode(activity.getActivityCode());
paymentItem.setSubjectId(subject.getId());
paymentItem.setSubjectId(subject.getSubjectId());
paymentItem.setSubjectCode(subject.getSubjectCode());
paymentItem.setSubjectName(subject.getSubjectName());
paymentItem.setCreateBy(user.getName());
@ -1241,6 +1242,8 @@ public class PortalOfCostApplication {
.eq(VtbVerificationSubject::getCostApplyId,costId));
Map<Long,List<VtbVerificationSubject>> groupActSubject= subjectNewList.stream()
.collect(Collectors.groupingBy(VtbVerificationSubject::getActivityId));
//更新科目
//统计费用申请
BigDecimal totalCostAmt = BigDecimal.ZERO;
for (Long actId : groupActSubject.keySet()) {
@ -1260,6 +1263,85 @@ public class PortalOfCostApplication {
tbsActivity.setUsedAmount(totalActAmt);
activityService.updateById(tbsActivity);
totalCostAmt.add(totalActAmt);
//统计活动的科目金额
Map<Long,List<VtbVerificationSubject>> groupSubject= activitySubjects.stream()
.collect(Collectors.groupingBy(VtbVerificationSubject::getSubjectId));
for (Long subjectId : groupSubject.keySet()) {
List<VtbVerificationSubject> subjectList = groupSubject.get(subjectId);
BigDecimal totalSub = BigDecimal.ZERO;
for (VtbVerificationSubject subject : subjectList) {
if(subject.getUsedAmount()==null){
continue;
}
totalSub = totalSub.add(subject.getUsedAmount());
}
if(totalSub.compareTo(BigDecimal.ZERO)!=0){
//更新科目
activitySubjectService.update(new LambdaUpdateWrapper<TbsActivitySubject>()
.eq(TbsActivitySubject::getActivityId,actId)
.eq(TbsActivitySubject::getSubjectId,subjectId)
.set(TbsActivitySubject::getUsedAmount,totalSub)
);
}
}
//将金额平分到centerGoods
List<TbsActivityCenterGoods> centerGoodsList = activityCenterGoodsService.listByActivityId(actId);
BigDecimal surplus = totalActAmt;
List<TbsActivityCenterGoods> centerGoods4Upd = new ArrayList<>();
for (int i = 0; i < centerGoodsList.size(); i++) {
TbsActivityCenterGoods obj = centerGoodsList.get(i);
if(i+1==centerGoodsList.size()){
TbsActivityCenterGoods centerGoods = new TbsActivityCenterGoods();
centerGoods.setId(obj.getId());
centerGoods.setUsedAmount(surplus);
centerGoods4Upd.add(centerGoods);
}else {
BigDecimal curUsed = totalActAmt.multiply(
obj.getCenterRate()
.multiply(obj.getCenterGoodsRate())
.divide(new BigDecimal("10000"),RoundingMode.DOWN)
);
TbsActivityCenterGoods centerGoods = new TbsActivityCenterGoods();
centerGoods.setId(obj.getId());
centerGoods.setUsedAmount(curUsed);
centerGoods4Upd.add(centerGoods);
surplus = surplus.subtract(curUsed);
}
}
if(centerGoodsList.size()==centerGoods4Upd.size()){
activityCenterGoodsService.updateBatchById(centerGoods4Upd);
}
//将金额分到center
List<TbsActivityCenter> centerList = activityCenterService.listByActivity(actId);
BigDecimal surplusCenter = totalActAmt;
List<TbsActivityCenter> center4Upd = new ArrayList<>();
for (int i = 0; i < centerList.size(); i++) {
TbsActivityCenter obj = centerList.get(i);
if(i+1==centerGoodsList.size()){
TbsActivityCenter center = new TbsActivityCenter();
center.setId(obj.getId());
center.setUsedAmount(surplusCenter);
center4Upd.add(center);
}else {
BigDecimal curUsed = totalActAmt.multiply(
obj.getCenterRate()
.divide(new BigDecimal("100"),RoundingMode.DOWN)
);
TbsActivityCenter center = new TbsActivityCenter();
center.setId(obj.getId());
center.setUsedAmount(curUsed);
center4Upd.add(center);
surplusCenter = surplusCenter.subtract(curUsed);
}
}
if(centerList.size()==center4Upd.size()){
activityCenterService.updateBatchById(center4Upd);
}
}
costApply.setTotalActivityUsedAmount(totalCostAmt);
if(costApply.getTotalActivityAmount().compareTo(costApply.getTotalActivityUsedAmount())==0){

1
src/main/resources/mapper/goods/GoodsSpuMapper.xml

@ -169,6 +169,7 @@
<if test="query.costFlag != null"> and `goods_spu`.`cost_flag` = #{query.costFlag}</if>
<if test="query.orderOnlineFlag != null"> and `goods_spu`.`order_online_flag` = #{query.orderOnlineFlag}</if>
<if test="query.orderOfflineFlag != null"> and `goods_spu`.`order_offline_flag` = #{query.orderOfflineFlag}</if>
<if test="query.spuCunhuoFlag != null"> and `goods_spu`.`spu_cunhuo_flag` = #{query.spuCunhuoFlag}</if>
<if test="query.orderFlag != null"> and `goods_spu`.`order_flag` = #{query.orderFlag}</if>
<if test="query.sort != null"> and `goods_spu`.`sort` = #{query.sort}</if>
<if test="query.saleNum != null"> and `goods_spu`.`sale_num` = #{query.saleNum}</if>

Loading…
Cancel
Save