diff --git a/bonus-modules/bonus-base/src/main/java/com/bonus/base/basic/controller/BranchCompanyController.java b/bonus-modules/bonus-base/src/main/java/com/bonus/base/basic/controller/BranchCompanyController.java new file mode 100644 index 0000000..ee09de2 --- /dev/null +++ b/bonus-modules/bonus-base/src/main/java/com/bonus/base/basic/controller/BranchCompanyController.java @@ -0,0 +1,94 @@ +package com.bonus.base.basic.controller; + +import com.bonus.base.basic.domain.vo.BranchCompanyVo; +import com.bonus.base.basic.service.IBranchCompanyService; +import com.bonus.base.basic.service.IBranchCompanyService; +import com.bonus.common.core.web.controller.BaseController; +import com.bonus.common.core.web.domain.AjaxResult; +import com.bonus.common.core.web.page.TableDataInfo; +import com.bonus.common.log.annotation.SysLog; +import com.bonus.common.log.enums.OperaType; +import com.bonus.common.security.annotation.RequiresPermissions; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @className:BranchCompanyController + * @author:cwchen + * @date:2025-04-10-10:22 + * @version:1.0 + * @description:分公司管理-控制层 + */ +@Api(tags = "分公司管理") +@RestController +@RequestMapping("/branchCompany/") +public class BranchCompanyController extends BaseController { + + @Resource(name = "IBranchCompanyService") + private IBranchCompanyService service; + + @ApiOperation(value = "查询分公司数据") + @RequiresPermissions("basic:branchCompany:list") + @SysLog(title = "分公司管理", businessType = OperaType.QUERY, logType = 1,module = "分公司管理->查询分公司数据") + @GetMapping("queryBranchCompanyList") + public TableDataInfo queryBranchCompanyList(BranchCompanyVo vo) { + startPage(); + List list = service.queryBranchCompanyList(vo); + return getDataTable(list); + } + + @ApiOperation(value = "新增分公司") +// @PreventRepeatSubmit + @RequiresPermissions("basic:branchCompany:add") + @SysLog(title = "分公司管理", businessType = OperaType.INSERT, logType = 1,module = "分公司管理->新增分公司") + @PostMapping("addBranchCompany") + public AjaxResult addBranchCompany(@RequestBody BranchCompanyVo vo) { + return service.addBranchCompany(vo); + } + + @ApiOperation(value = "分公司详情") + @GetMapping("detailBranchCompany") + public AjaxResult detailBranchCompany(BranchCompanyVo vo) { + return service.detailBranchCompany(vo); + } + + @ApiOperation(value = "修改分公司") +// @PreventRepeatSubmit + @RequiresPermissions("basic:branchCompany:edit") + @SysLog(title = "分公司管理", businessType = OperaType.UPDATE, logType = 1,module = "分公司管理->修改分公司") + @PostMapping("editBranchCompany") + public AjaxResult editBranchCompany(@RequestBody BranchCompanyVo vo) { + return service.editBranchCompany(vo); + } + + @ApiOperation(value = "删除分公司") +// @PreventRepeatSubmit + @RequiresPermissions("basic:branchCompany:del") + @SysLog(title = "分公司管理", businessType = OperaType.UPDATE, logType = 1,module = "分公司管理->删除分公司") + @PostMapping("delBranchCompany") + public AjaxResult delBranchCompany(@RequestBody BranchCompanyVo vo) { + return service.delBranchCompany(vo); + } + + @ApiOperation(value = "修改分公司状态") +// @PreventRepeatSubmit + @RequiresPermissions("basic:branchCompany:editStatus") + @SysLog(title = "分公司管理", businessType = OperaType.UPDATE, logType = 1,module = "分公司管理->修改分公司状态") + @PostMapping("editBranchCompanyStatus") + public AjaxResult editBranchCompanyStatus(@RequestBody BranchCompanyVo vo) { + return service.editBranchCompanyStatus(vo); + } + + @ApiOperation(value = "查询分公司数据") + @RequiresPermissions("basic:branchCompany:list") + @SysLog(title = "分公司管理", businessType = OperaType.QUERY, logType = 1,module = "分公司管理->查询分公司数据") + @GetMapping("queryBranchCompanyListAll") + public AjaxResult queryBranchCompanyListAll(BranchCompanyVo vo) { + List list = service.queryBranchCompanyList(vo); + return success(list); + } +} diff --git a/bonus-modules/bonus-base/src/main/java/com/bonus/base/basic/domain/vo/BranchCompanyVo.java b/bonus-modules/bonus-base/src/main/java/com/bonus/base/basic/domain/vo/BranchCompanyVo.java new file mode 100644 index 0000000..267bddd --- /dev/null +++ b/bonus-modules/bonus-base/src/main/java/com/bonus/base/basic/domain/vo/BranchCompanyVo.java @@ -0,0 +1,94 @@ +package com.bonus.base.basic.domain.vo; + +import com.bonus.common.security.utils.SecurityUtils; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Pattern; +import java.util.Date; +import java.util.Optional; + +/** + * @className:SysUnitVo + * @author:cwchen + * @date:2025-04-10-9:44 + * @version:1.0 + * @description:分公司-VO + */ +@Data +public class BranchCompanyVo { + + /**关键字*/ + @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) + private String keyWord; + + @NotNull(message = "id不能为空", groups = {Edit.class,Del.class,EditStatus.class}) + private Long id; + /** + * 分公司名称 + */ + @NotBlank(message = "分公司名称不能为空", groups = {Add.class, Edit.class}) + @Length(max = 128, message = "分公司名称字符长度不能超过128", groups = {Add.class, Edit.class}) + private String companyName; + /** + * 简称 + */ + @NotBlank(message = "简称不能为空", groups = {Add.class, Edit.class}) + @Length(max = 128, message = "简称字符长度不能超过128", groups = {Add.class, Edit.class}) + private String abbrName; + + /** + * 状态 + */ + @NotBlank(message = "状态不能为空", groups = {Add.class, Edit.class,EditStatus.class}) + @Pattern(regexp = "[01]", message = "只允许输入0或1",groups = {Add.class, Edit.class,EditStatus.class}) + private String useStatus; + + /** + * 备注 + */ + @Length(max = 255, message = "备注字符长度不能超过255", groups = {Add.class, Edit.class}) + private String remark; + + @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) + private Long createUserId = Optional.ofNullable(SecurityUtils.getUserId()).orElse(0L); + @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) + private Long updateUserId = Optional.ofNullable(SecurityUtils.getUserId()).orElse(0L); + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date updateTime; + + /** + * 更新人 + * */ + private String updateUserName; + + + /** + * 新增条件限制 + */ + public interface Add { + } + + /** + * 修改条件限制 + */ + public interface Edit { + } + + /** + * 删除条件限制 + */ + public interface Del { + } + + /** + * 删除条件限制 + */ + public interface EditStatus { + } +} diff --git a/bonus-modules/bonus-base/src/main/java/com/bonus/base/basic/mapper/IBranchCompanyMapper.java b/bonus-modules/bonus-base/src/main/java/com/bonus/base/basic/mapper/IBranchCompanyMapper.java new file mode 100644 index 0000000..d6430cc --- /dev/null +++ b/bonus-modules/bonus-base/src/main/java/com/bonus/base/basic/mapper/IBranchCompanyMapper.java @@ -0,0 +1,57 @@ +package com.bonus.base.basic.mapper; + +import com.bonus.base.basic.domain.vo.BranchCompanyVo; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + * @className:BranchCompanyMapper + * @author:cwchen + * @date:2025-04-17-17:06 + * @version:1.0 + * @description:分公司管理-数据层 + */ +@Repository(value = "BranchCompanyMapper") +public interface IBranchCompanyMapper { + + /** + * 查询分公司数据 + * + * @param vo + * @return List + * @author cwchen + * @date 2025/4/10 10:55 + */ + List queryBranchCompanyList(BranchCompanyVo vo); + + /** + * 查询字段是否重复 + * + * @param vo + * @return int + * @author cwchen + * @date 2025/4/10 13:36 + */ + int queryValueIsExist(@Param("params") BranchCompanyVo vo, @Param("value")String value, @Param("columnName") String columnName); + + /** + * 1.新增/2.修改/3.删除/4.修改分公司状态 分公司 + * @param vo + * @param type + * @return void + * @author cwchen + * @date 2025/4/10 13:53 + */ + void addOrUpdateBranchCompany(@Param("params") BranchCompanyVo vo, @Param("type") int type); + + /** + * 分公司详情 + * @param vo + * @return BranchCompanyVo + * @author cwchen + * @date 2025/4/10 17:52 + */ + BranchCompanyVo detailBranchCompany(BranchCompanyVo vo); +} diff --git a/bonus-modules/bonus-base/src/main/java/com/bonus/base/basic/service/IBranchCompanyService.java b/bonus-modules/bonus-base/src/main/java/com/bonus/base/basic/service/IBranchCompanyService.java new file mode 100644 index 0000000..b2d02c9 --- /dev/null +++ b/bonus-modules/bonus-base/src/main/java/com/bonus/base/basic/service/IBranchCompanyService.java @@ -0,0 +1,70 @@ +package com.bonus.base.basic.service; + +import com.bonus.base.basic.domain.vo.BranchCompanyVo; +import com.bonus.common.core.web.domain.AjaxResult; + +import java.util.List; + +/** + * @className:BranchCompanyService + * @author:cwchen + * @date:2025-04-17-17:05 + * @version:1.0 + * @description:分公司管理-业务层 + */ +public interface IBranchCompanyService { + + /** + * 查询分公司数据 + * @param vo + * @return List + * @author cwchen + * @date 2025/4/10 10:52 + */ + List queryBranchCompanyList(BranchCompanyVo vo); + + /** + * 新增分公司 + * @param vo + * @return AjaxResult + * @author cwchen + * @date 2025/4/10 13:29 + */ + AjaxResult addBranchCompany(BranchCompanyVo vo); + + /** + * 修改分公司 + * @param vo + * @return AjaxResult + * @author cwchen + * @date 2025/4/10 14:00 + */ + AjaxResult editBranchCompany(BranchCompanyVo vo); + + /** + * 删除分公司 + * @param vo + * @return AjaxResult + * @author cwchen + * @date 2025/4/10 14:01 + */ + AjaxResult delBranchCompany(BranchCompanyVo vo); + + /** + * 分公司详情 + * @param vo + * @return AjaxResult + * @author cwchen + * @date 2025/4/10 17:50 + */ + AjaxResult detailBranchCompany(BranchCompanyVo vo); + + /** + * 修改分公司状态 + * @param vo + * @return AjaxResult + * @author cwchen + * @date 2025/4/17 17:34 + */ + AjaxResult editBranchCompanyStatus(BranchCompanyVo vo); +} diff --git a/bonus-modules/bonus-base/src/main/java/com/bonus/base/basic/service/impl/BranchCompanyServiceImpl.java b/bonus-modules/bonus-base/src/main/java/com/bonus/base/basic/service/impl/BranchCompanyServiceImpl.java new file mode 100644 index 0000000..6a3d00d --- /dev/null +++ b/bonus-modules/bonus-base/src/main/java/com/bonus/base/basic/service/impl/BranchCompanyServiceImpl.java @@ -0,0 +1,135 @@ +package com.bonus.base.basic.service.impl; + +import com.bonus.base.basic.domain.vo.BranchCompanyVo; +import com.bonus.base.basic.mapper.IBranchCompanyMapper; +import com.bonus.base.basic.service.IBranchCompanyService; +import com.bonus.common.core.utils.uuid.IdUtils; +import com.bonus.common.core.web.domain.AjaxResult; +import com.bonus.common.security.utils.ValidatorsUtils; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.transaction.interceptor.TransactionAspectSupport; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; + +/** + * @className:BranchCompanyServiceImpl + * @author:cwchen + * @date:2025-04-17-17:05 + * @version:1.0 + * @description:分公司管理-业务逻辑层 + */ +@Service(value = "IBranchCompanyService") +@Slf4j +public class BranchCompanyServiceImpl implements IBranchCompanyService { + + @Resource(name = "BranchCompanyMapper") + private IBranchCompanyMapper mapper; + + @Resource(name = "ValidatorsUtils") + private ValidatorsUtils validatorsUtils; + + @Override + public List queryBranchCompanyList(BranchCompanyVo vo) { + try { + List list = Optional.ofNullable(mapper.queryBranchCompanyList(vo)).orElseGet(ArrayList::new); + return list; + } catch (Exception e) { + log.error(e.toString(), e); + return new ArrayList(); + } + } + + @Override + @Transactional(rollbackFor = Exception.class) + public AjaxResult addBranchCompany(BranchCompanyVo vo) { + try { + // 校验必填数据 + String validResult = validatorsUtils.valid(vo, BranchCompanyVo.Add.class); + if (StringUtils.isNotBlank(validResult)) { + return AjaxResult.error(validResult); + } + // 校验分公司名称是否重复 + int flag = mapper.queryValueIsExist(vo,vo.getCompanyName(),"company_name"); + if (flag > 0) return AjaxResult.error("分公司名称已存在"); + mapper.addOrUpdateBranchCompany(vo,1); + return AjaxResult.success(); + } catch (Exception e) { + log.error(e.toString(), e); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return AjaxResult.error(); + } + } + + @Override + @Transactional(rollbackFor = Exception.class) + public AjaxResult editBranchCompany(BranchCompanyVo vo) { + try { + // 校验必填数据 + String validResult = validatorsUtils.valid(vo, BranchCompanyVo.Edit.class); + if (StringUtils.isNotBlank(validResult)) { + return AjaxResult.error(validResult); + } + // 校验分公司名称是否重复 + int flag = mapper.queryValueIsExist(vo,vo.getCompanyName(),"company_name"); + if (flag > 0) return AjaxResult.error("分公司名称已存在"); + mapper.addOrUpdateBranchCompany(vo,2); + return AjaxResult.success(); + } catch (Exception e) { + log.error(e.toString(), e); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return AjaxResult.error(); + } + } + + @Override + @Transactional(rollbackFor = Exception.class) + public AjaxResult delBranchCompany(BranchCompanyVo vo) { + try { + // 校验必填数据 + String validResult = validatorsUtils.valid(vo, BranchCompanyVo.Del.class); + if (StringUtils.isNotBlank(validResult)) { + return AjaxResult.error(validResult); + } + mapper.addOrUpdateBranchCompany(vo,3); + return AjaxResult.success(); + } catch (Exception e) { + log.error(e.toString(), e); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return AjaxResult.error(); + } + } + + @Override + public AjaxResult editBranchCompanyStatus(BranchCompanyVo vo) { + try { + // 校验必填数据 + String validResult = validatorsUtils.valid(vo, BranchCompanyVo.EditStatus.class); + if (StringUtils.isNotBlank(validResult)) { + return AjaxResult.error(validResult); + } + mapper.addOrUpdateBranchCompany(vo,4); + return AjaxResult.success(); + } catch (Exception e) { + log.error(e.toString(), e); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return AjaxResult.error(); + } + } + + @Override + public AjaxResult detailBranchCompany(BranchCompanyVo vo) { + try { + BranchCompanyVo BranchCompanyVo = Optional.ofNullable(mapper.detailBranchCompany(vo)).orElseGet(BranchCompanyVo::new); + return AjaxResult.success(BranchCompanyVo); + } catch (Exception e) { + log.error(e.toString(), e); + return AjaxResult.error(); + } + } +} diff --git a/bonus-modules/bonus-base/src/main/resources/mapper/smartsite/basic/BranchCompanyMapper.xml b/bonus-modules/bonus-base/src/main/resources/mapper/smartsite/basic/BranchCompanyMapper.xml new file mode 100644 index 0000000..5a79af4 --- /dev/null +++ b/bonus-modules/bonus-base/src/main/resources/mapper/smartsite/basic/BranchCompanyMapper.xml @@ -0,0 +1,82 @@ + + + + + + + INSERT INTO tb_branch_company + + company_name, + abbr_name, + use_status, + remark, + + + #{params.companyName}, + #{params.abbrName}, + #{params.useStatus}, + #{params.remark}, + + + + UPDATE tb_branch_company + + company_name = #{params.companyName}, + abbr_name = #{params.abbrName}, + use_status = #{params.useStatus}, + remark = #{params.remark}, + + WHERE id = #{params.id} + + + UPDATE tb_branch_company SET is_active = '0' WHERE id = #{params.id} + + + UPDATE tb_branch_company SET use_status = #{params.useStatus} WHERE id = #{params.id} + + + + + + + + + + \ No newline at end of file