员工补贴生成接口修改

master 18
hshansha 7 months ago
parent d8bdde6d6a
commit 565c67c755

@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.core.toolkit.ReflectionKit;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.toolkit.Db;
import com.ruoyi.common.utils.BeanCopyUtils;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.logging.Log;
import org.apache.ibatis.logging.LogFactory;
@ -194,9 +195,9 @@ public interface BaseMapperPlus<M, T, V> extends BaseMapper<T> {
*
* @return
*/
@Select("DELETE FROM pay_butie_emplyee WHERE date = #{thisMonth}")
void deleteSgrButieEmplyeeByDate(String month);
@Select("DELETE FROM pay_butie_emplyee WHERE date = #{thisMonth} and tenant_id=#{tenantId}")
void deleteSgrButieEmplyeeByDate(@Param("month") String month,@Param("tenantId") Long tenantId);
@Select("SELECT COUNT(*) FROM pay_butie_emplyee WHERE date = #{month}")
Integer getLatestDate(String month);
Integer getLatestDate(@Param("month") String month,@Param("tenantId") Long tenantId);
}

@ -136,12 +136,12 @@ public class PayButieEmplyeeController extends BaseController {
@Log(title = "月度补贴生成", businessType = BusinessType.INSERT)
@PostMapping("/gen")
public R<Void> generateBuTieEmpByMonth(@RequestBody JSONObject object) {
return iPayButieEmplyeeService.generateBuTieEmpByMonth(object.get("month", String.class), object.get("cover", Boolean.class));
return iPayButieEmplyeeService.generateBuTieEmpByMonth(object.get("month", String.class), object.get("cover", Boolean.class),object.get("tenantId", Long.class));
}
@PostMapping("/check")
public R<Void> checkDataExist(@RequestBody JSONObject object) {
return iPayButieEmplyeeService.checkDataExist(object.get("month", String.class));
return iPayButieEmplyeeService.checkDataExist(object.get("month", String.class),object.get("tenantId", Long.class));
}
/**
@ -149,7 +149,7 @@ public class PayButieEmplyeeController extends BaseController {
*
*/
@SaCheckPermission("pay:butieEmplyee:list")
@DeleteMapping("/summary")
@GetMapping("/summary")
public TableDataInfo<ButieSummaryVo> summary(PayButieEmplyeeBo bo, PageQuery pageQuery) {
String date;
if (null==(bo.getDate())) { // 默认查询本月的数据

@ -49,9 +49,9 @@ public interface IPayButieEmplyeeService {
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
R<Void> generateBuTieEmpByMonth(String month, Boolean cover);
R<Void> generateBuTieEmpByMonth(String month, Boolean cover,Long tenantId);
R<Void> checkDataExist(String month);
R<Void> checkDataExist(String month,Long tenantId);
R<Void> updateAllBtempByDate(ButieUpdateVo vo);
}

@ -14,6 +14,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.pay.domain.PayButie;
import com.ruoyi.pay.domain.PayEmployeeInfo;
import com.ruoyi.pay.domain.bo.PayButieBo;
import com.ruoyi.pay.domain.bo.PayEmployeeInfoBo;
import com.ruoyi.pay.domain.vo.*;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
@ -141,27 +142,32 @@ public class PayButieEmplyeeServiceImpl implements IPayButieEmplyeeService {
}
@Override
public R<Void> generateBuTieEmpByMonth(String month, Boolean cover) {
public R<Void> generateBuTieEmpByMonth(String month, Boolean cover,Long tenantId) {
if (ObjectUtil.isNull(month)) {
throw new SecurityException("请完善月份信息");
}
String lastMonth = DateUtil.format(DateUtil.offset(DateUtil.parse(month, "yyyy-MM"), DateField.MONTH, -1).toJdkDate(), "yyyy-MM");
// 先删除本月数据
baseMapper.deleteSgrButieEmplyeeByDate(month);
baseMapper.deleteSgrButieEmplyeeByDate(month,tenantId);
PayButieBo bo = new PayButieBo();
bo.setTenantId(tenantId);
List<PayButieVo> butieList = butieService.queryList(null); // 获取补贴列表
List<PayEmployeeInfoVo> employeeInfoList = employeeInfoService.queryList(null);// 获取员工列表
PayEmployeeInfoBo yg = new PayEmployeeInfoBo();
yg.setTenantId(tenantId);
List<PayEmployeeInfoVo> employeeInfoList = employeeInfoService.queryList(yg);// 获取员工列表
employeeInfoList.forEach(emp -> {
// 首先获取用户上个月份的补贴信息
PayButieEmplyeeBo butieEmplyee = new PayButieEmplyeeBo();
butieEmplyee.setDate(lastMonth);
butieEmplyee.setEmployeeId(emp.getId());
butieEmplyee.setTenantId(tenantId);
List<PayButieEmplyeeVo> butieEmplyeeList = this.queryList(butieEmplyee);
if (ObjectUtil.isNotNull(butieEmplyeeList) && butieEmplyeeList.size() > 0) { // 具有某员工的上个月数据
// 固定项继承, 非固定相为0
for (PayButieVo butie : butieList) {
Optional<PayButieEmplyeeVo> first = butieEmplyeeList.stream().filter(btemp -> btemp.getButieId().equals(butie.getId())).findFirst();
PayButieEmplyee payButieEmplyee = new PayButieEmplyee();
payButieEmplyee.setTenantId(tenantId);
// PayEmployeeInfo employeeInfo = employeeInfoService.selectSgrEmployeeInfoById(payButieEmplyee.getEmployeeId());
if (first.isPresent()) { // 如果找到和补贴类型ID相同的项
payButieEmplyee = BeanUtil.toBean(first.get(),PayButieEmplyee.class);
@ -194,13 +200,14 @@ public class PayButieEmplyeeServiceImpl implements IPayButieEmplyeeService {
}
} else { // 没有某员工的上个月数据
for (PayButieVo butie : butieList) { // 对应生成某员工所有补贴类型的数据项
PayButieEmplyee PaybutieEmplyee = new PayButieEmplyee();
PaybutieEmplyee.setButieId(butie.getId());
PaybutieEmplyee.setEmployeeId(emp.getId());
PaybutieEmplyee.setMoney(BigDecimal.ZERO);
PaybutieEmplyee.setDate(month);
PaybutieEmplyee.setCreateBy("system");
baseMapper.insert(PaybutieEmplyee);
PayButieEmplyee paybutieEmplyee = new PayButieEmplyee();
paybutieEmplyee.setTenantId(tenantId);
paybutieEmplyee.setButieId(butie.getId());
paybutieEmplyee.setEmployeeId(emp.getId());
paybutieEmplyee.setMoney(BigDecimal.ZERO);
paybutieEmplyee.setDate(month);
paybutieEmplyee.setCreateBy("system");
baseMapper.insert(paybutieEmplyee);
}
}
});
@ -208,12 +215,12 @@ public class PayButieEmplyeeServiceImpl implements IPayButieEmplyeeService {
}
@Override
public R<Void> checkDataExist(String month) {
Integer count = baseMapper.getLatestDate(month);
public R<Void> checkDataExist(String month,Long tenantId) {
Integer count = baseMapper.getLatestDate(month,tenantId);
if (count > 0) {
return R.ok("数据已经存在,是否覆盖?");
} else {
return this.generateBuTieEmpByMonth(month, true);
return this.generateBuTieEmpByMonth(month, true,tenantId);
}
}
}

Loading…
Cancel
Save