|
@@ -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
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
}
|