diff --git a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/controller/PmProjectController.java b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/controller/PmProjectController.java index ce4af03..adb2d46 100644 --- a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/controller/PmProjectController.java +++ b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/controller/PmProjectController.java @@ -1,12 +1,13 @@ package com.bonus.bmw.controller; +import com.bonus.bmw.domain.dto.FileBasicMsgDto; +import com.bonus.bmw.domain.dto.WebFileDto; import com.bonus.bmw.domain.po.BmSubContract; import com.bonus.bmw.domain.po.PmProject; -import com.bonus.bmw.domain.vo.PmProjectVo; -import com.bonus.bmw.domain.vo.ProMonthTable; -import com.bonus.bmw.domain.vo.ProMonthTableRosterVo; -import com.bonus.bmw.domain.vo.UserSalaryApprovalVo; +import com.bonus.bmw.domain.vo.*; import com.bonus.bmw.service.PmProjectService; +import com.bonus.common.core.utils.encryption.Sm4Utils; +import com.bonus.common.core.utils.json.FastJsonHelper; import com.bonus.common.core.utils.poi.ExcelUtil; import com.bonus.common.core.web.controller.BaseController; import com.bonus.common.core.web.domain.AjaxResult; @@ -20,6 +21,7 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.beanutils.BeanUtils; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; @@ -255,9 +257,9 @@ public class PmProjectController extends BaseController { // @RequiresPermissionsOrInnerAuth(innerAuth = @InnerAuth, requiresPermissions = @RequiresPermissions("pro:month:list")) @GetMapping("/getUserAttendanceList") @SysLog(title = "三表一册", businessType = OperaType.UPDATE, module = "三表一册->分包人员考勤明细") - public AjaxResult getUserAttendanceList(UserSalaryApprovalVo userSalaryApprovalVo) { + public AjaxResult getUserAttendanceList(UserAttendanceVo userAttendanceVo) { try { - List res = pmProjectService.getUserAttendanceList(userSalaryApprovalVo); + List res = pmProjectService.getUserAttendanceList(userAttendanceVo); return success(res); } catch (Exception e) { logger.error(e.toString(), e); @@ -266,4 +268,55 @@ public class PmProjectController extends BaseController { } + /** + * 农民工工资支付表 + */ + // @RequiresPermissionsOrInnerAuth(innerAuth = @InnerAuth, requiresPermissions = @RequiresPermissions("pro:month:list")) + @GetMapping("/getUserWagePayList") + @SysLog(title = "三表一册", businessType = OperaType.UPDATE, module = "三表一册->农民工工资支付表") + public AjaxResult getUserWagePayList(UserWagePayVo userWagePayVo) { + try { + List res = pmProjectService.getUserWagePayList(userWagePayVo); + return success(res); + } catch (Exception e) { + logger.error(e.toString(), e); + } + return error("系统异常,请联系管理员"); + } + + /** + * 封档 + */ + // @RequiresPermissionsOrInnerAuth(innerAuth = @InnerAuth, requiresPermissions = @RequiresPermissions("pro:month:list")) + @GetMapping("/updateProMonthTable") + @SysLog(title = "三表一册", businessType = OperaType.UPDATE, module = "三表一册->封档") + public AjaxResult updateProMonthTable(@Validated @RequestBody ProMonthTable proMonthTable) { + try { + int res = pmProjectService.updateProMonthTable(proMonthTable); + return toAjax(res); + } catch (Exception e) { + logger.error(e.toString(), e); + } + return error("系统异常,请联系管理员"); + } + + /** + * 回单上传 + */ + // @RequiresPermissionsOrInnerAuth(innerAuth = @InnerAuth, requiresPermissions = @RequiresPermissions("pro:month:list")) + @GetMapping("/updateProMonthTableRefund") + @SysLog(title = "三表一册", businessType = OperaType.UPDATE, module = "三表一册->封档") + public AjaxResult updateProMonthTableRefund(@RequestParam(value = "files",required = false) MultipartFile[] files, @RequestParam(value = "fileMsg",required = false) String fileMsg, @RequestParam(value = "params")String params) { + try { + params= Sm4Utils.decrypt(params); + fileMsg= Sm4Utils.decrypt(fileMsg); + List listFile = FastJsonHelper.jsonArrStrToBeanList(fileMsg, WebFileDto.class); + ProMonthTable proMonthTable = FastJsonHelper.jsonStrToBean(params, ProMonthTable.class); + int res = pmProjectService.updateProMonthTableRefund(proMonthTable,new FileBasicMsgDto(listFile, files)); + return toAjax(res); + } catch (Exception e) { + logger.error(e.toString(), e); + } + return error("系统异常,请联系管理员"); + } } diff --git a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/domain/vo/ProMonthTable.java b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/domain/vo/ProMonthTable.java index 14690bb..17917f6 100644 --- a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/domain/vo/ProMonthTable.java +++ b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/domain/vo/ProMonthTable.java @@ -3,6 +3,7 @@ package com.bonus.bmw.domain.vo; import lombok.Data; import java.math.BigDecimal; +import java.util.Date; /** * @author 马三炮 @@ -79,7 +80,7 @@ public class ProMonthTable { /** * 封单时间 */ - private String blockTime; + private Date blockTime; /** * 回传单上传状态 0未上传 1已上传 @@ -110,4 +111,9 @@ public class ProMonthTable { * 发放人员人次 */ private Integer payNum; + + /** + * 封档人 + */ + private Integer updateUser; } diff --git a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/domain/vo/UserWagePayVo.java b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/domain/vo/UserWagePayVo.java new file mode 100644 index 0000000..835b5ce --- /dev/null +++ b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/domain/vo/UserWagePayVo.java @@ -0,0 +1,143 @@ +package com.bonus.bmw.domain.vo; + +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @author 马三炮 + * @date 2025/9/19 + */ +@Data +public class UserWagePayVo { + + /** + * 主键 + */ + private Long id; + + /** + * 工程id + */ + private Long proId; + + /** + * 月份 + */ + private String month; + + /** + * 人员id + */ + private Long userId; + + /** + * 月度id + */ + private String monthId; + + /** + * 人员名称 + */ + private String userName; + + /** + * 花册id + */ + private String rosterId; + + /** + * 身份证号码 + */ + private String idCard; + + /** + * 班组id + */ + private Long teamId; + + /** + * 班组名称 + */ + private String teamName; + + /** + * 岗位 + */ + private String workName; + + /** + * 出勤天数 + */ + private int attendanceNum; + + /** + * 工资应发 + */ + private BigDecimal payMoney; + + /** + * 工资代扣 + */ + private BigDecimal deductMoney; + + /** + * 实发工资 + */ + private BigDecimal actualMoney; + + /** + * 开户银行 + */ + private String bankName; + + /** + * 收款银行联行号 + */ + private String bankNum; + + /** + * 银行卡号 + */ + private String bankCode; + + /** + * 是否与劳动合同约定一致 0 否 1是 + */ + private String isAccord; + + /** + * 本人签字 + */ + private String signature; + + /** + * 备注 + */ + private String remark; + + /** + * 转账日期 + */ + private String payDay; + + /** + * 银行凭证号 + */ + private String bankNumber; + + /** + * 创建时间 + */ + private String createTime; + + /** + * 修改时间 + */ + private String updateTime; + + /** + * 修改时间 + */ + private Long updateUser; +} diff --git a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/mapper/PmProjectMapper.java b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/mapper/PmProjectMapper.java index 4abebaf..bcb456a 100644 --- a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/mapper/PmProjectMapper.java +++ b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/mapper/PmProjectMapper.java @@ -3,10 +3,7 @@ package com.bonus.bmw.mapper; import com.bonus.bmw.domain.po.BmSubContract; import com.bonus.bmw.domain.po.PmProject; import com.bonus.bmw.domain.po.PmSubCompany; -import com.bonus.bmw.domain.vo.PmProjectVo; -import com.bonus.bmw.domain.vo.ProMonthTable; -import com.bonus.bmw.domain.vo.ProMonthTableRosterVo; -import com.bonus.bmw.domain.vo.UserSalaryApprovalVo; +import com.bonus.bmw.domain.vo.*; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -101,4 +98,19 @@ public interface PmProjectMapper { * 农民工实名制工资信息报审 */ List getUserSalaryApprovalList(UserSalaryApprovalVo userSalaryApprovalVo); + + /** + * 分包人员考勤明细 + */ + List getUserAttendanceList(UserAttendanceVo userAttendanceVo); + + /** + * 农民工工资支付表 + */ + List getUserWagePayList(UserWagePayVo userWagePayVo); + + /** + * 封档 + */ + int updateProMonthTable(ProMonthTable proMonthTable); } diff --git a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/PmProjectService.java b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/PmProjectService.java index 49a7c32..09090f9 100644 --- a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/PmProjectService.java +++ b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/PmProjectService.java @@ -1,11 +1,9 @@ package com.bonus.bmw.service; +import com.bonus.bmw.domain.dto.FileBasicMsgDto; import com.bonus.bmw.domain.po.BmSubContract; import com.bonus.bmw.domain.po.PmProject; -import com.bonus.bmw.domain.vo.PmProjectVo; -import com.bonus.bmw.domain.vo.ProMonthTable; -import com.bonus.bmw.domain.vo.ProMonthTableRosterVo; -import com.bonus.bmw.domain.vo.UserSalaryApprovalVo; +import com.bonus.bmw.domain.vo.*; import java.util.List; import java.util.Map; @@ -72,5 +70,23 @@ public interface PmProjectService { */ List getUserSalaryApprovalList(UserSalaryApprovalVo userSalaryApprovalVo); - List getUserAttendanceList(UserSalaryApprovalVo userSalaryApprovalVo); + /** + * 分包人员考勤明细 + */ + List getUserAttendanceList(UserAttendanceVo userAttendanceVo); + + /** + * 农民工工资支付表 + */ + List getUserWagePayList(UserWagePayVo userWagePayVo); + + /** + * 封档 + */ + int updateProMonthTable(ProMonthTable proMonthTable); + + /** + * 回单上传 + */ + int updateProMonthTableRefund(ProMonthTable proMonthTable, FileBasicMsgDto fileBasicMsgDto); } diff --git a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/impl/PmProjectServiceImpl.java b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/impl/PmProjectServiceImpl.java index 8c969e3..a381ae3 100644 --- a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/impl/PmProjectServiceImpl.java +++ b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/impl/PmProjectServiceImpl.java @@ -1,5 +1,7 @@ package com.bonus.bmw.service.impl; +import com.bonus.bmw.domain.dto.FileBasicMsgDto; +import com.bonus.bmw.domain.dto.WebFileDto; import com.bonus.bmw.domain.po.BmSubContract; import com.bonus.bmw.domain.po.PmProject; import com.bonus.bmw.domain.po.PmSubCompany; @@ -7,8 +9,11 @@ import com.bonus.bmw.domain.vo.*; import com.bonus.bmw.mapper.BmSubContractMapper; import com.bonus.bmw.mapper.PmProjectMapper; import com.bonus.bmw.service.PmProjectService; +import com.bonus.common.core.constant.Constants; import com.bonus.common.core.utils.StringUtils; import com.bonus.common.security.utils.SecurityUtils; +import com.bonus.system.api.domain.SysUser; +import com.bonus.system.api.model.UploadFileVo; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -32,6 +37,11 @@ public class PmProjectServiceImpl implements PmProjectService { @Resource private BmSubContractMapper bmSubContractMapper; + + + @Resource + private FileUploadUtils fileUploadUtils; + /** * 标段工程列表 */ @@ -188,8 +198,52 @@ public class PmProjectServiceImpl implements PmProjectService { return pmProjectMapper.getUserSalaryApprovalList(userSalaryApprovalVo); } + /** + * 分包人员考勤明细 + */ @Override - public List getUserAttendanceList(UserSalaryApprovalVo userSalaryApprovalVo) { - return null; + public List getUserAttendanceList(UserAttendanceVo userAttendanceVo) { + return pmProjectMapper.getUserAttendanceList(userAttendanceVo); + } + + /** + * 农民工工资支付表 + */ + @Override + public List getUserWagePayList(UserWagePayVo userWagePayVo) { + return pmProjectMapper.getUserWagePayList(userWagePayVo); + } + + + /** + * 封档 + */ + @Override + public int updateProMonthTable(ProMonthTable proMonthTable) { + proMonthTable.setBlockTime(new Date()); + SysUser sysUser = SecurityUtils.getLoginUser().getSysUser(); + proMonthTable.setUpdateUser(sysUser.getUserId().intValue()); + return pmProjectMapper.updateProMonthTable(proMonthTable); + } + + /** + * 回单上传 + */ + @Override + @Transactional + public int updateProMonthTableRefund(ProMonthTable proMonthTable, FileBasicMsgDto fileBasicMsgDto) { + proMonthTable.setRefundStatus("1"); + int res = pmProjectMapper.updateProMonthTable(proMonthTable); + //添加到文件库和minio上 + if(res > 0 && StringUtils.isNotNull(fileBasicMsgDto.getFiles())){ + //存文件 + List fileMsg = fileBasicMsgDto.getFileMsg(); + String[] type = new String[fileMsg.size()]; + for (int i = 0; i < fileMsg.size(); i++) { + type[i] = fileMsg.get(i).getType(); + } + List uploadFileVos = fileUploadUtils.uploadFile(fileBasicMsgDto.getFiles(), Constants.TB_PRO_MONTH_TABLE, proMonthTable.getId().toString(), type,"", ""); + } + return res; } } diff --git a/bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/PmProjectMapper.xml b/bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/PmProjectMapper.xml index 35aa081..1d934d6 100644 --- a/bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/PmProjectMapper.xml +++ b/bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/PmProjectMapper.xml @@ -69,6 +69,21 @@ update pm_main_project set pro_status = #{proStatus} where id = #{mainProId} + + update tb_pro_month_table + + + update_user = #{updateUser}, + + + block_time = #{blockTime}, + + + refund_status = #{refundStatus}, + + + where id = #{id} + update pm_project set is_active = '0' where id = #{id} @@ -229,7 +244,7 @@ + +