diff --git a/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/constant/Constants.java b/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/constant/Constants.java index 666047b..bf89665 100644 --- a/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/constant/Constants.java +++ b/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/constant/Constants.java @@ -196,4 +196,11 @@ public class Constants */ public static final String BM_WORKER_BLACK = "bm_worker_black"; + /** + * 工程月度数据 + */ + public static final String TB_PRO_MONTH_TABLE = "tb_pro_month_table"; + + + } diff --git a/bonus-modules/bonus-bmw/pom.xml b/bonus-modules/bonus-bmw/pom.xml index fde1dc8..4138145 100644 --- a/bonus-modules/bonus-bmw/pom.xml +++ b/bonus-modules/bonus-bmw/pom.xml @@ -119,6 +119,11 @@ org.springframework.boot spring-boot-starter-websocket + + com.alibaba + easyexcel + 3.1.1 + @@ -142,4 +147,4 @@ - \ No newline at end of file + 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 a40a855..c635d27 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,5 +1,8 @@ package com.bonus.bmw.controller; +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.ExcelWriter; +import com.alibaba.excel.write.metadata.WriteSheet; import com.bonus.bmw.domain.dto.FileBasicMsgDto; import com.bonus.bmw.domain.dto.WebFileDto; import com.bonus.bmw.domain.po.BmSubContract; @@ -25,6 +28,7 @@ import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; +import java.net.URLEncoder; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -175,15 +179,15 @@ public class PmProjectController extends BaseController { @RequiresPermissionsOrInnerAuth(innerAuth = @InnerAuth, requiresPermissions = @RequiresPermissions("pro:month:list")) @GetMapping("/getThreeForms") @SysLog(title = "三表一册", businessType = OperaType.UPDATE, module = "三表一册->三表一册列表") - public AjaxResult getThreeForms(ProMonthTable proMonthTable) { + public TableDataInfo getThreeForms(ProMonthTable proMonthTable) { try { startPage(); List res = pmProjectService.getThreeForms(proMonthTable); - return success(res); + return getDataTable(res); } catch (Exception e) { logger.error(e.toString(), e); } - return error("系统异常,请联系管理员"); + return getDataTableError(new ArrayList<>()); } /** @@ -192,15 +196,15 @@ public class PmProjectController extends BaseController { // @RequiresPermissionsOrInnerAuth(innerAuth = @InnerAuth, requiresPermissions = @RequiresPermissions("pro:month:list")) @GetMapping("/getProMonthTableList") @SysLog(title = "三表一册", businessType = OperaType.UPDATE, module = "三表一册->每月数据") - public AjaxResult getProMonthTableList(BmSubContract bmSubContract) { + public TableDataInfo getProMonthTableList(BmSubContract bmSubContract) { try { startPage(); - List res = pmProjectService.getProMonthTableList(bmSubContract); - return success(res); + List res = pmProjectService.getProMonthTableList(bmSubContract); + return getDataTable(res); } catch (Exception e) { logger.error(e.toString(), e); } - return error("系统异常,请联系管理员"); + return getDataTableError(new ArrayList<>()); } /** @@ -326,7 +330,7 @@ public class PmProjectController extends BaseController { // @RequiresPermissionsOrInnerAuth(innerAuth = @InnerAuth, requiresPermissions = @RequiresPermissions("pro:month:list")) @GetMapping("/getProMonthTableById") @SysLog(title = "三表一册", businessType = OperaType.UPDATE, module = "三表一册->月度数据详情") - public AjaxResult getProMonthTableById(@Validated @RequestBody ProMonthTable proMonthTable) { + public AjaxResult getProMonthTableById(ProMonthTable proMonthTable) { try { ProMonthTable res = pmProjectService.getProMonthTableById(proMonthTable); return success(res); @@ -335,4 +339,116 @@ public class PmProjectController extends BaseController { } return error("系统异常,请联系管理员"); } + + /** + * 导出农民工花名册 + */ + @PostMapping("/exportProMonthTableRoster") + @SysLog(title = "三表一册", businessType = OperaType.EXPORT, module = "三表一册->导出农民工花名册") + public void exportProMonthTableRoster(HttpServletResponse response, ProMonthTableRosterVo proMonthTableRosterVo) { + try { + List res = pmProjectService.getProMonthTableRosterList(proMonthTableRosterVo); + ExcelUtil util = new ExcelUtil(ProMonthTableRosterVo.class); + util.exportExcel(response, res, "导出农民工花名册"); + } catch (Exception e) { + logger.error(e.toString(), e); + } + } + + /** + * 导出农民工实名制工资信息报审 + */ + @PostMapping("/exportUserSalaryApproval") + @SysLog(title = "三表一册", businessType = OperaType.EXPORT, module = "三表一册->导出农民工实名制工资信息报审") + public void exportUserSalaryApproval(HttpServletResponse response, UserSalaryApprovalVo userSalaryApprovalVo) { + try { + List res = pmProjectService.getUserSalaryApprovalList(userSalaryApprovalVo); + ExcelUtil util = new ExcelUtil(UserSalaryApprovalVo.class); + util.exportExcel(response, res, "农民工实名制工资信息报审"); + } catch (Exception e) { + logger.error(e.toString(), e); + } + } + + /** + * 导出分包人员考勤明细 + */ + @PostMapping("/exportUserAttendance") + @SysLog(title = "三表一册", businessType = OperaType.EXPORT, module = "三表一册->导出分包人员考勤明细") + public void exportUserAttendance(HttpServletResponse response, UserAttendanceVo userAttendanceVo) { + try { + List res = pmProjectService.getUserAttendanceList(userAttendanceVo); + ExcelUtil util = new ExcelUtil(UserAttendanceVo.class); + util.exportExcel(response, res, "分包人员考勤明细"); + } catch (Exception e) { + logger.error(e.toString(), e); + } + } + + /** + * 导出农民工工资支付表 + */ + @PostMapping("/exportUserWagePay") + @SysLog(title = "三表一册", businessType = OperaType.EXPORT, module = "三表一册->导出农民工工资支付表") + public void exportUserWagePay(HttpServletResponse response, UserWagePayVo userWagePayVo) { + try { + List res = pmProjectService.getUserWagePayList(userWagePayVo); + ExcelUtil util = new ExcelUtil(UserWagePayVo.class); + util.exportExcel(response, res, "农民工工资支付表"); + } catch (Exception e) { + logger.error(e.toString(), e); + } + } + + /** + * 导出三表一册 + */ + @PostMapping("/exportThreeAndOne") + @SysLog(title = "三表一册", businessType = OperaType.EXPORT, module = "三表一册->导出三表一册") + public void exportThreeAndOne(HttpServletResponse response, UserWagePayVo userWagePayVo) { + try { + // 设置响应头 + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + response.setCharacterEncoding("utf-8"); + String fileName = URLEncoder.encode("三表一册", "UTF-8").replaceAll("\\+", "%20"); + response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx"); + //农民工工资支付表 + List userWagePayList = pmProjectService.getUserWagePayList(userWagePayVo); + //农民工实名制工资信息报审 + UserSalaryApprovalVo userSalaryApprovalVo = new UserSalaryApprovalVo(); + List userSalaryApprovalList = pmProjectService.getUserSalaryApprovalList(userSalaryApprovalVo); + //分包人员考勤明细 + UserAttendanceVo userAttendanceVo = new UserAttendanceVo(); + List userAttendanceList = pmProjectService.getUserAttendanceList(userAttendanceVo); + //农民工花名册 + ProMonthTableRosterVo proMonthTableRosterVo = new ProMonthTableRosterVo(); + List proMonthTableRosterList = pmProjectService.getProMonthTableRosterList(proMonthTableRosterVo); + // 获取ExcelWriter对象 + ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).build(); + // 第一个sheet + WriteSheet writeSheet1 = EasyExcel.writerSheet(0, "农民工工资支付") + .head(UserWagePayVo.class) + .build(); + excelWriter.write(userWagePayList, writeSheet1); + // 第二个sheet + WriteSheet writeSheet2 = EasyExcel.writerSheet(1, "农民工实名制工资信息报审") + .head(UserSalaryApprovalVo.class) + .build(); + excelWriter.write(userSalaryApprovalList, writeSheet2); + // 第三个sheet + WriteSheet writeSheet3 = EasyExcel.writerSheet(2, "分包人员考勤明细") + .head(UserAttendanceVo.class) + .build(); + excelWriter.write(userAttendanceList, writeSheet3); + // 第四个sheet + WriteSheet writeSheet4 = EasyExcel.writerSheet(3, "农民工花名册") + .head(ProMonthTableRosterVo.class) + .build(); + excelWriter.write(proMonthTableRosterList, writeSheet4); + // 关闭流 + excelWriter.finish(); + } catch (Exception e) { + logger.error(e.toString(), e); + } + } } 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 d464ce6..49efe76 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 @@ -123,4 +123,9 @@ public class ProMonthTable { * 文件列表 */ List contractFile; + + /** + * 工程状态 字典表选,但直接存值 + */ + private String proStatus; } diff --git a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/domain/vo/ProMonthTableRosterVo.java b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/domain/vo/ProMonthTableRosterVo.java index cda7b58..c74a52a 100644 --- a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/domain/vo/ProMonthTableRosterVo.java +++ b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/domain/vo/ProMonthTableRosterVo.java @@ -1,5 +1,6 @@ package com.bonus.bmw.domain.vo; +import com.bonus.common.core.annotation.Excel; import lombok.Data; /** @@ -37,6 +38,7 @@ public class ProMonthTableRosterVo { /** *分包单位名称 */ + @Excel(name = "分包单位",sort = 1) private String subName; /** @@ -47,6 +49,7 @@ public class ProMonthTableRosterVo { /** *班组名称 */ + @Excel(name = "班组",sort = 2) private String teamName; /** @@ -57,65 +60,78 @@ public class ProMonthTableRosterVo { /** *用户名称 */ + @Excel(name = "姓名",sort = 3) private String userName; /** *性别 0 女 1男 */ + @Excel(name = "性别",sort = 4,readConverterExp = "0=女,1=男") private String sex; /** *工种 */ + private String workId; /** *工种名称 */ + @Excel(name = "职务/工种",sort = 5) private String workName; /** *发证单位及编号 */ + @Excel(name = "发证单位及证书号",sort = 6) private String unitAndCode; /** *有效期 */ + @Excel(name = "有效期",sort = 7) private String period; /** *身份证号码 */ + @Excel(name = "公民身份证号",sort = 8) private String idCard; /** *户籍所在地 */ + @Excel(name = "户籍地址",sort = 9) private String residence; /** *手机号 */ + @Excel(name = "手机号",sort = 10) private String phone; /** *备注 */ + @Excel(name = "备注",sort = 14) private String remark; /** *出场时间 */ + @Excel(name = "离场时间",sort = 12) private String outTime; /** *在岗情况 */ + @Excel(name = "在岗情况",sort = 13) private String onDuty; /** *入场时间 */ + @Excel(name = "入场时间",sort = 11) private String inTime; } diff --git a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/domain/vo/UserAttendanceVo.java b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/domain/vo/UserAttendanceVo.java index 4756e46..0a70453 100644 --- a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/domain/vo/UserAttendanceVo.java +++ b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/domain/vo/UserAttendanceVo.java @@ -1,5 +1,6 @@ package com.bonus.bmw.domain.vo; +import com.bonus.common.core.annotation.Excel; import lombok.Data; /** @@ -32,6 +33,7 @@ public class UserAttendanceVo { /** * 工程名称 */ + @Excel(name = "项目名称",sort = 1) private String proName; /** @@ -52,21 +54,25 @@ public class UserAttendanceVo { /** * 分包名称 */ + @Excel(name = "分包队伍全称",sort = 2) private String subName; /** * 姓名 */ + @Excel(name = "姓名",sort = 3) private String userName; /** * 身份证号码 */ + @Excel(name = "身份证号码",sort = 4) private String idCard; /** * 工种名称 */ + @Excel(name = "职务/工种",sort = 5) private String workName; /** diff --git a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/domain/vo/UserSalaryApprovalVo.java b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/domain/vo/UserSalaryApprovalVo.java index 922e5b8..590a929 100644 --- a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/domain/vo/UserSalaryApprovalVo.java +++ b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/domain/vo/UserSalaryApprovalVo.java @@ -1,5 +1,6 @@ package com.bonus.bmw.domain.vo; +import com.bonus.common.core.annotation.Excel; import lombok.Data; import java.math.BigDecimal; @@ -44,11 +45,13 @@ public class UserSalaryApprovalVo { /** * 班组名称 */ + @Excel(name = "所在班组",sort = 2) private String teamName; /** * 姓名 */ + @Excel(name = "姓名",sort = 1) private String userName; /** @@ -59,11 +62,13 @@ public class UserSalaryApprovalVo { /** * 身份证号码 */ + @Excel(name = "身份证号",sort = 3) private String idCard; /** * 联系方式 */ + @Excel(name = "联系方式",sort = 10) private String phone; /** @@ -79,16 +84,19 @@ public class UserSalaryApprovalVo { /** * 开户银行 */ + @Excel(name = "开户银行",sort = 4) private String bankName; /** * 银行卡号 */ + @Excel(name = "银行卡号",sort = 6) private String bankCode; /** * 收款银行联行号 */ + @Excel(name = "收款银行联行号",sort = 5) private String bankNum; /** @@ -99,20 +107,24 @@ public class UserSalaryApprovalVo { /** * 工资标准 */ + @Excel(name = "工资标准(元/日)",sort = 7) private BigDecimal priceWage; /** * 支付周期 */ + @Excel(name = "支付周期",sort = 8) private String payment; /** * 支付日期 */ + @Excel(name = "支付日期",sort = 9) private String payDay; /** * 备注 */ + @Excel(name = "备注",sort = 11) private String remark; } 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 index 835b5ce..d5fe2c7 100644 --- 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 @@ -1,5 +1,6 @@ package com.bonus.bmw.domain.vo; +import com.bonus.common.core.annotation.Excel; import lombok.Data; import java.math.BigDecimal; @@ -39,6 +40,7 @@ public class UserWagePayVo { /** * 人员名称 */ + @Excel(name = "姓名",sort = 1) private String userName; /** @@ -49,6 +51,7 @@ public class UserWagePayVo { /** * 身份证号码 */ + @Excel(name = "身份证号",sort = 2) private String idCard; /** @@ -59,71 +62,85 @@ public class UserWagePayVo { /** * 班组名称 */ + @Excel(name = "所在班组",sort = 3) private String teamName; /** * 岗位 */ + @Excel(name = "岗位",sort = 4) private String workName; /** * 出勤天数 */ + @Excel(name = "出勤天数",sort = 5) private int attendanceNum; /** * 工资应发 */ + @Excel(name = "应发工资",sort = 6) private BigDecimal payMoney; /** * 工资代扣 */ + @Excel(name = "其中代扣/代缴",sort = 7) private BigDecimal deductMoney; /** * 实发工资 */ + @Excel(name = "实发工资",sort = 8) private BigDecimal actualMoney; /** * 开户银行 */ + @Excel(name = "开户银行",sort = 9) private String bankName; /** * 收款银行联行号 */ + @Excel(name = "收款银行联行号",sort = 10) private String bankNum; /** * 银行卡号 */ + @Excel(name = "银行卡号",sort = 11) private String bankCode; /** * 是否与劳动合同约定一致 0 否 1是 */ + @Excel(name = "是否与劳动合同约定一致",sort = 12,readConverterExp = "0=否,1=是") private String isAccord; /** * 本人签字 */ + @Excel(name = "本人签字",sort = 13) private String signature; /** * 备注 */ + @Excel(name = "备注",sort = 14) private String remark; /** * 转账日期 */ + @Excel(name = "转账日期",sort = 15) private String payDay; /** * 银行凭证号 */ + @Excel(name = "银行凭证号",sort = 16) private String bankNumber; /** 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 c935987..23e7a79 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 @@ -58,7 +58,7 @@ public interface PmProjectService { /** * 每月数据 */ - List getProMonthTableList(BmSubContract bmSubContract); + List getProMonthTableList(BmSubContract bmSubContract); /** * 农民工花名册 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 e22719f..b6b62ab 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 @@ -178,7 +178,7 @@ public class PmProjectServiceImpl implements PmProjectService { * 每月数据 */ @Override - public List getProMonthTableList(BmSubContract bmSubContract) { + public List getProMonthTableList(BmSubContract bmSubContract) { return pmProjectMapper.getProMonthTableList(bmSubContract); } 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 9301e32..9592e12 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 @@ -201,7 +201,6 @@ count(tpmt.id) as tableMonth, sum(tpmt.sub_num) as subNum, sum(tpmt.team_num) as teamNum, - sum(tpmt.team_num) as teamNum, sum(tpmt.pay_num) as payNum, sum(tpmt.net_salary) as netSalary, pp.pro_status as proStatus @@ -220,7 +219,7 @@ select id,pro_name,pro_status,pro_type,vol_level,start_time,end_time,pro_address from pm_project where id = #{proId} - select id,pro_id,table_month,roster_num,attendance_num,repair_num,salary_num,sub_num, gross_salary,net_salary,status,block_time,refund_status,team_num,refund_user, refund_time,is_update,pay_num @@ -239,7 +238,7 @@ and work_name LIKE CONCAT('%', #{workName}, '%') - + and on_duty = #{onDuty}