zhangbin 1 năm trước cách đây
mục cha
commit
a3f391801b

+ 37 - 27
xpgx-admin/src/main/java/com/miaxis/app/controller/gan/GanZhiController.java

@@ -21,6 +21,7 @@ import org.springframework.web.bind.annotation.RestController;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
+import java.util.TreeMap;
 
 /**
  * 【天干地支】Controller
@@ -39,17 +40,17 @@ public class GanZhiController extends BaseController {
     /**
      * 查询天干地支列表
 
-    @GetMapping("/list")
-    @ApiOperation("查询天干地支列表")
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "pageNum", value = "当前页码", dataType = "int", paramType = "query", required = false),
-            @ApiImplicitParam(name = "pageSize", value = "每页数据量", dataType = "int", paramType = "query", required = false),
-    })
-    public ResponsePageInfo<GanZhi> list(@ModelAttribute GanZhi ganZhi) {
-        startPage();
-        List<GanZhi> list = ganZhiService.selectGanZhiList(ganZhi);
-        return toResponsePageInfo(list);
-    }
+     @GetMapping("/list")
+     @ApiOperation("查询天干地支列表")
+     @ApiImplicitParams({
+     @ApiImplicitParam(name = "pageNum", value = "当前页码", dataType = "int", paramType = "query", required = false),
+     @ApiImplicitParam(name = "pageSize", value = "每页数据量", dataType = "int", paramType = "query", required = false),
+     })
+     public ResponsePageInfo<GanZhi> list(@ModelAttribute GanZhi ganZhi) {
+     startPage();
+     List<GanZhi> list = ganZhiService.selectGanZhiList(ganZhi);
+     return toResponsePageInfo(list);
+     }
      */
 
     /**
@@ -59,6 +60,9 @@ public class GanZhiController extends BaseController {
     @ApiOperation("干支查询8字")
     public Response<GanZhiVo> get8ziByDate(@ModelAttribute GanZhiDto ganZhiDto) {
 
+        Map<String, String> reportMap = new TreeMap<String, String>();
+
+
         Date birthDay = ganZhiDto.getBirthDay();
         Lunar lunar = Lunar.fromDate(birthDay);
         GanZhiDaYunVo ganZhiDaYunVo = new GanZhiDaYunVo();
@@ -86,31 +90,35 @@ public class GanZhiController extends BaseController {
         ganZhiDto.setTimeGan(lunar.getTimeGan());
         ganZhiDto.setTimeZhi(lunar.getTimeZhi());
 
-        ganZhiDaYunVo = ganZhiService.getDaYun(ganZhiDto,ganZhiDaYunVo); //月柱节气矫正 取出90年大运
-        List<GanZhiRowVo> ganZhiRowVoList = ganZhiService.selectGanZhiRowVoList(ganZhiDto);
-        Map<String, Object> riYuanQrMap = ganZhiService.getRiYuanQr(ganZhiRowVoList);  //查出日元强弱
+        ganZhiDaYunVo = ganZhiService.getDaYun(ganZhiDto, ganZhiDaYunVo); //月柱节气矫正 取出90年大运
+        List<GanZhiRowVo> ganZhiRowVoList = ganZhiService.selectGanZhiRowVoList(ganZhiDto); //拼装
+        Map<String, Integer> fiveCountMap = ganZhiService.getGanZhiRowVoCount(ganZhiRowVoList, reportMap); //五行数量
+        Map<String, Object> riYuanQrMap = ganZhiService.getRiYuanQr(ganZhiRowVoList, fiveCountMap);  //查出日元强弱
         String xifangWei = ganZhiService.getXiFangWei(ganZhiDaYunVo.getLunar()); //喜用的方位
-        Map<String, String> chenGuMap = ganZhiService.getChenGu(ganZhiDaYunVo.getLunar(),ganZhiDto.getSex());
+        Map<String, String> chenGuMap = ganZhiService.getChenGu(ganZhiDaYunVo.getLunar(), ganZhiDto.getSex());
 
 
-        String guiren = ganZhiService.getGuiren(ganZhiRowVoList);
-
+        String guiren = ganZhiService.getGuiren(ganZhiRowVoList);  //贵人
 
         int maxTianGan = ganZhiService.getMaxTianGan(ganZhiDto);  //最出能量最强的天干
-        Map<String,String> geJuMap = ganZhiService.getGeJu(ganZhiRowVoList,maxTianGan,riYuanQrMap.get("qr").toString()); //查出八字常见格局
+        Map<String, String> geJuMap = ganZhiService.getGeJu(ganZhiRowVoList, maxTianGan, riYuanQrMap.get("qr").toString()); //查出八字常见格局
         String geju = geJuMap.get("geju");
 
-        String industry = ganZhiService.getIndustry(riYuanQrMap,geju); //行业
+        String industry = ganZhiService.getIndustry(riYuanQrMap, geju); //行业
+
+        Map<Integer, String> guoGuanMap = ganZhiService.getGuo3Guan(ganZhiRowVoList, riYuanQrMap.get("qr").toString()); //过三关
 
-        Map<Integer,String> guoGuanMap = ganZhiService.getGuo3Guan(ganZhiRowVoList,riYuanQrMap.get("qr").toString()); //过三关
 
-        Map<String, Object> fiveCountMap = ganZhiService.getGanZhiRowVoCount(ganZhiRowVoList);
-        Map<String, Object> shiShenCountMap = ganZhiService.getShiShenCount(ganZhiRowVoList);
+        Map<String, Integer> shiShenCountMap = ganZhiService.getShiShenCount(ganZhiRowVoList, reportMap);
         List<GanZhiNaYinVo> ganZhiNaYinVoList = ganZhiService.selectGanZhiNaYinList(ganZhiDto);
         List<GanZhiKongWangVo> ganZhiKongWangVoList = ganZhiService.selectGanZhiKongWangList(ganZhiDto);
-        Map<String, Object> numberYunMap = ganZhiService.getNumberYun(riYuanQrMap);
-        Map<String, Object> zaoShiCount = ganZhiService.getZaoShiCount(ganZhiRowVoList);
-        List<DiseasePart> diseasePartList = ganZhiService.getJiBing(ganZhiRowVoList);
+        Map<String, Object> numberYunMap = ganZhiService.getNumberYun(riYuanQrMap);  //喜用数字
+        Map<String, Integer> zaoShiCount = ganZhiService.getZaoShiCount(ganZhiRowVoList, fiveCountMap, reportMap);
+        List<DiseasePart> diseasePartList = ganZhiService.getJiBing(ganZhiRowVoList, fiveCountMap);
+
+        String caiYun = ganZhiService.getCaiYun(ganZhiRowVoList, riYuanQrMap, shiShenCountMap);
+
+        String biQi = ganZhiService.getBiQi(ganZhiRowVoList); //脾气
 
         GanZhiVo ganZhiVo = new GanZhiVo();
         ganZhiVo.setNongDay(lunar.getYear() + "年(生肖" + lunar.getYearShengXiao() + ")" + lunar.getMonth() + "月" + lunar.getDay() + "日" + lunar.getTime() + "时");
@@ -134,6 +142,10 @@ public class GanZhiController extends BaseController {
         ganZhiVo.setIndustry(industry);
         ganZhiVo.setGuiren(guiren);
         ganZhiVo.setChenGuMap(chenGuMap);
+        ganZhiVo.setBiQi(biQi);
+
+        reportMap.put("财运",caiYun);
+        ganZhiVo.setReportMap(reportMap);
 
 
         // 输出结果
@@ -155,6 +167,4 @@ public class GanZhiController extends BaseController {
     }
 
 
-
-
 }

+ 81 - 35
xpgx-common/src/main/java/com/miaxis/common/config/ShiShenConfig.java

@@ -15,97 +15,107 @@ import java.util.TreeMap;
 public class ShiShenConfig {
 
     //天干地支颜色
-    private Map<String, String> ganZhiColor = new TreeMap<String, String>();
+    private final Map<String, String> ganZhiColor = new TreeMap<String, String>();
     //天干地支五行
-    private Map<String, String> ganZhiFive = new TreeMap<String, String>();
+    private final Map<String, String> ganZhiFive = new TreeMap<String, String>();
     //正印
-    private Map<String, String> zhengYin = new TreeMap<String, String>();
+    private final Map<String, String> zhengYin = new TreeMap<String, String>();
     //食神
-    private Map<String, String> shiShen = new TreeMap<String, String>();
+    private final Map<String, String> shiShen = new TreeMap<String, String>();
     //正官
-    private Map<String, String> zhengGuan = new TreeMap<String, String>();
+    private final Map<String, String> zhengGuan = new TreeMap<String, String>();
     //正财
-    private Map<String, String> zhengCai = new TreeMap<String, String>();
+    private final Map<String, String> zhengCai = new TreeMap<String, String>();
     //七杀
-    private Map<String, String> qiSha = new TreeMap<String, String>();
+    private final Map<String, String> qiSha = new TreeMap<String, String>();
     //偏印
-    private Map<String, String> pianYin = new TreeMap<String, String>();
+    private final Map<String, String> pianYin = new TreeMap<String, String>();
     //伤官
-    private Map<String, String> shangGuan = new TreeMap<String, String>();
+    private final Map<String, String> shangGuan = new TreeMap<String, String>();
     //劫财
-    private Map<String, String> jieCai = new TreeMap<String, String>();
+    private final Map<String, String> jieCai = new TreeMap<String, String>();
     //比肩
-    private Map<String, String> biJian = new TreeMap<String, String>();
+    private final Map<String, String> biJian = new TreeMap<String, String>();
     //偏财
-    private Map<String, String> pianCai = new TreeMap<String, String>();
+    private final Map<String, String> pianCai = new TreeMap<String, String>();
 
 
     //藏干 本气
-    private Map<String, String> benQi = new TreeMap<String, String>();
+    private final Map<String, String> benQi = new TreeMap<String, String>();
     //藏干 中气
-    private Map<String, String> zhongQi = new TreeMap<String, String>();
+    private final Map<String, String> zhongQi = new TreeMap<String, String>();
     //藏干 余气
-    private Map<String, String> yuQi = new TreeMap<String, String>();
+    private final Map<String, String> yuQi = new TreeMap<String, String>();
 
     //空亡
-    private Map<String, String> kongWang = new TreeMap<String, String>();
+    private final Map<String, String> kongWang = new TreeMap<String, String>();
 
     //纳音
-    private Map<String, String> naYin = new TreeMap<String, String>();
+    private final Map<String, String> naYin = new TreeMap<String, String>();
 
     //喜用
-    private Map<String, List> xiYong = new TreeMap<String, List>();
+    private final Map<String, List> xiYong = new TreeMap<String, List>();
 
     //喜用的数字
-    private Map<String, List> xiNumber = new TreeMap<String, List>();
+    private final Map<String, List> xiNumber = new TreeMap<String, List>();
 
     //数字文案
-    private Map<String, String> numberWenAn = new TreeMap<String, String>();
+    private final Map<String, String> numberWenAn = new TreeMap<String, String>();
 
     //五行与身体部位
-    private Map<String, List> fiveBuWei = new TreeMap<String, List>();
+    private final Map<String, List> fiveBuWei = new TreeMap<String, List>();
 
     //燥湿平衡
-    private Map<String, String> zaoShi = new TreeMap<String, String>();
+    private final Map<String, String> zaoShi = new TreeMap<String, String>();
 
     //大运六十甲子
-    private List<String> liushijiazi = new ArrayList<String>();
+    private final List<String> liushijiazi = new ArrayList<String>();
 
     //天干阴阳关系
-    private Map<String, String> tianGanYY = new TreeMap<String, String>();
+    private final Map<String, String> tianGanYY = new TreeMap<String, String>();
 
     //八字身体位置坐标
-    private Map<Integer, String> body = new TreeMap<Integer, String>();
+    private final Map<Integer, String> body = new TreeMap<Integer, String>();
 
     //八字方位位置坐标
-    private Map<Integer, String> position = new TreeMap<Integer, String>();
+    private final Map<Integer, String> position = new TreeMap<Integer, String>();
 
     //十神缺失
-    private Map<String, String> zeroShiShen = new TreeMap<String, String>();
+    private final Map<String, String> zeroShiShen = new TreeMap<String, String>();
 
     //五行缺失
-    private Map<String, String> zeroFive = new TreeMap<String, String>();
+    private final Map<String, String> zeroFive = new TreeMap<String, String>();
 
     //五行与行业
-    private Map<String, String> fiveIndustry = new TreeMap<String, String>();
+    private final Map<String, String> fiveIndustry = new TreeMap<String, String>();
 
     //十神与行业
-    private Map<String, String> shiShenIndustry = new TreeMap<String, String>();
+    private final Map<String, String> shiShenIndustry = new TreeMap<String, String>();
 
     //天乙贵人
-    private Map<String, String> tianyiGuiren = new TreeMap<String, String>();
+    private final Map<String, String> tianyiGuiren = new TreeMap<String, String>();
 
     //天乙贵人 生肖
-    private Map<String, String> tianyiGuirenShengXiao = new TreeMap<String, String>();
+    private final Map<String, String> tianyiGuirenShengXiao = new TreeMap<String, String>();
 
     //袁天罡骨算命
-    private Map<String, Integer> guZhong = new TreeMap<String, Integer>();
+    private final Map<String, Integer> guZhong = new TreeMap<String, Integer>();
 
     //袁天罡骨算命评语(男)
-    private Map<String, String> guZhongPingYuMan = new TreeMap<String, String>();
+    private final Map<String, String> guZhongPingYuMan = new TreeMap<String, String>();
 
     //袁天罡骨算命评语(女)
-    private Map<String, String> guZhongPingYuWoman = new TreeMap<String, String>();
+    private final Map<String, String> guZhongPingYuWoman = new TreeMap<String, String>();
+
+    //脾气
+    private final Map<String, String> biQi = new TreeMap<String, String>();
+
+    //五鬼运财
+    private final Map<String, String> wuGui = new TreeMap<String, String>();
+
+    //五鬼运财 生肖
+    private final Map<String, String> wuGuiShengXiao = new TreeMap<String, String>();
+
 
     @PostConstruct
     public void init() {
@@ -1105,6 +1115,42 @@ public class ShiShenConfig {
         guZhongPingYuWoman.put("70", "本命推断喜气新,恰遇郎君金遂心,坤身来交正当运,富贵衣禄乐平生。");
         guZhongPingYuWoman.put("71", "此命推来宏运交,不须再愁苦劳难,一生身有衣禄福,安享荣华胜班超。");
 
+        biQi.put("七杀", "暴脾气大多数是坐下七杀地支,由于七杀呈现出一种压迫的态势,就好像长工和地主老财一样的紧张关系,说不得,一说就炸。最不喜欢被人批评,内心维系着自己可怜的小自尊,把别人对自己的看法看的很重要。所以坐下七杀的爱面子,不主动讨人厌,把自己的谦卑退缩当做了示爱的方式,时时都站在底限上说话,一旦触及底线,立马爆炸。所以处理问题比较粗暴,简单,不委婉,性子刚烈,脾气暴。严重的有暴力倾向,身太旺好打个仗,身太弱的话,又懦弱不成器。");
+        biQi.put("食神", "脾气急一般都体现在日坐食伤这种地支上,脾气上来的快,气撒的也快。由于食伤富有主观意识,爱憎分明,看不顺眼的就要说。所以,日坐食伤的嘴快,容易得罪人。大多数坐下食伤的都比较真诚,性格外向,热心肠。身弱的容易杂嘴子,唠唠叨叨的。");
+        biQi.put("伤官", "脾气急一般都体现在日坐食伤这种地支上,脾气上来的快,气撒的也快。由于食伤富有主观意识,爱憎分明,看不顺眼的就要说。所以,日坐食伤的嘴快,容易得罪人。大多数坐下食伤的都比较真诚,性格外向,热心肠。身弱的容易杂嘴子,唠唠叨叨的。");
+        biQi.put("正官", "脾气最好的大概是坐下正官。坐下正官的,克勤克俭,兢兢业业做事情。一般都很自律,不会因为个人的私欲去影响到别人。");
+        biQi.put("正印", "脾气最好的大概是坐下正印。而坐下正印的,通常缺乏积极性,危机意识不强,易于满足,相对乐观,所以也不会产生一种让人警惕和排挤的感觉,这两种大多都亲和力挺强,性格温和善良。也有好人主义思想,没有阶级对立意识,有爱心,因此脾气都相对好。");
+        biQi.put("偏印", "脾气最好的大概是坐下正印。而坐下正印的,通常缺乏积极性,危机意识不强,易于满足,相对乐观,所以也不会产生一种让人警惕和排挤的感觉,这两种大多都亲和力挺强,性格温和善良。也有好人主义思想,没有阶级对立意识,有爱心,因此脾气都相对好。");
+        biQi.put("比肩", "犟脾气一般都是坐下比劫日主的特点。关键一个词是‘不服’。由于坐下比劫旺地,自己意气用事的多,直来直去,考虑问题不会拐弯,听不出正反话。容易信以为真,轻信朋友,做事情鲁莽缺乏认真思考和缜密的观察。通常是撞到南墙之后才懂得原来是这么回事。更甚至,有一部分是装了南北东西四面墙之后,也不知道总结教训经验,下次照样。这种日主最喜身弱,尤其是喜财杀当头,这样的话就会认真面对成长,面对生活。要是身旺的话,简直就是个惹事的祖宗,吆五喝六东来西去的,没有一刻消停。");
+        biQi.put("劫财", "犟脾气一般都是坐下比劫日主的特点。关键一个词是‘不服’。由于坐下比劫旺地,自己意气用事的多,直来直去,考虑问题不会拐弯,听不出正反话。容易信以为真,轻信朋友,做事情鲁莽缺乏认真思考和缜密的观察。通常是撞到南墙之后才懂得原来是这么回事。更甚至,有一部分是装了南北东西四面墙之后,也不知道总结教训经验,下次照样。这种日主最喜身弱,尤其是喜财杀当头,这样的话就会认真面对成长,面对生活。要是身旺的话,简直就是个惹事的祖宗,吆五喝六东来西去的,没有一刻消停。");
+        biQi.put("正财", "日元正坐正财/偏财、脾气倔,是因为太主观,过于自信引起的。从不为别人改变自己,严重的会过度自信,自我放大。或者是从不承认错误,自以为是。由于坐下是财星,而日主为君,一副目空一切的样子,天王老子第一,我第二,所以很难接受意见和建议。如果是财旺的,又自命清高,视金钱如粪土。如果身旺的,又贪婪多欲,好色逞强。");
+        biQi.put("偏财", "日元正坐正财/偏财、脾气倔,是因为太主观,过于自信引起的。从不为别人改变自己,严重的会过度自信,自我放大。或者是从不承认错误,自以为是。由于坐下是财星,而日主为君,一副目空一切的样子,天王老子第一,我第二,所以很难接受意见和建议。如果是财旺的,又自命清高,视金钱如粪土。如果身旺的,又贪婪多欲,好色逞强。");
+
+        wuGui.put("子", "辰");
+        wuGui.put("丑", "巳");
+        wuGui.put("寅", "午");
+        wuGui.put("卯", "未");
+        wuGui.put("辰", "申");
+        wuGui.put("巳", "酉");
+        wuGui.put("午", "戌");
+        wuGui.put("未", "亥");
+        wuGui.put("申", "子");
+        wuGui.put("酉", "丑");
+        wuGui.put("戌", "寅");
+        wuGui.put("亥", "卯");
+
+        wuGuiShengXiao.put("子", "鼠");
+        wuGuiShengXiao.put("丑", "牛");
+        wuGuiShengXiao.put("寅", "虎");
+        wuGuiShengXiao.put("卯", "兔");
+        wuGuiShengXiao.put("辰", "龙");
+        wuGuiShengXiao.put("巳", "蛇");
+        wuGuiShengXiao.put("午", "马");
+        wuGuiShengXiao.put("未", "羊");
+        wuGuiShengXiao.put("申", "猴");
+        wuGuiShengXiao.put("酉", "鸡");
+        wuGuiShengXiao.put("戌", "狗");
+        wuGuiShengXiao.put("亥", "猪");
 
     }
 

+ 24 - 0
xpgx-service/src/main/java/com/miaxis/gan/service/IGanReportService.java

@@ -0,0 +1,24 @@
+package com.miaxis.gan.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.miaxis.disease.domain.DiseasePart;
+import com.miaxis.gan.domain.GanZhi;
+import com.miaxis.gan.dto.GanZhiDto;
+import com.miaxis.gan.dto.LiuNianDto;
+import com.miaxis.gan.vo.GanZhiDaYunVo;
+import com.miaxis.gan.vo.GanZhiKongWangVo;
+import com.miaxis.gan.vo.GanZhiNaYinVo;
+import com.miaxis.gan.vo.GanZhiRowVo;
+import com.nlf.calendar.Lunar;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 天干地支Service接口
+ *
+ * @author miaxis
+ * @date 2023-11-16
+ */
+public interface IGanReportService extends IService<GanZhi>{
+}

+ 9 - 6
xpgx-service/src/main/java/com/miaxis/gan/service/IGanZhiService.java

@@ -41,14 +41,14 @@ public interface IGanZhiService extends IService<GanZhi>{
      * @param ganZhiRowVoList
      * @return
      */
-    Map<String,Object> getRiYuanQr(List<GanZhiRowVo> ganZhiRowVoList);
+    Map<String,Object> getRiYuanQr(List<GanZhiRowVo> ganZhiRowVoList,Map<String,Integer> fiveCountMap);
 
     /**
      * 疾病
      * @param ganZhiRowVoList
      * @return
      */
-    List<DiseasePart> getJiBing(List<GanZhiRowVo> ganZhiRowVoList);
+    List<DiseasePart> getJiBing(List<GanZhiRowVo> ganZhiRowVoList, Map<String,Integer> fiveCountMap);
 
     /**
      * 返回喜用数字
@@ -63,22 +63,21 @@ public interface IGanZhiService extends IService<GanZhi>{
      * @param ganZhiRowVoList
      * @return
      */
-    Map<String,Object> getGanZhiRowVoCount(List<GanZhiRowVo> ganZhiRowVoList);
+    Map<String,Integer> getGanZhiRowVoCount(List<GanZhiRowVo> ganZhiRowVoList,Map<String,String> reportMap);
 
     /**
      * 获取十神数量
      * @param ganZhiRowVoList
      * @return
      */
-    Map<String, Object> getShiShenCount(List<GanZhiRowVo> ganZhiRowVoList);
+    Map<String, Integer> getShiShenCount(List<GanZhiRowVo> ganZhiRowVoList,Map<String,String> reportMap);
 
     /**
      * 潮湿平衡
      * @param ganZhiRowVoList
      * @return
      */
-    Map<String, Object> getZaoShiCount(List<GanZhiRowVo> ganZhiRowVoList);
-
+    Map<String, Integer> getZaoShiCount(List<GanZhiRowVo> ganZhiRowVoList,Map<String, Integer> fiveCount,Map<String,String> reportMap);
 
 
     /**
@@ -112,4 +111,8 @@ public interface IGanZhiService extends IService<GanZhi>{
     String getGuiren(List<GanZhiRowVo> ganZhiRowVoList);
 
     Map<String, String> getChenGu(Lunar lunar,Integer sex);
+
+    String getBiQi(List<GanZhiRowVo> ganZhiRowVoList);
+
+    String getCaiYun(List<GanZhiRowVo> ganZhiRowVoList, Map<String, Object> riYuanQrMap, Map<String, Integer> shiShenCountMap);
 }

+ 15 - 0
xpgx-service/src/main/java/com/miaxis/gan/service/impl/GanReportServiceImpl.java

@@ -0,0 +1,15 @@
+package com.miaxis.gan.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.miaxis.gan.domain.GanZhi;
+import com.miaxis.gan.mapper.GanZhiMapper;
+import com.miaxis.gan.service.IGanReportService;
+import org.springframework.stereotype.Service;
+
+@Service
+public class GanReportServiceImpl extends ServiceImpl<GanZhiMapper, GanZhi> implements IGanReportService {
+
+
+
+
+}

+ 126 - 73
xpgx-service/src/main/java/com/miaxis/gan/service/impl/GanZhiServiceImpl.java

@@ -365,7 +365,7 @@ public class GanZhiServiceImpl extends ServiceImpl<GanZhiMapper, GanZhi> impleme
     }
 
     @Override
-    public Map<String, Object> getRiYuanQr(List<GanZhiRowVo> list) {
+    public Map<String, Object> getRiYuanQr(List<GanZhiRowVo> list, Map<String, Integer> fiveCountMap) {
         /*-------------------日元身强身弱---------------------*/
         int yearGanQR = ShiShenConfig.generateRelationship(list.get(4).getFive(), list.get(0).getFive());
         int yearZhiQR = ShiShenConfig.generateRelationship(list.get(4).getFive(), list.get(1).getFive());
@@ -411,9 +411,8 @@ public class GanZhiServiceImpl extends ServiceImpl<GanZhiMapper, GanZhi> impleme
         String xi1 = xiYong.get(0);
         String xi2 = xiYong.get(1);
 
-        Map<String, Object> fiveCountMap = this.getGanZhiRowVoCount(list);
-        int xi1Count = (Integer)fiveCountMap.get(xi1);
-        int xi2Count = (Integer)fiveCountMap.get(xi2);
+        int xi1Count = fiveCountMap.get(xi1);
+        int xi2Count = fiveCountMap.get(xi2);
 
         if (xi1Count > 3) {
             xiYong.remove(xi1);
@@ -434,7 +433,7 @@ public class GanZhiServiceImpl extends ServiceImpl<GanZhiMapper, GanZhi> impleme
 
 
     @Override
-    public List<DiseasePart> getJiBing(List<GanZhiRowVo> ganZhiRowVoList) {
+    public List<DiseasePart> getJiBing(List<GanZhiRowVo> ganZhiRowVoList, Map<String, Integer> fiveCountMap) {
         String sex = ganZhiRowVoList.get(4).getShiShen1();
 
         String gender = null;
@@ -604,12 +603,11 @@ public class GanZhiServiceImpl extends ServiceImpl<GanZhiMapper, GanZhi> impleme
 
         //五行得出疾病
         List<DiseasePart> fivePartList = new ArrayList<DiseasePart>();
-        Map<String, Object> fiveCount = this.getGanZhiRowVoCount(ganZhiRowVoList);
-        for (String key : fiveCount.keySet()) {
+        for (String key : fiveCountMap.keySet()) {
             int count = 0;
-            if (fiveCount.get(key) instanceof Number) {
+            if (fiveCountMap.get(key) instanceof Number) {
                 // 如果是数值类型,可以进行相应的操作
-                count = ((Number) fiveCount.get(key)).intValue(); // 通过 intValue() 转换成 int
+                count = ((Number) fiveCountMap.get(key)).intValue(); // 通过 intValue() 转换成 int
             } else {
                 continue;
             }
@@ -920,9 +918,9 @@ public class GanZhiServiceImpl extends ServiceImpl<GanZhiMapper, GanZhi> impleme
      * @return
      */
     @Override
-    public Map<String, Object> getGanZhiRowVoCount(List<GanZhiRowVo> list) {
+    public Map<String, Integer> getGanZhiRowVoCount(List<GanZhiRowVo> list, Map<String, String> reportMap) {
 
-        Map<String, Object> fiveCount = new TreeMap<String, Object>();
+        Map<String, Integer> fiveCount = new TreeMap<String, Integer>();
         fiveCount.put("木", 0);
         fiveCount.put("火", 0);
         fiveCount.put("土", 0);
@@ -937,17 +935,15 @@ public class GanZhiServiceImpl extends ServiceImpl<GanZhiMapper, GanZhi> impleme
 
         StringBuffer zeroCotent = new StringBuffer();
         fiveCount.forEach((key, value) -> {
-            if (value instanceof Integer && (Integer) value == 0) {
-                zeroCotent.append(shiShenConfig.getZeroFive().get(key));
-                zeroCotent.append(";");
-            }
+            zeroCotent.append(shiShenConfig.getZeroFive().get(key));
+            zeroCotent.append(";");
         });
 
         if (zeroCotent.toString().length() > 0) {
             zeroCotent.deleteCharAt(zeroCotent.length() - 1);
-            fiveCount.put("缺失五行评语", zeroCotent.toString());
+            reportMap.put("缺失五行评语", zeroCotent.toString());
         } else {
-            fiveCount.put("缺失五行评语", "命格中五行没有缺失,五行比较全面。");
+            reportMap.put("缺失五行评语", "命格中五行没有缺失,五行比较全面。");
         }
 
         return fiveCount;
@@ -960,8 +956,8 @@ public class GanZhiServiceImpl extends ServiceImpl<GanZhiMapper, GanZhi> impleme
      * @return
      */
     @Override
-    public Map<String, Object> getShiShenCount(List<GanZhiRowVo> list) {
-        Map<String, Object> shiShenCount = new TreeMap<String, Object>();
+    public Map<String, Integer> getShiShenCount(List<GanZhiRowVo> list, Map<String, String> reportMap) {
+        Map<String, Integer> shiShenCount = new TreeMap<String, Integer>();
         shiShenCount.put("正印", 0);
         shiShenCount.put("食神", 0);
         shiShenCount.put("正官", 0);
@@ -979,147 +975,149 @@ public class GanZhiServiceImpl extends ServiceImpl<GanZhiMapper, GanZhi> impleme
             String shiShen3 = list.get(i).getShiShen3();
             //正印
             if (shiShen1 != null && shiShen1.contains("正印")) {
-                Integer count = (Integer) shiShenCount.get("正印") + 1;
+                Integer count = shiShenCount.get("正印") + 1;
                 shiShenCount.put("正印", count);
             }
             if (shiShen2 != null && shiShen2.contains("正印")) {
-                Integer count = (Integer) shiShenCount.get("正印") + 1;
+                Integer count = shiShenCount.get("正印") + 1;
                 shiShenCount.put("正印", count);
             }
             if (shiShen3 != null && shiShen3.contains("正印")) {
-                Integer count = (Integer) shiShenCount.get("正印") + 1;
+                Integer count = shiShenCount.get("正印") + 1;
                 shiShenCount.put("正印", count);
             }
             //食神
             if (shiShen1 != null && shiShen1.contains("食神")) {
-                Integer count = (Integer) shiShenCount.get("食神") + 1;
+                Integer count = shiShenCount.get("食神") + 1;
                 shiShenCount.put("食神", count);
             }
             if (shiShen2 != null && shiShen2.contains("食神")) {
-                Integer count = (Integer) shiShenCount.get("食神") + 1;
+                Integer count = shiShenCount.get("食神") + 1;
                 shiShenCount.put("食神", count);
             }
             if (shiShen3 != null && shiShen3.contains("食神")) {
-                Integer count = (Integer) shiShenCount.get("食神") + 1;
+                Integer count = shiShenCount.get("食神") + 1;
                 shiShenCount.put("食神", count);
             }
 
             //正官
             if (shiShen1 != null && shiShen1.contains("正官")) {
-                Integer count = (Integer) shiShenCount.get("正官") + 1;
+                Integer count = shiShenCount.get("正官") + 1;
                 shiShenCount.put("正官", count);
             }
             if (shiShen2 != null && shiShen2.contains("正官")) {
-                Integer count = (Integer) shiShenCount.get("正官") + 1;
+                Integer count = shiShenCount.get("正官") + 1;
                 shiShenCount.put("正官", count);
             }
             if (shiShen3 != null && shiShen3.contains("正官")) {
-                Integer count = (Integer) shiShenCount.get("正官") + 1;
+                Integer count = shiShenCount.get("正官") + 1;
                 shiShenCount.put("正官", count);
             }
 
             //正财
             if (shiShen1 != null && shiShen1.contains("正财")) {
-                Integer count = (Integer) shiShenCount.get("正财") + 1;
+                Integer count = shiShenCount.get("正财") + 1;
                 shiShenCount.put("正财", count);
             }
             if (shiShen2 != null && shiShen2.contains("正财")) {
-                Integer count = (Integer) shiShenCount.get("正财") + 1;
+                Integer count = shiShenCount.get("正财") + 1;
                 shiShenCount.put("正财", count);
             }
             if (shiShen3 != null && shiShen3.contains("正财")) {
-                Integer count = (Integer) shiShenCount.get("正财") + 1;
+                Integer count = shiShenCount.get("正财") + 1;
                 shiShenCount.put("正财", count);
             }
 
             //七杀
             if (shiShen1 != null && shiShen1.contains("七杀")) {
-                Integer count = (Integer) shiShenCount.get("七杀") + 1;
+                Integer count = shiShenCount.get("七杀") + 1;
                 shiShenCount.put("七杀", count);
             }
             if (shiShen2 != null && shiShen2.contains("七杀")) {
-                Integer count = (Integer) shiShenCount.get("七杀") + 1;
+                Integer count = shiShenCount.get("七杀") + 1;
                 shiShenCount.put("七杀", count);
             }
             if (shiShen3 != null && shiShen3.contains("七杀")) {
-                Integer count = (Integer) shiShenCount.get("七杀") + 1;
+                Integer count = shiShenCount.get("七杀") + 1;
                 shiShenCount.put("七杀", count);
             }
 
             //偏印
             if (shiShen1 != null && shiShen1.contains("偏印")) {
-                Integer count = (Integer) shiShenCount.get("偏印") + 1;
+                Integer count = shiShenCount.get("偏印") + 1;
                 shiShenCount.put("偏印", count);
             }
             if (shiShen2 != null && shiShen2.contains("偏印")) {
-                Integer count = (Integer) shiShenCount.get("偏印") + 1;
+                Integer count = shiShenCount.get("偏印") + 1;
                 shiShenCount.put("偏印", count);
             }
             if (shiShen3 != null && shiShen3.contains("偏印")) {
-                Integer count = (Integer) shiShenCount.get("偏印") + 1;
+                Integer count = shiShenCount.get("偏印") + 1;
                 shiShenCount.put("偏印", count);
             }
 
             //偏财
             if (shiShen1 != null && shiShen1.contains("偏财")) {
-                Integer count = (Integer) shiShenCount.get("偏财") + 1;
+                Integer count = shiShenCount.get("偏财") + 1;
                 shiShenCount.put("偏财", count);
             }
             if (shiShen2 != null && shiShen2.contains("偏财")) {
-                Integer count = (Integer) shiShenCount.get("偏财") + 1;
+                Integer count = shiShenCount.get("偏财") + 1;
                 shiShenCount.put("偏财", count);
             }
             if (shiShen3 != null && shiShen3.contains("偏财")) {
-                Integer count = (Integer) shiShenCount.get("偏财") + 1;
+                Integer count = shiShenCount.get("偏财") + 1;
                 shiShenCount.put("偏财", count);
             }
 
             //伤官
             if (shiShen1 != null && shiShen1.contains("伤官")) {
-                Integer count = (Integer) shiShenCount.get("伤官") + 1;
+                Integer count = shiShenCount.get("伤官") + 1;
                 shiShenCount.put("伤官", count);
             }
             if (shiShen2 != null && shiShen2.contains("伤官")) {
-                Integer count = (Integer) shiShenCount.get("伤官") + 1;
+                Integer count = shiShenCount.get("伤官") + 1;
                 shiShenCount.put("伤官", count);
             }
             if (shiShen3 != null && shiShen3.contains("伤官")) {
-                Integer count = (Integer) shiShenCount.get("伤官") + 1;
+                Integer count = shiShenCount.get("伤官") + 1;
                 shiShenCount.put("伤官", count);
             }
 
             //劫财
             if (shiShen1 != null && shiShen1.contains("劫财")) {
-                Integer count = (Integer) shiShenCount.get("劫财") + 1;
+                Integer count = shiShenCount.get("劫财") + 1;
                 shiShenCount.put("劫财", count);
             }
             if (shiShen2 != null && shiShen2.contains("劫财")) {
-                Integer count = (Integer) shiShenCount.get("劫财") + 1;
+                Integer count = shiShenCount.get("劫财") + 1;
                 shiShenCount.put("劫财", count);
             }
             if (shiShen3 != null && shiShen3.contains("劫财")) {
-                Integer count = (Integer) shiShenCount.get("劫财") + 1;
+                Integer count = shiShenCount.get("劫财") + 1;
                 shiShenCount.put("劫财", count);
             }
 
             //比肩
             if (shiShen1 != null && shiShen1.contains("比肩")) {
-                Integer count = (Integer) shiShenCount.get("比肩") + 1;
+                Integer count = shiShenCount.get("比肩") + 1;
                 shiShenCount.put("比肩", count);
             }
             if (shiShen2 != null && shiShen2.contains("比肩")) {
-                Integer count = (Integer) shiShenCount.get("比肩") + 1;
+                Integer count = shiShenCount.get("比肩") + 1;
                 shiShenCount.put("比肩", count);
             }
             if (shiShen3 != null && shiShen3.contains("比肩")) {
-                Integer count = (Integer) shiShenCount.get("比肩") + 1;
+                Integer count = shiShenCount.get("比肩") + 1;
                 shiShenCount.put("比肩", count);
             }
 
         }
         StringBuffer zeroCotent = new StringBuffer();
+
         shiShenCount.forEach((key, value) -> {
-            if (value instanceof Integer && (Integer) value == 0) {
+            System.out.println(key + " " + value);
+            if (value == 0) {
                 zeroCotent.append(shiShenConfig.getZeroShiShen().get(key));
                 zeroCotent.append(";");
             }
@@ -1127,9 +1125,9 @@ public class GanZhiServiceImpl extends ServiceImpl<GanZhiMapper, GanZhi> impleme
 
         if (zeroCotent.toString().length() > 0) {
             zeroCotent.deleteCharAt(zeroCotent.length() - 1);
-            shiShenCount.put("缺失十神评语", zeroCotent.toString());
+            reportMap.put("缺失十神评语", zeroCotent.toString() + "。");
         } else {
-            shiShenCount.put("缺失十神评语", "命格中十神没有缺失,性格比较全面。");
+            reportMap.put("缺失十神评语", "命格中十神没有缺失,性格比较全面。");
         }
         return shiShenCount;
     }
@@ -1142,11 +1140,13 @@ public class GanZhiServiceImpl extends ServiceImpl<GanZhiMapper, GanZhi> impleme
      * @return
      */
     @Override
-    public Map<String, Object> getZaoShiCount(List<GanZhiRowVo> list) {
+    public Map<String, Integer> getZaoShiCount(List<GanZhiRowVo> list, Map<String, Integer> fiveCount, Map<String, String> reportMap) {
 
-        Map<String, Object> fiveCount = this.getGanZhiRowVoCount(list);
-        int huoCount = (Integer)fiveCount.get("火");
-        int shuiCount = (Integer)fiveCount.get("水");
+        Map<String, Integer> fiveCountMap = new TreeMap<String, Integer>();
+        fiveCountMap.putAll(fiveCount);
+
+        int huoCount = fiveCountMap.get("火");
+        int shuiCount = fiveCountMap.get("水");
 
         for (int i = 1; i < list.size(); i += 2) {
             String five = list.get(i).getFive();
@@ -1154,41 +1154,40 @@ public class GanZhiServiceImpl extends ServiceImpl<GanZhiMapper, GanZhi> impleme
                 if (huoCount > shuiCount) {
                     String name = list.get(i).getName();
                     if ("戌".equals(name) || "未".equals(name)) {
-                        Integer fiveC = (Integer)fiveCount.get("火") + 1;
-                        fiveCount.put("火", fiveC);
+                        Integer fiveC = (Integer) fiveCountMap.get("火") + 1;
+                        fiveCountMap.put("火", fiveC);
                     }
                 } else if (huoCount < shuiCount) {
                     String name = list.get(i).getName();
                     if ("辰".equals(name) || "丑".equals(name)) {
-                        Integer fiveC = (Integer)fiveCount.get("水") + 1;
-                        fiveCount.put("水", fiveC);
+                        Integer fiveC = (Integer) fiveCountMap.get("水") + 1;
+                        fiveCountMap.put("水", fiveC);
                     }
                 }
             }
         }
-        fiveCount.remove("土");
-        fiveCount.remove("金");
-        fiveCount.remove("木");
-        fiveCount.remove("缺失五行评语");
+        fiveCountMap.remove("土");
+        fiveCountMap.remove("金");
+        fiveCountMap.remove("木");
 
 
-        int huoCount2 = (Integer)fiveCount.get("火");
-        int shuiCoun2 = (Integer)fiveCount.get("水");
+        int huoCount2 = fiveCountMap.get("火");
+        int shuiCoun2 = fiveCountMap.get("水");
 
-        Map<String, Object> zaoShiMap = new TreeMap<String, Object>();
-        zaoShiMap.putAll(fiveCount);
+        Map<String, Integer> zaoShiMap = new TreeMap<String, Integer>();
+        zaoShiMap.putAll(fiveCountMap);
 
 
         if (huoCount2 - shuiCoun2 >= 2) {  //火过旺
-            zaoShiMap.put("jieshi", "过于干燥,火特别多,性情比较暴躁,容易上火,内心上火容易产生无名火,容易被“点燃”生气,身体也容易上火。");
+            reportMap.put("潮湿平衡", "过于干燥,火特别多,性情比较暴躁,容易上火,内心上火容易产生无名火,容易被“点燃”生气,身体也容易上火。");
         } else if (huoCount2 - shuiCoun2 == 1) { //火轻微过旺
-            zaoShiMap.put("jieshi", "偏干燥,火特别多,性情相对比较急躁。");
+            reportMap.put("潮湿平衡", "偏干燥,火特别多,性情相对比较急躁。");
         } else if (huoCount2 - shuiCoun2 <= -2) {
-            zaoShiMap.put("jieshi", "过于湿润,大便不成形,湿气太重了,比较会容易肚子,手脚冰凉,气血不活。");
+            reportMap.put("潮湿平衡", "过于湿润,大便不成形,湿气太重了,比较会容易肚子,手脚冰凉,气血不活。");
         } else if (huoCount2 - shuiCoun2 == -1) {
-            zaoShiMap.put("jieshi", "偏湿润,大便不成形,湿气较重,气血不活。");
+            reportMap.put("潮湿平衡", "偏湿润,大便不成形,湿气较重,气血不活。");
         } else if (huoCount2 - shuiCoun2 == 0) {
-            zaoShiMap.put("jieshi", "各个宫位,燥湿达到平衡。不会过湿,过燥。");
+            reportMap.put("潮湿平衡", "各个宫位,燥湿达到平衡。不会过湿,过燥。");
         }
 
         return zaoShiMap;
@@ -1769,4 +1768,58 @@ public class GanZhiServiceImpl extends ServiceImpl<GanZhiMapper, GanZhi> impleme
     }
 
 
+    @Override
+    public String getBiQi(List<GanZhiRowVo> ganZhiRowVoList) {
+        String shiShen1 = ganZhiRowVoList.get(5).getShiShen1();
+        String shiShen = shiShen1.substring(2, 4);
+        String biqi = shiShenConfig.getBiQi().get(shiShen);
+        return biqi;
+    }
+
+    @Override
+    public String getCaiYun(List<GanZhiRowVo> ganZhiRowVoList, Map<String, Object> riYuanQrMap, Map<String, Integer> shiShenCountMap) {
+        String qr = (String) riYuanQrMap.get("qr");
+        List<String> xiYong = (List<String>) riYuanQrMap.get("xiYong");
+
+        StringBuffer caiContent = new StringBuffer();
+        if (qr.contains("强")) {
+            caiContent.append("身强");
+        } else if (qr.contains("弱")) {
+            caiContent.append("身弱");
+        }
+
+        int pianCaiCount = shiShenCountMap.get("偏财");
+        int zhengCaiCount = shiShenCountMap.get("正财");
+
+        int totalCount = pianCaiCount + zhengCaiCount;
+        if (totalCount >= 2) {
+            caiContent.append("财旺");
+        } else if (totalCount >= 1) {
+            caiContent.append("财弱");
+        } else if (totalCount == 0) {
+            caiContent.append("四柱无财");
+        }
+
+        caiContent.append(":");
+
+        if (caiContent.toString().contains("身强") && caiContent.toString().contains("财旺")) {
+            caiContent.append("遇大运流年,见食伤财才则发大财。流年为" + xiYong.get(0) + "、" + xiYong.get(1) + "均带有食伤财。");
+        } else if (caiContent.toString().contains("身强") && caiContent.toString().contains("财弱")) {
+            caiContent.append("遇大运流年,见食伤财才则发中财。流年为" + xiYong.get(0) + "、" + xiYong.get(1) + "均带有食伤财。");
+        } else if (caiContent.toString().contains("身强") && caiContent.toString().contains("四柱无财")) {
+            caiContent.append("遇大运流年,见财则有钱进账,但不长久。");
+        } else if (caiContent.toString().contains("身弱") && caiContent.toString().contains("四柱无财")) {
+            caiContent.append("不好发财,俗称和尚命。");
+        }
+
+        String monthZhi = ganZhiRowVoList.get(3).getName();
+        String nian = shiShenConfig.getWuGui().get(monthZhi);
+        String shengXiao = shiShenConfig.getWuGuiShengXiao().get(monthZhi);
+
+        caiContent.append("遇到"+shengXiao+"年,遇五鬼神煞比较容易得到偏财,但是同时也较易惹上小人、是非和灾害等。五鬼煞入命,会出现莫名其妙无风起浪的危险,因此一定要防患于未然,于官府当中更应该提防,在交友方面也应该小心,否则会有刑讼官司、破财牢狱之灾。");
+
+        return caiContent.toString();
+    }
+
+
 }

+ 9 - 3
xpgx-service/src/main/java/com/miaxis/gan/vo/GanZhiVo.java

@@ -53,13 +53,13 @@ public class GanZhiVo {
     private List<GanZhiRowVo> ganZhiRowVoList;
 
     @ApiModelProperty(value = "八字五行个数集合")
-    private Map<String,Object> fiveCountMap;
+    private Map<String,Integer> fiveCountMap;
 
     @ApiModelProperty(value = "八字十神个数集合")
-    private Map<String,Object> shiShenCountMap;
+    private Map<String,Integer> shiShenCountMap;
 
     @ApiModelProperty(value = "八字燥湿集合")
-    private Map<String,Object> zaoShiMap;
+    private Map<String,Integer> zaoShiMap;
 
     @ApiModelProperty(value = "八字纳音")
     private List<GanZhiNaYinVo> ganZhiNaYinVoList;
@@ -79,7 +79,13 @@ public class GanZhiVo {
     @ApiModelProperty(value = "贵人")
     private String guiren;
 
+    @ApiModelProperty(value = "脾气")
+    private String biQi;
+
     @ApiModelProperty(value = "称骨评语")
     private Map<String,String> chenGuMap;
 
+    @ApiModelProperty(value = "报告")
+    private Map<String,String> reportMap;
+
 }