From 66ff6f509bbbba04cffc428e7e1c886b534b4f13 Mon Sep 17 00:00:00 2001
From: XiaoRuby <3114200645@qq.com>
Date: 星期四, 17 八月 2023 17:09:41 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 inspect-server/src/main/java/com/yuanchu/mom/service/impl/MeteringPlanServiceImpl.java |  111 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 111 insertions(+), 0 deletions(-)

diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/MeteringPlanServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/MeteringPlanServiceImpl.java
new file mode 100644
index 0000000..c9cbb3a
--- /dev/null
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/MeteringPlanServiceImpl.java
@@ -0,0 +1,111 @@
+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;
+
+/**
+ * <p>
+ *  鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
+ * @since 2023-08-16 11:42:31
+ */
+@Service
+public class MeteringPlanServiceImpl extends ServiceImpl<MeteringPlanMapper, MeteringPlan> 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<Map<String, Object>> selectUnit() {
+        LambdaQueryWrapper<MeteringPlan> wrapper = new LambdaQueryWrapper<>();
+        wrapper.groupBy(MeteringPlan::getPlanUnit);
+        wrapper.select(MeteringPlan::getPlanUnit);
+        return meteringPlanMapper.selectMaps(wrapper);
+    }
+
+    @Override
+    public Map<String, Object> selectMeteringTable(Integer pageNo, Integer pageSize, String code, String meteringUnit) {
+        List<Map<String, Object>> mapList = meteringPlanMapper.selectMeteringTable(pageNo, pageSize, code, meteringUnit);
+        if (!ObjectUtils.isEmpty(mapList)){
+            for (Map<String, Object> map : mapList){
+                int statue = 1;
+                try {
+                    List<Map<String, Object>> result = JackSonUtil.unmarshal(JackSonUtil.marshal(map.get("result")), List.class);
+                        for (Map<String, Object> mapResult : result){
+                            String result1 = mapResult.get("result").toString();
+                        if (result1.equals("n")){
+                            statue = 0;
+                            break;
+                        }
+                    }
+                    map.put("planStatue", statue);
+                    map.remove("result");
+                } catch (Exception e) {
+                    throw new RuntimeException(e);
+                }
+            }
+        }
+        LambdaQueryWrapper<MeteringPlan> wrapper = new LambdaQueryWrapper<>();
+        if (!ObjectUtils.isEmpty(code)){
+            wrapper.eq(MeteringPlan::getPlanNumber, code);
+        }
+        if (!ObjectUtils.isEmpty(meteringUnit)){
+            wrapper.eq(MeteringPlan::getPlanUnit, meteringUnit);
+        }
+        Long aLong = meteringPlanMapper.selectCount(wrapper);
+        Map<String, Object> map = new HashMap<>();
+        map.put("row", mapList);
+        map.put("total", aLong);
+        return map;
+    }
+
+    @Override
+    public Object standingBook(Integer measureId, Boolean accountOrPlan) {
+        if (accountOrPlan){
+            return measureLedgerService.standingBook(measureId);
+        } else {
+            Map<String, Object> meteringPlan = meteringPlanMapper.selectIdPlanIdMessage(measureId);
+            List<Map<String, Object>> mapList = meteringPlanMapper.selectIdPlan(measureId);
+            Map<String, Object> map = new HashMap<>();
+            map.put("top", meteringPlan);
+            map.put("table", mapList);
+            return map;
+        }
+    }
+}

--
Gitblit v1.9.3