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.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);
}

@ -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<Void> 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<Void> 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<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));
}
/**
@ -142,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())) { // 默认查询本月的数据

@ -122,6 +122,17 @@ public class PayRequireAttendanceReportController extends BaseController {
@RepeatSubmit()
@PostMapping()
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));
}

@ -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.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<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.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<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.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<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
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);
@ -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<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