diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/mapper/BaseMapperPlus.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/mapper/BaseMapperPlus.java index 92257ca..188d300 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/mapper/BaseMapperPlus.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/mapper/BaseMapperPlus.java @@ -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 extends BaseMapper { * * @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); } diff --git a/ruoyi-pay/src/main/java/com/ruoyi/pay/controller/PayButieEmplyeeController.java b/ruoyi-pay/src/main/java/com/ruoyi/pay/controller/PayButieEmplyeeController.java index a61574d..b4aac56 100644 --- a/ruoyi-pay/src/main/java/com/ruoyi/pay/controller/PayButieEmplyeeController.java +++ b/ruoyi-pay/src/main/java/com/ruoyi/pay/controller/PayButieEmplyeeController.java @@ -11,9 +11,7 @@ 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.ButieSummaryVo; -import com.ruoyi.pay.domain.vo.PayButieVo; -import com.ruoyi.pay.domain.vo.PayEmployeeInfoVo; +import com.ruoyi.pay.domain.vo.*; import com.ruoyi.pay.service.IPayButieService; import com.ruoyi.pay.service.IPayEmployeeInfoService; 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.enums.BusinessType; 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.service.IPayButieEmplyeeService; import com.ruoyi.common.core.page.TableDataInfo; @@ -106,6 +103,16 @@ public class PayButieEmplyeeController extends BaseController { public R edit(@Validated(EditGroup.class) @RequestBody PayButieEmplyeeBo bo) { return toAjax(iPayButieEmplyeeService.updateByBo(bo)); } + /** + * 修改员工对应月份所有的补贴类型的费用 + */ + @SaCheckPermission("pay:butieEmplyee:alledit") + @Log(title = "月度补贴修改", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping("/allbt") + public R updateAllBtempByDate(@RequestBody ButieUpdateVo vo) { + return iPayButieEmplyeeService.updateAllBtempByDate(vo); + } /** * 删除补贴和员工联系 @@ -129,12 +136,12 @@ public class PayButieEmplyeeController extends BaseController { @Log(title = "月度补贴生成", businessType = BusinessType.INSERT) @PostMapping("/gen") public R 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 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") - @DeleteMapping("/summary") + @GetMapping("/summary") public TableDataInfo summary(PayButieEmplyeeBo bo, PageQuery pageQuery) { String date; if (null==(bo.getDate())) { // 默认查询本月的数据 diff --git a/ruoyi-pay/src/main/java/com/ruoyi/pay/controller/PayRequireAttendanceReportController.java b/ruoyi-pay/src/main/java/com/ruoyi/pay/controller/PayRequireAttendanceReportController.java index c7966ec..bcf74d7 100644 --- a/ruoyi-pay/src/main/java/com/ruoyi/pay/controller/PayRequireAttendanceReportController.java +++ b/ruoyi-pay/src/main/java/com/ruoyi/pay/controller/PayRequireAttendanceReportController.java @@ -122,6 +122,17 @@ public class PayRequireAttendanceReportController extends BaseController { @RepeatSubmit() @PostMapping() public R 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 r = iPayRequireAttendanceReportService.queryList(bo); + if (r!=null&&r.size()>0) + { + return R.fail("已存在"+bo.getEmpName()+" "+bo.getYear()+bo.getMonth()+"月的信息"); + } return toAjax(iPayRequireAttendanceReportService.insertByBo(bo)); } diff --git a/ruoyi-pay/src/main/java/com/ruoyi/pay/domain/vo/ButieTypeVo.java b/ruoyi-pay/src/main/java/com/ruoyi/pay/domain/vo/ButieTypeVo.java new file mode 100644 index 0000000..08aa0ab --- /dev/null +++ b/ruoyi-pay/src/main/java/com/ruoyi/pay/domain/vo/ButieTypeVo.java @@ -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 + + '}'; + } +} + diff --git a/ruoyi-pay/src/main/java/com/ruoyi/pay/domain/vo/ButieUpdateVo.java b/ruoyi-pay/src/main/java/com/ruoyi/pay/domain/vo/ButieUpdateVo.java new file mode 100644 index 0000000..ef13291 --- /dev/null +++ b/ruoyi-pay/src/main/java/com/ruoyi/pay/domain/vo/ButieUpdateVo.java @@ -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 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 getBtList() { + return btList; + } + + public void setBtList(List btList) { + this.btList = btList; + } + + @Override + public String toString() { + return "ButieUpdateVo{" + + "empId=" + empId + + ", date='" + date + '\'' + + ", btList=" + btList + + '}'; + } +} + diff --git a/ruoyi-pay/src/main/java/com/ruoyi/pay/mapper/PayButieEmplyeeMapper.java b/ruoyi-pay/src/main/java/com/ruoyi/pay/mapper/PayButieEmplyeeMapper.java index a203c68..c224746 100644 --- a/ruoyi-pay/src/main/java/com/ruoyi/pay/mapper/PayButieEmplyeeMapper.java +++ b/ruoyi-pay/src/main/java/com/ruoyi/pay/mapper/PayButieEmplyeeMapper.java @@ -3,6 +3,10 @@ package com.ruoyi.pay.mapper; import com.ruoyi.pay.domain.PayButieEmplyee; import com.ruoyi.pay.domain.vo.PayButieEmplyeeVo; import com.ruoyi.common.core.mapper.BaseMapperPlus; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Update; + +import java.math.BigDecimal; /** * 补贴和员工联系Mapper接口 @@ -12,4 +16,6 @@ import com.ruoyi.common.core.mapper.BaseMapperPlus; */ public interface PayButieEmplyeeMapper extends BaseMapperPlus { + @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); } diff --git a/ruoyi-pay/src/main/java/com/ruoyi/pay/service/IPayButieEmplyeeService.java b/ruoyi-pay/src/main/java/com/ruoyi/pay/service/IPayButieEmplyeeService.java index 12766a7..2f977f5 100644 --- a/ruoyi-pay/src/main/java/com/ruoyi/pay/service/IPayButieEmplyeeService.java +++ b/ruoyi-pay/src/main/java/com/ruoyi/pay/service/IPayButieEmplyeeService.java @@ -2,6 +2,7 @@ package com.ruoyi.pay.service; import com.ruoyi.common.core.domain.R; 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.bo.PayButieEmplyeeBo; import com.ruoyi.common.core.page.TableDataInfo; @@ -48,7 +49,9 @@ public interface IPayButieEmplyeeService { */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); - R generateBuTieEmpByMonth(String month, Boolean cover); + R generateBuTieEmpByMonth(String month, Boolean cover,Long tenantId); - R checkDataExist(String month); + R checkDataExist(String month,Long tenantId); + + R updateAllBtempByDate(ButieUpdateVo vo); } diff --git a/ruoyi-pay/src/main/java/com/ruoyi/pay/service/impl/PayButieEmplyeeServiceImpl.java b/ruoyi-pay/src/main/java/com/ruoyi/pay/service/impl/PayButieEmplyeeServiceImpl.java index dda7373..b791e86 100644 --- a/ruoyi-pay/src/main/java/com/ruoyi/pay/service/impl/PayButieEmplyeeServiceImpl.java +++ b/ruoyi-pay/src/main/java/com/ruoyi/pay/service/impl/PayButieEmplyeeServiceImpl.java @@ -14,12 +14,11 @@ 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.vo.PayButieVo; -import com.ruoyi.pay.domain.vo.PayEmployeeInfoVo; +import com.ruoyi.pay.domain.bo.PayEmployeeInfoBo; +import com.ruoyi.pay.domain.vo.*; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import com.ruoyi.pay.domain.bo.PayButieEmplyeeBo; -import com.ruoyi.pay.domain.vo.PayButieEmplyeeVo; import com.ruoyi.pay.domain.PayButieEmplyee; import com.ruoyi.pay.mapper.PayButieEmplyeeMapper; import com.ruoyi.pay.service.IPayButieEmplyeeService; @@ -106,6 +105,24 @@ public class PayButieEmplyeeServiceImpl implements IPayButieEmplyeeService { return baseMapper.updateById(update) > 0; } + @Override + public R updateAllBtempByDate(ButieUpdateVo vo) { + List 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 - public R generateBuTieEmpByMonth(String month, Boolean cover) { + public R 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 butieList = butieService.queryList(null); // 获取补贴列表 - List employeeInfoList = employeeInfoService.queryList(null);// 获取员工列表 + PayEmployeeInfoBo yg = new PayEmployeeInfoBo(); + yg.setTenantId(tenantId); + List employeeInfoList = employeeInfoService.queryList(yg);// 获取员工列表 employeeInfoList.forEach(emp -> { // 首先获取用户上个月份的补贴信息 PayButieEmplyeeBo butieEmplyee = new PayButieEmplyeeBo(); butieEmplyee.setDate(lastMonth); butieEmplyee.setEmployeeId(emp.getId()); + butieEmplyee.setTenantId(tenantId); List butieEmplyeeList = this.queryList(butieEmplyee); if (ObjectUtil.isNotNull(butieEmplyeeList) && butieEmplyeeList.size() > 0) { // 具有某员工的上个月数据 // 固定项继承, 非固定相为0 for (PayButieVo butie : butieList) { Optional 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); @@ -178,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); } } }); @@ -192,12 +215,12 @@ public class PayButieEmplyeeServiceImpl implements IPayButieEmplyeeService { } @Override - public R checkDataExist(String month) { - Integer count = baseMapper.getLatestDate(month); + public R 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); } } }