| | |
| | | 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.ApproveParamMapper; |
| | | import com.doumee.dao.business.ApproveTemplMapper; |
| | | import com.doumee.dao.business.model.ApproveTempl; |
| | | import com.doumee.dao.business.PlatformReasonMapper; |
| | | import com.doumee.dao.business.join.MemberJoinMapper; |
| | | import com.doumee.dao.business.model.*; |
| | | import com.doumee.service.business.ApproveTemplService; |
| | | 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.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.util.CollectionUtils; |
| | | |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | |
| | | /** |
| | | * 审批模版信息表Service实现 |
| | |
| | | |
| | | @Autowired |
| | | private ApproveTemplMapper approveTemplMapper; |
| | | @Autowired |
| | | private ApproveParamMapper approveParamMapper; |
| | | @Autowired |
| | | private MemberJoinMapper memberJoinMapper; |
| | | @Autowired |
| | | private PlatformReasonMapper platformReasonMapper; |
| | | |
| | | @Override |
| | | public Integer create(ApproveTempl approveTempl) { |
| | | approveTemplMapper.insert(approveTempl); |
| | | return approveTempl.getId(); |
| | | @Transactional(rollbackFor = {BusinessException.class,Exception.class}) |
| | | public int save(ApproveTempl model) { |
| | | LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); |
| | | if(loginUserInfo == null){ |
| | | loginUserInfo = model.getLoginUserInfo(); |
| | | } |
| | | if(model.getType() == null || Constants.ApproveTmplType.getName(model.getType()) == null){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | | } |
| | | PlatformReason reason = null; |
| | | if(Constants.equalsInteger(model.getType(),Constants.ApproveTmplType.PLATFROM_REASON.getKey())){ |
| | | if(model.getReasonId() ==null){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | | } |
| | | reason = platformReasonMapper.selectById(model.getReasonId()); |
| | | if(reason ==null){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对不起,入园原因信息不存在,请返回刷新页面重试!"); |
| | | } |
| | | } |
| | | ApproveTempl template = approveTemplMapper.selectOne(new QueryWrapper<ApproveTempl>().lambda() |
| | | .eq(ApproveTempl::getType,model.getType() ) |
| | | .eq(ApproveTempl::getIsdeleted,Constants.ZERO) |
| | | //如果是入园原因配置,根据ID查询对应的模版信息 |
| | | .eq(Constants.equalsInteger(model.getType(),Constants.ApproveTmplType.PLATFROM_REASON.getKey()),ApproveTempl::getId,model.getReasonId()) |
| | | .last("limit 1")); |
| | | Date date =new Date(); |
| | | if(template == null){ |
| | | //如果模版没有,则新增 |
| | | template = new ApproveTempl(); |
| | | template.setType(model.getType()); |
| | | template.setCreateDate(date); |
| | | template.setCreator(loginUserInfo.getId()); |
| | | template.setEditDate(date); |
| | | template.setIsdeleted(Constants.ZERO); |
| | | template.setEditor(loginUserInfo.getId()); |
| | | template.setName(Constants.ApproveTmplType.getName(model.getType())); |
| | | approveTemplMapper.insert(template); |
| | | } |
| | | int level = 0; |
| | | if(model.getParamList()!=null && model.getParamList().size()>0){ |
| | | for(ApproveParam param : model.getParamList()){ |
| | | param.setCreateDate(date); |
| | | param.setId(null); |
| | | param.setCreator(loginUserInfo.getId()); |
| | | param.setEditDate(date); |
| | | param.setEditor(loginUserInfo.getId()); |
| | | param.setIsdeleted(Constants.ZERO); |
| | | // param.setLevel(level); |
| | | param.setMemberType(Constants.formatIntegerNum(param.getMemberType())); |
| | | param.setTemplId(template.getId()); |
| | | param.setType(Constants.formatIntegerNum(param.getType())); |
| | | param.setAddrParam(Constants.formatIntegerNum(param.getAddrParam())); |
| | | param.setDriverParam(Constants.formatIntegerNum(param.getDriverParam())); |
| | | param.setApproveType(Objects.isNull(param.getApproveType())?Constants.TWO:param.getApproveType()); |
| | | level ++ ; |
| | | } |
| | | //先清除原来所有的就陪配置 |
| | | approveParamMapper.delete(new UpdateWrapper<ApproveParam>().lambda() |
| | | .eq(ApproveParam::getTemplId,template.getId())); |
| | | //批量插入新的配置 |
| | | approveParamMapper.insert(model.getParamList()); |
| | | } |
| | | if(Constants.equalsInteger(model.getType(),Constants.ApproveTmplType.PLATFROM_REASON.getKey())){ |
| | | PlatformReason r = new PlatformReason(); |
| | | r.setApproveTemplId(template.getId()); |
| | | r.setId(model.getReasonId()); |
| | | r.setEditor(template.getEditor()); |
| | | r.setEditDate(new Date()); |
| | | platformReasonMapper.updateById(r); |
| | | } |
| | | return 1; |
| | | } |
| | | |
| | | @Override |
| | | public void deleteById(Integer id) { |
| | | approveTemplMapper.deleteById(id); |
| | | public Integer create(ApproveTempl model) { |
| | | approveTemplMapper.insert(model); |
| | | return model.getId(); |
| | | } |
| | | |
| | | @Override |
| | | public void deleteById(Integer id, LoginUserInfo userInfo) { |
| | | ApproveTempl model = new ApproveTempl(); |
| | | model.setEditDate(new Date()); |
| | | model.setEditor(userInfo.getId()); |
| | | model.setId(id); |
| | | model.setIsdeleted(Constants.ONE); |
| | | approveTemplMapper.updateById(model); |
| | | } |
| | | |
| | | @Override |
| | |
| | | } |
| | | |
| | | @Override |
| | | public void deleteByIdInBatch(List<Integer> ids) { |
| | | public void deleteByIdInBatch(List<Integer> ids, LoginUserInfo user) { |
| | | if (CollectionUtils.isEmpty(ids)) { |
| | | return; |
| | | } |
| | | approveTemplMapper.deleteBatchIds(ids); |
| | | for(Integer id:ids){ |
| | | deleteById(id,user); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | |
| | | @Override |
| | | public ApproveTempl findOne(ApproveTempl approveTempl) { |
| | | QueryWrapper<ApproveTempl> wrapper = new QueryWrapper<>(approveTempl); |
| | | return approveTemplMapper.selectOne(wrapper); |
| | | ApproveTempl model = approveTemplMapper.selectOne(wrapper.lambda().last("limit 1")); |
| | | if(model!=null){ |
| | | List<ApproveParam> approveParamList = approveParamMapper.selectList(new QueryWrapper<ApproveParam>() |
| | | .lambda().eq(ApproveParam::getIsdeleted,Constants.ZERO) |
| | | .eq(ApproveParam::getTemplId,model.getId()) |
| | | .orderByAsc(ApproveParam::getLevel) |
| | | ); |
| | | for (ApproveParam approveParam :approveParamList) { |
| | | if(StringUtils.isNotBlank(approveParam.getObjIds())){ |
| | | approveParam.setMemberList(memberJoinMapper.selectJoinList(Member.class,new MPJLambdaWrapper<Member>() |
| | | .selectAll(Member.class) |
| | | .selectAs(Company::getName,Member::getCompanyName) |
| | | .leftJoin(Company.class,Company::getId,Member::getCompanyId) |
| | | .eq(Member::getIsdeleted,Constants.ZERO) |
| | | .in(Member::getId,approveParam.getObjIds().split(",")))); |
| | | } |
| | | } |
| | | model.setParamList(approveParamList); |
| | | } |
| | | return model; |
| | | } |
| | | |
| | | @Override |