server/company/src/main/java/com/doumee/api/business/CompanyController.java
@@ -6,6 +6,7 @@ import com.doumee.core.model.ApiResponse; import com.doumee.core.model.PageWrap; import com.doumee.core.model.PageData; import com.doumee.core.utils.Constants; import com.doumee.dao.business.model.Company; import com.doumee.service.business.CompanyService; import io.swagger.annotations.Api; @@ -71,6 +72,14 @@ @PostMapping("/page") @RequiresPermissions("business:company:query") public ApiResponse<PageData<Company>> findPage (@RequestBody PageWrap<Company> pageWrap) { //æéèå´å return ApiResponse.success(companyService.findPage(pageWrap)); } @ApiOperation("æ¥è¯¢å ¨é¨æ°æ®(è´¦å·åé ä¼ä¸ä½¿ç¨)") @PostMapping("/pageAll") @RequiresPermissions("business:companypermission:create") public ApiResponse<PageData<Company>> findPageAll (@RequestBody PageWrap<Company> pageWrap) { pageWrap.getModel().setQueryFlag(Constants.ONE);//æ¥è¯¢å ¨é¨ return ApiResponse.success(companyService.findPage(pageWrap)); } server/company/src/main/java/com/doumee/api/business/CompanyPermissionController.java
@@ -31,7 +31,7 @@ private CompanyPermissionService companyPermissionService; @PreventRepeat @ApiOperation("æ°å»º") @ApiOperation("è´¦å·åé ä¼ä¸æé") @PostMapping("/create") @RequiresPermissions("business:companypermission:create") public ApiResponse create(@RequestBody CompanyPermission companyPermission) { @@ -73,6 +73,12 @@ public ApiResponse<PageData<CompanyPermission>> findPage (@RequestBody PageWrap<CompanyPermission> pageWrap) { return ApiResponse.success(companyPermissionService.findPage(pageWrap)); } @ApiOperation("æ¥è¯¢å ¨é¨") @PostMapping("/list") @RequiresPermissions("business:companypermission:query") public ApiResponse<List<CompanyPermission>> findList(@RequestBody CompanyPermission pageWrap) { return ApiResponse.success(companyPermissionService.findList(pageWrap)); } @ApiOperation("导åºExcel") @PostMapping("/exportExcel") server/service/src/main/java/com/doumee/config/mybatis/EasySqlInjector.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,19 @@ package com.doumee.config.mybatis; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.core.injector.AbstractMethod; import com.baomidou.mybatisplus.extension.injector.methods.InsertBatchSomeColumn; import com.github.yulichang.injector.MPJSqlInjector; import java.util.List; public class EasySqlInjector extends MPJSqlInjector { @Override public List<AbstractMethod> getMethodList(Class<?> mapperClass ) { // 注æï¼æ¤SQLæ³¨å ¥å¨ç»§æ¿äºDefaultSqlInjector(é»è®¤æ³¨å ¥å¨)ï¼è°ç¨äºDefaultSqlInjectorçgetMethodListæ¹æ³ï¼ä¿çäºmybatis-plusçèªå¸¦æ¹æ³ List<AbstractMethod> methodList = super.getMethodList(mapperClass); methodList.add(new InsertBatchSomeColumn(i -> i.getFieldFill() != FieldFill.UPDATE)); return methodList; } } server/service/src/main/java/com/doumee/dao/business/CompanyPermissionMapper.java
@@ -3,10 +3,13 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.doumee.dao.business.model.CompanyPermission; import java.util.List; /** * @author æ±è¹è¹ * @date 2024/01/16 10:03 */ public interface CompanyPermissionMapper extends BaseMapper<CompanyPermission> { void insertBatchSomeColumn(List<CompanyPermission> list); } server/service/src/main/java/com/doumee/dao/business/join/SolutionWorktypeJoinMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,13 @@ package com.doumee.dao.business.join; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.doumee.dao.business.model.SolutionWorktype; import com.github.yulichang.base.mapper.MPJJoinMapper; /** * @author æ±è¹è¹ * @date 2024/01/16 10:03 */ public interface SolutionWorktypeJoinMapper extends MPJJoinMapper<SolutionWorktype> { } server/service/src/main/java/com/doumee/dao/business/model/Company.java
@@ -1,5 +1,6 @@ package com.doumee.dao.business.model; import com.baomidou.mybatisplus.annotation.TableField; import com.doumee.core.annotation.excel.ExcelColumn; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -115,5 +116,11 @@ @ExcelColumn(name="çµåç¾è®¤è¯æ¶é´") @JsonFormat(pattern = "yyyy-MM-dd") private Date signDate; @ApiModelProperty(value = "æ¥è¯¢è¾¨è¯ 0æéèå´å 1å ¨é¨") @TableField(exist = false) private int queryFlag ; @ApiModelProperty(value = "æ¯å¦æ¥ææé 0æ 1æ") @TableField(exist = false) private int hasPerimission ; } server/service/src/main/java/com/doumee/dao/business/model/CompanyPermission.java
@@ -9,6 +9,7 @@ import lombok.Data; import com.fasterxml.jackson.annotation.JsonFormat; import java.util.Date; import java.util.List; /** * 管çå管çä¼ä¸æé @@ -58,5 +59,8 @@ @ApiModelProperty(value = "ç¨æ·ç¼ç ", example = "1") @ExcelColumn(name="ç¨æ·ç¼ç ") private Integer userId; @ApiModelProperty(value = "ä¼ä¸ç¼ç éå", example = "1") @ExcelColumn(name="ä¼ä¸ç¼ç éå") private List<Integer> companyIdList; } server/service/src/main/java/com/doumee/dao/business/model/SolutionWorktype.java
@@ -1,5 +1,6 @@ package com.doumee.dao.business.model; import com.baomidou.mybatisplus.annotation.TableField; import com.doumee.core.annotation.excel.ExcelColumn; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -66,5 +67,8 @@ @ApiModelProperty(value = "å·¥ç§ç¼ç ï¼å ³èworktypeï¼", example = "1") @ExcelColumn(name="å·¥ç§ç¼ç ï¼å ³èworktypeï¼") private Integer worktypeId; @ApiModelProperty(value = "å·¥ç§åç§°", example = "1") @TableField(exist = false) private String worktypeName; } server/service/src/main/java/com/doumee/dao/business/model/Solutions.java
@@ -152,6 +152,9 @@ @ApiModelProperty(value = "å·¥ç§ç¼ç éå", example = "1") @TableField(exist = false) private List<Integer> worktypeIdList; @ApiModelProperty(value = "å·¥ç§å ³èéå", example = "1") @TableField(exist = false) private List<SolutionWorktype> worktypeList; } server/service/src/main/java/com/doumee/service/business/impl/CompanyPermissionServiceImpl.java
@@ -1,10 +1,17 @@ package com.doumee.service.business.impl; import com.doumee.core.constants.ResponseStatus; import com.doumee.core.exception.BusinessException; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.core.utils.Constants; import com.doumee.core.utils.Utils; import com.doumee.dao.business.CompanyMapper; import com.doumee.dao.business.CompanyPermissionMapper; import com.doumee.dao.business.model.Company; import com.doumee.dao.business.model.CompanyPermission; import com.doumee.dao.system.SystemUserMapper; import com.doumee.dao.system.model.SystemUser; import com.doumee.service.business.CompanyPermissionService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; @@ -14,6 +21,8 @@ import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.util.ArrayList; import java.util.Date; import java.util.List; /** @@ -26,10 +35,42 @@ @Autowired private CompanyPermissionMapper companyPermissionMapper; @Autowired private SystemUserMapper systemUserMapper; @Autowired private CompanyMapper companyMapper; @Override public Integer create(CompanyPermission companyPermission) { companyPermissionMapper.insert(companyPermission); if(companyPermission.getUserId() == null || companyPermission.getCompanyIdList() == null || companyPermission.getCompanyIdList().size()==0){ throw new BusinessException(ResponseStatus.BAD_REQUEST); } SystemUser user =systemUserMapper.selectById(companyPermission.getUserId()); if(user == null || (user.getDeleted() !=null && user.getDeleted())){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对ä¸èµ·ï¼ç¨æ·ä¿¡æ¯ä¸åå¨ï¼è¯·å°è¯å·æ°é¡µé¢éè¯ï¼"); } List<Company> companieList = companyMapper.selectList(new QueryWrapper<Company>().lambda() .in(Company::getId,companyPermission.getCompanyIdList()) .eq(Company::getIsdeleted, Constants.ZERO)); if(companieList == null || companieList.size() == 0){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对ä¸èµ·ï¼è¯·éæ©ææä¼ä¸ï¼è¯·å°è¯å·æ°é¡µé¢éè¯ï¼"); } Date date = new Date(); List<CompanyPermission> list = new ArrayList<>(); for(Company c : companieList){ CompanyPermission model = new CompanyPermission(); model.setCompanyId(c.getId()); model.setIsdeleted(Constants.ZERO); model.setIsdeleted(Constants.ZERO); model.setCreator(user.getId()); model.setUserId(companyPermission.getUserId()); model.setCreateDate(date); list.add(model); } //åªé¤åæçï¼å¨æ¹éæå ¥æ°ç companyPermissionMapper.delete(new QueryWrapper<CompanyPermission>().lambda().eq(CompanyPermission::getUserId,companyPermission.getUserId())); companyPermissionMapper.insertBatchSomeColumn(list); return companyPermission.getId(); } server/service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java
@@ -1,15 +1,23 @@ package com.doumee.service.business.impl; import com.doumee.core.constants.ResponseStatus; import com.doumee.core.exception.BusinessException; import com.doumee.core.model.LoginUserInfo; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.core.utils.Constants; import com.doumee.core.utils.Utils; import com.doumee.dao.business.CompanyMapper; import com.doumee.dao.business.CompanyPermissionMapper; import com.doumee.dao.business.model.Company; import com.doumee.dao.business.model.CompanyPermission; import com.doumee.dao.business.model.Insurance; import com.doumee.service.business.CompanyService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.shiro.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; @@ -26,9 +34,12 @@ @Autowired private CompanyMapper companyMapper; @Autowired private CompanyPermissionMapper companyPermissionMapper; @Override public Integer create(Company company) { companyMapper.insert(company); return company.getId(); } @@ -54,6 +65,10 @@ @Override public void updateById(Company company) { Company model = findById(company.getId()); if(model == null || !Constants.equalsInteger(model.getIsdeleted(),Constants.ZERO) ){ throw new BusinessException(ResponseStatus.DATA_EMPTY ); } companyMapper.updateById(company); } @@ -89,6 +104,15 @@ IPage<Company> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); QueryWrapper<Company> queryWrapper = new QueryWrapper<>(); Utils.MP.blankToNull(pageWrap.getModel()); pageWrap.getModel().setIsdeleted(Constants.ZERO); LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); if(pageWrap.getModel().getQueryFlag() == 0){ //åªè½çæéèå´å queryWrapper.exists("select b.id from company_permission b where b.user_id="+user.getId()+" and b.isdeleted=0 and b.company_id=company.id"); } else if (pageWrap.getModel().getQueryFlag() == 1) { //æ¥è©¢æ¯å¦ææ¥çæ¬é queryWrapper.select("*,(select count(1) from company_permission b where b.user_id="+user.getId()+" and b.isdeleted=0 and b.company_id=company.id) as hasPerimission"); } if (pageWrap.getModel().getId() != null) { queryWrapper.lambda().eq(Company::getId, pageWrap.getModel().getId()); } @@ -110,7 +134,7 @@ queryWrapper.lambda().eq(Company::getIsdeleted, pageWrap.getModel().getIsdeleted()); } if (pageWrap.getModel().getName() != null) { queryWrapper.lambda().eq(Company::getName, pageWrap.getModel().getName()); queryWrapper.lambda().like(Company::getName, pageWrap.getModel().getName()); } if (pageWrap.getModel().getRemark() != null) { queryWrapper.lambda().eq(Company::getRemark, pageWrap.getModel().getRemark()); server/service/src/main/java/com/doumee/service/business/impl/InsuranceServiceImpl.java
@@ -71,6 +71,7 @@ return insurance.getId(); } private void dealWorkTypeData(Insurance insurance, Insurance newModel, List<Worktype> worktypeList,boolean isNew) { int num=0; for(Worktype w : worktypeList) { //åºç¡çæ¬ w.setInsuranceId(insurance.getId()); @@ -80,6 +81,7 @@ w.setDataType(insurance.getDataType()); w.setStatus(Constants.ZERO); w.setVersion(insurance.getVersion()); w.setSortnum(num++); worktypeMapper.insert(w); //åå²çæ¬çå·¥ç§ä¿¡æ¯ @@ -89,6 +91,7 @@ newType.setBaseId(w.getId()); newType.setDataType(Constants.ONE); newType.setVersion(newModel.getVersion()); w.setSortnum(num++); worktypeMapper.insert(newType); } } @@ -159,7 +162,6 @@ @Override public void updateById(Insurance insurance) { LoginUserInfo user= (LoginUserInfo)SecurityUtils.getSubject().getPrincipal(); Insurance model = findById(insurance.getId()); if(model == null || !Constants.equalsInteger(model.getIsdeleted(),Constants.ZERO) || !Constants.equalsInteger(model.getDataType(),Constants.ZERO)){ @@ -167,7 +169,7 @@ } //æ°æ®æææ§æ ¡éª initCreateParam(insurance); LoginUserInfo user= (LoginUserInfo)SecurityUtils.getSubject().getPrincipal(); Insurance updateModel = new Insurance(); updateModel.setEditor(user.getId()); updateModel.setName(insurance.getName()); @@ -241,7 +243,16 @@ @Override public Insurance findById(Integer id) { return insuranceMapper.selectById(id); Insurance model = insuranceMapper.selectById(id); if(model == null || !Constants.equalsInteger(model.getIsdeleted(),Constants.ZERO)){ throw new BusinessException(ResponseStatus.DATA_EMPTY ); } List<Worktype> worktypeList = worktypeMapper.selectList(new QueryWrapper<Worktype>().lambda() .eq(Worktype::getInsuranceId,id) .eq(Worktype::getIsdeleted,Constants.ZERO) .orderByAsc(Worktype::getSortnum)); model.setWorktypeList(worktypeList); return model; } @Override @@ -285,7 +296,7 @@ queryWrapper.lambda().eq(Insurance::getIsdeleted, pageWrap.getModel().getIsdeleted()); } if (pageWrap.getModel().getName() != null) { queryWrapper.lambda().eq(Insurance::getName, pageWrap.getModel().getName()); queryWrapper.lambda().like(Insurance::getName, pageWrap.getModel().getName()); } if (pageWrap.getModel().getRemark() != null) { queryWrapper.lambda().eq(Insurance::getRemark, pageWrap.getModel().getRemark()); server/service/src/main/java/com/doumee/service/business/impl/SolutionsServiceImpl.java
@@ -11,12 +11,14 @@ import com.doumee.dao.business.SolutionWorktypeMapper; import com.doumee.dao.business.SolutionsMapper; import com.doumee.dao.business.WorktypeMapper; import com.doumee.dao.business.join.SolutionWorktypeJoinMapper; import com.doumee.dao.business.model.*; import com.doumee.service.business.SolutionsService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.springframework.beans.BeanUtils; @@ -42,7 +44,7 @@ @Autowired private WorktypeMapper worktypeMapper; @Autowired private SolutionWorktypeMapper solutionWorktypeMapper; private SolutionWorktypeJoinMapper solutionWorktypeJoinMapper; @Autowired private InsuranceMapper insuranceMapper; @@ -87,7 +89,7 @@ if(worktypeList==null ||worktypeIdList.size()==0){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对ä¸èµ·ï¼å·¥ç§ä¿¡æ¯éæ©æè¯¯ï¼è¯·å°è¯å·æ°é¡µé¢éè¯~" ); } int num =0; for(Worktype type : worktypeList) { //åºç¡çæ¬ SolutionWorktype w = new SolutionWorktype(); @@ -97,13 +99,14 @@ w.setCreateDate(solutions.getCreateDate()); w.setWorktypeId(type.getId()); w.setStatus(Constants.ZERO); solutionWorktypeMapper.insert(w); w.setSortnum(num++); solutionWorktypeJoinMapper.insert(w); //åå²çæ¬çå·¥ç§ä¿¡æ¯ SolutionWorktype newType = new SolutionWorktype(); BeanUtils.copyProperties(w, newType); newType.setSolutionId(newModel.getId()); solutionWorktypeMapper.insert(newType); solutionWorktypeJoinMapper.insert(newType); } } @@ -172,7 +175,7 @@ solutionsMapper.insert(newModel); //å 餿æå·¥ç§æ°æ® solutionWorktypeMapper.delete(new UpdateWrapper<SolutionWorktype>() solutionWorktypeJoinMapper.delete(new UpdateWrapper<SolutionWorktype>() .lambda() .eq(SolutionWorktype::getSolutionId,solutions.getId()) ); @@ -222,7 +225,20 @@ } @Override public Solutions findById(Integer id) { return solutionsMapper.selectById(id); Solutions model = solutionsMapper.selectById(id); if(model == null || !Constants.equalsInteger(model.getIsdeleted(),Constants.ZERO)){ throw new BusinessException(ResponseStatus.DATA_EMPTY ); } MPJLambdaWrapper<SolutionWorktype> wrapper = new MPJLambdaWrapper<>(); wrapper.selectAll(SolutionWorktype.class); wrapper.selectAs(Worktype::getName,SolutionWorktype::getWorktypeName); wrapper.leftJoin(Worktype.class,Worktype::getId,SolutionWorktype::getWorktypeId); wrapper.eq(SolutionWorktype::getSolutionId,id); wrapper.eq(SolutionWorktype::getIsdeleted,Constants.ZERO); wrapper.orderByAsc(SolutionWorktype::getSortnum); List<SolutionWorktype> worktypeList = solutionWorktypeJoinMapper.selectJoinList(SolutionWorktype.class,wrapper); model.setWorktypeList(worktypeList); return model; } @Override @@ -266,7 +282,7 @@ queryWrapper.lambda().eq(Solutions::getIsdeleted, pageWrap.getModel().getIsdeleted()); } if (pageWrap.getModel().getName() != null) { queryWrapper.lambda().eq(Solutions::getName, pageWrap.getModel().getName()); queryWrapper.lambda().like(Solutions::getName, pageWrap.getModel().getName()); } if (pageWrap.getModel().getRemark() != null) { queryWrapper.lambda().eq(Solutions::getRemark, pageWrap.getModel().getRemark());