From f0248a107951540b71e303a0fe0b25cc9a166031 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=96=B9=E4=BA=AE?= Date: Fri, 31 Oct 2025 13:39:48 +0800 Subject: [PATCH] =?UTF-8?q?=E6=AF=8F=E4=B8=AA=E5=B7=A5=E7=A8=8B=E5=88=86?= =?UTF-8?q?=E9=85=8D=E4=B8=80=E4=B8=AA=E5=90=88=E5=90=8C=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BmWorkerWageCardController.java | 25 ++++++++++++++--- .../bmw/controller/PmWorkerController.java | 26 +++++++++++++---- .../bonus/bmw/domain/vo/BmWorkerWageCard.java | 5 ++++ .../bmw/mapper/BmWorkerContractMapper.java | 6 ++-- .../bmw/mapper/BmWorkerWageCardMapper.java | 8 ++++-- .../bmw/service/BmWorkerContractService.java | 4 +-- .../bmw/service/BmWorkerWageCardService.java | 8 ++++-- .../bonus/bmw/service/PmWorkerService.java | 2 +- .../bmw/service/impl/AppServiceImpl.java | 6 ++-- .../impl/BmWorkerContractServiceImpl.java | 24 ++++++---------- .../impl/BmWorkerWageCardServiceImpl.java | 28 +++++++++++++++---- .../service/impl/PmWorkerExitServiceImpl.java | 11 ++------ .../bmw/service/impl/PmWorkerServiceImpl.java | 27 ++++++++++++------ .../mapper/bmw/BmWorkerContractMapper.xml | 21 +++++++++----- .../mapper/bmw/BmWorkerWageCardMapper.xml | 20 +++++++++++-- .../mapper/bmw/HomePageSubMapper.xml | 2 +- .../job/task/WorkerEinDayRecordTask.java | 1 + .../resources/mapper/job/WorkerJobMapper.xml | 10 ++++--- 18 files changed, 158 insertions(+), 76 deletions(-) diff --git a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/controller/BmWorkerWageCardController.java b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/controller/BmWorkerWageCardController.java index d256ba1..bc7a517 100644 --- a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/controller/BmWorkerWageCardController.java +++ b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/controller/BmWorkerWageCardController.java @@ -1,5 +1,6 @@ package com.bonus.bmw.controller; +import com.bonus.bmw.domain.dto.PmWorkerDto; import com.bonus.bmw.domain.dto.WebFileDto; import com.bonus.bmw.domain.vo.BmWorkerWageCard; import com.bonus.bmw.service.BmWorkerWageCardService; @@ -125,14 +126,30 @@ public class BmWorkerWageCardController extends BaseController { /** * 更新人员红绿灯状态 - * @param id + * @param o * @return */ - @PostMapping("/light/{id}") + @PostMapping("/light") @SysLog(title = "更新人员红绿灯", businessType = OperaType.DELETE, logType = 0, module = "施工人员->红绿灯管理->工资卡管理", details = "更新人员红绿灯") - public AjaxResult light(@PathVariable("id") Integer id) { + public AjaxResult light(@RequestBody PmWorkerDto o) { try { - return service.updateLightByWorkerId(id); + return service.updateLightByWorkerId(o.getWorkerId(),o.getProId()); + } catch (Exception e) { + logger.error(e.toString(), e); + return error("系统异常,请联系管理员"); + } + } + + /** + * 更新人员红绿灯状态 + * @param o + * @return + */ + @PostMapping("/wageLight") + @SysLog(title = "更新人员红绿灯", businessType = OperaType.DELETE, logType = 0, module = "施工人员->红绿灯管理->工资卡管理", details = "更新人员红绿灯") + public AjaxResult wageLight(@RequestBody PmWorkerDto o) { + try { + return service.updateWageLight(o.getWorkerId()); } catch (Exception e) { logger.error(e.toString(), e); return error("系统异常,请联系管理员"); 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 bdbcac6..2b08896 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 @@ -103,12 +103,12 @@ public class PmWorkerController extends BaseController { * @return */ @RequiresPermissionsOrInnerAuth(innerAuth = @InnerAuth, requiresPermissions = @RequiresPermissions("worker:ein:query")) - @PostMapping("/select/{id}/{proId}") + @PostMapping("/select") @SysLog(title = "查询人员入场信息", businessType = OperaType.QUERY, logType = 0, module = "施工人员->出入场管理->人员入场管理", details = "查询人员入场信息") - public AjaxResult select(@PathVariable("id") Integer id,@PathVariable("proId") Integer proId) { + public AjaxResult select(@RequestBody PmWorkerDto o) { try { AjaxResult ajax = AjaxResult.success(); - PmWorker worker = service.selectByPrimaryKey(id,proId); + PmWorker worker = service.selectByPrimaryKey(o.getId(),o.getProId()); ajax.put("data", worker); return ajax; } catch (Exception e) { @@ -337,9 +337,25 @@ public class PmWorkerController extends BaseController { @RequiresPermissionsOrInnerAuth(innerAuth = @InnerAuth, requiresPermissions = @RequiresPermissions("worker:ein:insert")) @PostMapping("/insertProEin") @SysLog(title = "新增工程入场", businessType = OperaType.UPDATE, logType = 0, module = "施工人员->出入场管理->人员入场管理", details = "新增工程入场") - public AjaxResult insertProEin(@RequestBody PmWorker o) { + public AjaxResult insertProEin(@RequestParam(value = "files",required = false) MultipartFile[] files, @RequestParam(value = "fileMsg")String fileMsg, @RequestParam(value = "params")String params) { try { - return service.insertProEin(o); + params= Sm4Utils.decrypt(params); + fileMsg= Sm4Utils.decrypt(fileMsg); + List listFile = new ArrayList<>(); + if(files != null && files.length > 0){ + listFile = FastJsonHelper.jsonArrStrToBeanList(fileMsg, WebFileDto.class); + // 验证对应关系 + if (listFile.size() != files.length) { + logger.error("文件信息:{}文件数量:{}", listFile.size(), files.length); + throw new IllegalArgumentException("文件信息与文件数量不匹配"); + } + //先将数据对应关系处理 + for (int i = 0; i < listFile.size(); i++) { + listFile.get(i).setFile(files[i]); + } + } + PmWorker o = FastJsonHelper.jsonStrToBean(params, PmWorker.class); + return service.insertProEin(o,listFile); } catch (Exception e) { logger.error(e.toString(), e); } diff --git a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/domain/vo/BmWorkerWageCard.java b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/domain/vo/BmWorkerWageCard.java index 6c63085..e3030c6 100644 --- a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/domain/vo/BmWorkerWageCard.java +++ b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/domain/vo/BmWorkerWageCard.java @@ -101,4 +101,9 @@ public class BmWorkerWageCard { private String photoIds; + private Integer proId; + + private Integer contractId; + + } diff --git a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/mapper/BmWorkerContractMapper.java b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/mapper/BmWorkerContractMapper.java index 55d1eda..a584f6b 100644 --- a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/mapper/BmWorkerContractMapper.java +++ b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/mapper/BmWorkerContractMapper.java @@ -43,14 +43,14 @@ public interface BmWorkerContractMapper { */ BmWorkerContract selectContractListByWorkerIdAndValid(BmWorkerContract o); - int deleteByWorkerId(Integer id); + int deleteByWorkerId(@Param("workerId") Integer id,@Param("proId") Integer proId); /** * 更新 Ein 记录的关联合同ID * @param id * @param workerId */ - void updateEinRecordContractId(@Param("contractId") Integer id,@Param("workerId") Integer workerId); + void updateEinRecordContractId(@Param("contractId") Integer id,@Param("workerId") Integer workerId,@Param("proId") Integer proId); /** * 获取合同 @@ -65,4 +65,4 @@ public interface BmWorkerContractMapper { * @param workerId */ void updateEinDayRecordContractId(@Param("oldContractId") Integer id,@Param("workerId") Integer workerId,@Param("contractId") Integer contractId); -} \ No newline at end of file +} diff --git a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/mapper/BmWorkerWageCardMapper.java b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/mapper/BmWorkerWageCardMapper.java index 683d89d..1d8c8e2 100644 --- a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/mapper/BmWorkerWageCardMapper.java +++ b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/mapper/BmWorkerWageCardMapper.java @@ -48,9 +48,9 @@ public interface BmWorkerWageCardMapper { */ int updateByPrimaryKeySelective(BmWorkerWageCard record); - int selectWageCardAndContract(Integer id); + int selectWageCardAndContract(@Param("workerId") Integer workerId,@Param("proId") Integer proId); - int updateEinMsgByWorkerId(@Param("workerId") Integer id,@Param("lightStatus") Integer lightStatus,@Param("lightDate") String lightDate); + int updateEinMsgByWorkerId(@Param("workerId") Integer id,@Param("proId") Integer proId, @Param("lightStatus") Integer lightStatus,@Param("lightDate") String lightDate); /** * select by primary key @@ -67,4 +67,6 @@ public interface BmWorkerWageCardMapper { * @return deleteCount */ void deleteByWorkerId(Integer workerId); -} \ No newline at end of file + + List selectWageCardAndContractList(Integer workerId); +} diff --git a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/BmWorkerContractService.java b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/BmWorkerContractService.java index 3fffacf..ac83a49 100644 --- a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/BmWorkerContractService.java +++ b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/BmWorkerContractService.java @@ -1,9 +1,7 @@ package com.bonus.bmw.service; -import com.bonus.bmw.domain.dto.FileBasicMsgDto; import com.bonus.bmw.domain.dto.WebFileDto; import com.bonus.bmw.domain.vo.BmWorkerContract; -import com.bonus.bmw.domain.vo.BmWorkerWageCard; import com.bonus.common.core.web.domain.AjaxResult; import java.util.List; @@ -22,7 +20,7 @@ public interface BmWorkerContractService{ * @param id * @return */ - int deleteByWorkerId(Integer id); + int deleteByWorkerId(Integer id, Integer proId); /** * 修改合同 diff --git a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/BmWorkerWageCardService.java b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/BmWorkerWageCardService.java index cb7fe79..ddaffed 100644 --- a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/BmWorkerWageCardService.java +++ b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/BmWorkerWageCardService.java @@ -2,7 +2,6 @@ package com.bonus.bmw.service; import com.bonus.bmw.domain.dto.WebFileDto; import com.bonus.bmw.domain.vo.BmWorkerWageCard; -import com.bonus.bmw.domain.vo.PmWorker; import com.bonus.common.core.web.domain.AjaxResult; import java.util.List; @@ -46,10 +45,11 @@ public interface BmWorkerWageCardService { /** * 更新人员红绿灯 - * @param id + * @param workId + * @param proId * @return */ - AjaxResult updateLightByWorkerId(Integer id); + AjaxResult updateLightByWorkerId(Integer workId,Integer proId); /** * 查询文件 @@ -71,5 +71,7 @@ public interface BmWorkerWageCardService { * @return */ void deleteByWorkerId(Integer workerId); + + AjaxResult updateWageLight(Integer workerId); } diff --git a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/PmWorkerService.java b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/PmWorkerService.java index c592ebb..750e0b1 100644 --- a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/PmWorkerService.java +++ b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/PmWorkerService.java @@ -43,5 +43,5 @@ public interface PmWorkerService{ */ List selectEinListByWorkerId(PmWorkerDto o); - AjaxResult insertProEin(PmWorker o); + AjaxResult insertProEin(PmWorker o, List listFile); } 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 24d015f..d3a6869 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 @@ -227,7 +227,7 @@ public class AppServiceImpl implements AppService { PmWorkerDto data=pmWorkerExitMapper.getPmWorkInfo(record); Boolean isShangHai = pmWorkerExitMapper.getProLocationByProId(record.getProId()); if(isShangHai == null || !isShangHai){ - int m = contractMapper.deleteByWorkerId(record.getWorkerId()); + int m = contractMapper.deleteByWorkerId(record.getWorkerId(),record.getProId()); } //查询是不是上海内最后一个在场工程(一定要放在删除实时在场前查) int number = pmWorkerExitMapper.getEinProNum(record.getWorkerId()); @@ -344,7 +344,7 @@ public class AppServiceImpl implements AppService { } int insert = contractMapper.insert(record); //属于废弃上一个合同重新签一个,需要修改掉之前考情绑定 - contractMapper.updateEinDayRecordContractId(oldContractId, record.getWorkerId(), record.getId()); +// contractMapper.updateEinDayRecordContractId(oldContractId, record.getWorkerId(), record.getId()); if (insert > 0) { if (!StringUtils.isEmpty(record.getPhotoIds())) { String[] split = record.getPhotoIds().split(","); @@ -355,7 +355,7 @@ public class AppServiceImpl implements AppService { } } //将合同id保存到入场表和入场实时表 - contractMapper.updateEinRecordContractId(record.getId(), record.getWorkerId()); + contractMapper.updateEinRecordContractId(record.getId(), record.getWorkerId(), record.getProId()); } private void updateWageCard(BmWorkerWageCard record) { diff --git a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/impl/BmWorkerContractServiceImpl.java b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/impl/BmWorkerContractServiceImpl.java index 7d29d49..32c6e64 100644 --- a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/impl/BmWorkerContractServiceImpl.java +++ b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/impl/BmWorkerContractServiceImpl.java @@ -1,25 +1,20 @@ 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.vo.BmWorkerContract; +import com.bonus.bmw.mapper.BmWorkerContractMapper; +import com.bonus.bmw.service.BmWorkerContractService; import com.bonus.common.core.constant.Constants; import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.common.security.utils.SecurityUtils; import com.bonus.system.api.model.UploadFileVo; -import lombok.val; -import org.springframework.stereotype.Service; - import org.springframework.beans.factory.annotation.Autowired; - -import com.bonus.bmw.mapper.BmWorkerContractMapper; -import com.bonus.bmw.domain.vo.BmWorkerContract; -import com.bonus.bmw.service.BmWorkerContractService; +import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; import java.math.BigDecimal; import java.math.RoundingMode; -import java.util.Collections; import java.util.List; @Service @@ -37,8 +32,8 @@ public class BmWorkerContractServiceImpl implements BmWorkerContractService{ } @Override - public int deleteByWorkerId(Integer id) { - return mapper.deleteByWorkerId(id); + public int deleteByWorkerId(Integer id, Integer proId) { + return mapper.deleteByWorkerId(id,proId); } /** @@ -70,8 +65,8 @@ public class BmWorkerContractServiceImpl implements BmWorkerContractService{ oldContractId = record.getId(); } int insert = mapper.insert(record); - //属于废弃上一个合同重新签一个,需要修改掉之前考情绑定 - mapper.updateEinDayRecordContractId(oldContractId,record.getWorkerId(), record.getId()); +// //属于废弃上一个合同重新签一个,需要修改掉之前考情绑定 +// mapper.updateEinDayRecordContractId(oldContractId,record.getWorkerId(), record.getId()); if(insert > 0){ //组装数据 MultipartFile[] workerFiles = new MultipartFile[listFile.size()]; @@ -83,7 +78,7 @@ public class BmWorkerContractServiceImpl implements BmWorkerContractService{ List uploadFileVos = fileUploadUtils.uploadFile(workerFiles, Constants.FILE_UPLOAD_CONTRACT, record.getId().toString(), type,"", ""); } //将合同id保存到入场表和入场实时表 - mapper.updateEinRecordContractId(record.getId(),record.getWorkerId()); + mapper.updateEinRecordContractId(record.getId(),record.getWorkerId(), record.getProId()); return insert; } @@ -124,7 +119,6 @@ public class BmWorkerContractServiceImpl implements BmWorkerContractService{ List contractFile = fileUploadUtils.getFileList("", o.getId().toString(), Constants.FILE_UPLOAD_CONTRACT, ""); bmWorkerContracts.get(0).setFiles(contractFile); } - return bmWorkerContracts; } diff --git a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/impl/BmWorkerWageCardServiceImpl.java b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/impl/BmWorkerWageCardServiceImpl.java index 2685e67..4491c82 100644 --- a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/impl/BmWorkerWageCardServiceImpl.java +++ b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/impl/BmWorkerWageCardServiceImpl.java @@ -127,9 +127,9 @@ public class BmWorkerWageCardServiceImpl implements BmWorkerWageCardService { } @Override - public AjaxResult updateLightByWorkerId(Integer id) { + public AjaxResult updateLightByWorkerId(Integer workerId,Integer proId) { //查询工资卡和合同是不是存在 - int i = selectWageCardAndContract(id); + int i = selectWageCardAndContract(workerId,proId); //黄灯 int lightStatus = 1; String now = DateUtil.now(); @@ -138,10 +138,26 @@ public class BmWorkerWageCardServiceImpl implements BmWorkerWageCardService { lightStatus = 2; now = ""; } - int j = mapper.updateEinMsgByWorkerId(id, lightStatus, now); + int j = mapper.updateEinMsgByWorkerId(workerId, proId, lightStatus, now); return AjaxResult.success(j); } + @Override + public AjaxResult updateWageLight(Integer workerId) { + List list = mapper.selectWageCardAndContractList(workerId); + for (BmWorkerWageCard wageCard : list) { + //黄灯 + int lightStatus = 1; + String now = DateUtil.now(); + if(wageCard.getId() != null && wageCard.getId()>0 && wageCard.getContractId() != null && wageCard.getContractId()>0){ + lightStatus = 2; + } + int j = mapper.updateEinMsgByWorkerId(workerId, wageCard.getProId(), lightStatus, now); + } + return AjaxResult.success(); + } + + @Override public AjaxResult lookFileByPrimaryKey(Integer id) { List contractFile = fileUploadUtils.getFileList("", id.toString(), Constants.FILE_UPLOAD_WAGE_CARD, ""); @@ -163,8 +179,10 @@ public class BmWorkerWageCardServiceImpl implements BmWorkerWageCardService { mapper.deleteByWorkerId(workerId); } - private int selectWageCardAndContract(Integer id) { - return mapper.selectWageCardAndContract(id); + + + private int selectWageCardAndContract(Integer workerId,Integer proId) { + return mapper.selectWageCardAndContract(workerId,proId); } } 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 713b654..97663e0 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 @@ -62,10 +62,8 @@ public class PmWorkerExitServiceImpl implements PmWorkerExitService { List list = mapper.getContractIdAndWageCard(record.getWorkerId()); if(Integer.parseInt(list.get(0).getValue())>0 && Integer.parseInt(list.get(1).getValue())>0){ - if(isShangHai == null || !isShangHai){ - //上海外删除合同 - int i = contractService.deleteByWorkerId(record.getWorkerId()); - } + contractService.deleteByWorkerId(record.getWorkerId(),record.getProId()); + //查询是不是上海内最后一个在场工程(一定要放在删除实时在场前查) int number = mapper.getEinProNum(record.getWorkerId()); //删除实时在场 @@ -131,10 +129,7 @@ public class PmWorkerExitServiceImpl implements PmWorkerExitService { if("1".equals(listData.get(0).getValue()) && "1".equals(listData.get(1).getValue())) { //查询是否上海外 Boolean isShangHai = mapper.getProLocationByProId(bean.getProId()); - if(isShangHai == null || !isShangHai){ - //上海外删除合同 - int i = contractService.deleteByWorkerId(bean.getWorkerId()); - } + int i = contractService.deleteByWorkerId(bean.getWorkerId(),bean.getProId()); //查询是不是上海内最后一个在场工程(一定要放在删除实时在场前查) int number = mapper.getEinProNum(bean.getWorkerId()); //删除实时在场 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 9ec0018..ee0f780 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 @@ -189,6 +189,7 @@ public class PmWorkerServiceImpl implements PmWorkerService{ if(bmWorkerContract != null && StringUtil.isNotEmpty(bmWorkerContract.getContractStartDate())){ bmWorkerContract.setCreateUser(SecurityUtils.getLoginUser().getSysUser().getUserName()); bmWorkerContract.setWorkerId(record.getId()); + bmWorkerContract.setProId(record.getProId()); List collect = fileMsg.stream().filter(data -> "contract".equals(data.getName())).collect(Collectors.toList()); contractService.updateByPrimaryKey(bmWorkerContract,collect); record.setContractId(bmWorkerContract.getId()); @@ -212,6 +213,7 @@ public class PmWorkerServiceImpl implements PmWorkerService{ //查询合同数据 只有入场才会有合同(上海内可以在未入场有合同) BmWorkerContract contract = new BmWorkerContract(); contract.setWorkerId(id); + contract.setProId(worker.getProId()); BmWorkerContract workerContract = contractService.selectContractListByWorkerIdAndValid(contract); worker.setBmWorkerContract(workerContract); // } @@ -237,6 +239,7 @@ public class PmWorkerServiceImpl implements PmWorkerService{ //查询合同数据 只有入场才会有合同 BmWorkerContract contract = new BmWorkerContract(); contract.setWorkerId(worker.getId()); + contract.setProId(worker.getProId()); BmWorkerContract workerContract = contractService.selectContractListByWorkerIdAndValid(contract); worker.setBmWorkerContract(workerContract); @@ -260,24 +263,32 @@ public class PmWorkerServiceImpl implements PmWorkerService{ /** * 添加工程入场数据 - * @param o + * @param record + * @param listFile * @return */ @Override - public AjaxResult insertProEin(PmWorker o) { + public AjaxResult insertProEin(PmWorker record, List listFile) { //是否失信人员名单 - PmWorker worker2 = mapper.getBlackWorkerByNumber(o.getIdNumber()); + PmWorker worker2 = mapper.getBlackWorkerByNumber(record.getIdNumber()); if(worker2 != null && worker2.getName() != null){ return new AjaxResult(500, worker2.getName()+"施工人员在失信人员名单,无法入场"); } - //先查到现在的合同id - Integer contractId = mapper.getContractIdByWorkerId(o.getId()); - o.setContractId(contractId); - addEinRecord(o); + //存储合同id + BmWorkerContract bmWorkerContract = record.getBmWorkerContract(); + if(bmWorkerContract != null && StringUtil.isNotEmpty(bmWorkerContract.getContractStartDate())){ + bmWorkerContract.setCreateUser(SecurityUtils.getLoginUser().getSysUser().getUserName()); + bmWorkerContract.setWorkerId(record.getId()); + bmWorkerContract.setProId(record.getProId()); + List collect = listFile.stream().filter(data -> "contract".equals(data.getName())).collect(Collectors.toList()); + contractService.updateByPrimaryKey(bmWorkerContract,collect); + record.setContractId(bmWorkerContract.getId()); + } + addEinRecord(record); StringBuilder sb = new StringBuilder(); //下发人脸到考勤机 try { - urkSendService.sendUserToDevice(o.getId(),o.getProId(),o.getSubId(), o.getTeamId(),"0"); + urkSendService.sendUserToDevice(record.getId(),record.getProId(),record.getSubId(), record.getTeamId(),"0"); sb.append("新增工程入场成功,人员下发考勤机成功--"); return AjaxResult.success(sb.toString()); } catch (Exception e) { 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 e575121..a7e2f76 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 @@ -36,14 +36,14 @@ update bm_worker_contract set is_active = 0 - where worker_id = #{workerId} and is_active = 1 + where worker_id = #{workerId} and pro_id = #{proId} and is_active = 1 - insert into bm_worker_contract (worker_id, contract_code, contract_term_type, contract_start_date, + insert into bm_worker_contract (worker_id, pro_id, contract_code, contract_term_type, contract_start_date, contract_stop_date, wage_approved_way, wage_criterion, day_rate, contract_upload_date, contract_invalid_date, create_user) - values (#{workerId}, #{contractCode}, #{contractTermType}, #{contractStartDate}, + values (#{workerId}, #{proId}, #{contractCode}, #{contractTermType}, #{contractStartDate}, #{contractStopDate}, #{wageApprovedWay}, #{wageCriterion}, #{dayRate}, #{contractUploadDate}, #{contractInvalidDate}, #{createUser}) @@ -53,6 +53,7 @@ pw.id as worker_id, pw.`name`, pw.id_number, + bwem.pro_id, bwem.pro_name, bwem.sub_name, bwem.team_name, @@ -64,7 +65,7 @@ FROM pm_worker pw LEFT JOIN bm_worker_ein_msg bwem ON bwem.worker_id = pw.id - LEFT JOIN bm_worker_contract bwc ON pw.id = bwc.worker_id AND bwc.is_active = 1 + LEFT JOIN bm_worker_contract bwc ON pw.id = bwc.worker_id and bwc.pro_id = bwem.pro_id AND bwc.is_active = 1 LEFT JOIN pm_project pp on pp.id = bwem.pro_id WHERE pw.is_active = 1 @@ -113,12 +114,15 @@ 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 + 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 bwepr.pro_name is not null AND bwc.worker_id = #{workerId} + + AND bwc.pro_id = #{proId} + AND bwc.id = #{id} @@ -146,6 +150,9 @@ AND bwc.worker_id = #{workerId} + + AND bwc.pro_id = #{proId} + AND bwc.id = #{id} @@ -157,9 +164,9 @@ update bm_worker_ein_pro_record set contract_id = #{contractId} - where worker_id = #{workerId} and is_active = 1 and is_last = 1; + where worker_id = #{workerId} and pro_id = #{proId} and is_active = 1 and is_last = 1; update bm_worker_ein_msg set contract_id = #{contractId} - where worker_id = #{workerId}; + where worker_id = #{workerId} and pro_id = #{proId}; update bm_worker_ein_msg set light_status = #{lightStatus},yellow_date = #{lightDate} - where worker_id = #{workerId} + where worker_id = #{workerId} and pro_id = #{proId} + SELECT + bwc.pro_id, + bwc.worker_id, + bwc.id as contract_id, + bwwc.id + FROM + `bm_worker_contract` bwc + left join `bm_worker_wage_card` bwwc on bwc.worker_id = bwwc.worker_id and bwc.is_active = 1 + where bwc.is_active = 1 and bwc.worker_id = #{workerId} + + diff --git a/bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/HomePageSubMapper.xml b/bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/HomePageSubMapper.xml index d01f000..96cd756 100644 --- a/bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/HomePageSubMapper.xml +++ b/bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/HomePageSubMapper.xml @@ -394,6 +394,6 @@ '合同' as `key`, count(1) as `value` FROM - `bm_worker_contract` where is_active = 1 and worker_id = #{id} + `bm_worker_contract` where is_active = 1 and worker_id = #{id} and pro_id = #{proId} diff --git a/bonus-modules/bonus-job/src/main/java/com/bonus/job/task/WorkerEinDayRecordTask.java b/bonus-modules/bonus-job/src/main/java/com/bonus/job/task/WorkerEinDayRecordTask.java index e341e9b..2594e10 100644 --- a/bonus-modules/bonus-job/src/main/java/com/bonus/job/task/WorkerEinDayRecordTask.java +++ b/bonus-modules/bonus-job/src/main/java/com/bonus/job/task/WorkerEinDayRecordTask.java @@ -36,6 +36,7 @@ public class WorkerEinDayRecordTask{ //更新指定日期的记录 updateWorkerEinDayRecord(dateList); updateWorkerContract(); + //当天合同以最新的为准 }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 5aaa3a0..2987e9f 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 @@ -377,25 +377,27 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - update bm_worker_ein_day_record set contract_id = #{item.contractId} where worker_id = #{item.workerId} and contract_id is null + update bm_worker_ein_day_record set contract_id = #{item.contractId} where worker_id = #{item.workerId} and pro_id = #{item.proId} and contract_id is null