From ab9fbd4cb0e75ce2b07cc31ad73a94ac1afb0f8a Mon Sep 17 00:00:00 2001 From: Yen Date: Fri, 12 Apr 2024 09:39:26 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=8B=93=E5=B1=95=E8=B4=A6=E5=A5=97?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=EF=BC=8C=E5=85=B3=E8=81=94=E5=88=B0=E5=95=86?= =?UTF-8?q?=E5=93=81=20refactor=EF=BC=9A=E8=A1=8C=E6=94=BF=E5=8C=BA?= =?UTF-8?q?=E5=9F=9F=E6=9B=B4=E6=96=B0=E9=87=8D=E6=9E=84=EF=BC=8C=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E4=B8=8A=E4=B8=8B=E7=BA=A7=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bms/controller/BmsAccountController.java | 100 +++++++++++++++ .../controller/BmsAccountUserController.java | 77 ++++++++++++ .../bms/controller/BmsRegion2Controller.java | 4 +- .../serve/modules/bms/entity/BmsAccount.java | 97 +++++++++++++++ .../modules/bms/entity/BmsAccountUser.java | 117 ++++++++++++++++++ .../bms/entity/bo/BmsAccountUserBo.java | 36 ++++++ .../modules/bms/mapper/BmsAccountMapper.java | 14 +++ .../bms/mapper/BmsAccountUserMapper.java | 14 +++ .../bms/service/BmsAccountService.java | 14 +++ .../bms/service/BmsAccountUserService.java | 17 +++ .../bms/service/BmsRegion2Service.java | 11 ++ .../service/impl/BmsAccountServiceImpl.java | 22 ++++ .../impl/BmsAccountUserServiceImpl.java | 59 +++++++++ .../service/impl/BmsRegion2ServiceImpl.java | 85 +++++++++++++ .../goods/controller/GoodsSpuController.java | 2 + .../modules/goods/entity/GoodsCategory.java | 3 +- .../serve/modules/goods/entity/GoodsSku.java | 3 + .../serve/modules/goods/entity/GoodsSpu.java | 6 +- .../modules/goods/entity/bo/GoodsSpuBo.java | 3 + .../goods/entity/bo/GoodsSpuImportBo.java | 3 + .../goods/entity/vo/GoodsSpuExportVo.java | 3 + .../impl/GoodsAccreditServiceImpl.java | 1 - .../oms/service/impl/OmsOrderServiceImpl.java | 4 +- .../service/PortalOfCostApplication.java | 86 ++++++++++++- .../resources/mapper/goods/GoodsSpuMapper.xml | 1 + 25 files changed, 773 insertions(+), 9 deletions(-) create mode 100644 src/main/java/com/qs/serve/modules/bms/controller/BmsAccountController.java create mode 100644 src/main/java/com/qs/serve/modules/bms/controller/BmsAccountUserController.java create mode 100644 src/main/java/com/qs/serve/modules/bms/entity/BmsAccount.java create mode 100644 src/main/java/com/qs/serve/modules/bms/entity/BmsAccountUser.java create mode 100644 src/main/java/com/qs/serve/modules/bms/entity/bo/BmsAccountUserBo.java create mode 100644 src/main/java/com/qs/serve/modules/bms/mapper/BmsAccountMapper.java create mode 100644 src/main/java/com/qs/serve/modules/bms/mapper/BmsAccountUserMapper.java create mode 100644 src/main/java/com/qs/serve/modules/bms/service/BmsAccountService.java create mode 100644 src/main/java/com/qs/serve/modules/bms/service/BmsAccountUserService.java create mode 100644 src/main/java/com/qs/serve/modules/bms/service/impl/BmsAccountServiceImpl.java create mode 100644 src/main/java/com/qs/serve/modules/bms/service/impl/BmsAccountUserServiceImpl.java diff --git a/src/main/java/com/qs/serve/modules/bms/controller/BmsAccountController.java b/src/main/java/com/qs/serve/modules/bms/controller/BmsAccountController.java new file mode 100644 index 00000000..3624a7f5 --- /dev/null +++ b/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> getList(BmsAccount param){ + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(param); + List 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 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 idsLong = StringUtils.splitIdLong(ids); + boolean result = bmsAccountService.removeByIds(idsLong); + return R.isTrue(result); + } + +} + diff --git a/src/main/java/com/qs/serve/modules/bms/controller/BmsAccountUserController.java b/src/main/java/com/qs/serve/modules/bms/controller/BmsAccountUserController.java new file mode 100644 index 00000000..966519e4 --- /dev/null +++ b/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> getPage(BmsAccountUser param){ + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(param); + PageUtil.startPage(); + List 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 idsLong = StringUtils.splitIdLong(ids); + boolean result = bmsAccountUserService.removeByIds(idsLong); + return R.isTrue(result); + } + +} + diff --git a/src/main/java/com/qs/serve/modules/bms/controller/BmsRegion2Controller.java b/src/main/java/com/qs/serve/modules/bms/controller/BmsRegion2Controller.java index 1840d417..edcebd9b 100644 --- a/src/main/java/com/qs/serve/modules/bms/controller/BmsRegion2Controller.java +++ b/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); } diff --git a/src/main/java/com/qs/serve/modules/bms/entity/BmsAccount.java b/src/main/java/com/qs/serve/modules/bms/entity/BmsAccount.java new file mode 100644 index 00000000..ebc3d131 --- /dev/null +++ b/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; + } + +} + diff --git a/src/main/java/com/qs/serve/modules/bms/entity/BmsAccountUser.java b/src/main/java/com/qs/serve/modules/bms/entity/BmsAccountUser.java new file mode 100644 index 00000000..b565296c --- /dev/null +++ b/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; + } + +} + diff --git a/src/main/java/com/qs/serve/modules/bms/entity/bo/BmsAccountUserBo.java b/src/main/java/com/qs/serve/modules/bms/entity/bo/BmsAccountUserBo.java new file mode 100644 index 00000000..a891ba5f --- /dev/null +++ b/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 userIds; + +} + diff --git a/src/main/java/com/qs/serve/modules/bms/mapper/BmsAccountMapper.java b/src/main/java/com/qs/serve/modules/bms/mapper/BmsAccountMapper.java new file mode 100644 index 00000000..f3cdf223 --- /dev/null +++ b/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 { + +} + diff --git a/src/main/java/com/qs/serve/modules/bms/mapper/BmsAccountUserMapper.java b/src/main/java/com/qs/serve/modules/bms/mapper/BmsAccountUserMapper.java new file mode 100644 index 00000000..85f0468f --- /dev/null +++ b/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 { + +} + diff --git a/src/main/java/com/qs/serve/modules/bms/service/BmsAccountService.java b/src/main/java/com/qs/serve/modules/bms/service/BmsAccountService.java new file mode 100644 index 00000000..62b192c6 --- /dev/null +++ b/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 { + +} + diff --git a/src/main/java/com/qs/serve/modules/bms/service/BmsAccountUserService.java b/src/main/java/com/qs/serve/modules/bms/service/BmsAccountUserService.java new file mode 100644 index 00000000..3be153a0 --- /dev/null +++ b/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 { + + void modify(BmsAccountUserBo param); + +} + diff --git a/src/main/java/com/qs/serve/modules/bms/service/BmsRegion2Service.java b/src/main/java/com/qs/serve/modules/bms/service/BmsRegion2Service.java index a6fa81d6..6f3c1190 100644 --- a/src/main/java/com/qs/serve/modules/bms/service/BmsRegion2Service.java +++ b/src/main/java/com/qs/serve/modules/bms/service/BmsRegion2Service.java @@ -31,5 +31,16 @@ public interface BmsRegion2Service extends IService { boolean saveBmsRegion2(BmsRegion2 param); boolean updateBmsRegion2ById(BmsRegion2 param); + + /** + * 深度加载子集 + * @param pid + * @param parentLevel 用于防止递归错误设置 + * @return + */ + List listTreeChildByDeep(String pid,Integer parentLevel); + + boolean updateBizRegionById(BmsRegion2 param); + } diff --git a/src/main/java/com/qs/serve/modules/bms/service/impl/BmsAccountServiceImpl.java b/src/main/java/com/qs/serve/modules/bms/service/impl/BmsAccountServiceImpl.java new file mode 100644 index 00000000..ca8634b3 --- /dev/null +++ b/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 implements BmsAccountService { + +} + diff --git a/src/main/java/com/qs/serve/modules/bms/service/impl/BmsAccountUserServiceImpl.java b/src/main/java/com/qs/serve/modules/bms/service/impl/BmsAccountUserServiceImpl.java new file mode 100644 index 00000000..14005b22 --- /dev/null +++ b/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 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 userList = sysUserMapper.selectList(new LambdaQueryWrapper() + .select(SysUser::getId,SysUser::getName,SysUser::getCode) + .in(SysUser::getId,param.getUserIds()) + ); + List 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); + } + +} + diff --git a/src/main/java/com/qs/serve/modules/bms/service/impl/BmsRegion2ServiceImpl.java b/src/main/java/com/qs/serve/modules/bms/service/impl/BmsRegion2ServiceImpl.java index 3c185ddb..68db4452 100644 --- a/src/main/java/com/qs/serve/modules/bms/service/impl/BmsRegion2ServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/bms/service/impl/BmsRegion2ServiceImpl.java @@ -69,6 +69,91 @@ public class BmsRegion2ServiceImpl extends ServiceImpl childTree = this.listTreeChildByDeep(regionId,newRegion.getLevel()); + //罗列相关的客户进行更新 + List supplierList = bmsSupplierMapper.selectList(new LambdaQueryWrapper() + .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 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 listTreeChildByDeep(String pid,Integer parentLevel){ + List list = this.listChild(pid); + for (BmsRegion2 region2 : list) { + List 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); diff --git a/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java b/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java index 24d0c3ac..2a0ebc8a 100644 --- a/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java +++ b/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); //关联 diff --git a/src/main/java/com/qs/serve/modules/goods/entity/GoodsCategory.java b/src/main/java/com/qs/serve/modules/goods/entity/GoodsCategory.java index c9e0af3f..d3729b87 100644 --- a/src/main/java/com/qs/serve/modules/goods/entity/GoodsCategory.java +++ b/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; diff --git a/src/main/java/com/qs/serve/modules/goods/entity/GoodsSku.java b/src/main/java/com/qs/serve/modules/goods/entity/GoodsSku.java index 012a0c1a..6d7cedb4 100644 --- a/src/main/java/com/qs/serve/modules/goods/entity/GoodsSku.java +++ b/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; diff --git a/src/main/java/com/qs/serve/modules/goods/entity/GoodsSpu.java b/src/main/java/com/qs/serve/modules/goods/entity/GoodsSpu.java index 5491698c..5fe7920e 100644 --- a/src/main/java/com/qs/serve/modules/goods/entity/GoodsSpu.java +++ b/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; diff --git a/src/main/java/com/qs/serve/modules/goods/entity/bo/GoodsSpuBo.java b/src/main/java/com/qs/serve/modules/goods/entity/bo/GoodsSpuBo.java index 12a31b00..d70d3d93 100644 --- a/src/main/java/com/qs/serve/modules/goods/entity/bo/GoodsSpuBo.java +++ b/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; } diff --git a/src/main/java/com/qs/serve/modules/goods/entity/bo/GoodsSpuImportBo.java b/src/main/java/com/qs/serve/modules/goods/entity/bo/GoodsSpuImportBo.java index a7cb2b71..be71a22d 100644 --- a/src/main/java/com/qs/serve/modules/goods/entity/bo/GoodsSpuImportBo.java +++ b/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; diff --git a/src/main/java/com/qs/serve/modules/goods/entity/vo/GoodsSpuExportVo.java b/src/main/java/com/qs/serve/modules/goods/entity/vo/GoodsSpuExportVo.java index da8c48dd..f213af62 100644 --- a/src/main/java/com/qs/serve/modules/goods/entity/vo/GoodsSpuExportVo.java +++ b/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; diff --git a/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsAccreditServiceImpl.java b/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsAccreditServiceImpl.java index 99c203fd..5f7d860e 100644 --- a/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsAccreditServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsAccreditServiceImpl.java @@ -211,7 +211,6 @@ public class GoodsAccreditServiceImpl extends ServiceImpl 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 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 skuIds = goodsSkuMapper.listByOtherIds( accrIdsDto.getCateIds(), accrIdsDto.getSpuIds(), diff --git a/src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java b/src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java index 2b6d2152..ff28abe9 100644 --- a/src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java +++ b/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> 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> groupSubject= activitySubjects.stream() + .collect(Collectors.groupingBy(VtbVerificationSubject::getSubjectId)); + for (Long subjectId : groupSubject.keySet()) { + List 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() + .eq(TbsActivitySubject::getActivityId,actId) + .eq(TbsActivitySubject::getSubjectId,subjectId) + .set(TbsActivitySubject::getUsedAmount,totalSub) + ); + } + } + + + //将金额平分到centerGoods + List centerGoodsList = activityCenterGoodsService.listByActivityId(actId); + BigDecimal surplus = totalActAmt; + List 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 centerList = activityCenterService.listByActivity(actId); + BigDecimal surplusCenter = totalActAmt; + List 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){ diff --git a/src/main/resources/mapper/goods/GoodsSpuMapper.xml b/src/main/resources/mapper/goods/GoodsSpuMapper.xml index 2efb69f0..676e0ec2 100644 --- a/src/main/resources/mapper/goods/GoodsSpuMapper.xml +++ b/src/main/resources/mapper/goods/GoodsSpuMapper.xml @@ -169,6 +169,7 @@ and `goods_spu`.`cost_flag` = #{query.costFlag} and `goods_spu`.`order_online_flag` = #{query.orderOnlineFlag} and `goods_spu`.`order_offline_flag` = #{query.orderOfflineFlag} + and `goods_spu`.`spu_cunhuo_flag` = #{query.spuCunhuoFlag} and `goods_spu`.`order_flag` = #{query.orderFlag} and `goods_spu`.`sort` = #{query.sort} and `goods_spu`.`sale_num` = #{query.saleNum}