diff --git a/bonus-modules/bonus-job/src/main/java/com/bonus/job/domain/ThreeTableOneRosterPo.java b/bonus-modules/bonus-job/src/main/java/com/bonus/job/domain/ThreeTableOneRosterPo.java index a7acb05..7ee9d89 100644 --- a/bonus-modules/bonus-job/src/main/java/com/bonus/job/domain/ThreeTableOneRosterPo.java +++ b/bonus-modules/bonus-job/src/main/java/com/bonus/job/domain/ThreeTableOneRosterPo.java @@ -22,6 +22,7 @@ public class ThreeTableOneRosterPo { //1.花名册 private String firstEinTime; private String lastExitTime; + private String isOnJob; //2.农民工实名制工资信息报审表 private String bankName; private String bankCardCode; @@ -36,6 +37,7 @@ public class ThreeTableOneRosterPo { private String einDay; private String attDay; private String isRepair; + private Integer monthDay; private String attendanceDay; private Integer checkDay; private Integer repairNum; diff --git a/bonus-modules/bonus-job/src/main/java/com/bonus/job/mapper/WorkerJobMapper.java b/bonus-modules/bonus-job/src/main/java/com/bonus/job/mapper/WorkerJobMapper.java index 354f3db..6ed99c7 100644 --- a/bonus-modules/bonus-job/src/main/java/com/bonus/job/mapper/WorkerJobMapper.java +++ b/bonus-modules/bonus-job/src/main/java/com/bonus/job/mapper/WorkerJobMapper.java @@ -77,4 +77,19 @@ public interface WorkerJobMapper { * @return */ List getWorkerPayData(@Param("attMonth") String attMonth, @Param("proId") Integer proId); + + /** + * 插入数据 + * @param listRoster + */ + void insertWorkerPay(List listRoster); + + /** + * 获取数据 + * @param string + * @return + */ + boolean getThreeTableOneRosterDataByLastMonth(String string); + + void deleteWorkerPay(String lastMonth); } diff --git a/bonus-modules/bonus-job/src/main/java/com/bonus/job/task/ThreeTableOneRosterTask.java b/bonus-modules/bonus-job/src/main/java/com/bonus/job/task/ThreeTableOneRosterTask.java index cdc6ae2..5f068e7 100644 --- a/bonus-modules/bonus-job/src/main/java/com/bonus/job/task/ThreeTableOneRosterTask.java +++ b/bonus-modules/bonus-job/src/main/java/com/bonus/job/task/ThreeTableOneRosterTask.java @@ -50,11 +50,18 @@ public class ThreeTableOneRosterTask { // 上个月第一天:先得到本月第一天,再减一个月 LocalDate firstDayOfLastMonth = YearMonth.now().minusMonths(1).atDay(1); + // 获取上一个月的天数(即该月最后一天是几号) + int daysInLastMonth = lastMonth.lengthOfMonth(); + String startTime = firstDayOfLastMonth.format(FORMATTER)+" 00:00:00"; String endTime = firstDayOfThisMonth.format(FORMATTER)+" 00:00:00"; + //先去检测上一月是否已经生成三表一册 + boolean isExist = mapper.getThreeTableOneRosterDataByLastMonth(lastMonth.toString()); + //查询所有有人在场的工程 List listPro = mapper.getAllPro(lastMonth.toString()); + List listRosterAll = new ArrayList<>(); listPro.forEach(mapBeanVo -> { //每个工程去循环生成 //1.花名册 @@ -86,6 +93,8 @@ public class ThreeTableOneRosterTask { // 遍历listRoster,填充数据 listRoster.forEach(roster -> { String key = roster.getWorkerId() + "_" + roster.getProId(); + roster.setIsOnJob(roster.getLastExitTime() != null && !roster.getLastExitTime().isEmpty() ? "1" : "0"); + roster.setMonthDay(daysInLastMonth); // 从listApply中查找匹配的数据 ThreeTableOneRosterPo applyData = applyMap.get(key); if (applyData != null) { @@ -96,6 +105,7 @@ public class ThreeTableOneRosterTask { roster.setContractId(applyData.getContractId()); roster.setPriceWage(applyData.getPriceWage()); roster.setPayment(applyData.getPayment()); + roster.setPayDay(applyData.getPayDay()); } // 从listAttDeal中查找匹配的数据 @@ -115,13 +125,15 @@ public class ThreeTableOneRosterTask { roster.setDeductMoney(0.0); roster.setActualMoney(calculatePayMoney); }); - + listRosterAll.addAll(listRoster); }); - - - - //1.花名册 - + if(!listRosterAll.isEmpty()){ + //插入数据 + if(isExist){ + mapper.deleteWorkerPay(lastMonth.toString()); + } + mapper.insertWorkerPay(listRosterAll); + } }catch (Exception e){ logger.error("人员入场更新表失败,{}",e.getMessage()); } diff --git a/bonus-modules/bonus-job/src/main/resources/mapper/job/WorkerJobMapper.xml b/bonus-modules/bonus-job/src/main/resources/mapper/job/WorkerJobMapper.xml index 40c612b..f8e6655 100644 --- a/bonus-modules/bonus-job/src/main/resources/mapper/job/WorkerJobMapper.xml +++ b/bonus-modules/bonus-job/src/main/resources/mapper/job/WorkerJobMapper.xml @@ -116,13 +116,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" d.team_name, d.worker_id, pw.`name`, - pw.sex, + if(pw.sex = '男',1,0) as sex, d.post_id, d.post_name, d.id_number, pw.address, pw.phone, - 'remark' as remark, + '花名册备注' as remark, -- 正确的最早入场时间:所有与8月相关的入场中最早的 MIN(p.ein_time) AS first_ein_time, -- 获取最后一次“相关入场”的出场时间(即使为 null) @@ -179,7 +179,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" bwc.day_rate as price_wage, '按月支付' AS payment, '每月20日前' AS pay_day, - '备注' AS remark, + '工资卡备注' AS remark, pw.phone FROM bm_worker_ein_day_record d @@ -235,4 +235,68 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + insert into tb_pro_month_table_roster + ( + pro_id, + pro_name, + month, + month_day, + sub_id, + sub_name, + team_id, + team_name, + user_id, + user_name, + id_card, + sex, + work_id, + work_name, + unit_and_code, + period, + residence, + phone, + remark, + in_time, + out_time, + on_duty, + bank_name, + bank_card_code, + bank_identifier_code, + contract_id, + price_wage, + payment, + pay_day, + attendance_num, + check_day, + repair_num, + attendance_day, + pay_money, + deduct_money, + actual_money + )values + + (#{item.proId},#{item.proName},#{item.attMonth},#{item.monthDay},#{item.subId},#{item.subName},#{item.teamId},#{item.teamName},#{item.workerId}, + #{item.name},#{item.idNumber},#{item.sex},#{item.postId},#{item.postName},'','',#{item.address},#{item.phone}, + #{item.remark},#{item.firstEinTime},#{item.lastExitTime},#{item.isOnJob},#{item.bankName},#{item.bankCardCode},#{item.bankIdentifierCode}, + #{item.contractId},#{item.priceWage},#{item.payment},#{item.payDay},#{item.attendanceNum},#{item.checkDay},#{item.repairNum}, + #{item.attendanceDay},#{item.payMoney},#{item.deductMoney},#{item.actualMoney}) + + + + + + + + + delete from tb_pro_month_table_roster where month = #{lastMonth} +