zhangbin пре 1 година
родитељ
комит
80cff2cf47

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

@@ -1,26 +1,22 @@
 package com.miaxis.app.controller.gan;
 
-import com.miaxis.common.annotation.Log;
 import com.miaxis.common.constant.Constants;
 import com.miaxis.common.core.controller.BaseController;
 import com.miaxis.common.core.domain.Response;
 import com.miaxis.common.core.page.ResponsePageInfo;
-import com.miaxis.common.enums.BusinessTypeEnum;
 import com.miaxis.common.utils.DateUtils;
-import com.miaxis.common.utils.poi.ExcelUtil;
 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.dto.LiuNianDto;
 import com.miaxis.gan.service.IGanZhiService;
 import com.miaxis.gan.vo.*;
-import com.miaxis.number.domain.NumberYun;
 import com.nlf.calendar.Lunar;
 import io.swagger.annotations.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
-import java.util.Arrays;
-import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
@@ -31,40 +27,39 @@ import java.util.Map;
  * @date 2023-11-16
  */
 @RestController
-@RequestMapping(Constants.OPEN_PREFIX+"/gan/zhi")
-@Api(tags={"【app-天干地支】"})
-public class GanZhiController extends BaseController{
+@RequestMapping(Constants.OPEN_PREFIX + "/gan/zhi")
+@Api(tags = {"【app-天干地支】"})
+public class GanZhiController extends BaseController {
     @Autowired
     private IGanZhiService ganZhiService;
 
 
     /**
      * 查询天干地支列表
-     */
+
     @GetMapping("/list")
     @ApiOperation("查询天干地支列表")
-        @ApiImplicitParams({
-            @ApiImplicitParam(name = "pageNum",value = "当前页码" ,dataType = "int", paramType = "query", required = false),
-            @ApiImplicitParam(name = "pageSize",value = "每页数据量" , dataType = "int", paramType = "query", required = false),
+    @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){
+    public ResponsePageInfo<GanZhi> list(@ModelAttribute GanZhi ganZhi) {
         startPage();
         List<GanZhi> list = ganZhiService.selectGanZhiList(ganZhi);
         return toResponsePageInfo(list);
     }
-
-
+     */
 
     /**
      * 查询天干地支列表
      */
     @GetMapping("/get8ziByDate")
     @ApiOperation("干支查询8字")
-    public Response<GanZhiVo> get8ziByDate(@ModelAttribute GanZhiDto ganZhiDto){
+    public Response<GanZhiVo> get8ziByDate(@ModelAttribute GanZhiDto ganZhiDto) {
 
         String birthDay = ganZhiDto.getBirthDay();
         Lunar lunar = Lunar.fromDate(DateUtils.parseDate(birthDay));
-        System.out.println("农历:"+lunar.getYear()+"年(生肖"+lunar.getYearShengXiao()+")"+lunar.getMonth()+"月"+lunar.getDay()+"日"+lunar.getTime()+"时");
+        System.out.println("农历:" + lunar.getYear() + "年(生肖" + lunar.getYearShengXiao() + ")" + lunar.getMonth() + "月" + lunar.getDay() + "日" + lunar.getTime() + "时");
 
         // 获取干支纪年
         ganZhiDto.setYearGan(lunar.getYearGan());
@@ -80,17 +75,18 @@ public class GanZhiController extends BaseController{
         ganZhiDto.setTimeZhi(lunar.getTimeZhi());
 
 
+        //ganZhiDto = ganZhiService.getDaYun(ganZhiDto); //月柱节气矫正 取出90年大运
         List<GanZhiRowVo> ganZhiRowVoList = ganZhiService.selectGanZhiRowVoList(ganZhiDto);
-        Map<String,Integer> fiveCountMap = ganZhiService.getGanZhiRowVoCount(ganZhiDto);
+        Map<String, Integer> fiveCountMap = ganZhiService.getGanZhiRowVoCount(ganZhiDto);
         List<GanZhiNaYinVo> ganZhiNaYinVoList = ganZhiService.selectGanZhiNaYinList(ganZhiDto);
         List<GanZhiKongWangVo> ganZhiKongWangVoList = ganZhiService.selectGanZhiKongWangList(ganZhiDto);
-        Map<String,Object> riYuanQrMap = ganZhiService.getRiYuanQr(ganZhiDto);
-        Map<String,Object> numberYunMap = ganZhiService.getNumberYun(riYuanQrMap);
-        Map<String,Object> zaoShiCount = ganZhiService.getZaoShiCount(ganZhiDto);
+        Map<String, Object> riYuanQrMap = ganZhiService.getRiYuanQr(ganZhiDto);
+        Map<String, Object> numberYunMap = ganZhiService.getNumberYun(riYuanQrMap);
+        Map<String, Object> zaoShiCount = ganZhiService.getZaoShiCount(ganZhiDto);
         List<DiseasePart> diseasePartList = ganZhiService.getJiBing(ganZhiDto);
 
         GanZhiVo ganZhiVo = new GanZhiVo();
-        ganZhiVo.setNongDay(lunar.getYear()+"年(生肖"+lunar.getYearShengXiao()+")"+lunar.getMonth()+"月"+lunar.getDay()+"日"+lunar.getTime()+"时");
+        ganZhiVo.setNongDay(lunar.getYear() + "年(生肖" + lunar.getYearShengXiao() + ")" + lunar.getMonth() + "月" + lunar.getDay() + "日" + lunar.getTime() + "时");
         ganZhiVo.setBirthDay(ganZhiDto.getBirthDay());
         ganZhiVo.setGanZhiRowVoList(ganZhiRowVoList);
         ganZhiVo.setFiveCountMap(fiveCountMap);
@@ -109,23 +105,18 @@ public class GanZhiController extends BaseController{
     }
 
 
-
-
-
-
-
     /**
-     * 获取天干地支详细信息
+     * 输入大运时间返回流年
      */
-    @GetMapping(value = "/{id}")
-    @ApiOperation("获取天干地支详细信息")
-    public Response<GanZhi> getInfo(
-            @ApiParam(name = "id", value = "天干地支参数", required = true)
-            @PathVariable("id") Long id
-    ){
-        return Response.success(ganZhiService.getById(id));
-    }
+    @GetMapping("/getLiuNian")
+    @ApiOperation("输入大运时间返回流年")
+    public Response<List<Map<String, String>>> getLiuNian(@ModelAttribute LiuNianDto liuNianDto) {
 
+        List<Map<String, String>> liuNianList = ganZhiService.getLiuNian(liuNianDto);
+
+        // 输出结果
+        return Response.success(liuNianList);
+    }
 
 
 

+ 27 - 2
xpgx-admin/src/test/java/com/miaxis/test/GanTest.java

@@ -1,7 +1,9 @@
 package com.miaxis.test;
 
 import com.miaxis.XpgxApplication;
+import com.miaxis.common.config.ShiShenConfig;
 import com.miaxis.common.utils.DateUtils;
+import com.miaxis.gan.dto.GanZhiDto;
 import com.miaxis.gan.service.IGanZhiService;
 import com.miaxis.jie.service.IJieQiService;
 import com.miaxis.jie.vo.JieQiVo;
@@ -35,16 +37,39 @@ public class GanTest {
     @Autowired
     private IGanZhiService ganZhiService;
 
+    @Autowired
+    private ShiShenConfig shiShenConfig;
+
     @Test
     public void getLocation() throws IOException {
 
         // 假设使用 cn.6tail 的 lunar 库来转换日期
-        Date d1 = DateUtils.parseDate("2002-09-08 17:00:00");
+        GanZhiDto ganZhiDto = new GanZhiDto();
+        ganZhiDto.setBirthDay("2002-09-08 14:02:00");
+        ganZhiDto.setSex(1);
+        Date d1 = DateUtils.parseDate(ganZhiDto.getBirthDay());
         Lunar lunar = Lunar.fromDate(d1);
 
+        // 获取干支纪年
+        ganZhiDto.setYearGan(lunar.getYearGan());
+        ganZhiDto.setYearZhi(lunar.getYearZhi());
 
-    }
+        ganZhiDto.setMonthGan(lunar.getMonthGan());
+        ganZhiDto.setMonthZhi(lunar.getMonthZhi());
+
+        ganZhiDto.setDayGan(lunar.getDayGan());
+        ganZhiDto.setDayZhi(lunar.getDayZhi());
+
+        ganZhiDto.setTimeGan(lunar.getTimeGan());
+        ganZhiDto.setTimeZhi(lunar.getTimeZhi());
 
+        System.out.println(lunar.getYearGan()+","+lunar.getYearZhi()+","+lunar.getMonthGan()+","+lunar.getMonthZhi()+","+lunar.getDayGan()+","+lunar.getDayZhi()+","+lunar.getTimeGan()+","+lunar.getTimeZhi());
+
+        System.out.println(shiShenConfig.getLiushijiazi().get(119));
+
+        ganZhiService.getDaYun(ganZhiDto);
+
+    }
 
 
 }

+ 7 - 3
xpgx-admin/src/test/java/com/miaxis/test/TestYear.java

@@ -4,12 +4,16 @@ import com.miaxis.common.config.ShiShenConfig;
 import com.miaxis.common.utils.DateUtils;
 import com.nlf.calendar.Lunar;
 import com.nlf.calendar.Solar;
+import org.springframework.beans.factory.annotation.Autowired;
 
 import java.util.Date;
 import java.util.Map;
 
 public class TestYear {
 
+    @Autowired
+    private ShiShenConfig shiShenConfig;
+
 
 
     public static void main(String[] args) {
@@ -19,7 +23,7 @@ public class TestYear {
             int day = 30;
 
         // 假设使用 cn.6tail 的 lunar 库来转换日期
-        Date d1 = DateUtils.parseDate("2002-09-08 17:00:00");
+        Date d1 = DateUtils.parseDate("2023-03-01 00:00:00");
         Lunar lunar = Lunar.fromDate(d1);
         //      System.out.println(lunar.toFullString());
        // System.out.println(lunar.getSolar().toFullString());
@@ -39,12 +43,12 @@ public class TestYear {
 
 
 
+
+
         if(lunar.getJieQi()!=null && !"".equals(lunar.getJieQi()) ) {
             System.out.println("节气:"+lunar.getJieQi());
             //存在节气,判断是否在节气点前
 
-
-
         } else {
             //不存在节气,正常判断
         }

+ 140 - 11
xpgx-common/src/main/java/com/miaxis/common/config/ShiShenConfig.java

@@ -429,7 +429,7 @@ public class ShiShenConfig {
         naYin.put("壬戌", "大海水");
         naYin.put("癸亥", "大海水");
 
-        //1旬
+        //1旬
         liushijiazi.add("甲子");
         liushijiazi.add("乙丑");
         liushijiazi.add("丙寅");
@@ -440,8 +440,7 @@ public class ShiShenConfig {
         liushijiazi.add("辛未");
         liushijiazi.add("壬申");
         liushijiazi.add("癸酉");
-
-        //2旬
+        //一2旬
         liushijiazi.add("甲戌");
         liushijiazi.add("乙亥");
         liushijiazi.add("丙子");
@@ -452,8 +451,7 @@ public class ShiShenConfig {
         liushijiazi.add("辛巳");
         liushijiazi.add("壬午");
         liushijiazi.add("癸未");
-
-        //3旬
+        //一3旬
         liushijiazi.add("甲申");
         liushijiazi.add("乙酉");
         liushijiazi.add("丙戌");
@@ -464,8 +462,7 @@ public class ShiShenConfig {
         liushijiazi.add("辛卯");
         liushijiazi.add("壬辰");
         liushijiazi.add("癸巳");
-
-        //4旬
+        //一4旬
         liushijiazi.add("甲午");
         liushijiazi.add("乙未");
         liushijiazi.add("丙申");
@@ -476,8 +473,7 @@ public class ShiShenConfig {
         liushijiazi.add("辛丑");
         liushijiazi.add("壬寅");
         liushijiazi.add("癸卯");
-
-        //5旬
+        //一5旬
         liushijiazi.add("甲辰");
         liushijiazi.add("乙巳");
         liushijiazi.add("丙午");
@@ -488,8 +484,7 @@ public class ShiShenConfig {
         liushijiazi.add("辛亥");
         liushijiazi.add("壬子");
         liushijiazi.add("癸丑");
-
-        //6旬
+        //一6旬
         liushijiazi.add("甲寅");
         liushijiazi.add("乙卯");
         liushijiazi.add("丙辰");
@@ -500,6 +495,140 @@ public class ShiShenConfig {
         liushijiazi.add("辛酉");
         liushijiazi.add("壬戌");
         liushijiazi.add("癸亥");
+        //二1旬
+        liushijiazi.add("甲子");
+        liushijiazi.add("乙丑");
+        liushijiazi.add("丙寅");
+        liushijiazi.add("丁卯");
+        liushijiazi.add("戊辰");
+        liushijiazi.add("己巳");
+        liushijiazi.add("庚午");
+        liushijiazi.add("辛未");
+        liushijiazi.add("壬申");
+        liushijiazi.add("癸酉");
+        //二2旬
+        liushijiazi.add("甲戌");
+        liushijiazi.add("乙亥");
+        liushijiazi.add("丙子");
+        liushijiazi.add("丁丑");
+        liushijiazi.add("戊寅");
+        liushijiazi.add("己卯");
+        liushijiazi.add("庚辰");
+        liushijiazi.add("辛巳");
+        liushijiazi.add("壬午");
+        liushijiazi.add("癸未");
+        //二3旬
+        liushijiazi.add("甲申");
+        liushijiazi.add("乙酉");
+        liushijiazi.add("丙戌");
+        liushijiazi.add("丁亥");
+        liushijiazi.add("戊子");
+        liushijiazi.add("己丑");
+        liushijiazi.add("庚寅");
+        liushijiazi.add("辛卯");
+        liushijiazi.add("壬辰");
+        liushijiazi.add("癸巳");
+        //二4旬
+        liushijiazi.add("甲午");
+        liushijiazi.add("乙未");
+        liushijiazi.add("丙申");
+        liushijiazi.add("丁酉");
+        liushijiazi.add("戊戌");
+        liushijiazi.add("己亥");
+        liushijiazi.add("庚子");
+        liushijiazi.add("辛丑");
+        liushijiazi.add("壬寅");
+        liushijiazi.add("癸卯");
+        //二5旬
+        liushijiazi.add("甲辰");
+        liushijiazi.add("乙巳");
+        liushijiazi.add("丙午");
+        liushijiazi.add("丁未");
+        liushijiazi.add("戊申");
+        liushijiazi.add("己酉");
+        liushijiazi.add("庚戌");
+        liushijiazi.add("辛亥");
+        liushijiazi.add("壬子");
+        liushijiazi.add("癸丑");
+        //二6旬
+        liushijiazi.add("甲寅");
+        liushijiazi.add("乙卯");
+        liushijiazi.add("丙辰");
+        liushijiazi.add("丁巳");
+        liushijiazi.add("戊午");
+        liushijiazi.add("己未");
+        liushijiazi.add("庚申");
+        liushijiazi.add("辛酉");
+        liushijiazi.add("壬戌");
+        liushijiazi.add("癸亥");
+        //三1旬
+        liushijiazi.add("甲子");
+        liushijiazi.add("乙丑");
+        liushijiazi.add("丙寅");
+        liushijiazi.add("丁卯");
+        liushijiazi.add("戊辰");
+        liushijiazi.add("己巳");
+        liushijiazi.add("庚午");
+        liushijiazi.add("辛未");
+        liushijiazi.add("壬申");
+        liushijiazi.add("癸酉");
+        //三2旬
+        liushijiazi.add("甲戌");
+        liushijiazi.add("乙亥");
+        liushijiazi.add("丙子");
+        liushijiazi.add("丁丑");
+        liushijiazi.add("戊寅");
+        liushijiazi.add("己卯");
+        liushijiazi.add("庚辰");
+        liushijiazi.add("辛巳");
+        liushijiazi.add("壬午");
+        liushijiazi.add("癸未");
+        //三3旬
+        liushijiazi.add("甲申");
+        liushijiazi.add("乙酉");
+        liushijiazi.add("丙戌");
+        liushijiazi.add("丁亥");
+        liushijiazi.add("戊子");
+        liushijiazi.add("己丑");
+        liushijiazi.add("庚寅");
+        liushijiazi.add("辛卯");
+        liushijiazi.add("壬辰");
+        liushijiazi.add("癸巳");
+        //三4旬
+        liushijiazi.add("甲午");
+        liushijiazi.add("乙未");
+        liushijiazi.add("丙申");
+        liushijiazi.add("丁酉");
+        liushijiazi.add("戊戌");
+        liushijiazi.add("己亥");
+        liushijiazi.add("庚子");
+        liushijiazi.add("辛丑");
+        liushijiazi.add("壬寅");
+        liushijiazi.add("癸卯");
+        //三5旬
+        liushijiazi.add("甲辰");
+        liushijiazi.add("乙巳");
+        liushijiazi.add("丙午");
+        liushijiazi.add("丁未");
+        liushijiazi.add("戊申");
+        liushijiazi.add("己酉");
+        liushijiazi.add("庚戌");
+        liushijiazi.add("辛亥");
+        liushijiazi.add("壬子");
+        liushijiazi.add("癸丑");
+        //三6旬
+        liushijiazi.add("甲寅");
+        liushijiazi.add("乙卯");
+        liushijiazi.add("丙辰");
+        liushijiazi.add("丁巳");
+        liushijiazi.add("戊午");
+        liushijiazi.add("己未");
+        liushijiazi.add("庚申");
+        liushijiazi.add("辛酉");
+        liushijiazi.add("壬戌");
+        liushijiazi.add("癸亥");
+
+
 
         //天干阴阳
         tianGanYY.put("甲","阳");

+ 4 - 1
xpgx-service/src/main/java/com/miaxis/gan/dto/GanZhiDto.java

@@ -5,6 +5,8 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.util.Date;
+import java.util.List;
+import java.util.Map;
 
 /**
  * 天干地支对象 gan_zhi
@@ -54,7 +56,8 @@ public class GanZhiDto {
     @ApiModelProperty(value = "时支",hidden = true)
     private String timeZhi;
 
-
+    @ApiModelProperty(value = "大运",hidden = true)
+    private List<Map<String, String>> daYunList;
 
 
 }

+ 25 - 0
xpgx-service/src/main/java/com/miaxis/gan/dto/LiuNianDto.java

@@ -0,0 +1,25 @@
+package com.miaxis.gan.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 天干地支对象 gan_zhi
+ *
+ * @author miaxis
+ * @date 2023-11-16
+ */
+@Data
+public class LiuNianDto {
+
+    private static final long serialVersionUID = 1L;
+
+
+    @ApiModelProperty(value = "起运年份", required = true)
+    private Integer year;
+
+    @ApiModelProperty(value = "起运年龄", required = true)
+    private Integer qiYunOld;
+
+
+}

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

@@ -4,12 +4,11 @@ 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.GanZhiKongWangVo;
 import com.miaxis.gan.vo.GanZhiNaYinVo;
 import com.miaxis.gan.vo.GanZhiRowVo;
-import com.miaxis.jie.vo.JieQiVo;
 
-import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
@@ -83,5 +82,13 @@ public interface IGanZhiService extends IService<GanZhi>{
     GanZhiDto getDaYun(GanZhiDto ganZhiDto);
 
 
+    /**
+     * 根据大运开始查流年
+     * @param linNianDto
+     * @return
+     */
+    List<Map<String, String>> getLiuNian(LiuNianDto linNianDto);
+
+
 
 }

+ 99 - 19
xpgx-service/src/main/java/com/miaxis/gan/service/impl/GanZhiServiceImpl.java

@@ -9,6 +9,7 @@ import com.miaxis.disease.domain.DiseasePart;
 import com.miaxis.disease.dto.DiseasePartDto;
 import com.miaxis.disease.mapper.DiseasePartMapper;
 import com.miaxis.gan.dto.GanZhiDto;
+import com.miaxis.gan.dto.LiuNianDto;
 import com.miaxis.gan.vo.GanZhiKongWangVo;
 import com.miaxis.gan.vo.GanZhiNaYinVo;
 import com.miaxis.gan.vo.GanZhiRowVo;
@@ -467,13 +468,13 @@ public class GanZhiServiceImpl extends ServiceImpl<GanZhiMapper, GanZhi> impleme
         if (yearZhiShiShen3 != null && yearZhiShiShen3.contains("七杀")) { //存在七杀
             partZ.add("脖子");
         }
-        if (yearZhiShiShen1.contains("偏印")) { //存在偏印
+        if (yearZhiShiShen1 != null && yearZhiShiShen1.contains("偏印")) { //存在偏印
             partQ.add("脖子");
         }
-        if (yearZhiShiShen2.contains("偏印")) { //存在偏印
+        if (yearZhiShiShen2 != null && yearZhiShiShen2.contains("偏印")) { //存在偏印
             partQ.add("脖子");
         }
-        if (yearZhiShiShen3.contains("偏印")) { //存在偏印
+        if (yearZhiShiShen3 != null && yearZhiShiShen3.contains("偏印")) { //存在偏印
             partQ.add("脖子");
         }
 
@@ -513,10 +514,10 @@ public class GanZhiServiceImpl extends ServiceImpl<GanZhiMapper, GanZhi> impleme
         /*--------------------------日柱---------------------------*/
         //天干
         String dayGanShiShen = ganZhiRowVoList.get(4).getShiShen1();
-        if ("七杀".indexOf(dayGanShiShen) > 0) { //存在七杀
+        if (dayGanShiShen != null && "七杀".contains(dayGanShiShen)) { //存在七杀
             partZ.add("小腹");
         }
-        if ("偏印".indexOf(dayGanShiShen) > 0) { //存在七杀
+        if (dayGanShiShen != null && "偏印".contains(dayGanShiShen)) { //存在七杀
             partQ.add("小腹");
         }
         //地支 脖子
@@ -651,6 +652,7 @@ public class GanZhiServiceImpl extends ServiceImpl<GanZhiMapper, GanZhi> impleme
      *
      * @return
      */
+    @Override
     public GanZhiDto getDaYun(GanZhiDto ganZhiDto) {
 
         int daYun = 0;
@@ -675,33 +677,112 @@ public class GanZhiServiceImpl extends ServiceImpl<GanZhiMapper, GanZhi> impleme
             }
         }
 
-        if (daYun == 1) { //大运顺
-
-        } else if (daYun == 2) { //大运逆
-
-        }
-
-
-
-
         //判断当天是否是节气,如果在节前前, 月柱修改
         Date d1 = DateUtils.parseDate(ganZhiDto.getBirthDay());
         Lunar lunar = Lunar.fromDate(d1);
         List<JieQiVo> list = jieQiMapper.selectJiiQiFb(d1);
         if (lunar.getJieQi() != null && !"".equals(lunar.getJieQi())) {
             //存在节气,如果第二个节气刚好当天相同
-            if(list.get(1).getJieqiName().equals(lunar.getJieQi())){
+            if (list.get(1).getJieqiName().equals(lunar.getJieQi())) {
                 //把月时间清空,再取一次月柱
-                String birthday2 = ganZhiDto.getBirthDay().substring(0,10);
-                Date d2 = DateUtils.parseDate(birthday2);
+                Calendar calendar = Calendar.getInstance();
+                calendar.setTime(d1);
+                calendar.add(Calendar.DAY_OF_MONTH, -1);
+                Date d2 = calendar.getTime();
+                //重新导入
                 Lunar lunar2 = Lunar.fromDate(d2);
                 ganZhiDto.setMonthGan(lunar2.getMonthGan());
                 ganZhiDto.setMonthZhi(lunar2.getMonthZhi());
             }
         }
+        System.out.println(ganZhiDto.getYearGan() + "," + ganZhiDto.getYearZhi() + "," + ganZhiDto.getMonthGan() + "," + ganZhiDto.getMonthZhi() + "," + ganZhiDto.getDayGan() + "," + ganZhiDto.getDayZhi() + "," + ganZhiDto.getTimeGan() + "," + ganZhiDto.getTimeZhi());
 
+        if (daYun == 1) { //大运顺
+            int daYunCount = 0;
+            int dayDiff = Math.abs(list.get(1).getDaysDifference());
+            int qiyunSui = (dayDiff / 3);  //计算起运岁数
+            System.out.println("大运顺起运岁数:" + qiyunSui);
+
+            int year = lunar.getYear() + 10;
+            System.out.println("大运顺起运岁年份数:" + year + "岁");
+
+            String monthZhu = ganZhiDto.getMonthGan() + ganZhiDto.getMonthZhi();
+            List<String> jiaziList = new ArrayList<String>(shiShenConfig.getLiushijiazi());
+
+            List<Map<String, String>> daYunList = new ArrayList<Map<String, String>>();
+            boolean flag = false;
+            for (int i = 60; i < jiaziList.size(); i++) {
+                if (flag) {
+                    daYunCount++;
+                    int daYunYear = lunar.getYear() + 10 * daYunCount; //大运年份
+                    int daYunSui = qiyunSui + (10 * daYunCount) - 10; // 大运岁数
+
+                    Map<String, String> daYumMap = new TreeMap<String, String>();
+                    daYumMap.put("daYunYear", daYunYear + "");
+                    daYumMap.put("daYunSui", daYunSui + "岁");
+                    daYumMap.put("daYunGanZhi", jiaziList.get(i));
+
+                    daYunList.add(daYumMap);
+                    if (daYunList.size() >= 10) {
+                        break;
+                    }
+                    continue;
+                }
+                if (monthZhu.equals(jiaziList.get(i)) && flag == false) {
+                    flag = true;
+                }
+            }
+            ganZhiDto.setDaYunList(daYunList);
+        } else if (daYun == 2) { //大运逆
+            int daYunCount = 0;
+            int dayDiff = Math.abs(list.get(0).getDaysDifference());
+            int qiyunSui = (dayDiff / 3);  //计算起运岁数
+            System.out.println("大运逆起运岁数:" + qiyunSui);
+            String monthZhu = ganZhiDto.getMonthGan() + ganZhiDto.getMonthZhi();
+            List<String> jiaziList = new ArrayList<String>(shiShenConfig.getLiushijiazi());
+            List<Map<String, String>> daYunList = new ArrayList<Map<String, String>>();
+            boolean flag = false;
+            for (int i = 119; i >= 0; i--) {
+                if (flag) {
+                    daYunCount++;
+                    int daYunYear = lunar.getYear() + 10 * daYunCount; //大运年份
+                    int daYunSui = qiyunSui + (10 * daYunCount) - 10; // 大运岁数
+                    Map<String, String> daYumMap = new TreeMap<String, String>();
+                    daYumMap.put("daYunYear", daYunYear + "");
+                    daYumMap.put("daYunSui", daYunSui + "岁");
+                    daYumMap.put("daYunGanZhi", jiaziList.get(i));
+                    daYunList.add(daYumMap);
+                    if (daYunList.size() >= 9) {
+                        break;
+                    }
+                    continue;
+                }
+                if (monthZhu.equals(jiaziList.get(i)) && flag == false) {
+                    flag = true;
+                }
+            }
+            ganZhiDto.setDaYunList(daYunList);
+        }
+        return ganZhiDto;
+    }
 
-        return null;
+    @Override
+    public List<Map<String, String>> getLiuNian(LiuNianDto linNianDto) {
+        //yyyy-MM-dd HH:mm:ss
+        List<Map<String, String>> liuNianList = new ArrayList<Map<String, String>>();
+
+        int year = 0;
+        for (int i = 0; i < 10; i++) {
+            year = linNianDto.getYear() + i;
+            Map<String, String> liuNianMap = new TreeMap<String, String>();
+            String date = year + "-03-01 01:00:00";
+            Lunar lunar = Lunar.fromDate(DateUtils.parseDate(date));
+            liuNianMap.put("liuNianYear", year + "");
+            liuNianMap.put("liuNianSui", linNianDto.getQiYunOld() + i + "岁");
+            liuNianMap.put("liuNianGanZhi", lunar.getYearGan() + lunar.getYearZhi());
+            liuNianList.add(liuNianMap);
+        }
+        return liuNianList;
     }
 
 
@@ -882,5 +963,4 @@ public class GanZhiServiceImpl extends ServiceImpl<GanZhiMapper, GanZhi> impleme
     }
 
 
-
 }

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

@@ -1,12 +1,9 @@
 package com.miaxis.gan.vo;
 
-import com.fasterxml.jackson.annotation.JsonFormat;
 import com.miaxis.disease.domain.DiseasePart;
-import com.miaxis.number.domain.NumberYun;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
-import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
@@ -34,6 +31,8 @@ public class GanZhiVo {
     @ApiModelProperty(value = "(农历)出生日期")
     private String nongDay;
 
+    @ApiModelProperty(value = "起运年龄")
+    private Integer qiYunOld;
 
     @ApiModelProperty(value = "日元强弱")
     private Map<String,Object> riYuan;