From 6899afa3e647532d69af5035da62b03ed12e56d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=96=B9=E4=BA=AE?= Date: Tue, 11 Nov 2025 09:33:55 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=88=E5=90=8C=E6=B7=BB=E5=8A=A0proId?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bmw/controller/PmWorkerController.java | 2 +- .../com/bonus/bmw/domain/vo/PmWorker.java | 42 +++++++++++++++---- .../bonus/bmw/mapper/PmWorkerExitMapper.java | 2 +- .../com/bonus/bmw/mapper/PmWorkerMapper.java | 6 +++ .../bmw/service/impl/AppServiceImpl.java | 2 +- .../service/impl/PmWorkerExitServiceImpl.java | 6 +-- .../bmw/service/impl/PmWorkerServiceImpl.java | 23 ++++++++++ .../mapper/bmw/BmWorkerContractMapper.xml | 3 +- .../mapper/bmw/PmWorkerExitMapper.xml | 2 +- .../resources/mapper/bmw/PmWorkerMapper.xml | 12 +++++- .../job/task/ThreeTableOneRosterTask.java | 11 +++-- 11 files changed, 88 insertions(+), 23 deletions(-) diff --git a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/controller/PmWorkerController.java b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/controller/PmWorkerController.java index 2b08896..43fc86d 100644 --- a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/controller/PmWorkerController.java +++ b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/controller/PmWorkerController.java @@ -300,7 +300,7 @@ public class PmWorkerController extends BaseController { public AjaxResult workerEinImport(@RequestParam(value = "file") MultipartFile file, boolean updateSupport) throws Exception { try { ExcelUtil util = new ExcelUtil<>(PmWorker.class); - List workerList = util.importExcel(file.getInputStream(),1); + List workerList = util.importExcel(file.getInputStream(),3); boolean allNull = workerList.stream().allMatch(Objects::isNull); if (allNull) { return error("导入文件为空或字段不匹配"); diff --git a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/domain/vo/PmWorker.java b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/domain/vo/PmWorker.java index 146d789..afbf9a5 100644 --- a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/domain/vo/PmWorker.java +++ b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/domain/vo/PmWorker.java @@ -26,13 +26,13 @@ public class PmWorker { /** * 姓名 */ - @Excel(name = "姓名", sort = 2) + @Excel(name = "*姓名", sort = 2) private String name; /** * 身份证 */ - @Excel(name = "身份证号", sort = 3) + @Excel(name = "*身份证号", sort = 3) private String idNumber; /** @@ -48,6 +48,7 @@ public class PmWorker { /** * 手机号 */ + @Excel(name = "手机号码", type = Excel.Type.IMPORT) private String phone; /** @@ -58,33 +59,33 @@ public class PmWorker { /** * 民族 */ - @Excel(name = "民族", type = Excel.Type.IMPORT) + @Excel(name = "*民族", type = Excel.Type.IMPORT) private String nation; /** * 签发机关 */ - @Excel(name = "签发机关", type = Excel.Type.IMPORT) + @Excel(name = "*签发机关", type = Excel.Type.IMPORT) private String issuingAuthority; /** * 有效期开始时间 */ - @Excel(name = "生效日期", type = Excel.Type.IMPORT) + @Excel(name = "*生效日期", type = Excel.Type.IMPORT) @JsonFormat(pattern = "yyyy-MM-dd") private Date startTime; /** * 有效期结束时间 */ - @Excel(name = "失效日期", type = Excel.Type.IMPORT) + @Excel(name = "*失效日期", type = Excel.Type.IMPORT) @JsonFormat(pattern = "yyyy-MM-dd") private Date endTime; /** * 家庭住址 */ - @Excel(name = "身份证住址", type = Excel.Type.IMPORT) + @Excel(name = "*身份证住址", type = Excel.Type.IMPORT) private String address; /** @@ -131,7 +132,7 @@ public class PmWorker { /** * 岗位名称 */ - @Excel(name = "岗位名称", type = Excel.Type.EXPORT, sort = 4) + @Excel(name = "工种", sort = 4) private String postName; /** @@ -200,4 +201,29 @@ public class PmWorker { private String type; + //导入字段 + /** + * 银行卡号 + */ + @Excel(name = "银行卡号", type = Excel.Type.IMPORT) + private String bankCardCode; + + /** + * 银行名称 + */ + @Excel(name = "银行名称", type = Excel.Type.IMPORT) + private String bankName; + + /** + * 银行支行名称 + */ + @Excel(name = "银行支行名称", type = Excel.Type.IMPORT) + private String bankBranchName; + + /** + * 银行联号 + */ + @Excel(name = "银行联号", type = Excel.Type.IMPORT) + private String bankIdentifierCode; + } diff --git a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/mapper/PmWorkerExitMapper.java b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/mapper/PmWorkerExitMapper.java index c809d5f..1c1a33c 100644 --- a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/mapper/PmWorkerExitMapper.java +++ b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/mapper/PmWorkerExitMapper.java @@ -37,7 +37,7 @@ public interface PmWorkerExitMapper { List selectWorkListByWorkerId(PmWorkerDto o); - List getContractIdAndWageCard(Integer workerId); + List getContractIdAndWageCard(@Param("workerId") Integer workerId,@Param("proId") Integer proId); String getIdNumberByWorkerId(Integer workerId); diff --git a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/mapper/PmWorkerMapper.java b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/mapper/PmWorkerMapper.java index a1b835a..1bfea65 100644 --- a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/mapper/PmWorkerMapper.java +++ b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/mapper/PmWorkerMapper.java @@ -1,6 +1,8 @@ package com.bonus.bmw.mapper; import com.bonus.bmw.domain.dto.PmWorkerDto; +import com.bonus.bmw.domain.po.MapBeanPo; +import com.bonus.bmw.domain.vo.BmWorkerWageCard; import com.bonus.bmw.domain.vo.MapBeanVo; import com.bonus.bmw.domain.vo.PmWorker; import org.apache.ibatis.annotations.Mapper; @@ -150,4 +152,8 @@ public interface PmWorkerMapper { * @return */ Integer getContractIdByWorkerId(Integer id); + + List getWageCardById(Integer workerId); + + void insertWorkerWageCard(BmWorkerWageCard bmWorkerWageCard); } diff --git a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/impl/AppServiceImpl.java b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/impl/AppServiceImpl.java index d3a6869..ceccf48 100644 --- a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/impl/AppServiceImpl.java +++ b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/impl/AppServiceImpl.java @@ -221,7 +221,7 @@ public class AppServiceImpl implements AppService { @Override public AjaxResult appWorkerExit(PmWorkerDto record) throws Exception { //查询合同工资卡是否齐全 - List list = pmWorkerExitMapper.getContractIdAndWageCard(record.getWorkerId()); + List list = pmWorkerExitMapper.getContractIdAndWageCard(record.getWorkerId(),record.getProId()); if(Integer.parseInt(list.get(0).getValue())>0 && Integer.parseInt(list.get(1).getValue())>0){ //查询是否上海外 PmWorkerDto data=pmWorkerExitMapper.getPmWorkInfo(record); diff --git a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/impl/PmWorkerExitServiceImpl.java b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/impl/PmWorkerExitServiceImpl.java index 97663e0..e88dec2 100644 --- a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/impl/PmWorkerExitServiceImpl.java +++ b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/impl/PmWorkerExitServiceImpl.java @@ -59,11 +59,9 @@ public class PmWorkerExitServiceImpl implements PmWorkerExitService { //查询是否上海外 Boolean isShangHai = mapper.getProLocationByProId(record.getProId()); //查询合同工资卡是否齐全 - List list = mapper.getContractIdAndWageCard(record.getWorkerId()); + List list = mapper.getContractIdAndWageCard(record.getWorkerId(),record.getProId()); if(Integer.parseInt(list.get(0).getValue())>0 && Integer.parseInt(list.get(1).getValue())>0){ - contractService.deleteByWorkerId(record.getWorkerId(),record.getProId()); - //查询是不是上海内最后一个在场工程(一定要放在删除实时在场前查) int number = mapper.getEinProNum(record.getWorkerId()); //删除实时在场 @@ -125,7 +123,7 @@ public class PmWorkerExitServiceImpl implements PmWorkerExitService { List teamId = new ArrayList<>(); for (PmWorkerDto bean : list) { //查询合同工资卡是否齐全 - List listData = mapper.getContractIdAndWageCard(bean.getWorkerId()); + List listData = mapper.getContractIdAndWageCard(bean.getWorkerId(),bean.getProId()); if("1".equals(listData.get(0).getValue()) && "1".equals(listData.get(1).getValue())) { //查询是否上海外 Boolean isShangHai = mapper.getProLocationByProId(bean.getProId()); diff --git a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/impl/PmWorkerServiceImpl.java b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/impl/PmWorkerServiceImpl.java index ee0f780..c79bcf0 100644 --- a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/impl/PmWorkerServiceImpl.java +++ b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/impl/PmWorkerServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.date.DateUtil; import com.bonus.bmw.domain.dto.PmWorkerDto; import com.bonus.bmw.domain.dto.WebFileDto; import com.bonus.bmw.domain.po.FaceRecognitionBean; +import com.bonus.bmw.domain.po.MapBeanPo; import com.bonus.bmw.domain.vo.BmWorkerContract; import com.bonus.bmw.domain.vo.BmWorkerWageCard; import com.bonus.bmw.domain.vo.MapBeanVo; @@ -425,6 +426,13 @@ public class PmWorkerServiceImpl implements PmWorkerService{ worker.setEinStatus(0); worker.setUpdateUser(SecurityUtils.getLoginUser().getSysUser().getUserName()); mapper.updateBasicWorkerData(worker); + BmWorkerWageCard bmWorkerWageCard = new BmWorkerWageCard(); + bmWorkerWageCard.setWorkerId(delWorker.getId()); + bmWorkerWageCard.setBankCardCode(worker.getBankCardCode()); + bmWorkerWageCard.setBankName(worker.getBankName()); + bmWorkerWageCard.setBankBranchName(worker.getBankBranchName()); + bmWorkerWageCard.setBankIdentifierCode(worker.getBankIdentifierCode()); + insertWorkerWageCard(bmWorkerWageCard); successNum++; successMsg.append("|").append(successNum).append("、施工人员信息 ").append(worker.getName()).append(" 更新成功"); }else{ @@ -448,6 +456,13 @@ public class PmWorkerServiceImpl implements PmWorkerService{ BeanValidators.validateWithException(validator, worker); worker.setCreateUser(SecurityUtils.getLoginUser().getSysUser().getUserName()); mapper.insertBasicWorkerData(worker); + BmWorkerWageCard bmWorkerWageCard = new BmWorkerWageCard(); + bmWorkerWageCard.setWorkerId(worker.getId()); + bmWorkerWageCard.setBankCardCode(worker.getBankCardCode()); + bmWorkerWageCard.setBankName(worker.getBankName()); + bmWorkerWageCard.setBankBranchName(worker.getBankBranchName()); + bmWorkerWageCard.setBankIdentifierCode(worker.getBankIdentifierCode()); + insertWorkerWageCard(bmWorkerWageCard); successNum++; successMsg.append("|").append(successNum).append("、施工人员信息 ").append(worker.getName()).append(" 导入成功"); } else if (isUpdateSupport) { @@ -483,6 +498,14 @@ public class PmWorkerServiceImpl implements PmWorkerService{ return successMsg.toString(); } + private void insertWorkerWageCard(BmWorkerWageCard bmWorkerWageCard) { + List list = mapper.getWageCardById(bmWorkerWageCard.getWorkerId()); + if(list == null || list.isEmpty()){ + mapper.insertWorkerWageCard(bmWorkerWageCard); + } + + } + /** * 从18位身份证号中提取年龄、性别、出生日期,返回Map * @param idCard 身份证号码 diff --git a/bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/BmWorkerContractMapper.xml b/bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/BmWorkerContractMapper.xml index a7e2f76..602b273 100644 --- a/bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/BmWorkerContractMapper.xml +++ b/bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/BmWorkerContractMapper.xml @@ -114,7 +114,7 @@ bwepr.sub_name FROM bm_worker_contract bwc - left join bm_worker_ein_pro_record bwepr on bwc.worker_id = bwepr.worker_id and bwc.id = bwepr.contract_id and bwc.pro_id = bwepr.pro_id + left join bm_worker_ein_pro_record bwepr on bwc.worker_id = bwepr.worker_id and bwc.pro_id = bwepr.pro_id bwepr.pro_name is not null @@ -127,6 +127,7 @@ AND bwc.id = #{id} + GROUP BY bwc.id order by bwc.id desc diff --git a/bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/PmWorkerExitMapper.xml b/bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/PmWorkerExitMapper.xml index 0032475..39bea3b 100644 --- a/bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/PmWorkerExitMapper.xml +++ b/bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/PmWorkerExitMapper.xml @@ -146,7 +146,7 @@ '合同' as `key`, count(1) as `value` FROM - `bm_worker_contract` where is_active = 1 and worker_id = #{workerId} + `bm_worker_contract` where is_active = 1 and worker_id = #{workerId} and pro_id = #{proId} + + + + + insert into bm_worker_wage_card (worker_id,bank_card_code,bank_name,bank_branch_name,bank_identifier_code) + values (#{workerId},#{bankCardCode},#{bankName},#{bankBranchName},#{bankIdentifierCode}) + 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 94dadb3..325a8d0 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 @@ -41,7 +41,7 @@ public class ThreeTableOneRosterTask { */ public void createThreeTableOneRosterData(){ try{ -// // 获取当前年月 + // 获取当前年月 // YearMonth current = YearMonth.now(); // // 获取上一个月 // YearMonth lastMonth = current.minusMonths(1); @@ -57,15 +57,17 @@ public class ThreeTableOneRosterTask { // String endTime = firstDayOfThisMonth.format(FORMATTER)+" 00:00:00"; - // 获取当前年月 - String current = "2025-11"; +// // 获取当前年月 + String current = "2025-12"; // 获取上一个月 - String lastMonth = "2025-10"; + String lastMonth = "2025-11"; // 获取上一个月的天数(即该月最后一天是几号) int daysInLastMonth = 30; String startTime = "2025-10-01"+" 00:00:00"; String endTime = "2025-11-01"+" 00:00:00"; + + //先去检测上一月是否已经生成三表一册 boolean isExist = mapper.getThreeTableOneRosterDataByLastMonth(lastMonth.toString()); @@ -84,6 +86,7 @@ public class ThreeTableOneRosterTask { List listApply = mapper.getWorkerApplyData(lastMonth.toString(),mapBeanVo.getId()); //3.考勤明细表 List listAtt = mapper.getWorkerAttData(lastMonth.toString(),mapBeanVo.getId()); + //YearMonth.parse(lastMonth) List listAttDeal = dealAttData(listAtt,YearMonth.parse(lastMonth)); //4.农民工资支付表 // 数据串联生成工资支付数据