三表一册

This commit is contained in:
马三炮 2025-09-19 14:40:00 +08:00
parent 9709fc39a1
commit 78b58fa7d6
7 changed files with 329 additions and 19 deletions

View File

@ -1,12 +1,13 @@
package com.bonus.bmw.controller; 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.BmSubContract;
import com.bonus.bmw.domain.po.PmProject; import com.bonus.bmw.domain.po.PmProject;
import com.bonus.bmw.domain.vo.PmProjectVo; import com.bonus.bmw.domain.vo.*;
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.service.PmProjectService; 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.utils.poi.ExcelUtil;
import com.bonus.common.core.web.controller.BaseController; import com.bonus.common.core.web.controller.BaseController;
import com.bonus.common.core.web.domain.AjaxResult; 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.apache.commons.beanutils.BeanUtils;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
@ -255,9 +257,9 @@ public class PmProjectController extends BaseController {
// @RequiresPermissionsOrInnerAuth(innerAuth = @InnerAuth, requiresPermissions = @RequiresPermissions("pro:month:list")) // @RequiresPermissionsOrInnerAuth(innerAuth = @InnerAuth, requiresPermissions = @RequiresPermissions("pro:month:list"))
@GetMapping("/getUserAttendanceList") @GetMapping("/getUserAttendanceList")
@SysLog(title = "三表一册", businessType = OperaType.UPDATE, module = "三表一册->分包人员考勤明细") @SysLog(title = "三表一册", businessType = OperaType.UPDATE, module = "三表一册->分包人员考勤明细")
public AjaxResult getUserAttendanceList(UserSalaryApprovalVo userSalaryApprovalVo) { public AjaxResult getUserAttendanceList(UserAttendanceVo userAttendanceVo) {
try { try {
List<UserSalaryApprovalVo> res = pmProjectService.getUserAttendanceList(userSalaryApprovalVo); List<UserAttendanceVo> res = pmProjectService.getUserAttendanceList(userAttendanceVo);
return success(res); return success(res);
} catch (Exception e) { } catch (Exception e) {
logger.error(e.toString(), 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<UserWagePayVo> 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<WebFileDto> 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("系统异常,请联系管理员");
}
} }

View File

@ -3,6 +3,7 @@ package com.bonus.bmw.domain.vo;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date;
/** /**
* @author 马三炮 * @author 马三炮
@ -79,7 +80,7 @@ public class ProMonthTable {
/** /**
* 封单时间 * 封单时间
*/ */
private String blockTime; private Date blockTime;
/** /**
* 回传单上传状态 0未上传 1已上传 * 回传单上传状态 0未上传 1已上传
@ -110,4 +111,9 @@ public class ProMonthTable {
* 发放人员人次 * 发放人员人次
*/ */
private Integer payNum; private Integer payNum;
/**
* 封档人
*/
private Integer updateUser;
} }

View File

@ -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;
}

View File

@ -3,10 +3,7 @@ package com.bonus.bmw.mapper;
import com.bonus.bmw.domain.po.BmSubContract; import com.bonus.bmw.domain.po.BmSubContract;
import com.bonus.bmw.domain.po.PmProject; import com.bonus.bmw.domain.po.PmProject;
import com.bonus.bmw.domain.po.PmSubCompany; import com.bonus.bmw.domain.po.PmSubCompany;
import com.bonus.bmw.domain.vo.PmProjectVo; import com.bonus.bmw.domain.vo.*;
import com.bonus.bmw.domain.vo.ProMonthTable;
import com.bonus.bmw.domain.vo.ProMonthTableRosterVo;
import com.bonus.bmw.domain.vo.UserSalaryApprovalVo;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
@ -101,4 +98,19 @@ public interface PmProjectMapper {
* 农民工实名制工资信息报审 * 农民工实名制工资信息报审
*/ */
List<UserSalaryApprovalVo> getUserSalaryApprovalList(UserSalaryApprovalVo userSalaryApprovalVo); List<UserSalaryApprovalVo> getUserSalaryApprovalList(UserSalaryApprovalVo userSalaryApprovalVo);
/**
* 分包人员考勤明细
*/
List<UserAttendanceVo> getUserAttendanceList(UserAttendanceVo userAttendanceVo);
/**
* 农民工工资支付表
*/
List<UserWagePayVo> getUserWagePayList(UserWagePayVo userWagePayVo);
/**
* 封档
*/
int updateProMonthTable(ProMonthTable proMonthTable);
} }

View File

@ -1,11 +1,9 @@
package com.bonus.bmw.service; 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.BmSubContract;
import com.bonus.bmw.domain.po.PmProject; import com.bonus.bmw.domain.po.PmProject;
import com.bonus.bmw.domain.vo.PmProjectVo; import com.bonus.bmw.domain.vo.*;
import com.bonus.bmw.domain.vo.ProMonthTable;
import com.bonus.bmw.domain.vo.ProMonthTableRosterVo;
import com.bonus.bmw.domain.vo.UserSalaryApprovalVo;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -72,5 +70,23 @@ public interface PmProjectService {
*/ */
List<UserSalaryApprovalVo> getUserSalaryApprovalList(UserSalaryApprovalVo userSalaryApprovalVo); List<UserSalaryApprovalVo> getUserSalaryApprovalList(UserSalaryApprovalVo userSalaryApprovalVo);
List<UserSalaryApprovalVo> getUserAttendanceList(UserSalaryApprovalVo userSalaryApprovalVo); /**
* 分包人员考勤明细
*/
List<UserAttendanceVo> getUserAttendanceList(UserAttendanceVo userAttendanceVo);
/**
* 农民工工资支付表
*/
List<UserWagePayVo> getUserWagePayList(UserWagePayVo userWagePayVo);
/**
* 封档
*/
int updateProMonthTable(ProMonthTable proMonthTable);
/**
* 回单上传
*/
int updateProMonthTableRefund(ProMonthTable proMonthTable, FileBasicMsgDto fileBasicMsgDto);
} }

View File

@ -1,5 +1,7 @@
package com.bonus.bmw.service.impl; 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.BmSubContract;
import com.bonus.bmw.domain.po.PmProject; import com.bonus.bmw.domain.po.PmProject;
import com.bonus.bmw.domain.po.PmSubCompany; 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.BmSubContractMapper;
import com.bonus.bmw.mapper.PmProjectMapper; import com.bonus.bmw.mapper.PmProjectMapper;
import com.bonus.bmw.service.PmProjectService; import com.bonus.bmw.service.PmProjectService;
import com.bonus.common.core.constant.Constants;
import com.bonus.common.core.utils.StringUtils; import com.bonus.common.core.utils.StringUtils;
import com.bonus.common.security.utils.SecurityUtils; 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 lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -32,6 +37,11 @@ public class PmProjectServiceImpl implements PmProjectService {
@Resource @Resource
private BmSubContractMapper bmSubContractMapper; private BmSubContractMapper bmSubContractMapper;
@Resource
private FileUploadUtils fileUploadUtils;
/** /**
* 标段工程列表 * 标段工程列表
*/ */
@ -188,8 +198,52 @@ public class PmProjectServiceImpl implements PmProjectService {
return pmProjectMapper.getUserSalaryApprovalList(userSalaryApprovalVo); return pmProjectMapper.getUserSalaryApprovalList(userSalaryApprovalVo);
} }
/**
* 分包人员考勤明细
*/
@Override @Override
public List<UserSalaryApprovalVo> getUserAttendanceList(UserSalaryApprovalVo userSalaryApprovalVo) { public List<UserAttendanceVo> getUserAttendanceList(UserAttendanceVo userAttendanceVo) {
return null; return pmProjectMapper.getUserAttendanceList(userAttendanceVo);
}
/**
* 农民工工资支付表
*/
@Override
public List<UserWagePayVo> 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<WebFileDto> fileMsg = fileBasicMsgDto.getFileMsg();
String[] type = new String[fileMsg.size()];
for (int i = 0; i < fileMsg.size(); i++) {
type[i] = fileMsg.get(i).getType();
}
List<UploadFileVo> uploadFileVos = fileUploadUtils.uploadFile(fileBasicMsgDto.getFiles(), Constants.TB_PRO_MONTH_TABLE, proMonthTable.getId().toString(), type,"", "");
}
return res;
} }
} }

View File

@ -69,6 +69,21 @@
<update id="updateMainProject"> <update id="updateMainProject">
update pm_main_project set pro_status = #{proStatus} where id = #{mainProId} update pm_main_project set pro_status = #{proStatus} where id = #{mainProId}
</update> </update>
<update id="updateProMonthTable">
update tb_pro_month_table
<trim prefix="set" suffixOverrides=",">
<if test="updateUser!= null " >
update_user = #{updateUser},
</if>
<if test="blockTime!= null " >
block_time = #{blockTime},
</if>
<if test="refundStatus!= null " >
refund_status = #{refundStatus},
</if>
</trim>
where id = #{id}
</update>
<delete id="delProject"> <delete id="delProject">
update pm_project set is_active = '0' where id = #{id} update pm_project set is_active = '0' where id = #{id}
</delete> </delete>
@ -229,7 +244,7 @@
</if> </if>
</select> </select>
<select id="getUserSalaryApprovalList" resultType="com.bonus.bmw.domain.vo.UserSalaryApprovalVo"> <select id="getUserSalaryApprovalList" resultType="com.bonus.bmw.domain.vo.UserSalaryApprovalVo">
select id,roster_id,pro_id,month_id,month,team_id,team_name,user_name,user_id,id_card,phone,sub_id, select id,roster_id,pro_id,month_id,`month`,team_id,team_name,user_name,user_id,id_card,phone,sub_id,
sub_name,bank_name,bank_code,bank_num,cons_id,price_wage,payment,pay_day,remark sub_name,bank_name,bank_code,bank_num,cons_id,price_wage,payment,pay_day,remark
from tb_user_salary_approval where month_id = #{monthId} from tb_user_salary_approval where month_id = #{monthId}
<if test="bankCode != null"> <if test="bankCode != null">
@ -242,4 +257,15 @@
and user_name LIKE CONCAT('%', #{userName}, '%') and user_name LIKE CONCAT('%', #{userName}, '%')
</if> </if>
</select> </select>
<select id="getUserAttendanceList" resultType="com.bonus.bmw.domain.vo.UserAttendanceVo">
select id,month_id,pro_id,`month`,pro_name,month_day,roster_id,sub_id,sub_name,user_name,
id_card,work_name,work_id,attendance_day,check_day,repair_num,attendance_num
from tb_user_attendance where month_id = #{monthId}
</select>
<select id="getUserWagePayList" resultType="com.bonus.bmw.domain.vo.UserWagePayVo">
select id,pro_id,`month`,user_id,month_id,user_name,roster_id,id_card,team_id,team_name,work_name,
attendance_num,pay_money,deduct_money,actual_money,bank_name,bank_num,bank_code,is_accord,
signature,remark,pay_day,bank_number,create_time,update_time,update_user
from tb_user_wage_pay where month_id = #{monthId}
</select>
</mapper> </mapper>