Merge remote-tracking branch 'origin/master'

master
wanglei 7 months ago
commit 310cb2d317

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

@ -11,9 +11,7 @@ import com.ruoyi.pay.domain.PayButie;
import com.ruoyi.pay.domain.PayEmployeeInfo; import com.ruoyi.pay.domain.PayEmployeeInfo;
import com.ruoyi.pay.domain.bo.PayButieBo; import com.ruoyi.pay.domain.bo.PayButieBo;
import com.ruoyi.pay.domain.bo.PayEmployeeInfoBo; import com.ruoyi.pay.domain.bo.PayEmployeeInfoBo;
import com.ruoyi.pay.domain.vo.ButieSummaryVo; import com.ruoyi.pay.domain.vo.*;
import com.ruoyi.pay.domain.vo.PayButieVo;
import com.ruoyi.pay.domain.vo.PayEmployeeInfoVo;
import com.ruoyi.pay.service.IPayButieService; import com.ruoyi.pay.service.IPayButieService;
import com.ruoyi.pay.service.IPayEmployeeInfoService; import com.ruoyi.pay.service.IPayEmployeeInfoService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -32,7 +30,6 @@ import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.core.validate.QueryGroup; import com.ruoyi.common.core.validate.QueryGroup;
import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.pay.domain.vo.PayButieEmplyeeVo;
import com.ruoyi.pay.domain.bo.PayButieEmplyeeBo; import com.ruoyi.pay.domain.bo.PayButieEmplyeeBo;
import com.ruoyi.pay.service.IPayButieEmplyeeService; import com.ruoyi.pay.service.IPayButieEmplyeeService;
import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.page.TableDataInfo;
@ -106,6 +103,16 @@ public class PayButieEmplyeeController extends BaseController {
public R<Void> edit(@Validated(EditGroup.class) @RequestBody PayButieEmplyeeBo bo) { public R<Void> edit(@Validated(EditGroup.class) @RequestBody PayButieEmplyeeBo bo) {
return toAjax(iPayButieEmplyeeService.updateByBo(bo)); return toAjax(iPayButieEmplyeeService.updateByBo(bo));
} }
/**
*
*/
@SaCheckPermission("pay:butieEmplyee:alledit")
@Log(title = "月度补贴修改", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping("/allbt")
public R<Void> updateAllBtempByDate(@RequestBody ButieUpdateVo vo) {
return iPayButieEmplyeeService.updateAllBtempByDate(vo);
}
/** /**
* *
@ -129,12 +136,12 @@ public class PayButieEmplyeeController extends BaseController {
@Log(title = "月度补贴生成", businessType = BusinessType.INSERT) @Log(title = "月度补贴生成", businessType = BusinessType.INSERT)
@PostMapping("/gen") @PostMapping("/gen")
public R<Void> generateBuTieEmpByMonth(@RequestBody JSONObject object) { 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") @PostMapping("/check")
public R<Void> checkDataExist(@RequestBody JSONObject object) { 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));
} }
/** /**
@ -142,7 +149,7 @@ public class PayButieEmplyeeController extends BaseController {
* *
*/ */
@SaCheckPermission("pay:butieEmplyee:list") @SaCheckPermission("pay:butieEmplyee:list")
@DeleteMapping("/summary") @GetMapping("/summary")
public TableDataInfo<ButieSummaryVo> summary(PayButieEmplyeeBo bo, PageQuery pageQuery) { public TableDataInfo<ButieSummaryVo> summary(PayButieEmplyeeBo bo, PageQuery pageQuery) {
String date; String date;
if (null==(bo.getDate())) { // 默认查询本月的数据 if (null==(bo.getDate())) { // 默认查询本月的数据

@ -122,6 +122,17 @@ public class PayRequireAttendanceReportController extends BaseController {
@RepeatSubmit() @RepeatSubmit()
@PostMapping() @PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody PayRequireAttendanceReportBo bo) { public R<Void> add(@Validated(AddGroup.class) @RequestBody PayRequireAttendanceReportBo bo) {
// 验证是否存在这个人的报告
PayRequireAttendanceReportBo query = new PayRequireAttendanceReportBo();
query.setTenantId(bo.getTenantId());
query.setYear(bo.getYear());
query.setMonth(bo.getMonth());
query.setYear(bo.getEmpName());
List<PayRequireAttendanceReportVo> r = iPayRequireAttendanceReportService.queryList(bo);
if (r!=null&&r.size()>0)
{
return R.fail("已存在"+bo.getEmpName()+" "+bo.getYear()+bo.getMonth()+"月的信息");
}
return toAjax(iPayRequireAttendanceReportService.insertByBo(bo)); return toAjax(iPayRequireAttendanceReportService.insertByBo(bo));
} }

@ -0,0 +1,45 @@
package com.ruoyi.pay.domain.vo;
import java.math.BigDecimal;
public class ButieTypeVo {
private Long btid;
private String butieName;
private BigDecimal money;
public Long getBtid() {
return btid;
}
public void setBtid(Long btid) {
this.btid = btid;
}
public String getButieName() {
return butieName;
}
public void setButieName(String butieName) {
this.butieName = butieName;
}
public BigDecimal getMoney() {
return money;
}
public void setMoney(BigDecimal money) {
this.money = money;
}
@Override
public String toString() {
return "ButieTypeVo{" +
"btid=" + btid +
", butieName='" + butieName + '\'' +
", money=" + money +
'}';
}
}

@ -0,0 +1,46 @@
package com.ruoyi.pay.domain.vo;
import java.util.List;
public class ButieUpdateVo {
/** 员工ID */
private Long empId;
private String date;
private List<ButieTypeVo> btList;
public Long getEmpId() {
return empId;
}
public void setEmpId(Long empId) {
this.empId = empId;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public List<ButieTypeVo> getBtList() {
return btList;
}
public void setBtList(List<ButieTypeVo> btList) {
this.btList = btList;
}
@Override
public String toString() {
return "ButieUpdateVo{" +
"empId=" + empId +
", date='" + date + '\'' +
", btList=" + btList +
'}';
}
}

@ -3,6 +3,10 @@ package com.ruoyi.pay.mapper;
import com.ruoyi.pay.domain.PayButieEmplyee; import com.ruoyi.pay.domain.PayButieEmplyee;
import com.ruoyi.pay.domain.vo.PayButieEmplyeeVo; import com.ruoyi.pay.domain.vo.PayButieEmplyeeVo;
import com.ruoyi.common.core.mapper.BaseMapperPlus; import com.ruoyi.common.core.mapper.BaseMapperPlus;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;
import java.math.BigDecimal;
/** /**
* Mapper * Mapper
@ -12,4 +16,6 @@ import com.ruoyi.common.core.mapper.BaseMapperPlus;
*/ */
public interface PayButieEmplyeeMapper extends BaseMapperPlus<PayButieEmplyeeMapper, PayButieEmplyee, PayButieEmplyeeVo> { public interface PayButieEmplyeeMapper extends BaseMapperPlus<PayButieEmplyeeMapper, PayButieEmplyee, PayButieEmplyeeVo> {
@Update("UPDATE pay_butie_emplyee SET money = #{money} WHERE butie_id = #{btid} AND employee_id = #{empId} AND date = #{date} ")
Integer updateButieEmplyeeByDate(@Param("btid") Long btid, @Param("empId") Long empId, @Param("date") String date, @Param("money") BigDecimal money);
} }

@ -2,6 +2,7 @@ package com.ruoyi.pay.service;
import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.R;
import com.ruoyi.pay.domain.PayButieEmplyee; import com.ruoyi.pay.domain.PayButieEmplyee;
import com.ruoyi.pay.domain.vo.ButieUpdateVo;
import com.ruoyi.pay.domain.vo.PayButieEmplyeeVo; import com.ruoyi.pay.domain.vo.PayButieEmplyeeVo;
import com.ruoyi.pay.domain.bo.PayButieEmplyeeBo; import com.ruoyi.pay.domain.bo.PayButieEmplyeeBo;
import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.page.TableDataInfo;
@ -48,7 +49,9 @@ public interface IPayButieEmplyeeService {
*/ */
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid); 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,12 +14,11 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.pay.domain.PayButie; import com.ruoyi.pay.domain.PayButie;
import com.ruoyi.pay.domain.PayEmployeeInfo; import com.ruoyi.pay.domain.PayEmployeeInfo;
import com.ruoyi.pay.domain.bo.PayButieBo; import com.ruoyi.pay.domain.bo.PayButieBo;
import com.ruoyi.pay.domain.vo.PayButieVo; import com.ruoyi.pay.domain.bo.PayEmployeeInfoBo;
import com.ruoyi.pay.domain.vo.PayEmployeeInfoVo; import com.ruoyi.pay.domain.vo.*;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.ruoyi.pay.domain.bo.PayButieEmplyeeBo; import com.ruoyi.pay.domain.bo.PayButieEmplyeeBo;
import com.ruoyi.pay.domain.vo.PayButieEmplyeeVo;
import com.ruoyi.pay.domain.PayButieEmplyee; import com.ruoyi.pay.domain.PayButieEmplyee;
import com.ruoyi.pay.mapper.PayButieEmplyeeMapper; import com.ruoyi.pay.mapper.PayButieEmplyeeMapper;
import com.ruoyi.pay.service.IPayButieEmplyeeService; import com.ruoyi.pay.service.IPayButieEmplyeeService;
@ -106,6 +105,24 @@ public class PayButieEmplyeeServiceImpl implements IPayButieEmplyeeService {
return baseMapper.updateById(update) > 0; return baseMapper.updateById(update) > 0;
} }
@Override
public R<Void> updateAllBtempByDate(ButieUpdateVo vo) {
List<ButieTypeVo> btList = vo.getBtList();
if (ObjectUtil.isNotNull(btList) && btList.size() > 0) {
for (ButieTypeVo typeVo : btList) {
if (ObjectUtil.isNull(typeVo.getMoney())) {
typeVo.setMoney(BigDecimal.ZERO);
}
Integer integer = baseMapper.updateButieEmplyeeByDate(typeVo.getBtid(), vo.getEmpId(), vo.getDate(), typeVo.getMoney());
if (integer == 0) {
return R.fail("本月补贴数据未生成");
}
}
return R.ok("修改成功");
}
return R.fail("数据异常");
}
/** /**
* *
*/ */
@ -125,27 +142,32 @@ public class PayButieEmplyeeServiceImpl implements IPayButieEmplyeeService {
} }
@Override @Override
public R<Void> generateBuTieEmpByMonth(String month, Boolean cover) { public R<Void> generateBuTieEmpByMonth(String month, Boolean cover,Long tenantId) {
if (ObjectUtil.isNull(month)) { if (ObjectUtil.isNull(month)) {
throw new SecurityException("请完善月份信息"); throw new SecurityException("请完善月份信息");
} }
String lastMonth = DateUtil.format(DateUtil.offset(DateUtil.parse(month, "yyyy-MM"), DateField.MONTH, -1).toJdkDate(), "yyyy-MM"); 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<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 -> { employeeInfoList.forEach(emp -> {
// 首先获取用户上个月份的补贴信息 // 首先获取用户上个月份的补贴信息
PayButieEmplyeeBo butieEmplyee = new PayButieEmplyeeBo(); PayButieEmplyeeBo butieEmplyee = new PayButieEmplyeeBo();
butieEmplyee.setDate(lastMonth); butieEmplyee.setDate(lastMonth);
butieEmplyee.setEmployeeId(emp.getId()); butieEmplyee.setEmployeeId(emp.getId());
butieEmplyee.setTenantId(tenantId);
List<PayButieEmplyeeVo> butieEmplyeeList = this.queryList(butieEmplyee); List<PayButieEmplyeeVo> butieEmplyeeList = this.queryList(butieEmplyee);
if (ObjectUtil.isNotNull(butieEmplyeeList) && butieEmplyeeList.size() > 0) { // 具有某员工的上个月数据 if (ObjectUtil.isNotNull(butieEmplyeeList) && butieEmplyeeList.size() > 0) { // 具有某员工的上个月数据
// 固定项继承, 非固定相为0 // 固定项继承, 非固定相为0
for (PayButieVo butie : butieList) { for (PayButieVo butie : butieList) {
Optional<PayButieEmplyeeVo> first = butieEmplyeeList.stream().filter(btemp -> btemp.getButieId().equals(butie.getId())).findFirst(); Optional<PayButieEmplyeeVo> first = butieEmplyeeList.stream().filter(btemp -> btemp.getButieId().equals(butie.getId())).findFirst();
PayButieEmplyee payButieEmplyee = new PayButieEmplyee(); PayButieEmplyee payButieEmplyee = new PayButieEmplyee();
payButieEmplyee.setTenantId(tenantId);
// PayEmployeeInfo employeeInfo = employeeInfoService.selectSgrEmployeeInfoById(payButieEmplyee.getEmployeeId()); // PayEmployeeInfo employeeInfo = employeeInfoService.selectSgrEmployeeInfoById(payButieEmplyee.getEmployeeId());
if (first.isPresent()) { // 如果找到和补贴类型ID相同的项 if (first.isPresent()) { // 如果找到和补贴类型ID相同的项
payButieEmplyee = BeanUtil.toBean(first.get(),PayButieEmplyee.class); payButieEmplyee = BeanUtil.toBean(first.get(),PayButieEmplyee.class);
@ -178,13 +200,14 @@ public class PayButieEmplyeeServiceImpl implements IPayButieEmplyeeService {
} }
} else { // 没有某员工的上个月数据 } else { // 没有某员工的上个月数据
for (PayButieVo butie : butieList) { // 对应生成某员工所有补贴类型的数据项 for (PayButieVo butie : butieList) { // 对应生成某员工所有补贴类型的数据项
PayButieEmplyee PaybutieEmplyee = new PayButieEmplyee(); PayButieEmplyee paybutieEmplyee = new PayButieEmplyee();
PaybutieEmplyee.setButieId(butie.getId()); paybutieEmplyee.setTenantId(tenantId);
PaybutieEmplyee.setEmployeeId(emp.getId()); paybutieEmplyee.setButieId(butie.getId());
PaybutieEmplyee.setMoney(BigDecimal.ZERO); paybutieEmplyee.setEmployeeId(emp.getId());
PaybutieEmplyee.setDate(month); paybutieEmplyee.setMoney(BigDecimal.ZERO);
PaybutieEmplyee.setCreateBy("system"); paybutieEmplyee.setDate(month);
baseMapper.insert(PaybutieEmplyee); paybutieEmplyee.setCreateBy("system");
baseMapper.insert(paybutieEmplyee);
} }
} }
}); });
@ -192,12 +215,12 @@ public class PayButieEmplyeeServiceImpl implements IPayButieEmplyeeService {
} }
@Override @Override
public R<Void> checkDataExist(String month) { public R<Void> checkDataExist(String month,Long tenantId) {
Integer count = baseMapper.getLatestDate(month); Integer count = baseMapper.getLatestDate(month,tenantId);
if (count > 0) { if (count > 0) {
return R.ok("数据已经存在,是否覆盖?"); return R.ok("数据已经存在,是否覆盖?");
} else { } else {
return this.generateBuTieEmpByMonth(month, true); return this.generateBuTieEmpByMonth(month, true,tenantId);
} }
} }
} }

Loading…
Cancel
Save