From 480407394ae8623b405c3d20f4a9a8ef6be74daf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=96=B9=E4=BA=AE?= Date: Wed, 13 Aug 2025 10:19:49 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=BA=E5=91=98=E5=85=A5=E5=9C=BA=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bmw/controller/PmWorkerController.java | 3 +- .../controller/PmWorkerExitController.java | 69 ++++++++++++++ .../bmw/mapper/BmWorkerContractMapper.java | 2 + .../bmw/mapper/BmWorkerWageCardMapper.java | 3 +- .../bonus/bmw/mapper/PmWorkerExitMapper.java | 26 ++++++ .../com/bonus/bmw/mapper/PmWorkerMapper.java | 8 ++ .../bmw/service/BmWorkerContractService.java | 7 ++ .../bmw/service/PmWorkerExitService.java | 25 +++++ .../impl/BmWorkerContractServiceImpl.java | 5 + .../impl/BmWorkerWageCardServiceImpl.java | 9 +- .../service/impl/PmWorkerExitServiceImpl.java | 47 ++++++++++ .../bmw/service/impl/PmWorkerServiceImpl.java | 16 +++- .../mapper/bmw/BmWorkerContractMapper.xml | 6 ++ .../mapper/bmw/BmWorkerWageCardMapper.xml | 2 +- .../mapper/bmw/PmWorkerExitMapper.xml | 91 +++++++++++++++++++ .../resources/mapper/bmw/PmWorkerMapper.xml | 12 ++- 16 files changed, 322 insertions(+), 9 deletions(-) create mode 100644 bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/controller/PmWorkerExitController.java create mode 100644 bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/mapper/PmWorkerExitMapper.java create mode 100644 bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/PmWorkerExitService.java create mode 100644 bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/impl/PmWorkerExitServiceImpl.java create mode 100644 bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/PmWorkerExitMapper.xml 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 03556e1..d192a76 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 @@ -3,6 +3,7 @@ import com.bonus.bmw.domain.dto.PmWorkerDto; import com.bonus.bmw.domain.vo.BmWorkerContract; import com.bonus.bmw.domain.vo.BmWorkerWageCard; import com.bonus.bmw.domain.vo.PmWorker; +import com.bonus.bmw.service.PmWorkerService; import com.bonus.bmw.service.impl.PmWorkerServiceImpl; import com.bonus.common.core.web.controller.BaseController; import com.bonus.common.core.web.domain.AjaxResult; @@ -31,7 +32,7 @@ public class PmWorkerController extends BaseController { * 服务对象 */ @Autowired - private PmWorkerServiceImpl service; + private PmWorkerService service; /** * 查询列表 diff --git a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/controller/PmWorkerExitController.java b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/controller/PmWorkerExitController.java new file mode 100644 index 0000000..1254765 --- /dev/null +++ b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/controller/PmWorkerExitController.java @@ -0,0 +1,69 @@ +package com.bonus.bmw.controller; + +import com.bonus.bmw.domain.dto.PmWorkerDto; +import com.bonus.bmw.domain.vo.PmWorker; +import com.bonus.bmw.service.PmWorkerExitService; +import com.bonus.bmw.service.impl.PmWorkerServiceImpl; +import com.bonus.common.core.web.controller.BaseController; +import com.bonus.common.core.web.domain.AjaxResult; +import com.bonus.common.core.web.page.TableDataInfo; +import com.bonus.common.log.annotation.SysLog; +import com.bonus.common.log.enums.OperaType; +import com.bonus.common.security.annotation.InnerAuth; +import com.bonus.common.security.annotation.RequiresPermissionsOrInnerAuth; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.ArrayList; +import java.util.List; + +/** +* 人员基础信息表(pm_worker)表控制层 +* +* @author xxxxx +*/ +@RestController +@RequestMapping("/workerExit") +public class PmWorkerExitController extends BaseController { +/** +* 服务对象 +*/ + @Autowired + private PmWorkerExitService service; + + /** + * 查询列表 + * @param o + * @return + * , requiresPermissions = @RequiresPermissions("system:workerEin:list") + */ + @RequiresPermissionsOrInnerAuth(innerAuth = @InnerAuth(isUser = false)) + @GetMapping("/list") + @SysLog(title = "人员出场管理", businessType = OperaType.QUERY, logType = 0, module = "施工人员->出入场管理->人员出场管理", details = "查询人员出场列表") + public TableDataInfo list(PmWorkerDto o) { + try { + startPage(); + List list = service.selectWorkList(o); + return getDataTable(list); + } catch (Exception e) { + logger.error(e.toString(), e); + } + return getDataTableError(new ArrayList<>()); + } + + //, requiresPermissions = @RequiresPermissions("system:workerExit:exit") + @RequiresPermissionsOrInnerAuth(innerAuth = @InnerAuth) + @PostMapping("/exit/{id}") + @SysLog(title = "人员出场管理", businessType = OperaType.UPDATE, logType = 0, module = "施工人员->出入场管理->人员出场管理", details = "人员入场") + public AjaxResult exit(@PathVariable("id") Integer id) { + try { + return toAjax(service.updateWorkerExit(id)); + } catch (Exception e) { + logger.error(e.toString(), e); + } + return error("系统异常,请联系管理员"); + } + + +} 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 f012c31..7bf2f0b 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 @@ -41,4 +41,6 @@ public interface BmWorkerContractMapper { * @return */ BmWorkerContract selectContractListByWorkerIdAndValid(BmWorkerContract o); + + int deleteByWorkerId(Integer id); } \ 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 c74d731..b3ef006 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 @@ -2,6 +2,7 @@ package com.bonus.bmw.mapper; import com.bonus.bmw.domain.vo.BmWorkerWageCard; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -49,5 +50,5 @@ public interface BmWorkerWageCardMapper { int selectWageCardAndContract(Integer id); - void updateEinMsgByWorkerId(Integer id); + void updateEinMsgByWorkerId(@Param("workerId") Integer id,@Param("lightStatus") Integer lightStatus,@Param("lightDate") String lightDate); } \ No newline at end of file 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 new file mode 100644 index 0000000..bb3dab4 --- /dev/null +++ b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/mapper/PmWorkerExitMapper.java @@ -0,0 +1,26 @@ +package com.bonus.bmw.mapper; + +import com.bonus.bmw.domain.dto.PmWorkerDto; +import com.bonus.bmw.domain.vo.PmWorker; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface PmWorkerExitMapper { + + /** + * 查询人员列表 + * + * @param o + * @return + */ + List selectWorkList(PmWorkerDto o); + + /** + * 删除实时入场表 + * @param id + * @return + */ + int deleteEinMsgByWorkerId(Integer id); +} \ No newline at end of file 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 f3948c0..4abb4c5 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 @@ -70,4 +70,12 @@ public interface PmWorkerMapper { * @return */ int insertEinProRecord(PmWorker record); + + /** + * 更新入场记录最新记录标识 + * + * @param id + * @return + */ + void updateEinRecordLast(Integer id); } \ No newline at end of file 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 de7b5ba..94ed7dc 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 @@ -14,6 +14,13 @@ public interface BmWorkerContractService{ */ int deleteByPrimaryKey(Integer id); + /** + * 删除合同 + * @param id + * @return + */ + int deleteByWorkerId(Integer id); + /** * 修改合同 * @param record diff --git a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/PmWorkerExitService.java b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/PmWorkerExitService.java new file mode 100644 index 0000000..9d6d971 --- /dev/null +++ b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/PmWorkerExitService.java @@ -0,0 +1,25 @@ +package com.bonus.bmw.service; + +import com.bonus.bmw.domain.dto.PmWorkerDto; +import com.bonus.bmw.domain.vo.PmWorker; +import com.bonus.common.core.web.domain.AjaxResult; + +import java.util.List; + +public interface PmWorkerExitService { + /** + * 查询人员出场列表 + * + * @param o + * @return + */ + List selectWorkList(PmWorkerDto o); + + /** + * 人员出场 + * + * @param id + * @return + */ + int updateWorkerExit(Integer id); +} 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 d5ef75f..c4808b2 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 @@ -25,6 +25,11 @@ public class BmWorkerContractServiceImpl implements BmWorkerContractService{ return mapper.deleteByPrimaryKey(id); } + @Override + public int deleteByWorkerId(Integer id) { + return mapper.deleteByWorkerId(id); + } + /** * 更新合同 * @param record 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 6b9aada..ebc310d 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 @@ -1,5 +1,6 @@ package com.bonus.bmw.service.impl; +import cn.hutool.core.date.DateUtil; import com.bonus.bmw.domain.vo.BmWorkerWageCard; import com.bonus.bmw.mapper.BmWorkerWageCardMapper; import com.bonus.bmw.service.BmWorkerWageCardService; @@ -85,9 +86,15 @@ public class BmWorkerWageCardServiceImpl implements BmWorkerWageCardService { public void updateLightByWorkerId(Integer id) { //查询工资卡和合同是不是存在 int i = selectWageCardAndContract(id); + //黄灯 + int lightStatus = 1; + String now = DateUtil.now(); if(i==2){ - mapper.updateEinMsgByWorkerId(id); + //变为绿灯 + lightStatus = 2; + now = ""; } + mapper.updateEinMsgByWorkerId(id, lightStatus, now); } private int selectWageCardAndContract(Integer id) { 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 new file mode 100644 index 0000000..72ef6db --- /dev/null +++ b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/impl/PmWorkerExitServiceImpl.java @@ -0,0 +1,47 @@ +package com.bonus.bmw.service.impl; + +import cn.hutool.core.date.DateUtil; +import com.bonus.bmw.domain.dto.PmWorkerDto; +import com.bonus.bmw.domain.vo.BmWorkerContract; +import com.bonus.bmw.domain.vo.BmWorkerWageCard; +import com.bonus.bmw.domain.vo.PmWorker; +import com.bonus.bmw.mapper.PmWorkerExitMapper; +import com.bonus.bmw.mapper.PmWorkerMapper; +import com.bonus.bmw.service.BmWorkerContractService; +import com.bonus.bmw.service.BmWorkerWageCardService; +import com.bonus.bmw.service.PmWorkerExitService; +import com.bonus.bmw.service.PmWorkerService; +import com.bonus.common.core.web.domain.AjaxResult; +import com.bonus.common.security.utils.SecurityUtils; +import com.github.pagehelper.util.StringUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +@Service +public class PmWorkerExitServiceImpl implements PmWorkerExitService { + + @Autowired + private PmWorkerExitMapper mapper; + + @Autowired + private BmWorkerContractService contractService; + + @Override + public List selectWorkList(PmWorkerDto o) { + return mapper.selectWorkList(o); + } + + @Override + public int updateWorkerExit(Integer id) { + //删除合同 + int i = contractService.deleteByWorkerId(id); + //删除实时在场 + int j = mapper.deleteEinMsgByWorkerId(id); + //修改在场记录表状态 + return 0; + } + +} 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 a1238a6..bcbd520 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 @@ -68,10 +68,11 @@ public class PmWorkerServiceImpl implements PmWorkerService{ record.setEinStatus(1); //1.bm_worker_ein_msg int i = mapper.insertEinMsg(record); - //2.bm_worker_ein_pro + //2.bm_worker_ein_pro 忽略新增 int j = mapper.insertEinPro(record); //3.bm_worker_ein_pro_record int k = mapper.insertEinProRecord(record); + //4.pm_user 添加人员登录表 TODO } private void addWorkerWageCardDataAndContract(PmWorker record) { @@ -113,8 +114,16 @@ public class PmWorkerServiceImpl implements PmWorkerService{ return worker; } + /** + * 修改入场数据 + * @param record + * @return + */ + @Transactional @Override public int updateByPrimaryKey(PmWorker record) { + //更新入场记录最新记录标识 再入场,清除最新标识 + mapper.updateEinRecordLast(record.getId()); //已经入过场了 if(record.getEinStatus() == 1){ addWorkerWageCardDataAndContract(record); @@ -124,6 +133,11 @@ public class PmWorkerServiceImpl implements PmWorkerService{ return 1; } + /** + * 查询人员列表 + * @param o + * @return + */ @Override public List selectWorkList(PmWorkerDto o) { return mapper.selectWorkList(o); 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 c5be2b8..91a0ff3 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 @@ -37,6 +37,12 @@ update bm_worker_contract set is_active = 0 where id = #{id} + + + update bm_worker_contract set is_active = 0 + where worker_id = #{workerId} and is_active = 1 + + insert into bm_worker_contract (worker_id, contract_code, contract_term_type, contract_start_date, diff --git a/bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/BmWorkerWageCardMapper.xml b/bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/BmWorkerWageCardMapper.xml index 92b08a1..e1337c9 100644 --- a/bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/BmWorkerWageCardMapper.xml +++ b/bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/BmWorkerWageCardMapper.xml @@ -122,7 +122,7 @@ update bm_worker_ein_msg - set light_status = 2 + set light_status = #{lightStatus},yellow_date = #{lightDate} where worker_id = #{workerId} \ No newline at end of file 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 new file mode 100644 index 0000000..3b0d96b --- /dev/null +++ b/bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/PmWorkerExitMapper.xml @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, `name`, id_number, sex, age, phone, birthday, nation, issuing_authority, start_time, + end_time, address, face_photo, ein_status, light_status, create_user, update_user + + + + + + DELETE FROM bm_worker_ein_msg WHERE worker_id = #{id} + + \ No newline at end of file diff --git a/bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/PmWorkerMapper.xml b/bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/PmWorkerMapper.xml index 7003b1a..8601a48 100644 --- a/bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/PmWorkerMapper.xml +++ b/bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/PmWorkerMapper.xml @@ -141,21 +141,25 @@ ) - - INSERT INTO bm_worker_ein_pro(worker_id,pro_id,pro_name,create_user) VALUES + + INSERT ignore INTO bm_worker_ein_pro(worker_id,pro_id,pro_name,create_user) VALUES (#{id},#{proId},#{proName},#{createUser}) - INSERT INTO bm_worker_ein_pro_record(ein_pro_id,team_id,team_name,sub_id,sub_name,post_id,post_name,ein_time,ein_status,create_user + INSERT INTO bm_worker_ein_pro_record(worker_id,pro_id,pro_name,team_id,team_name,sub_id,sub_name,post_id,post_name,ein_time,ein_status,create_user ,contract_id ) VALUES - (#{einProId},#{teamId},#{teamName},#{subId},#{subName},#{postId},#{postName},#{einTime},#{einStatus},#{createUser} + (#{id},#{proId},#{proName},#{teamId},#{teamName},#{subId},#{subName},#{postId},#{postName},#{einTime},#{einStatus},#{createUser} ,#{contractId} ) + + + update bm_worker_ein_pro_record set is_last = 0 where worker_id = #{id} + \ No newline at end of file