diff --git a/src/main/java/com/qs/serve/modules/bms/controller/BmsCenterExtendController.java b/src/main/java/com/qs/serve/modules/bms/controller/BmsCenterExtendController.java new file mode 100644 index 00000000..62f81304 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/bms/controller/BmsCenterExtendController.java @@ -0,0 +1,141 @@ +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.BmsCenterExtendUser; +import com.qs.serve.modules.bms.entity.bo.BmsCenterExtendBo; +import com.qs.serve.modules.bms.service.BmsCenterExtendUserService; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import com.qs.serve.modules.bms.entity.so.BmsCenterExtendSo; +import com.qs.serve.modules.bms.entity.BmsCenterExtend; +import com.qs.serve.modules.bms.service.BmsCenterExtendService; + +import javax.validation.Valid; +import java.util.List; + +/** + * 基础档案 后继成本中心 + * @author YenHex + * @since 2023-05-30 + */ +@Slf4j +@AllArgsConstructor +@RestController +@RequestMapping("bms/centerExtend") +public class BmsCenterExtendController { + + private BmsCenterExtendService bmsCenterExtendService; + private BmsCenterExtendUserService bmsCenterExtendUserService; + + /** + * 列表 + * @param param + * @return + */ + //@GetMapping("/list") + @PreAuthorize("hasRole('bms:centerExtend:query')") + public R> getList(BmsCenterExtendSo param){ + BmsCenterExtend entity = CopierUtil.copy(param,new BmsCenterExtend()); + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(entity); + List list = bmsCenterExtendService.list(lqw); + return R.ok(list); + } + + /** + * 翻页 + * @param param + * @return + */ + @GetMapping("/page") + public R> getPage(BmsCenterExtendSo param){ + BmsCenterExtend entity = CopierUtil.copy(param,new BmsCenterExtend()); + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(entity); + PageUtil.startPage(); + List list = bmsCenterExtendService.list(lqw); + for (BmsCenterExtend centerExtend : list) { + LambdaQueryWrapper childLqw = new LambdaQueryWrapper<>(); + childLqw.eq(BmsCenterExtend::getSourceId,centerExtend.getId()); + List childList = bmsCenterExtendService.list(childLqw); + /*for (BmsCenterExtend childExt : childList) { + LambdaQueryWrapper userLqw = new LambdaQueryWrapper<>(); + userLqw.eq(BmsCenterExtendUser::getChildExtId,childExt.getId()); + List userList = bmsCenterExtendUserService.list(userLqw); + childExt.setUserList(userList); + }*/ + centerExtend.setChildList(childList); + } + return R.byPageHelperList(list); + } + + /** + * ID查询 + * @param id + * @return + */ + @GetMapping("/getById/{id}") + @SysLog(module = SystemModule.BASE, title = "后继成本中心", biz = BizType.QUERY) + public R getById(@PathVariable("id") String id){ + BmsCenterExtend centerExtend = bmsCenterExtendService.getById(id); + LambdaQueryWrapper childLqw = new LambdaQueryWrapper<>(); + childLqw.eq(BmsCenterExtend::getSourceId,centerExtend.getId()); + List childList = bmsCenterExtendService.list(childLqw); + for (BmsCenterExtend childExt : childList) { + LambdaQueryWrapper userLqw = new LambdaQueryWrapper<>(); + userLqw.eq(BmsCenterExtendUser::getChildExtId,childExt.getId()); + List userList = bmsCenterExtendUserService.list(userLqw); + childExt.setUserList(userList); + } + centerExtend.setChildList(childList); + return R.ok(centerExtend); + } + + + /** + * 保存均摊 + * @param param + * @return + */ + @PostMapping("/allocation4Save") + @SysLog(module = SystemModule.BASE, title = "后继成本中心", biz = BizType.INSERT) + public R allocation(BmsCenterExtendBo param){ + BmsCenterExtend detail = bmsCenterExtendService.allocation(param); + return R.ok(detail); + } + + /** + * 更新均摊(加删除子节点) + * @param param + * @return + */ + @PostMapping("/allocation4Update") + @SysLog(module = SystemModule.BASE, title = "后继成本中心", biz = BizType.UPDATE) + public R allocation4Update(BmsCenterExtendBo param){ + bmsCenterExtendService.allocation4Update(param); + return R.ok(); + } + + /** + * 删除均摊关系,并恢复到未继承状态 + * @param id + * @return + */ + @DeleteMapping("/deleteAndReply/{id}") + @SysLog(module = SystemModule.BASE, title = "后继成本中心", biz = BizType.UPDATE) + public R delete(@PathVariable("id") Long id){ + bmsCenterExtendService.deleteAndReply(id); + return R.ok(); + } + +} + diff --git a/src/main/java/com/qs/serve/modules/bms/entity/BmsCenterExtend.java b/src/main/java/com/qs/serve/modules/bms/entity/BmsCenterExtend.java new file mode 100644 index 00000000..36342019 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/bms/entity/BmsCenterExtend.java @@ -0,0 +1,147 @@ +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; +import java.util.List; +/** + * 后继成本中心 实体类 + * @author YenHex + * @since 2023-05-30 + */ +@Data +@TableName("bms_center_extend") +public class BmsCenterExtend implements Serializable { + + private static final long serialVersionUID = 1L; + + /** 编号 */ + @TableId(type = IdType.AUTO) + private Long id; + + /** 来源id */ + @NotNull(message = "来源id不能为空") + private Long sourceId; + + /** 成本中心类型 */ + @NotBlank(message = "成本中心类型不能为空") + @Length(max = 255,message = "成本中心类型长度不能超过255字") + private String centerType; + + /** 祖级id */ + private String pathIds; + + /** 成本中心id */ + @NotBlank(message = "成本中心id不能为空") + @Length(max = 32,message = "成本中心id长度不能超过32字") + private String centerId; + + /** 成本中心编码 */ + @NotBlank(message = "成本中心编码不能为空") + @Length(max = 50,message = "成本中心编码长度不能超过50字") + private String centerCode; + + /** 成本中心名称 */ + @NotBlank(message = "成本中心名称不能为空") + @Length(max = 200,message = "成本中心名称长度不能超过200字") + private String centerName; + + /** 开始时间 */ + @NotNull(message = "开始时间不能为空") + @Length(max = 0,message = "开始时间长度不能超过0字") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private LocalDateTime startTime; + + /** 结束时间 */ + @Length(max = 0,message = "结束时间长度不能超过0字") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private LocalDateTime stopTime; + + /** 结束标识 */ + @NotNull(message = "结束标识不能为空") + private Integer stopFlag; + + /** 权重 */ + @NotNull(message = "权重不能为空") + private BigDecimal weightRate; + + /** 备注 */ + @Length(max = 600,message = "备注长度不能超过600字") + private String remark; + + /** 创建时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + /** 最后更新时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @TableField(fill = FieldFill.UPDATE) + private LocalDateTime updateTime; + + /** 所属租户 */ + @JsonIgnore + @JsonProperty + private String tenantId; + + /** 创建人 */ + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** 更新人 */ + @TableField(fill = FieldFill.UPDATE) + private String updateBy; + + /** 逻辑删除标记(0:显示;1:隐藏) */ + @JsonIgnore + @JsonProperty + private String delFlag; + + /** 子列表 */ + @TableField(exist = false) + private List childList; + + /** 人员列表 */ + @TableField(exist = false) + private List userList; + + public static BmsCenterExtend toNewObject(BmsCenterExtend source){ + BmsCenterExtend centerExtend = new BmsCenterExtend(); + centerExtend.setId(source.getId()); + centerExtend.setSourceId(source.getSourceId()); + centerExtend.setCenterType(source.getCenterType()); + centerExtend.setCenterId(source.getCenterId()); + centerExtend.setCenterCode(source.getCenterCode()); + centerExtend.setCenterName(source.getCenterName()); + centerExtend.setStartTime(source.getStartTime()); + centerExtend.setStopTime(source.getStopTime()); + centerExtend.setStopFlag(source.getStopFlag()); + centerExtend.setWeightRate(source.getWeightRate()); + centerExtend.setRemark(source.getRemark()); + centerExtend.setCreateTime(source.getCreateTime()); + centerExtend.setUpdateTime(source.getUpdateTime()); + centerExtend.setTenantId(source.getTenantId()); + centerExtend.setCreateBy(source.getCreateBy()); + centerExtend.setUpdateBy(source.getUpdateBy()); + centerExtend.setDelFlag(source.getDelFlag()); + return centerExtend; + } + +} + diff --git a/src/main/java/com/qs/serve/modules/bms/entity/BmsCenterExtendUser.java b/src/main/java/com/qs/serve/modules/bms/entity/BmsCenterExtendUser.java new file mode 100644 index 00000000..95f68701 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/bms/entity/BmsCenterExtendUser.java @@ -0,0 +1,144 @@ +package com.qs.serve.modules.bms.entity; + +import java.time.LocalDate; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; +import org.hibernate.validator.constraints.Length; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.validation.constraints.NotNull; +import javax.validation.constraints.NotBlank; + +/** + * 后继负责人 实体类 + * @author YenHex + * @since 2023-05-31 + */ +@Data +@TableName("bms_center_extend_user") +public class BmsCenterExtendUser implements Serializable { + + private static final long serialVersionUID = 1L; + + /** 编号 */ + @TableId(type = IdType.AUTO) + private Long id; + + /** 子继承id */ + @NotNull(message = "子继承id不能为空") + private Long childExtId; + + /** 来源id */ + @NotNull(message = "来源id不能为空") + private Long sourceId; + + /** 祖级id */ + @NotBlank(message = "祖级id不能为空") + @Length(max = 2000,message = "祖级id长度不能超过2000字") + private String pathIds; + + /** 成本中心类型 */ + @NotBlank(message = "成本中心类型不能为空") + @Length(max = 255,message = "成本中心类型长度不能超过255字") + private String centerType; + + /** 成本中心id */ + @NotBlank(message = "成本中心id不能为空") + @Length(max = 32,message = "成本中心id长度不能超过32字") + private String centerId; + + /** 成本中心编码 */ + @NotBlank(message = "成本中心编码不能为空") + @Length(max = 50,message = "成本中心编码长度不能超过50字") + private String centerCode; + + /** 成本中心名称 */ + @NotBlank(message = "成本中心名称不能为空") + @Length(max = 200,message = "成本中心名称长度不能超过200字") + private String centerName; + + /** */ + @NotBlank(message = "不能为空") + @Length(max = 255,message = "长度不能超过255字") + private String userId; + + /** */ + @Length(max = 255,message = "长度不能超过255字") + private String userCode; + + /** */ + @Length(max = 255,message = "长度不能超过255字") + private String userName; + + /** 权重 */ + @NotNull(message = "权重不能为空") + private BigDecimal weightRate; + + /** 备注 */ + @Length(max = 600,message = "备注长度不能超过600字") + private String remark; + + /** 创建时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + /** 最后更新时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @TableField(fill = FieldFill.UPDATE) + private LocalDateTime updateTime; + + /** 所属租户 */ + @JsonIgnore + @JsonProperty + private String tenantId; + + /** 创建人 */ + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** 更新人 */ + @TableField(fill = FieldFill.UPDATE) + private String updateBy; + + /** 逻辑删除标记(0:显示;1:隐藏) */ + @JsonIgnore + @JsonProperty + private String delFlag; + + + public static BmsCenterExtendUser toNewObject(BmsCenterExtendUser source){ + BmsCenterExtendUser centerExtendUser = new BmsCenterExtendUser(); + centerExtendUser.setId(source.getId()); + centerExtendUser.setChildExtId(source.getChildExtId()); + centerExtendUser.setSourceId(source.getSourceId()); + centerExtendUser.setPathIds(source.getPathIds()); + centerExtendUser.setCenterType(source.getCenterType()); + centerExtendUser.setCenterId(source.getCenterId()); + centerExtendUser.setCenterCode(source.getCenterCode()); + centerExtendUser.setCenterName(source.getCenterName()); + centerExtendUser.setUserId(source.getUserId()); + centerExtendUser.setUserCode(source.getUserCode()); + centerExtendUser.setUserName(source.getUserName()); + centerExtendUser.setWeightRate(source.getWeightRate()); + centerExtendUser.setRemark(source.getRemark()); + centerExtendUser.setCreateTime(source.getCreateTime()); + centerExtendUser.setUpdateTime(source.getUpdateTime()); + centerExtendUser.setTenantId(source.getTenantId()); + centerExtendUser.setCreateBy(source.getCreateBy()); + centerExtendUser.setUpdateBy(source.getUpdateBy()); + centerExtendUser.setDelFlag(source.getDelFlag()); + return centerExtendUser; + } + +} + diff --git a/src/main/java/com/qs/serve/modules/bms/entity/bo/BmsCenterExtendBo.java b/src/main/java/com/qs/serve/modules/bms/entity/bo/BmsCenterExtendBo.java new file mode 100644 index 00000000..89df407f --- /dev/null +++ b/src/main/java/com/qs/serve/modules/bms/entity/bo/BmsCenterExtendBo.java @@ -0,0 +1,68 @@ +package com.qs.serve.modules.bms.entity.bo; + +import lombok.Data; + +import java.math.BigDecimal; +import java.util.List; + +/** + * @author YenHex + * @since 2023/5/30 + */ +@Data +public class BmsCenterExtendBo { + + /** + * 后继成本中心id(仅用于更新) + */ + Long id; + + /** 成本中心类型(更新可忽略) + center, + customer, + bizRegion, + saleRegion, + */ + String type; + + String sourceCenterId; + + List targetCenters; + + @Data + public static class Item{ + + /** + * 后继成本中心id(仅用于更新) + */ + Long id; + + /** + * 权重 + */ + BigDecimal weightRate; + + String targetCenterId; + + /** + * 当值=1,更新用户列表(仅用于更新) + */ + Integer updateUserListFlag; + + List userList; + + } + + @Data + public static class AllocationUser{ + + /** + * 权重 + */ + BigDecimal weightRate; + + String userId; + + } + +} diff --git a/src/main/java/com/qs/serve/modules/bms/entity/so/BmsCenterExtendSo.java b/src/main/java/com/qs/serve/modules/bms/entity/so/BmsCenterExtendSo.java new file mode 100644 index 00000000..c3c83d27 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/bms/entity/so/BmsCenterExtendSo.java @@ -0,0 +1,55 @@ +package com.qs.serve.modules.bms.entity.so; + +import java.time.LocalDate; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; +import org.hibernate.validator.constraints.Length; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.validation.constraints.NotNull; +import javax.validation.constraints.NotBlank; + +/** + * 后继成本中心 查询参数 + * @author YenHex + * @since 2023-05-30 + */ +@Data +public class BmsCenterExtendSo implements Serializable { + + private static final long serialVersionUID = 1L; + + /** 来源id */ + private Long sourceId; + + /** 成本中心类型 */ + private String centerType; + + /** 成本中心id */ + private String centerId; + + /** 成本中心编码 */ + private String centerCode; + + /** 成本中心名称 */ + private String centerName; + + /** 开始时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime startTime; + + /** 结束时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime stopTime; + + /** 结束标识 */ + private Integer stopFlag; + +} + diff --git a/src/main/java/com/qs/serve/modules/bms/entity/so/BmsSupplierSo.java b/src/main/java/com/qs/serve/modules/bms/entity/so/BmsSupplierSo.java index e4b522a9..f32d8c99 100644 --- a/src/main/java/com/qs/serve/modules/bms/entity/so/BmsSupplierSo.java +++ b/src/main/java/com/qs/serve/modules/bms/entity/so/BmsSupplierSo.java @@ -44,5 +44,8 @@ public class BmsSupplierSo implements Serializable { /** 生成费用结束时间 */ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime queryEndTime; + + private Integer loadChild; + } diff --git a/src/main/java/com/qs/serve/modules/bms/mapper/BmsCenterExtendMapper.java b/src/main/java/com/qs/serve/modules/bms/mapper/BmsCenterExtendMapper.java new file mode 100644 index 00000000..26b8103c --- /dev/null +++ b/src/main/java/com/qs/serve/modules/bms/mapper/BmsCenterExtendMapper.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.BmsCenterExtend; + +/** + * 后继成本中心 Mapper + * @author YenHex + * @date 2023-05-30 + */ +public interface BmsCenterExtendMapper extends BaseMapper { + +} + diff --git a/src/main/java/com/qs/serve/modules/bms/mapper/BmsCenterExtendUserMapper.java b/src/main/java/com/qs/serve/modules/bms/mapper/BmsCenterExtendUserMapper.java new file mode 100644 index 00000000..da4c203d --- /dev/null +++ b/src/main/java/com/qs/serve/modules/bms/mapper/BmsCenterExtendUserMapper.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.BmsCenterExtendUser; + +/** + * 后继负责人 Mapper + * @author YenHex + * @date 2023-05-31 + */ +public interface BmsCenterExtendUserMapper extends BaseMapper { + +} + diff --git a/src/main/java/com/qs/serve/modules/bms/service/BmsCenterExtendService.java b/src/main/java/com/qs/serve/modules/bms/service/BmsCenterExtendService.java new file mode 100644 index 00000000..d3fc7196 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/bms/service/BmsCenterExtendService.java @@ -0,0 +1,27 @@ +package com.qs.serve.modules.bms.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.qs.serve.modules.bms.entity.BmsCenterExtend; +import com.qs.serve.modules.bms.entity.bo.BmsCenterExtendBo; + +/** + * 后继成本中心 服务接口 + * @author YenHex + * @date 2023-05-30 + */ +public interface BmsCenterExtendService extends IService { + + boolean checkIsStop(String type, String centerId); + + BmsCenterExtend allocation(BmsCenterExtendBo param); + + void allocation4Update(BmsCenterExtendBo param); + + /** + * 删除所有均摊节点 + * @param id + */ + void deleteAndReply(Long id); + +} + diff --git a/src/main/java/com/qs/serve/modules/bms/service/BmsCenterExtendUserService.java b/src/main/java/com/qs/serve/modules/bms/service/BmsCenterExtendUserService.java new file mode 100644 index 00000000..bdfca35c --- /dev/null +++ b/src/main/java/com/qs/serve/modules/bms/service/BmsCenterExtendUserService.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.BmsCenterExtendUser; + +/** + * 后继负责人 服务接口 + * @author YenHex + * @date 2023-05-31 + */ +public interface BmsCenterExtendUserService extends IService { + +} + diff --git a/src/main/java/com/qs/serve/modules/bms/service/impl/BmsCenterExtendServiceImpl.java b/src/main/java/com/qs/serve/modules/bms/service/impl/BmsCenterExtendServiceImpl.java new file mode 100644 index 00000000..4bbd03bf --- /dev/null +++ b/src/main/java/com/qs/serve/modules/bms/service/impl/BmsCenterExtendServiceImpl.java @@ -0,0 +1,320 @@ +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.common.util.CollectionUtil; +import com.qs.serve.modules.bms.entity.BmsCenterExtendUser; +import com.qs.serve.modules.bms.entity.BmsCostCenter; +import com.qs.serve.modules.bms.entity.bo.BmsCenterExtendBo; +import com.qs.serve.modules.bms.mapper.*; +import com.qs.serve.modules.bms.service.BmsCenterExtendUserService; +import com.qs.serve.modules.goods.entity.dto.TbsCenterDto; +import com.qs.serve.modules.sys.entity.SysUser; +import com.qs.serve.modules.sys.mapper.SysUserMapper; +import com.qs.serve.modules.tbs.service.TbsCenterDtoService; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import com.qs.serve.modules.bms.entity.BmsCenterExtend; +import com.qs.serve.modules.bms.service.BmsCenterExtendService; +import org.springframework.transaction.annotation.Transactional; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + +/** + * 后继成本中心 服务实现类 + * @author YenHex + * @since 2023-05-30 + */ +@Slf4j +@Service +@AllArgsConstructor +public class BmsCenterExtendServiceImpl extends ServiceImpl implements BmsCenterExtendService { + + private TbsCenterDtoService centerDtoService; + private BmsCenterExtendUserService centerExtendUserService; + private SysUserMapper sysUserMapper; + + @Override + public boolean checkIsStop(String type, String centerId) { + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(BmsCenterExtend::getCenterType,type); + lqw.eq(BmsCenterExtend::getCenterId,centerId); + lqw.eq(BmsCenterExtend::getStopFlag,1); + return this.count(lqw)>0; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public BmsCenterExtend allocation(BmsCenterExtendBo param) { + //校验 + String type = param.getType(); + String centerId = param.getSourceCenterId(); + BigDecimal n100 = new BigDecimal("100"); + List targetCenters = param.getTargetCenters(); + BigDecimal totalRate = BigDecimal.ZERO; + for (BmsCenterExtendBo.Item center : targetCenters) { + totalRate=totalRate.add(center.getWeightRate()); + } + if(totalRate.compareTo(n100)!=0){ + Assert.throwEx("权重合计必须百分百"); + } + if (this.checkIsStop(type,centerId)){ + Assert.throwEx("当前成本中心已分配"); + } + TbsCenterDto centerDto = centerDtoService.getCenterDto(type,centerId); + //停止时间 + LocalDateTime nowTime = LocalDateTime.now(); + //当前节点 + BmsCenterExtend currentCenter = new BmsCenterExtend(); + currentCenter.setSourceId(0L); + currentCenter.setCenterType(type); + currentCenter.setPathIds("0"); + currentCenter.setCenterId(centerId); + currentCenter.setCenterCode(centerDto.getCenterCode()); + currentCenter.setCenterName(centerDto.getCenterName()); + currentCenter.setStartTime(centerDto.getCreateTime()); + currentCenter.setStopTime(nowTime); + currentCenter.setStopFlag(1); + currentCenter.setWeightRate(n100); + this.save(currentCenter); + //历史分摊节点 + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(BmsCenterExtend::getCenterType,param.getType()); + lqw.eq(BmsCenterExtend::getCenterId,param.getSourceCenterId()); + lqw.eq(BmsCenterExtend::getStopFlag,0); + List sourcesCenterList = this.list(lqw); + List updList = this.list(lqw); + for (BmsCenterExtend sourceCenter : sourcesCenterList) { + if(sourceCenter.getStopFlag()==0){ + BmsCenterExtend centerExtend = new BmsCenterExtend(); + centerExtend.setId(sourceCenter.getId()); + centerExtend.setStopFlag(1); + centerExtend.setStopTime(nowTime); + updList.add(centerExtend); + } + } + //新的继承节点 + for (BmsCenterExtendBo.Item targetCenter : targetCenters) { + TbsCenterDto centerDto2 = centerDtoService.getCenterDto(currentCenter.getCenterType(),targetCenter.getTargetCenterId()); + BigDecimal weightRate = currentCenter.getWeightRate() + .multiply(targetCenter.getWeightRate()) + .divide(n100); + BmsCenterExtend currentChildCenter = new BmsCenterExtend(); + currentChildCenter.setSourceId(currentCenter.getId()); + currentChildCenter.setCenterType(currentCenter.getCenterType()); + currentChildCenter.setPathIds(currentCenter.getPathIds()+"_"+currentCenter.getId()); + currentChildCenter.setCenterId(centerDto2.getId()); + currentChildCenter.setCenterCode(centerDto2.getCenterCode()); + currentChildCenter.setCenterName(centerDto2.getCenterName()); + currentChildCenter.setStartTime(nowTime); + currentChildCenter.setStopFlag(0); + currentChildCenter.setWeightRate(weightRate); + this.save(currentChildCenter); + this.toSaveExtendUser( currentCenter, targetCenter.getUserList(), centerDto2, currentChildCenter.getId()); + } + this.updateBatchById(updList); + + return currentCenter; + + /*//校验 + String type = param.getType(); + String centerId = param.getSourceCenterId(); + BigDecimal n100 = new BigDecimal("100"); + List targetCenters = param.getTargetCenters(); + BigDecimal totalRate = BigDecimal.ZERO; + for (BmsCenterExtendBo.Item center : targetCenters) { + totalRate=totalRate.add(center.getWeightRate()); + } + if(totalRate.compareTo(n100)!=0){ + Assert.throwEx("权重合计必须百分百"); + } + if (this.checkIsStop(type,centerId)){ + Assert.throwEx("当前成本中心已分配"); + } + TbsCenterDto centerDto = centerDtoService.getCenterDto(type,centerId); + //停止时间 + LocalDateTime nowTime = LocalDateTime.now(); + //当前节点 + BmsCenterExtend currentCenter = new BmsCenterExtend(); + currentCenter.setSourceId(0L); + currentCenter.setCenterType(type); + currentCenter.setPathIds("0"); + currentCenter.setCenterId(centerId); + currentCenter.setCenterCode(centerDto.getCenterCode()); + currentCenter.setCenterName(centerDto.getCenterName()); + currentCenter.setStartTime(centerDto.getCreateTime()); + currentCenter.setStopTime(nowTime); + currentCenter.setStopFlag(1); + currentCenter.setWeightRate(n100); + this.save(currentCenter); + //历史分摊节点 + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(BmsCenterExtend::getCenterType,param.getType()); + lqw.eq(BmsCenterExtend::getCenterId,param.getSourceCenterId()); + lqw.eq(BmsCenterExtend::getStopFlag,0); + List sourcesCenterList = this.list(lqw); + + sourcesCenterList.add(currentCenter); + + List newList = new ArrayList<>(); + List updList = new ArrayList<>(); + for (BmsCenterExtend sourceCenter : sourcesCenterList) { + newList.addAll(buildCenterExtend(sourceCenter,targetCenters,nowTime)); + if(sourceCenter.getStopFlag()==0){ + BmsCenterExtend centerExtend = new BmsCenterExtend(); + centerExtend.setId(sourceCenter.getId()); + centerExtend.setStopFlag(1); + centerExtend.setStopTime(nowTime); + updList.add(centerExtend); + } + } + if(CollectionUtil.isNotEmpty(updList)){ + this.updateBatchById(updList); + } + this.saveBatch(newList);*/ + } + + private void toSaveExtendUser(BmsCenterExtend currentCenter, List userList, TbsCenterDto centerDto2, Long childExtendId) { + BigDecimal n100 = new BigDecimal("100"); + BigDecimal totalUser = BigDecimal.ZERO; + List extendUserList = new ArrayList<>(); + for (BmsCenterExtendBo.AllocationUser allocationUser : userList) { + totalUser.add(allocationUser.getWeightRate()); + BmsCenterExtendUser extendUser = new BmsCenterExtendUser(); + SysUser sysUser = sysUserMapper.selectById(allocationUser.getUserId()); + extendUser.setChildExtId(childExtendId); + extendUser.setSourceId(currentCenter.getId()); + extendUser.setCenterType(currentCenter.getCenterType()); + extendUser.setPathIds(currentCenter.getPathIds()+"_"+ currentCenter.getId()); + extendUser.setCenterId(centerDto2.getId()); + extendUser.setCenterCode(centerDto2.getCenterCode()); + extendUser.setCenterName(centerDto2.getCenterName()); + extendUser.setUserId(sysUser.getId()); + extendUser.setUserCode(sysUser.getCode()); + extendUser.setUserName(sysUser.getName()); + extendUser.setWeightRate(allocationUser.getWeightRate()); + extendUserList.add(extendUser); + } + if(totalUser.compareTo(n100)!=0){ + Assert.throwEx("["+ centerDto2.getCenterName()+"]人员比例异常"); + } + centerExtendUserService.saveBatch(extendUserList); + } + + private List buildCenterExtend(BmsCenterExtend sourceCenter,List targetCenters,LocalDateTime nowTime) { + BigDecimal n100 = new BigDecimal("100"); + List newList = new ArrayList<>(); + for (BmsCenterExtendBo.Item targetCenter : targetCenters) { + TbsCenterDto centerDto = centerDtoService.getCenterDto(sourceCenter.getCenterType(),targetCenter.getTargetCenterId()); + BigDecimal weightRate = sourceCenter.getWeightRate() + .multiply(sourceCenter.getWeightRate()) + .divide(n100); + BmsCenterExtend currentCenter = new BmsCenterExtend(); + currentCenter.setSourceId(sourceCenter.getId()); + currentCenter.setCenterType(sourceCenter.getCenterType()); + currentCenter.setPathIds(sourceCenter.getPathIds()+"_"+sourceCenter.getId()); + currentCenter.setCenterId(centerDto.getId()); + currentCenter.setCenterCode(centerDto.getCenterCode()); + currentCenter.setCenterName(centerDto.getCenterName()); + currentCenter.setStartTime(nowTime); + currentCenter.setStopFlag(0); + currentCenter.setWeightRate(weightRate); + newList.add(currentCenter); + } + return newList; + } + + + @Override + @Transactional(rollbackFor = Exception.class) + public void allocation4Update(BmsCenterExtendBo param) { + String type = param.getType(); + String centerId = param.getSourceCenterId(); + BigDecimal n100 = new BigDecimal("100"); + List targetCenters = param.getTargetCenters(); + BigDecimal totalRate = BigDecimal.ZERO; + for (BmsCenterExtendBo.Item center : targetCenters) { + totalRate=totalRate.add(center.getWeightRate()); + } + if(totalRate.compareTo(n100)!=0){ + Assert.throwEx("权重合计必须百分百"); + } + List saveExtendBo = targetCenters.stream().filter(a->a.getId()==null).collect(Collectors.toList()); + List updExtendBo = targetCenters.stream().filter(a->a.getId()!=null).collect(Collectors.toList()); + List updateIds = targetCenters.stream().filter(a->a.getId()!=null + ).map(a->a.getId()).collect(Collectors.toList()); + //新增 + BmsCenterExtend currentCenter = this.getById(param.getId()); + for (BmsCenterExtendBo.Item item : saveExtendBo) { + //校验是否可添加 + if (this.checkIsStop(currentCenter.getCenterType(),item.getTargetCenterId())){ + Assert.throwEx("新增的后继成本中心已被停用,请重新选择"); + } + TbsCenterDto centerDto2 = centerDtoService.getCenterDto(type,centerId); + BmsCenterExtend currentChildCenter = new BmsCenterExtend(); + currentChildCenter.setSourceId(currentCenter.getId()); + currentChildCenter.setCenterType(currentCenter.getCenterType()); + currentChildCenter.setPathIds(currentCenter.getPathIds()+"_"+currentCenter.getId()); + currentChildCenter.setCenterId(centerDto2.getId()); + currentChildCenter.setCenterCode(centerDto2.getCenterCode()); + currentChildCenter.setCenterName(centerDto2.getCenterName()); + currentChildCenter.setStartTime(currentCenter.getStopTime()); + currentChildCenter.setStopFlag(0); + currentChildCenter.setWeightRate(item.getWeightRate()); + this.save(currentChildCenter); + this.toSaveExtendUser( currentCenter, item.getUserList(), centerDto2, currentChildCenter.getId()); + } + //移除 + LambdaQueryWrapper dellqw = new LambdaQueryWrapper<>(); + dellqw.eq(BmsCenterExtend::getCenterType,param.getType()); + dellqw.eq(BmsCenterExtend::getCenterId,param.getSourceCenterId()); + dellqw.notIn(BmsCenterExtend::getId,updateIds); + this.remove(dellqw); + //更新 + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(BmsCenterExtend::getCenterType,param.getType()); + lqw.eq(BmsCenterExtend::getCenterId,param.getSourceCenterId()); + lqw.in(BmsCenterExtend::getId,updateIds); + List sourcesCenterList = this.list(lqw); + for (BmsCenterExtend centerExtend : sourcesCenterList) { + for (BmsCenterExtendBo.Item item : updExtendBo) { + if(centerExtend.getId().equals(item.getId())){ + //匹配更新 + centerExtend.setWeightRate(item.getWeightRate()); + if(item.getUpdateUserListFlag()!=null&&item.getUpdateUserListFlag().equals(1)){ + LambdaQueryWrapper delUsrLqw = new LambdaQueryWrapper<>(); + delUsrLqw.eq(BmsCenterExtendUser::getChildExtId,centerExtend.getId()); + centerExtendUserService.remove(delUsrLqw); + //重新保存 + TbsCenterDto centerDto2 = centerDtoService.getCenterDto(type,item.getTargetCenterId()); + this.toSaveExtendUser( currentCenter, item.getUserList(), centerDto2, centerExtend.getId()); + } + } + } + } + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteAndReply(Long id) { + LambdaQueryWrapper delUsrLqw = new LambdaQueryWrapper<>(); + delUsrLqw.eq(BmsCenterExtendUser::getSourceId,id); + centerExtendUserService.remove(delUsrLqw); + + LambdaQueryWrapper delChildLqw = new LambdaQueryWrapper<>(); + delChildLqw.eq(BmsCenterExtend::getSourceId,id); + this.remove(delChildLqw); + + this.removeById(id); + + } + +} + diff --git a/src/main/java/com/qs/serve/modules/bms/service/impl/BmsCenterExtendUserServiceImpl.java b/src/main/java/com/qs/serve/modules/bms/service/impl/BmsCenterExtendUserServiceImpl.java new file mode 100644 index 00000000..b3de8aef --- /dev/null +++ b/src/main/java/com/qs/serve/modules/bms/service/impl/BmsCenterExtendUserServiceImpl.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.BmsCenterExtendUser; +import com.qs.serve.modules.bms.service.BmsCenterExtendUserService; +import com.qs.serve.modules.bms.mapper.BmsCenterExtendUserMapper; + +/** + * 后继负责人 服务实现类 + * @author YenHex + * @since 2023-05-31 + */ +@Slf4j +@Service +@AllArgsConstructor +public class BmsCenterExtendUserServiceImpl extends ServiceImpl implements BmsCenterExtendUserService { + +} + diff --git a/src/main/java/com/qs/serve/modules/check/entity/ExcelCheckApplyMain.java b/src/main/java/com/qs/serve/modules/check/entity/ExcelCheckApplyMain.java new file mode 100644 index 00000000..d6b20070 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/check/entity/ExcelCheckApplyMain.java @@ -0,0 +1,91 @@ +package com.qs.serve.modules.check.entity; + +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDate; + +/** + * 对账单 + * @author YenHex + * @since 2023/5/30 + */ +@Data +public class ExcelCheckApplyMain { + + /** + * 已批准(费用申请) + */ + private BigDecimal costApplyAmt; + + /** + * 已核销 + */ + private BigDecimal checkedAmt; + + /** + * 申请中 + */ + private BigDecimal checkingAmt; + + /** + * 未申请 + */ + private BigDecimal notCheckAmt; + + /** + * 不予核销 + */ + private BigDecimal dontCheckAmt; + + /** + * 已支付 + */ + private BigDecimal payAmt; + + /** + * 待支付 + */ + private BigDecimal unPayAmt; + + /** + * 不再支付 + */ + private BigDecimal notPayAmt; + + /** + * 客户名 + */ + private String cusName; + + /** + * 客户地址 + */ + private String cusAddress; + + /** + * 客户编码 + */ + private String cusCode; + + /** + * 联系人用户 + */ + private String contactUser; + + /** + * 联系人 + */ + private String contactMobile; + + /** + * 起始日期 + */ + private LocalDate startDate; + + /** + * 截止日期 + */ + private LocalDate endDate; + +} diff --git a/src/main/java/com/qs/serve/modules/goods/entity/dto/TbsCenterDto.java b/src/main/java/com/qs/serve/modules/goods/entity/dto/TbsCenterDto.java index ed1b20ef..6dd9271c 100644 --- a/src/main/java/com/qs/serve/modules/goods/entity/dto/TbsCenterDto.java +++ b/src/main/java/com/qs/serve/modules/goods/entity/dto/TbsCenterDto.java @@ -5,6 +5,7 @@ import lombok.Data; import javax.validation.constraints.NotNull; import java.math.BigDecimal; +import java.time.LocalDateTime; /** * @author YenHex @@ -21,6 +22,8 @@ public class TbsCenterDto { String centerType; + LocalDateTime createTime; + /** 费用占比率,单位百分位(该成本中心在费用中占比) */ @NotNull(message = "费用占比率不能为空") private BigDecimal centerRate; @@ -29,10 +32,19 @@ public class TbsCenterDto { @NotNull(message = "费用占比率不能为空") private BigDecimal centerAmount; + public TbsCenterDto(String id, String centerCode, String centerName, String centerType,LocalDateTime createTime) { + this.id = id; + this.centerCode = centerCode; + this.centerName = centerName; + this.centerType = centerType; + this.createTime = createTime; + } + public TbsCenterDto(String id, String centerCode, String centerName, String centerType) { this.id = id; this.centerCode = centerCode; this.centerName = centerName; this.centerType = centerType; } + } diff --git a/src/main/java/com/qs/serve/modules/pay/controller/PayPaymentController.java b/src/main/java/com/qs/serve/modules/pay/controller/PayPaymentController.java index 58a2147e..2db4d25a 100644 --- a/src/main/java/com/qs/serve/modules/pay/controller/PayPaymentController.java +++ b/src/main/java/com/qs/serve/modules/pay/controller/PayPaymentController.java @@ -14,6 +14,7 @@ import com.qs.serve.common.util.StringUtils; import com.qs.serve.modules.bms.entity.BmsSupplier; import com.qs.serve.modules.bms.entity.so.BmsSupplierSo; import com.qs.serve.modules.bms.service.BmsSupplierService; +import com.qs.serve.modules.his.service.HisUserSupplierService; import com.qs.serve.modules.pay.common.PaymentType; import com.qs.serve.modules.pay.entity.PayPaymentItem; import com.qs.serve.modules.pay.entity.bo.PayUnPaymentBo; @@ -22,8 +23,10 @@ import com.qs.serve.modules.pay.entity.dto.PaySupplierAmountDto; import com.qs.serve.modules.pay.entity.vo.PaySupplierVo; import com.qs.serve.modules.pay.mapper.PaySupplierMapper; import com.qs.serve.modules.pay.service.PayPaymentItemService; +import com.qs.serve.modules.sys.service.SysPostUserService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.jetbrains.annotations.NotNull; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; @@ -38,7 +41,7 @@ import java.util.List; import java.util.stream.Collectors; /** - * 【支付】 + * 支付 支付记录 * @author YenHex * @since 2022-12-15 */ @@ -64,50 +67,56 @@ public class PayPaymentController { PageUtil.startPage(); List list = bmsSupplierService.list(lqw); if(CollectionUtil.isNotEmpty(list)){ - List supplierIds = list.stream().map(BmsSupplier::getId).collect(Collectors.toList()); - List costAmountList = paySupplierMapper.sumCostAmount(supplierIds,paramSo.getQueryStartTime(),paramSo.getQueryEndTime()); - List payAmountList = paySupplierMapper.sumPayAmount(supplierIds,paramSo.getQueryStartTime(),paramSo.getQueryEndTime()); - List unPayAmountList = paySupplierMapper.sumUnPayAmount(supplierIds,paramSo.getQueryStartTime(),paramSo.getQueryEndTime()); - List checkAmountList = paySupplierMapper.sumCheckAmount(supplierIds,paramSo.getQueryStartTime(),paramSo.getQueryEndTime()); - List supplierVoList = list.stream().map(supplier -> { - Long supplierId = Long.parseLong(supplier.getId()); - PaySupplierVo supplierVo = new PaySupplierVo(); - supplierVo.setSupplierId(supplierId); - supplierVo.setSupplierCode(supplier.getCode()); - supplierVo.setSupplierName(supplier.getName()); - supplierVo.setSumAmountOfPay(BigDecimal.ZERO); - supplierVo.setSumAmountOfCost(BigDecimal.ZERO); - supplierVo.setSumAmountOfCheck(BigDecimal.ZERO); - supplierVo.setSumAmountOfUnPay(BigDecimal.ZERO); - for (PaySupplierAmountDto amountDto : costAmountList) { - if(amountDto.getSupplierId().equals(supplierId)){ - supplierVo.setSumAmountOfCost(amountDto.getSumAmount()); - break; - } + List supplierVoList = getPaySupplierVos(paramSo, list); + return R.byPageHelperList(list,supplierVoList); + } + return R.byEmptyList(); + } + + @NotNull + public List getPaySupplierVos(BmsSupplierSo paramSo, List list) { + List supplierIds = list.stream().map(BmsSupplier::getId).collect(Collectors.toList()); + List costAmountList = paySupplierMapper.sumCostAmount(supplierIds, paramSo.getQueryStartTime(), paramSo.getQueryEndTime()); + List payAmountList = paySupplierMapper.sumPayAmount(supplierIds, paramSo.getQueryStartTime(), paramSo.getQueryEndTime()); + List unPayAmountList = paySupplierMapper.sumUnPayAmount(supplierIds, paramSo.getQueryStartTime(), paramSo.getQueryEndTime()); + List checkAmountList = paySupplierMapper.sumCheckAmount(supplierIds, paramSo.getQueryStartTime(), paramSo.getQueryEndTime()); + List supplierVoList = list.stream().map(supplier -> { + Long supplierId = Long.parseLong(supplier.getId()); + PaySupplierVo supplierVo = new PaySupplierVo(); + supplierVo.setSupplierId(supplierId); + supplierVo.setSupplierCode(supplier.getCode()); + supplierVo.setSupplierName(supplier.getName()); + supplierVo.setSumAmountOfPay(BigDecimal.ZERO); + supplierVo.setSumAmountOfCost(BigDecimal.ZERO); + supplierVo.setSumAmountOfCheck(BigDecimal.ZERO); + supplierVo.setSumAmountOfUnPay(BigDecimal.ZERO); + for (PaySupplierAmountDto amountDto : costAmountList) { + if(amountDto.getSupplierId().equals(supplierId)){ + supplierVo.setSumAmountOfCost(amountDto.getSumAmount()); + break; } - for (PaySupplierAmountDto amountDto : checkAmountList) { - if(amountDto.getSupplierId().equals(supplierId)){ - supplierVo.setSumAmountOfCheck(amountDto.getSumAmount()); - break; - } + } + for (PaySupplierAmountDto amountDto : checkAmountList) { + if(amountDto.getSupplierId().equals(supplierId)){ + supplierVo.setSumAmountOfCheck(amountDto.getSumAmount()); + break; } - for (PaySupplierAmountDto amountDto : payAmountList) { - if(amountDto.getSupplierId().equals(supplierId)){ - supplierVo.setSumAmountOfPay(amountDto.getSumAmount()); - break; - } + } + for (PaySupplierAmountDto amountDto : payAmountList) { + if(amountDto.getSupplierId().equals(supplierId)){ + supplierVo.setSumAmountOfPay(amountDto.getSumAmount()); + break; } - for (PaySupplierAmountDto amountDto : unPayAmountList) { - if(amountDto.getSupplierId().equals(supplierId)){ - supplierVo.setSumAmountOfUnPay(amountDto.getSumAmount()); - break; - } + } + for (PaySupplierAmountDto amountDto : unPayAmountList) { + if(amountDto.getSupplierId().equals(supplierId)){ + supplierVo.setSumAmountOfUnPay(amountDto.getSumAmount()); + break; } - return supplierVo; - }).collect(Collectors.toList()); - return R.byPageHelperList(list,supplierVoList); - } - return R.byEmptyList(); + } + return supplierVo; + }).collect(Collectors.toList()); + return supplierVoList; } /** diff --git a/src/main/java/com/qs/serve/modules/pay/controller/my/PayPaymentMyController.java b/src/main/java/com/qs/serve/modules/pay/controller/my/PayPaymentMyController.java new file mode 100644 index 00000000..f61b3ac5 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/pay/controller/my/PayPaymentMyController.java @@ -0,0 +1,76 @@ +package com.qs.serve.modules.pay.controller.my; + +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.CollectionUtil; +import com.qs.serve.common.util.CopierUtil; +import com.qs.serve.common.util.PageUtil; +import com.qs.serve.modules.bms.entity.BmsSupplier; +import com.qs.serve.modules.bms.entity.so.BmsSupplierSo; +import com.qs.serve.modules.bms.service.BmsSupplierService; +import com.qs.serve.modules.his.service.HisUserSupplierService; +import com.qs.serve.modules.pay.common.PaymentType; +import com.qs.serve.modules.pay.controller.PayPaymentController; +import com.qs.serve.modules.pay.entity.PayPayment; +import com.qs.serve.modules.pay.entity.PayPaymentItem; +import com.qs.serve.modules.pay.entity.bo.PayPaymentBo; +import com.qs.serve.modules.pay.entity.bo.PayUnPaymentBo; +import com.qs.serve.modules.pay.entity.dto.PayPaymentAmountDto; +import com.qs.serve.modules.pay.entity.dto.PaySupplierAmountDto; +import com.qs.serve.modules.pay.entity.so.PayPaymentSo; +import com.qs.serve.modules.pay.entity.vo.PaySupplierVo; +import com.qs.serve.modules.pay.mapper.PaySupplierMapper; +import com.qs.serve.modules.pay.service.PayPaymentItemService; +import com.qs.serve.modules.pay.service.PayPaymentService; +import com.qs.serve.modules.sys.service.SysPostUserService; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.jetbrains.annotations.NotNull; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.math.BigDecimal; +import java.util.List; +import java.util.stream.Collectors; + +/** + * 支付 支付记录(我的) + * @author YenHex + * @since 2022-12-15 + */ +@Slf4j +@AllArgsConstructor +@RestController +@RequestMapping("my/payment") +public class PayPaymentMyController { + + private PayPaymentController payPaymentController; + private PayPaymentService payPaymentService; + private PayPaymentItemService paymentItemService; + private BmsSupplierService bmsSupplierService; + private PaySupplierMapper paySupplierMapper; + private HisUserSupplierService hisUserSupplierService; + private SysPostUserService postUserService; + + /** + * 客户费用列表 + * @return + */ + @GetMapping("supplierPage") + public R> getSupplierPage(BmsSupplierSo paramSo){ + BmsSupplier param = CopierUtil.copy(paramSo,new BmsSupplier()); + PageVo pageVo = hisUserSupplierService.selectPageSupplier(param); + if(CollectionUtil.isNotEmpty(pageVo.getList())){ + List supplierVoList = payPaymentController.getPaySupplierVos(paramSo, pageVo.getList()); + return R.ok(PageVo.initNewList(pageVo,supplierVoList)); + } + return R.byEmptyList(); + } + +} + diff --git a/src/main/java/com/qs/serve/modules/tbs/service/TbsCenterDtoService.java b/src/main/java/com/qs/serve/modules/tbs/service/TbsCenterDtoService.java index da4a4dee..9e68b296 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/TbsCenterDtoService.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/TbsCenterDtoService.java @@ -37,16 +37,16 @@ public class TbsCenterDtoService { public TbsCenterDto getCenterDto(String centerType, String centerId){ if(centerType.equals(TbsCenterType.center.name())){ BmsCostCenter costCenter = costCenterService.getById(centerId); - return new TbsCenterDto(centerId,costCenter.getCode(),costCenter.getName(),centerType); + return new TbsCenterDto(centerId,costCenter.getCode(),costCenter.getName(),centerType,costCenter.getCreateTime()); }else if (centerType.equals(TbsCenterType.customer.name())){ BmsSupplier supplier4Center = supplierService.getById(centerId); - return new TbsCenterDto(centerId,supplier4Center.getCode(),supplier4Center.getName(),centerType); + return new TbsCenterDto(centerId,supplier4Center.getCode(),supplier4Center.getName(),centerType,supplier4Center.getCreateTime()); }else if(centerType.equals(TbsCenterType.saleRegion.name())){ BmsRegion saleRegion = saleRegionService.getById(centerId); - return new TbsCenterDto(centerId,saleRegion.getCode(),saleRegion.getName(),centerType); + return new TbsCenterDto(centerId,saleRegion.getCode(),saleRegion.getName(),centerType,saleRegion.getCreateTime()); }else if (centerType.equals(TbsCenterType.bizRegion.name())){ BmsRegion2 bizRegion = bizRegionService.getById(centerId); - return new TbsCenterDto(centerId,bizRegion.getCode(),bizRegion.getName(),centerType); + return new TbsCenterDto(centerId,bizRegion.getCode(),bizRegion.getName(),centerType,bizRegion.getCreateTime()); } Assert.throwEx("无法匹配成本中心类型:"+centerType); return null; diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java index c389a1bd..5bae8229 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java @@ -126,6 +126,7 @@ public class TbsCostApplyServiceImpl extends ServiceImpl tbsActivityCenters = tbsActivityCenterService.listByCostApplyId(Long.parseLong(id)); List tbsActivitySubjects = tbsActivitySubjectService.listByCostApplyId(Long.parseLong(id)); diff --git a/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java b/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java index 16b99fce..08124514 100644 --- a/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java +++ b/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java @@ -282,5 +282,7 @@ public class VtbVerificationController { return vtbVerificationOperationService.getUnfinished(); } + + } diff --git a/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbFundFlowServiceImpl.java b/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbFundFlowServiceImpl.java index 4002a273..d18df3bf 100644 --- a/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbFundFlowServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbFundFlowServiceImpl.java @@ -3,6 +3,7 @@ package com.qs.serve.modules.vtb.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.JsonUtil; import com.qs.serve.modules.tbs.common.TbsActivityState; import com.qs.serve.modules.tbs.entity.*; import com.qs.serve.modules.tbs.mapper.TbsCostApplyMapper; @@ -90,8 +91,13 @@ public class VtbFundFlowServiceImpl extends ServiceImpl{}",costApply); + if(costApply!=null){ + if(costApply.getContractFlag()!=null&&costApply.getContractFlag().equals(1)){ + activity.setActivityState(TbsActivityState.STATE_1_Finished); + }else { + activity.setActivityState(TbsActivityState.STATE_0_Todo); + } }else { activity.setActivityState(TbsActivityState.STATE_0_Todo); }