diff --git a/bonus-common-biz/src/main/java/com/bonus/common/biz/enums/HttpCodeEnum.java b/bonus-common-biz/src/main/java/com/bonus/common/biz/enums/HttpCodeEnum.java index 5ec8f10b..d42363f1 100644 --- a/bonus-common-biz/src/main/java/com/bonus/common/biz/enums/HttpCodeEnum.java +++ b/bonus-common-biz/src/main/java/com/bonus/common/biz/enums/HttpCodeEnum.java @@ -33,6 +33,9 @@ public enum HttpCodeEnum { INVALID_LONGITUDE_FORMAT(1001, "经度格式不正确"), INVALID_LATITUDE_FORMAT(1002, "纬度格式不正确"), INVALID_PHONE_FORMAT(1003, "手机号格式不正确"), + INVALID_PHONE_NUMBER_FORMAT(501, "手机号格式不正确"), + UPDATE_TO_DATABASE(500, "操作失败,请联系管理员"), + DEPART_IS_RELATED_TEAM(1004, "该项目部下有关联班组,不允许删除"), REPEATE_ERROR(600, "不允许重复提交,请稍候再试"); private final int code; diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/controller/BmProDepartController.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/controller/BmProDepartController.java new file mode 100644 index 00000000..827286f2 --- /dev/null +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/controller/BmProDepartController.java @@ -0,0 +1,114 @@ +package com.bonus.material.basic.controller; + +import com.bonus.common.core.utils.poi.ExcelUtil; +import com.bonus.common.core.web.controller.BaseController; +import com.bonus.common.core.web.domain.AjaxResult; +import com.bonus.material.basic.domain.BmProDepart; +import com.bonus.material.basic.service.BmProDepartService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.List; + +/** + * @Author ma_sh + * @create 2025/5/12 10:06 + */ +@Api(tags = "项目部管理接口") +@RestController +@RequestMapping("/bmProDepart") +@Slf4j +public class BmProDepartController extends BaseController { + + @Resource + private BmProDepartService bmProDepartService; + + /** + * 查询项目部列表信息 + * @param tbProDepart + * @return + */ + @ApiOperation(value = "分页查询项目部信息") + @GetMapping("/list") + public AjaxResult queryByPage(BmProDepart tbProDepart) { + try { + if (tbProDepart.getIsAll() != null && tbProDepart.getIsAll() == 0) { + return AjaxResult.success(bmProDepartService.queryByPage(tbProDepart)); + } + startPage(); + List list = bmProDepartService.queryByPage(tbProDepart); + return AjaxResult.success(getDataTable(list)); + } catch (Exception e) { + log.error("查询项目部数据失败", e); + return AjaxResult.error("项目部数据查询失败"); + } + } + + /** + * 新增项目部 + * + * @param tbProDepart 实体 + * @return 新增结果 + */ + @ApiOperation(value = "新增项目部数据") + @PostMapping("/add") + public AjaxResult add(@RequestBody BmProDepart tbProDepart) { + try { + return bmProDepartService.insert(tbProDepart); + } catch (Exception e) { + log.error("新增项目部数据失败", e); + return AjaxResult.error("新增项目部数据失败"); + } + } + + /** + * 编辑项目部 + * @param tbProDepart + * @return + */ + @ApiOperation(value = "编辑项目部数据") + @PostMapping("/edit") + public AjaxResult edit(@RequestBody BmProDepart tbProDepart) { + try { + return bmProDepartService.update(tbProDepart); + } catch (Exception e) { + log.error("编辑项目部数据失败", e); + return AjaxResult.error("编辑项目部数据失败"); + } + } + + /** + * 删除项目部 + * @param tbProDepart + * @return + */ + @ApiOperation(value = "删除项目部数据") + @PostMapping("/delete") + public AjaxResult deleteById(@RequestBody BmProDepart tbProDepart) { + try { + return bmProDepartService.deleteById(tbProDepart); + } catch (Exception e) { + log.error("删除项目部数据失败", e); + return AjaxResult.error("删除项目部数据失败"); + } + } + + /** + * 导出项目部管理列表 + * @param response + * @param tbProDepart + */ + @ApiOperation(value = "导出项目部管理列表") + @PostMapping("/export") + public void export(HttpServletResponse response, BmProDepart tbProDepart) + { + List list = bmProDepartService.queryByPage(tbProDepart); + ExcelUtil util = new ExcelUtil(BmProDepart.class); + util.exportExcel(response, list, "项目部管理数据"); + } +} diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/controller/BmTeamController.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/controller/BmTeamController.java new file mode 100644 index 00000000..c34ec257 --- /dev/null +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/controller/BmTeamController.java @@ -0,0 +1,112 @@ +package com.bonus.material.basic.controller; + +import com.bonus.common.core.utils.poi.ExcelUtil; +import com.bonus.common.core.web.controller.BaseController; +import com.bonus.common.core.web.domain.AjaxResult; +import com.bonus.material.basic.domain.BmTeam; +import com.bonus.material.basic.service.BmTeamService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * @Author ma_sh + * @create 2025/5/12 13:02 + */ +@Api(tags = "班组管理接口") +@RestController +@RequestMapping("/bmTeam") +@Slf4j +public class BmTeamController extends BaseController { + + @Resource + private BmTeamService bmTeamService; + + /** + * 查询班组信息 + * @param tbTeam + * @return + */ + @ApiOperation(value = "分页查询班组信息") + @GetMapping("/list") + public AjaxResult queryByPage(BmTeam tbTeam) { + try { + if (tbTeam.getIsAll() != null && tbTeam.getIsAll() == 0) { + return AjaxResult.success(bmTeamService.queryByPage(tbTeam)); + } + startPage(); + List list = bmTeamService.queryByPage(tbTeam); + return AjaxResult.success(getDataTable(list)); + } catch (Exception e) { + log.error("查询班组数据失败", e); + return AjaxResult.error("班组数据查询失败"); + } + } + + /** + * 新增班组信息 + * @param tbTeam + * @return + */ + @ApiOperation(value = "新增班组信息") + @PostMapping("/add") + public AjaxResult add(@RequestBody BmTeam tbTeam) { + try { + return bmTeamService.insert(tbTeam); + } catch (Exception e) { + log.error("新增班组数据失败", e); + return AjaxResult.error("新增班组数据失败"); + } + } + + /** + * 编辑班组信息 + * @param tbTeam + * @return + */ + @ApiOperation(value = "编辑班组信息") + @PostMapping("/edit") + public AjaxResult edit(@RequestBody BmTeam tbTeam) { + try { + return bmTeamService.edit(tbTeam); + } catch (Exception e) { + log.error("编辑班组数据失败", e); + return AjaxResult.error("编辑班组数据失败"); + } + } + + /** + * 删除班组信息 + * @param tbTeam + * @return + */ + @ApiOperation(value = "删除班组数据") + @PostMapping("/delete") + public AjaxResult deleteById(@RequestBody BmTeam tbTeam) { + try { + return bmTeamService.deleteById(tbTeam); + } catch (Exception e) { + log.error("删除班组信息失败", e); + return AjaxResult.error("删除班组信息失败"); + } + } + + /** + * 导出班组管理列表 + * @param response + * @param tbTeam + */ + @ApiOperation(value = "导出班组管理列表") + @PostMapping("/export") + public void export(HttpServletResponse response, BmTeam tbTeam) + { + List list = bmTeamService.queryByPage(tbTeam); + ExcelUtil util = new ExcelUtil(BmTeam.class); + util.exportExcel(response, list, "班组管理数据"); + } +} diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/BmProDepart.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/BmProDepart.java new file mode 100644 index 00000000..167f8f1b --- /dev/null +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/BmProDepart.java @@ -0,0 +1,91 @@ +package com.bonus.material.basic.domain; + +import com.bonus.common.core.annotation.Excel; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.util.Date; + +/** + * 项目部管理 + * @Author ma_sh + * @create 2025/5/12 10:07 + */ +@Data +public class BmProDepart { + + /** + * 是否下拉选 + */ + private Integer isAll; + + /** + * 主键 + */ + private Long id; + /** + * 项目部名称 + */ + @Excel(name = "项目部名称") + private String departName; + + /** + * 所属组织id + */ + private Long deptId; + + /** + * 所属组织 + */ + @Excel(name = "所属组织") + private String deptName; + + /** + * 联系人 + */ + @Excel(name = "联系人") + private String headUser; + + /** + * 负责人联系电话(sm4)加密(查询展示脱敏) + */ + @Excel(name = "联系电话") + private String headUserPhone; + + /** + * 备注 + */ + private String remark; + + /** + * 创建时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date createTime; + + /** + * 创建人 + */ + private Long createUser; + + /** + * 修改时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date updateTime; + + /** + * 修改人 + */ + private Long updateUser; + + /** + * 是否删除(0, 正常 2删除) + */ + private Integer delFlag; + + /** + * 关键字 + */ + private String keyWord; +} diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/BmTeam.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/BmTeam.java new file mode 100644 index 00000000..0b09383f --- /dev/null +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/BmTeam.java @@ -0,0 +1,92 @@ +package com.bonus.material.basic.domain; + +import com.bonus.common.core.annotation.Excel; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.util.Date; + +/** + * 班组管理 + * @Author ma_sh + * @create 2025/5/12 10:07 + */ +@Data +public class BmTeam { + + /** + * 是否下拉选 + */ + private Integer isAll; + + /** + * 主键 + */ + private Long id; + + /** + * 项目部名称 + */ + @Excel(name = "班组名称") + private String teamName; + + /** + * 所属项目部id + */ + private Long departId; + + /** + * 所属项目部 + */ + @Excel(name = "所属项目部") + private String departName; + + /** + * 联系人 + */ + @Excel(name = "联系人") + private String relName; + + /** + * 负责人联系电话(sm4)加密(查询展示脱敏) + */ + @Excel(name = "联系电话") + private String relPhone; + + /** + * 备注 + */ + private String remark; + + /** + * 创建时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date createTime; + + /** + * 创建人 + */ + private Long createUser; + + /** + * 修改时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date updateTime; + + /** + * 修改人 + */ + private Long updateUser; + + /** + * 是否删除(0, 正常 2删除) + */ + private Integer delFlag; + + /** + * 关键字 + */ + private String keyWord; +} diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/mapper/BmProDepartMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/mapper/BmProDepartMapper.java new file mode 100644 index 00000000..05135dd5 --- /dev/null +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/mapper/BmProDepartMapper.java @@ -0,0 +1,48 @@ +package com.bonus.material.basic.mapper; + +import com.bonus.material.basic.domain.BmProDepart; + +import java.util.List; + +/** + * @ClassName BmProDepartMapper + * @Author ma_sh + * @create 2025/5/12 10:14 + */ +public interface BmProDepartMapper { + + /** + * 查询项目部列表信息 + * @param tbProDepart + * @return + */ + List queryByPage(BmProDepart tbProDepart); + + /** + * 按照名称查询 + * @param tbProDepart + * @return + */ + BmProDepart selectByName(BmProDepart tbProDepart); + + /** + * 新增项目部信息 + * @param tbProDepart + * @return + */ + int insert(BmProDepart tbProDepart); + + /** + * 修改项目部信息 + * @param tbProDepart + * @return + */ + int update(BmProDepart tbProDepart); + + /** + * 删除项目部信息 + * @param tbProDepart + * @return + */ + int deleteById(BmProDepart tbProDepart); +} diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/mapper/BmTeamMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/mapper/BmTeamMapper.java new file mode 100644 index 00000000..31bff6fd --- /dev/null +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/mapper/BmTeamMapper.java @@ -0,0 +1,49 @@ +package com.bonus.material.basic.mapper; + +import com.bonus.material.basic.domain.BmProDepart; +import com.bonus.material.basic.domain.BmTeam; + +import java.util.List; + +/** + * @ClassName BmProDepartMapper + * @Author ma_sh + * @create 2025/5/12 10:14 + */ +public interface BmTeamMapper { + + /** + * 查询班组信息 + * @param tbTeam + * @return + */ + List queryByPage(BmTeam tbTeam); + + /** + * 根据名称查询班组信息 + * @param tbTeam + * @return + */ + BmTeam selectByName(BmTeam tbTeam); + + /** + * 新增班组信息 + * @param tbTeam + * @return + */ + int insert(BmTeam tbTeam); + + /** + * 修改班组信息 + * @param tbTeam + * @return + */ + int update(BmTeam tbTeam); + + /** + * 删除班组数据 + * @param tbTeam + * @return + */ + int deleteById(BmTeam tbTeam); +} diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/BmProDepartService.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/BmProDepartService.java new file mode 100644 index 00000000..88771871 --- /dev/null +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/BmProDepartService.java @@ -0,0 +1,42 @@ +package com.bonus.material.basic.service; + +import com.bonus.common.core.web.domain.AjaxResult; +import com.bonus.material.basic.domain.BmProDepart; + +import java.util.List; + +/** + * 项目部管理服务接口 + * @Author ma_sh + * @create 2025/5/12 10:12 + */ +public interface BmProDepartService { + + /** + * 查询项目部列表信息 + * @param tbProDepart + * @return + */ + List queryByPage(BmProDepart tbProDepart); + + /** + * 新增项目部 + * @param tbProDepart + * @return + */ + AjaxResult insert(BmProDepart tbProDepart); + + /** + * 编辑项目部 + * @param tbProDepart + * @return + */ + AjaxResult update(BmProDepart tbProDepart); + + /** + * 删除项目部 + * @param tbProDepart + * @return + */ + AjaxResult deleteById(BmProDepart tbProDepart); +} diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/BmTeamService.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/BmTeamService.java new file mode 100644 index 00000000..11ca24f0 --- /dev/null +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/BmTeamService.java @@ -0,0 +1,41 @@ +package com.bonus.material.basic.service; + +import com.bonus.common.core.web.domain.AjaxResult; +import com.bonus.material.basic.domain.BmTeam; + +import java.util.List; + +/** + * @ClassName BmTeamService + * @Author ma_sh + * @create 2025/5/12 13:02 + */ +public interface BmTeamService { + /** + * 查询班组信息 + * @param tbTeam + * @return + */ + List queryByPage(BmTeam tbTeam); + + /** + * 新增班组信息 + * @param tbTeam + * @return + */ + AjaxResult insert(BmTeam tbTeam); + + /** + * 编辑班组信息 + * @param tbTeam + * @return + */ + AjaxResult edit(BmTeam tbTeam); + + /** + * 删除班组数据 + * @param tbTeam + * @return + */ + AjaxResult deleteById(BmTeam tbTeam); +} diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/BmProDepartServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/BmProDepartServiceImpl.java new file mode 100644 index 00000000..58c0479f --- /dev/null +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/BmProDepartServiceImpl.java @@ -0,0 +1,137 @@ +package com.bonus.material.basic.service.impl; + +import cn.hutool.core.util.PhoneUtil; +import com.alibaba.nacos.common.utils.CollectionUtils; +import com.bonus.common.biz.enums.HttpCodeEnum; +import com.bonus.common.core.utils.StringUtils; +import com.bonus.common.core.utils.encryption.Sm4Utils; +import com.bonus.common.core.web.domain.AjaxResult; +import com.bonus.common.security.utils.SecurityUtils; +import com.bonus.material.basic.domain.BmProDepart; +import com.bonus.material.basic.domain.BmTeam; +import com.bonus.material.basic.mapper.BmProDepartMapper; +import com.bonus.material.basic.mapper.BmTeamMapper; +import com.bonus.material.basic.service.BmProDepartService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Objects; + +/** + * 项目部管理实现层 + * @Author ma_sh + * @create 2025/5/12 10:12 + */ +@Service +public class BmProDepartServiceImpl implements BmProDepartService { + + @Resource + private BmProDepartMapper bmProDepartMapper; + + @Resource + private BmTeamMapper bmTeamMapper; + + /** + * 查询项目部列表信息 + * @param tbProDepart + * @return + */ + @Override + public List queryByPage(BmProDepart tbProDepart) { + return bmProDepartMapper.queryByPage(tbProDepart); + } + + /** + * 新增项目部 + * @param tbProDepart + * @return + */ + @Override + public AjaxResult insert(BmProDepart tbProDepart) { + if (tbProDepart == null) { + return AjaxResult.error(HttpCodeEnum.TO_PARAM_NULL.getCode(), HttpCodeEnum.TO_PARAM_NULL.getMsg()); + } + //名称重复性校验 + BmProDepart depart = bmProDepartMapper.selectByName(tbProDepart); + if (depart != null) { + return AjaxResult.error(HttpCodeEnum.NAME_DUPLICATE.getCode(), HttpCodeEnum.NAME_DUPLICATE.getMsg()); + } + if (getObjectResultBean(tbProDepart)) { + return AjaxResult.error(HttpCodeEnum.INVALID_PHONE_NUMBER_FORMAT.getCode(), HttpCodeEnum.INVALID_PHONE_NUMBER_FORMAT.getMsg()); + } + tbProDepart.setCreateUser(SecurityUtils.getUserId()); + int result = bmProDepartMapper.insert(tbProDepart); + if (result > 0) { + return AjaxResult.success(HttpCodeEnum.SUCCESS.getMsg(), result); + } + return AjaxResult.error(HttpCodeEnum.UPDATE_TO_DATABASE.getCode(), HttpCodeEnum.UPDATE_TO_DATABASE.getMsg()); + } + + /** + * 编辑项目部 + * @param tbProDepart + * @return + */ + @Override + public AjaxResult update(BmProDepart tbProDepart) { + if (tbProDepart == null || tbProDepart.getId() == null) { + return AjaxResult.error(HttpCodeEnum.TO_PARAM_NULL.getCode(), HttpCodeEnum.TO_PARAM_NULL.getMsg()); + } + //名称重复性校验 + BmProDepart depart = bmProDepartMapper.selectByName(tbProDepart); + if (depart != null) { + if (!Objects.equals(depart.getId(), tbProDepart.getId())) { + return AjaxResult.error(HttpCodeEnum.NAME_DUPLICATE.getCode(), HttpCodeEnum.NAME_DUPLICATE.getMsg()); + } + } + if (getObjectResultBean(tbProDepart)) { + return AjaxResult.error(HttpCodeEnum.INVALID_PHONE_NUMBER_FORMAT.getCode(), HttpCodeEnum.INVALID_PHONE_NUMBER_FORMAT.getMsg()); + } + tbProDepart.setUpdateUser(SecurityUtils.getUserId()); + int result = bmProDepartMapper.update(tbProDepart); + if (result > 0) { + return AjaxResult.success(HttpCodeEnum.SUCCESS.getMsg(), result); + } + return AjaxResult.error(HttpCodeEnum.UPDATE_TO_DATABASE.getCode(), HttpCodeEnum.UPDATE_TO_DATABASE.getMsg()); + } + + /** + * 删除项目部 + * @param tbProDepart + * @return + */ + @Override + public AjaxResult deleteById(BmProDepart tbProDepart) { + if (tbProDepart == null || tbProDepart.getId() == null) { + return AjaxResult.error(HttpCodeEnum.TO_PARAM_NULL.getCode(), HttpCodeEnum.TO_PARAM_NULL.getMsg()); + } + // 先根据项目部id查询,该项目部是否被班组关联,若被关联,则无法删除 + BmTeam bmTeam = new BmTeam(); + bmTeam.setDepartId(tbProDepart.getId()); + List list = bmTeamMapper.queryByPage(bmTeam); + if (CollectionUtils.isNotEmpty(list)) { + return AjaxResult.error(HttpCodeEnum.DEPART_IS_RELATED_TEAM.getCode(), HttpCodeEnum.DEPART_IS_RELATED_TEAM.getMsg()); + } + // 进行删除操作 + int result = bmProDepartMapper.deleteById(tbProDepart); + if (result > 0) { + return AjaxResult.success(HttpCodeEnum.SUCCESS.getMsg(), result); + } + return AjaxResult.error(HttpCodeEnum.UPDATE_TO_DATABASE.getCode(), HttpCodeEnum.UPDATE_TO_DATABASE.getMsg()); + } + + /** + * 校验手机号格式 + * @param tbProDepart + * @return + */ + private boolean getObjectResultBean(BmProDepart tbProDepart) { + if (StringUtils.isNotBlank(tbProDepart.getHeadUserPhone())) { + if (!PhoneUtil.isMobile(tbProDepart.getHeadUserPhone())) { + return true; + } + } + return false; + } +} diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/BmTeamServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/BmTeamServiceImpl.java new file mode 100644 index 00000000..e85dcd74 --- /dev/null +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/BmTeamServiceImpl.java @@ -0,0 +1,122 @@ +package com.bonus.material.basic.service.impl; + +import cn.hutool.core.util.PhoneUtil; +import com.bonus.common.biz.enums.HttpCodeEnum; +import com.bonus.common.core.utils.StringUtils; +import com.bonus.common.core.web.domain.AjaxResult; +import com.bonus.common.security.utils.SecurityUtils; +import com.bonus.material.basic.domain.BmTeam; +import com.bonus.material.basic.mapper.BmTeamMapper; +import com.bonus.material.basic.service.BmTeamService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Objects; + +/** + * 班组管理接口实现类 + * @Author ma_sh + * @create 2025/5/12 13:03 + */ +@Service +public class BmTeamServiceImpl implements BmTeamService { + + @Resource + private BmTeamMapper bmTeamMapper; + + /** + * 查询班组信息 + * @param tbTeam + * @return + */ + @Override + public List queryByPage(BmTeam tbTeam) { + return bmTeamMapper.queryByPage(tbTeam); + } + + /** + * 新增班组信息 + * @param tbTeam + * @return + */ + @Override + public AjaxResult insert(BmTeam tbTeam) { + if (tbTeam == null) { + return AjaxResult.error(HttpCodeEnum.TO_PARAM_NULL.getCode(), HttpCodeEnum.TO_PARAM_NULL.getMsg()); + } + //名称重复性校验 + BmTeam bmTeam = bmTeamMapper.selectByName(tbTeam); + if (bmTeam != null) { + return AjaxResult.error(HttpCodeEnum.NAME_DUPLICATE.getCode(), HttpCodeEnum.NAME_DUPLICATE.getMsg()); + } + if (getObjectResultBean(tbTeam)) { + return AjaxResult.error(HttpCodeEnum.INVALID_PHONE_NUMBER_FORMAT.getCode(), HttpCodeEnum.INVALID_PHONE_NUMBER_FORMAT.getMsg()); + } + tbTeam.setCreateUser(SecurityUtils.getUserId()); + int result = bmTeamMapper.insert(tbTeam); + if (result > 0) { + return AjaxResult.success(HttpCodeEnum.SUCCESS.getMsg(), result); + } + return AjaxResult.error(HttpCodeEnum.UPDATE_TO_DATABASE.getCode(), HttpCodeEnum.UPDATE_TO_DATABASE.getMsg()); + } + + /** + * 编辑班组信息 + * @param tbTeam + * @return + */ + @Override + public AjaxResult edit(BmTeam tbTeam) { + if (tbTeam == null || tbTeam.getId() == null) { + return AjaxResult.error(HttpCodeEnum.TO_PARAM_NULL.getCode(), HttpCodeEnum.TO_PARAM_NULL.getMsg()); + } + //名称重复性校验 + BmTeam bmTeam = bmTeamMapper.selectByName(tbTeam); + if (bmTeam != null) { + if (!Objects.equals(bmTeam.getId(), tbTeam.getId())) { + return AjaxResult.error(HttpCodeEnum.NAME_DUPLICATE.getCode(), HttpCodeEnum.NAME_DUPLICATE.getMsg()); + } + } + if (getObjectResultBean(tbTeam)) { + return AjaxResult.error(HttpCodeEnum.INVALID_PHONE_NUMBER_FORMAT.getCode(), HttpCodeEnum.INVALID_PHONE_NUMBER_FORMAT.getMsg()); + } + tbTeam.setUpdateUser(SecurityUtils.getUserId()); + int result = bmTeamMapper.update(tbTeam); + if (result > 0) { + return AjaxResult.success(HttpCodeEnum.SUCCESS.getMsg(), result); + } + return AjaxResult.error(HttpCodeEnum.UPDATE_TO_DATABASE.getCode(), HttpCodeEnum.UPDATE_TO_DATABASE.getMsg()); + } + + /** + * 删除班组数据 + * @param tbTeam + * @return + */ + @Override + public AjaxResult deleteById(BmTeam tbTeam) { + if (tbTeam == null || tbTeam.getId() == null) { + return AjaxResult.error(HttpCodeEnum.TO_PARAM_NULL.getCode(), HttpCodeEnum.TO_PARAM_NULL.getMsg()); + } + int result = bmTeamMapper.deleteById(tbTeam); + if (result > 0) { + return AjaxResult.success(HttpCodeEnum.SUCCESS.getMsg(), result); + } + return AjaxResult.error(HttpCodeEnum.UPDATE_TO_DATABASE.getCode(), HttpCodeEnum.UPDATE_TO_DATABASE.getMsg()); + } + + /** + * 手机号校验方法抽取 + * @param tbTeam + * @return + */ + private boolean getObjectResultBean(BmTeam tbTeam) { + if (StringUtils.isNotBlank(tbTeam.getRelPhone())) { + if (!PhoneUtil.isMobile(tbTeam.getRelPhone())) { + return true; + } + } + return false; + } +} diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/basic/BmProDepartMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/basic/BmProDepartMapper.xml new file mode 100644 index 00000000..ec64874c --- /dev/null +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/basic/BmProDepartMapper.xml @@ -0,0 +1,84 @@ + + + + + + INSERT INTO bm_pro_depart + + depart_name, + dept_id, + head_user, + head_user_phone, + create_time, + create_by, + del_flag + + + #{departName}, + #{deptId}, + #{headUser}, + #{headUserPhone}, + NOW(), + #{createUser}, + 0 + + + + + update bm_pro_depart + + depart_name = #{departName}, + dept_id = #{deptId}, + head_user = #{headUser}, + head_user_phone = #{headUserPhone}, + update_time = NOW(), + update_by = #{updateUser}, + + where id = #{id} + + + + update bm_pro_depart + set del_flag = '2' + where id = #{id} + + + + + + \ No newline at end of file diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/basic/BmTeamMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/basic/BmTeamMapper.xml new file mode 100644 index 00000000..d06a6239 --- /dev/null +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/basic/BmTeamMapper.xml @@ -0,0 +1,86 @@ + + + + + INSERT INTO bm_team + + team_name, + depart_id, + rel_name, + rel_phone, + create_time, + create_by, + del_flag + + + #{teamName}, + #{departId}, + #{relName}, + #{relPhone}, + NOW(), + #{createUser}, + 0 + + + + + UPDATE bm_team + + team_name = #{teamName}, + depart_id = #{departId}, + rel_name = #{relName}, + rel_phone = #{relPhone}, + update_by = #{updateUser}, + update_time = NOW() + + WHERE id = #{id} + + + + update bm_team + set del_flag = '2' + where id = #{id} + + + + + + \ No newline at end of file