feat: 新增产线管理、批量操作与绩效考核自动化功能
1. 新增部门产线绑定字段,优化部门列表展示 2. 添加薪资、考核、维度明细的批量新增/修改接口与实现 3. 新增绩效考核得分计算引擎与WMS数据拉取服务 4. 新增一键生成薪资与考核记录的弹窗功能 5. 优化配置页面UI与新增批量导入项目功能 6. 隐藏 coil/ship.vue 页面的校正按钮
This commit is contained in:
@@ -71,8 +71,18 @@ public class PerfAppraisalController extends BaseController {
|
||||
@Log(title = "月度绩效考核记录", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody PerfAppraisalBo bo) {
|
||||
return toAjax(iPerfAppraisalService.insertByBo(bo));
|
||||
public R<Long> add(@Validated(AddGroup.class) @RequestBody PerfAppraisalBo bo) {
|
||||
PerfAppraisalBo result = iPerfAppraisalService.insertByBo(bo);
|
||||
return R.ok(result.getId());
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量新增月度绩效考核记录(含维度明细)
|
||||
*/
|
||||
@Log(title = "月度绩效考核记录", businessType = BusinessType.INSERT)
|
||||
@PostMapping("/batch")
|
||||
public R<Integer> addBatch(@RequestBody List<PerfAppraisalBo> list) {
|
||||
return R.ok(iPerfAppraisalService.batchInsertByBo(list));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -85,6 +85,15 @@ public class PerfAppraisalDetailController extends BaseController {
|
||||
return toAjax(iPerfAppraisalDetailService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量修改考核维度评分明细
|
||||
*/
|
||||
@Log(title = "考核维度评分明细", businessType = BusinessType.UPDATE)
|
||||
@PutMapping("/batch")
|
||||
public R<Integer> editBatch(@RequestBody List<PerfAppraisalDetailBo> list) {
|
||||
return R.ok(iPerfAppraisalDetailService.batchUpdateByBo(list));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除考核维度评分明细
|
||||
*
|
||||
|
||||
@@ -75,6 +75,15 @@ public class PerfSalaryController extends BaseController {
|
||||
return toAjax(iPerfSalaryService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量新增月度薪资计算记录
|
||||
*/
|
||||
@Log(title = "月度薪资计算记录", businessType = BusinessType.INSERT)
|
||||
@PostMapping("/batch")
|
||||
public R<Integer> addBatch(@RequestBody List<PerfSalaryBo> list) {
|
||||
return R.ok(iPerfSalaryService.batchInsertByBo(list));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改月度薪资计算记录
|
||||
*/
|
||||
|
||||
@@ -40,6 +40,10 @@ public class PerfDept extends BaseEntity {
|
||||
* 状态(0正常 1停用)
|
||||
*/
|
||||
private String status;
|
||||
/**
|
||||
* 产线
|
||||
*/
|
||||
private String productionLine;
|
||||
/**
|
||||
* 删除标志(0=正常 1=已删除)
|
||||
*/
|
||||
|
||||
@@ -7,6 +7,7 @@ import javax.validation.constraints.*;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
|
||||
/**
|
||||
@@ -95,5 +96,9 @@ public class PerfAppraisalBo extends BaseEntity {
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 考核维度明细(批量新增时使用)
|
||||
*/
|
||||
private List<PerfAppraisalDetailBo> details;
|
||||
|
||||
}
|
||||
|
||||
@@ -42,6 +42,11 @@ public class PerfDeptBo extends BaseEntity {
|
||||
*/
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 产线
|
||||
*/
|
||||
private String productionLine;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
|
||||
@@ -50,6 +50,12 @@ public class PerfDeptVo {
|
||||
@ExcelDictFormat(readConverterExp = "0=正常,1=停用")
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 产线
|
||||
*/
|
||||
@ExcelProperty(value = "产线")
|
||||
private String productionLine;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
|
||||
@@ -46,4 +46,8 @@ public interface IPerfAppraisalDetailService {
|
||||
* 校验并批量删除考核维度评分明细信息
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
/**
|
||||
* 批量修改考核维度评分明细
|
||||
*/
|
||||
int batchUpdateByBo(List<PerfAppraisalDetailBo> list);
|
||||
}
|
||||
|
||||
@@ -35,7 +35,7 @@ public interface IPerfAppraisalService {
|
||||
/**
|
||||
* 新增月度绩效考核记录
|
||||
*/
|
||||
Boolean insertByBo(PerfAppraisalBo bo);
|
||||
PerfAppraisalBo insertByBo(PerfAppraisalBo bo);
|
||||
|
||||
/**
|
||||
* 修改月度绩效考核记录
|
||||
@@ -46,4 +46,8 @@ public interface IPerfAppraisalService {
|
||||
* 校验并批量删除月度绩效考核记录信息
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
/**
|
||||
* 批量新增月度绩效考核记录(含维度明细)
|
||||
*/
|
||||
int batchInsertByBo(List<PerfAppraisalBo> list);
|
||||
}
|
||||
|
||||
@@ -46,4 +46,8 @@ public interface IPerfSalaryService {
|
||||
* 校验并批量删除月度薪资计算记录信息
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
/**
|
||||
* 批量新增月度薪资计算记录
|
||||
*/
|
||||
int batchInsertByBo(List<PerfSalaryBo> list);
|
||||
}
|
||||
|
||||
@@ -102,6 +102,20 @@ public class PerfAppraisalDetailServiceImpl implements IPerfAppraisalDetailServi
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量修改考核维度评分明细
|
||||
*/
|
||||
@Override
|
||||
public int batchUpdateByBo(List<PerfAppraisalDetailBo> list) {
|
||||
if (list == null || list.isEmpty()) return 0;
|
||||
int count = 0;
|
||||
for (PerfAppraisalDetailBo bo : list) {
|
||||
PerfAppraisalDetail update = BeanUtil.toBean(bo, PerfAppraisalDetail.class);
|
||||
if (baseMapper.updateById(update) > 0) count++;
|
||||
}
|
||||
return count;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
|
||||
@@ -13,6 +13,9 @@ import com.klp.perf.domain.bo.PerfAppraisalBo;
|
||||
import com.klp.perf.domain.vo.PerfAppraisalVo;
|
||||
import com.klp.perf.domain.PerfAppraisal;
|
||||
import com.klp.perf.mapper.PerfAppraisalMapper;
|
||||
import com.klp.perf.mapper.PerfAppraisalDetailMapper;
|
||||
import com.klp.perf.domain.PerfAppraisalDetail;
|
||||
import com.klp.perf.domain.bo.PerfAppraisalDetailBo;
|
||||
import com.klp.perf.service.IPerfAppraisalService;
|
||||
|
||||
import java.util.List;
|
||||
@@ -30,6 +33,7 @@ import java.util.Collection;
|
||||
public class PerfAppraisalServiceImpl implements IPerfAppraisalService {
|
||||
|
||||
private final PerfAppraisalMapper baseMapper;
|
||||
private final PerfAppraisalDetailMapper detailMapper;
|
||||
|
||||
/**
|
||||
* 查询月度绩效考核记录
|
||||
@@ -81,14 +85,14 @@ public class PerfAppraisalServiceImpl implements IPerfAppraisalService {
|
||||
* 新增月度绩效考核记录
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(PerfAppraisalBo bo) {
|
||||
public PerfAppraisalBo insertByBo(PerfAppraisalBo bo) {
|
||||
PerfAppraisal add = BeanUtil.toBean(bo, PerfAppraisal.class);
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
}
|
||||
return flag;
|
||||
return bo;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -101,6 +105,35 @@ public class PerfAppraisalServiceImpl implements IPerfAppraisalService {
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量新增月度绩效考核记录(含维度明细)
|
||||
*/
|
||||
@Override
|
||||
public int batchInsertByBo(List<PerfAppraisalBo> list) {
|
||||
if (list == null || list.isEmpty()) {
|
||||
return 0;
|
||||
}
|
||||
int count = 0;
|
||||
for (PerfAppraisalBo bo : list) {
|
||||
PerfAppraisal entity = BeanUtil.toBean(bo, PerfAppraisal.class);
|
||||
validEntityBeforeSave(entity);
|
||||
if (baseMapper.insert(entity) > 0) {
|
||||
bo.setId(entity.getId());
|
||||
count++;
|
||||
// 插入维度明细
|
||||
List<PerfAppraisalDetailBo> details = bo.getDetails();
|
||||
if (details != null && !details.isEmpty()) {
|
||||
for (PerfAppraisalDetailBo detailBo : details) {
|
||||
detailBo.setAppraisalId(entity.getId());
|
||||
PerfAppraisalDetail detail = BeanUtil.toBean(detailBo, PerfAppraisalDetail.class);
|
||||
detailMapper.insert(detail);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return count;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
|
||||
@@ -152,6 +152,26 @@ public class PerfSalaryServiceImpl implements IPerfSalaryService {
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量新增月度薪资计算记录
|
||||
*/
|
||||
@Override
|
||||
public int batchInsertByBo(List<PerfSalaryBo> list) {
|
||||
if (list == null || list.isEmpty()) {
|
||||
return 0;
|
||||
}
|
||||
int count = 0;
|
||||
for (PerfSalaryBo bo : list) {
|
||||
PerfSalary entity = BeanUtil.toBean(bo, PerfSalary.class);
|
||||
validEntityBeforeSave(entity);
|
||||
if (baseMapper.insert(entity) > 0) {
|
||||
bo.setId(entity.getId());
|
||||
count++;
|
||||
}
|
||||
}
|
||||
return count;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user