| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -41,6 +41,7 @@ import org.springframework.stereotype.Service; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import org.springframework.transaction.annotation.Transactional; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import javax.annotation.Resource; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import java.util.ArrayList; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import java.util.Arrays; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import java.util.List; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import java.util.Map; | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -79,6 +80,12 @@ public class PointApplyServiceImpl extends BaseServiceImpl<PointApplyDao, PointA | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    item.setShowName(userInfo.getShowName()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    item.setStatus(ApplyStatusEnum.getName(item.getStatus())); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                //获取网格信息
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                //从缓存获取网格信息
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(item.getGridId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                if (null != gridInfo) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    item.setGridName(gridInfo.getGridName()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            }); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        return new PageData<>(list, pageInfo.getTotal()); | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -208,49 +215,65 @@ public class PointApplyServiceImpl extends BaseServiceImpl<PointApplyDao, PointA | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    @Override | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    public void audit(TokenDto tokenDto, PointAuditFormDTO formDTO) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        //更新审核状态
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        PointApplyEntity entity = ConvertUtils.sourceToTarget(formDTO, PointApplyEntity.class); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        baseDao.updateById(entity); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        String subjectId; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        //获取积分申请信息
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        PointApplyDTO dto = get(formDTO.getId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        if (CommonConstant.MORAL_EDUCATION.equals(dto.getCategoryCode())) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            subjectId = dto.getHouseId(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } else { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            subjectId = dto.getUserId(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        if (StringUtils.isBlank(formDTO.getId()) && CollectionUtils.isEmpty(formDTO.getIds())) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "请选择待审核的申请", "请选择待审核的申请"); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        //生成积分记录
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        PointAditiveRecordEntity record = new PointAditiveRecordEntity(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        record.setCustomerId(tokenDto.getCustomerId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        record.setTitle(dto.getTitle()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        record.setStatement(dto.getStatement()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        record.setPointValue(dto.getPointValue()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        record.setCategoryCode(dto.getCategoryCode()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        record.setSubjectId(subjectId); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        record.setBusinessId(dto.getId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        record.setBusinessCode(CommonConstant.POINT_APPLY); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        pointAditiveRecordDao.insert(record); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        //重新计算总分
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        LambdaQueryWrapper<PointAditiveCalcEntity> wrapper = new LambdaQueryWrapper<>(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        wrapper.eq(PointAditiveCalcEntity::getCustomerId, tokenDto.getCustomerId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        wrapper.eq(PointAditiveCalcEntity::getSubjectId, subjectId); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        wrapper.eq(PointAditiveCalcEntity::getCategoryCode, dto.getCategoryCode()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        PointAditiveCalcEntity calc = pointAditiveCalcDao.selectOne(wrapper); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        if (null != calc) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            calc.setUpdatedBy(null); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            calc.setUpdatedTime(null); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            calc.setTotal(calc.getTotal() + dto.getPointValue()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            pointAditiveCalcDao.updateById(calc); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        List<String> ids = new ArrayList<>(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        if (CollectionUtils.isEmpty(formDTO.getIds())) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            ids.add(formDTO.getId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } else { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            calc = new PointAditiveCalcEntity(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            calc.setCustomerId(tokenDto.getCustomerId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            calc.setCategoryCode(dto.getCategoryCode()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            calc.setSubjectId(subjectId); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            calc.setSpend(NumConstant.ZERO); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            calc.setTotal(dto.getPointValue()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            pointAditiveCalcDao.insert(calc); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            ids = formDTO.getIds(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        ids.forEach(id -> { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //获取积分申请信息
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            PointApplyDTO dto = get(id); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            if (NumConstant.ZERO_STR.equals(dto.getStatus())) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                //更新审核状态
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                PointApplyEntity entity = ConvertUtils.sourceToTarget(formDTO, PointApplyEntity.class); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                baseDao.updateById(entity); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                String subjectId; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                if (CommonConstant.MORAL_EDUCATION.equals(dto.getCategoryCode())) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    subjectId = dto.getHouseId(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                } else { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    subjectId = dto.getUserId(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                //生成积分记录
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                PointAditiveRecordEntity record = new PointAditiveRecordEntity(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                record.setCustomerId(tokenDto.getCustomerId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                record.setTitle(dto.getTitle()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                record.setStatement(dto.getStatement()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                record.setPointValue(dto.getPointValue()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                record.setCategoryCode(dto.getCategoryCode()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                record.setSubjectId(subjectId); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                record.setBusinessId(dto.getId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                record.setBusinessCode(CommonConstant.POINT_APPLY); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                pointAditiveRecordDao.insert(record); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                //重新计算总分
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                LambdaQueryWrapper<PointAditiveCalcEntity> wrapper = new LambdaQueryWrapper<>(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                wrapper.eq(PointAditiveCalcEntity::getCustomerId, tokenDto.getCustomerId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                wrapper.eq(PointAditiveCalcEntity::getSubjectId, subjectId); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                wrapper.eq(PointAditiveCalcEntity::getCategoryCode, dto.getCategoryCode()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                PointAditiveCalcEntity calc = pointAditiveCalcDao.selectOne(wrapper); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                if (null != calc) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    calc.setUpdatedBy(null); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    calc.setUpdatedTime(null); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    calc.setTotal(calc.getTotal() + dto.getPointValue()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    pointAditiveCalcDao.updateById(calc); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                } else { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    calc = new PointAditiveCalcEntity(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    calc.setCustomerId(tokenDto.getCustomerId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    calc.setCategoryCode(dto.getCategoryCode()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    calc.setSubjectId(subjectId); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    calc.setSpend(NumConstant.ZERO); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    calc.setTotal(dto.getPointValue()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    pointAditiveCalcDao.insert(calc); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        }); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} |