jk-GitHub-coder 4 năm trước cách đây
mục cha
commit
b6e6cc0e48

+ 2 - 2
YijiaRestful/pom.xml

@@ -120,9 +120,9 @@
         </dependency>
         <dependency>
             <groupId>com.fasterxml.jackson.core</groupId>
-            <artifactId>jackson-annotations</artifactId>
-            <version>2.10.4</version>
+            <artifactId>jackson-databind</artifactId>
         </dependency>
+
         <dependency>
             <groupId>org.apache.httpcomponents</groupId>
             <artifactId>httpcore</artifactId>

+ 0 - 43
YijiaRestful/src/main/java/com/platform/yijia/config/WebConfig.java

@@ -1,43 +0,0 @@
-//package com.platform.yijia.config;
-//
-//import com.fasterxml.jackson.databind.DeserializationFeature;
-//import com.fasterxml.jackson.databind.ObjectMapper;
-//import com.fasterxml.jackson.databind.module.SimpleModule;
-//import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
-//import org.springframework.beans.factory.annotation.Value;
-//import org.springframework.context.annotation.Configuration;
-//import org.springframework.http.converter.HttpMessageConverter;
-//import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
-//import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
-//
-//import java.text.SimpleDateFormat;
-//import java.util.List;
-//
-///**
-// * WebMvc配置
-// * @author JK
-// */
-//@Configuration
-//public class WebConfig implements WebMvcConfigurer {
-//
-//    @Value("${spring.jackson.date-format}")
-//    private String dateFormatPattern;
-//
-//    @Override
-//    public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
-//        MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
-//        ObjectMapper objectMapper = converter.getObjectMapper();
-//        // 生成JSON时,将所有Long转换成String
-////        SimpleModule simpleModule = new SimpleModule();
-////        simpleModule.addSerializer(Long.class, ToStringSerializer.instance);
-////        simpleModule.addSerializer(Long.TYPE, ToStringSerializer.instance);
-////        objectMapper.registerModule(simpleModule);
-//        // 时间格式化
-////        objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
-//        objectMapper.setDateFormat(new SimpleDateFormat(dateFormatPattern));
-//        // 设置格式化内容
-//        converter.setObjectMapper(objectMapper);
-//        converters.add(0, converter);
-//    }
-//
-//}

+ 35 - 0
YijiaRestful/src/main/java/com/platform/yijia/config/WebMvcConfig.java

@@ -0,0 +1,35 @@
+package com.platform.yijia.config;
+
+import com.alibaba.fastjson.serializer.SerializerFeature;
+import com.alibaba.fastjson.support.config.FastJsonConfig;
+import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
+import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.http.converter.HttpMessageConverter;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+/**
+ * 添加与WebMvc相关的自定义配置
+ * @since 2020-06-11
+ */
+@Configuration
+public class WebMvcConfig implements WebMvcConfigurer {
+    /**
+     * 将FastJsonHttpMessageConverter包装成HttpMessageConverter对象,并用其参与消息转换器管道
+     * 列表HttpMessageConverters的初始化和Bean的生成,该方式会将得到的HttpMessageConverters中
+     * 的httpMessageConverter作为生成消息转换器管道列表的初始数据(从源码得知会早于默认转换器),
+     * 因此也会早于通过实现configureMessageConverters接口向消息转换器管道列表追加转换器的方式
+     *
+     * @return 最终版的Http消息转换器列表对象
+     */
+//    @Bean
+//    public HttpMessageConverters fastJsonConverters() {
+//        FastJsonHttpMessageConverter fastJsonConverter = new FastJsonHttpMessageConverter();
+//        FastJsonConfig fastJsonConfig = new FastJsonConfig();
+//        fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
+//        fastJsonConverter.setFastJsonConfig(fastJsonConfig);
+//        HttpMessageConverter<?> httpMessageConverter = fastJsonConverter;
+//        return new HttpMessageConverters(httpMessageConverter);
+//    }
+}

+ 6 - 6
YijiaRestful/src/main/java/com/platform/yijia/controller/ElectronicMembershipCardController.java

@@ -291,22 +291,22 @@ public class ElectronicMembershipCardController {
                 String cardOilsType ="";
                 switch (oilName){                               //根据油品名称存储电子卡油品类型 1.柴油 2 汽油
                     case "92#":
-                        cardOilsType ="1";
+                        cardOilsType ="2";
                         break;
                     case "95#":
-                        cardOilsType ="1";
+                        cardOilsType ="2";
                         break;
                     case "97#":
-                        cardOilsType ="1";
+                        cardOilsType ="2";
                         break;
                     case "0#":
-                        cardOilsType ="2";
+                        cardOilsType ="1";
                         break;
                     case "-10#":
-                        cardOilsType ="2";
+                        cardOilsType ="1";
                         break;
                     case "-20#":
-                        cardOilsType ="2";
+                        cardOilsType ="1";
                         break;
                 }
                 customerElectronicCard.setCardOilsType(cardOilsType);

+ 222 - 7
YijiaRestful/src/main/java/com/platform/yijia/controller/PayOrderController.java

@@ -131,24 +131,24 @@ public class PayOrderController {
             payOrder.setReceivableAmt(payOrderRequest.getReceivableAmt());                //订单应收金额
             String oilName =payOrderRequest.getOilName();
             payOrder.setOilName(oilName);                   //油品名称
-            switch (oilName){                               //根据油品名称存储油品类型 1.柴油 2 汽油
+            switch (oilName){
                 case "92#":
-                    payOrder.setOilType("1");
+                    payOrder.setOilType("2");
                     break;
                 case "95#":
-                    payOrder.setOilType("1");
+                    payOrder.setOilType("2");
                     break;
                 case "97#":
-                    payOrder.setOilType("1");
+                    payOrder.setOilType("2");
                     break;
                 case "0#":
-                    payOrder.setOilType("2");
+                    payOrder.setOilType("1");
                     break;
                 case "-10#":
-                    payOrder.setOilType("2");
+                    payOrder.setOilType("1");
                     break;
                 case "-20#":
-                    payOrder.setOilType("2");
+                    payOrder.setOilType("1");
                     break;
             }
             payOrder.setOrderType(orderType);
@@ -448,6 +448,221 @@ public class PayOrderController {
         return resultMap;
     }
 
+    public Map<String ,Object> calculateAmtNew(PayOrderRequest payOrderRequest){
+        Map<String ,Object> resultMap = new HashMap<>();
+        if(payOrderRequest.getReceivableAmt() !=null){  //应收金额
+            Double receivableAmt = payOrderRequest.getReceivableAmt();  //应收金额 用户输入的金额
+            Integer stationId = payOrderRequest.getStationId();         //油站ID
+            //String oilGun = payOrderRequest.getOilGun();                //油枪号
+            String oilName = payOrderRequest.getOilName();          //油品名称
+            String openId = payOrderRequest.getOpenId();        //用户的openId
+            String mobilePhone = payOrderRequest.getCustomerPhone();        //客户手机号
+            //获取油品价格
+            StationOilPrice stationOilPrice = new StationOilPrice();
+            stationOilPrice.setStationId(stationId);
+            stationOilPrice.setOilName(oilName);
+            StationOilPrice oilPriceInfo = stationService.getStationOilPrice(stationOilPrice);
+            String oilPrice = oilPriceInfo.getOilPrice();
+            //String stationNanme = oilPriceInfo.getStationNanme();
+            BigDecimal oilLiters = null;
+            BigDecimal discountAmt =null;
+            BigDecimal discountPrice = null;
+            BigDecimal amt = null;
+
+            //resultMap.put("stationName", stationNanme);
+            resultMap.put("oilPrice", oilPrice);        //油品价格
+            resultMap.put("receivableAmt", receivableAmt);        //应收价格
+            //该油站的优惠方式
+            String stationDiscountWay = stationService.getStationDiscountWay(stationId.toString());
+            Map<String ,Object> params = new HashMap<String, Object>();
+            params.put("stationId", stationId);
+            params.put("oilName", oilName);
+            BigDecimal receivableAmt_b = new BigDecimal(receivableAmt); //传入的应收金额
+            switch (stationDiscountWay){
+                case "1":       //1.等级直降
+                    //查询等级直降的优惠方式
+                    params.put("mobilePhone", mobilePhone);
+                    params.put("minaOpenid", openId);
+                    //查询客户等级信息
+                    List<Map<String, Object>> customerGradeInfo = customerGradeServices.getCustomerGradeInfo(params);
+                    if(customerGradeInfo != null && customerGradeInfo.size() >0){   //已存在客户等级信息
+                        //使用客户已存在的等级计算优惠
+                        oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_HALF_UP);
+                        discountAmt = oilLiters.multiply(new BigDecimal(customerGradeInfo.get(0).get("gasoilDiscountLitre").toString()));
+                        discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
+                        amt = receivableAmt_b.subtract(discountAmt);
+                        discountPrice = amt.divide(oilLiters, 2, BigDecimal.ROUND_HALF_UP);
+                        resultMap.put("discountAmt", discountAmt.doubleValue());
+                        resultMap.put("amt", amt.doubleValue());
+                        resultMap.put("oilLiters", oilLiters.doubleValue());
+                        resultMap.put("discountPrice", discountPrice.doubleValue());
+                    }else {
+                        //不存在客户等级信息时,查询油站的客户等级直降优惠(查询结果根据会员成长值条件做升序查询)
+                        List<Map> customerGradeList = customerGradeServices.getCustomerGradeList(params);
+                        //如果存在
+                        if(customerGradeList !=null && customerGradeList.size() >0){
+                            //用户第一次购买 取等级最低初始会员的优惠条件计算
+                            oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice), 2, BigDecimal.ROUND_HALF_UP);   //加油升数
+                            discountAmt = oilLiters.multiply(new BigDecimal(customerGradeList.get(0).get("gasoilDiscountLitre").toString()));
+                            discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
+                            amt = receivableAmt_b.subtract(discountAmt);
+                            discountPrice = amt.divide(oilLiters, 2, BigDecimal.ROUND_HALF_UP);
+                            resultMap.put("discountAmt", discountAmt.doubleValue());
+                            resultMap.put("amt", amt.doubleValue());
+                            resultMap.put("oilLiters", oilLiters.doubleValue());
+                            resultMap.put("discountPrice", discountPrice.doubleValue());
+                        }else {
+                            //不存在
+                            resultMap.put("discountAmt", 0);
+                            resultMap.put("amt", receivableAmt.doubleValue());
+                            oilLiters = new BigDecimal(receivableAmt).divide(new BigDecimal(oilPrice), 2, BigDecimal.ROUND_HALF_UP);
+                            resultMap.put("oilLiters", oilLiters.doubleValue());
+                            resultMap.put("discountPrice", oilPrice);
+                        }
+                    }
+                    break;
+                case "2":       //2.满减
+                    params.put("discountPlanType", "1");
+                    //营销方案
+                    List<Map> customerMarkertPlanList_1 = customerGradeServices.getCustomerMarkertPlanList(params);
+                    //有优惠规则
+                    if(customerMarkertPlanList_1 !=null && customerMarkertPlanList_1.size() >0){
+                        boolean flag = true;
+                        for (Map m : customerMarkertPlanList_1){
+                            //如果当前应收金额大于条件金额
+                            BigDecimal discountAmt_b = new BigDecimal(m.get("discountAmt").toString());   //条件金额
+                            if(receivableAmt_b.compareTo(discountAmt_b) ==1 || receivableAmt_b.compareTo(discountAmt_b) ==0){
+                                BigDecimal gasoilDiscountAmt_b = new BigDecimal(m.get("gasoilDiscountAmt").toString());   //每满多少优惠多少的金额
+                                discountAmt = receivableAmt_b.divide(discountAmt_b, 2, BigDecimal.ROUND_HALF_UP).multiply(gasoilDiscountAmt_b);  //优惠金额
+                                discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
+                                amt = receivableAmt_b.subtract(discountAmt);   //实收金额
+                                oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_HALF_UP);   //加油升数
+                                discountPrice = amt.divide(oilLiters);        //优惠价格
+                                resultMap.put("discountAmt", discountAmt.doubleValue());
+                                resultMap.put("amt", amt.doubleValue());
+                                resultMap.put("oilLiters", oilLiters.doubleValue());
+                                resultMap.put("discountPrice", discountPrice.doubleValue());
+                                flag = false;
+                                break;
+                            }
+                        }
+                        if(flag){
+                            resultMap.put("discountAmt", 0);
+                            resultMap.put("amt", receivableAmt.doubleValue());
+                            oilLiters = new BigDecimal(receivableAmt).divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_HALF_UP);
+                            resultMap.put("oilLiters", oilLiters.doubleValue());
+                            resultMap.put("discountPrice", oilPrice);
+                        }
+                    }else {
+                        //没有优惠规则
+                        resultMap.put("discountAmt", 0);
+                        resultMap.put("amt", receivableAmt.doubleValue());
+                        oilLiters = new BigDecimal(receivableAmt).divide(new BigDecimal(oilPrice), 2, BigDecimal.ROUND_HALF_UP);
+                        resultMap.put("oilLiters", oilLiters.doubleValue());
+                        resultMap.put("discountPrice", oilPrice);
+                    }
+                    break;
+                case "3":       //3.立减
+                    params.put("discountPlanType", "2");
+                    //营销方案
+                    List<Map> customerMarkertPlanList_2 = customerGradeServices.getCustomerMarkertPlanList(params);
+                    if(customerMarkertPlanList_2 !=null && customerMarkertPlanList_2.size() >0){
+                        boolean flag = true;
+                        for (Map m : customerMarkertPlanList_2){
+                            //如果当前应收金额大于条件金额
+                            BigDecimal discountAmt_b = new BigDecimal(m.get("discountAmt").toString());   //条件金额
+                            if(receivableAmt_b.compareTo(discountAmt_b) ==1 || receivableAmt_b.compareTo(discountAmt_b) ==0){
+                                BigDecimal gasoilDiscountAmt_b = new BigDecimal(m.get("gasoilDiscountAmt").toString());   //每满多少优惠多少的金额
+                                discountAmt = gasoilDiscountAmt_b;  //优惠金额
+                                amt = receivableAmt_b.subtract(gasoilDiscountAmt_b);   //实收金额
+                                oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice), 2, BigDecimal.ROUND_HALF_UP);   //加油升数
+                                discountPrice = amt.divide(oilLiters);        //优惠价格
+                                resultMap.put("discountAmt", discountAmt.doubleValue());
+                                resultMap.put("amt", amt.doubleValue());
+                                resultMap.put("oilLiters", oilLiters.doubleValue());
+                                resultMap.put("discountPrice", discountPrice.doubleValue());
+                                flag = false;
+                                break;
+                            }
+                        }
+                        if(flag){   //用户加油金额不符合优惠条件
+                            resultMap.put("discountAmt", 0);
+                            resultMap.put("amt", receivableAmt.doubleValue());
+                            oilLiters = new BigDecimal(receivableAmt).divide(new BigDecimal(oilPrice), 2, BigDecimal.ROUND_HALF_UP);
+                            resultMap.put("oilLiters", oilLiters.doubleValue());
+                            resultMap.put("discountPrice", oilPrice);
+                        }
+                    }else {
+                        //没有优惠规则
+                        resultMap.put("discountAmt", 0);
+                        resultMap.put("amt", receivableAmt.doubleValue());
+                        oilLiters = new BigDecimal(receivableAmt).divide(new BigDecimal(oilPrice), 2, BigDecimal.ROUND_HALF_UP);
+                        resultMap.put("oilLiters", oilLiters.doubleValue());
+                        resultMap.put("discountPrice", oilPrice);
+                    }
+                    break;
+                case "4":       //4.独立直降
+                    params.put("discountPlanType", "3");
+                    //营销方案
+                    List<Map> customerMarkertPlanList_3 = customerGradeServices.getCustomerMarkertPlanList(params);
+                    if(customerMarkertPlanList_3 !=null && customerMarkertPlanList_3.size() >0){
+                        boolean flag= true;
+                        for(Map m : customerMarkertPlanList_3){
+                            BigDecimal discountAmt_b = new BigDecimal(m.get("discountAmt").toString());   //条件金额
+                            BigDecimal gasoilDiscountAmt_b = new BigDecimal(m.get("gasoilDiscountAmt").toString());
+                            oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice), 2, BigDecimal.ROUND_HALF_UP);   //加油升数
+                            if(m.get("discountTerm").toString().equals("1")){   //按升数优惠
+                                if(oilLiters.compareTo(discountAmt_b) ==1 || oilLiters.compareTo(discountAmt_b) ==0){
+                                    //计算
+                                    discountAmt = oilLiters.multiply(gasoilDiscountAmt_b);
+                                    discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
+                                    amt = receivableAmt_b.subtract(discountAmt);
+                                    discountPrice = amt.divide(oilLiters, 2, BigDecimal.ROUND_HALF_UP);        //优惠价格
+                                    resultMap.put("discountAmt", discountAmt.doubleValue());
+                                    resultMap.put("amt", amt.doubleValue());
+                                    resultMap.put("oilLiters", oilLiters.doubleValue());
+                                    resultMap.put("discountPrice", discountPrice.doubleValue());
+                                    flag =false;
+                                    break;
+                                }
+                            }else if(m.get("discountTerm").toString().equals("2")){     //按金额优惠
+                                if(receivableAmt_b.compareTo(discountAmt_b) ==1 || receivableAmt_b.compareTo(discountAmt_b) ==0){
+                                    discountAmt = oilLiters.multiply(gasoilDiscountAmt_b);
+                                    discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
+                                    amt = receivableAmt_b.subtract(discountAmt);
+                                    discountPrice = amt.divide(oilLiters, 2, BigDecimal.ROUND_HALF_UP);        //优惠价格
+                                    resultMap.put("discountAmt", discountAmt.doubleValue());
+                                    resultMap.put("amt", amt.doubleValue());
+                                    resultMap.put("oilLiters", oilLiters.doubleValue());
+                                    resultMap.put("discountPrice", discountPrice.doubleValue());
+                                    flag =false;
+                                    break;
+                                }
+                            }
+                        }
+                        if(flag){
+                            resultMap.put("discountAmt", 0);
+                            resultMap.put("amt", receivableAmt.doubleValue());
+                            oilLiters = new BigDecimal(receivableAmt).divide(new BigDecimal(oilPrice), 2, BigDecimal.ROUND_HALF_UP);
+                            resultMap.put("oilLiters", oilLiters.doubleValue());
+                            resultMap.put("discountPrice", oilPrice);
+                        }
+                    }else {
+                        //没有优惠规则
+                        resultMap.put("discountAmt", 0);
+                        resultMap.put("amt", receivableAmt.doubleValue());
+                        oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice), 2, BigDecimal.ROUND_HALF_UP);
+                        resultMap.put("oilLiters", oilLiters.doubleValue());
+                        resultMap.put("discountPrice", oilPrice);
+                    }
+                    break;
+            }
+
+            //resultData = ResultData.success(resultMap);
+        }
+        return resultMap;
+    }
+
     /**
      * 计算消费生成积分
      */

+ 240 - 1
YijiaRestful/src/main/java/com/platform/yijia/controller/PosMachineController.java

@@ -11,8 +11,10 @@ import com.platform.yijia.service.PayOrderService;
 import com.platform.yijia.service.PosMachineService;
 import com.platform.yijia.utils.CodeMsg;
 import com.platform.yijia.utils.ResultData;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
 import org.springframework.stereotype.Controller;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
@@ -102,7 +104,7 @@ public class PosMachineController {
         payOrder.setStationId(request.getStationId());
         payOrder.setBeginTime(request.getBeginTime());
         payOrder.setEndTime(request.getEndTime());
-        payOrder.setPayType(payOrder.getPayType());
+        payOrder.setPayType(request.getPayType());
         payOrder.setStatus("1");
         List<PayOrder> payOrders = payOrderService.selectPayOrderList(payOrder);
         resultData = ResultData.success(payOrders);
@@ -270,6 +272,7 @@ public class PosMachineController {
      */
     @RequestMapping (value = "/posClassStructure", method = RequestMethod.POST)
     @ResponseBody
+    @Transactional
     public Map posClassStructure (@RequestBody StationClassStructure stationClassStructure) throws ParseException {
         Map map = new HashMap();
         //获取当前班结油站
@@ -588,5 +591,241 @@ public class PosMachineController {
     }
 
 
+    /*
+     * pos机班结
+     * @param stationClassStructure
+     * @return
+     * @throws ParseException
+     */
+    @RequestMapping (value = "/posClassStructureNew", method = RequestMethod.POST)
+    @ResponseBody
+    @Transactional
+    public Map posClassStructureNew (@RequestBody StationClassStructure stationClassStructure) throws ParseException {
+        Map map = new HashMap();
+        //获取当前班结油站
+        Integer stationId=stationClassStructure.getStationId();
+        String username = stationClassStructure.getClassStructureMan();
+        //根据油站查询出油站是否班结过,班结过就需要查询上次班结的时间
+        StationClassStructure classes =new StationClassStructure();
+        classes.setStationId(stationId);
+        //查询出上次班结,最后一条数据
+        StationClassStructure sss =stationClassStructureService.selectStationClassStructureMax(classes);
+        String beginTime="";
+        //当前时间
+        Date date= new Date();
+        StationClassStructure classesStructure =new StationClassStructure();
+        classesStructure.setStationId(stationId);
+        DateFormat dFormat = new SimpleDateFormat("yyyyMMdd");
+        String no=dFormat.format(date);
+        classesStructure.setLikeClassStructureNo(no);
+        //查询班结信息中本日班结次数
+        StationClassStructure structure =stationClassStructureService.selectDistnctClassStructure(classesStructure);
+        if(structure!=null){
+            if(structure.getNum()==0){
+                no = no + "0"+1;
+            }else{
+                int num  = structure.getNum()+1;
+                if(num>0 && num<10){
+                    no = no + "0"+num;
+                }else{
+                    no = no +""+ num;
+                }
+            }
+        }
+        int i=0;
+        DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        PayOrder order=new PayOrder();
+        order.setStationId(stationId);
+        order.setStatus("1");
+        PayOrder payOrderInfoMin = new PayOrder();
+        if(sss!=null){
+            //获取上次班结时间
+            beginTime= dateFormat.format(sss.getClassStructureDate());
+            order.setBeginTime(beginTime);
+            order.setEndTime( dateFormat.format(date));
+        }else{
+            //获取第一个最早时间的订单
+            payOrderInfoMin = payOrderService.getPayOrderInfoMin(order);
+            //初次班结 班结时间默认为当前时间,班结人username
+            //根据班结时间查询订单
+            //没有班结过:第一次班结获取第一个订单的下单时间
+            beginTime =dateFormat.format(payOrderInfoMin.getPayDate());
+            order.setBeginTime(beginTime);
+            order.setEndTime(dateFormat.format(date));
+        }
+        List<PayOrder> orderList = payOrderService.selectPayOrderList(order);
+        //批量插入要班结的订单
+        List<StationClassStructure>  stationClassStructureList= new ArrayList<>();
+        for (PayOrder  payOrder: orderList){
+            StationClassStructure stationclass =new StationClassStructure();
+            stationclass.setClassStartDate(payOrderInfoMin.getPayDate());
+            stationclass.setStationId(payOrder.getStationId());
+            stationclass.setStationName(payOrder.getStationName());
+            stationclass.setClassStructureMan(username);
+            stationclass.setClassStructureDate(date);
+            stationclass.setClassStructureNo(no);
+            stationclass.setOrderNo(payOrder.getOrderNo());
+            stationclass.setOilGun(payOrder.getOilGun());
+            stationclass.setOilName(payOrder.getOilName());
+            stationclass.setConsumerId(payOrder.getConsumerId());
+            stationclass.setConsumer(payOrder.getConsumer());
+            stationclass.setAmt(new BigDecimal(payOrder.getAmt()));
+            if(payOrder.getReceivableAmt()!=null){
+                stationclass.setReceivableAmt(new BigDecimal(payOrder.getReceivableAmt()));
+            }else{
+                stationclass.setReceivableAmt(BigDecimal.valueOf(0));
+            }
+            if(payOrder.getReceivedAmt()!=null){
+                stationclass.setReceivedAmt(new BigDecimal(payOrder.getReceivedAmt()));
+            }else{
+                stationclass.setReceivedAmt(BigDecimal.valueOf(0));
+            }
+            if(payOrder.getDiscountAmt()!=null){
+                stationclass.setDiscountAmt(new BigDecimal(payOrder.getDiscountAmt()));
+            }else{
+                stationclass.setDiscountAmt(BigDecimal.valueOf(0));
+            }
+            if(payOrder.getDiscountCouponAmt()!=null){
+                stationclass.setDiscountCouponAmt(new BigDecimal(payOrder.getDiscountCouponAmt()));
+            }else{
+                stationclass.setDiscountCouponAmt(BigDecimal.valueOf(0));
+            }
+            if(payOrder.getWxAmt()!=null){
+                stationclass.setWxAmt(new BigDecimal(payOrder.getWxAmt()));
+            }else{
+                stationclass.setWxAmt(BigDecimal.valueOf(0));
+            }
+            if(payOrder.getZfbAmt()!=null){
+                stationclass.setZfbAmt(new BigDecimal(payOrder.getZfbAmt()));
+            }else{
+                stationclass.setZfbAmt(BigDecimal.valueOf(0));
+            }
+            if(payOrder.getPosAmt()!=null){
+                stationclass.setPosAmt(new BigDecimal(payOrder.getPosAmt()));
+            }else{
+                stationclass.setPosAmt(BigDecimal.valueOf(0));
+            }
+            if(payOrder.getXjAmt()!=null){
+                stationclass.setXjAmt(new BigDecimal(payOrder.getXjAmt()));
+            }else{
+                stationclass.setXjAmt(BigDecimal.valueOf(0));
+            }
+            if(payOrder.getDidiAppAmt()!=null){
+                stationclass.setDidiAppAmt(new BigDecimal(payOrder.getDidiAppAmt()));
+            }else{
+                stationclass.setDidiAppAmt(BigDecimal.valueOf(0));
+            }
+            if(payOrder.getTyAppAmt()!=null){
+                stationclass.setDidiAppAmt(new BigDecimal(payOrder.getTyAppAmt()));
+            }else{
+                stationclass.setDidiAppAmt(BigDecimal.valueOf(0));
+            }
+            if(payOrder.getOtherAmt()!=null){
+                stationclass.setOtherAmt(new BigDecimal(payOrder.getOtherAmt()));
+            }else{
+                stationclass.setOtherAmt(BigDecimal.valueOf(0));
+            }
+            if(payOrder.getDzkAmt()!=null){
+                stationclass.setDzkAmt(new BigDecimal(payOrder.getDzkAmt()));
+            }else{
+                stationclass.setDzkAmt(BigDecimal.valueOf(0));
+            }
+            if(payOrder.getMemberAmt()!=null){
+                stationclass.setMemberAmt(new BigDecimal(payOrder.getMemberAmt()));
+            }else{
+                stationclass.setMemberAmt(BigDecimal.valueOf(0));
+            }
+            if(payOrder.getOrderLiters() !=null){
+                stationclass.setOrderLiters(new BigDecimal(payOrder.getOrderLiters()));
+            }else {
+                stationclass.setOrderLiters(new BigDecimal(0));
+            }
+            stationclass.setPayWay(payOrder.getPayWay());
+            stationclass.setPayType(payOrder.getPayType());
+            stationclass.setPayDate(payOrder.getPayDate());
+            stationclass.setOilPersonnel(payOrder.getOilPersonnel());
+            stationclass.setOrderType(payOrder.getOrderType());
+            if(payOrder.getPrintCount()!=null){
+                stationclass.setPrintNum(payOrder.getPrintCount());
+            }else{
+                stationclass.setPrintNum(Integer.valueOf("0"));
+            }
+            stationClassStructureList.add(stationclass);
+        }
+        int insertSize = stationClassStructureService.insertStationClassStructureBatch(stationClassStructureList);
+        if(insertSize == orderList.size()){
+            StationClassStructure scs =new StationClassStructure();
+            scs.setClassStructureNo(no);
+            //汇总班结数据将汇总的数据插入到汇总数据中
+            StationClassStructure stationclass = stationClassStructureService.selectSummyClassStructure(scs);
+            if(stationclass!=null){
+                StationClassesSummary stationClassesSummary =new StationClassesSummary();
+                stationClassesSummary.setClassesNo(stationclass.getClassStructureNo());
+                if(stationclass.getClassStartDate()!=null){
+                    stationClassesSummary.setStartDate(stationclass.getClassStartDate());
+                }
+                if(stationclass.getClassStructureDate()!=null){
+                    stationClassesSummary.setEndDate(stationclass.getClassStructureDate());
+                }
+                stationClassesSummary.setStationName(stationclass.getStationName());
+                if(stationclass.getStationId()!=null){
+                    stationClassesSummary.setStationId(stationclass.getStationId());
+                }
+                if(stationclass.getNum()!=null){
+                    stationClassesSummary.setOrderNum(Integer.valueOf(stationclass.getNum()));
+                }
+                if(stationclass.getPrintNum()!=null){
+                    stationClassesSummary.setPrintNum(stationclass.getPrintNum());
+                }else {
+                    stationClassesSummary.setPrintNum(Integer.valueOf(0));
+                }
+                if(stationclass.getOrderLiters()!=null){
+                    stationClassesSummary.setSaleLiters(stationclass.getOrderLiters());
+                }
+                if(stationclass.getAmt()!=null){
+                    stationClassesSummary.setSaleAmt(stationclass.getAmt());
+                }
+                if(stationclass.getDzkAmt()!=null){
+                    stationClassesSummary.setDzkAmt(stationclass.getDzkAmt());
+                }else{
+                    stationClassesSummary.setDzkAmt(BigDecimal.valueOf(0));
+                }
+                if(stationclass.getZfbAmt()!=null){
+                    stationClassesSummary.setZfbAmt(stationclass.getZfbAmt());
+                }else{
+                    stationClassesSummary.setZfbAmt(BigDecimal.valueOf(0));
+                }
+
+                if(stationclass.getWxAmt()!=null){
+                    stationClassesSummary.setWxAmt(stationclass.getWxAmt());
+                }else{
+                    stationClassesSummary.setWxAmt(BigDecimal.valueOf(0));
+                }
+                if(stationclass.getAmt() !=null){
+                    stationClassesSummary.setAmt(stationclass.getAmt());
+                }else {
+                    stationClassesSummary.setAmt(BigDecimal.valueOf(0));
+                }
+                if(stationclass.getDiscountAmt() !=null){
+                    stationClassesSummary.setDiscountAmt(stationclass.getDiscountAmt());
+                }else {
+                    stationClassesSummary.setDiscountAmt(BigDecimal.valueOf(0));
+                }
+                stationClassesSummary.setClassesMan(stationclass.getClassStructureMan());
+                i=stationClassesSummaryService.insertStationClassesSummary(stationClassesSummary);
+                if(i==1){
+                    map.put("retCode","0");
+                    map.put("msg","班结成功");
+                }
+            }else{
+                map.put("retCode","-1");
+                map.put("msg","已班结");
+            }
+        }else {
+            map.put("retCode","-2");
+            map.put("msg","班结失败");
+        }
+        return map;
+    }
 
 }

+ 5 - 0
YijiaRestful/src/main/java/com/platform/yijia/dao/StationClassStructureMapper.java

@@ -1,6 +1,8 @@
 package com.platform.yijia.dao;
 
+import com.platform.yijia.pojo.PayOrder;
 import com.platform.yijia.pojo.StationClassStructure;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 import java.util.Map;
@@ -14,6 +16,9 @@ import java.util.Map;
 public interface StationClassStructureMapper
 {
 
+    //批量插入
+    int insertStationClassStructureBatch(@Param("stationClassStructureList") List<StationClassStructure>  stationClassStructureList);
+
     //查询班结数据总和
     List<Map<String, String>> selectClassStructureSum(StationClassStructure stationClassStructure);
 

+ 8 - 0
YijiaRestful/src/main/java/com/platform/yijia/pojo/PayOrder.java

@@ -1,5 +1,6 @@
 package com.platform.yijia.pojo;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 
 import java.util.Date;
@@ -18,8 +19,10 @@ public class PayOrder {
     private String orderLiters;
     private String payType;
     private String payWay;
+    @JsonFormat(pattern="yyyy/MM/dd HH:mm:ss")
     private Date payDate;
     private String oilPersonnel;
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
     private Date createdDate;
     private String orderType;
     private String oilPirce;
@@ -50,6 +53,11 @@ public class PayOrder {
     private String endTime;
     private String groupBy;
 
+    private String classStructureNo;
+    private String classStartDate;
+    private String classStructureDate;
+    private String classStructureMan;
+
     private AppUserInfo appUserInfo;
 
 }

+ 5 - 0
YijiaRestful/src/main/java/com/platform/yijia/service/IStationClassStructureService.java

@@ -1,6 +1,8 @@
 package com.platform.yijia.service;
 
+import com.platform.yijia.pojo.PayOrder;
 import com.platform.yijia.pojo.StationClassStructure;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 import java.util.Map;
@@ -14,6 +16,9 @@ import java.util.Map;
 public interface IStationClassStructureService
 {
 
+    //批量插入
+    int insertStationClassStructureBatch(@Param("stationClassStructureList") List<StationClassStructure>  stationClassStructureList);
+
     //获取要班结的总和信息
     List<Map<String, String>> selectClassStructureSum(StationClassStructure stationClassStructure);
 

+ 8 - 0
YijiaRestful/src/main/java/com/platform/yijia/service/impl/StationClassStructureServiceImpl.java

@@ -4,8 +4,10 @@ import java.util.List;
 import java.util.Map;
 
 import com.platform.yijia.dao.StationClassStructureMapper;
+import com.platform.yijia.pojo.PayOrder;
 import com.platform.yijia.pojo.StationClassStructure;
 import com.platform.yijia.service.IStationClassStructureService;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -23,6 +25,12 @@ public class StationClassStructureServiceImpl implements IStationClassStructureS
     @Resource
     private StationClassStructureMapper stationClassStructureMapper;
 
+    //批量插入
+    @Override
+    public int insertStationClassStructureBatch(@Param("stationClassStructureList") List<StationClassStructure>  stationClassStructureList) {
+        return stationClassStructureMapper.insertStationClassStructureBatch(stationClassStructureList);
+    }
+
     //获取要班结的总和信息
     @Override
     public List<Map<String, String>> selectClassStructureSum(StationClassStructure stationClassStructure) {

+ 8 - 0
YijiaRestful/src/main/resources/mapper/CustomerGradeMapper.xml

@@ -25,6 +25,14 @@
             discount_term               AS discountTerm,
             discount_amt                AS discountAmt,
             gasoil_discount_amt         AS gasoilDiscountAmt,
+            activity_day_setting        AS activityDaySetting,
+            activity_day_type           AS activityDayType,
+            activity_day_week           AS activityDayWeek,
+            activity_day_month          AS activityDayMonth,
+            activity_day_date           AS activityDayDate,
+            activity_day_time           AS activityDayTime,
+            activity_day_distnct        AS activityDayDistnct,
+            dieseloil_discount_amt      AS dieseloilDiscountAmt,
             station_id                  AS stationId,
             vip_discounty_plus          AS vipDiscountyPlus,
             coupon_plus                 AS couponPlus,

+ 3 - 2
YijiaRestful/src/main/resources/mapper/ElectronicMembershipCardMapper.xml

@@ -375,6 +375,7 @@
             pay_type,
             card_oils_type,
             amt,
+            balance,
             create_time,
             station_id,
             station_name,
@@ -395,7 +396,7 @@
     <!--全部-->
     <sql id="Base_Column_List">
         SELECT
-            union_id, station_id, amt, present_amt, usage_type, create_time, `status`
+            union_id, station_id, amt, present_amt, balance, card_oils_type, usage_type, create_time, `status`
         FROM customer_card_record_recharge
         <where>
             status ="1"
@@ -408,7 +409,7 @@
         </where>
         UNION ALL
         SELECT
-            union_id, station_id, amt, "0" AS present_amt, usage_type,create_time,  `status`
+            union_id, station_id, amt, "0" AS present_amt, balance, card_oils_type, usage_type,create_time,  `status`
         FROM customer_card_record_consumption
         <where>
             status ="1"

+ 13 - 3
YijiaRestful/src/main/resources/mapper/PayOrderMapper.xml

@@ -33,7 +33,7 @@
     <result column="didi_app_amt"           jdbcType="DOUBLE"    property="didiAppAmt" />
     <result column="ty_app_amt"             jdbcType="DOUBLE"    property="tyAppAmt" />
     <result column="other_amt"              jdbcType="DOUBLE"    property="otherAmt" />
-    <result column="dzk_amt"                jdbcType="TIMESTAMP" property="dzkAmt" />
+    <result column="dzk_amt"                jdbcType="DOUBLE"    property="dzkAmt" />
     <result column="score"                  jdbcType="INTEGER"   property="score" />
     <result column="member_no"              jdbcType="VARCHAR"   property="memberNo" />
     <result column="member_amt"             jdbcType="DOUBLE"    property="memberAmt" />
@@ -106,7 +106,14 @@
       </foreach>
     </where>
   </sql>
-  <sql id="Base_Column_List">
+  <sql id="Base_Column_List_DateFormat">
+    order_id, order_no, oil_gun, oil_name, oil_pirce, consumer_id, consumer, amt, station_id, status,
+    order_liters, DATE_FORMAT(pay_type, '%Y-%m-%d %H:%i:%s'), pay_way, pay_date, oil_personnel, DATE_FORMAT(created_date, '%Y-%m-%d %H:%i:%s'), order_type, station_name,
+    receivable_amt, received_amt, discount_amt, discount_coupon_amt, discount_coupon, wx_amt,
+    zfb_amt, pos_amt, xj_amt, didi_app_amt, ty_app_amt, other_amt, dzk_amt, score, member_no, member_amt,
+    print_count, car_no, customer_phone, customer_grade, oil_type
+  </sql>
+    <sql id="Base_Column_List">
     order_id, order_no, oil_gun, oil_name, oil_pirce, consumer_id, consumer, amt, station_id, status,
     order_liters, pay_type, pay_way, pay_date, oil_personnel, created_date, order_type, station_name,
     receivable_amt, received_amt, discount_amt, discount_coupon_amt, discount_coupon, wx_amt,
@@ -211,7 +218,7 @@
   <!--查询班结时间内订单-->
   <select id="selectPayOrderList" parameterType="com.platform.yijia.pojo.PayOrder" resultMap="BaseResultMap">
     SELECT
-        <include refid="Base_Column_List"/>
+        <include refid="Base_Column_List_DateFormat"/>
     FROM
         pay_order
     <where>
@@ -1030,6 +1037,9 @@
       <if test="grade !=null ">
         grade = #{grade},
       </if>
+        <if test="unionId !=null ">
+            union_id = #{unionId},
+        </if>
     </set>
     <where>
       <if test="stationId != null and stationId !='' ">

+ 93 - 10
YijiaRestful/src/main/resources/mapper/StationClassStructureMapper.xml

@@ -295,17 +295,100 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </select>
 
     <!--批量插入-->
-<!--    <insert id="insertStationClassStructureAll" >-->
-<!--        INSERT INTO-->
-<!--            station_class_structure-->
-<!--        (<include refid="selectStationClassStructureVo"/>)-->
-<!--        VALUES-->
-<!--        <foreach collection="list" item="item" index="index" separator=",">-->
+    <insert id="insertStationClassStructureBatch" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id">
 
-<!--        </foreach>-->
-
-
-<!--    </insert>-->
+        <foreach collection="stationClassStructureList" item="item" index="index" separator=",">
+            INSERT INTO
+            station_class_structure
+            <trim prefix="(" suffix=")" suffixOverrides=",">
+                <if test="item.orderNo != null">order_no,</if>
+                <if test="item.stationId != null">station_id,</if>
+                <if test="item.stationName != null">station_name,</if>
+                <if test="item.oilGun != null">oil_gun,</if>
+                <if test="item.oilName != null">oil_name,</if>
+                <if test="item.oilPirce != null">oil_pirce,</if>
+                <if test="item.oilType != null">oil_type,</if>
+                <if test="item.consumerId != null">consumer_id,</if>
+                <if test="item.consumer != null">consumer,</if>
+                <if test="item.amt != null">amt,</if>
+                <if test="item.orderLiters != null">order_liters,</if>
+                <if test="item.payType != null">pay_type,</if>
+                <if test="item.payWay != null">pay_way,</if>
+                <if test="item.payDate != null">pay_date,</if>
+                <if test="item.oilPersonnel != null">oil_personnel,</if>
+                <if test="item.orderType != null">order_type,</if>
+                <if test="item.printNum != null">print_num,</if>
+                <if test="item.classStructureNo != null">class_structure_no,</if>
+                <if test="item.classStartDate != null">class_start_date,</if>
+                <if test="item.classStructureDate != null">class_structure_date,</if>
+                <if test="item.classStructureMan != null">class_structure_man,</if>
+                <if test="item.oils != null">oils,</if>
+                <if test="item.receivableAmt != null">receivable_amt,</if>
+                <if test="item.receivedAmt != null">received_amt,</if>
+                <if test="item.discountAmt != null">discount_amt,</if>
+                <if test="item.discountCouponAmt != null">discount_coupon_amt,</if>
+                <if test="item.discountCoupon != null">discount_coupon,</if>
+                <if test="item.wxAmt != null">wx_amt,</if>
+                <if test="item.zfbAmt != null">zfb_amt,</if>
+                <if test="item.posAmt != null">pos_amt,</if>
+                <if test="item.xjAmt != null">xj_amt,</if>
+                <if test="item.didiAppAmt != null">didi_app_amt,</if>
+                <if test="item.tyAppAmt != null">ty_app_amt,</if>
+                <if test="item.otherAmt != null">other_amt,</if>
+                <if test="item.dzkAmt != null">dzk_amt,</if>
+                <if test="item.score != null">score,</if>
+                <if test="item.memberNo != null">member_no,</if>
+                <if test="item.memberAmt != null">member_amt,</if>
+                <if test="item.carNo != null">car_no,</if>
+                <if test="item.customerPhone != null">customer_phone,</if>
+                <if test="item.customerGrade != null">customer_grade,</if>
+            </trim>
+            VALUES
+            <trim prefix="values (" suffix=")" suffixOverrides=",">
+                <if test="item.orderNo != null">#{item.orderNo},</if>
+                <if test="item.stationId != null">#{item.stationId},</if>
+                <if test="item.stationName != null">#{item.stationName},</if>
+                <if test="item.oilGun != null">#{item.oilGun},</if>
+                <if test="item.oilName != null">#{item.oilName},</if>
+                <if test="item.oilPirce != null">#{item.oilPirce},</if>
+                <if test="item.oilType != null">#{item.oilType},</if>
+                <if test="item.consumerId != null">#{item.consumerId},</if>
+                <if test="item.consumer != null">#{item.consumer},</if>
+                <if test="item.amt != null">#{item.amt},</if>
+                <if test="item.orderLiters != null">#{item.orderLiters},</if>
+                <if test="item.payType != null">#{item.payType},</if>
+                <if test="item.payWay != null">#{item.payWay},</if>
+                <if test="item.payDate != null">#{item.payDate},</if>
+                <if test="item.oilPersonnel != null">#{item.oilPersonnel},</if>
+                <if test="item.orderType != null">#{item.orderType},</if>
+                <if test="item.printNum != null">#{item.printNum},</if>
+                <if test="item.classStructureNo != null">#{item.classStructureNo},</if>
+                <if test="item.classStartDate != null">#{item.classStartDate},</if>
+                <if test="item.classStructureDate != null">#{item.classStructureDate},</if>
+                <if test="item.classStructureMan != null">#{item.classStructureMan},</if>
+                <if test="item.oils != null">#{item.oils},</if>
+                <if test="item.receivableAmt != null">#{item.receivableAmt},</if>
+                <if test="item.receivedAmt != null">#{item.receivedAmt},</if>
+                <if test="item.discountAmt != null">#{item.discountAmt},</if>
+                <if test="item.discountCouponAmt != null">#{item.discountCouponAmt},</if>
+                <if test="item.discountCoupon != null">#{item.discountCoupon},</if>
+                <if test="item.wxAmt != null">#{item.wxAmt},</if>
+                <if test="item.zfbAmt != null">#{item.zfbAmt},</if>
+                <if test="item.posAmt != null">#{item.posAmt},</if>
+                <if test="item.xjAmt != null">#{item.xjAmt},</if>
+                <if test="item.didiAppAmt != null">#{item.didiAppAmt},</if>
+                <if test="item.tyAppAmt != null">#{item.tyAppAmt},</if>
+                <if test="item.otherAmt != null">#{item.otherAmt},</if>
+                <if test="item.dzkAmt != null">#{item.dzkAmt},</if>
+                <if test="item.score != null">#{item.score},</if>
+                <if test="item.memberNo != null">#{item.memberNo},</if>
+                <if test="item.memberAmt != null">#{item.memberAmt},</if>
+                <if test="item.carNo != null">#{item.carNo},</if>
+                <if test="item.customerPhone != null">#{item.customerPhone},</if>
+                <if test="item.customerGrade != null">#{item.customerGrade},</if>
+            </trim>
+        </foreach>
+    </insert>
 
 
     <insert id="insertStationClassStructure" parameterType="com.platform.yijia.pojo.StationClassStructure" useGeneratedKeys="true" keyProperty="id">