yanghb
2025-02-18 1fc203f758ace853f4bfa900c422c2f741d09e79
land-system/src/main/java/com/zzg/system/service/state/impl/StateProjectCompensateStandardServiceImpl.java
@@ -29,11 +29,19 @@
import java.util.stream.Collectors;
@Service
public class StateProjectCompensateStandardServiceImpl extends ServiceImpl<StateProjectCompensateStandardMapper, StateProjectCompensateStandard>
        implements StateProjectCompensateStandardService {
public class StateProjectCompensateStandardServiceImpl extends ServiceImpl<StateProjectCompensateStandardMapper, StateProjectCompensateStandard> implements StateProjectCompensateStandardService {
    @Lazy
    @Resource
    private StateProjectCompensationService stateProjectCompensationService;
    /**
     * 获取补偿标准列表
     * @param standardName
     * @param stopFlag
     * @param compensateType
     * @return
     */
    @Override
    public Map<String, List<StateProjectCompensateStandardVO>> getCompensateStandardMap(String standardName, Integer stopFlag, Integer compensateType) {
        LambdaQueryWrapper<StateProjectCompensateStandard> queryWrapper = new LambdaQueryWrapper<>();
@@ -60,7 +68,6 @@
            vo.setSubTypeStr(CompensationSubTypeEnum.getDescription(e.getSubType()));
            voList.add(vo);
        }
        return voList.stream().collect(Collectors.groupingBy(StateProjectCompensateStandardVO::getStandardName));
    }
@@ -86,7 +93,7 @@
        } catch (IOException e) {
            throw new GlobalException("读取Excel文件失败");
        }
//TODO 导入未校验标准名称唯一
        StateProjectCompensateStandard po;
        List<StateProjectCompensateStandard> poList = new ArrayList<>();
        for (StateProjectCompensateStandardVO e : dataList) {
@@ -106,9 +113,13 @@
        return saveBatch(poList);
    }
    /**
     * 创建补偿标准
     * @param stateProjectCompensateStandard
     * @return
     */
    @Override
    public Boolean createCompensatesStandard(StateProjectCompensateStandard stateProjectCompensateStandard) {
        String standardName = stateProjectCompensateStandard.getStandardName();
        LambdaQueryWrapper<StateProjectCompensateStandard> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(StateProjectCompensateStandard::getStandardName, standardName);
@@ -127,7 +138,7 @@
                    if (isValidCompensationType(typeEnum.getCode(), categoryEnum.getCode())) {
                        StateProjectCompensateStandard compensation = createCompensation(typeEnum, categoryEnum, stateProjectCompensateStandard);
                        // 处理特殊的组合
                        // TODO 处理特殊的组合
                        handleSpecialCases(typeEnum, categoryEnum, compensation, standardList);
                        // 添加最终的 compensation 到标准列表
@@ -139,6 +150,11 @@
        return this.saveOrUpdateBatch(standardList);
    }
    /**
     * 修改补偿标准名字
     * @param stateProjectCompensateStandard
     * @return
     */
    @Override
    public Boolean updateName(StateProjectCompensateStandard stateProjectCompensateStandard) {
@@ -195,14 +211,14 @@
        if (!toUpdateList.isEmpty()) {
            stateProjectCompensationService.updateBatchById(toUpdateList);
        }
        return update(updateWrapper);
    }
    private void handleSpecialCases(CompensateTypeEnum typeEnum, CompensationCategoryEnum categoryEnum,
                                    StateProjectCompensateStandard compensation, List<StateProjectCompensateStandard> standardList) {
        //政策性补贴
        if (typeEnum.equals(CompensateTypeEnum.POLICY_ALLOWANCE)
                //购房补贴
                && categoryEnum.equals(CompensationCategoryEnum.HOUSE_PURCHASE_SUBSIDY)) {
            addCompensationWithSpecifications(compensation, standardList);
        }