三表一册数据来源
This commit is contained in:
parent
1ac1304762
commit
e67f6b8bb8
|
|
@ -22,6 +22,7 @@ public class ThreeTableOneRosterPo {
|
||||||
//1.花名册
|
//1.花名册
|
||||||
private String firstEinTime;
|
private String firstEinTime;
|
||||||
private String lastExitTime;
|
private String lastExitTime;
|
||||||
|
private String isOnJob;
|
||||||
//2.农民工实名制工资信息报审表
|
//2.农民工实名制工资信息报审表
|
||||||
private String bankName;
|
private String bankName;
|
||||||
private String bankCardCode;
|
private String bankCardCode;
|
||||||
|
|
@ -36,6 +37,7 @@ public class ThreeTableOneRosterPo {
|
||||||
private String einDay;
|
private String einDay;
|
||||||
private String attDay;
|
private String attDay;
|
||||||
private String isRepair;
|
private String isRepair;
|
||||||
|
private Integer monthDay;
|
||||||
private String attendanceDay;
|
private String attendanceDay;
|
||||||
private Integer checkDay;
|
private Integer checkDay;
|
||||||
private Integer repairNum;
|
private Integer repairNum;
|
||||||
|
|
|
||||||
|
|
@ -77,4 +77,19 @@ public interface WorkerJobMapper {
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
List<ThreeTableOneRosterPo> getWorkerPayData(@Param("attMonth") String attMonth, @Param("proId") Integer proId);
|
List<ThreeTableOneRosterPo> getWorkerPayData(@Param("attMonth") String attMonth, @Param("proId") Integer proId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 插入数据
|
||||||
|
* @param listRoster
|
||||||
|
*/
|
||||||
|
void insertWorkerPay(List<ThreeTableOneRosterPo> listRoster);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取数据
|
||||||
|
* @param string
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
boolean getThreeTableOneRosterDataByLastMonth(String string);
|
||||||
|
|
||||||
|
void deleteWorkerPay(String lastMonth);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -50,11 +50,18 @@ public class ThreeTableOneRosterTask {
|
||||||
// 上个月第一天:先得到本月第一天,再减一个月
|
// 上个月第一天:先得到本月第一天,再减一个月
|
||||||
LocalDate firstDayOfLastMonth = YearMonth.now().minusMonths(1).atDay(1);
|
LocalDate firstDayOfLastMonth = YearMonth.now().minusMonths(1).atDay(1);
|
||||||
|
|
||||||
|
// 获取上一个月的天数(即该月最后一天是几号)
|
||||||
|
int daysInLastMonth = lastMonth.lengthOfMonth();
|
||||||
|
|
||||||
String startTime = firstDayOfLastMonth.format(FORMATTER)+" 00:00:00";
|
String startTime = firstDayOfLastMonth.format(FORMATTER)+" 00:00:00";
|
||||||
String endTime = firstDayOfThisMonth.format(FORMATTER)+" 00:00:00";
|
String endTime = firstDayOfThisMonth.format(FORMATTER)+" 00:00:00";
|
||||||
|
|
||||||
|
//先去检测上一月是否已经生成三表一册
|
||||||
|
boolean isExist = mapper.getThreeTableOneRosterDataByLastMonth(lastMonth.toString());
|
||||||
|
|
||||||
//查询所有有人在场的工程
|
//查询所有有人在场的工程
|
||||||
List<MapBeanVo> listPro = mapper.getAllPro(lastMonth.toString());
|
List<MapBeanVo> listPro = mapper.getAllPro(lastMonth.toString());
|
||||||
|
List<ThreeTableOneRosterPo> listRosterAll = new ArrayList<>();
|
||||||
listPro.forEach(mapBeanVo -> {
|
listPro.forEach(mapBeanVo -> {
|
||||||
//每个工程去循环生成
|
//每个工程去循环生成
|
||||||
//1.花名册
|
//1.花名册
|
||||||
|
|
@ -86,6 +93,8 @@ public class ThreeTableOneRosterTask {
|
||||||
// 遍历listRoster,填充数据
|
// 遍历listRoster,填充数据
|
||||||
listRoster.forEach(roster -> {
|
listRoster.forEach(roster -> {
|
||||||
String key = roster.getWorkerId() + "_" + roster.getProId();
|
String key = roster.getWorkerId() + "_" + roster.getProId();
|
||||||
|
roster.setIsOnJob(roster.getLastExitTime() != null && !roster.getLastExitTime().isEmpty() ? "1" : "0");
|
||||||
|
roster.setMonthDay(daysInLastMonth);
|
||||||
// 从listApply中查找匹配的数据
|
// 从listApply中查找匹配的数据
|
||||||
ThreeTableOneRosterPo applyData = applyMap.get(key);
|
ThreeTableOneRosterPo applyData = applyMap.get(key);
|
||||||
if (applyData != null) {
|
if (applyData != null) {
|
||||||
|
|
@ -96,6 +105,7 @@ public class ThreeTableOneRosterTask {
|
||||||
roster.setContractId(applyData.getContractId());
|
roster.setContractId(applyData.getContractId());
|
||||||
roster.setPriceWage(applyData.getPriceWage());
|
roster.setPriceWage(applyData.getPriceWage());
|
||||||
roster.setPayment(applyData.getPayment());
|
roster.setPayment(applyData.getPayment());
|
||||||
|
roster.setPayDay(applyData.getPayDay());
|
||||||
}
|
}
|
||||||
|
|
||||||
// 从listAttDeal中查找匹配的数据
|
// 从listAttDeal中查找匹配的数据
|
||||||
|
|
@ -115,13 +125,15 @@ public class ThreeTableOneRosterTask {
|
||||||
roster.setDeductMoney(0.0);
|
roster.setDeductMoney(0.0);
|
||||||
roster.setActualMoney(calculatePayMoney);
|
roster.setActualMoney(calculatePayMoney);
|
||||||
});
|
});
|
||||||
|
listRosterAll.addAll(listRoster);
|
||||||
});
|
});
|
||||||
|
if(!listRosterAll.isEmpty()){
|
||||||
|
//插入数据
|
||||||
|
if(isExist){
|
||||||
//1.花名册
|
mapper.deleteWorkerPay(lastMonth.toString());
|
||||||
|
}
|
||||||
|
mapper.insertWorkerPay(listRosterAll);
|
||||||
|
}
|
||||||
}catch (Exception e){
|
}catch (Exception e){
|
||||||
logger.error("人员入场更新表失败,{}",e.getMessage());
|
logger.error("人员入场更新表失败,{}",e.getMessage());
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -116,13 +116,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
d.team_name,
|
d.team_name,
|
||||||
d.worker_id,
|
d.worker_id,
|
||||||
pw.`name`,
|
pw.`name`,
|
||||||
pw.sex,
|
if(pw.sex = '男',1,0) as sex,
|
||||||
d.post_id,
|
d.post_id,
|
||||||
d.post_name,
|
d.post_name,
|
||||||
d.id_number,
|
d.id_number,
|
||||||
pw.address,
|
pw.address,
|
||||||
pw.phone,
|
pw.phone,
|
||||||
'remark' as remark,
|
'花名册备注' as remark,
|
||||||
-- 正确的最早入场时间:所有与8月相关的入场中最早的
|
-- 正确的最早入场时间:所有与8月相关的入场中最早的
|
||||||
MIN(p.ein_time) AS first_ein_time,
|
MIN(p.ein_time) AS first_ein_time,
|
||||||
-- 获取最后一次“相关入场”的出场时间(即使为 null)
|
-- 获取最后一次“相关入场”的出场时间(即使为 null)
|
||||||
|
|
@ -179,7 +179,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
bwc.day_rate as price_wage,
|
bwc.day_rate as price_wage,
|
||||||
'按月支付' AS payment,
|
'按月支付' AS payment,
|
||||||
'每月20日前' AS pay_day,
|
'每月20日前' AS pay_day,
|
||||||
'备注' AS remark,
|
'工资卡备注' AS remark,
|
||||||
pw.phone
|
pw.phone
|
||||||
FROM
|
FROM
|
||||||
bm_worker_ein_day_record d
|
bm_worker_ein_day_record d
|
||||||
|
|
@ -235,4 +235,68 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
|
||||||
<select id="getWorkerPayData" resultType="com.bonus.job.domain.ThreeTableOneRosterPo">
|
<select id="getWorkerPayData" resultType="com.bonus.job.domain.ThreeTableOneRosterPo">
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<insert id="insertWorkerPay">
|
||||||
|
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
|
||||||
|
<foreach item="item" collection="list" index="index" separator=",">
|
||||||
|
(#{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})
|
||||||
|
</foreach>
|
||||||
|
|
||||||
|
|
||||||
|
</insert>
|
||||||
|
|
||||||
|
<select id="getThreeTableOneRosterDataByLastMonth" resultType="boolean">
|
||||||
|
SELECT
|
||||||
|
COUNT(1) AS count
|
||||||
|
FROM
|
||||||
|
tb_pro_month_table_roster
|
||||||
|
WHERE
|
||||||
|
month = #{lastMonth}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<delete id="deleteWorkerPay">
|
||||||
|
delete from tb_pro_month_table_roster where month = #{lastMonth}
|
||||||
|
</delete>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue