20 changed files with 1213 additions and 47 deletions
@ -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<List<BmsCenterExtend>> getList(BmsCenterExtendSo param){ |
||||
|
BmsCenterExtend entity = CopierUtil.copy(param,new BmsCenterExtend()); |
||||
|
LambdaQueryWrapper<BmsCenterExtend> lqw = new LambdaQueryWrapper<>(entity); |
||||
|
List<BmsCenterExtend> list = bmsCenterExtendService.list(lqw); |
||||
|
return R.ok(list); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 翻页 |
||||
|
* @param param |
||||
|
* @return |
||||
|
*/ |
||||
|
@GetMapping("/page") |
||||
|
public R<PageVo<BmsCenterExtend>> getPage(BmsCenterExtendSo param){ |
||||
|
BmsCenterExtend entity = CopierUtil.copy(param,new BmsCenterExtend()); |
||||
|
LambdaQueryWrapper<BmsCenterExtend> lqw = new LambdaQueryWrapper<>(entity); |
||||
|
PageUtil.startPage(); |
||||
|
List<BmsCenterExtend> list = bmsCenterExtendService.list(lqw); |
||||
|
for (BmsCenterExtend centerExtend : list) { |
||||
|
LambdaQueryWrapper<BmsCenterExtend> childLqw = new LambdaQueryWrapper<>(); |
||||
|
childLqw.eq(BmsCenterExtend::getSourceId,centerExtend.getId()); |
||||
|
List<BmsCenterExtend> childList = bmsCenterExtendService.list(childLqw); |
||||
|
/*for (BmsCenterExtend childExt : childList) { |
||||
|
LambdaQueryWrapper<BmsCenterExtendUser> userLqw = new LambdaQueryWrapper<>(); |
||||
|
userLqw.eq(BmsCenterExtendUser::getChildExtId,childExt.getId()); |
||||
|
List<BmsCenterExtendUser> 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<BmsCenterExtend> getById(@PathVariable("id") String id){ |
||||
|
BmsCenterExtend centerExtend = bmsCenterExtendService.getById(id); |
||||
|
LambdaQueryWrapper<BmsCenterExtend> childLqw = new LambdaQueryWrapper<>(); |
||||
|
childLqw.eq(BmsCenterExtend::getSourceId,centerExtend.getId()); |
||||
|
List<BmsCenterExtend> childList = bmsCenterExtendService.list(childLqw); |
||||
|
for (BmsCenterExtend childExt : childList) { |
||||
|
LambdaQueryWrapper<BmsCenterExtendUser> userLqw = new LambdaQueryWrapper<>(); |
||||
|
userLqw.eq(BmsCenterExtendUser::getChildExtId,childExt.getId()); |
||||
|
List<BmsCenterExtendUser> 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(); |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
@ -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; |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
@ -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; |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
@ -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<Item> targetCenters; |
||||
|
|
||||
|
@Data |
||||
|
public static class Item{ |
||||
|
|
||||
|
/** |
||||
|
* 后继成本中心id(仅用于更新) |
||||
|
*/ |
||||
|
Long id; |
||||
|
|
||||
|
/** |
||||
|
* 权重 |
||||
|
*/ |
||||
|
BigDecimal weightRate; |
||||
|
|
||||
|
String targetCenterId; |
||||
|
|
||||
|
/** |
||||
|
* 当值=1,更新用户列表(仅用于更新) |
||||
|
*/ |
||||
|
Integer updateUserListFlag; |
||||
|
|
||||
|
List<AllocationUser> userList; |
||||
|
|
||||
|
} |
||||
|
|
||||
|
@Data |
||||
|
public static class AllocationUser{ |
||||
|
|
||||
|
/** |
||||
|
* 权重 |
||||
|
*/ |
||||
|
BigDecimal weightRate; |
||||
|
|
||||
|
String userId; |
||||
|
|
||||
|
} |
||||
|
|
||||
|
} |
@ -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; |
||||
|
|
||||
|
} |
||||
|
|
@ -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<BmsCenterExtend> { |
||||
|
|
||||
|
} |
||||
|
|
@ -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<BmsCenterExtendUser> { |
||||
|
|
||||
|
} |
||||
|
|
@ -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<BmsCenterExtend> { |
||||
|
|
||||
|
boolean checkIsStop(String type, String centerId); |
||||
|
|
||||
|
BmsCenterExtend allocation(BmsCenterExtendBo param); |
||||
|
|
||||
|
void allocation4Update(BmsCenterExtendBo param); |
||||
|
|
||||
|
/** |
||||
|
* 删除所有均摊节点 |
||||
|
* @param id |
||||
|
*/ |
||||
|
void deleteAndReply(Long id); |
||||
|
|
||||
|
} |
||||
|
|
@ -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<BmsCenterExtendUser> { |
||||
|
|
||||
|
} |
||||
|
|
@ -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<BmsCenterExtendMapper,BmsCenterExtend> implements BmsCenterExtendService { |
||||
|
|
||||
|
private TbsCenterDtoService centerDtoService; |
||||
|
private BmsCenterExtendUserService centerExtendUserService; |
||||
|
private SysUserMapper sysUserMapper; |
||||
|
|
||||
|
@Override |
||||
|
public boolean checkIsStop(String type, String centerId) { |
||||
|
LambdaQueryWrapper<BmsCenterExtend> 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<BmsCenterExtendBo.Item> 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<BmsCenterExtend> lqw = new LambdaQueryWrapper<>(); |
||||
|
lqw.eq(BmsCenterExtend::getCenterType,param.getType()); |
||||
|
lqw.eq(BmsCenterExtend::getCenterId,param.getSourceCenterId()); |
||||
|
lqw.eq(BmsCenterExtend::getStopFlag,0); |
||||
|
List<BmsCenterExtend> sourcesCenterList = this.list(lqw); |
||||
|
List<BmsCenterExtend> 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<BmsCenterExtendBo.Item> 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<BmsCenterExtend> lqw = new LambdaQueryWrapper<>(); |
||||
|
lqw.eq(BmsCenterExtend::getCenterType,param.getType()); |
||||
|
lqw.eq(BmsCenterExtend::getCenterId,param.getSourceCenterId()); |
||||
|
lqw.eq(BmsCenterExtend::getStopFlag,0); |
||||
|
List<BmsCenterExtend> sourcesCenterList = this.list(lqw); |
||||
|
|
||||
|
sourcesCenterList.add(currentCenter); |
||||
|
|
||||
|
List<BmsCenterExtend> newList = new ArrayList<>(); |
||||
|
List<BmsCenterExtend> 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<BmsCenterExtendBo.AllocationUser> userList, TbsCenterDto centerDto2, Long childExtendId) { |
||||
|
BigDecimal n100 = new BigDecimal("100"); |
||||
|
BigDecimal totalUser = BigDecimal.ZERO; |
||||
|
List<BmsCenterExtendUser> 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<BmsCenterExtend> buildCenterExtend(BmsCenterExtend sourceCenter,List<BmsCenterExtendBo.Item> targetCenters,LocalDateTime nowTime) { |
||||
|
BigDecimal n100 = new BigDecimal("100"); |
||||
|
List<BmsCenterExtend> 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<BmsCenterExtendBo.Item> 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<BmsCenterExtendBo.Item> saveExtendBo = targetCenters.stream().filter(a->a.getId()==null).collect(Collectors.toList()); |
||||
|
List<BmsCenterExtendBo.Item> updExtendBo = targetCenters.stream().filter(a->a.getId()!=null).collect(Collectors.toList()); |
||||
|
List<Long> 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<BmsCenterExtend> dellqw = new LambdaQueryWrapper<>(); |
||||
|
dellqw.eq(BmsCenterExtend::getCenterType,param.getType()); |
||||
|
dellqw.eq(BmsCenterExtend::getCenterId,param.getSourceCenterId()); |
||||
|
dellqw.notIn(BmsCenterExtend::getId,updateIds); |
||||
|
this.remove(dellqw); |
||||
|
//更新
|
||||
|
LambdaQueryWrapper<BmsCenterExtend> lqw = new LambdaQueryWrapper<>(); |
||||
|
lqw.eq(BmsCenterExtend::getCenterType,param.getType()); |
||||
|
lqw.eq(BmsCenterExtend::getCenterId,param.getSourceCenterId()); |
||||
|
lqw.in(BmsCenterExtend::getId,updateIds); |
||||
|
List<BmsCenterExtend> 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<BmsCenterExtendUser> 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<BmsCenterExtendUser> delUsrLqw = new LambdaQueryWrapper<>(); |
||||
|
delUsrLqw.eq(BmsCenterExtendUser::getSourceId,id); |
||||
|
centerExtendUserService.remove(delUsrLqw); |
||||
|
|
||||
|
LambdaQueryWrapper<BmsCenterExtend> delChildLqw = new LambdaQueryWrapper<>(); |
||||
|
delChildLqw.eq(BmsCenterExtend::getSourceId,id); |
||||
|
this.remove(delChildLqw); |
||||
|
|
||||
|
this.removeById(id); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
@ -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<BmsCenterExtendUserMapper,BmsCenterExtendUser> implements BmsCenterExtendUserService { |
||||
|
|
||||
|
} |
||||
|
|
@ -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; |
||||
|
|
||||
|
} |
@ -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<PageVo<PaySupplierVo>> getSupplierPage(BmsSupplierSo paramSo){ |
||||
|
BmsSupplier param = CopierUtil.copy(paramSo,new BmsSupplier()); |
||||
|
PageVo<BmsSupplier> pageVo = hisUserSupplierService.selectPageSupplier(param); |
||||
|
if(CollectionUtil.isNotEmpty(pageVo.getList())){ |
||||
|
List<PaySupplierVo> supplierVoList = payPaymentController.getPaySupplierVos(paramSo, pageVo.getList()); |
||||
|
return R.ok(PageVo.initNewList(pageVo,supplierVoList)); |
||||
|
} |
||||
|
return R.byEmptyList(); |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
Loading…
Reference in new issue