diff --git a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/controller/BmWorkerContractController.java b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/controller/BmWorkerContractController.java new file mode 100644 index 0000000..02fe41f --- /dev/null +++ b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/controller/BmWorkerContractController.java @@ -0,0 +1,126 @@ +package com.bonus.bmw.controller; +import com.bonus.bmw.domain.vo.BmWorkerContract; +import com.bonus.bmw.domain.vo.BmWorkerWageCard; +import com.bonus.bmw.service.impl.BmWorkerContractServiceImpl; +import com.bonus.common.core.utils.StringUtils; +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.RequiresPermissions; +import com.bonus.common.security.annotation.RequiresPermissionsOrInnerAuth; +import com.bonus.system.api.domain.SysRole; +import com.bonus.system.api.domain.SysUser; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +/** +* 人员合同信息表(bm_worker_contract)表控制层 +* +* @author fly +*/ +@RestController +@RequestMapping("/workerContract") +public class BmWorkerContractController extends BaseController { +/** +* 服务对象 +*/ + @Autowired + private BmWorkerContractServiceImpl service; + + /** + * 查询列表 + * @param o + * @return + * , requiresPermissions = @RequiresPermissions("system:contract:list") + */ + @RequiresPermissionsOrInnerAuth(innerAuth = @InnerAuth(isUser = false)) + @GetMapping("/list") + @SysLog(title = "合同管理", businessType = OperaType.QUERY, logType = 0, module = "施工人员->红绿灯管理->合同管理", details = "查询合同列表") + public TableDataInfo list(BmWorkerContract o) { + try { + startPage(); + List list = service.selectContractList(o); + return getDataTable(list); + } catch (Exception e) { + logger.error(e.toString(), e); + } + return getDataTableError(new ArrayList<>()); + } + + /** + * 查询列表 + * @param o + * @return + * , requiresPermissions = @RequiresPermissions("system:contract:list") + */ + @RequiresPermissionsOrInnerAuth(innerAuth = @InnerAuth(isUser = false)) + @GetMapping("/workerList") + @SysLog(title = "合同管理", businessType = OperaType.QUERY, logType = 0, module = "施工人员->红绿灯管理->合同管理", details = "查询单人合同列表") + public TableDataInfo workerList(BmWorkerContract o) { + try { + startPage(); + List list = service.selectContractListByWorkerId(o); + return getDataTable(list); + } catch (Exception e) { + logger.error(e.toString(), e); + } + return getDataTableError(new ArrayList<>()); + } + + /** + * 合同获取详细信息 + */ + //, requiresPermissions = @RequiresPermissions("system:contract:query") + @RequiresPermissionsOrInnerAuth(innerAuth = @InnerAuth) + @GetMapping({ "/{id}"}) + public AjaxResult getInfo(@PathVariable(value = "id") Integer id) { + try { + AjaxResult ajax = AjaxResult.success(); + BmWorkerContract o = new BmWorkerContract(); + o.setId(id); + List list = service.selectContractListByWorkerId(o); + ajax.put("data", list); + return ajax; + } catch (Exception e) { + logger.error(e.toString(), e); + } + return error("系统异常,请联系管理员"); + } + + + //, requiresPermissions = @RequiresPermissions("system:contract:edit") + @RequiresPermissionsOrInnerAuth(innerAuth = @InnerAuth) + @PostMapping("/edit") + @SysLog(title = "合同管理", businessType = OperaType.UPDATE, logType = 0, module = "施工人员->红绿灯管理->合同管理", details = "修改合同") + public AjaxResult edit(@Validated @RequestBody BmWorkerContract o) { + try { + return toAjax(service.updateByPrimaryKey(o)); + } catch (Exception e) { + logger.error(e.toString(), e); + } + return error("系统异常,请联系管理员"); + } + + //, requiresPermissions = @RequiresPermissions("system:contract:remove") + @RequiresPermissionsOrInnerAuth(innerAuth = @InnerAuth) + @PostMapping("/delete/{id}") + @SysLog(title = "合同管理", businessType = OperaType.DELETE, logType = 0, module = "施工人员->红绿灯管理->合同管理", details = "删除合同") + public AjaxResult remove(@PathVariable("id") Integer id) { + try { + return toAjax(service.deleteByPrimaryKey(id)); + } catch (Exception e) { + logger.error(e.toString(), e); + } + return error("系统异常,请联系管理员"); + } + +} 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 a658be6..1adbc65 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 @@ -52,9 +52,10 @@ public class BmWorkerWageCardController extends BaseController { return getDataTableError(new ArrayList<>()); } - @RequiresPermissionsOrInnerAuth(innerAuth = @InnerAuth, requiresPermissions = @RequiresPermissions("system:wageCard:edit")) + //, requiresPermissions = @RequiresPermissions("system:wageCard:edit") + @RequiresPermissionsOrInnerAuth(innerAuth = @InnerAuth) @PostMapping("/edit") - @SysLog(title = "查询工资卡列表", businessType = OperaType.UPDATE, logType = 0, module = "施工人员->红绿灯管理->工资卡管理", details = "修改工资卡") + @SysLog(title = "工资卡管理", businessType = OperaType.UPDATE, logType = 0, module = "施工人员->红绿灯管理->工资卡管理", details = "修改工资卡") public AjaxResult edit(@Validated @RequestBody BmWorkerWageCard o) { try { return toAjax(service.updateByPrimaryKey(o)); @@ -64,8 +65,8 @@ public class BmWorkerWageCardController extends BaseController { return error("系统异常,请联系管理员"); } - - @RequiresPermissionsOrInnerAuth(innerAuth = @InnerAuth, requiresPermissions = @RequiresPermissions("system:user:remove")) +//, requiresPermissions = @RequiresPermissions("system:wageCard:remove") + @RequiresPermissionsOrInnerAuth(innerAuth = @InnerAuth) @PostMapping("/delete/{id}") @SysLog(title = "工资卡管理", businessType = OperaType.DELETE, logType = 0, module = "施工人员->红绿灯管理->工资卡管理", details = "删除工资卡") public AjaxResult remove(@PathVariable("id") Integer id) { diff --git a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/domain/vo/BmWorkerContract.java b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/domain/vo/BmWorkerContract.java new file mode 100644 index 0000000..fdecbb2 --- /dev/null +++ b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/domain/vo/BmWorkerContract.java @@ -0,0 +1,121 @@ +package com.bonus.bmw.domain.vo; + +import java.util.Date; +import lombok.Data; + +/** + * 人员合同信息表 + */ +@Data +public class BmWorkerContract { + /** + * 编号 + */ + private Integer id; + + /** + * 施工人员id + */ + private Integer workerId; + + /** + * 合同编码 + */ + private String contractCode; + + /** + * 合同期限类型 + */ + private String contractTermType; + + /** + * 合同开始时间 + */ + private Date contractStartDate; + + /** + * 合同结束时间 + */ + private Date contractStopDate; + + /** + * 工资核定方式:天、月 + */ + private String wageApprovedWay; + + /** + * 工资核定标准(元) + */ + private Double wageCriterion; + + /** + * 日工资标准(月按30天平均计入) + */ + private Double dayRate; + + /** + * 合同上传时间 + */ + private Date contractUploadDate; + + /** + * 合同失效时间 + */ + private Date contractInvalidDate; + + /** + * 创建人 + */ + private String createUser; + + /** + * 修改人 + */ + private String updateUser; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 修改时间 + */ + private Date updateTime; + + /** + * 姓名 + */ + private String name; + + /** + * 身份证号码 + */ + private String idNumber; + + /** + * 工程名称 + */ + private String proName; + + /** + * 班组名称 + */ + private String teamName; + + /** + * 分包名称 + */ + private String subName; + + /** + * 是否签合同 + */ + private String isSign; + + /** + * 合同是否有效 + */ + private String isActive; + +} \ No newline at end of file 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 new file mode 100644 index 0000000..97564c6 --- /dev/null +++ b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/mapper/BmWorkerContractMapper.java @@ -0,0 +1,37 @@ +package com.bonus.bmw.mapper; + +import com.bonus.bmw.domain.vo.BmWorkerContract; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface BmWorkerContractMapper { + /** + * delete by primary key + * @param id primaryKey + * @return deleteCount + */ + int deleteByPrimaryKey(Integer id); + + /** + * insert record to table + * @param record the record + * @return insert count + */ + int insert(BmWorkerContract record); + + /** + * 查询合同列表 + * @param o + * @return + */ + List selectContractList(BmWorkerContract o); + + /** + * 查询单人合同列表 + * @param o + * @return + */ + List selectContractListByWorkerId(BmWorkerContract o); +} \ 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 2c0e583..23e0e86 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 @@ -5,6 +5,12 @@ import org.apache.ibatis.annotations.Mapper; import java.util.List; +/** + * @Description: BmWorkerWageCardMapper + * @Author: fly + * @Date: 2025-08-11 09:09 + * @Copyright: Copyright (c) 2025 fly. All rights reserved. + */ @Mapper public interface BmWorkerWageCardMapper { /** 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 new file mode 100644 index 0000000..24c341c --- /dev/null +++ b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/BmWorkerContractService.java @@ -0,0 +1,37 @@ +package com.bonus.bmw.service; + +import com.bonus.bmw.domain.vo.BmWorkerContract; +import com.bonus.bmw.domain.vo.BmWorkerWageCard; + +import java.util.List; + +public interface BmWorkerContractService{ + + /** + * 删除合同 + * @param id + * @return + */ + int deleteByPrimaryKey(Integer id); + + /** + * 修改合同 + * @param record + * @return + */ + int updateByPrimaryKey(BmWorkerContract record); + + /** + * 查询合同列表 + * @param o + * @return + */ + List selectContractList(BmWorkerContract o); + + /** + * 根据施工人员id查询合同列表 + * @param o + * @return + */ + List selectContractListByWorkerId(BmWorkerContract o); +} 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 new file mode 100644 index 0000000..8e398db --- /dev/null +++ b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/impl/BmWorkerContractServiceImpl.java @@ -0,0 +1,77 @@ +package com.bonus.bmw.service.impl; + +import com.bonus.common.security.utils.SecurityUtils; +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 java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.Collections; +import java.util.List; + +@Service +public class BmWorkerContractServiceImpl implements BmWorkerContractService{ + + @Autowired + private BmWorkerContractMapper mapper; + + @Override + public int deleteByPrimaryKey(Integer id) { + return mapper.deleteByPrimaryKey(id); + } + + /** + * 更新合同 + * @param record + * @return + */ + @Override + public int updateByPrimaryKey(BmWorkerContract record) { + //如果有旧的有效合同执行删除 + if(record.getId() != null){ + deleteByPrimaryKey(record.getId()); + } + //存文件 TODO + record.setCreateUser(SecurityUtils.getUsername()); + //判断是日合同还是月合同 + if ("月".equals(record.getWageApprovedWay())) { + BigDecimal wageCriterion = BigDecimal.valueOf(record.getWageCriterion()); + BigDecimal dayRate = wageCriterion.divide(BigDecimal.valueOf(30), 2, RoundingMode.HALF_UP); + record.setDayRate(dayRate.doubleValue()); + } else { + // 保持原值,也建议保留两位小数以统一精度 + BigDecimal wageCriterion = BigDecimal.valueOf(record.getWageCriterion()); + BigDecimal dayRate = wageCriterion.setScale(2, RoundingMode.HALF_UP); + record.setDayRate(dayRate.doubleValue()); + } + int insert = mapper.insert(record); + //将合同id保存到入场表 TODO + return insert; + } + + /** + * 查询合同列表 + * @param o + * @return + */ + @Override + public List selectContractList(BmWorkerContract o) { + return mapper.selectContractList(o); + } + + /** + * 查询单人合同列表 + * @param o + * @return + */ + @Override + public List selectContractListByWorkerId(BmWorkerContract o) { + return mapper.selectContractListByWorkerId(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 new file mode 100644 index 0000000..ae84f72 --- /dev/null +++ b/bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/BmWorkerContractMapper.xml @@ -0,0 +1,119 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, worker_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, update_user + + + + + update bm_worker_contract set is_active = 0 + where id = #{id} + + + + insert into bm_worker_contract (worker_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}, + #{contractStopDate}, #{wageApprovedWay}, #{wageCriterion}, #{dayRate}, #{contractUploadDate}, + #{contractInvalidDate}, #{createUser}) + + + + + + \ No newline at end of file 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 similarity index 90% rename from bonus-modules/bonus-bmw/src/main/resources/mapper.bmw/BmWorkerWageCardMapper.xml rename to bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/BmWorkerWageCardMapper.xml index eee5b68..47b3cce 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 @@ -2,8 +2,6 @@ - - @@ -17,24 +15,22 @@ - id, worker_id, bank_card_code, bank_name, bank_branch_name, create_user, update_user - update bm_worker_wage_card set is_active = 0 where id = #{id} - - + insert into bm_worker_wage_card (worker_id, bank_card_code, bank_name, bank_branch_name, create_user) values (#{workerId}, #{bankCardCode}, #{bankName}, #{bankBranchName}, #{createUser})