diff --git a/ruoyi-pay/pom.xml b/ruoyi-pay/pom.xml index 78895e8..0a779f6 100644 --- a/ruoyi-pay/pom.xml +++ b/ruoyi-pay/pom.xml @@ -12,6 +12,12 @@ ruoyi-pay + + + com.alibaba.fastjson2 + fastjson2 + 2.0.9 + org.testng testng diff --git a/ruoyi-pay/src/main/java/com/ruoyi/pay/controller/PayEmployeeInfoController.java b/ruoyi-pay/src/main/java/com/ruoyi/pay/controller/PayEmployeeInfoController.java index ddb5000..92a0b93 100644 --- a/ruoyi-pay/src/main/java/com/ruoyi/pay/controller/PayEmployeeInfoController.java +++ b/ruoyi-pay/src/main/java/com/ruoyi/pay/controller/PayEmployeeInfoController.java @@ -49,7 +49,7 @@ public class PayEmployeeInfoController extends BaseController { return iPayEmployeeInfoService.queryPageList(bo, pageQuery); } /** - * 获取内外贸人员列表 + * 获取内外贸人员列表 业务员列表 */ @SaCheckPermission("pay:employeeInfo:list") @GetMapping("/salesman") diff --git a/ruoyi-pay/src/main/java/com/ruoyi/pay/controller/PaySalaryReportController.java b/ruoyi-pay/src/main/java/com/ruoyi/pay/controller/PaySalaryReportController.java index 33240c2..c4f7852 100644 --- a/ruoyi-pay/src/main/java/com/ruoyi/pay/controller/PaySalaryReportController.java +++ b/ruoyi-pay/src/main/java/com/ruoyi/pay/controller/PaySalaryReportController.java @@ -6,6 +6,8 @@ import java.util.concurrent.TimeUnit; import com.ruoyi.pay.domain.PaySalaryReport; import lombok.RequiredArgsConstructor; + +import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.validation.constraints.*; import cn.dev33.satoken.annotation.SaCheckPermission; @@ -59,9 +61,10 @@ public class PaySalaryReportController extends BaseController { @SaCheckPermission("pay:salaryReport:export") @Log(title = "工资明细总", businessType = BusinessType.EXPORT) @PostMapping("/export") - public void export(PaySalaryReportBo bo, HttpServletResponse response) { + public void export(PaySalaryReportBo bo, HttpServletRequest request, HttpServletResponse response) { List list = iPaySalaryReportService.queryList(bo); ExcelUtil.exportExcel(list, "工资明细总", PaySalaryReportVo.class, response); + iPaySalaryReportService.export(request, response, list); } /** diff --git a/ruoyi-pay/src/main/java/com/ruoyi/pay/domain/vo/ButieMoneyAndTypes.java b/ruoyi-pay/src/main/java/com/ruoyi/pay/domain/vo/ButieMoneyAndTypes.java new file mode 100644 index 0000000..4906752 --- /dev/null +++ b/ruoyi-pay/src/main/java/com/ruoyi/pay/domain/vo/ButieMoneyAndTypes.java @@ -0,0 +1,45 @@ +package com.ruoyi.pay.domain.vo; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import java.math.BigDecimal; + +public class ButieMoneyAndTypes { + private String buTieName; + private BigDecimal money; + private String type; + + 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; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("buTieName", getBuTieName()) + .append("money", getMoney()) + .append("type", getType()) + .toString(); + } +} + diff --git a/ruoyi-pay/src/main/java/com/ruoyi/pay/domain/vo/ExportBaohuoVo.java b/ruoyi-pay/src/main/java/com/ruoyi/pay/domain/vo/ExportBaohuoVo.java index 02c8d99..538c62c 100644 --- a/ruoyi-pay/src/main/java/com/ruoyi/pay/domain/vo/ExportBaohuoVo.java +++ b/ruoyi-pay/src/main/java/com/ruoyi/pay/domain/vo/ExportBaohuoVo.java @@ -1,11 +1,12 @@ package com.ruoyi.pay.domain.vo; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.format.DateTimeFormat; import com.alibaba.excel.converters.localdate.LocalDateDateConverter; import com.fasterxml.jackson.annotation.JsonFormat; import java.math.BigDecimal; import java.util.Date; - +@ExcelIgnoreUnannotated public class ExportBaohuoVo { /** 入库时间 */ @JsonFormat(pattern = "yyyy-MM-dd") diff --git a/ruoyi-pay/src/main/java/com/ruoyi/pay/mapper/PayDayWorkHoursMapper.java b/ruoyi-pay/src/main/java/com/ruoyi/pay/mapper/PayDayWorkHoursMapper.java index 93916c8..e75ebaa 100644 --- a/ruoyi-pay/src/main/java/com/ruoyi/pay/mapper/PayDayWorkHoursMapper.java +++ b/ruoyi-pay/src/main/java/com/ruoyi/pay/mapper/PayDayWorkHoursMapper.java @@ -1,6 +1,7 @@ package com.ruoyi.pay.mapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Constants; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.pay.domain.PayDayWorkHours; @@ -21,7 +22,7 @@ public interface PayDayWorkHoursMapper extends BaseMapperPlus selectPayDayWorkHoursList2(PayDayWorkHoursQuery sgrDayWorkHoursQuery); - Page selectVoPage2(@Param("page") Page page, @Param(Constants.WRAPPER)LambdaQueryWrapper ew); + Page selectVoPage2(@Param("page") Page page, @Param(Constants.WRAPPER) QueryWrapper ew); PayDayWorkHoursVo selectDetailById(Long id); } diff --git a/ruoyi-pay/src/main/java/com/ruoyi/pay/mapper/PayEmployeeInfoMapper.java b/ruoyi-pay/src/main/java/com/ruoyi/pay/mapper/PayEmployeeInfoMapper.java index 014865e..408b5d3 100644 --- a/ruoyi-pay/src/main/java/com/ruoyi/pay/mapper/PayEmployeeInfoMapper.java +++ b/ruoyi-pay/src/main/java/com/ruoyi/pay/mapper/PayEmployeeInfoMapper.java @@ -16,9 +16,11 @@ import java.util.List; * @date 2025-05-12 */ public interface PayEmployeeInfoMapper extends BaseMapperPlus { - @Update("update pay_employee_info e set e.hours_per_day = #{newHour} where e.hours_per_day = #{oldHour} and tenant_id = #{tenantId}") + @Update("update pay_employee_info e set e.hours_per_day = #{newHour} where e.hours_per_day = #{oldHour} and tenant_id = #{tenantId} and deleted = 0 ") int updateSgrEmployeeHour(@Param("oldHour") String oldHour, @Param("newHour")String newHour,@Param("tenantId") Long tenantId); @Select("select * from pay_employee_info e ,sys_dept d where e.dept_id=d.dept_id and deleted = 0 and (d.dept_name='外贸' or d.dept_name='内贸') and tenant_id = #{tenantId}") List getSalesmanList(@Param("tenantId") Long tenantId); + + PayEmployeeInfo selectSgrEmployeeInfoByIdHasDel(Long id); } diff --git a/ruoyi-pay/src/main/java/com/ruoyi/pay/service/IPaySalaryReportService.java b/ruoyi-pay/src/main/java/com/ruoyi/pay/service/IPaySalaryReportService.java index 7b3606d..50c48eb 100644 --- a/ruoyi-pay/src/main/java/com/ruoyi/pay/service/IPaySalaryReportService.java +++ b/ruoyi-pay/src/main/java/com/ruoyi/pay/service/IPaySalaryReportService.java @@ -6,6 +6,8 @@ import com.ruoyi.pay.domain.bo.PaySalaryReportBo; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.domain.PageQuery; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import java.util.Collection; import java.util.List; @@ -51,4 +53,6 @@ public interface IPaySalaryReportService { TableDataInfo queryLastMonthReport(Long tenantId, PageQuery pageQuery); + + void export(HttpServletRequest request, HttpServletResponse response, List list); } diff --git a/ruoyi-pay/src/main/java/com/ruoyi/pay/service/impl/PayDayWorkHoursServiceImpl.java b/ruoyi-pay/src/main/java/com/ruoyi/pay/service/impl/PayDayWorkHoursServiceImpl.java index 47fa799..0973b02 100644 --- a/ruoyi-pay/src/main/java/com/ruoyi/pay/service/impl/PayDayWorkHoursServiceImpl.java +++ b/ruoyi-pay/src/main/java/com/ruoyi/pay/service/impl/PayDayWorkHoursServiceImpl.java @@ -1,6 +1,7 @@ package com.ruoyi.pay.service.impl; import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.core.page.TableDataInfo; @@ -67,7 +68,7 @@ public class PayDayWorkHoursServiceImpl implements IPayDayWorkHoursService { */ @Override public TableDataInfo queryPageList2(PayDayWorkHoursBo bo, PageQuery pageQuery) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); + QueryWrapper lqw = buildQueryWrapper2(bo); Page result = baseMapper.selectVoPage2(pageQuery.build(), lqw); return TableDataInfo.build(result); } @@ -81,6 +82,19 @@ public class PayDayWorkHoursServiceImpl implements IPayDayWorkHoursService { return baseMapper.selectVoList(lqw); } + private QueryWrapper buildQueryWrapper2(PayDayWorkHoursBo bo) { + Map params = bo.getParams(); + QueryWrapper lqw = Wrappers.query();; + lqw.eq(bo.getTenantId() != null, "d.tenant_id", bo.getTenantId()); + lqw.eq(bo.getDeptId() != null, "dept_id", bo.getDeptId()); + lqw.like(StringUtils.isNotBlank(bo.getDeptName()), "dept_name", bo.getDeptName()); + lqw.eq(bo.getEmployeeId() != null, "employee_id", bo.getEmployeeId()); + lqw.like(StringUtils.isNotBlank(bo.getEmpName()), "emp_name", bo.getEmpName()); + lqw.eq(bo.getDate() != null, "date", bo.getDate()); + lqw.eq(StringUtils.isNotBlank(bo.getDwYearMonth()), "year_month", bo.getDwYearMonth()); + lqw.eq(StringUtils.isNotBlank(bo.getNote()), "note", bo.getNote()); + return lqw; + } private LambdaQueryWrapper buildQueryWrapper(PayDayWorkHoursBo bo) { Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); diff --git a/ruoyi-pay/src/main/java/com/ruoyi/pay/service/impl/PayEmployeeInfoServiceImpl.java b/ruoyi-pay/src/main/java/com/ruoyi/pay/service/impl/PayEmployeeInfoServiceImpl.java index 1b7101d..80eec9d 100644 --- a/ruoyi-pay/src/main/java/com/ruoyi/pay/service/impl/PayEmployeeInfoServiceImpl.java +++ b/ruoyi-pay/src/main/java/com/ruoyi/pay/service/impl/PayEmployeeInfoServiceImpl.java @@ -98,6 +98,7 @@ public class PayEmployeeInfoServiceImpl implements IPayEmployeeInfoService { lqw.eq(bo.getHtstime() != null, PayEmployeeInfo::getHtstime, bo.getHtstime()); lqw.eq(bo.getHtetime() != null, PayEmployeeInfo::getHtetime, bo.getHtetime()); lqw.eq(bo.getDeleted() != null, PayEmployeeInfo::getDeleted, bo.getDeleted()); + lqw.eq(bo.getDeleted() == null, PayEmployeeInfo::getDeleted, 0); return lqw; } diff --git a/ruoyi-pay/src/main/java/com/ruoyi/pay/service/impl/PaySalaryReportServiceImpl.java b/ruoyi-pay/src/main/java/com/ruoyi/pay/service/impl/PaySalaryReportServiceImpl.java index 041db49..800f02b 100644 --- a/ruoyi-pay/src/main/java/com/ruoyi/pay/service/impl/PaySalaryReportServiceImpl.java +++ b/ruoyi-pay/src/main/java/com/ruoyi/pay/service/impl/PaySalaryReportServiceImpl.java @@ -1,6 +1,8 @@ package com.ruoyi.pay.service.impl; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson2.JSON; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.core.page.TableDataInfo; @@ -8,6 +10,10 @@ import com.ruoyi.common.core.domain.PageQuery; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.ruoyi.pay.domain.PayEmployeeInfo; +import com.ruoyi.pay.domain.vo.ButieMoneyAndTypes; +import com.ruoyi.pay.mapper.PayEmployeeInfoMapper; +import com.ruoyi.pay.util.SalaryExportUtil; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import com.ruoyi.pay.domain.bo.PaySalaryReportBo; @@ -16,9 +22,11 @@ import com.ruoyi.pay.domain.PaySalaryReport; import com.ruoyi.pay.mapper.PaySalaryReportMapper; import com.ruoyi.pay.service.IPaySalaryReportService; -import java.util.List; -import java.util.Map; -import java.util.Collection; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.math.BigDecimal; +import java.util.*; +import java.util.stream.Collectors; /** * 工资明细总Service业务层处理 @@ -31,6 +39,7 @@ import java.util.Collection; public class PaySalaryReportServiceImpl implements IPaySalaryReportService { private final PaySalaryReportMapper baseMapper; + private final PayEmployeeInfoMapper payEmployeeInfoMapper; /** * 查询工资明细总 @@ -158,4 +167,116 @@ public class PaySalaryReportServiceImpl implements IPaySalaryReportService { return baseMapper.deleteBatchIds(ids) > 0; } + @Override + public void export(HttpServletRequest request, HttpServletResponse response, List list) { + //创建excel表头 + List column = new ArrayList<>(); + column.add("年"); + column.add("月"); + column.add("部门名称"); + column.add("员工姓名"); + column.add("基本工资"); + column.add("实际出勤天数"); + column.add("实际出勤小时数"); + column.add("出勤工时"); + column.add("包活工时"); + column.add("加班工时"); + column.add("日工帮工工时"); + column.add("日工工资"); + column.add("包活工资"); + column.add("加班工资"); + column.add("帮工工资"); + + //解决导出不同月份数据 并且月份中补贴项不同的情况 + List allButie=new ArrayList<>(); + for(PaySalaryReportVo report : list){ + String jsonString = report.getAllButieData(); + List butieMoney = JSON.parseArray(jsonString, ButieMoneyAndTypes.class); + allButie.addAll(butieMoney); + } + List buties = allButie.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() + -> new TreeSet(Comparator.comparing(ButieMoneyAndTypes :: getBuTieName))), ArrayList::new)); + //获取type类型为1的补贴项 + List butie1 = buties.stream().filter(butieMoney -> "1".equals(butieMoney.getType())).collect(Collectors.toList()); + //获取type类型为0的补贴项 + List butie0 = buties.stream().filter(butieMoney -> "0".equals(butieMoney.getType())).collect(Collectors.toList()); + //循环遍历补贴项 + for (ButieMoneyAndTypes butie : butie1) { + column.add(butie.getBuTieName()); + } + column.add("应付工资"); + for (ButieMoneyAndTypes butie : butie0) { + column.add(butie.getBuTieName()); + } + //合并type补贴项 1的在前面 + butie1.addAll(butie0); + column.add("实发工资"); + column.add("开户行"); + column.add("银行卡号"); + column.add("备注说明"); //补贴项中有一项客户起名备注导致导出时被覆盖为真正的备注信息,这备注改名为备注说明避免上述情况 + + //表头对应的数据 + List> data = new ArrayList<>(); + + //遍历获取到的需要导出的数据,k要和表头一样 + for (int i = 0; i < list.size(); i++) { + Map dataMap = new HashMap<>(); + PaySalaryReportVo sr = list.get(i); + int j = 0; + dataMap.put(column.get(j), sr.getYear()); + dataMap.put(column.get(++j), sr.getMonth()); + dataMap.put(column.get(++j), sr.getDeptName()); + dataMap.put(column.get(++j), sr.getEmployeeName()); + dataMap.put(column.get(++j), new BigDecimal(sr.getBasicSalary().stripTrailingZeros().toPlainString())); + dataMap.put(column.get(++j), sr.getActuallyDays()); + dataMap.put(column.get(++j), sr.getActuallyHours()); + dataMap.put(column.get(++j), sr.getDayWorkHours()); + dataMap.put(column.get(++j), sr.getWorkOrderHours()); + dataMap.put(column.get(++j), sr.getOvertimeWorkHours()); + dataMap.put(column.get(++j), sr.getRigongHelpHours()); //客户要求添加日工帮工工时展示 + dataMap.put(column.get(++j), new BigDecimal(sr.getDayWorkPay().stripTrailingZeros().toPlainString())); + dataMap.put(column.get(++j), new BigDecimal(sr.getWorkOrderPay().stripTrailingZeros().toPlainString())); + dataMap.put(column.get(++j), new BigDecimal(sr.getOvertime().stripTrailingZeros().toPlainString())); + dataMap.put(column.get(++j), new BigDecimal(sr.getBanggongPay().stripTrailingZeros().toPlainString())); + boolean flag2 = false; + //循环遍历补贴项 + for (ButieMoneyAndTypes butie : butie1) { + // 获取该员工的补贴项 + List butieMoneyList = JSON.parseArray(sr.getAllButieData(), ButieMoneyAndTypes.class); + // 获取到循环列对应的补贴项 + List filterList = butieMoneyList.stream().filter(s -> s.getBuTieName().equals(butie.getBuTieName())).collect(Collectors.toList()); + //补贴项完毕 添加应付工资 后面继续添加扣减项 + if ("0".equals(butie.getType()) && !flag2) { // 扣减项 + flag2 = true; + dataMap.put(column.get(++j), new BigDecimal(sr.getShoudPayMoney().stripTrailingZeros().toPlainString())); + } + //判断是否存在该项补贴 不存在存0 + if(filterList!=null&&filterList.size()>0){ + // 获取对应的补贴金额并去掉金额末尾多余的0 + BigDecimal money = new BigDecimal(filterList.get(0).getMoney().stripTrailingZeros().toPlainString()); + + if (column.get(++j).equals(butie.getBuTieName())) { + dataMap.put(column.get(j), money); + } + }else{ + if (column.get(++j).equals(butie.getBuTieName())) { + dataMap.put(column.get(j), new BigDecimal("0").stripTrailingZeros().toPlainString()); + } + } + + } + dataMap.put(column.get(++j), new BigDecimal(sr.getActuallyPayMoney().stripTrailingZeros().toPlainString())); + PayEmployeeInfo empInfo = payEmployeeInfoMapper.selectSgrEmployeeInfoByIdHasDel(sr.getEmployeeId()); + if (ObjectUtil.isNotNull(empInfo)) { + dataMap.put(column.get(++j), empInfo.getOpeningBank()); + dataMap.put(column.get(++j), empInfo.getBankCardNumber()); + dataMap.put(column.get(++j), sr.getNote()); + data.add(dataMap); + } + } + + //调用导出工具类 + SalaryExportUtil.exportExcel("工资明细表", column, data, request, response); + + } } diff --git a/ruoyi-pay/src/main/java/com/ruoyi/pay/util/SalaryExportUtil.java b/ruoyi-pay/src/main/java/com/ruoyi/pay/util/SalaryExportUtil.java new file mode 100644 index 0000000..07127d9 --- /dev/null +++ b/ruoyi-pay/src/main/java/com/ruoyi/pay/util/SalaryExportUtil.java @@ -0,0 +1,81 @@ +package com.ruoyi.pay.util; + +import org.apache.poi.hssf.usermodel.HSSFFont; +import org.apache.poi.hssf.usermodel.HSSFRow; +import org.apache.poi.hssf.usermodel.HSSFSheet; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.CellStyle; +import org.apache.poi.ss.usermodel.FillPatternType; +import org.apache.poi.ss.usermodel.IndexedColors; +import sun.misc.BASE64Encoder; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.net.URLEncoder; +import java.util.List; +import java.util.Map; + +public class SalaryExportUtil { + /** + * @param sheetName 工作表的名字 + * @param column 列名 + * @param data 需要导出的数据 ( map的键定义为列的名字 一定要和column中的列明保持一致 ) + * @param response + */ + public static void exportExcel(String sheetName, List column, List> data, HttpServletRequest request, HttpServletResponse response){ + //创建工作薄 + HSSFWorkbook hssfWorkbook = new HSSFWorkbook(); + //创建sheet + HSSFSheet sheet = hssfWorkbook.createSheet(sheetName); + // 表头 + HSSFRow headRow = sheet.createRow(0); + //设置表头背景填充色 + CellStyle style = hssfWorkbook.createCellStyle(); + style.setFillForegroundColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setFillPattern(FillPatternType.SOLID_FOREGROUND); + //设置表头字体颜色 + HSSFFont font = hssfWorkbook.createFont(); + font.setColor(IndexedColors.WHITE.getIndex()); + font.setBold(true); + style.setFont(font); + + for (int i = 0; i < column.size(); i++){ + Cell titleCell =headRow.createCell(i); + titleCell.setCellStyle(style); + titleCell.setCellValue(column.get(i)); + } + + for (int i = 0; i < data.size(); i++) { + HSSFRow dataRow = sheet.createRow(sheet.getLastRowNum() + 1); + for (int x = 0; x < column.size(); x++) { + dataRow.createCell(x).setCellValue(data.get(i).get(column.get(x))==null?"":data.get(i).get(column.get(x)).toString()); + } + } + + response.setContentType("application/vnd.ms-excel"); + + try { + //获取浏览器名称 + String agent=request.getHeader("user-agent"); + String filename=sheetName+".xls"; + //不同浏览器需要对文件名做特殊处理 + if (agent.contains("Firefox")) { // 火狐浏览器 + filename = "=?UTF-8?B?" + + new BASE64Encoder().encode(filename.getBytes("utf-8")) + + "?="; + filename = filename.replaceAll("\r\n", ""); + } else { // IE及其他浏览器 + filename = URLEncoder.encode(filename, "utf-8"); + filename = filename.replace("+"," "); + } + //推送浏览器 + response.setHeader("Content-Disposition","attachment;filename="+filename); + hssfWorkbook.write(response.getOutputStream()); + } catch (Exception e) { + e.printStackTrace(); + } + } + +} + diff --git a/ruoyi-pay/src/main/resources/mapper/pay/PayButieEmplyeeMapper.xml b/ruoyi-pay/src/main/resources/mapper/pay/PayButieEmplyeeMapper.xml index 739fa85..feb5203 100644 --- a/ruoyi-pay/src/main/resources/mapper/pay/PayButieEmplyeeMapper.xml +++ b/ruoyi-pay/src/main/resources/mapper/pay/PayButieEmplyeeMapper.xml @@ -17,6 +17,4 @@ - - diff --git a/ruoyi-pay/src/main/resources/mapper/pay/PayDayWorkHoursMapper.xml b/ruoyi-pay/src/main/resources/mapper/pay/PayDayWorkHoursMapper.xml index a82cc39..7fba2df 100644 --- a/ruoyi-pay/src/main/resources/mapper/pay/PayDayWorkHoursMapper.xml +++ b/ruoyi-pay/src/main/resources/mapper/pay/PayDayWorkHoursMapper.xml @@ -53,12 +53,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and note = #{note} + + + where id = #{id} +