diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/service/IBusMaterialsInventoryService.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/service/IBusMaterialsInventoryService.java index 2171ce12..24163e61 100644 --- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/service/IBusMaterialsInventoryService.java +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/service/IBusMaterialsInventoryService.java @@ -75,7 +75,7 @@ public interface IBusMaterialsInventoryService extends IService getMaterialsInventoryVoPage(Page materialsInventoryPage); + Page getVoPage(Page materialsInventoryPage); } diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/service/impl/BusCompanyServiceImpl.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/service/impl/BusCompanyServiceImpl.java index 0991722c..75e6ed5e 100644 --- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/service/impl/BusCompanyServiceImpl.java +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/service/impl/BusCompanyServiceImpl.java @@ -139,7 +139,7 @@ public class BusCompanyServiceImpl extends ServiceImpl 0) { - throw new ServiceException("项目名重复", HttpStatus.BAD_REQUEST); + throw new ServiceException("公司名重复", HttpStatus.BAD_REQUEST); } if (projectId == null) { throw new ServiceException("项目 id 不能为空", HttpStatus.BAD_REQUEST); diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/service/impl/BusMaterialsInventoryServiceImpl.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/service/impl/BusMaterialsInventoryServiceImpl.java index 8870dd1b..eefa9c27 100644 --- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/service/impl/BusMaterialsInventoryServiceImpl.java +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/service/impl/BusMaterialsInventoryServiceImpl.java @@ -59,7 +59,7 @@ public class BusMaterialsInventoryServiceImpl extends ServiceImpl result = this.page(new Page<>(current, size), this.getQueryWrapper(req)); - return this.getMaterialsInventoryVoPage(result); + return this.getVoPage(result); } /** @@ -87,7 +87,7 @@ public class BusMaterialsInventoryServiceImpl extends ServiceImpl queryList(MaterialsInventoryQueryReq req) { QueryWrapper queryWrapper = this.getQueryWrapper(req); List list = this.list(queryWrapper); - return list.stream().map(this::getMaterialsInventoryVo).toList(); + return list.stream().map(this::getVo).toList(); } /** @@ -176,19 +176,19 @@ public class BusMaterialsInventoryServiceImpl extends ServiceImpl getMaterialsInventoryVoPage(Page materialsInventoryPage) { + public Page getVoPage(Page materialsInventoryPage) { List materialsInventoryList = materialsInventoryPage.getRecords(); Page materialsInventoryVoPage = new Page<>( materialsInventoryPage.getCurrent(), @@ -261,7 +261,7 @@ public class BusMaterialsInventoryServiceImpl extends ServiceImpl 封装对象列表 - List materialsInventoryVoList = materialsInventoryList.stream().map(this::getMaterialsInventoryVo).toList(); + List materialsInventoryVoList = materialsInventoryList.stream().map(this::getVo).toList(); materialsInventoryVoPage.setRecords(materialsInventoryVoList); return materialsInventoryVoPage; } diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/controller/BusConstructionUserController.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/controller/BusConstructionUserController.java new file mode 100644 index 00000000..86d1f11e --- /dev/null +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/controller/BusConstructionUserController.java @@ -0,0 +1,107 @@ +package org.dromara.project.controller; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.web.core.BaseController; +import org.dromara.project.domain.req.constructionuser.ConstructionUserCreateReq; +import org.dromara.project.domain.req.constructionuser.ConstructionUserQueryReq; +import org.dromara.project.domain.req.constructionuser.ConstructionUserUpdateReq; +import org.dromara.project.domain.vo.BusConstructionUserVo; +import org.dromara.project.service.IBusConstructionUserService; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 施工人员 + * + * @author lcj + * @date 2025-03-07 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/project/constructionUser") +public class BusConstructionUserController extends BaseController { + + private final IBusConstructionUserService busConstructionUserService; + + /** + * 查询施工人员列表 + */ + @SaCheckPermission("project:constructionUser:list") + @GetMapping("/list") + public Page list(ConstructionUserQueryReq req) { + return busConstructionUserService.queryPageList(req); + } + + /** + * 导出施工人员列表 + */ + @SaCheckPermission("project:constructionUser:export") + @Log(title = "施工人员", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(ConstructionUserQueryReq req, HttpServletResponse response) { + List list = busConstructionUserService.queryList(req); + ExcelUtil.exportExcel(list, "施工人员", BusConstructionUserVo.class, response); + } + + /** + * 获取施工人员详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("project:constructionUser:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(busConstructionUserService.queryById(id)); + } + + /** + * 新增施工人员 + */ + @SaCheckPermission("project:constructionUser:add") + @Log(title = "施工人员", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody ConstructionUserCreateReq req) { + return R.ok(busConstructionUserService.insertByBo(req)); + } + + /** + * 修改施工人员 + */ + @SaCheckPermission("project:constructionUser:edit") + @Log(title = "施工人员", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody ConstructionUserUpdateReq req) { + return toAjax(busConstructionUserService.updateByBo(req)); + } + + /** + * 删除施工人员 + * + * @param ids 主键串 + */ + @SaCheckPermission("project:constructionUser:remove") + @Log(title = "施工人员", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(busConstructionUserService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/controller/BusContractorController.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/controller/BusContractorController.java new file mode 100644 index 00000000..ffab2b8f --- /dev/null +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/controller/BusContractorController.java @@ -0,0 +1,107 @@ +package org.dromara.project.controller; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.web.core.BaseController; +import org.dromara.project.domain.req.contractor.ContractorCreateReq; +import org.dromara.project.domain.req.contractor.ContractorQueryReq; +import org.dromara.project.domain.req.contractor.ContractorUpdateReq; +import org.dromara.project.domain.vo.BusContractorVo; +import org.dromara.project.service.IBusContractorService; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 分包单位 + * + * @author lcj + * @date 2025-03-07 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/project/contractor") +public class BusContractorController extends BaseController { + + private final IBusContractorService busContractorService; + + /** + * 查询分包单位列表 + */ + @SaCheckPermission("project:contractor:list") + @GetMapping("/list") + public Page list(ContractorQueryReq req) { + return busContractorService.queryPageList(req); + } + + /** + * 导出分包单位列表 + */ + @SaCheckPermission("project:contractor:export") + @Log(title = "分包单位", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(ContractorQueryReq req, HttpServletResponse response) { + List list = busContractorService.queryList(req); + ExcelUtil.exportExcel(list, "分包单位", BusContractorVo.class, response); + } + + /** + * 获取分包单位详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("project:contractor:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(busContractorService.queryById(id)); + } + + /** + * 新增分包单位 + */ + @SaCheckPermission("project:contractor:add") + @Log(title = "分包单位", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody ContractorCreateReq req) { + return R.ok(busContractorService.insertByBo(req)); + } + + /** + * 修改分包单位 + */ + @SaCheckPermission("project:contractor:edit") + @Log(title = "分包单位", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody ContractorUpdateReq req) { + return toAjax(busContractorService.updateByBo(req)); + } + + /** + * 删除分包单位 + * + * @param ids 主键串 + */ + @SaCheckPermission("project:contractor:remove") + @Log(title = "分包单位", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(busContractorService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/controller/BusProjectTeamController.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/controller/BusProjectTeamController.java new file mode 100644 index 00000000..b3e65dcf --- /dev/null +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/controller/BusProjectTeamController.java @@ -0,0 +1,107 @@ +package org.dromara.project.controller; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.web.core.BaseController; +import org.dromara.project.domain.req.projectteam.ProjectTeamCreateReq; +import org.dromara.project.domain.req.projectteam.ProjectTeamQueryReq; +import org.dromara.project.domain.req.projectteam.ProjectTeamUpdateReq; +import org.dromara.project.domain.vo.BusProjectTeamVo; +import org.dromara.project.service.IBusProjectTeamService; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 项目班组 + * + * @author lcj + * @date 2025-03-07 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/project/projectTeam") +public class BusProjectTeamController extends BaseController { + + private final IBusProjectTeamService busProjectTeamService; + + /** + * 查询项目班组列表 + */ + @SaCheckPermission("project:projectTeam:list") + @GetMapping("/list") + public Page list(ProjectTeamQueryReq req) { + return busProjectTeamService.queryPageList(req); + } + + /** + * 导出项目班组列表 + */ + @SaCheckPermission("project:projectTeam:export") + @Log(title = "项目班组", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(ProjectTeamQueryReq req, HttpServletResponse response) { + List list = busProjectTeamService.queryList(req); + ExcelUtil.exportExcel(list, "项目班组", BusProjectTeamVo.class, response); + } + + /** + * 获取项目班组详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("project:projectTeam:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(busProjectTeamService.queryById(id)); + } + + /** + * 新增项目班组 + */ + @SaCheckPermission("project:projectTeam:add") + @Log(title = "项目班组", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody ProjectTeamCreateReq req) { + return R.ok(busProjectTeamService.insertByBo(req)); + } + + /** + * 修改项目班组 + */ + @SaCheckPermission("project:projectTeam:edit") + @Log(title = "项目班组", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody ProjectTeamUpdateReq req) { + return toAjax(busProjectTeamService.updateByBo(req)); + } + + /** + * 删除项目班组 + * + * @param ids 主键串 + */ + @SaCheckPermission("project:projectTeam:remove") + @Log(title = "项目班组", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(busProjectTeamService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/controller/BusProjectTeamMemberController.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/controller/BusProjectTeamMemberController.java new file mode 100644 index 00000000..280f297f --- /dev/null +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/controller/BusProjectTeamMemberController.java @@ -0,0 +1,107 @@ +package org.dromara.project.controller; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.web.core.BaseController; +import org.dromara.project.domain.req.projectteammember.ProjectTeamMemberCreateReq; +import org.dromara.project.domain.req.projectteammember.ProjectTeamMemberQueryReq; +import org.dromara.project.domain.req.projectteammember.ProjectTeamMemberUpdateReq; +import org.dromara.project.domain.vo.BusProjectTeamMemberVo; +import org.dromara.project.service.IBusProjectTeamMemberService; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 项目班组下的成员 + * + * @author lcj + * @date 2025-03-07 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/project/projectTeamMember") +public class BusProjectTeamMemberController extends BaseController { + + private final IBusProjectTeamMemberService busProjectTeamMemberService; + + /** + * 查询项目班组下的成员列表 + */ + @SaCheckPermission("project:projectTeamMember:list") + @GetMapping("/list") + public Page list(ProjectTeamMemberQueryReq req) { + return busProjectTeamMemberService.queryPageList(req); + } + + /** + * 导出项目班组下的成员列表 + */ + @SaCheckPermission("project:projectTeamMember:export") + @Log(title = "项目班组下的成员", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(ProjectTeamMemberQueryReq req, HttpServletResponse response) { + List list = busProjectTeamMemberService.queryList(req); + ExcelUtil.exportExcel(list, "项目班组下的成员", BusProjectTeamMemberVo.class, response); + } + + /** + * 获取项目班组下的成员详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("project:projectTeamMember:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(busProjectTeamMemberService.queryById(id)); + } + + /** + * 新增项目班组下的成员 + */ + @SaCheckPermission("project:projectTeamMember:add") + @Log(title = "项目班组下的成员", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody ProjectTeamMemberCreateReq req) { + return R.ok(busProjectTeamMemberService.insertByBo(req)); + } + + /** + * 修改项目班组下的成员 + */ + @SaCheckPermission("project:projectTeamMember:edit") + @Log(title = "项目班组下的成员", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody ProjectTeamMemberUpdateReq req) { + return toAjax(busProjectTeamMemberService.updateByBo(req)); + } + + /** + * 删除项目班组下的成员 + * + * @param ids 主键串 + */ + @SaCheckPermission("project:projectTeamMember:remove") + @Log(title = "项目班组下的成员", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(busProjectTeamMemberService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/controller/UserProjectRelevancyController.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/controller/UserProjectRelevancyController.java index 82df89ff..8a8a91cc 100644 --- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/controller/UserProjectRelevancyController.java +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/controller/UserProjectRelevancyController.java @@ -15,7 +15,6 @@ import org.dromara.common.excel.utils.ExcelUtil; import org.dromara.common.idempotent.annotation.RepeatSubmit; import org.dromara.common.log.annotation.Log; import org.dromara.common.log.enums.BusinessType; -import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.common.web.core.BaseController; import org.dromara.project.domain.UserProjectRelevancy; diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/BusConstructionUser.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/BusConstructionUser.java new file mode 100644 index 00000000..e35bdcd8 --- /dev/null +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/BusConstructionUser.java @@ -0,0 +1,179 @@ +package org.dromara.project.domain; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +import java.io.Serial; + +/** + * 施工人员对象 bus_construction_user + * + * @author lcj + * @date 2025-03-07 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("bus_construction_user") +public class BusConstructionUser extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId(value = "id") + private Long id; + + /** + * 微信id + */ + private String openid; + + /** + * 微信名称 + */ + private String nickName; + + /** + * 人脸照 + */ + private String pacePhoto; + + /** + * 人员姓名 + */ + private String userName; + + /** + * 项目id + */ + private Long projectId; + + /** + * 分包公司id + */ + private Long contractorId; + + /** + * 班组id + */ + private Long teamId; + + /** + * 状态(0在职 1离职) + */ + private Long status; + + /** + * 是否代打 + */ + private Long isPinch; + + /** + * 联系电话 + */ + private String phone; + + /** + * 0:保密 1:男 2女 + */ + private Long sex; + + /** + * 民族 + */ + private String nation; + + /** + * 身份证号码 + */ + private String sfzNumber; + + /** + * 身份证有效开始期 + */ + private String sfzStart; + + /** + * 身份证有效结束期 + */ + private String sfzEnd; + + /** + * 身份证地址 + */ + private String sfzSite; + + /** + * 身份证出生日期 + */ + private String sfzBirth; + + /** + * 籍贯 + */ + private String nativePlace; + + /** + * 银行卡号 + */ + private String yhkNumber; + + /** + * 开户行 + */ + private String yhkOpeningBank; + + /** + * 持卡人 + */ + private String yhkCardholder; + + /** + * 工种(字典type_of_work) + */ + private Long typeOfWork; + + /** + * 打卡(0启用打卡 1禁止打卡) + */ + private Long clock; + + /** + * 入场时间 + */ + private String entryDate; + + /** + * 离场时间 + */ + private String leaveDate; + + /** + * 薪水 + */ + private Long salary; + + /** + * 备注 + */ + private String remark; + + /** + * 删除时间 + */ + private Date deletedAt; + + /** + * 是否删除(0正常 1删除) + */ + @TableLogic + private Long isDelete; + + +} diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/BusContractor.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/BusContractor.java new file mode 100644 index 00000000..7c8f2f4b --- /dev/null +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/BusContractor.java @@ -0,0 +1,74 @@ +package org.dromara.project.domain; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +import java.io.Serial; + +/** + * 分包单位对象 bus_contractor + * + * @author lcj + * @date 2025-03-07 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("bus_contractor") +public class BusContractor extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId(value = "id") + private Long id; + + /** + * 公司名称 + */ + private String name; + + /** + * 负责人 + */ + private String principal; + + /** + * 负责人联系电话 + */ + private String principalPhone; + + /** + * 管理人 + */ + private String custodian; + + /** + * 管理人联系电话 + */ + private String custodianPhone; + + /** + * 备注 + */ + private String remark; + + /** + * 删除时间 + */ + private Date deletedAt; + + /** + * 是否删除(0正常 1删除) + */ + @TableLogic + private Long isDelete; + + +} diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/BusProjectTeam.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/BusProjectTeam.java new file mode 100644 index 00000000..982c9274 --- /dev/null +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/BusProjectTeam.java @@ -0,0 +1,66 @@ +package org.dromara.project.domain; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Date; + +import com.fasterxml.jackson.annotation.JsonFormat; + +import java.io.Serial; + +/** + * 项目班组对象 bus_project_team + * + * @author lcj + * @date 2025-03-07 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("bus_project_team") +public class BusProjectTeam extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId(value = "id") + private Long id; + + /** + * 项目id + */ + private Long projectId; + + /** + * 班组名称 + */ + private String teamName; + + /** + * 范围内打卡(0范围内打卡 1任何地点打卡)默认为1 + */ + private Long isClockIn; + + /** + * 备注 + */ + private String remark; + + /** + * 删除时间 + */ + private Date deletedAt; + + /** + * 是否删除(0正常 1删除) + */ + @TableLogic + private Long isDelete; + + +} diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/BusProjectTeamMember.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/BusProjectTeamMember.java new file mode 100644 index 00000000..10fdb60d --- /dev/null +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/BusProjectTeamMember.java @@ -0,0 +1,63 @@ +package org.dromara.project.domain; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +import java.io.Serial; + +/** + * 项目班组下的成员对象 bus_project_team_member + * + * @author lcj + * @date 2025-03-07 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("bus_project_team_member") +public class BusProjectTeamMember extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId(value = "id") + private Long id; + + /** + * 班组id + */ + private Long teamId; + + /** + * 项目id + */ + private Long projectId; + + /** + * 施工人员id + */ + private Long memberId; + + /** + * 岗位(默认为0普通员工,1组长) + */ + private Long postId; + + /** + * 备注 + */ + private String remark; + + /** + * 删除时间 + */ + private Date deletedAt; + + +} diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/bo/BusConstructionUserBo.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/bo/BusConstructionUserBo.java new file mode 100644 index 00000000..69052b40 --- /dev/null +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/bo/BusConstructionUserBo.java @@ -0,0 +1,169 @@ +package org.dromara.project.domain.bo; + +import org.dromara.project.domain.BusConstructionUser; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +/** + * 施工人员业务对象 bus_construction_user + * + * @author lcj + * @date 2025-03-07 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = BusConstructionUser.class, reverseConvertGenerate = false) +public class BusConstructionUserBo extends BaseEntity { + + /** + * 主键id + */ + @NotNull(message = "主键id不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 微信id + */ + private String openid; + + /** + * 微信名称 + */ + private String nickName; + + /** + * 人脸照 + */ + private String pacePhoto; + + /** + * 人员姓名 + */ + private String userName; + + /** + * 项目id + */ + private Long projectId; + + /** + * 分包公司id + */ + private Long contractorId; + + /** + * 班组id + */ + private Long teamId; + + /** + * 状态(0在职 1离职) + */ + private Long status; + + /** + * 是否代打 + */ + private Long isPinch; + + /** + * 联系电话 + */ + private String phone; + + /** + * 0:保密 1:男 2女 + */ + @NotNull(message = "0:保密 1:男 2女不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long sex; + + /** + * 民族 + */ + private String nation; + + /** + * 身份证号码 + */ + private String sfzNumber; + + /** + * 身份证有效开始期 + */ + private String sfzStart; + + /** + * 身份证有效结束期 + */ + private String sfzEnd; + + /** + * 身份证地址 + */ + private String sfzSite; + + /** + * 身份证出生日期 + */ + private String sfzBirth; + + /** + * 籍贯 + */ + private String nativePlace; + + /** + * 银行卡号 + */ + private String yhkNumber; + + /** + * 开户行 + */ + private String yhkOpeningBank; + + /** + * 持卡人 + */ + private String yhkCardholder; + + /** + * 工种(字典type_of_work) + */ + private Long typeOfWork; + + /** + * 打卡(0启用打卡 1禁止打卡) + */ + @NotNull(message = "打卡(0启用打卡 1禁止打卡)不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long clock; + + /** + * 入场时间 + */ + private String entryDate; + + /** + * 离场时间 + */ + private String leaveDate; + + /** + * 薪水 + */ + private Long salary; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/bo/BusContractorBo.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/bo/BusContractorBo.java new file mode 100644 index 00000000..73140c28 --- /dev/null +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/bo/BusContractorBo.java @@ -0,0 +1,62 @@ +package org.dromara.project.domain.bo; + +import org.dromara.project.domain.BusContractor; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +/** + * 分包单位业务对象 bus_contractor + * + * @author lcj + * @date 2025-03-07 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = BusContractor.class, reverseConvertGenerate = false) +public class BusContractorBo extends BaseEntity { + + /** + * 主键id + */ + @NotNull(message = "主键id不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 公司名称 + */ + private String name; + + /** + * 负责人 + */ + private String principal; + + /** + * 负责人联系电话 + */ + private String principalPhone; + + /** + * 管理人 + */ + private String custodian; + + /** + * 管理人联系电话 + */ + private String custodianPhone; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/bo/BusProjectTeamBo.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/bo/BusProjectTeamBo.java new file mode 100644 index 00000000..c983ecee --- /dev/null +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/bo/BusProjectTeamBo.java @@ -0,0 +1,53 @@ +package org.dromara.project.domain.bo; + +import org.dromara.project.domain.BusProjectTeam; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +/** + * 项目班组业务对象 bus_project_team + * + * @author lcj + * @date 2025-03-07 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = BusProjectTeam.class, reverseConvertGenerate = false) +public class BusProjectTeamBo extends BaseEntity { + + /** + * 主键id + */ + @NotNull(message = "主键id不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 项目id + */ + private Long projectId; + + /** + * 班组名称 + */ + private String teamName; + + /** + * 范围内打卡(0范围内打卡 1任何地点打卡)默认为1 + */ + @NotNull(message = "范围内打卡(0范围内打卡 1任何地点打卡)默认为1不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long isClockIn; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/bo/BusProjectTeamMemberBo.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/bo/BusProjectTeamMemberBo.java new file mode 100644 index 00000000..d9455df8 --- /dev/null +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/bo/BusProjectTeamMemberBo.java @@ -0,0 +1,57 @@ +package org.dromara.project.domain.bo; + +import org.dromara.project.domain.BusProjectTeamMember; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +/** + * 项目班组下的成员业务对象 bus_project_team_member + * + * @author lcj + * @date 2025-03-07 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = BusProjectTeamMember.class, reverseConvertGenerate = false) +public class BusProjectTeamMemberBo extends BaseEntity { + + /** + * 主键id + */ + @NotNull(message = "主键id不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 班组id + */ + private Long teamId; + + /** + * 项目id + */ + private Long projectId; + + /** + * 施工人员id + */ + private Long memberId; + + /** + * 岗位(默认为0普通员工,1组长) + */ + private Long postId; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/req/constructionuser/ConstructionUserCreateReq.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/req/constructionuser/ConstructionUserCreateReq.java new file mode 100644 index 00000000..f0de3bf7 --- /dev/null +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/req/constructionuser/ConstructionUserCreateReq.java @@ -0,0 +1,153 @@ +package org.dromara.project.domain.req.constructionuser; + +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +/** + * @author lcj + * @date 2025/3/5 14:05 + */ +@Data +public class ConstructionUserCreateReq implements Serializable { + + @Serial + private static final long serialVersionUID = -7603153089205421154L; + + /** + * 微信id + */ + private String openid; + + /** + * 微信名称 + */ + private String nickName; + + /** + * 人脸照 + */ + private String pacePhoto; + + /** + * 人员姓名 + */ + private String userName; + + /** + * 项目id + */ + private Long projectId; + + /** + * 分包公司id + */ + private Long contractorId; + + /** + * 班组id + */ + private Long teamId; + + /** + * 状态(0在职 1离职) + */ + private Long status; + + /** + * 是否代打 + */ + private Long isPinch; + + /** + * 联系电话 + */ + private String phone; + + /** + * 0:保密 1:男 2女 + */ + private Long sex; + + /** + * 民族 + */ + private String nation; + + /** + * 身份证号码 + */ + private String sfzNumber; + + /** + * 身份证有效开始期 + */ + private String sfzStart; + + /** + * 身份证有效结束期 + */ + private String sfzEnd; + + /** + * 身份证地址 + */ + private String sfzSite; + + /** + * 身份证出生日期 + */ + private String sfzBirth; + + /** + * 籍贯 + */ + private String nativePlace; + + /** + * 银行卡号 + */ + private String yhkNumber; + + /** + * 开户行 + */ + private String yhkOpeningBank; + + /** + * 持卡人 + */ + private String yhkCardholder; + + /** + * 工种(字典type_of_work) + */ + private Long typeOfWork; + + /** + * 打卡(0启用打卡 1禁止打卡) + */ + private Long clock; + + /** + * 入场时间 + */ + private String entryDate; + + /** + * 离场时间 + */ + private String leaveDate; + + /** + * 薪水 + */ + private Long salary; + + /** + * 备注 + */ + private String remark; + +} diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/req/constructionuser/ConstructionUserQueryReq.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/req/constructionuser/ConstructionUserQueryReq.java new file mode 100644 index 00000000..619510df --- /dev/null +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/req/constructionuser/ConstructionUserQueryReq.java @@ -0,0 +1,146 @@ +package org.dromara.project.domain.req.constructionuser; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.dromara.common.core.common.PageRequest; + +import java.io.Serial; +import java.io.Serializable; + +/** + * @author lcj + * @date 2025/3/5 14:31 + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class ConstructionUserQueryReq extends PageRequest implements Serializable { + + @Serial + private static final long serialVersionUID = 3252651952758479341L; + + /** + * 主键id + */ + private Long id; + + /** + * 微信id + */ + private String openid; + + /** + * 微信名称 + */ + private String nickName; + + /** + * 人员姓名 + */ + private String userName; + + /** + * 项目id + */ + private Long projectId; + + /** + * 分包公司id + */ + private Long contractorId; + + /** + * 班组id + */ + private Long teamId; + + /** + * 状态(0在职 1离职) + */ + private Long status; + + /** + * 是否代打 + */ + private Long isPinch; + + /** + * 联系电话 + */ + private String phone; + + /** + * 0:保密 1:男 2女 + */ + private Long sex; + + /** + * 民族 + */ + private String nation; + + /** + * 身份证号码 + */ + private String sfzNumber; + + /** + * 身份证有效开始期 + */ + private String sfzStart; + + /** + * 身份证有效结束期 + */ + private String sfzEnd; + + /** + * 身份证地址 + */ + private String sfzSite; + + /** + * 身份证出生日期 + */ + private String sfzBirth; + + /** + * 籍贯 + */ + private String nativePlace; + + /** + * 银行卡号 + */ + private String yhkNumber; + + /** + * 开户行 + */ + private String yhkOpeningBank; + + /** + * 持卡人 + */ + private String yhkCardholder; + + /** + * 工种(字典type_of_work) + */ + private Long typeOfWork; + + /** + * 打卡(0启用打卡 1禁止打卡) + */ + private Long clock; + + /** + * 薪水 + */ + private Long salary; + + /** + * 备注 + */ + private String remark; + +} diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/req/constructionuser/ConstructionUserUpdateReq.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/req/constructionuser/ConstructionUserUpdateReq.java new file mode 100644 index 00000000..7b8eccb2 --- /dev/null +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/req/constructionuser/ConstructionUserUpdateReq.java @@ -0,0 +1,158 @@ +package org.dromara.project.domain.req.constructionuser; + +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +/** + * @author lcj + * @date 2025/3/5 15:04 + */ +@Data +public class ConstructionUserUpdateReq implements Serializable { + + @Serial + private static final long serialVersionUID = -8022860866890925958L; + + /** + * 主键id + */ + private Long id; + + /** + * 微信id + */ + private String openid; + + /** + * 微信名称 + */ + private String nickName; + + /** + * 人脸照 + */ + private String pacePhoto; + + /** + * 人员姓名 + */ + private String userName; + + /** + * 项目id + */ + private Long projectId; + + /** + * 分包公司id + */ + private Long contractorId; + + /** + * 班组id + */ + private Long teamId; + + /** + * 状态(0在职 1离职) + */ + private Long status; + + /** + * 是否代打 + */ + private Long isPinch; + + /** + * 联系电话 + */ + private String phone; + + /** + * 0:保密 1:男 2女 + */ + private Long sex; + + /** + * 民族 + */ + private String nation; + + /** + * 身份证号码 + */ + private String sfzNumber; + + /** + * 身份证有效开始期 + */ + private String sfzStart; + + /** + * 身份证有效结束期 + */ + private String sfzEnd; + + /** + * 身份证地址 + */ + private String sfzSite; + + /** + * 身份证出生日期 + */ + private String sfzBirth; + + /** + * 籍贯 + */ + private String nativePlace; + + /** + * 银行卡号 + */ + private String yhkNumber; + + /** + * 开户行 + */ + private String yhkOpeningBank; + + /** + * 持卡人 + */ + private String yhkCardholder; + + /** + * 工种(字典type_of_work) + */ + private Long typeOfWork; + + /** + * 打卡(0启用打卡 1禁止打卡) + */ + private Long clock; + + /** + * 入场时间 + */ + private String entryDate; + + /** + * 离场时间 + */ + private String leaveDate; + + /** + * 薪水 + */ + private Long salary; + + /** + * 备注 + */ + private String remark; + +} diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/req/contractor/ContractorCreateReq.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/req/contractor/ContractorCreateReq.java new file mode 100644 index 00000000..df60b683 --- /dev/null +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/req/contractor/ContractorCreateReq.java @@ -0,0 +1,48 @@ +package org.dromara.project.domain.req.contractor; + +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +/** + * @author lcj + * @date 2025/3/5 14:05 + */ +@Data +public class ContractorCreateReq implements Serializable { + + @Serial + private static final long serialVersionUID = -7603153089205421154L; + + /** + * 公司名称 + */ + private String name; + + /** + * 负责人 + */ + private String principal; + + /** + * 负责人联系电话 + */ + private String principalPhone; + + /** + * 管理人 + */ + private String custodian; + + /** + * 管理人联系电话 + */ + private String custodianPhone; + + /** + * 备注 + */ + private String remark; + +} diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/req/contractor/ContractorQueryReq.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/req/contractor/ContractorQueryReq.java new file mode 100644 index 00000000..c341eead --- /dev/null +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/req/contractor/ContractorQueryReq.java @@ -0,0 +1,56 @@ +package org.dromara.project.domain.req.contractor; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.dromara.common.core.common.PageRequest; + +import java.io.Serial; +import java.io.Serializable; + +/** + * @author lcj + * @date 2025/3/5 14:31 + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class ContractorQueryReq extends PageRequest implements Serializable { + + @Serial + private static final long serialVersionUID = 3252651952758479341L; + + /** + * 主键id + */ + private Long id; + + /** + * 公司名称 + */ + private String name; + + /** + * 负责人 + */ + private String principal; + + /** + * 负责人联系电话 + */ + private String principalPhone; + + /** + * 管理人 + */ + private String custodian; + + /** + * 管理人联系电话 + */ + private String custodianPhone; + + /** + * 备注 + */ + private String remark; + +} diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/req/contractor/ContractorUpdateReq.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/req/contractor/ContractorUpdateReq.java new file mode 100644 index 00000000..11602c72 --- /dev/null +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/req/contractor/ContractorUpdateReq.java @@ -0,0 +1,53 @@ +package org.dromara.project.domain.req.contractor; + +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +/** + * @author lcj + * @date 2025/3/5 15:04 + */ +@Data +public class ContractorUpdateReq implements Serializable { + + @Serial + private static final long serialVersionUID = -8022860866890925958L; + + /** + * 主键id + */ + private Long id; + + /** + * 公司名称 + */ + private String name; + + /** + * 负责人 + */ + private String principal; + + /** + * 负责人联系电话 + */ + private String principalPhone; + + /** + * 管理人 + */ + private String custodian; + + /** + * 管理人联系电话 + */ + private String custodianPhone; + + /** + * 备注 + */ + private String remark; + +} diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/req/projectteam/ProjectTeamCreateReq.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/req/projectteam/ProjectTeamCreateReq.java new file mode 100644 index 00000000..edc4e2a4 --- /dev/null +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/req/projectteam/ProjectTeamCreateReq.java @@ -0,0 +1,38 @@ +package org.dromara.project.domain.req.projectteam; + +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +/** + * @author lcj + * @date 2025/3/5 14:05 + */ +@Data +public class ProjectTeamCreateReq implements Serializable { + + @Serial + private static final long serialVersionUID = -7603153089205421154L; + + /** + * 项目id + */ + private Long projectId; + + /** + * 班组名称 + */ + private String teamName; + + /** + * 范围内打卡(0范围内打卡 1任何地点打卡)默认为1 + */ + private Long isClockIn; + + /** + * 备注 + */ + private String remark; + +} diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/req/projectteam/ProjectTeamQueryReq.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/req/projectteam/ProjectTeamQueryReq.java new file mode 100644 index 00000000..2e02e97f --- /dev/null +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/req/projectteam/ProjectTeamQueryReq.java @@ -0,0 +1,46 @@ +package org.dromara.project.domain.req.projectteam; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.dromara.common.core.common.PageRequest; + +import java.io.Serial; +import java.io.Serializable; + +/** + * @author lcj + * @date 2025/3/5 14:31 + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class ProjectTeamQueryReq extends PageRequest implements Serializable { + + @Serial + private static final long serialVersionUID = 3252651952758479341L; + + /** + * 主键id + */ + private Long id; + + /** + * 项目id + */ + private Long projectId; + + /** + * 班组名称 + */ + private String teamName; + + /** + * 范围内打卡(0范围内打卡 1任何地点打卡)默认为1 + */ + private Long isClockIn; + + /** + * 备注 + */ + private String remark; + +} diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/req/projectteam/ProjectTeamUpdateReq.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/req/projectteam/ProjectTeamUpdateReq.java new file mode 100644 index 00000000..a2bb4d10 --- /dev/null +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/req/projectteam/ProjectTeamUpdateReq.java @@ -0,0 +1,43 @@ +package org.dromara.project.domain.req.projectteam; + +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +/** + * @author lcj + * @date 2025/3/5 15:04 + */ +@Data +public class ProjectTeamUpdateReq implements Serializable { + + @Serial + private static final long serialVersionUID = -8022860866890925958L; + + /** + * 主键id + */ + private Long id; + + /** + * 项目id + */ + private Long projectId; + + /** + * 班组名称 + */ + private String teamName; + + /** + * 范围内打卡(0范围内打卡 1任何地点打卡)默认为1 + */ + private Long isClockIn; + + /** + * 备注 + */ + private String remark; + +} diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/req/projectteammember/ProjectTeamMemberCreateReq.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/req/projectteammember/ProjectTeamMemberCreateReq.java new file mode 100644 index 00000000..4771cb13 --- /dev/null +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/req/projectteammember/ProjectTeamMemberCreateReq.java @@ -0,0 +1,43 @@ +package org.dromara.project.domain.req.projectteammember; + +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +/** + * @author lcj + * @date 2025/3/5 14:05 + */ +@Data +public class ProjectTeamMemberCreateReq implements Serializable { + + @Serial + private static final long serialVersionUID = -7603153089205421154L; + + /** + * 班组id + */ + private Long teamId; + + /** + * 项目id + */ + private Long projectId; + + /** + * 施工人员id + */ + private Long memberId; + + /** + * 岗位(默认为0普通员工,1组长) + */ + private Long postId; + + /** + * 备注 + */ + private String remark; + +} diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/req/projectteammember/ProjectTeamMemberQueryReq.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/req/projectteammember/ProjectTeamMemberQueryReq.java new file mode 100644 index 00000000..9b4602b2 --- /dev/null +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/req/projectteammember/ProjectTeamMemberQueryReq.java @@ -0,0 +1,51 @@ +package org.dromara.project.domain.req.projectteammember; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.dromara.common.core.common.PageRequest; + +import java.io.Serial; +import java.io.Serializable; + +/** + * @author lcj + * @date 2025/3/5 14:31 + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class ProjectTeamMemberQueryReq extends PageRequest implements Serializable { + + @Serial + private static final long serialVersionUID = 3252651952758479341L; + + /** + * 主键id + */ + private Long id; + + /** + * 班组id + */ + private Long teamId; + + /** + * 项目id + */ + private Long projectId; + + /** + * 施工人员id + */ + private Long memberId; + + /** + * 岗位(默认为0普通员工,1组长) + */ + private Long postId; + + /** + * 备注 + */ + private String remark; + +} diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/req/projectteammember/ProjectTeamMemberUpdateReq.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/req/projectteammember/ProjectTeamMemberUpdateReq.java new file mode 100644 index 00000000..e063aab4 --- /dev/null +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/req/projectteammember/ProjectTeamMemberUpdateReq.java @@ -0,0 +1,48 @@ +package org.dromara.project.domain.req.projectteammember; + +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +/** + * @author lcj + * @date 2025/3/5 15:04 + */ +@Data +public class ProjectTeamMemberUpdateReq implements Serializable { + + @Serial + private static final long serialVersionUID = -8022860866890925958L; + + /** + * 主键id + */ + private Long id; + + /** + * 班组id + */ + private Long teamId; + + /** + * 项目id + */ + private Long projectId; + + /** + * 施工人员id + */ + private Long memberId; + + /** + * 岗位(默认为0普通员工,1组长) + */ + private Long postId; + + /** + * 备注 + */ + private String remark; + +} diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/vo/BusConstructionUserVo.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/vo/BusConstructionUserVo.java new file mode 100644 index 00000000..c2e2d7e6 --- /dev/null +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/vo/BusConstructionUserVo.java @@ -0,0 +1,206 @@ +package org.dromara.project.domain.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import org.dromara.project.domain.BusConstructionUser; + +import java.io.Serial; +import java.io.Serializable; + + +/** + * 施工人员视图对象 bus_construction_user + * + * @author lcj + * @date 2025-03-07 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = BusConstructionUser.class) +public class BusConstructionUserVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ExcelProperty(value = "主键id") + private Long id; + + /** + * 微信id + */ + @ExcelProperty(value = "微信id") + private String openid; + + /** + * 微信名称 + */ + @ExcelProperty(value = "微信名称") + private String nickName; + + /** + * 人脸照 + */ + @ExcelProperty(value = "人脸照") + private String pacePhoto; + + /** + * 人员姓名 + */ + @ExcelProperty(value = "人员姓名") + private String userName; + + /** + * 项目id + */ + @ExcelProperty(value = "项目id") + private Long projectId; + + /** + * 分包公司id + */ + @ExcelProperty(value = "分包公司id") + private Long contractorId; + + /** + * 分包公司 + */ + @ExcelProperty(value = "分包公司") + private BusContractorVo contractorVo; + + /** + * 班组id + */ + @ExcelProperty(value = "班组id") + private Long teamId; + + /** + * 状态(0在职 1离职) + */ + @ExcelProperty(value = "状态", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "0=在职,1=离职") + private Long status; + + /** + * 是否代打 + */ + @ExcelProperty(value = "是否代打") + private Long isPinch; + + /** + * 联系电话 + */ + @ExcelProperty(value = "联系电话") + private String phone; + + /** + * 0:保密 1:男 2女 + */ + @ExcelProperty(value = "0:保密 1:男 2女") + private Long sex; + + /** + * 民族 + */ + @ExcelProperty(value = "民族") + private String nation; + + /** + * 身份证号码 + */ + @ExcelProperty(value = "身份证号码") + private String sfzNumber; + + /** + * 身份证有效开始期 + */ + @ExcelProperty(value = "身份证有效开始期") + private String sfzStart; + + /** + * 身份证有效结束期 + */ + @ExcelProperty(value = "身份证有效结束期") + private String sfzEnd; + + /** + * 身份证地址 + */ + @ExcelProperty(value = "身份证地址") + private String sfzSite; + + /** + * 身份证出生日期 + */ + @ExcelProperty(value = "身份证出生日期") + private String sfzBirth; + + /** + * 籍贯 + */ + @ExcelProperty(value = "籍贯") + private String nativePlace; + + /** + * 银行卡号 + */ + @ExcelProperty(value = "银行卡号") + private String yhkNumber; + + /** + * 开户行 + */ + @ExcelProperty(value = "开户行") + private String yhkOpeningBank; + + /** + * 持卡人 + */ + @ExcelProperty(value = "持卡人") + private String yhkCardholder; + + /** + * 工种(字典type_of_work) + */ + @ExcelProperty(value = "工种(字典type_of_work)", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "type_of_work") + private Long typeOfWork; + + /** + * 打卡(0启用打卡 1禁止打卡) + */ + @ExcelProperty(value = "打卡(0启用打卡 1禁止打卡)") + private Long clock; + + /** + * 入场时间 + */ + @ExcelProperty(value = "入场时间") + private String entryDate; + + /** + * 离场时间 + */ + @ExcelProperty(value = "离场时间") + private String leaveDate; + + /** + * 薪水 + */ + @ExcelProperty(value = "薪水") + private Long salary; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/vo/BusContractorVo.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/vo/BusContractorVo.java new file mode 100644 index 00000000..9bb922e2 --- /dev/null +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/vo/BusContractorVo.java @@ -0,0 +1,76 @@ +package org.dromara.project.domain.vo; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.project.domain.BusContractor; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 分包单位视图对象 bus_contractor + * + * @author lcj + * @date 2025-03-07 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = BusContractor.class) +public class BusContractorVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ExcelProperty(value = "主键id") + private Long id; + + /** + * 公司名称 + */ + @ExcelProperty(value = "公司名称") + private String name; + + /** + * 负责人 + */ + @ExcelProperty(value = "负责人") + private String principal; + + /** + * 负责人联系电话 + */ + @ExcelProperty(value = "负责人联系电话") + private String principalPhone; + + /** + * 管理人 + */ + @ExcelProperty(value = "管理人") + private String custodian; + + /** + * 管理人联系电话 + */ + @ExcelProperty(value = "管理人联系电话") + private String custodianPhone; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/vo/BusProjectTeamMemberVo.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/vo/BusProjectTeamMemberVo.java new file mode 100644 index 00000000..f1f2e0e9 --- /dev/null +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/vo/BusProjectTeamMemberVo.java @@ -0,0 +1,73 @@ +package org.dromara.project.domain.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import org.dromara.project.domain.BusProjectTeamMember; + +import java.io.Serial; +import java.io.Serializable; + + +/** + * 项目班组下的成员视图对象 bus_project_team_member + * + * @author lcj + * @date 2025-03-07 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = BusProjectTeamMember.class) +public class BusProjectTeamMemberVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ExcelProperty(value = "主键id") + private Long id; + + /** + * 班组id + */ + @ExcelProperty(value = "班组id") + private Long teamId; + + /** + * 项目id + */ + @ExcelProperty(value = "项目id") + private Long projectId; + + /** + * 施工人员id + */ + @ExcelProperty(value = "施工人员id") + private Long memberId; + + /** + * 施工人员信息 + */ + @ExcelProperty(value = "施工人员信息") + private BusConstructionUserVo constructionUserVo; + + /** + * 岗位(默认为0普通员工,1组长) + */ + @ExcelProperty(value = "岗位", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "默认为0普通员工,1组长") + private Long postId; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/vo/BusProjectTeamVo.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/vo/BusProjectTeamVo.java new file mode 100644 index 00000000..13eb499f --- /dev/null +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/vo/BusProjectTeamVo.java @@ -0,0 +1,65 @@ +package org.dromara.project.domain.vo; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.project.domain.BusProjectTeam; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 项目班组视图对象 bus_project_team + * + * @author lcj + * @date 2025-03-07 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = BusProjectTeam.class) +public class BusProjectTeamVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ExcelProperty(value = "主键id") + private Long id; + + /** + * 项目id + */ + @ExcelProperty(value = "项目id") + private Long projectId; + + /** + * 班组名称 + */ + @ExcelProperty(value = "班组名称") + private String teamName; + + /** + * 范围内打卡(0范围内打卡 1任何地点打卡)默认为1 + */ + @ExcelProperty(value = "范围内打卡", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "0=范围内打卡,1=任何地点打卡") + private Long isClockIn; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/mapper/BusConstructionUserMapper.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/mapper/BusConstructionUserMapper.java new file mode 100644 index 00000000..98670a24 --- /dev/null +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/mapper/BusConstructionUserMapper.java @@ -0,0 +1,15 @@ +package org.dromara.project.mapper; + +import org.dromara.project.domain.BusConstructionUser; +import org.dromara.project.domain.vo.BusConstructionUserVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 施工人员Mapper接口 + * + * @author lcj + * @date 2025-03-07 + */ +public interface BusConstructionUserMapper extends BaseMapperPlus { + +} diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/mapper/BusContractorMapper.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/mapper/BusContractorMapper.java new file mode 100644 index 00000000..b4759be2 --- /dev/null +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/mapper/BusContractorMapper.java @@ -0,0 +1,15 @@ +package org.dromara.project.mapper; + +import org.dromara.project.domain.BusContractor; +import org.dromara.project.domain.vo.BusContractorVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 分包单位Mapper接口 + * + * @author lcj + * @date 2025-03-07 + */ +public interface BusContractorMapper extends BaseMapperPlus { + +} diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/mapper/BusProjectTeamMapper.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/mapper/BusProjectTeamMapper.java new file mode 100644 index 00000000..ac786ba2 --- /dev/null +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/mapper/BusProjectTeamMapper.java @@ -0,0 +1,15 @@ +package org.dromara.project.mapper; + +import org.dromara.project.domain.BusProjectTeam; +import org.dromara.project.domain.vo.BusProjectTeamVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 项目班组Mapper接口 + * + * @author lcj + * @date 2025-03-07 + */ +public interface BusProjectTeamMapper extends BaseMapperPlus { + +} diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/mapper/BusProjectTeamMemberMapper.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/mapper/BusProjectTeamMemberMapper.java new file mode 100644 index 00000000..e19b031b --- /dev/null +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/mapper/BusProjectTeamMemberMapper.java @@ -0,0 +1,15 @@ +package org.dromara.project.mapper; + +import org.dromara.project.domain.BusProjectTeamMember; +import org.dromara.project.domain.vo.BusProjectTeamMemberVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 项目班组下的成员Mapper接口 + * + * @author lcj + * @date 2025-03-07 + */ +public interface BusProjectTeamMemberMapper extends BaseMapperPlus { + +} diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/IBusConstructionUserService.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/IBusConstructionUserService.java new file mode 100644 index 00000000..8c0abb76 --- /dev/null +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/IBusConstructionUserService.java @@ -0,0 +1,95 @@ +package org.dromara.project.service; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import org.dromara.project.domain.BusConstructionUser; +import org.dromara.project.domain.req.constructionuser.ConstructionUserCreateReq; +import org.dromara.project.domain.req.constructionuser.ConstructionUserQueryReq; +import org.dromara.project.domain.req.constructionuser.ConstructionUserUpdateReq; +import org.dromara.project.domain.vo.BusConstructionUserVo; + +import java.util.Collection; +import java.util.List; + +/** + * 施工人员Service接口 + * + * @author lcj + * @date 2025-03-07 + */ +public interface IBusConstructionUserService extends IService { + + /** + * 查询施工人员 + * + * @param id 主键 + * @return 施工人员 + */ + BusConstructionUserVo queryById(Long id); + + /** + * 分页查询施工人员列表 + * + * @param req 查询条件 + * @return 施工人员分页列表 + */ + Page queryPageList(ConstructionUserQueryReq req); + + /** + * 查询符合条件的施工人员列表 + * + * @param req 查询条件 + * @return 施工人员列表 + */ + List queryList(ConstructionUserQueryReq req); + + /** + * 新增施工人员 + * + * @param req 施工人员 + * @return 是否新增成功 + */ + Long insertByBo(ConstructionUserCreateReq req); + + /** + * 修改施工人员 + * + * @param req 施工人员 + * @return 是否修改成功 + */ + Boolean updateByBo(ConstructionUserUpdateReq req); + + /** + * 校验并批量删除施工人员信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + /** + * 获取施工人员视图对象 + * + * @param constructionUser 施工人员对象 + * @return 施工人员视图对象 + */ + BusConstructionUserVo getVo(BusConstructionUser constructionUser); + + /** + * 获取施工人员查询条件封装 + * + * @param req 查询条件 + * @return 查询条件封装 + */ + QueryWrapper getQueryWrapper(ConstructionUserQueryReq req); + + /** + * 获取施工人员分页对象视图 + * + * @param constructionUserPage 施工人员分页对象 + * @return 施工人员分页对象视图 + */ + Page getVoPage(Page constructionUserPage); +} diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/IBusContractorService.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/IBusContractorService.java new file mode 100644 index 00000000..0c9f758b --- /dev/null +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/IBusContractorService.java @@ -0,0 +1,96 @@ +package org.dromara.project.service; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import org.dromara.project.domain.BusContractor; +import org.dromara.project.domain.req.contractor.ContractorCreateReq; +import org.dromara.project.domain.req.contractor.ContractorQueryReq; +import org.dromara.project.domain.req.contractor.ContractorUpdateReq; +import org.dromara.project.domain.vo.BusContractorVo; + +import java.util.Collection; +import java.util.List; + +/** + * 分包单位Service接口 + * + * @author lcj + * @date 2025-03-07 + */ +public interface IBusContractorService extends IService { + + /** + * 查询分包单位 + * + * @param id 主键 + * @return 分包单位 + */ + BusContractorVo queryById(Long id); + + /** + * 分页查询分包单位列表 + * + * @param req 查询条件 + * @return 分包单位分页列表 + */ + Page queryPageList(ContractorQueryReq req); + + /** + * 查询符合条件的分包单位列表 + * + * @param req 查询条件 + * @return 分包单位列表 + */ + List queryList(ContractorQueryReq req); + + /** + * 新增分包单位 + * + * @param req 分包单位 + * @return 新增id + */ + Long insertByBo(ContractorCreateReq req); + + /** + * 修改分包单位 + * + * @param req 分包单位 + * @return 是否修改成功 + */ + Boolean updateByBo(ContractorUpdateReq req); + + /** + * 校验并批量删除分包单位信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + /** + * 获取分包公司视图对象 + * + * @param contractor 分包公司对象 + * @return 分包公司视图对象 + */ + BusContractorVo getVo(BusContractor contractor); + + /** + * 获取分包公司查询条件封装 + * + * @param req 分包公司查询条件 + * @return 分包公司查询条件封装 + */ + QueryWrapper getQueryWrapper(ContractorQueryReq req); + + /** + * 获取分包公司分页对象视图 + * + * @param contractorPage 分包公司分页对象 + * @return 分包公司分页对象视图 + */ + Page getVoPage(Page contractorPage); + +} diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/IBusProjectTeamMemberService.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/IBusProjectTeamMemberService.java new file mode 100644 index 00000000..733e117c --- /dev/null +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/IBusProjectTeamMemberService.java @@ -0,0 +1,95 @@ +package org.dromara.project.service; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import org.dromara.project.domain.BusProjectTeamMember; +import org.dromara.project.domain.req.projectteammember.ProjectTeamMemberCreateReq; +import org.dromara.project.domain.req.projectteammember.ProjectTeamMemberQueryReq; +import org.dromara.project.domain.req.projectteammember.ProjectTeamMemberUpdateReq; +import org.dromara.project.domain.vo.BusProjectTeamMemberVo; + +import java.util.Collection; +import java.util.List; + +/** + * 项目班组下的成员Service接口 + * + * @author lcj + * @date 2025-03-07 + */ +public interface IBusProjectTeamMemberService extends IService { + + /** + * 查询项目班组下的成员 + * + * @param id 主键 + * @return 项目班组下的成员 + */ + BusProjectTeamMemberVo queryById(Long id); + + /** + * 分页查询项目班组下的成员列表 + * + * @param req 查询条件 + * @return 项目班组下的成员分页列表 + */ + Page queryPageList(ProjectTeamMemberQueryReq req); + + /** + * 查询符合条件的项目班组下的成员列表 + * + * @param req 查询条件 + * @return 项目班组下的成员列表 + */ + List queryList(ProjectTeamMemberQueryReq req); + + /** + * 新增项目班组下的成员 + * + * @param req 项目班组下的成员 + * @return 是否新增成功 + */ + Long insertByBo(ProjectTeamMemberCreateReq req); + + /** + * 修改项目班组下的成员 + * + * @param req 项目班组下的成员 + * @return 是否修改成功 + */ + Boolean updateByBo(ProjectTeamMemberUpdateReq req); + + /** + * 校验并批量删除项目班组下的成员信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + /** + * 获取项目班组成员视图对象 + * + * @param projectTeamMember 项目班组成员对象 + * @return 项目班组成员视图对象 + */ + BusProjectTeamMemberVo getVo(BusProjectTeamMember projectTeamMember); + + /** + * 获取项目班组成员查询条件封装 + * + * @param req 项目班组成员查询条件 + * @return 项目班组成员查询条件封装 + */ + QueryWrapper getQueryWrapper(ProjectTeamMemberQueryReq req); + + /** + * 获取项目班组成员分页对象视图 + * + * @param projectTeamMemberPage 项目班组成员分页对象 + * @return 项目班组成员分页对象视图 + */ + Page getVoPage(Page projectTeamMemberPage); +} diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/IBusProjectTeamService.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/IBusProjectTeamService.java new file mode 100644 index 00000000..df82a784 --- /dev/null +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/IBusProjectTeamService.java @@ -0,0 +1,95 @@ +package org.dromara.project.service; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import org.dromara.project.domain.BusProjectTeam; +import org.dromara.project.domain.req.projectteam.ProjectTeamCreateReq; +import org.dromara.project.domain.req.projectteam.ProjectTeamQueryReq; +import org.dromara.project.domain.req.projectteam.ProjectTeamUpdateReq; +import org.dromara.project.domain.vo.BusProjectTeamVo; + +import java.util.Collection; +import java.util.List; + +/** + * 项目班组Service接口 + * + * @author lcj + * @date 2025-03-07 + */ +public interface IBusProjectTeamService extends IService { + + /** + * 查询项目班组 + * + * @param id 主键 + * @return 项目班组 + */ + BusProjectTeamVo queryById(Long id); + + /** + * 分页查询项目班组列表 + * + * @param req 查询条件 + * @return 项目班组分页列表 + */ + Page queryPageList(ProjectTeamQueryReq req); + + /** + * 查询符合条件的项目班组列表 + * + * @param req 查询条件 + * @return 项目班组列表 + */ + List queryList(ProjectTeamQueryReq req); + + /** + * 新增项目班组 + * + * @param req 项目班组 + * @return 是否新增成功 + */ + Long insertByBo(ProjectTeamCreateReq req); + + /** + * 修改项目班组 + * + * @param req 项目班组 + * @return 是否修改成功 + */ + Boolean updateByBo(ProjectTeamUpdateReq req); + + /** + * 校验并批量删除项目班组信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + /** + * 获取项目班组视图对象 + * + * @param projectTeam 项目班组对象 + * @return 项目班组视图对象 + */ + BusProjectTeamVo getVo(BusProjectTeam projectTeam); + + /** + * 获取项目班组查询条件封装 + * + * @param req 项目班组查询条件 + * @return 项目班组查询条件封装 + */ + QueryWrapper getQueryWrapper(ProjectTeamQueryReq req); + + /** + * 获取项目班组分页对象视图 + * + * @param projectTeamPage 项目班组分页对象 + * @return 项目班组分页对象视图 + */ + Page getVoPage(Page projectTeamPage); +} diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/IProjectService.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/IProjectService.java index 758d42f0..9ede0d7c 100644 --- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/IProjectService.java +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/IProjectService.java @@ -28,14 +28,6 @@ public interface IProjectService extends IService { */ ProjectVo queryById(Long id); - /** - * 获取项目视图对象 - * - * @param project 项目对象 - * @return 项目视图对象 - */ - ProjectVo getProjectVo(Project project); - /** * 分页查询项目列表 * @@ -77,6 +69,14 @@ public interface IProjectService extends IService { */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + /** + * 获取项目视图对象 + * + * @param project 项目对象 + * @return 项目视图对象 + */ + ProjectVo getProjectVo(Project project); + /** * 获取项目查询条件封装 * @@ -91,6 +91,6 @@ public interface IProjectService extends IService { * @param projectPage 项目分页对象 * @return 项目分页对象视图 */ - Page getProjectVoPage(Page projectPage); + Page getVoPage(Page projectPage); } diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/IUserProjectRelevancyService.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/IUserProjectRelevancyService.java index de80616d..f841561d 100644 --- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/IUserProjectRelevancyService.java +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/IUserProjectRelevancyService.java @@ -22,22 +22,6 @@ import java.util.List; */ public interface IUserProjectRelevancyService extends IService { - /** - * 获取系统用户与项目关联视图 - * - * @param userProjectRelevancy 系统用户与项目关联 - * @return 系统用户与项目关联视图 - */ - UserProjectRelevancyVo getUserProjectRelevancyVo(UserProjectRelevancy userProjectRelevancy); - - /** - * 获取系统用户与项目关联分页视图 - * - * @param userProjectRelevancyPage 系统用户与项目关联分页 - * @return 系统用户与项目关联分页视图 - */ - Page getUserProjectRelevancyVoPage(Page userProjectRelevancyPage); - /** * 查询系统用户与项目关联 * @@ -104,6 +88,22 @@ public interface IUserProjectRelevancyService extends IService queryPageByUserId(Long userId, UserProjectRelevancyQueryReq req); + /** + * 批量新增用户和项目关联 + * + * @param req 新增参数 + * @return 是否增加成功 + */ + Boolean insertBatchByProjectList(ProjectBatchByProjectListReq req); + + /** + * 获取系统用户与项目关联视图 + * + * @param userProjectRelevancy 系统用户与项目关联 + * @return 系统用户与项目关联视图 + */ + UserProjectRelevancyVo getVo(UserProjectRelevancy userProjectRelevancy); + /** * 获取用户和项目关联对象查询条件封装 * @@ -113,10 +113,11 @@ public interface IUserProjectRelevancyService extends IService getQueryWrapper(UserProjectRelevancyQueryReq req); /** - * 批量新增用户和项目关联 + * 获取系统用户与项目关联分页视图 * - * @param req 新增参数 - * @return 是否增加成功 + * @param userProjectRelevancyPage 系统用户与项目关联分页 + * @return 系统用户与项目关联分页视图 */ - Boolean insertBatchByProjectList(ProjectBatchByProjectListReq req); + Page getVoPage(Page userProjectRelevancyPage); + } diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusConstructionUserServiceImpl.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusConstructionUserServiceImpl.java new file mode 100644 index 00000000..6ccbb513 --- /dev/null +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusConstructionUserServiceImpl.java @@ -0,0 +1,310 @@ +package org.dromara.project.service.impl; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import jakarta.annotation.Resource; +import org.dromara.common.core.constant.CommonConstant; +import org.dromara.common.core.constant.HttpStatus; +import org.dromara.common.core.exception.ServiceException; +import org.dromara.common.core.utils.ObjectUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.core.utils.sql.SqlUtil; +import org.dromara.project.domain.BusConstructionUser; +import org.dromara.project.domain.BusContractor; +import org.dromara.project.domain.req.constructionuser.ConstructionUserCreateReq; +import org.dromara.project.domain.req.constructionuser.ConstructionUserQueryReq; +import org.dromara.project.domain.req.constructionuser.ConstructionUserUpdateReq; +import org.dromara.project.domain.vo.BusConstructionUserVo; +import org.dromara.project.domain.vo.BusContractorVo; +import org.dromara.project.mapper.BusConstructionUserMapper; +import org.dromara.project.service.IBusConstructionUserService; +import org.dromara.project.service.IBusContractorService; +import org.dromara.project.service.IProjectService; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; + +/** + * 施工人员Service业务层处理 + * + * @author lcj + * @date 2025-03-07 + */ +@Service +public class BusConstructionUserServiceImpl extends ServiceImpl + implements IBusConstructionUserService { + + @Resource + private IProjectService projectService; + + @Resource + private IBusContractorService contractorService; + + /** + * 查询施工人员 + * + * @param id 主键 + * @return 施工人员 + */ + @Override + public BusConstructionUserVo queryById(Long id) { + BusConstructionUser constructionUser = this.getById(id); + if (constructionUser == null) { + throw new ServiceException("施工人员信息不存在", HttpStatus.NOT_FOUND); + } + return this.getVo(constructionUser); + } + + /** + * 分页查询施工人员列表 + * + * @param req 查询条件 + * @return 施工人员分页列表 + */ + @Override + public Page queryPageList(ConstructionUserQueryReq req) { + long current = req.getCurrent(); + long size = req.getPageSize(); + // 查询数据库 + Page result = this.page(new Page<>(current, size), this.getQueryWrapper(req)); + return this.getVoPage(result); + } + + /** + * 查询符合条件的施工人员列表 + * + * @param req 查询条件 + * @return 施工人员列表 + */ + @Override + public List queryList(ConstructionUserQueryReq req) { + QueryWrapper queryWrapper = this.getQueryWrapper(req); + List list = this.list(queryWrapper); + return list.stream().map(this::getVo).toList(); + } + + /** + * 新增施工人员 + * + * @param req 施工人员 + * @return 是否新增成功 + */ + @Override + public Long insertByBo(ConstructionUserCreateReq req) { + // 将实体类和 DTO 进行转换 + BusConstructionUser constructionUser = new BusConstructionUser(); + BeanUtils.copyProperties(req, constructionUser); + // 数据校验 + validEntityBeforeSave(constructionUser); + // 操作数据库 + boolean save = this.save(constructionUser); + if (!save) { + throw new ServiceException("新增施工人员失败,数据库异常", HttpStatus.ERROR); + } + return constructionUser.getId(); + } + + /** + * 修改施工人员 + * + * @param req 施工人员 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(ConstructionUserUpdateReq req) { + // 将实体类和 DTO 进行转换 + BusConstructionUser constructionUser = new BusConstructionUser(); + BeanUtils.copyProperties(req, constructionUser); + // 数据校验 + validEntityBeforeSave(constructionUser); + // 判断是否存在 + BusConstructionUser oldConstructionUser = this.getById(constructionUser.getId()); + if (oldConstructionUser == null) { + throw new ServiceException("修改施工人员失败,数据不存在", HttpStatus.NOT_FOUND); + } + // 操作数据库 + return this.updateById(constructionUser); + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(BusConstructionUser entity) { + // TODO 做一些数据校验,如唯一约束 + // 校验项目id和对应项目是否存在 + Long projectId = entity.getProjectId(); + if (projectId == null) { + throw new ServiceException("项目 id 不能为空", HttpStatus.BAD_REQUEST); + } + if (projectService.getById(projectId) == null) { + throw new ServiceException("对应项目不存在", HttpStatus.NOT_FOUND); + } + // 校验分包公司id和对应项目是否存在 + Long contractorId = entity.getContractorId(); + if (contractorId == null) { + throw new ServiceException("分包公司 id 不能为空", HttpStatus.BAD_REQUEST); + } + if (contractorService.getById(contractorId) == null) { + throw new ServiceException("对应分包公司不存在", HttpStatus.NOT_FOUND); + } + } + + /** + * 校验并批量删除施工人员信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if (isValid) { + // TODO 做一些业务上的校验,判断是否需要校验 + } + return this.removeBatchByIds(ids); + } + + /** + * 获取施工人员视图对象 + * + * @param constructionUser 施工人员对象 + * @return 施工人员视图对象 + */ + @Override + public BusConstructionUserVo getVo(BusConstructionUser constructionUser) { + // 对象转封装类 + BusConstructionUserVo constructionUserVo = new BusConstructionUserVo(); + if (constructionUser == null) { + return constructionUserVo; + } + BeanUtils.copyProperties(constructionUser, constructionUserVo); + // 关联查询分包公司信息信息 + Long contractorId = constructionUser.getContractorId(); + if (contractorId != null) { + constructionUserVo.setContractorVo(contractorService.queryById(contractorId)); + } + return constructionUserVo; + } + + /** + * 获取施工人员查询条件封装 + * + * @param req 查询条件 + * @return 查询条件封装 + */ + @Override + public QueryWrapper getQueryWrapper(ConstructionUserQueryReq req) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + if (req == null) { + return queryWrapper; + } + // 从对象中取值 + Long id = req.getId(); + String openid = req.getOpenid(); + String nickName = req.getNickName(); + String userName = req.getUserName(); + Long projectId = req.getProjectId(); + Long contractorId = req.getContractorId(); + Long teamId = req.getTeamId(); + Long status = req.getStatus(); + Long isPinch = req.getIsPinch(); + String phone = req.getPhone(); + Long sex = req.getSex(); + String nation = req.getNation(); + String sfzNumber = req.getSfzNumber(); + String sfzStart = req.getSfzStart(); + String sfzEnd = req.getSfzEnd(); + String sfzSite = req.getSfzSite(); + String sfzBirth = req.getSfzBirth(); + String nativePlace = req.getNativePlace(); + String yhkNumber = req.getYhkNumber(); + String yhkOpeningBank = req.getYhkOpeningBank(); + String yhkCardholder = req.getYhkCardholder(); + Long typeOfWork = req.getTypeOfWork(); + Long clock = req.getClock(); + Long salary = req.getSalary(); + String remark = req.getRemark(); + String sortField = req.getSortField(); + String sortOrder = req.getSortOrder(); + String underlineSortField = StrUtil.toUnderlineCase(sortField); + // 模糊查询 + queryWrapper.like(StringUtils.isNotBlank(nickName), "nick_name", nickName); + queryWrapper.like(StringUtils.isNotBlank(userName), "user_name", userName); + queryWrapper.like(StringUtils.isNotBlank(remark), "remark", remark); + queryWrapper.like(StringUtils.isNotBlank(phone), "phone", phone); + queryWrapper.like(StringUtils.isNotBlank(nation), "nation", nation); + queryWrapper.like(StringUtils.isNotBlank(sfzNumber), "sfz_number", sfzNumber); + queryWrapper.like(StringUtils.isNotBlank(sfzStart), "sfz_start", sfzStart); + queryWrapper.like(StringUtils.isNotBlank(sfzEnd), "sfz_end", sfzEnd); + queryWrapper.like(StringUtils.isNotBlank(sfzSite), "sfz_site", sfzSite); + queryWrapper.like(StringUtils.isNotBlank(sfzBirth), "sfz_birth", sfzBirth); + queryWrapper.like(StringUtils.isNotBlank(nativePlace), "native_place", nativePlace); + queryWrapper.like(StringUtils.isNotBlank(yhkNumber), "yhk_number", yhkNumber); + queryWrapper.like(StringUtils.isNotBlank(yhkOpeningBank), "yhk_opening_bank", yhkOpeningBank); + queryWrapper.like(StringUtils.isNotBlank(yhkCardholder), "yhk_cardholder", yhkCardholder); + // 精确查询 + queryWrapper.eq(ObjectUtils.isNotEmpty(openid), "openid", openid); + queryWrapper.eq(ObjectUtils.isNotEmpty(status), "status", status); + queryWrapper.eq(ObjectUtils.isNotEmpty(id), "id", id); + queryWrapper.eq(ObjectUtils.isNotEmpty(projectId), "project_id", projectId); + queryWrapper.eq(ObjectUtils.isNotEmpty(contractorId), "contractor_id", contractorId); + queryWrapper.eq(ObjectUtils.isNotEmpty(teamId), "team_id", teamId); + queryWrapper.eq(ObjectUtils.isNotEmpty(isPinch), "is_pinch", isPinch); + queryWrapper.eq(ObjectUtils.isNotEmpty(sex), "sex", sex); + queryWrapper.eq(ObjectUtils.isNotEmpty(typeOfWork), "type_of_work", typeOfWork); + queryWrapper.eq(ObjectUtils.isNotEmpty(clock), "clock", clock); + queryWrapper.eq(ObjectUtils.isNotEmpty(salary), "salary", salary); + // 排序规则 + queryWrapper.orderBy(SqlUtil.validSortField(sortField), + sortOrder.equals(CommonConstant.SORT_ORDER_ASC), + underlineSortField); + return queryWrapper; + } + + /** + * 获取施工人员分页对象视图 + * + * @param constructionUserPage 施工人员分页对象 + * @return 施工人员分页对象视图 + */ + @Override + public Page getVoPage(Page constructionUserPage) { + List constructionUserList = constructionUserPage.getRecords(); + Page constructionUserVoPage = new Page<>( + constructionUserPage.getCurrent(), + constructionUserPage.getSize(), + constructionUserPage.getTotal()); + if (CollUtil.isEmpty(constructionUserList)) { + return constructionUserVoPage; + } + // 关联查询分包公司信息 + Set contractorIdSet = constructionUserList.stream().map(BusConstructionUser::getContractorId) + .collect(Collectors.toSet()); + Map> contractorIdContractorList = contractorService.listByIds(contractorIdSet).stream() + .collect(Collectors.groupingBy(BusContractor::getId)); + // 填充信息 + List constructionUserVoList = constructionUserList.stream().map(constructionUser -> { + BusConstructionUserVo constructionUserVo = new BusConstructionUserVo(); + BeanUtils.copyProperties(constructionUser, constructionUserVo); + Long contractorId = constructionUser.getContractorId(); + BusContractorVo contractor = null; + if (contractorIdContractorList.containsKey(contractorId)) { + contractor = contractorService.getVo(contractorIdContractorList.get(contractorId).get(0)); + } + constructionUserVo.setContractorVo(contractor); + return constructionUserVo; + }).toList(); + constructionUserVoPage.setRecords(constructionUserVoList); + return constructionUserVoPage; + } +} diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusContractorServiceImpl.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusContractorServiceImpl.java new file mode 100644 index 00000000..3503ca38 --- /dev/null +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusContractorServiceImpl.java @@ -0,0 +1,231 @@ +package org.dromara.project.service.impl; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.dromara.common.core.constant.CommonConstant; +import org.dromara.common.core.constant.HttpStatus; +import org.dromara.common.core.exception.ServiceException; +import org.dromara.common.core.utils.ObjectUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.core.utils.sql.SqlUtil; +import org.dromara.project.domain.BusContractor; +import org.dromara.project.domain.req.contractor.ContractorCreateReq; +import org.dromara.project.domain.req.contractor.ContractorQueryReq; +import org.dromara.project.domain.req.contractor.ContractorUpdateReq; +import org.dromara.project.domain.vo.BusContractorVo; +import org.dromara.project.mapper.BusContractorMapper; +import org.dromara.project.service.IBusContractorService; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Collection; +import java.util.List; + +/** + * 分包单位Service业务层处理 + * + * @author lcj + * @date 2025-03-07 + */ +@Service +public class BusContractorServiceImpl extends ServiceImpl + implements IBusContractorService { + + /** + * 查询分包单位 + * + * @param id 主键 + * @return 分包单位 + */ + @Override + public BusContractorVo queryById(Long id) { + BusContractor contractor = this.getById(id); + if (contractor == null) { + throw new ServiceException("分包单位信息不存在", HttpStatus.NOT_FOUND); + } + return this.getVo(contractor); + } + + /** + * 分页查询分包单位列表 + * + * @param req 查询条件 + * @return 分包单位分页列表 + */ + @Override + public Page queryPageList(ContractorQueryReq req) { + long current = req.getCurrent(); + long size = req.getPageSize(); + // 查询数据库 + Page result = this.page(new Page<>(current, size), this.getQueryWrapper(req)); + return this.getVoPage(result); + } + + /** + * 查询符合条件的分包单位列表 + * + * @param req 查询条件 + * @return 分包单位列表 + */ + @Override + public List queryList(ContractorQueryReq req) { + QueryWrapper queryWrapper = this.getQueryWrapper(req); + List list = this.list(queryWrapper); + return list.stream().map(this::getVo).toList(); + } + + /** + * 新增分包单位 + * + * @param req 分包单位 + * @return 新增id + */ + @Override + public Long insertByBo(ContractorCreateReq req) { + // 将实体类和 DTO 进行转换 + BusContractor contractor = new BusContractor(); + BeanUtils.copyProperties(req, contractor); + // 数据校验 + validEntityBeforeSave(contractor); + // 操作数据库 + boolean save = this.save(contractor); + if (!save) { + throw new ServiceException("新增施工人员失败,数据库异常", HttpStatus.ERROR); + } + return contractor.getId(); + } + + /** + * 修改分包单位 + * + * @param req 分包单位 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(ContractorUpdateReq req) { + // 将实体类和 DTO 进行转换 + BusContractor contractor = new BusContractor(); + BeanUtils.copyProperties(req, contractor); + // 数据校验 + validEntityBeforeSave(contractor); + // 判断是否存在 + BusContractor oldContractor = this.getById(contractor.getId()); + if (oldContractor == null) { + throw new ServiceException("修改施工人员失败,数据不存在", HttpStatus.NOT_FOUND); + } + // 操作数据库 + return this.updateById(contractor); + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(BusContractor entity) { + // TODO 做一些数据校验,如唯一约束 + String name = entity.getName(); + if (StringUtils.isBlank(name)) { + throw new ServiceException("分包单位名称不能为空", HttpStatus.BAD_REQUEST); + } + String principal = entity.getPrincipal(); + if (StringUtils.isBlank(principal)) { + throw new ServiceException("分包单位负责人不能为空", HttpStatus.BAD_REQUEST); + } + } + + /** + * 校验并批量删除分包单位信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if (isValid) { + //TODO 做一些业务上的校验,判断是否需要校验 + } + return this.removeBatchByIds(ids); + } + + /** + * 获取分包公司视图对象 + * + * @param contractor 分包公司对象 + * @return 分包公司视图对象 + */ + @Override + public BusContractorVo getVo(BusContractor contractor) { + // 对象转封装类 + BusContractorVo contractorVo = new BusContractorVo(); + if (contractor == null) { + return contractorVo; + } + BeanUtils.copyProperties(contractor, contractorVo); + return contractorVo; + } + + /** + * 获取分包公司查询条件封装 + * + * @param req 分包公司查询条件 + * @return 分包公司查询条件封装 + */ + @Override + public QueryWrapper getQueryWrapper(ContractorQueryReq req) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + if (req == null) { + return queryWrapper; + } + // 从对象中取值 + Long id = req.getId(); + String name = req.getName(); + String principal = req.getPrincipal(); + String principalPhone = req.getPrincipalPhone(); + String custodian = req.getCustodian(); + String custodianPhone = req.getCustodianPhone(); + String remark = req.getRemark(); + String sortField = req.getSortField(); + String sortOrder = req.getSortOrder(); + String underlineSortField = StrUtil.toUnderlineCase(sortField); + // 模糊查询 + queryWrapper.like(StringUtils.isNotBlank(name), "name", name); + queryWrapper.like(StringUtils.isNotBlank(principal), "principal", principal); + queryWrapper.like(StringUtils.isNotBlank(principalPhone), "principal_phone", principalPhone); + queryWrapper.like(StringUtils.isNotBlank(custodian), "custodian", custodian); + queryWrapper.like(StringUtils.isNotBlank(custodianPhone), "custodian_phone", custodianPhone); + queryWrapper.like(StringUtils.isNotBlank(remark), "remark", remark); + // 精确查询 + queryWrapper.eq(ObjectUtils.isNotEmpty(id), "id", id); + // 排序规则 + queryWrapper.orderBy(SqlUtil.validSortField(sortField), + sortOrder.equals(CommonConstant.SORT_ORDER_ASC), + underlineSortField); + return queryWrapper; + } + + /** + * 获取分包公司分页对象视图 + * + * @param contractorPage 分包公司分页对象 + * @return 分包公司分页对象视图 + */ + @Override + public Page getVoPage(Page contractorPage) { + List contractorList = contractorPage.getRecords(); + Page contractorVoPage = new Page<>( + contractorPage.getCurrent(), + contractorPage.getSize(), + contractorPage.getTotal()); + if (CollUtil.isEmpty(contractorList)) { + return contractorVoPage; + } + List contractorVoList = contractorList.stream().map(this::getVo).toList(); + contractorVoPage.setRecords(contractorVoList); + return contractorVoPage; + } +} diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusProjectTeamMemberServiceImpl.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusProjectTeamMemberServiceImpl.java new file mode 100644 index 00000000..936d3b77 --- /dev/null +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusProjectTeamMemberServiceImpl.java @@ -0,0 +1,289 @@ +package org.dromara.project.service.impl; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import jakarta.annotation.Resource; +import org.dromara.common.core.constant.CommonConstant; +import org.dromara.common.core.constant.HttpStatus; +import org.dromara.common.core.exception.ServiceException; +import org.dromara.common.core.utils.ObjectUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.core.utils.sql.SqlUtil; +import org.dromara.project.domain.BusConstructionUser; +import org.dromara.project.domain.BusProjectTeamMember; +import org.dromara.project.domain.req.projectteammember.ProjectTeamMemberCreateReq; +import org.dromara.project.domain.req.projectteammember.ProjectTeamMemberQueryReq; +import org.dromara.project.domain.req.projectteammember.ProjectTeamMemberUpdateReq; +import org.dromara.project.domain.vo.BusConstructionUserVo; +import org.dromara.project.domain.vo.BusProjectTeamMemberVo; +import org.dromara.project.mapper.BusProjectTeamMemberMapper; +import org.dromara.project.service.IBusConstructionUserService; +import org.dromara.project.service.IBusProjectTeamMemberService; +import org.dromara.project.service.IBusProjectTeamService; +import org.dromara.project.service.IProjectService; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; + +/** + * 项目班组下的成员Service业务层处理 + * + * @author lcj + * @date 2025-03-07 + */ +@Service +public class BusProjectTeamMemberServiceImpl extends ServiceImpl + implements IBusProjectTeamMemberService { + + @Resource + private IBusConstructionUserService constructionUserService; + + @Resource + private IBusProjectTeamService projectTeamService; + + @Resource + private IProjectService projectService; + + /** + * 查询项目班组下的成员 + * + * @param id 主键 + * @return 项目班组下的成员 + */ + @Override + public BusProjectTeamMemberVo queryById(Long id) { + BusProjectTeamMember projectTeamMember = this.getById(id); + if (projectTeamMember == null) { + throw new ServiceException("对应项目班组下的成员不存在", HttpStatus.NOT_FOUND); + } + return this.getVo(projectTeamMember); + } + + /** + * 分页查询项目班组下的成员列表 + * + * @param req 查询条件 + * @return 项目班组下的成员分页列表 + */ + @Override + public Page queryPageList(ProjectTeamMemberQueryReq req) { + long current = req.getCurrent(); + long size = req.getPageSize(); + // 查询数据库 + Page result = this.page(new Page<>(current, size), this.getQueryWrapper(req)); + return this.getVoPage(result); + } + + /** + * 查询符合条件的项目班组下的成员列表 + * + * @param req 查询条件 + * @return 项目班组下的成员列表 + */ + @Override + public List queryList(ProjectTeamMemberQueryReq req) { + QueryWrapper queryWrapper = this.getQueryWrapper(req); + List list = this.list(queryWrapper); + return list.stream().map(this::getVo).toList(); + } + + /** + * 新增项目班组下的成员 + * + * @param req 项目班组下的成员 + * @return 是否新增成功 + */ + @Override + public Long insertByBo(ProjectTeamMemberCreateReq req) { + // 将实体类和 DTO 进行转换 + BusProjectTeamMember projectTeamMember = new BusProjectTeamMember(); + BeanUtils.copyProperties(req, projectTeamMember); + // 数据校验 + validEntityBeforeSave(projectTeamMember); + // 判断对应的用户与项目关联是否存在 + if (this.getOne(new LambdaQueryWrapper() + .eq(BusProjectTeamMember::getMemberId, projectTeamMember.getMemberId()) + .eq(BusProjectTeamMember::getTeamId, projectTeamMember.getTeamId())) != null) { + throw new ServiceException("用户和项目班组关联已存在", HttpStatus.CONFLICT); + } + // 操作数据库 + boolean save = this.save(projectTeamMember); + if (!save) { + throw new ServiceException("新增项目班组下的成员失败,数据库异常", HttpStatus.ERROR); + } + return projectTeamMember.getId(); + } + + /** + * 修改项目班组下的成员 + * + * @param req 项目班组下的成员 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(ProjectTeamMemberUpdateReq req) { + // 将实体类和 DTO 进行转换 + BusProjectTeamMember projectTeamMember = new BusProjectTeamMember(); + BeanUtils.copyProperties(req, projectTeamMember); + // 数据校验 + validEntityBeforeSave(projectTeamMember); + // 判断是否存在 + BusProjectTeamMember oldProjectTeamMember = this.getById(projectTeamMember.getId()); + if (oldProjectTeamMember == null) { + throw new ServiceException("修改项目班组下的成员,数据不存在", HttpStatus.NOT_FOUND); + } + // 操作数据库 + return this.updateById(projectTeamMember); + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(BusProjectTeamMember entity) { + // TODO 做一些数据校验,如唯一约束 + // 判断对应项目是否存在 + Long projectId = entity.getProjectId(); + if (projectId == null) { + throw new ServiceException("项目 id 不能为空", HttpStatus.BAD_REQUEST); + } + if (projectService.getById(projectId) == null) { + throw new ServiceException("对应项目不存在", HttpStatus.NOT_FOUND); + } + // 判断对应成员是否存在 + Long memberId = entity.getMemberId(); + if (memberId == null) { + throw new ServiceException("人员 id 不能为空", HttpStatus.BAD_REQUEST); + } + if (constructionUserService.getById(memberId) == null) { + throw new ServiceException("对应人员不存在", HttpStatus.NOT_FOUND); + } + // 判断对应班组是否存在 + Long teamId = entity.getTeamId(); + if (teamId == null) { + throw new ServiceException("班组 id 不能为空", HttpStatus.BAD_REQUEST); + } + if (projectTeamService.getById(teamId) == null) { + throw new ServiceException("对应班组不存在", HttpStatus.NOT_FOUND); + } + } + + /** + * 校验并批量删除项目班组下的成员信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if (isValid) { + //TODO 做一些业务上的校验,判断是否需要校验 + } + return this.removeBatchByIds(ids); + } + + /** + * 获取项目班组成员视图对象 + * + * @param projectTeamMember 项目班组成员对象 + * @return 项目班组成员视图对象 + */ + @Override + public BusProjectTeamMemberVo getVo(BusProjectTeamMember projectTeamMember) { + // 对象转封装类 + BusProjectTeamMemberVo projectTeamMemberVo = new BusProjectTeamMemberVo(); + if (projectTeamMember == null) { + return projectTeamMemberVo; + } + BeanUtils.copyProperties(projectTeamMember, projectTeamMemberVo); + // 关联获取施工人员信息 + Long memberId = projectTeamMember.getMemberId(); + projectTeamMemberVo.setConstructionUserVo(constructionUserService.queryById(memberId)); + return projectTeamMemberVo; + } + + /** + * 获取项目班组成员查询条件封装 + * + * @param req 项目班组成员查询条件 + * @return 项目班组成员查询条件封装 + */ + @Override + public QueryWrapper getQueryWrapper(ProjectTeamMemberQueryReq req) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + if (req == null) { + return queryWrapper; + } + // 从对象中取值 + Long id = req.getId(); + Long teamId = req.getTeamId(); + Long projectId = req.getProjectId(); + Long memberId = req.getMemberId(); + Long postId = req.getPostId(); + String remark = req.getRemark(); + String sortField = req.getSortField(); + String sortOrder = req.getSortOrder(); + String underlineSortField = StrUtil.toUnderlineCase(sortField); + // 模糊查询 + queryWrapper.like(StringUtils.isNotBlank(remark), "remark", remark); + // 精确查询 + queryWrapper.eq(ObjectUtils.isNotEmpty(id), "id", id); + queryWrapper.eq(ObjectUtils.isNotEmpty(projectId), "project_id", projectId); + queryWrapper.eq(ObjectUtils.isNotEmpty(teamId), "team_id", teamId); + queryWrapper.eq(ObjectUtils.isNotEmpty(memberId), "member_id", memberId); + queryWrapper.eq(ObjectUtils.isNotEmpty(postId), "post_id", postId); + // 排序规则 + queryWrapper.orderBy(SqlUtil.validSortField(sortField), + sortOrder.equals(CommonConstant.SORT_ORDER_ASC), + underlineSortField); + return queryWrapper; + } + + /** + * 获取项目班组成员分页对象视图 + * + * @param projectTeamMemberPage 项目班组成员分页对象 + * @return 项目班组成员分页对象视图 + */ + @Override + public Page getVoPage(Page projectTeamMemberPage) { + List projectTeamMemberList = projectTeamMemberPage.getRecords(); + Page projectTeamMemberVoPage = new Page<>( + projectTeamMemberPage.getCurrent(), + projectTeamMemberPage.getSize(), + projectTeamMemberPage.getTotal()); + if (CollUtil.isEmpty(projectTeamMemberList)) { + return projectTeamMemberVoPage; + } + // 关联查询施工人员信息 + Set teamMemberIdSet = projectTeamMemberList.stream().map(BusProjectTeamMember::getMemberId) + .collect(Collectors.toSet()); + Map> contractorIdContractorList = constructionUserService.listByIds(teamMemberIdSet).stream() + .collect(Collectors.groupingBy(BusConstructionUser::getId)); + // 填充信息 + List projectTeamMemberVoList = projectTeamMemberList.stream().map(projectTeamMember -> { + BusProjectTeamMemberVo projectTeamMemberVo = new BusProjectTeamMemberVo(); + BeanUtils.copyProperties(projectTeamMember, projectTeamMemberVo); + Long memberId = projectTeamMember.getMemberId(); + BusConstructionUserVo constructionUserVo = null; + if (contractorIdContractorList.containsKey(memberId)) { + constructionUserVo = constructionUserService.getVo(contractorIdContractorList.get(memberId).get(0)); + } + projectTeamMemberVo.setConstructionUserVo(constructionUserVo); + return projectTeamMemberVo; + }).toList(); + projectTeamMemberVoPage.setRecords(projectTeamMemberVoList); + return projectTeamMemberVoPage; + } +} diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusProjectTeamServiceImpl.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusProjectTeamServiceImpl.java new file mode 100644 index 00000000..08223d4a --- /dev/null +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusProjectTeamServiceImpl.java @@ -0,0 +1,241 @@ +package org.dromara.project.service.impl; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import jakarta.annotation.Resource; +import org.dromara.common.core.constant.CommonConstant; +import org.dromara.common.core.constant.HttpStatus; +import org.dromara.common.core.exception.ServiceException; +import org.dromara.common.core.utils.ObjectUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.core.utils.sql.SqlUtil; +import org.dromara.project.domain.BusProjectTeam; +import org.dromara.project.domain.req.projectteam.ProjectTeamCreateReq; +import org.dromara.project.domain.req.projectteam.ProjectTeamQueryReq; +import org.dromara.project.domain.req.projectteam.ProjectTeamUpdateReq; +import org.dromara.project.domain.vo.BusProjectTeamVo; +import org.dromara.project.mapper.BusProjectTeamMapper; +import org.dromara.project.service.IBusProjectTeamService; +import org.dromara.project.service.IProjectService; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Collection; +import java.util.List; + +/** + * 项目班组Service业务层处理 + * + * @author lcj + * @date 2025-03-07 + */ +@Service +public class BusProjectTeamServiceImpl extends ServiceImpl + implements IBusProjectTeamService { + + @Resource + private IProjectService projectService; + + /** + * 查询项目班组 + * + * @param id 主键 + * @return 项目班组 + */ + @Override + public BusProjectTeamVo queryById(Long id) { + BusProjectTeam projectTeam = this.getById(id); + if (projectTeam == null) { + throw new ServiceException("对应项目班组不存在", HttpStatus.NOT_FOUND); + } + return this.getVo(projectTeam); + } + + /** + * 分页查询项目班组列表 + * + * @param req 查询条件 + * @return 项目班组分页列表 + */ + @Override + public Page queryPageList(ProjectTeamQueryReq req) { + long current = req.getCurrent(); + long size = req.getPageSize(); + // 查询数据库 + Page result = this.page(new Page<>(current, size), this.getQueryWrapper(req)); + return this.getVoPage(result); + } + + /** + * 查询符合条件的项目班组列表 + * + * @param req 查询条件 + * @return 项目班组列表 + */ + @Override + public List queryList(ProjectTeamQueryReq req) { + QueryWrapper queryWrapper = this.getQueryWrapper(req); + List list = this.list(queryWrapper); + return list.stream().map(this::getVo).toList(); + } + + /** + * 新增项目班组 + * + * @param req 项目班组 + * @return 是否新增成功 + */ + @Override + public Long insertByBo(ProjectTeamCreateReq req) { + // 将实体类和 DTO 进行转换 + BusProjectTeam projectTeam = new BusProjectTeam(); + BeanUtils.copyProperties(req, projectTeam); + // 数据校验 + validEntityBeforeSave(projectTeam); + // 操作数据库 + boolean save = this.save(projectTeam); + if (!save) { + throw new ServiceException("新增施工人员失败,数据库异常", HttpStatus.ERROR); + } + return projectTeam.getId(); + } + + /** + * 修改项目班组 + * + * @param req 项目班组 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(ProjectTeamUpdateReq req) { + // 将实体类和 DTO 进行转换 + BusProjectTeam projectTeam = new BusProjectTeam(); + BeanUtils.copyProperties(req, projectTeam); + // 数据校验 + validEntityBeforeSave(projectTeam); + // 判断是否存在 + BusProjectTeam oldProjectTeam = this.getById(projectTeam.getId()); + if (oldProjectTeam == null) { + throw new ServiceException("修改项目班组失败,数据不存在", HttpStatus.NOT_FOUND); + } + // 操作数据库 + return this.updateById(projectTeam); + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(BusProjectTeam entity) { + // TODO 做一些数据校验,如唯一约束 + Long projectId = entity.getProjectId(); + // 判断是否重名 + String teamName = entity.getTeamName(); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(BusProjectTeam::getTeamName, teamName); + long count = this.count(queryWrapper); + if (count > 0) { + throw new ServiceException("项目组名重复", HttpStatus.BAD_REQUEST); + } + if (projectId == null) { + throw new ServiceException("项目 id 不能为空", HttpStatus.BAD_REQUEST); + } + // 查询项目是否存在 + if (projectService.getById(projectId) == null) { + throw new ServiceException("对应项目不存在", HttpStatus.NOT_FOUND); + } + } + + /** + * 校验并批量删除项目班组信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if (isValid) { + //TODO 做一些业务上的校验,判断是否需要校验 + } + return this.removeBatchByIds(ids); + } + + /** + * 获取项目班组视图对象 + * + * @param projectTeam 项目班组对象 + * @return 项目班组视图对象 + */ + @Override + public BusProjectTeamVo getVo(BusProjectTeam projectTeam) { + // 对象转封装类 + BusProjectTeamVo projectTeamVo = new BusProjectTeamVo(); + if (projectTeam == null) { + return projectTeamVo; + } + BeanUtils.copyProperties(projectTeam, projectTeamVo); + return projectTeamVo; + } + + /** + * 获取项目班组查询条件封装 + * + * @param req 项目班组查询条件 + * @return 项目班组查询条件封装 + */ + @Override + public QueryWrapper getQueryWrapper(ProjectTeamQueryReq req) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + if (req == null) { + return queryWrapper; + } + // 从对象中取值 + Long id = req.getId(); + Long projectId = req.getProjectId(); + String teamName = req.getTeamName(); + Long isClockIn = req.getIsClockIn(); + String remark = req.getRemark(); + String sortField = req.getSortField(); + String sortOrder = req.getSortOrder(); + String underlineSortField = StrUtil.toUnderlineCase(sortField); + // 模糊查询 + queryWrapper.like(StringUtils.isNotBlank(teamName), "team_name", teamName); + queryWrapper.like(StringUtils.isNotBlank(remark), "remark", remark); + // 精确查询 + queryWrapper.eq(ObjectUtils.isNotEmpty(id), "id", id); + queryWrapper.eq(ObjectUtils.isNotEmpty(projectId), "project_id", projectId); + queryWrapper.eq(ObjectUtils.isNotEmpty(isClockIn), "is_clock_in", isClockIn); + // 排序规则 + queryWrapper.orderBy(SqlUtil.validSortField(sortField), + sortOrder.equals(CommonConstant.SORT_ORDER_ASC), + underlineSortField); + return queryWrapper; + } + + /** + * 获取项目班组分页对象视图 + * + * @param projectTeamPage 项目班组分页对象 + * @return 项目班组分页对象视图 + */ + @Override + public Page getVoPage(Page projectTeamPage) { + List projectTeamList = projectTeamPage.getRecords(); + Page projectTeamVoPage = new Page<>( + projectTeamPage.getCurrent(), + projectTeamPage.getSize(), + projectTeamPage.getTotal()); + if (CollUtil.isEmpty(projectTeamList)) { + return projectTeamVoPage; + } + List projectTeamVoList = projectTeamList.stream().map(this::getVo).toList(); + projectTeamVoPage.setRecords(projectTeamVoList); + return projectTeamVoPage; + } +} diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/ProjectServiceImpl.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/ProjectServiceImpl.java index 09af58a4..b80e8120 100644 --- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/ProjectServiceImpl.java +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/ProjectServiceImpl.java @@ -57,17 +57,6 @@ public class ProjectServiceImpl extends ServiceImpl return baseMapper.selectVoById(id); } - @Override - public ProjectVo getProjectVo(Project project) { - if (project == null) { - return null; - } - // 对象转封装类 - ProjectVo projectVo = new ProjectVo(); - BeanUtils.copyProperties(project, projectVo); - return projectVo; - } - /** * 分页查询项目列表 * @@ -80,7 +69,7 @@ public class ProjectServiceImpl extends ServiceImpl long size = req.getPageSize(); // 查询数据库 Page result = this.page(new Page<>(current, size), this.getQueryWrapper(req)); - return this.getProjectVoPage(result); + return this.getVoPage(result); } /** @@ -194,6 +183,23 @@ public class ProjectServiceImpl extends ServiceImpl return baseMapper.deleteByIds(ids) > 0; } + /** + * 获取项目视图对象 + * + * @param project 项目对象 + * @return 项目视图对象 + */ + @Override + public ProjectVo getProjectVo(Project project) { + if (project == null) { + return null; + } + // 对象转封装类 + ProjectVo projectVo = new ProjectVo(); + BeanUtils.copyProperties(project, projectVo); + return projectVo; + } + /** * 获取项目查询条件封装 * @@ -255,7 +261,7 @@ public class ProjectServiceImpl extends ServiceImpl @Override - public Page getProjectVoPage(Page projectPage) { + public Page getVoPage(Page projectPage) { List projectList = projectPage.getRecords(); Page projectVoPage = new Page<>(projectPage.getCurrent(), projectPage.getSize(), projectPage.getTotal()); if (CollUtil.isEmpty(projectList)) { diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/UserProjectRelevancyServiceImpl.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/UserProjectRelevancyServiceImpl.java index 59eca4f3..a8d68178 100644 --- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/UserProjectRelevancyServiceImpl.java +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/UserProjectRelevancyServiceImpl.java @@ -24,6 +24,7 @@ import org.dromara.project.domain.vo.UserProjectRelevancyVo; import org.dromara.project.mapper.UserProjectRelevancyMapper; import org.dromara.project.service.IProjectService; import org.dromara.project.service.IUserProjectRelevancyService; +import org.dromara.system.service.ISysUserService; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -49,37 +50,8 @@ public class UserProjectRelevancyServiceImpl extends ServiceImpl getUserProjectRelevancyVoPage(Page userProjectRelevancyPage) { - List userProjectRelevancyList = userProjectRelevancyPage.getRecords(); - Page userProjectRelevancyVoPage = new Page<>( - userProjectRelevancyPage.getCurrent(), - userProjectRelevancyPage.getSize(), - userProjectRelevancyPage.getTotal()); - if (CollUtil.isEmpty(userProjectRelevancyList)) { - return userProjectRelevancyVoPage; - } - // 对象列表 => 封装对象列表 - List userProjectRelevancyVoList = userProjectRelevancyList.stream().map(this::getUserProjectRelevancyVo).toList(); - userProjectRelevancyVoPage.setRecords(userProjectRelevancyVoList); - return userProjectRelevancyVoPage; - } + @Resource + private ISysUserService userService; /** * 查询系统用户与项目关联 @@ -92,7 +64,7 @@ public class UserProjectRelevancyServiceImpl extends ServiceImpl queryWrapper = this.getQueryWrapper(req); // 查询数据库 Page result = this.page(new Page<>(current, size), this.getQueryWrapper(req)); - return this.getUserProjectRelevancyVoPage(result); + return this.getVoPage(result); } /** @@ -136,10 +108,6 @@ public class UserProjectRelevancyServiceImpl extends ServiceImpl() .eq(UserProjectRelevancy::getUserId, userProjectRelevancy.getUserId()) @@ -190,7 +158,14 @@ public class UserProjectRelevancyServiceImpl extends ServiceImpl queryPageByUserId(Long userId, UserProjectRelevancyQueryReq req) { long current = req.getCurrent(); @@ -252,31 +234,7 @@ public class UserProjectRelevancyServiceImpl extends ServiceImpl queryWrapper = this.getQueryWrapper(req); // 查询数据库 Page result = this.page(new Page<>(current, size), queryWrapper); - return this.getUserProjectRelevancyVoPage(result); - } - - @Override - public QueryWrapper getQueryWrapper(UserProjectRelevancyQueryReq req) { - QueryWrapper queryWrapper = new QueryWrapper<>(); - if (req == null) { - return queryWrapper; - } - // 从对象中取值 - Long id = req.getId(); - Long userId = req.getUserId(); - Long projectId = req.getProjectId(); - String sortField = req.getSortField(); - String sortOrder = req.getSortOrder(); - String underlineSortField = StrUtil.toUnderlineCase(sortField); - // 精确查询 - queryWrapper.eq(ObjectUtils.isNotEmpty(id), "id", id); - queryWrapper.eq(ObjectUtils.isNotEmpty(userId), "user_id", userId); - queryWrapper.eq(ObjectUtils.isNotEmpty(projectId), "project_id", projectId); - // 排序规则 - queryWrapper.orderBy(SqlUtil.validSortField(sortField), - sortOrder.equals(CommonConstant.SORT_ORDER_ASC), - underlineSortField); - return queryWrapper; + return this.getVoPage(result); } /** @@ -315,4 +273,79 @@ public class UserProjectRelevancyServiceImpl extends ServiceImpl getQueryWrapper(UserProjectRelevancyQueryReq req) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + if (req == null) { + return queryWrapper; + } + // 从对象中取值 + Long id = req.getId(); + Long userId = req.getUserId(); + Long projectId = req.getProjectId(); + String sortField = req.getSortField(); + String sortOrder = req.getSortOrder(); + String underlineSortField = StrUtil.toUnderlineCase(sortField); + // 精确查询 + queryWrapper.eq(ObjectUtils.isNotEmpty(id), "id", id); + queryWrapper.eq(ObjectUtils.isNotEmpty(userId), "user_id", userId); + queryWrapper.eq(ObjectUtils.isNotEmpty(projectId), "project_id", projectId); + // 排序规则 + queryWrapper.orderBy(SqlUtil.validSortField(sortField), + sortOrder.equals(CommonConstant.SORT_ORDER_ASC), + underlineSortField); + return queryWrapper; + } + + /** + * 获取系统用户与项目关联分页视图 + * + * @param userProjectRelevancyPage 系统用户与项目关联分页 + * @return 系统用户与项目关联分页视图 + */ + @Override + public Page getVoPage(Page userProjectRelevancyPage) { + List userProjectRelevancyList = userProjectRelevancyPage.getRecords(); + Page userProjectRelevancyVoPage = new Page<>( + userProjectRelevancyPage.getCurrent(), + userProjectRelevancyPage.getSize(), + userProjectRelevancyPage.getTotal()); + if (CollUtil.isEmpty(userProjectRelevancyList)) { + return userProjectRelevancyVoPage; + } + // 对象列表 => 封装对象列表 + List userProjectRelevancyVoList = userProjectRelevancyList.stream().map(this::getVo).toList(); + userProjectRelevancyVoPage.setRecords(userProjectRelevancyVoList); + return userProjectRelevancyVoPage; + } + } diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/resources/mapper/project/BusConstructionUserMapper.xml b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/resources/mapper/project/BusConstructionUserMapper.xml new file mode 100644 index 00000000..eeadf38d --- /dev/null +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/resources/mapper/project/BusConstructionUserMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/resources/mapper/project/BusContractorMapper.xml b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/resources/mapper/project/BusContractorMapper.xml new file mode 100644 index 00000000..797205e3 --- /dev/null +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/resources/mapper/project/BusContractorMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/resources/mapper/project/BusProjectTeamMapper.xml b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/resources/mapper/project/BusProjectTeamMapper.xml new file mode 100644 index 00000000..ad5195b5 --- /dev/null +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/resources/mapper/project/BusProjectTeamMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/resources/mapper/project/BusProjectTeamMemberMapper.xml b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/resources/mapper/project/BusProjectTeamMemberMapper.xml new file mode 100644 index 00000000..efbba2d3 --- /dev/null +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/resources/mapper/project/BusProjectTeamMemberMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/RuoYi-Vue-Plus/script/sql/menuInitValue.sql b/RuoYi-Vue-Plus/script/sql/menuInitValue.sql new file mode 100644 index 00000000..fddfb8b1 --- /dev/null +++ b/RuoYi-Vue-Plus/script/sql/menuInitValue.sql @@ -0,0 +1,239 @@ +-- 菜单 SQL +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, + status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values (1896943300447367169, '项目', '1', '1', 'project', 'project/project/index', 1, 0, 'C', '0', '0', + 'project:project:list', '#', 103, 1, sysdate(), null, null, '项目菜单'); + +-- 按钮 SQL +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, + status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values (1896943300447367170, '项目查询', 1896943300447367169, '1', '#', '', 1, 0, 'F', '0', '0', + 'project:project:query', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, + status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values (1896943300447367171, '项目新增', 1896943300447367169, '2', '#', '', 1, 0, 'F', '0', '0', 'project:project:add', + '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, + status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values (1896943300447367172, '项目修改', 1896943300447367169, '3', '#', '', 1, 0, 'F', '0', '0', 'project:project:edit', + '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, + status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values (1896943300447367173, '项目删除', 1896943300447367169, '4', '#', '', 1, 0, 'F', '0', '0', + 'project:project:remove', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, + status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values (1896943300447367174, '项目导出', 1896943300447367169, '5', '#', '', 1, 0, 'F', '0', '0', + 'project:project:export', '#', 103, 1, sysdate(), null, null, ''); + +-- 菜单 SQL +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, + status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values (1896949180526047233, '系统用户与项目关联', '1', '1', 'projectRelevancy', 'project/projectRelevancy/index', 1, 0, + 'C', '0', '0', 'project:projectRelevancy:list', '#', 103, 1, sysdate(), null, null, '系统用户与项目关联菜单'); + +-- 按钮 SQL +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, + status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values (1896949180526047234, '系统用户与项目关联查询', 1896949180526047233, '1', '#', '', 1, 0, 'F', '0', '0', + 'project:projectRelevancy:query', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, + status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values (1896949180526047235, '系统用户与项目关联新增', 1896949180526047233, '2', '#', '', 1, 0, 'F', '0', '0', + 'project:projectRelevancy:add', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, + status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values (1896949180526047236, '系统用户与项目关联修改', 1896949180526047233, '3', '#', '', 1, 0, 'F', '0', '0', + 'project:projectRelevancy:edit', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, + status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values (1896949180526047237, '系统用户与项目关联删除', 1896949180526047233, '4', '#', '', 1, 0, 'F', '0', '0', + 'project:projectRelevancy:remove', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, + status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values (1896949180526047238, '系统用户与项目关联导出', 1896949180526047233, '5', '#', '', 1, 0, 'F', '0', '0', + 'project:projectRelevancy:export', '#', 103, 1, sysdate(), null, null, ''); + +-- 菜单 SQL +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, + status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values (1897479771016716290, '公司', '1', '1', 'company', 'materials/company/index', 1, 0, 'C', '0', '0', + 'materials:company:list', '#', 103, 1, sysdate(), null, null, '公司菜单'); + +-- 按钮 SQL +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, + status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values (1897479771016716291, '公司查询', 1897479771016716290, '1', '#', '', 1, 0, 'F', '0', '0', + 'materials:company:query', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, + status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values (1897479771016716292, '公司新增', 1897479771016716290, '2', '#', '', 1, 0, 'F', '0', '0', + 'materials:company:add', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, + status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values (1897479771016716293, '公司修改', 1897479771016716290, '3', '#', '', 1, 0, 'F', '0', '0', + 'materials:company:edit', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, + status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values (1897479771016716294, '公司删除', 1897479771016716290, '4', '#', '', 1, 0, 'F', '0', '0', + 'materials:company:remove', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, + status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values (1897479771016716295, '公司导出', 1897479771016716290, '5', '#', '', 1, 0, 'F', '0', '0', + 'materials:company:export', '#', 103, 1, sysdate(), null, null, ''); + +-- 菜单 SQL +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, + status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values (1897479769502572546, '材料出/入库', '1', '1', 'materialsInventory', 'materials/materialsInventory/index', 1, 0, + 'C', '0', '0', 'materials:materialsInventory:list', '#', 103, 1, sysdate(), null, null, '材料出/入库菜单'); + +-- 按钮 SQL +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, + status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values (1897479769502572547, '材料出/入库查询', 1897479769502572546, '1', '#', '', 1, 0, 'F', '0', '0', + 'materials:materialsInventory:query', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, + status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values (1897479769502572548, '材料出/入库新增', 1897479769502572546, '2', '#', '', 1, 0, 'F', '0', '0', + 'materials:materialsInventory:add', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, + status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values (1897479769502572549, '材料出/入库修改', 1897479769502572546, '3', '#', '', 1, 0, 'F', '0', '0', + 'materials:materialsInventory:edit', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, + status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values (1897479769502572550, '材料出/入库删除', 1897479769502572546, '4', '#', '', 1, 0, 'F', '0', '0', + 'materials:materialsInventory:remove', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, + status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values (1897479769502572551, '材料出/入库导出', 1897479769502572546, '5', '#', '', 1, 0, 'F', '0', '0', + 'materials:materialsInventory:export', '#', 103, 1, sysdate(), null, null, ''); + +-- 菜单 SQL +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, + status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values (1897479770626646018, '材料名称', '1', '1', 'materials', 'materials/materials/index', 1, 0, 'C', '0', '0', + 'materials:materials:list', '#', 103, 1, sysdate(), null, null, '材料名称菜单'); + +-- 按钮 SQL +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, + status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values (1897479770626646019, '材料名称查询', 1897479770626646018, '1', '#', '', 1, 0, 'F', '0', '0', + 'materials:materials:query', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, + status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values (1897479770626646020, '材料名称新增', 1897479770626646018, '2', '#', '', 1, 0, 'F', '0', '0', + 'materials:materials:add', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, + status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values (1897479770626646021, '材料名称修改', 1897479770626646018, '3', '#', '', 1, 0, 'F', '0', '0', + 'materials:materials:edit', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, + status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values (1897479770626646022, '材料名称删除', 1897479770626646018, '4', '#', '', 1, 0, 'F', '0', '0', + 'materials:materials:remove', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, + status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values (1897479770626646023, '材料名称导出', 1897479770626646018, '5', '#', '', 1, 0, 'F', '0', '0', + 'materials:materials:export', '#', 103, 1, sysdate(), null, null, ''); + +-- 菜单 SQL +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1897844021656604674, '项目班组', '1897103538172985346', '1', 'projectTeam', 'project/projectTeam/index', 1, 0, 'C', '0', '0', 'project:projectTeam:list', '#', 103, 1, sysdate(), null, null, '项目班组菜单'); + +-- 按钮 SQL +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1897844021656604675, '项目班组查询', 1897844021656604674, '1', '#', '', 1, 0, 'F', '0', '0', 'project:projectTeam:query', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1897844021656604676, '项目班组新增', 1897844021656604674, '2', '#', '', 1, 0, 'F', '0', '0', 'project:projectTeam:add', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1897844021656604677, '项目班组修改', 1897844021656604674, '3', '#', '', 1, 0, 'F', '0', '0', 'project:projectTeam:edit', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1897844021656604678, '项目班组删除', 1897844021656604674, '4', '#', '', 1, 0, 'F', '0', '0', 'project:projectTeam:remove', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1897844021656604679, '项目班组导出', 1897844021656604674, '5', '#', '', 1, 0, 'F', '0', '0', 'project:projectTeam:export', '#', 103, 1, sysdate(), null, null, ''); + +-- 菜单 SQL +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1897844022982004737, '项目班组下的成员', '1897103538172985346', '1', 'projectTeamMember', 'project/projectTeamMember/index', 1, 0, 'C', '0', '0', 'project:projectTeamMember:list', '#', 103, 1, sysdate(), null, null, '项目班组下的成员菜单'); + +-- 按钮 SQL +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1897844022982004738, '项目班组下的成员查询', 1897844022982004737, '1', '#', '', 1, 0, 'F', '0', '0', 'project:projectTeamMember:query', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1897844022982004739, '项目班组下的成员新增', 1897844022982004737, '2', '#', '', 1, 0, 'F', '0', '0', 'project:projectTeamMember:add', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1897844022982004740, '项目班组下的成员修改', 1897844022982004737, '3', '#', '', 1, 0, 'F', '0', '0', 'project:projectTeamMember:edit', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1897844022982004741, '项目班组下的成员删除', 1897844022982004737, '4', '#', '', 1, 0, 'F', '0', '0', 'project:projectTeamMember:remove', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1897844022982004742, '项目班组下的成员导出', 1897844022982004737, '5', '#', '', 1, 0, 'F', '0', '0', 'project:projectTeamMember:export', '#', 103, 1, sysdate(), null, null, ''); + +-- 菜单 SQL +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1897844022721957889, '分包单位', '1897103538172985346', '1', 'contractor', 'project/contractor/index', 1, 0, 'C', '0', '0', 'project:contractor:list', '#', 103, 1, sysdate(), null, null, '分包单位菜单'); + +-- 按钮 SQL +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1897844022721957890, '分包单位查询', 1897844022721957889, '1', '#', '', 1, 0, 'F', '0', '0', 'project:contractor:query', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1897844022721957891, '分包单位新增', 1897844022721957889, '2', '#', '', 1, 0, 'F', '0', '0', 'project:contractor:add', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1897844022721957892, '分包单位修改', 1897844022721957889, '3', '#', '', 1, 0, 'F', '0', '0', 'project:contractor:edit', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1897844022721957893, '分包单位删除', 1897844022721957889, '4', '#', '', 1, 0, 'F', '0', '0', 'project:contractor:remove', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1897844022721957894, '分包单位导出', 1897844022721957889, '5', '#', '', 1, 0, 'F', '0', '0', 'project:contractor:export', '#', 103, 1, sysdate(), null, null, ''); + +-- 菜单 SQL +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1897844023242051586, '施工人员', '1897103538172985346', '1', 'constructionUser', 'project/constructionUser/index', 1, 0, 'C', '0', '0', 'project:constructionUser:list', '#', 103, 1, sysdate(), null, null, '施工人员菜单'); + +-- 按钮 SQL +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1897844023242051587, '施工人员查询', 1897844023242051586, '1', '#', '', 1, 0, 'F', '0', '0', 'project:constructionUser:query', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1897844023242051588, '施工人员新增', 1897844023242051586, '2', '#', '', 1, 0, 'F', '0', '0', 'project:constructionUser:add', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1897844023242051589, '施工人员修改', 1897844023242051586, '3', '#', '', 1, 0, 'F', '0', '0', 'project:constructionUser:edit', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1897844023242051590, '施工人员删除', 1897844023242051586, '4', '#', '', 1, 0, 'F', '0', '0', 'project:constructionUser:remove', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1897844023242051591, '施工人员导出', 1897844023242051586, '5', '#', '', 1, 0, 'F', '0', '0', 'project:constructionUser:export', '#', 103, 1, sysdate(), null, null, ''); diff --git a/RuoYi-Vue-Plus/script/sql/xinnengyuan.sql b/RuoYi-Vue-Plus/script/sql/xinnengyuan.sql index f94a3714..654af770 100644 --- a/RuoYi-Vue-Plus/script/sql/xinnengyuan.sql +++ b/RuoYi-Vue-Plus/script/sql/xinnengyuan.sql @@ -33,7 +33,6 @@ create table `project` `is_delete` tinyint(4) default 0 not null comment '是否删除(0正常 1删除)', PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB - AUTO_INCREMENT = 60 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci comment = '项目表' ROW_FORMAT = DYNAMIC; @@ -52,7 +51,6 @@ CREATE TABLE `user_project_relevancy` INDEX `idx_user_id` (`user_id` ASC) USING BTREE comment '用户id', INDEX `idx_project_id` (`project_id` ASC) USING BTREE comment '项目id' ) ENGINE = InnoDB - AUTO_INCREMENT = 1365 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci comment = '系统用户与项目关联表' ROW_FORMAT = DYNAMIC; @@ -63,7 +61,7 @@ CREATE TABLE `bus_company` `id` bigint not null auto_increment, `company_name` varchar(64) null comment '公司名称', `project_id` bigint null comment '项目id', - `status` char(1) default 0 null comment '帐号状态(0正常 1停用)', + `status` tinyint(4) default 0 null comment '帐号状态(0正常 1停用)', `remark` varchar(255) null comment '备注', `qualification` varchar(255) null comment '资质情况', `create_by` varchar(64) null comment '创建者', @@ -75,7 +73,6 @@ CREATE TABLE `bus_company` PRIMARY KEY (`id`) USING BTREE, INDEX `idx_project_id` (`project_id` ASC) USING BTREE comment '项目id' ) ENGINE = InnoDB - AUTO_INCREMENT = 52 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci comment = '公司表' ROW_FORMAT = DYNAMIC; @@ -101,7 +98,7 @@ CREATE TABLE `bus_materials` `weight_id` varchar(64) null comment '计量单位', `remark` varchar(255) null comment '备注', `quantity_count` varchar(64) null comment '预计材料数量', - `status` char(1) null comment '状态(0正常 1停用)', + `status` tinyint(4) default 0 null comment '状态(0正常 1停用)', `create_by` varchar(64) null comment '创建者', `update_by` varchar(64) null comment '更新者', `create_time` datetime default CURRENT_TIMESTAMP null comment '创建时间', @@ -111,7 +108,6 @@ CREATE TABLE `bus_materials` PRIMARY KEY (`id`) USING BTREE, INDEX `idx_project_id` (`project_id` ASC) USING BTREE comment '项目id' ) ENGINE = InnoDB - AUTO_INCREMENT = 348 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci comment = '材料名称表' ROW_FORMAT = DYNAMIC; @@ -122,7 +118,7 @@ CREATE TABLE `bus_materials_inventory` `id` bigint not null auto_increment comment '主键id', `materials_id` bigint not null comment '材料id', `project_id` bigint null comment '项目id', - `out_put` char(1) null comment '出入库状态', + `out_put` tinyint(4) null comment '出入库状态', `number` int default 0 null comment '出/入库的数量', `out_put_time` datetime null comment '出/入库操作时间', `residue` int default 0 null comment '剩余库存数量(记录最后一次操作留下的库存数)', @@ -141,132 +137,116 @@ CREATE TABLE `bus_materials_inventory` PRIMARY KEY (`id`) USING BTREE, INDEX `idx_project_id` (`project_id` ASC) USING BTREE comment '项目ID' ) ENGINE = InnoDB - AUTO_INCREMENT = 965 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci comment = '材料出/入库表' ROW_FORMAT = DYNAMIC; --- 菜单 SQL -insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, - status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) -values (1896943300447367169, '项目', '1', '1', 'project', 'project/project/index', 1, 0, 'C', '0', '0', - 'project:project:list', '#', 103, 1, sysdate(), null, null, '项目菜单'); +DROP TABLE IF EXISTS `bus_contractor`; +CREATE TABLE `bus_contractor` +( + `id` bigint not null auto_increment comment '主键id', + `name` varchar(50) null comment '公司名称', + `principal` varchar(20) null comment '负责人', + `principal_phone` varchar(20) null comment '负责人联系电话', + `custodian` varchar(20) null comment '管理人', + `custodian_phone` varchar(20) null comment '管理人联系电话', + `remark` varchar(512) null comment '备注', + `create_by` varchar(64) null comment '创建人', + `update_by` varchar(64) null comment '更新人', + `create_time` datetime default CURRENT_TIMESTAMP null comment '创建时间', + `update_time` datetime default CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP comment '更新时间', + `deleted_at` datetime null comment '删除时间', + `is_delete` tinyint(4) default 0 not null comment '是否删除(0正常 1删除)', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB + CHARACTER SET = utf8mb4 + COLLATE = utf8mb4_general_ci comment = '分包单位' + ROW_FORMAT = DYNAMIC; --- 按钮 SQL -insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, - status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) -values (1896943300447367170, '项目查询', 1896943300447367169, '1', '#', '', 1, 0, 'F', '0', '0', - 'project:project:query', '#', 103, 1, sysdate(), null, null, ''); +DROP TABLE IF EXISTS `bus_construction_user`; +CREATE TABLE `bus_construction_user` +( + `id` bigint not null auto_increment, + `openid` varchar(64) null comment '微信id', + `nick_name` varchar(64) null comment '微信名称', + `pace_photo` longtext null comment '人脸照', + `user_name` varchar(32) null comment '人员姓名', + `project_id` bigint null comment '项目id', + `contractor_id` bigint null comment '分包公司id', + `team_id` bigint null comment '班组id', + `status` tinyint null comment '状态(0在职 1离职)', + `is_pinch` tinyint null comment '是否代打', + `phone` varchar(24) null comment '联系电话', + `sex` tinyint default 0 not null comment '0:保密 1:男 2女', + `nation` varchar(20) null comment '民族', + `sfz_number` varchar(50) null comment '身份证号码', + `sfz_start` varchar(20) null comment '身份证有效开始期', + `sfz_end` varchar(20) null comment '身份证有效结束期', + `sfz_site` varchar(100) null comment '身份证地址', + `sfz_birth` varchar(255) null comment '身份证出生日期', + `native_place` varchar(20) null comment '籍贯', + `yhk_number` varchar(50) null comment '银行卡号', + `yhk_opening_bank` varchar(50) null comment '开户行', + `yhk_cardholder` varchar(255) null comment '持卡人', + `type_of_work` tinyint(4) null comment '工种(字典type_of_work)', + `clock` tinyint default 1 not null comment '打卡(0启用打卡 1禁止打卡)', + `entry_date` varchar(255) null comment '入场时间', + `leave_date` varchar(255) null comment '离场时间', + `salary` decimal(10, 2) default 0.00 null comment '薪水', + `remark` varchar(512) null comment '备注', + `create_by` varchar(64) null comment '创建者', + `update_by` varchar(64) null comment '更新者', + `create_time` datetime default CURRENT_TIMESTAMP null comment '创建时间', + `update_time` datetime default CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP comment '更新时间', + `deleted_at` datetime null comment '删除时间', + `is_delete` tinyint(4) default 0 not null comment '是否删除(0正常 1删除)', + PRIMARY KEY (`id`) USING BTREE, + INDEX `idx_subcontractor_id` (`contractor_id` ASC) USING BTREE comment '劳务公司id', + INDEX `idx_openid` (`openid` ASC) USING BTREE comment '微信id', + INDEX `idx_phone` (`phone` ASC) USING BTREE comment '电话' +) ENGINE = InnoDB + CHARACTER SET = utf8mb4 + COLLATE = utf8mb4_general_ci comment = '施工人员表' + ROW_FORMAT = DYNAMIC; -insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, - status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) -values (1896943300447367171, '项目新增', 1896943300447367169, '2', '#', '', 1, 0, 'F', '0', '0', 'project:project:add', - '#', 103, 1, sysdate(), null, null, ''); - -insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, - status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) -values (1896943300447367172, '项目修改', 1896943300447367169, '3', '#', '', 1, 0, 'F', '0', '0', 'project:project:edit', - '#', 103, 1, sysdate(), null, null, ''); - -insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, - status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) -values (1896943300447367173, '项目删除', 1896943300447367169, '4', '#', '', 1, 0, 'F', '0', '0', - 'project:project:remove', '#', 103, 1, sysdate(), null, null, ''); - -insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, - status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) -values (1896943300447367174, '项目导出', 1896943300447367169, '5', '#', '', 1, 0, 'F', '0', '0', - 'project:project:export', '#', 103, 1, sysdate(), null, null, ''); - --- 菜单 SQL -insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, - status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) -values (1896949180526047233, '系统用户与项目关联', '1', '1', 'projectRelevancy', 'project/projectRelevancy/index', 1, 0, - 'C', '0', '0', 'project:projectRelevancy:list', '#', 103, 1, sysdate(), null, null, '系统用户与项目关联菜单'); - --- 按钮 SQL -insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, - status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) -values (1896949180526047234, '系统用户与项目关联查询', 1896949180526047233, '1', '#', '', 1, 0, 'F', '0', '0', - 'project:projectRelevancy:query', '#', 103, 1, sysdate(), null, null, ''); - -insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, - status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) -values (1896949180526047235, '系统用户与项目关联新增', 1896949180526047233, '2', '#', '', 1, 0, 'F', '0', '0', - 'project:projectRelevancy:add', '#', 103, 1, sysdate(), null, null, ''); - -insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, - status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) -values (1896949180526047236, '系统用户与项目关联修改', 1896949180526047233, '3', '#', '', 1, 0, 'F', '0', '0', - 'project:projectRelevancy:edit', '#', 103, 1, sysdate(), null, null, ''); - -insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, - status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) -values (1896949180526047237, '系统用户与项目关联删除', 1896949180526047233, '4', '#', '', 1, 0, 'F', '0', '0', - 'project:projectRelevancy:remove', '#', 103, 1, sysdate(), null, null, ''); - -insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, - status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) -values (1896949180526047238, '系统用户与项目关联导出', 1896949180526047233, '5', '#', '', 1, 0, 'F', '0', '0', - 'project:projectRelevancy:export', '#', 103, 1, sysdate(), null, null, ''); - --- 菜单 SQL -insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) -values(1897479771016716290, '公司', '1', '1', 'company', 'materials/company/index', 1, 0, 'C', '0', '0', 'materials:company:list', '#', 103, 1, sysdate(), null, null, '公司菜单'); - --- 按钮 SQL -insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) -values(1897479771016716291, '公司查询', 1897479771016716290, '1', '#', '', 1, 0, 'F', '0', '0', 'materials:company:query', '#', 103, 1, sysdate(), null, null, ''); - -insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) -values(1897479771016716292, '公司新增', 1897479771016716290, '2', '#', '', 1, 0, 'F', '0', '0', 'materials:company:add', '#', 103, 1, sysdate(), null, null, ''); - -insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) -values(1897479771016716293, '公司修改', 1897479771016716290, '3', '#', '', 1, 0, 'F', '0', '0', 'materials:company:edit', '#', 103, 1, sysdate(), null, null, ''); - -insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) -values(1897479771016716294, '公司删除', 1897479771016716290, '4', '#', '', 1, 0, 'F', '0', '0', 'materials:company:remove', '#', 103, 1, sysdate(), null, null, ''); - -insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) -values(1897479771016716295, '公司导出', 1897479771016716290, '5', '#', '', 1, 0, 'F', '0', '0', 'materials:company:export', '#', 103, 1, sysdate(), null, null, ''); - --- 菜单 SQL -insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) -values(1897479769502572546, '材料出/入库', '1', '1', 'materialsInventory', 'materials/materialsInventory/index', 1, 0, 'C', '0', '0', 'materials:materialsInventory:list', '#', 103, 1, sysdate(), null, null, '材料出/入库菜单'); - --- 按钮 SQL -insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) -values(1897479769502572547, '材料出/入库查询', 1897479769502572546, '1', '#', '', 1, 0, 'F', '0', '0', 'materials:materialsInventory:query', '#', 103, 1, sysdate(), null, null, ''); - -insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) -values(1897479769502572548, '材料出/入库新增', 1897479769502572546, '2', '#', '', 1, 0, 'F', '0', '0', 'materials:materialsInventory:add', '#', 103, 1, sysdate(), null, null, ''); - -insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) -values(1897479769502572549, '材料出/入库修改', 1897479769502572546, '3', '#', '', 1, 0, 'F', '0', '0', 'materials:materialsInventory:edit', '#', 103, 1, sysdate(), null, null, ''); - -insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) -values(1897479769502572550, '材料出/入库删除', 1897479769502572546, '4', '#', '', 1, 0, 'F', '0', '0', 'materials:materialsInventory:remove', '#', 103, 1, sysdate(), null, null, ''); - -insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) -values(1897479769502572551, '材料出/入库导出', 1897479769502572546, '5', '#', '', 1, 0, 'F', '0', '0', 'materials:materialsInventory:export', '#', 103, 1, sysdate(), null, null, ''); - --- 菜单 SQL -insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) -values(1897479770626646018, '材料名称', '1', '1', 'materials', 'materials/materials/index', 1, 0, 'C', '0', '0', 'materials:materials:list', '#', 103, 1, sysdate(), null, null, '材料名称菜单'); - --- 按钮 SQL -insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) -values(1897479770626646019, '材料名称查询', 1897479770626646018, '1', '#', '', 1, 0, 'F', '0', '0', 'materials:materials:query', '#', 103, 1, sysdate(), null, null, ''); - -insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) -values(1897479770626646020, '材料名称新增', 1897479770626646018, '2', '#', '', 1, 0, 'F', '0', '0', 'materials:materials:add', '#', 103, 1, sysdate(), null, null, ''); - -insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) -values(1897479770626646021, '材料名称修改', 1897479770626646018, '3', '#', '', 1, 0, 'F', '0', '0', 'materials:materials:edit', '#', 103, 1, sysdate(), null, null, ''); - -insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) -values(1897479770626646022, '材料名称删除', 1897479770626646018, '4', '#', '', 1, 0, 'F', '0', '0', 'materials:materials:remove', '#', 103, 1, sysdate(), null, null, ''); - -insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) -values(1897479770626646023, '材料名称导出', 1897479770626646018, '5', '#', '', 1, 0, 'F', '0', '0', 'materials:materials:export', '#', 103, 1, sysdate(), null, null, ''); +DROP TABLE IF EXISTS `bus_project_team`; +CREATE TABLE `bus_project_team` +( + `id` bigint not null auto_increment comment '主键id', + `project_id` bigint null comment '项目id', + `team_name` varchar(50) null comment '班组名称', + `is_clock_in` tinyint(4) default 1 not null comment '范围内打卡(0范围内打卡 1任何地点打卡)默认为1', + `remark` varchar(512) null comment '备注', + `create_by` varchar(64) null comment '创建者', + `update_by` varchar(64) null comment '更新者', + `create_time` datetime default CURRENT_TIMESTAMP null comment '创建时间', + `update_time` datetime default CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP comment '更新时间', + `deleted_at` datetime null comment '删除时间', + `is_delete` tinyint(4) default 0 not null comment '是否删除(0正常 1删除)', + PRIMARY KEY (`id`) USING BTREE, + INDEX `idx_project_id` (`project_id` ASC) USING BTREE comment '项目id' +) ENGINE = InnoDB + CHARACTER SET = utf8mb4 + COLLATE = utf8mb4_general_ci comment = '项目班组' + ROW_FORMAT = DYNAMIC; +DROP TABLE IF EXISTS `bus_project_team_member`; +CREATE TABLE `bus_project_team_member` +( + `id` bigint not null auto_increment comment '主键id', + `team_id` bigint null comment '班组id', + `project_id` bigint null comment '项目id', + `member_id` bigint null comment '施工人员id', + `post_id` tinyint default 0 null comment '岗位(默认为0普通员工,1组长)', + `remark` varchar(512) null comment '备注', + `create_time` datetime default CURRENT_TIMESTAMP null comment '创建时间', + `update_time` datetime default CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP comment '更新时间', + `deleted_at` datetime null comment '删除时间', + PRIMARY KEY (`id`) USING BTREE, + INDEX `idx_team_id` (`team_id` ASC) USING BTREE COMMENT '班组id', + INDEX `idx_project_id` (`project_id` ASC) USING BTREE COMMENT '项目id', + INDEX `idx_member_id` (`member_id` ASC) USING BTREE COMMENT '施工人员id' +) ENGINE = InnoDB + CHARACTER SET = utf8mb4 + COLLATE = utf8mb4_general_ci COMMENT = '项目班组下的成员' + ROW_FORMAT = DYNAMIC;