package com.yuanchu.mom.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yuanchu.mom.pojo.MeasureLedger; import com.yuanchu.mom.pojo.MeteringPlan; import com.yuanchu.mom.mapper.MeteringPlanMapper; import com.yuanchu.mom.service.MeasureLedgerService; import com.yuanchu.mom.service.MeteringPlanService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.yuanchu.mom.utils.JackSonUtil; import com.yuanchu.mom.utils.MyUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.HashMap; import java.util.List; import java.util.Map; /** *

* 服务实现类 *

* * @author 江苏鵷雏网络科技有限公司 * @since 2023-08-16 11:42:31 */ @Service public class MeteringPlanServiceImpl extends ServiceImpl implements MeteringPlanService { @Resource private MeteringPlanMapper meteringPlanMapper; @Autowired private MeasureLedgerService measureLedgerService; @Override public Integer addMeteringPlan(MeteringPlan meteringPlan) { String timeSixNumberCode = MyUtil.getTimeSixNumberCode("P", "P"); meteringPlan.setPlanNumber(timeSixNumberCode); int insertSuccess = meteringPlanMapper.insert(meteringPlan); if (insertSuccess >= 1){ Boolean aBoolean = measureLedgerService.addMeasureLedger(meteringPlan.getId(), meteringPlan.getMeasureLedgerList()); if (aBoolean) { return 1; } } return 0; } @Override public List> selectUnit() { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.groupBy(MeteringPlan::getPlanUnit); wrapper.select(MeteringPlan::getPlanUnit); return meteringPlanMapper.selectMaps(wrapper); } @Override public Map selectMeteringTable(Integer pageNo, Integer pageSize, String code, String meteringUnit) { List> mapList = meteringPlanMapper.selectMeteringTable(pageNo, pageSize, code, meteringUnit); if (!ObjectUtils.isEmpty(mapList)){ for (Map map : mapList){ String statue = "y"; try { List> result = JackSonUtil.unmarshal(JackSonUtil.marshal(map.get("result")), List.class); for (Map mapResult : result){ String result1 = mapResult.get("result").toString(); if (result1.equals("n")){ statue = "n"; break; } } map.put("planStatue", statue); map.remove("result"); } catch (Exception e) { throw new RuntimeException(e); } } } LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); if (!ObjectUtils.isEmpty(code)){ wrapper.like(MeteringPlan::getPlanNumber, code); } if (!ObjectUtils.isEmpty(meteringUnit)){ wrapper.like(MeteringPlan::getPlanUnit, meteringUnit); } Long aLong = meteringPlanMapper.selectCount(wrapper); Map map = new HashMap<>(); map.put("row", mapList); map.put("total", aLong); return map; } @Override public Object standingBook(Integer pageNo, Integer pageSize,Integer measureId, Boolean accountOrPlan) { if (accountOrPlan){ Map meteringPlan = meteringPlanMapper.selectPlanId(measureId); List> mapList = measureLedgerService.standingBook(measureId); Map map = new HashMap<>(); map.put("top", meteringPlan); map.put("table", mapList); return map; } else { Map meteringPlan = meteringPlanMapper.selectIdPlanIdMessage(measureId); IPage> mapList = meteringPlanMapper.selectIdPlan(new Page(pageNo, pageSize), measureId); Map map = new HashMap<>(); map.put("top", meteringPlan); map.put("total", mapList.getTotal()); map.put("table", mapList.getRecords()); return map; } } }