This commit is contained in:
1073413548 2024-08-26 11:20:24 +08:00
parent 09a4124c76
commit 27cbaf2144
12 changed files with 294 additions and 205 deletions

View File

@ -8,6 +8,7 @@ import java.lang.management.ManagementFactory;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.time.*; import java.time.*;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@ -184,4 +185,16 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
ZonedDateTime zdt = localDateTime.atZone(ZoneId.systemDefault()); ZonedDateTime zdt = localDateTime.atZone(ZoneId.systemDefault());
return Date.from(zdt.toInstant()); return Date.from(zdt.toInstant());
} }
public static String toString(LocalDate date,String from){
// 创建一个DateTimeFormatter实例来定义日期格式
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(from);
// 使用formatter转换LocalDate到字符串
return date.format(formatter);
}
public static String toString(LocalDate date){
return toString(date,"yyyy-MM-dd");
}
} }

View File

@ -4,14 +4,15 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.pusong.business.domain.PsContractInfo; import com.pusong.business.domain.PsContractInfo;
import com.pusong.business.domain.PsSalary;
import com.pusong.business.domain.PsSalaryConfig; import com.pusong.business.domain.PsSalaryConfig;
import com.pusong.business.domain.vo.PsContractBusinessDetailVo; import com.pusong.business.domain.vo.PsContractBusinessDetailVo;
import com.pusong.business.domain.vo.PsContractBusinessVo; import com.pusong.business.domain.vo.PsContractBusinessVo;
import com.pusong.business.enums.ContractStatusEnum; import com.pusong.business.enums.ContractStatusEnum;
import com.pusong.business.mapper.PsContractInfoMapper; import com.pusong.business.mapper.PsContractInfoMapper;
import com.pusong.business.mapper.PsSalaryConfigMapper; import com.pusong.business.mapper.PsSalaryConfigMapper;
import com.pusong.business.mapper.PsSalaryMapper;
import com.pusong.business.service.IPsContractBusinessService; import com.pusong.business.service.IPsContractBusinessService;
import com.pusong.business.service.impl.PsTaskServiceImpl;
import com.pusong.common.core.utils.DateUtils; import com.pusong.common.core.utils.DateUtils;
import com.pusong.system.domain.SysUser; import com.pusong.system.domain.SysUser;
import com.pusong.system.domain.SysUserPost; import com.pusong.system.domain.SysUserPost;
@ -26,13 +27,10 @@ import org.springframework.stereotype.Component;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.temporal.TemporalAdjusters; import java.time.temporal.TemporalAdjusters;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set;
import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -49,11 +47,12 @@ public class CalSalaryBatch {
private SysUserPostMapper sysUserPostMapper; private SysUserPostMapper sysUserPostMapper;
@Resource @Resource
private PsSalaryConfigMapper psSalaryConfigMapper; private PsSalaryConfigMapper psSalaryConfigMapper;
private PsSalaryMapper psSalaryMapper;
/** /**
* 每月1日凌晨1点执行 * 每月1日凌晨1点执行
*/ */
@Scheduled(cron = "0 0 1 1 * ?") @Scheduled(cron = "0 0 1 1 * ?")
public void excute(){ public void execute(){
log.info("员工提成批处理开始"); log.info("员工提成批处理开始");
LocalDate now = LocalDate.now(); LocalDate now = LocalDate.now();
LocalDate lastDayOfLastMonth = now.with(TemporalAdjusters.firstDayOfMonth());//这个月第一天0分0秒 LocalDate lastDayOfLastMonth = now.with(TemporalAdjusters.firstDayOfMonth());//这个月第一天0分0秒
@ -95,7 +94,13 @@ public class CalSalaryBatch {
BigDecimal salary = calSalary(busin, configMap.get(post.getPostId())); BigDecimal salary = calSalary(busin, configMap.get(post.getPostId()));
log.info("进行计算提成计算{}",salary); log.info("进行计算提成计算{}",salary);
log.info("进行存表"); log.info("进行存表");
PsSalary psSalary = new PsSalary();
psSalary.setSalaryMoney(salary);
psSalary.setSalaryMonth(DateUtils.toString(firstDayOfLastMonth,"yyyy-MM"));
psSalary.setSalaryDate(DateUtils.toDate(firstDayOfLastMonth));
psSalary.setPostId(post.getPostId());
psSalary.setUserId(userId);
// psSalaryMapper.insert(psSalary);
} }
log.info("员工提成批处理结束"); log.info("员工提成批处理结束");

View File

@ -37,7 +37,7 @@ public class PsSalaryController extends BaseController {
private final IPsSalaryService psSalaryService; private final IPsSalaryService psSalaryService;
/** /**
* 查询员工提成提成列表 * 提成列表查询
*/ */
@SaCheckPermission("business:salary:list") @SaCheckPermission("business:salary:list")
@GetMapping("/list") @GetMapping("/list")
@ -45,61 +45,61 @@ public class PsSalaryController extends BaseController {
return psSalaryService.queryPageList(bo, pageQuery); return psSalaryService.queryPageList(bo, pageQuery);
} }
/** // /**
* 导出员工提成提成列表 // * 导出员工提成提成列表
*/ // */
@SaCheckPermission("business:salary:export") // @SaCheckPermission("business:salary:export")
@Log(title = "员工提成提成", businessType = BusinessType.EXPORT) // @Log(title = "员工提成提成", businessType = BusinessType.EXPORT)
@PostMapping("/export") // @PostMapping("/export")
public void export(PsSalaryBo bo, HttpServletResponse response) { // public void export(PsSalaryBo bo, HttpServletResponse response) {
List<PsSalaryVo> list = psSalaryService.queryList(bo); // List<PsSalaryVo> list = psSalaryService.queryList(bo);
ExcelUtil.exportExcel(list, "员工提成提成", PsSalaryVo.class, response); // ExcelUtil.exportExcel(list, "员工提成提成", PsSalaryVo.class, response);
} // }
//
/** // /**
* 获取员工提成提成详细信息 // * 获取员工提成提成详细信息
* // *
* @param id 主键 // * @param id 主键
*/ // */
@SaCheckPermission("business:salary:query") // @SaCheckPermission("business:salary:query")
@GetMapping("/{id}") // @GetMapping("/{id}")
public R<PsSalaryVo> getInfo(@NotNull(message = "主键不能为空") // public R<PsSalaryVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) { // @PathVariable Long id) {
return R.ok(psSalaryService.queryById(id)); // return R.ok(psSalaryService.queryById(id));
} // }
//
/** // /**
* 新增员工提成提成 // * 新增员工提成提成
*/ // */
@SaCheckPermission("business:salary:add") // @SaCheckPermission("business:salary:add")
@Log(title = "员工提成提成", businessType = BusinessType.INSERT) // @Log(title = "员工提成提成", businessType = BusinessType.INSERT)
@RepeatSubmit() // @RepeatSubmit()
@PostMapping() // @PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody PsSalaryBo bo) { // public R<Void> add(@Validated(AddGroup.class) @RequestBody PsSalaryBo bo) {
return toAjax(psSalaryService.insertByBo(bo)); // return toAjax(psSalaryService.insertByBo(bo));
} // }
//
/** // /**
* 修改员工提成提成 // * 修改员工提成提成
*/ // */
@SaCheckPermission("business:salary:edit") // @SaCheckPermission("business:salary:edit")
@Log(title = "员工提成提成", businessType = BusinessType.UPDATE) // @Log(title = "员工提成提成", businessType = BusinessType.UPDATE)
@RepeatSubmit() // @RepeatSubmit()
@PutMapping() // @PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody PsSalaryBo bo) { // public R<Void> edit(@Validated(EditGroup.class) @RequestBody PsSalaryBo bo) {
return toAjax(psSalaryService.updateByBo(bo)); // return toAjax(psSalaryService.updateByBo(bo));
} // }
//
/** // /**
* 删除员工提成提成 // * 删除员工提成提成
* // *
* @param ids 主键串 // * @param ids 主键串
*/ // */
@SaCheckPermission("business:salary:remove") // @SaCheckPermission("business:salary:remove")
@Log(title = "员工提成提成", businessType = BusinessType.DELETE) // @Log(title = "员工提成提成", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}") // @DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空") // public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) { // @PathVariable Long[] ids) {
return toAjax(psSalaryService.deleteWithValidByIds(List.of(ids), true)); // return toAjax(psSalaryService.deleteWithValidByIds(List.of(ids), true));
} // }
} }

View File

@ -7,6 +7,7 @@ import lombok.EqualsAndHashCode;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.io.Serial; import java.io.Serial;
import java.util.Date;
/** /**
* 员工提成提成对象 ps_salary * 员工提成提成对象 ps_salary
@ -36,13 +37,47 @@ public class PsSalary extends TenantEntity {
/** /**
* 员工提成金额 * 员工提成金额
*/ */
private BigDecimal serviceProject; private BigDecimal salaryMoney;
/** /**
* 提成月份 * 提成月份
*/ */
private String salaryRatio; private String salaryMonth;
/**
* 提成日期
*/
private Date salaryDate;
/**
* 岗位di
*/
private Long postId;
/**
* 合同数量
*/
private Integer contractNum;
/**
* 已完成数量
*/
private Integer finistContractNum;
/**
* 未完成数量
*/
private Integer unfinistContractNum;
/**
* 合同总金额
*/
private BigDecimal contractMoney;
/**
* 已完成金额
*/
private BigDecimal finistContractMoney;
/**
* 未完成金额
*/
private BigDecimal unfinistContractMoney;
/** /**
* 2逻辑删除 0 默认有效 * 2逻辑删除 0 默认有效
*/ */

View File

@ -1,5 +1,6 @@
package com.pusong.business.domain.bo; package com.pusong.business.domain.bo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.pusong.business.domain.PsSalary; import com.pusong.business.domain.PsSalary;
import com.pusong.common.core.validate.AddGroup; import com.pusong.common.core.validate.AddGroup;
import com.pusong.common.core.validate.EditGroup; import com.pusong.common.core.validate.EditGroup;
@ -9,6 +10,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*; import jakarta.validation.constraints.*;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date;
/** /**
* 员工提成提成业务对象 ps_salary * 员工提成提成业务对象 ps_salary
@ -22,28 +24,24 @@ import java.math.BigDecimal;
public class PsSalaryBo extends BaseEntity { public class PsSalaryBo extends BaseEntity {
/** /**
* 主键id * 姓名
*/ */
@NotNull(message = "主键id不能为空", groups = { EditGroup.class }) private String name;
private Long id;
/** /**
* 员工id * 开始时间
*/ */
@NotNull(message = "员工id不能为空", groups = { AddGroup.class, EditGroup.class }) @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Long userId; private Date startDate;
/** /**
* 员工提成金额 * 结束时间
*/ */
@NotNull(message = "员工提成金额不能为空", groups = { AddGroup.class, EditGroup.class }) @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private BigDecimal serviceProject; private Date endDate;
/**
* 提成月份
*/
@NotBlank(message = "提成月份不能为空", groups = { AddGroup.class, EditGroup.class })
private String salaryRatio;
} }

View File

@ -32,26 +32,22 @@ public class PsSalaryVo implements Serializable {
/** /**
* 主键id * 主键id
*/ */
@ExcelProperty(value = "主键id")
private Long id; private Long id;
/** /**
* 员工id * 员工id
*/ */
@ExcelProperty(value = "员工id")
private Long userId; private Long userId;
/** /**
* 员工提成金额 * 员工提成金额
*/ */
@ExcelProperty(value = "员工提成金额") private BigDecimal salaryMoney;
private BigDecimal serviceProject;
/** /**
* 提成月份 * 提成日期
*/ */
@ExcelProperty(value = "提成月份") private String salaryDate;
private String salaryRatio;
} }

View File

@ -1,8 +1,17 @@
package com.pusong.business.mapper; package com.pusong.business.mapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.pusong.business.domain.PsContractInfo;
import com.pusong.business.domain.PsSalary; import com.pusong.business.domain.PsSalary;
import com.pusong.business.domain.PsTaskMain;
import com.pusong.business.domain.vo.PsSalaryVo; import com.pusong.business.domain.vo.PsSalaryVo;
import com.pusong.business.domain.vo.PsTaskMainVo;
import com.pusong.common.mybatis.annotation.DataColumn;
import com.pusong.common.mybatis.annotation.DataPermission;
import com.pusong.common.mybatis.core.mapper.BaseMapperPlus; import com.pusong.common.mybatis.core.mapper.BaseMapperPlus;
import org.apache.ibatis.annotations.Param;
/** /**
* 员工提成提成Mapper接口 * 员工提成提成Mapper接口
@ -12,4 +21,10 @@ import com.pusong.common.mybatis.core.mapper.BaseMapperPlus;
*/ */
public interface PsSalaryMapper extends BaseMapperPlus<PsSalary, PsSalaryVo> { public interface PsSalaryMapper extends BaseMapperPlus<PsSalary, PsSalaryVo> {
@DataPermission({
@DataColumn(key = "deptName", value = "use.create_dept"),
@DataColumn(key = "userName", value = "use.create_by")
})
Page<PsSalaryVo> selectSalaryList(@Param("page") Page<PsSalary> page, @Param(Constants.WRAPPER) Wrapper<PsSalary> queryWrapper);
} }

View File

@ -24,11 +24,11 @@ public interface PsTaskMainMapper extends BaseMapper<PsTaskMain> {
@DataColumn(key = "deptName", value = "main.create_dept"), @DataColumn(key = "deptName", value = "main.create_dept"),
@DataColumn(key = "userName", value = "main.create_by") @DataColumn(key = "userName", value = "main.create_by")
}) })
Page<PsTaskMainVo> queryTaskPageList(@Param("page") Page<PsContractInfo> page, @Param(Constants.WRAPPER) Wrapper<PsTaskMain> queryWrapper); Page<PsTaskMainVo> queryTaskPageList(@Param("page") Page<PsTaskMain> page, @Param(Constants.WRAPPER) Wrapper<PsTaskMain> queryWrapper);
@DataPermission({ @DataPermission({
@DataColumn(key = "deptName", value = "appo.create_dept"), @DataColumn(key = "deptName", value = "appo.create_dept"),
@DataColumn(key = "userName", value = "appo.executor") @DataColumn(key = "userName", value = "appo.executor")
}) })
Page<PsTaskMainVo> queryChildTaskPageList(@Param("page") Page<PsContractInfo> page, @Param(Constants.WRAPPER) Wrapper<PsTaskMain> queryWrapper); Page<PsTaskMainVo> queryChildTaskPageList(@Param("page") Page<PsTaskMain> page, @Param(Constants.WRAPPER) Wrapper<PsTaskMain> queryWrapper);
} }

View File

@ -16,13 +16,7 @@ import java.util.List;
*/ */
public interface IPsSalaryService { public interface IPsSalaryService {
/**
* 查询员工提成提成
*
* @param id 主键
* @return 员工提成提成
*/
PsSalaryVo queryById(Long id);
/** /**
* 分页查询员工提成提成列表 * 分页查询员工提成提成列表
@ -33,36 +27,43 @@ public interface IPsSalaryService {
*/ */
TableDataInfo<PsSalaryVo> queryPageList(PsSalaryBo bo, PageQuery pageQuery); TableDataInfo<PsSalaryVo> queryPageList(PsSalaryBo bo, PageQuery pageQuery);
/** // /**
* 查询符合条件的员工提成提成列表 // * 查询员工提成提成
* // *
* @param bo 查询条件 // * @param id 主键
* @return 员工提成提成列表 // * @return 员工提成提成
*/ // */
List<PsSalaryVo> queryList(PsSalaryBo bo); // PsSalaryVo queryById(Long id);
// /**
/** // * 查询符合条件的员工提成提成列表
* 新增员工提成提成 // *
* // * @param bo 查询条件
* @param bo 员工提成提成 // * @return 员工提成提成列表
* @return 是否新增成功 // */
*/ // List<PsSalaryVo> queryList(PsSalaryBo bo);
Boolean insertByBo(PsSalaryBo bo); //
// /**
/** // * 新增员工提成提成
* 修改员工提成提成 // *
* // * @param bo 员工提成提成
* @param bo 员工提成提成 // * @return 是否新增成功
* @return 是否修改成功 // */
*/ // Boolean insertByBo(PsSalaryBo bo);
Boolean updateByBo(PsSalaryBo bo); //
// /**
/** // * 修改员工提成提成
* 校验并批量删除员工提成提成信息 // *
* // * @param bo 员工提成提成
* @param ids 待删除的主键集合 // * @return 是否修改成功
* @param isValid 是否进行有效性校验 // */
* @return 是否删除成功 // Boolean updateByBo(PsSalaryBo bo);
*/ //
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid); // /**
// * 校验并批量删除员工提成提成信息
// *
// * @param ids 待删除的主键集合
// * @param isValid 是否进行有效性校验
// * @return 是否删除成功
// */
// Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
} }

View File

@ -31,17 +31,6 @@ public class PsSalaryServiceImpl implements IPsSalaryService {
private final PsSalaryMapper baseMapper; private final PsSalaryMapper baseMapper;
/**
* 查询员工提成提成
*
* @param id 主键
* @return 员工提成提成
*/
@Override
public PsSalaryVo queryById(Long id){
return baseMapper.selectVoById(id);
}
/** /**
* 分页查询员工提成提成列表 * 分页查询员工提成提成列表
* *
@ -52,80 +41,101 @@ public class PsSalaryServiceImpl implements IPsSalaryService {
@Override @Override
public TableDataInfo<PsSalaryVo> queryPageList(PsSalaryBo bo, PageQuery pageQuery) { public TableDataInfo<PsSalaryVo> queryPageList(PsSalaryBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<PsSalary> lqw = buildQueryWrapper(bo); LambdaQueryWrapper<PsSalary> lqw = buildQueryWrapper(bo);
Page<PsSalaryVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw); Page<PsSalaryVo> result = baseMapper.selectSalaryList(pageQuery.build(), lqw);
return TableDataInfo.build(result); return TableDataInfo.build(result);
} }
/**
* 查询符合条件的员工提成提成列表
*
* @param bo 查询条件
* @return 员工提成提成列表
*/
@Override
public List<PsSalaryVo> queryList(PsSalaryBo bo) {
LambdaQueryWrapper<PsSalary> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<PsSalary> buildQueryWrapper(PsSalaryBo bo) { private LambdaQueryWrapper<PsSalary> buildQueryWrapper(PsSalaryBo bo) {
Map<String, Object> params = bo.getParams(); Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<PsSalary> lqw = Wrappers.lambdaQuery(); LambdaQueryWrapper<PsSalary> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getUserId() != null, PsSalary::getUserId, bo.getUserId()); // lqw.eq(bo.getUserId() != null, PsSalary::getUserId, bo.getUserId());
lqw.eq(bo.getServiceProject() != null, PsSalary::getServiceProject, bo.getServiceProject()); // lqw.eq(bo.getServiceProject() != null, PsSalary::getServiceProject, bo.getServiceProject());
lqw.eq(StringUtils.isNotBlank(bo.getSalaryRatio()), PsSalary::getSalaryRatio, bo.getSalaryRatio()); // lqw.eq(StringUtils.isNotBlank(bo.getSalaryRatio()), PsSalary::getSalaryRatio, bo.getSalaryRatio());
return lqw; return lqw;
} }
/**
* 新增员工提成提成
*
* @param bo 员工提成提成
* @return 是否新增成功
*/
@Override
public Boolean insertByBo(PsSalaryBo bo) {
PsSalary add = MapstructUtils.convert(bo, PsSalary.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
}
return flag;
}
/**
* 修改员工提成提成
*
* @param bo 员工提成提成
* @return 是否修改成功
*/
@Override
public Boolean updateByBo(PsSalaryBo bo) {
PsSalary update = MapstructUtils.convert(bo, PsSalary.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/** // /**
* 保存前的数据校验 // * 查询员工提成提成
*/ // *
private void validEntityBeforeSave(PsSalary entity){ // * @param id 主键
//TODO 做一些数据校验,如唯一约束 // * @return 员工提成提成
} // */
// @Override
/** // public PsSalaryVo queryById(Long id){
* 校验并批量删除员工提成提成信息 // return baseMapper.selectVoById(id);
* // }
* @param ids 待删除的主键集合 //
* @param isValid 是否进行有效性校验 // /**
* @return 是否删除成功 // * 查询符合条件的员工提成提成列表
*/ // *
@Override // * @param bo 查询条件
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) { // * @return 员工提成提成列表
if(isValid){ // */
//TODO 做一些业务上的校验,判断是否需要校验 // @Override
} // public List<PsSalaryVo> queryList(PsSalaryBo bo) {
return baseMapper.deleteBatchIds(ids) > 0; // LambdaQueryWrapper<PsSalary> lqw = buildQueryWrapper(bo);
} // return baseMapper.selectVoList(lqw);
// }
//
// private LambdaQueryWrapper<PsSalary> buildQueryWrapper(PsSalaryBo bo) {
// Map<String, Object> params = bo.getParams();
// LambdaQueryWrapper<PsSalary> lqw = Wrappers.lambdaQuery();
// lqw.eq(bo.getUserId() != null, PsSalary::getUserId, bo.getUserId());
// lqw.eq(bo.getServiceProject() != null, PsSalary::getServiceProject, bo.getServiceProject());
// lqw.eq(StringUtils.isNotBlank(bo.getSalaryRatio()), PsSalary::getSalaryRatio, bo.getSalaryRatio());
// return lqw;
// }
//
// /**
// * 新增员工提成提成
// *
// * @param bo 员工提成提成
// * @return 是否新增成功
// */
// @Override
// public Boolean insertByBo(PsSalaryBo bo) {
// PsSalary add = MapstructUtils.convert(bo, PsSalary.class);
// validEntityBeforeSave(add);
// boolean flag = baseMapper.insert(add) > 0;
// if (flag) {
// bo.setId(add.getId());
// }
// return flag;
// }
//
// /**
// * 修改员工提成提成
// *
// * @param bo 员工提成提成
// * @return 是否修改成功
// */
// @Override
// public Boolean updateByBo(PsSalaryBo bo) {
// PsSalary update = MapstructUtils.convert(bo, PsSalary.class);
// validEntityBeforeSave(update);
// return baseMapper.updateById(update) > 0;
// }
//
// /**
// * 保存前的数据校验
// */
// private void validEntityBeforeSave(PsSalary entity){
// //TODO 做一些数据校验,如唯一约束
// }
//
// /**
// * 校验并批量删除员工提成提成信息
// *
// * @param ids 待删除的主键集合
// * @param isValid 是否进行有效性校验
// * @return 是否删除成功
// */
// @Override
// public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
// if(isValid){
// //TODO 做一些业务上的校验,判断是否需要校验
// }
// return baseMapper.deleteBatchIds(ids) > 0;
// }
} }

View File

@ -4,4 +4,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.pusong.business.mapper.PsSalaryMapper"> <mapper namespace="com.pusong.business.mapper.PsSalaryMapper">
<select id="selectSalaryList" resultMap="com.pusong.business.domain.vo.PsSalaryVo">
select
ps.user_id,
ps.salary_money ,
su.nick_name,
sp.post_name,
(select count(*) from ps_contract_info info where info.custom_manager = ps.user_id and info.contract_status != '10' and info.is_cancel != '03') all_contract,
(select count(*) from ps_contract_info inf where inf.custom_manager = ps.user_id and inf.contract_status == '50' and inf.is_cancel != '03') finish_contract,
(select count(*) from ps_contract_info pci where pci.custom_manager = ps.user_id and pci.contract_status not in ('10','50') and pci.is_cancel != '03') unfinish_contract
from ps_salary ps
left join sys_user su on su.user_id = ps.user_id
left join sys_post sp on ps.post_id = sp.post_id
${ew.getCustomSqlSegment}
</select>
</mapper> </mapper>

View File

@ -21,6 +21,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
main.start_date, main.start_date,
main.task_status, main.task_status,
main.contract_code, main.contract_code,
main.invoice,
con.is_proxy con_is_proxy, con.is_proxy con_is_proxy,
con.custom_scene con_custom_scene, con.custom_scene con_custom_scene,
con.custom_manager con_custom_manager, con.custom_manager con_custom_manager,