Commit 04cc8dd76d0f18c683ae638ee1aec88d749bc2ea

Authored by wangbo
1 parent 160752f4ab

update

Showing 3 changed files with 136 additions and 9 deletions

platform-biz-service/src/main/resources/mainOrm/master/CouponMapper.xml View file @ 04cc8dd
... ... @@ -553,7 +553,7 @@
553 553 #{type}
554 554 </foreach>
555 555 <if test="keys.size()>0">
556   - and a.used_id in
  556 + and a.user_id in
557 557 <foreach collection="keys" open="(" close=")" separator="," item="key">
558 558 #{key}
559 559 </foreach>
... ... @@ -622,7 +622,7 @@
622 622 </foreach>
623 623  
624 624 <if test="keys.size()>0">
625   - and a.used_id in
  625 + and a.user_id in
626 626 <foreach collection="keys" open="(" close=")" separator="," item="key">
627 627 #{key}
628 628 </foreach>
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/OrgCouponService.java View file @ 04cc8dd
... ... @@ -2,7 +2,6 @@
2 2  
3 3 import com.lyms.platform.common.result.BaseObjectResponse;
4 4  
5   -import java.util.Date;
6 5 import java.util.Map;
7 6  
8 7 public interface OrgCouponService extends IBaseService {
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/OrgCouponServiceImpl.java View file @ 04cc8dd
... ... @@ -20,6 +20,7 @@
20 20 import org.springframework.data.mongodb.core.query.Criteria;
21 21 import org.springframework.data.mongodb.core.query.Query;
22 22 import org.springframework.stereotype.Service;
  23 +import org.springframework.util.Assert;
23 24  
24 25 import java.util.*;
25 26  
26 27  
... ... @@ -38,12 +39,107 @@
38 39 @Autowired
39 40 private ApplyOrderService applyOrderService;
40 41  
  42 + /**
  43 + * 优惠券统计报表key(type + "_" + coupon_order)所对应的header名称
  44 + */
  45 + private static final Map<String, Object> couponReportMap = new HashMap<>();
  46 +
  47 + /**
  48 + * 优惠券类型描述map
  49 + */
  50 + private static final Map<Integer, String> couponDescMap = new HashMap<>();
  51 +
  52 + private static final Map<String, String> colorMap = new HashMap<>();
  53 +
  54 + private static final Map<Integer, List<Integer>> personCouponMap = new HashMap<>();
  55 +
  56 + static {
  57 + colorMap.put("绿色预警", "#50e39f");
  58 + colorMap.put("黄色预警", "#ffd84d");
  59 + colorMap.put("橙色预警", "#f17d02");
  60 + colorMap.put("红色预警", "#ff6767");
  61 + colorMap.put("紫色预警", "#be75ff");
  62 +
  63 + personCouponMap.put(1, Arrays.asList(1, 2));
  64 + personCouponMap.put(2, Arrays.asList(7, 8));
  65 + personCouponMap.put(3, Arrays.asList(3, 4, 5, 6));
  66 +
  67 + /** 孕妇 */
  68 + couponReportMap.put("1_1", "孕期建档券使用人次");
  69 + couponReportMap.put("2_1", "首次产检券使用人次");
  70 + couponReportMap.put("2_2", "产检券(二)券使用人次");
  71 + couponReportMap.put("2_3", "产检券(三)券使用人次");
  72 + couponReportMap.put("2_4", "产检券(四)券使用人次");
  73 + couponReportMap.put("2_5", "产检券(五)券使用人次");
  74 + couponReportMap.put("2_6", "产检券(六)券使用人次");
  75 + couponReportMap.put("2_7", "产检券(七)券使用人次");
  76 + couponReportMap.put("2_8", "产检券(八)券使用人次");
  77 + couponReportMap.put("2_9", "产检券(九)券使用人次");
  78 + couponReportMap.put("2_10", "产检券(十)券使用人次");
  79 + couponReportMap.put("2_11", "产检券(十一)券使用人次");
  80 + couponReportMap.put("2_12", "产检券(十二)券使用人次");
  81 + /** 儿童 */
  82 + couponReportMap.put("7_1", "儿童建档券使用人次");
  83 + couponReportMap.put("8_1", "<div class='ag-double-line'>儿童保健券(一)<div>使用人次</div></div>");
  84 + couponReportMap.put("8_2", "<div class='ag-double-line'>儿童保健券(二)<div>使用人次</div></div>");
  85 + couponReportMap.put("8_3", "<div class='ag-double-line'>儿童保健券(三)<div><div>使用人次</div></div>");
  86 + couponReportMap.put("8_4", "<div class='ag-double-line'>儿童保健券(四)<div>使用人次</div></div>");
  87 + couponReportMap.put("8_5", "<div class='ag-double-line'>儿童保健券(五)<div>使用人次</div></div>");
  88 + couponReportMap.put("8_6", "<div class='ag-double-line'>儿童保健券(六)<div>使用人次</div></div>");
  89 + couponReportMap.put("8_7", "<div class='ag-double-line'>儿童保健券(七)<div>使用人次</div></div>");
  90 + couponReportMap.put("8_8", "<div class='ag-double-line'>儿童保健券(八)<div>使用人次</div></div>");
  91 + couponReportMap.put("8_9", "<div class='ag-double-line'>儿童保健券(九)<div>使用人次</div></div>");
  92 + couponReportMap.put("8_10", "<div class='ag-double-line'>儿童保健券(十)<div>使用人次</div></div>");
  93 + couponReportMap.put("8_11", "<div class='ag-double-line'>儿童保健券(十一)<div>使用人次</div></div>");
  94 + couponReportMap.put("8_12", "<div class='ag-double-line'>儿童保健券(十二)<div>使用人次</div></div>");
  95 + couponReportMap.put("9_1", "<div class='ag-double-line'>新生儿访视券(一)<div>使用人次</div></div>");
  96 + couponReportMap.put("9_2", "<div class='ag-double-line'>新生儿访视券(二)<div>使用人次</div></div>");
  97 + couponReportMap.put("9_3", "<div class='ag-double-line'>新生儿访视券(三)<div>使用人次</div></div>");
  98 + couponReportMap.put("9_4", "<div class='ag-double-line'>新生儿访视券(四)<div>使用人次</div></div>");
  99 + couponReportMap.put("9_5", "<div class='ag-double-line'>新生儿访视券(五)<div>使用人次</div></div>");
  100 + couponReportMap.put("9_6", "<div class='ag-double-line'>新生儿访视券(六)<div>使用人次</div></div>");
  101 + couponReportMap.put("9_7", "<div class='ag-double-line'>新生儿访视券(七)<div>使用人次</div></div>");
  102 + couponReportMap.put("9_8", "<div class='ag-double-line'>新生儿访视券(八)<div>使用人次</div></div>");
  103 + couponReportMap.put("9_9", "<div class='ag-double-line'>新生儿访视券(九)<div>使用人次</div></div>");
  104 + couponReportMap.put("10_1", "<div class='ag-double-line'>血红蛋白检查券(一)<div>使用人次</div></div>");
  105 + couponReportMap.put("10_2", "<div class='ag-double-line'>血红蛋白检查券(二)<div>使用人次</div></div>");
  106 + couponReportMap.put("10_3", "<div class='ag-double-line'>血红蛋白检查券(三)<div>使用人次</div></div>");
  107 + couponReportMap.put("10_4", "<div class='ag-double-line'>血红蛋白检查券(四)<div>使用人次</div></div>");
  108 + couponReportMap.put("10_5", "<div class='ag-double-line'>血红蛋白检查券(五)<div>使用人次</div></div>");
  109 + couponReportMap.put("10_6", "<div class='ag-double-line'>血红蛋白检查券(六)<div>使用人次</div></div>");
  110 + couponReportMap.put("10_7", "<div class='ag-double-line'>血红蛋白检查券(七)<div>使用人次</div></div>");
  111 + couponReportMap.put("10_8", "<div class='ag-double-line'>血红蛋白检查券(八)<div>使用人次</div></div>");
  112 + couponReportMap.put("10_9", "<div class='ag-double-line'>血红蛋白检查券(九)<div>使用人次</div></div>");
  113 + couponReportMap.put("10_10", "<div class='ag-double-line'>血红蛋白检查券(十)<div>使用人次</div></div>");
  114 +
  115 + couponReportMap.put("11_1", "<div class='ag-double-line'>产筛券<div>使用人次</div></div>");
  116 + /** 产后 */
  117 + couponReportMap.put("3_1", "<div class='ag-double-line'>产后建档券<div>使用人次</div></div>");
  118 + couponReportMap.put("4_1", "<div class='ag-double-line'>分娩券<div>使用人次</div></div>");
  119 + couponReportMap.put("5_1", "<div class='ag-double-line'>出院小结券<div>使用人次</div></div>");
  120 + couponReportMap.put("6_1", "<div class='ag-double-line'>42天访视券<div>使用人次</div></div>");
  121 + couponReportMap.put("6_2", "<div class='ag-double-line'>产后复查券(一)<div>使用人次</div></div>");
  122 + couponReportMap.put("6_3", "<div class='ag-double-line'>产后复查券(二)<div>使用人次</div></div>");
  123 + couponReportMap.put("6_4", "<div class='ag-double-line'>产后复查券(三)<div>使用人次</div></div>");
  124 + couponReportMap.put("6_5", "<div class='ag-double-line'>产后复查券(四)<div>使用人次</div></div>");
  125 + couponReportMap.put("6_6", "<div class='ag-double-line'>产后复查券(五)<div>使用人次</div></div>");
  126 +
  127 + /** 1=孕妇建档 2=孕妇产检 3=产妇建档 4=产妇分娩 5=产妇出院小结 6=产妇产后复查 7=儿童建档 8=儿童保健 */
  128 + couponDescMap.put(1, "孕妇建档券");
  129 + couponDescMap.put(2, "孕妇产检券");
  130 + couponDescMap.put(3, "产妇建档券");
  131 + couponDescMap.put(4, "产妇分娩券");
  132 + couponDescMap.put(5, "产妇出院小结券");
  133 + couponDescMap.put(6, "产妇产后复查券");
  134 + couponDescMap.put(7, "儿童建档券");
  135 + couponDescMap.put(8, "儿童保健券");
  136 + }
  137 +
41 138 @Override
42 139 public BaseObjectResponse orgCouponInfo(Map<String, Object> param) {
43 140 Integer currentPage = (Integer) param.get("currentPage");
44 141 PageUtil.setPageInfo(param);
45 142 String key = (String) param.get("key");
46   - System.out.println(key);
47 143 List<String> keys = new ArrayList();
48 144 if (StringUtils.isNotEmpty(key)) {
49 145 Criteria criteria = new Criteria();
50 146  
51 147  
52 148  
53 149  
... ... @@ -54,16 +150,47 @@
54 150 }
55 151 }
56 152 param.put("keys", keys);
57   - for (String ke : keys) {
58   - System.out.println(ke);
  153 + Integer type = 4;
  154 + String coupon = (String) param.get("couponType"); /** 选中单个优惠券类型查询时 前端传的是 type_order 目前传入这种的只有使用统计 */
  155 + if (StringUtils.isNotEmpty(coupon)) {
  156 + if (coupon.contains("_")) {
  157 + String[] split = (coupon + "").split("_"); /** type_order */
  158 + List<String> couponType = CollectionUtils.asList(split[0]);
  159 + String order = split[1];
  160 + param.put("couponType", couponType);
  161 + param.put("coupon_order", order);
  162 + type = 4;
  163 + } else {
  164 + param.put("couponType", CollectionUtils.asList(coupon));
  165 + }
59 166 }
60   - String coupon = (String) param.get("couponType");
61   - param.put("couponType", CollectionUtils.asList(coupon));
  167 +
  168 + Assert.notNull(type, "type must not be null!");
  169 +
62 170 /** 使用详情统计 */
  171 +// List<Map<String, Object>> couponInfos = couponMapper.couponInfo(param);
63 172 List<Map<String, Object>> couponInfos = couponMapper.couponInfo2(param);
64 173 String subTitle = null;
  174 + Set<String> subTitleTempSet = new HashSet<>();
  175 +
65 176 if (CollectionUtils.isNotEmpty(couponInfos)) {
66 177 for (Map<String, Object> couponInfo : couponInfos) {
  178 + String desc = (String) couponReportMap.get(couponInfo.get("type") + "_" + couponInfo.get("coupon_order"));
  179 + if (StringUtils.isNotBlank(desc)) {
  180 + /** <div class='ag-double-line'>儿童保健券(五)<div>使用人次</div></div> */
  181 + String s = desc.replace("使用人次", "")
  182 + .replace("<div class='ag-double-line'>", "")
  183 + .replace("<div>", "")
  184 + .replace("</div>", "");
  185 + if (subTitleTempSet.add(s)) {
  186 + if (StringUtils.isEmpty(subTitle)) {
  187 + subTitle = s;
  188 + } else {
  189 + subTitle += "/" + s;
  190 + }
  191 + }
  192 + couponInfo.put("type_desc", s);
  193 + }
67 194 Date useDate = (Date) couponInfo.get("use_date");
68 195 couponInfo.put("use_date", DateUtil.getyyyy_MM_dd(useDate));
69 196 /** 设置产检日期、姓名、产检孕周、产检第次、产检机构、产检医生、联系电话 */
... ... @@ -77,7 +204,8 @@
77 204 return RespBuilder.buildSuccess(pageResult);
78 205 }
79 206  
80   - private void setUsedInfo(Integer type, String usedId, String sequence_id, Date useDate, String operatorUserId, Map<String, Object> map) {
  207 + private void setUsedInfo(Integer type, String usedId, String sequence_id, Date useDate, String
  208 + operatorUserId, Map<String, Object> map) {
81 209 Date checkDate = null; /** 产检日期 */
82 210 String username = null; /** 姓名 */
83 211 String week = null; /** 产检孕周 = 产检时间 - 末次月经 */