Bladeren bron

1.对比订单、税单增加日期选择
2.增加查询oms回执接口
3.kmall2eccs相关实体类

zcb 4 jaren geleden
bovenliggende
commit
bff81f69e2
77 gewijzigde bestanden met toevoegingen van 4464 en 167 verwijderingen
  1. 30 0
      kmall-admin/src/main/java/com/kmall/admin/controller/OrderController.java
  2. 107 0
      kmall-admin/src/main/java/com/kmall/admin/controller/compared/ImportPayOrderRecordController.java
  3. 107 0
      kmall-admin/src/main/java/com/kmall/admin/controller/compared/ImportTaxOrderRecordController.java
  4. 16 3
      kmall-admin/src/main/java/com/kmall/admin/controller/compared/OrderComparedErrorController.java
  5. 40 4
      kmall-admin/src/main/java/com/kmall/admin/controller/compared/PayOrderInfoController.java
  6. 142 0
      kmall-admin/src/main/java/com/kmall/admin/controller/compared/TaxComparedErrorController.java
  7. 141 0
      kmall-admin/src/main/java/com/kmall/admin/controller/compared/TaxInfoController.java
  8. 102 0
      kmall-admin/src/main/java/com/kmall/admin/controller/kmall2eccs/KtoEccsController.java
  9. 2 0
      kmall-admin/src/main/java/com/kmall/admin/dao/OrderDao.java
  10. 2 2
      kmall-admin/src/main/java/com/kmall/admin/dao/OrderGoodsDao.java
  11. 16 0
      kmall-admin/src/main/java/com/kmall/admin/dao/compared/ImportPayOrderRecordDao.java
  12. 16 0
      kmall-admin/src/main/java/com/kmall/admin/dao/compared/ImportTaxOrderRecordDao.java
  13. 3 1
      kmall-admin/src/main/java/com/kmall/admin/dao/compared/PayOrderInfoDao.java
  14. 16 0
      kmall-admin/src/main/java/com/kmall/admin/dao/compared/TaxComparedErrorDao.java
  15. 19 0
      kmall-admin/src/main/java/com/kmall/admin/dao/compared/TaxInfoDao.java
  16. 16 0
      kmall-admin/src/main/java/com/kmall/admin/dao/kmall2eccs/KtoEccsDao.java
  17. 30 0
      kmall-admin/src/main/java/com/kmall/admin/dto/OrderGoodsDto.java
  18. 30 0
      kmall-admin/src/main/java/com/kmall/admin/dto/QueryOrderDto.java
  19. 43 0
      kmall-admin/src/main/java/com/kmall/admin/dto/TaxOrderDto.java
  20. 1 1
      kmall-admin/src/main/java/com/kmall/admin/entity/ProductStoreRelaEntity.java
  21. 154 0
      kmall-admin/src/main/java/com/kmall/admin/entity/compared/ImportPayOrderRecordEntity.java
  22. 154 0
      kmall-admin/src/main/java/com/kmall/admin/entity/compared/ImportTaxOrderRecordEntity.java
  23. 104 0
      kmall-admin/src/main/java/com/kmall/admin/entity/compared/TaxComparedErrorEntity.java
  24. 155 0
      kmall-admin/src/main/java/com/kmall/admin/entity/compared/TaxInfoEntity.java
  25. 188 0
      kmall-admin/src/main/java/com/kmall/admin/entity/kmall2eccs/KtoEccsEntity.java
  26. 17 9
      kmall-admin/src/main/java/com/kmall/admin/service/OrderGoodsService.java
  27. 12 1
      kmall-admin/src/main/java/com/kmall/admin/service/OrderService.java
  28. 73 0
      kmall-admin/src/main/java/com/kmall/admin/service/compared/ImportPayOrderRecordService.java
  29. 73 0
      kmall-admin/src/main/java/com/kmall/admin/service/compared/ImportTaxOrderRecordService.java
  30. 2 1
      kmall-admin/src/main/java/com/kmall/admin/service/compared/OrderComparedErrorService.java
  31. 2 1
      kmall-admin/src/main/java/com/kmall/admin/service/compared/PayOrderInfoService.java
  32. 80 0
      kmall-admin/src/main/java/com/kmall/admin/service/compared/TaxComparedErrorService.java
  33. 83 0
      kmall-admin/src/main/java/com/kmall/admin/service/compared/TaxInfoService.java
  34. 3 1
      kmall-admin/src/main/java/com/kmall/admin/service/impl/GoodsServiceImpl.java
  35. 20 8
      kmall-admin/src/main/java/com/kmall/admin/service/impl/OrderGoodsServiceImpl.java
  36. 122 46
      kmall-admin/src/main/java/com/kmall/admin/service/impl/OrderServiceImpl.java
  37. 59 0
      kmall-admin/src/main/java/com/kmall/admin/service/impl/compared/ImportPayOrderRecordServiceImpl.java
  38. 59 0
      kmall-admin/src/main/java/com/kmall/admin/service/impl/compared/ImportTaxOrderRecordServiceImpl.java
  39. 79 24
      kmall-admin/src/main/java/com/kmall/admin/service/impl/compared/OrderComparedErrorServiceImpl.java
  40. 3 2
      kmall-admin/src/main/java/com/kmall/admin/service/impl/compared/PayOrderInfoServiceImpl.java
  41. 166 0
      kmall-admin/src/main/java/com/kmall/admin/service/impl/compared/TaxComparedErrorServiceImpl.java
  42. 112 0
      kmall-admin/src/main/java/com/kmall/admin/service/impl/compared/TaxInfoServiceImpl.java
  43. 59 0
      kmall-admin/src/main/java/com/kmall/admin/service/impl/kmall2eccs/KtoEccsServiceImpl.java
  44. 73 0
      kmall-admin/src/main/java/com/kmall/admin/service/kmall2eccs/KtoEccsService.java
  45. 1 1
      kmall-admin/src/main/java/com/kmall/admin/utils/CalculateTax.java
  46. 42 8
      kmall-admin/src/main/java/com/kmall/admin/websocket/WebSocketServer.java
  47. 19 0
      kmall-admin/src/main/resources/XmlTemplate/TaxOrderDtoList.xml
  48. 13 0
      kmall-admin/src/main/resources/mybatis/mapper/OrderDao.xml
  49. 16 0
      kmall-admin/src/main/resources/mybatis/mapper/OrderGoodsDao.xml
  50. 111 0
      kmall-admin/src/main/resources/mybatis/mapper/compared/ImportPayOrderRecordDao.xml
  51. 111 0
      kmall-admin/src/main/resources/mybatis/mapper/compared/ImportTaxOrderRecordDao.xml
  52. 5 2
      kmall-admin/src/main/resources/mybatis/mapper/compared/OrderComparedErrorDao.xml
  53. 6 5
      kmall-admin/src/main/resources/mybatis/mapper/compared/PayOrderInfoDao.xml
  54. 116 0
      kmall-admin/src/main/resources/mybatis/mapper/compared/TaxComparedErrorDao.xml
  55. 141 0
      kmall-admin/src/main/resources/mybatis/mapper/compared/TaxInfoDao.xml
  56. 123 0
      kmall-admin/src/main/resources/mybatis/mapper/kmall2eccs/KtoEccsDao.xml
  57. 69 0
      kmall-admin/src/main/webapp/WEB-INF/page/compared/importpayorderrecord.html
  58. 69 0
      kmall-admin/src/main/webapp/WEB-INF/page/compared/importtaxorderrecord.html
  59. 2 2
      kmall-admin/src/main/webapp/WEB-INF/page/compared/ordercomparederror.html
  60. 4 1
      kmall-admin/src/main/webapp/WEB-INF/page/compared/payorderinfo.html
  61. 60 0
      kmall-admin/src/main/webapp/WEB-INF/page/compared/taxcomparederror.html
  62. 71 0
      kmall-admin/src/main/webapp/WEB-INF/page/compared/taxinfo.html
  63. 6 2
      kmall-admin/src/main/webapp/WEB-INF/page/sale/sale.html
  64. 145 0
      kmall-admin/src/main/webapp/js/compared/importpayorderrecord.js
  65. 145 0
      kmall-admin/src/main/webapp/js/compared/importtaxorderrecord.js
  66. 7 6
      kmall-admin/src/main/webapp/js/compared/ordercomparederror.js
  67. 47 9
      kmall-admin/src/main/webapp/js/compared/payorderinfo.js
  68. 142 0
      kmall-admin/src/main/webapp/js/compared/taxcomparederror.js
  69. 175 0
      kmall-admin/src/main/webapp/js/compared/taxinfo.js
  70. 1 1
      kmall-admin/src/main/webapp/js/pcd/hbk6zzez.js
  71. 58 22
      kmall-admin/src/main/webapp/js/sale/sale.js
  72. 4 1
      kmall-common/src/main/java/com/kmall/common/constant/JxlsXmlTemplateName.java
  73. 1 1
      kmall-manager/src/main/java/com/kmall/manager/manager/alipay/AliPayUtil.java
  74. 10 0
      kmall-manager/src/main/java/com/kmall/manager/manager/merch/OmsMerchProperties.java
  75. 2 1
      kmall-manager/src/main/resources/conf/oms-merch.properties
  76. 10 1
      kmall-manager/src/main/resources/conf/redis.properties
  77. 1 0
      kmall-manager/src/main/resources/spring/spring-oms-merch.xml

+ 30 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/OrderController.java

@@ -1,5 +1,7 @@
 package com.kmall.admin.controller;
 
+import com.alibaba.fastjson.JSON;
+import com.google.gson.Gson;
 import com.kmall.admin.dto.OrderExpressDto;
 import com.kmall.admin.dto.SystemFormatDto;
 import com.kmall.admin.entity.*;
@@ -8,6 +10,8 @@ import com.kmall.admin.service.*;
 import com.kmall.admin.utils.CalculateTax;
 import com.kmall.admin.utils.ParamUtils;
 import com.kmall.admin.utils.ShiroUtils;
+import com.kmall.admin.utils.data.response.ResponseMessage;
+import com.kmall.admin.utils.oms.OmsSign;
 import com.kmall.common.constant.Dict;
 import com.kmall.common.constant.JxlsXmlTemplateName;
 import com.kmall.common.utils.*;
@@ -26,6 +30,7 @@ import com.kmall.manager.manager.wechat.WechatGlobalUtil;
 import com.kmall.manager.manager.wechat.WechatUtil;
 import com.kmall.manager.manager.wechat.wxglobal.dto.WechatGlobalRefundApiResult;
 import net.sf.json.JSONObject;
+import okhttp3.Request;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -1289,6 +1294,31 @@ public class OrderController {
 
     }
 
+    @RequestMapping("/queryInveResponse/{orderSn}")
+    public R queryInveResponse(@PathVariable("orderSn")String orderSn){
+        try {
+
+            // 查询订单是否存在
+//            OrderEntity order = orderService.queryObjectByOrderSn(orderSn);
+//            if(order == null){
+//                return R.error("该订单不存在");
+//            }
+
+            List<String> resultMessage = orderService.queryInveResponse(orderSn);
+            if(resultMessage == null || resultMessage.size() == 0){
+                resultMessage.add("暂无回执");
+            }
+            return R.ok().put("resultMessage",resultMessage);
+
+
+
+        } catch (Exception e) {
+            e.printStackTrace();
+            return R.error("系统异常:"+e.getMessage());
+        }
+
+    }
+
 
 
 

+ 107 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/compared/ImportPayOrderRecordController.java

@@ -0,0 +1,107 @@
+package com.kmall.admin.controller.compared;
+
+import java.util.List;
+import java.util.Map;
+
+import com.kmall.admin.entity.compared.ImportPayOrderRecordEntity;
+import com.kmall.admin.service.compared.ImportPayOrderRecordService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+
+/**
+ * 导入支付单记录表Controller
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2021-01-12 16:26:45
+ */
+@Controller
+@RequestMapping("importpayorderrecord")
+public class ImportPayOrderRecordController {
+    @Autowired
+    private ImportPayOrderRecordService importPayOrderRecordService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("importpayorderrecord:list")
+    @ResponseBody
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<ImportPayOrderRecordEntity> importPayOrderRecordList = importPayOrderRecordService.queryList(query);
+        int total = importPayOrderRecordService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(importPayOrderRecordList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{iporId}")
+    @RequiresPermissions("importpayorderrecord:info")
+    @ResponseBody
+    public R info(@PathVariable("iporId") Long iporId) {
+        ImportPayOrderRecordEntity importPayOrderRecord = importPayOrderRecordService.queryObject(iporId);
+
+        return R.ok().put("importPayOrderRecord", importPayOrderRecord);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("importpayorderrecord:save")
+    @ResponseBody
+    public R save(@RequestBody ImportPayOrderRecordEntity importPayOrderRecord) {
+        importPayOrderRecordService.save(importPayOrderRecord);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("importpayorderrecord:update")
+    @ResponseBody
+    public R update(@RequestBody ImportPayOrderRecordEntity importPayOrderRecord) {
+        importPayOrderRecordService.update(importPayOrderRecord);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("importpayorderrecord:delete")
+    @ResponseBody
+    public R delete(@RequestBody Long[]iporIds) {
+        importPayOrderRecordService.deleteBatch(iporIds);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    @ResponseBody
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<ImportPayOrderRecordEntity> list = importPayOrderRecordService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

+ 107 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/compared/ImportTaxOrderRecordController.java

@@ -0,0 +1,107 @@
+package com.kmall.admin.controller.compared;
+
+import java.util.List;
+import java.util.Map;
+
+import com.kmall.admin.entity.compared.ImportTaxOrderRecordEntity;
+import com.kmall.admin.service.compared.ImportTaxOrderRecordService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+
+/**
+ * 导入税单记录表Controller
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2021-01-12 16:26:45
+ */
+@Controller
+@RequestMapping("importtaxorderrecord")
+public class ImportTaxOrderRecordController {
+    @Autowired
+    private ImportTaxOrderRecordService importTaxOrderRecordService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("importtaxorderrecord:list")
+    @ResponseBody
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<ImportTaxOrderRecordEntity> importTaxOrderRecordList = importTaxOrderRecordService.queryList(query);
+        int total = importTaxOrderRecordService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(importTaxOrderRecordList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{itorId}")
+    @RequiresPermissions("importtaxorderrecord:info")
+    @ResponseBody
+    public R info(@PathVariable("itorId") Long itorId) {
+        ImportTaxOrderRecordEntity importTaxOrderRecord = importTaxOrderRecordService.queryObject(itorId);
+
+        return R.ok().put("importTaxOrderRecord", importTaxOrderRecord);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("importtaxorderrecord:save")
+    @ResponseBody
+    public R save(@RequestBody ImportTaxOrderRecordEntity importTaxOrderRecord) {
+        importTaxOrderRecordService.save(importTaxOrderRecord);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("importtaxorderrecord:update")
+    @ResponseBody
+    public R update(@RequestBody ImportTaxOrderRecordEntity importTaxOrderRecord) {
+        importTaxOrderRecordService.update(importTaxOrderRecord);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("importtaxorderrecord:delete")
+    @ResponseBody
+    public R delete(@RequestBody Long[]itorIds) {
+        importTaxOrderRecordService.deleteBatch(itorIds);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    @ResponseBody
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<ImportTaxOrderRecordEntity> list = importTaxOrderRecordService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

+ 16 - 3
kmall-admin/src/main/java/com/kmall/admin/controller/compared/OrderComparedErrorController.java

@@ -5,6 +5,7 @@ import java.util.Map;
 
 import com.kmall.admin.entity.compared.OrderComparedErrorEntity;
 import com.kmall.admin.service.compared.OrderComparedErrorService;
+import com.kmall.common.utils.DateUtils;
 import com.kmall.common.utils.PageUtils;
 import com.kmall.common.utils.Query;
 import com.kmall.common.utils.R;
@@ -24,6 +25,8 @@ import org.springframework.web.bind.annotation.*;
 @Controller
 @RequestMapping("ordercomparederror")
 public class OrderComparedErrorController {
+    private static String  ISO = "iso-8859-1";
+    private static String  UTF = "utf-8";
     @Autowired
     private OrderComparedErrorService orderComparedErrorService;
 
@@ -106,12 +109,22 @@ public class OrderComparedErrorController {
     }
 
 
-    @RequestMapping("/comparedOrder")
+    @RequestMapping("/comparedOrder/{comparedDate}")
     @ResponseBody
-    public R comparedOrder() {
+    public R comparedOrder( @PathVariable("comparedDate") String comparedDate) {
+
+
+        if(org.apache.commons.lang.StringUtils.isNotEmpty(comparedDate)) {
+            try {
+                comparedDate = new String(comparedDate.getBytes(ISO), UTF);
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+            comparedDate = DateUtils.getDate(comparedDate);
+        }
 
         try {
-            String returnMsg = orderComparedErrorService.comparedOrder();
+            String returnMsg = orderComparedErrorService.comparedOrder(comparedDate);
             return R.ok().put("msg",returnMsg);
         } catch (Exception e) {
             e.printStackTrace();

+ 40 - 4
kmall-admin/src/main/java/com/kmall/admin/controller/compared/PayOrderInfoController.java

@@ -1,14 +1,15 @@
 package com.kmall.admin.controller.compared;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 import com.kmall.admin.dto.GoodsDto;
 import com.kmall.admin.dto.PayOrderDto;
+import com.kmall.admin.entity.compared.ImportPayOrderRecordEntity;
 import com.kmall.admin.entity.compared.PayOrderInfoEntity;
+import com.kmall.admin.fromcomm.entity.SysUserEntity;
+import com.kmall.admin.service.compared.ImportPayOrderRecordService;
 import com.kmall.admin.service.compared.PayOrderInfoService;
+import com.kmall.admin.utils.ShiroUtils;
 import com.kmall.common.constant.Dict;
 import com.kmall.common.constant.JxlsXmlTemplateName;
 import com.kmall.common.utils.PageUtils;
@@ -36,6 +37,8 @@ public class PayOrderInfoController {
     private PayOrderInfoService payOrderInfoService;
     @Autowired
     private ExcelUtil excelUtil;
+    @Autowired
+    private ImportPayOrderRecordService importPayOrderRecordService;
     /**
      * 查看列表
      */
@@ -132,11 +135,35 @@ public class PayOrderInfoController {
             e.printStackTrace();
             return R.error("导入失败!");
         }
+        if(payOrderDtoList == null || payOrderDtoList.size() == 0){
+            return R.error("报表格式有误");
+        }
+
+        try {
+            saveRecord(file);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
         payOrderInfoService.uploadExcel(payOrderDtoList,Dict.payFlag.item_alipay.getItem());
         //上传文件
         return R.ok();
     }
 
+    private void saveRecord(MultipartFile file) {
+        SysUserEntity user = ShiroUtils.getUserEntity();
+        ImportPayOrderRecordEntity importPayOrderRecordEntity = new ImportPayOrderRecordEntity();
+
+        importPayOrderRecordEntity.setImporter(user.getUserId()+"");
+        importPayOrderRecordEntity.setImportTime(new Date());
+        importPayOrderRecordEntity.setCreaterSn(user.getUserId()+"");
+        importPayOrderRecordEntity.setCreateTime(new Date());
+        importPayOrderRecordEntity.setImportFileName(file.getOriginalFilename());
+
+        importPayOrderRecordService.save(importPayOrderRecordEntity);
+
+    }
+
     @RequestMapping("/uploadWXOrder")
     @ResponseBody
     public R uploadWXOrder(@RequestParam("file") MultipartFile file) {
@@ -152,6 +179,15 @@ public class PayOrderInfoController {
             e.printStackTrace();
             return R.error("导入失败!");
         }
+        if(payOrderDtoList == null || payOrderDtoList.size() == 0){
+            return R.error("报表格式有误");
+        }
+
+        try {
+            saveRecord(file);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
         payOrderInfoService.uploadExcel(payOrderDtoList,Dict.payFlag.item_weixin.getItem());
         //上传文件
         return R.ok();

+ 142 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/compared/TaxComparedErrorController.java

@@ -0,0 +1,142 @@
+package com.kmall.admin.controller.compared;
+
+import java.util.List;
+import java.util.Map;
+
+import com.kmall.admin.entity.compared.TaxComparedErrorEntity;
+import com.kmall.admin.service.compared.TaxComparedErrorService;
+import com.kmall.admin.utils.ParamUtils;
+import com.kmall.common.utils.DateUtils;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+
+/**
+ * Controller
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-12-29 14:11:24
+ */
+@Controller
+@RequestMapping("taxcomparederror")
+public class TaxComparedErrorController {
+    @Autowired
+    private TaxComparedErrorService taxComparedErrorService;
+
+    private static String  ISO = "iso-8859-1";
+    private static String  UTF = "utf-8";
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @ResponseBody
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        params = ParamUtils.setTimeMap(params);
+        String createTime = (String) params.get("createTime");
+        if(org.apache.commons.lang.StringUtils.isNotEmpty(createTime)) {
+            try {
+                createTime = new String(createTime.getBytes(ISO), UTF);
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+            createTime = DateUtils.getDate(createTime);
+            params.put("createTime",createTime);
+        }
+        Query query = new Query(params);
+        List<TaxComparedErrorEntity> taxComparedErrorList = taxComparedErrorService.queryList(query);
+        int total = taxComparedErrorService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(taxComparedErrorList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{mtceId}")
+    @ResponseBody
+    public R info(@PathVariable("mtceId") Integer mtceId) {
+        TaxComparedErrorEntity taxComparedError = taxComparedErrorService.queryObject(mtceId);
+
+        return R.ok().put("taxComparedError", taxComparedError);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @ResponseBody
+    public R save(@RequestBody TaxComparedErrorEntity taxComparedError) {
+        taxComparedErrorService.save(taxComparedError);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @ResponseBody
+    public R update(@RequestBody TaxComparedErrorEntity taxComparedError) {
+        taxComparedErrorService.update(taxComparedError);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @ResponseBody
+    public R delete(@RequestBody Integer[]mtceIds) {
+        taxComparedErrorService.deleteBatch(mtceIds);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    @ResponseBody
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<TaxComparedErrorEntity> list = taxComparedErrorService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+
+    @RequestMapping("/comparedTaxOrder/{comparedDate}")
+    @ResponseBody
+    public R comparedTaxOrder(@PathVariable("comparedDate") String comparedDate) {
+
+        if(org.apache.commons.lang.StringUtils.isNotEmpty(comparedDate)) {
+            try {
+                comparedDate = new String(comparedDate.getBytes(ISO), UTF);
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+            comparedDate = DateUtils.getDate(comparedDate);
+        }
+
+        try {
+            String returnMsg = taxComparedErrorService.comparedTaxOrder(comparedDate);
+            return R.ok().put("msg",returnMsg);
+        } catch (Exception e) {
+            e.printStackTrace();
+            return R.error(e.getMessage());
+        }
+
+    }
+
+
+}

+ 141 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/compared/TaxInfoController.java

@@ -0,0 +1,141 @@
+package com.kmall.admin.controller.compared;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import com.kmall.admin.dto.PayOrderDto;
+import com.kmall.admin.dto.TaxOrderDto;
+import com.kmall.admin.entity.compared.TaxInfoEntity;
+import com.kmall.admin.service.compared.TaxInfoService;
+import com.kmall.common.constant.Dict;
+import com.kmall.common.constant.JxlsXmlTemplateName;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import com.kmall.common.utils.excel.ExcelUtil;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+
+/**
+ * Controller
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-12-29 14:11:24
+ */
+@Controller
+@RequestMapping("taxinfo")
+public class TaxInfoController {
+    @Autowired
+    private TaxInfoService taxInfoService;
+    @Autowired
+    private ExcelUtil excelUtil;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @ResponseBody
+    public R list(@RequestParam Map<String, Object> params) {
+        params.put("compared","0");
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<TaxInfoEntity> taxInfoList = taxInfoService.queryList(query);
+        int total = taxInfoService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(taxInfoList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{mtiId}")
+    @ResponseBody
+    public R info(@PathVariable("mtiId") Integer mtiId) {
+        TaxInfoEntity taxInfo = taxInfoService.queryObject(mtiId);
+
+        return R.ok().put("taxInfo", taxInfo);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @ResponseBody
+    public R save(@RequestBody TaxInfoEntity taxInfo) {
+        taxInfoService.save(taxInfo);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @ResponseBody
+    public R update(@RequestBody TaxInfoEntity taxInfo) {
+        taxInfoService.update(taxInfo);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @ResponseBody
+    public R delete(@RequestBody Integer[]mtiIds) {
+        taxInfoService.deleteBatch(mtiIds);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    @ResponseBody
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<TaxInfoEntity> list = taxInfoService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+
+
+    /**
+     * 上传文件
+     */
+    @RequestMapping("/uploadTax")
+    @ResponseBody
+    public R uploadTax(@RequestParam("file") MultipartFile file) {
+        List<TaxOrderDto> taxOrderDtoList = new ArrayList<>();// 支付订单信息
+        try {
+            Map<String, Object> beans = new HashMap<String, Object>();
+            beans.put("TaxOrderDtoList", taxOrderDtoList);
+            if (file.isEmpty()) {
+                return R.error("文件不能为空!");
+            }
+            excelUtil.readExcel(JxlsXmlTemplateName.TAX_ORDER_DTO_LIST, beans, file.getInputStream());
+        } catch (Exception e) {
+            e.printStackTrace();
+            return R.error("导入失败!");
+        }
+        boolean flag = taxInfoService.uploadExcel(taxOrderDtoList);
+        if(!flag){
+            return R.error("导入失败,报表格式有误");
+        }
+        //上传文件
+        return R.ok();
+    }
+
+}

+ 102 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/kmall2eccs/KtoEccsController.java

@@ -0,0 +1,102 @@
+package com.kmall.admin.controller.kmall2eccs;
+
+import java.util.List;
+import java.util.Map;
+
+import com.kmall.admin.entity.kmall2eccs.KtoEccsEntity;
+import com.kmall.admin.service.kmall2eccs.KtoEccsService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+
+/**
+ * Controller
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2021-01-12 15:50:45
+ */
+@Controller
+@RequestMapping("ktoeccs")
+public class KtoEccsController {
+    @Autowired
+    private KtoEccsService ktoEccsService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @ResponseBody
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<KtoEccsEntity> ktoEccsList = ktoEccsService.queryList(query);
+        int total = ktoEccsService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(ktoEccsList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{kteId}")
+    @ResponseBody
+    public R info(@PathVariable("kteId") Long kteId) {
+        KtoEccsEntity ktoEccs = ktoEccsService.queryObject(kteId);
+
+        return R.ok().put("ktoEccs", ktoEccs);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @ResponseBody
+    public R save(@RequestBody KtoEccsEntity ktoEccs) {
+        ktoEccsService.save(ktoEccs);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @ResponseBody
+    public R update(@RequestBody KtoEccsEntity ktoEccs) {
+        ktoEccsService.update(ktoEccs);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @ResponseBody
+    public R delete(@RequestBody Long[]kteIds) {
+        ktoEccsService.deleteBatch(kteIds);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    @ResponseBody
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<KtoEccsEntity> list = ktoEccsService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

+ 2 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/OrderDao.java

@@ -170,4 +170,6 @@ public interface OrderDao extends BaseDao<OrderEntity> {
     List<TaxDetailDto> queryCurrentTaxDetailList(@Param("billDate") String billDate, @Param("storeId") String storeId);
 
     List<TaxDetailDto> queryRefundPreviousTaxDetailList(@Param("billDate") String billDate, @Param("storeId") String storeId);
+
+    List<OrderEntity> queryAll201Order(@Param("date") String date);
 }

+ 2 - 2
kmall-admin/src/main/java/com/kmall/admin/dao/OrderGoodsDao.java

@@ -1,12 +1,11 @@
 package com.kmall.admin.dao;
 
+import com.kmall.admin.dto.OrderGoodsDto;
 import com.kmall.admin.entity.OrderGoodsEntity;
 import com.kmall.api.entity.OrderGoodsVo;
-import com.kmall.api.entity.OrderVo;
 import com.kmall.manager.dao.BaseDao;
 import org.apache.ibatis.annotations.Param;
 
-import java.math.BigDecimal;
 import java.util.List;
 import java.util.Map;
 
@@ -31,4 +30,5 @@ public interface OrderGoodsDao extends BaseDao<OrderGoodsEntity> {
 
     Integer queryHistoryPriceTotal(Map<String, Object> map);
 
+    List<OrderGoodsDto> queryYesterdayTax(@Param("date") String date);
 }

+ 16 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/compared/ImportPayOrderRecordDao.java

@@ -0,0 +1,16 @@
+package com.kmall.admin.dao.compared;
+
+
+import com.kmall.admin.entity.compared.ImportPayOrderRecordEntity;
+import com.kmall.manager.dao.BaseDao;
+
+/**
+ * 导入支付单记录表Dao
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2021-01-12 16:26:45
+ */
+public interface ImportPayOrderRecordDao extends BaseDao<ImportPayOrderRecordEntity> {
+
+}

+ 16 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/compared/ImportTaxOrderRecordDao.java

@@ -0,0 +1,16 @@
+package com.kmall.admin.dao.compared;
+
+
+import com.kmall.admin.entity.compared.ImportTaxOrderRecordEntity;
+import com.kmall.manager.dao.BaseDao;
+
+/**
+ * 导入税单记录表Dao
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2021-01-12 16:26:45
+ */
+public interface ImportTaxOrderRecordDao extends BaseDao<ImportTaxOrderRecordEntity> {
+
+}

+ 3 - 1
kmall-admin/src/main/java/com/kmall/admin/dao/compared/PayOrderInfoDao.java

@@ -3,6 +3,7 @@ package com.kmall.admin.dao.compared;
 
 import com.kmall.admin.entity.compared.PayOrderInfoEntity;
 import com.kmall.manager.dao.BaseDao;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -18,8 +19,9 @@ public interface PayOrderInfoDao extends BaseDao<PayOrderInfoEntity> {
     /**
      *
      * @return
+     * @param comparedDate
      */
-    List<PayOrderInfoEntity> queryNoComparedOrder();
+    List<PayOrderInfoEntity> queryNoComparedOrder(@Param("comparedDate") String comparedDate);
 
     void updateBatch(List<PayOrderInfoEntity> payOrderInfoEntities);
 }

+ 16 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/compared/TaxComparedErrorDao.java

@@ -0,0 +1,16 @@
+package com.kmall.admin.dao.compared;
+
+
+import com.kmall.admin.entity.compared.TaxComparedErrorEntity;
+import com.kmall.manager.dao.BaseDao;
+
+/**
+ * Dao
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-12-29 14:11:24
+ */
+public interface TaxComparedErrorDao extends BaseDao<TaxComparedErrorEntity> {
+
+}

+ 19 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/compared/TaxInfoDao.java

@@ -0,0 +1,19 @@
+package com.kmall.admin.dao.compared;
+
+
+import com.kmall.admin.entity.compared.TaxInfoEntity;
+import com.kmall.manager.dao.BaseDao;
+
+import java.util.List;
+
+/**
+ * Dao
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-12-29 14:11:24
+ */
+public interface TaxInfoDao extends BaseDao<TaxInfoEntity> {
+
+    void updateBatch(List<TaxInfoEntity> taxInfoEntities);
+}

+ 16 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/kmall2eccs/KtoEccsDao.java

@@ -0,0 +1,16 @@
+package com.kmall.admin.dao.kmall2eccs;
+
+
+import com.kmall.admin.entity.kmall2eccs.KtoEccsEntity;
+import com.kmall.manager.dao.BaseDao;
+
+/**
+ * Dao
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2021-01-12 15:50:45
+ */
+public interface KtoEccsDao extends BaseDao<KtoEccsEntity> {
+
+}

+ 30 - 0
kmall-admin/src/main/java/com/kmall/admin/dto/OrderGoodsDto.java

@@ -0,0 +1,30 @@
+package com.kmall.admin.dto;
+
+import java.io.Serializable;
+
+/**
+ * @author zhangchuangbiao
+ * @version 1.0
+ * 2020-12-29 15:16
+ */
+public class OrderGoodsDto implements Serializable {
+
+    private String orderSn;
+    private String tax;
+
+    public String getOrderSn() {
+        return orderSn;
+    }
+
+    public void setOrderSn(String orderSn) {
+        this.orderSn = orderSn;
+    }
+
+    public String getTax() {
+        return tax;
+    }
+
+    public void setTax(String tax) {
+        this.tax = tax;
+    }
+}

+ 30 - 0
kmall-admin/src/main/java/com/kmall/admin/dto/QueryOrderDto.java

@@ -0,0 +1,30 @@
+package com.kmall.admin.dto;
+
+import java.io.Serializable;
+
+/**
+ * @author zhangchuangbiao
+ * @version 1.0
+ * 2021-01-12 14:01
+ */
+public class QueryOrderDto implements Serializable {
+
+    private String thirdSn ;
+    private String queryDate;
+
+    public String getThirdSn() {
+        return thirdSn;
+    }
+
+    public void setThirdSn(String thirdSn) {
+        this.thirdSn = thirdSn;
+    }
+
+    public String getQueryDate() {
+        return queryDate;
+    }
+
+    public void setQueryDate(String queryDate) {
+        this.queryDate = queryDate;
+    }
+}

+ 43 - 0
kmall-admin/src/main/java/com/kmall/admin/dto/TaxOrderDto.java

@@ -0,0 +1,43 @@
+package com.kmall.admin.dto;
+
+import java.io.Serializable;
+
+/**
+ * 实体
+ * 表名 mall_pay_order_info
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-11-26 10:16:58
+ */
+public class TaxOrderDto implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    private String orderSn;
+    private String preTaxPrice;
+    private String tax;
+
+    public String getOrderSn() {
+        return orderSn;
+    }
+
+    public void setOrderSn(String orderSn) {
+        this.orderSn = orderSn;
+    }
+
+    public String getPreTaxPrice() {
+        return preTaxPrice;
+    }
+
+    public void setPreTaxPrice(String preTaxPrice) {
+        this.preTaxPrice = preTaxPrice;
+    }
+
+    public String getTax() {
+        return tax;
+    }
+
+    public void setTax(String tax) {
+        this.tax = tax;
+    }
+}

+ 1 - 1
kmall-admin/src/main/java/com/kmall/admin/entity/ProductStoreRelaEntity.java

@@ -54,7 +54,7 @@ public class ProductStoreRelaEntity implements Serializable {
     /**
      * 销售量
      */
-    private Integer sellVolume = 0;
+    private Integer sellVolume;
 
     // 翻译
     private String storeName;

+ 154 - 0
kmall-admin/src/main/java/com/kmall/admin/entity/compared/ImportPayOrderRecordEntity.java

@@ -0,0 +1,154 @@
+package com.kmall.admin.entity.compared;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 导入支付单记录表实体
+ * 表名 import_pay_order_record
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2021-01-12 16:26:45
+ */
+public class ImportPayOrderRecordEntity implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 编号
+     */
+    private Long iporId;
+    /**
+     * 导入人
+     */
+    private String importer;
+    /**
+     * 导入时间
+     */
+    private Date importTime;
+    /**
+     * 导入文件名
+     */
+    private String importFileName;
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+    /**
+     * 创建人编号
+     */
+    private String createrSn;
+    /**
+     * 修改时间
+     */
+    private Date updateTime;
+    /**
+     * 修改人编号
+     */
+    private String moderSn;
+
+    /**
+     * 设置:编号
+     */
+    public void setIporId(Long iporId) {
+        this.iporId = iporId;
+    }
+
+    /**
+     * 获取:编号
+     */
+    public Long getIporId() {
+        return iporId;
+    }
+    /**
+     * 设置:导入人
+     */
+    public void setImporter(String importer) {
+        this.importer = importer;
+    }
+
+    /**
+     * 获取:导入人
+     */
+    public String getImporter() {
+        return importer;
+    }
+    /**
+     * 设置:导入时间
+     */
+    public void setImportTime(Date importTime) {
+        this.importTime = importTime;
+    }
+
+    /**
+     * 获取:导入时间
+     */
+    public Date getImportTime() {
+        return importTime;
+    }
+    /**
+     * 设置:导入文件名
+     */
+    public void setImportFileName(String importFileName) {
+        this.importFileName = importFileName;
+    }
+
+    /**
+     * 获取:导入文件名
+     */
+    public String getImportFileName() {
+        return importFileName;
+    }
+    /**
+     * 设置:创建时间
+     */
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    /**
+     * 获取:创建时间
+     */
+    public Date getCreateTime() {
+        return createTime;
+    }
+    /**
+     * 设置:创建人编号
+     */
+    public void setCreaterSn(String createrSn) {
+        this.createrSn = createrSn;
+    }
+
+    /**
+     * 获取:创建人编号
+     */
+    public String getCreaterSn() {
+        return createrSn;
+    }
+    /**
+     * 设置:修改时间
+     */
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    /**
+     * 获取:修改时间
+     */
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+    /**
+     * 设置:修改人编号
+     */
+    public void setModerSn(String moderSn) {
+        this.moderSn = moderSn;
+    }
+
+    /**
+     * 获取:修改人编号
+     */
+    public String getModerSn() {
+        return moderSn;
+    }
+}

+ 154 - 0
kmall-admin/src/main/java/com/kmall/admin/entity/compared/ImportTaxOrderRecordEntity.java

@@ -0,0 +1,154 @@
+package com.kmall.admin.entity.compared;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 导入税单记录表实体
+ * 表名 import_tax_order_record
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2021-01-12 16:26:45
+ */
+public class ImportTaxOrderRecordEntity implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 编号
+     */
+    private Long itorId;
+    /**
+     * 导入人
+     */
+    private String importer;
+    /**
+     * 导入时间
+     */
+    private Date importTime;
+    /**
+     * 导入文件名
+     */
+    private String importFileName;
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+    /**
+     * 创建人编号
+     */
+    private String createrSn;
+    /**
+     * 修改时间
+     */
+    private Date updateTime;
+    /**
+     * 修改人编号
+     */
+    private String moderSn;
+
+    /**
+     * 设置:编号
+     */
+    public void setItorId(Long itorId) {
+        this.itorId = itorId;
+    }
+
+    /**
+     * 获取:编号
+     */
+    public Long getItorId() {
+        return itorId;
+    }
+    /**
+     * 设置:导入人
+     */
+    public void setImporter(String importer) {
+        this.importer = importer;
+    }
+
+    /**
+     * 获取:导入人
+     */
+    public String getImporter() {
+        return importer;
+    }
+    /**
+     * 设置:导入时间
+     */
+    public void setImportTime(Date importTime) {
+        this.importTime = importTime;
+    }
+
+    /**
+     * 获取:导入时间
+     */
+    public Date getImportTime() {
+        return importTime;
+    }
+    /**
+     * 设置:导入文件名
+     */
+    public void setImportFileName(String importFileName) {
+        this.importFileName = importFileName;
+    }
+
+    /**
+     * 获取:导入文件名
+     */
+    public String getImportFileName() {
+        return importFileName;
+    }
+    /**
+     * 设置:创建时间
+     */
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    /**
+     * 获取:创建时间
+     */
+    public Date getCreateTime() {
+        return createTime;
+    }
+    /**
+     * 设置:创建人编号
+     */
+    public void setCreaterSn(String createrSn) {
+        this.createrSn = createrSn;
+    }
+
+    /**
+     * 获取:创建人编号
+     */
+    public String getCreaterSn() {
+        return createrSn;
+    }
+    /**
+     * 设置:修改时间
+     */
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    /**
+     * 获取:修改时间
+     */
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+    /**
+     * 设置:修改人编号
+     */
+    public void setModerSn(String moderSn) {
+        this.moderSn = moderSn;
+    }
+
+    /**
+     * 获取:修改人编号
+     */
+    public String getModerSn() {
+        return moderSn;
+    }
+}

+ 104 - 0
kmall-admin/src/main/java/com/kmall/admin/entity/compared/TaxComparedErrorEntity.java

@@ -0,0 +1,104 @@
+package com.kmall.admin.entity.compared;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 实体
+ * 表名 mall_tax_compared_error
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-12-29 14:11:24
+ */
+public class TaxComparedErrorEntity implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     *
+     */
+    private Integer mtceId;
+    /**
+     *
+     */
+    private String merchOrderSn;
+    /**
+     *
+     */
+    private BigDecimal kmallTax;
+    /**
+     *
+     */
+    private BigDecimal omsTax;
+    /**
+     *
+     */
+    private String createTime;
+
+    /**
+     * 设置:
+     */
+    public void setMtceId(Integer mtceId) {
+        this.mtceId = mtceId;
+    }
+
+    /**
+     * 获取:
+     */
+    public Integer getMtceId() {
+        return mtceId;
+    }
+    /**
+     * 设置:
+     */
+    public void setMerchOrderSn(String merchOrderSn) {
+        this.merchOrderSn = merchOrderSn;
+    }
+
+    /**
+     * 获取:
+     */
+    public String getMerchOrderSn() {
+        return merchOrderSn;
+    }
+    /**
+     * 设置:
+     */
+    public void setKmallTax(BigDecimal kmallTax) {
+        this.kmallTax = kmallTax;
+    }
+
+    /**
+     * 获取:
+     */
+    public BigDecimal getKmallTax() {
+        return kmallTax;
+    }
+    /**
+     * 设置:
+     */
+    public void setOmsTax(BigDecimal omsTax) {
+        this.omsTax = omsTax;
+    }
+
+    /**
+     * 获取:
+     */
+    public BigDecimal getOmsTax() {
+        return omsTax;
+    }
+    /**
+     * 设置:
+     */
+    public void setCreateTime(String createTime) {
+        this.createTime = createTime;
+    }
+
+    /**
+     * 获取:
+     */
+    public String getCreateTime() {
+        return createTime;
+    }
+}

+ 155 - 0
kmall-admin/src/main/java/com/kmall/admin/entity/compared/TaxInfoEntity.java

@@ -0,0 +1,155 @@
+package com.kmall.admin.entity.compared;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 实体
+ * 表名 mall_tax_info
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-12-29 14:11:24
+ */
+public class TaxInfoEntity implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     *
+     */
+    private Integer mtiId;
+    /**
+     *
+     */
+    private String merchOrderSn;
+    /**
+     *
+     */
+    private BigDecimal preTaxPrice;
+    /**
+     *
+     */
+    private BigDecimal tax;
+    /**
+     *
+     */
+    private String importTime;
+    /**
+     *
+     */
+    private String importer;
+    /**
+     *
+     */
+    private String compared;
+    /**
+     *
+     */
+    private String comparedTime;
+
+    /**
+     * 设置:
+     */
+    public void setMtiId(Integer mtiId) {
+        this.mtiId = mtiId;
+    }
+
+    /**
+     * 获取:
+     */
+    public Integer getMtiId() {
+        return mtiId;
+    }
+    /**
+     * 设置:
+     */
+    public void setMerchOrderSn(String merchOrderSn) {
+        this.merchOrderSn = merchOrderSn;
+    }
+
+    /**
+     * 获取:
+     */
+    public String getMerchOrderSn() {
+        return merchOrderSn;
+    }
+    /**
+     * 设置:
+     */
+    public void setPreTaxPrice(BigDecimal preTaxPrice) {
+        this.preTaxPrice = preTaxPrice;
+    }
+
+    /**
+     * 获取:
+     */
+    public BigDecimal getPreTaxPrice() {
+        return preTaxPrice;
+    }
+    /**
+     * 设置:
+     */
+    public void setTax(BigDecimal tax) {
+        this.tax = tax;
+    }
+
+    /**
+     * 获取:
+     */
+    public BigDecimal getTax() {
+        return tax;
+    }
+    /**
+     * 设置:
+     */
+    public void setImportTime(String importTime) {
+        this.importTime = importTime;
+    }
+
+    /**
+     * 获取:
+     */
+    public String getImportTime() {
+        return importTime;
+    }
+    /**
+     * 设置:
+     */
+    public void setImporter(String importer) {
+        this.importer = importer;
+    }
+
+    /**
+     * 获取:
+     */
+    public String getImporter() {
+        return importer;
+    }
+    /**
+     * 设置:
+     */
+    public void setCompared(String compared) {
+        this.compared = compared;
+    }
+
+    /**
+     * 获取:
+     */
+    public String getCompared() {
+        return compared;
+    }
+    /**
+     * 设置:
+     */
+    public void setComparedTime(String comparedTime) {
+        this.comparedTime = comparedTime;
+    }
+
+    /**
+     * 获取:
+     */
+    public String getComparedTime() {
+        return comparedTime;
+    }
+}

+ 188 - 0
kmall-admin/src/main/java/com/kmall/admin/entity/kmall2eccs/KtoEccsEntity.java

@@ -0,0 +1,188 @@
+package com.kmall.admin.entity.kmall2eccs;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 实体
+ * 表名 kmall_to_eccs
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2021-01-12 15:50:45
+ */
+public class KtoEccsEntity implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 编号
+     */
+    private Long kteId;
+    /**
+     * 请求数据
+     */
+    private String requestData;
+    /**
+     * 请求时间
+     */
+    private Date requestTime;
+    /**
+     * 请求类型(01 进货 02 上架 03 销售 04 退款
+     */
+    private String requestType;
+    /**
+     * 是否请求过  00 未请求  01已请求 02请求失败
+     */
+    private String sendStatus;
+    /**
+     * 失败原因
+     */
+    private String failReason;
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+    /**
+     * 创建人编号
+     */
+    private String createrSn;
+    /**
+     * 修改时间
+     */
+    private Date updateTime;
+    /**
+     * 修改人编号
+     */
+    private String moderSn;
+
+    /**
+     * 设置:编号
+     */
+    public void setKteId(Long kteId) {
+        this.kteId = kteId;
+    }
+
+    /**
+     * 获取:编号
+     */
+    public Long getKteId() {
+        return kteId;
+    }
+    /**
+     * 设置:请求数据
+     */
+    public void setRequestData(String requestData) {
+        this.requestData = requestData;
+    }
+
+    /**
+     * 获取:请求数据
+     */
+    public String getRequestData() {
+        return requestData;
+    }
+    /**
+     * 设置:请求时间
+     */
+    public void setRequestTime(Date requestTime) {
+        this.requestTime = requestTime;
+    }
+
+    /**
+     * 获取:请求时间
+     */
+    public Date getRequestTime() {
+        return requestTime;
+    }
+    /**
+     * 设置:请求类型(01 进货 02 上架 03 销售 04 退款
+     */
+    public void setRequestType(String requestType) {
+        this.requestType = requestType;
+    }
+
+    /**
+     * 获取:请求类型(01 进货 02 上架 03 销售 04 退款
+     */
+    public String getRequestType() {
+        return requestType;
+    }
+    /**
+     * 设置:是否请求过  00 未请求  01已请求 02请求失败
+     */
+    public void setSendStatus(String sendStatus) {
+        this.sendStatus = sendStatus;
+    }
+
+    /**
+     * 获取:是否请求过  00 未请求  01已请求 02请求失败
+     */
+    public String getSendStatus() {
+        return sendStatus;
+    }
+    /**
+     * 设置:失败原因
+     */
+    public void setFailReason(String failReason) {
+        this.failReason = failReason;
+    }
+
+    /**
+     * 获取:失败原因
+     */
+    public String getFailReason() {
+        return failReason;
+    }
+    /**
+     * 设置:创建时间
+     */
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    /**
+     * 获取:创建时间
+     */
+    public Date getCreateTime() {
+        return createTime;
+    }
+    /**
+     * 设置:创建人编号
+     */
+    public void setCreaterSn(String createrSn) {
+        this.createrSn = createrSn;
+    }
+
+    /**
+     * 获取:创建人编号
+     */
+    public String getCreaterSn() {
+        return createrSn;
+    }
+    /**
+     * 设置:修改时间
+     */
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    /**
+     * 获取:修改时间
+     */
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+    /**
+     * 设置:修改人编号
+     */
+    public void setModerSn(String moderSn) {
+        this.moderSn = moderSn;
+    }
+
+    /**
+     * 获取:修改人编号
+     */
+    public String getModerSn() {
+        return moderSn;
+    }
+}

+ 17 - 9
kmall-admin/src/main/java/com/kmall/admin/service/OrderGoodsService.java

@@ -1,32 +1,40 @@
 package com.kmall.admin.service;
 
+import com.kmall.admin.dto.OrderGoodsDto;
 import com.kmall.admin.entity.OrderGoodsEntity;
 
 import java.util.List;
 import java.util.Map;
 
 /**
- * 
- * 
+ *
+ *
  * @author Scott
  * @email
  * @date 2017-08-13 10:41:09
  */
 public interface OrderGoodsService {
-	
+
 	OrderGoodsEntity queryObject(Integer id);
-	
+
 	List<OrderGoodsEntity> queryList(Map<String, Object> map);
-	
+
 	int queryTotal(Map<String, Object> map);
-	
+
 	void save(OrderGoodsEntity orderGoods);
-	
+
 	void update(OrderGoodsEntity orderGoods);
-	
+
 	void delete(Integer id);
-	
+
 	void deleteBatch(Integer[] ids);
 
 	List<OrderGoodsEntity> queryListByOrderId(Integer orderId);
+
+	/**
+	 * 查询税单
+	 * @param format
+	 * @return
+	 */
+	List<OrderGoodsDto> queryYesterdayTax(String format);
 }

+ 12 - 1
kmall-admin/src/main/java/com/kmall/admin/service/OrderService.java

@@ -10,7 +10,9 @@ import com.kmall.manager.manager.wechat.wxglobal.dto.WechatGlobalRefundApiResult
 import com.kmall.common.utils.print.ticket.item.Ticket;
 import com.kmall.common.utils.wechat.WechatRefundApiResult;
 import net.sf.json.JSONObject;
+import org.apache.ibatis.annotations.Param;
 
+import java.io.IOException;
 import java.util.List;
 import java.util.Map;
 
@@ -187,7 +189,7 @@ public interface OrderService {
      */
     List<SystemFormatDto> queryExportSystemFormatList(Map<String, Object> params);
 
-    List<OrderEntity> queryLastDayOrder();
+    List<OrderEntity> queryLastDayOrder(@Param("comparedDate") String comparedDate);
 
     /**
      * 查询CW保税+新零售销售报表第一个sheet
@@ -200,4 +202,13 @@ public interface OrderService {
     Map<String,List<OrderEntity>> querySaleOrderList(String billDate, String storeId);
 
     Map<String, List<TaxDetailDto>> queryTaxDetailList(String billDate, String storeId);
+
+
+    List<String> queryInveResponse(String orderSn) throws IOException;
+
+    /**
+     * 查询所有状态为201的订单。且下单时间超过5分钟的订单
+     * @return
+     */
+    List<OrderEntity> queryAll201Order();
 }

+ 73 - 0
kmall-admin/src/main/java/com/kmall/admin/service/compared/ImportPayOrderRecordService.java

@@ -0,0 +1,73 @@
+package com.kmall.admin.service.compared;
+
+
+import com.kmall.admin.entity.compared.ImportPayOrderRecordEntity;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 导入支付单记录表Service接口
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2021-01-12 16:26:45
+ */
+public interface ImportPayOrderRecordService {
+
+    /**
+     * 根据主键查询实体
+     *
+     * @param iporId 主键
+     * @return 实体
+     */
+    ImportPayOrderRecordEntity queryObject(Long iporId);
+
+    /**
+     * 分页查询
+     *
+     * @param map 参数
+     * @return list
+     */
+    List<ImportPayOrderRecordEntity> queryList(Map<String, Object> map);
+
+    /**
+     * 分页统计总数
+     *
+     * @param map 参数
+     * @return 总数
+     */
+    int queryTotal(Map<String, Object> map);
+
+    /**
+     * 保存实体
+     *
+     * @param importPayOrderRecord 实体
+     * @return 保存条数
+     */
+    int save(ImportPayOrderRecordEntity importPayOrderRecord);
+
+    /**
+     * 根据主键更新实体
+     *
+     * @param importPayOrderRecord 实体
+     * @return 更新条数
+     */
+    int update(ImportPayOrderRecordEntity importPayOrderRecord);
+
+    /**
+     * 根据主键删除
+     *
+     * @param iporId
+     * @return 删除条数
+     */
+    int delete(Long iporId);
+
+    /**
+     * 根据主键批量删除
+     *
+     * @param iporIds
+     * @return 删除条数
+     */
+    int deleteBatch(Long[]iporIds);
+}

+ 73 - 0
kmall-admin/src/main/java/com/kmall/admin/service/compared/ImportTaxOrderRecordService.java

@@ -0,0 +1,73 @@
+package com.kmall.admin.service.compared;
+
+
+import com.kmall.admin.entity.compared.ImportTaxOrderRecordEntity;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 导入税单记录表Service接口
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2021-01-12 16:26:45
+ */
+public interface ImportTaxOrderRecordService {
+
+    /**
+     * 根据主键查询实体
+     *
+     * @param itorId 主键
+     * @return 实体
+     */
+    ImportTaxOrderRecordEntity queryObject(Long itorId);
+
+    /**
+     * 分页查询
+     *
+     * @param map 参数
+     * @return list
+     */
+    List<ImportTaxOrderRecordEntity> queryList(Map<String, Object> map);
+
+    /**
+     * 分页统计总数
+     *
+     * @param map 参数
+     * @return 总数
+     */
+    int queryTotal(Map<String, Object> map);
+
+    /**
+     * 保存实体
+     *
+     * @param importTaxOrderRecord 实体
+     * @return 保存条数
+     */
+    int save(ImportTaxOrderRecordEntity importTaxOrderRecord);
+
+    /**
+     * 根据主键更新实体
+     *
+     * @param importTaxOrderRecord 实体
+     * @return 更新条数
+     */
+    int update(ImportTaxOrderRecordEntity importTaxOrderRecord);
+
+    /**
+     * 根据主键删除
+     *
+     * @param itorId
+     * @return 删除条数
+     */
+    int delete(Long itorId);
+
+    /**
+     * 根据主键批量删除
+     *
+     * @param itorIds
+     * @return 删除条数
+     */
+    int deleteBatch(Long[]itorIds);
+}

+ 2 - 1
kmall-admin/src/main/java/com/kmall/admin/service/compared/OrderComparedErrorService.java

@@ -73,6 +73,7 @@ public interface OrderComparedErrorService {
 
     /**
      * 对比订单
+     * @param comparedDate
      */
-    String comparedOrder();
+    String comparedOrder(String comparedDate);
 }

+ 2 - 1
kmall-admin/src/main/java/com/kmall/admin/service/compared/PayOrderInfoService.java

@@ -76,8 +76,9 @@ public interface PayOrderInfoService {
 
     /**
      * 查询所有未对比的订单
+     * @param comparedDate
      */
-    List<PayOrderInfoEntity> queryNoComparedOrder();
+    List<PayOrderInfoEntity> queryNoComparedOrder(String comparedDate);
 
     /**
      * 批量修改数据

+ 80 - 0
kmall-admin/src/main/java/com/kmall/admin/service/compared/TaxComparedErrorService.java

@@ -0,0 +1,80 @@
+package com.kmall.admin.service.compared;
+
+
+import com.kmall.admin.entity.compared.TaxComparedErrorEntity;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Service接口
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-12-29 14:11:24
+ */
+public interface TaxComparedErrorService {
+
+    /**
+     * 根据主键查询实体
+     *
+     * @param id 主键
+     * @return 实体
+     */
+    TaxComparedErrorEntity queryObject(Integer mtceId);
+
+    /**
+     * 分页查询
+     *
+     * @param map 参数
+     * @return list
+     */
+    List<TaxComparedErrorEntity> queryList(Map<String, Object> map);
+
+    /**
+     * 分页统计总数
+     *
+     * @param map 参数
+     * @return 总数
+     */
+    int queryTotal(Map<String, Object> map);
+
+    /**
+     * 保存实体
+     *
+     * @param taxComparedError 实体
+     * @return 保存条数
+     */
+    int save(TaxComparedErrorEntity taxComparedError);
+
+    /**
+     * 根据主键更新实体
+     *
+     * @param taxComparedError 实体
+     * @return 更新条数
+     */
+    int update(TaxComparedErrorEntity taxComparedError);
+
+    /**
+     * 根据主键删除
+     *
+     * @param mtceId
+     * @return 删除条数
+     */
+    int delete(Integer mtceId);
+
+    /**
+     * 根据主键批量删除
+     *
+     * @param mtceIds
+     * @return 删除条数
+     */
+    int deleteBatch(Integer[]mtceIds);
+
+    /**
+     * 税单对比
+     * @return
+     * @param comparedDate
+     */
+    String comparedTaxOrder(String comparedDate);
+}

+ 83 - 0
kmall-admin/src/main/java/com/kmall/admin/service/compared/TaxInfoService.java

@@ -0,0 +1,83 @@
+package com.kmall.admin.service.compared;
+
+
+import com.kmall.admin.dto.TaxOrderDto;
+import com.kmall.admin.entity.compared.TaxInfoEntity;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Service接口
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-12-29 14:11:24
+ */
+public interface TaxInfoService {
+
+    /**
+     * 根据主键查询实体
+     *
+     * @param mtiId 主键
+     * @return 实体
+     */
+    TaxInfoEntity queryObject(Integer mtiId);
+
+    /**
+     * 分页查询
+     *
+     * @param map 参数
+     * @return list
+     */
+    List<TaxInfoEntity> queryList(Map<String, Object> map);
+
+    /**
+     * 分页统计总数
+     *
+     * @param map 参数
+     * @return 总数
+     */
+    int queryTotal(Map<String, Object> map);
+
+    /**
+     * 保存实体
+     *
+     * @param taxInfo 实体
+     * @return 保存条数
+     */
+    int save(TaxInfoEntity taxInfo);
+
+    /**
+     * 根据主键更新实体
+     *
+     * @param taxInfo 实体
+     * @return 更新条数
+     */
+    int update(TaxInfoEntity taxInfo);
+
+    /**
+     * 根据主键删除
+     *
+     * @param mtiId
+     * @return 删除条数
+     */
+    int delete(Integer mtiId);
+
+    /**
+     * 根据主键批量删除
+     *
+     * @param mtiIds
+     * @return 删除条数
+     */
+    int deleteBatch(Integer[]mtiIds);
+
+    /**
+     * 上传税单
+     * @param taxOrderDtoList
+     * @return
+     */
+    boolean uploadExcel(List<TaxOrderDto> taxOrderDtoList);
+
+    void updateBatch(List<TaxInfoEntity> taxInfoEntities);
+}

+ 3 - 1
kmall-admin/src/main/java/com/kmall/admin/service/impl/GoodsServiceImpl.java

@@ -935,9 +935,11 @@ public class GoodsServiceImpl implements GoodsService {
 
                     if(goodsDto.getGoodsRate().indexOf("%") != -1){
                         goodsDto.setGoodsRate(goodsDto.getGoodsRate().substring(0, goodsDto.getGoodsRate().indexOf("%")));
+                        goodsEntity.setGoodsRate(BigDecimal.valueOf(Double.valueOf(goodsDto.getGoodsRate())).divide(new BigDecimal(100), 4, BigDecimal.ROUND_HALF_UP));
+                    }else{
+                        goodsEntity.setGoodsRate(BigDecimal.valueOf(Double.valueOf(goodsDto.getGoodsRate())));
                     }
 
-                    goodsEntity.setGoodsRate(BigDecimal.valueOf(Double.valueOf(goodsDto.getGoodsRate())).divide(new BigDecimal(100), 4, BigDecimal.ROUND_HALF_UP));
                 }
 
                 goodsEntity.setIsOnSale(Integer.parseInt(goodsDto.getIsOnSaleStr()));

+ 20 - 8
kmall-admin/src/main/java/com/kmall/admin/service/impl/OrderGoodsServiceImpl.java

@@ -1,6 +1,7 @@
 package com.kmall.admin.service.impl;
 
 import com.kmall.admin.dao.OrderGoodsDao;
+import com.kmall.admin.dto.OrderGoodsDto;
 import com.kmall.admin.entity.OrderGoodsEntity;
 import com.kmall.admin.service.OrderGoodsService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -15,37 +16,37 @@ import java.util.Map;
 public class OrderGoodsServiceImpl implements OrderGoodsService {
 	@Autowired
 	private OrderGoodsDao orderGoodsDao;
-	
+
 	@Override
 	public OrderGoodsEntity queryObject(Integer id){
 		return orderGoodsDao.queryObject(id);
 	}
-	
+
 	@Override
 	public List<OrderGoodsEntity> queryList(Map<String, Object> map){
 		return orderGoodsDao.queryList(map);
 	}
-	
+
 	@Override
 	public int queryTotal(Map<String, Object> map){
 		return orderGoodsDao.queryTotal(map);
 	}
-	
+
 	@Override
 	public void save(OrderGoodsEntity orderGoods){
 		orderGoodsDao.save(orderGoods);
 	}
-	
+
 	@Override
 	public void update(OrderGoodsEntity orderGoods){
 		orderGoodsDao.update(orderGoods);
 	}
-	
+
 	@Override
 	public void delete(Integer id){
 		orderGoodsDao.delete(id);
 	}
-	
+
 	@Override
 	public void deleteBatch(Integer[] ids){
 		orderGoodsDao.deleteBatch(ids);
@@ -57,5 +58,16 @@ public class OrderGoodsServiceImpl implements OrderGoodsService {
 		map.put("orderId", orderId);
 		return orderGoodsDao.queryListByOrderId(map);
 	}
-	
+
+	/**
+	 * 查询税单
+	 *
+	 * @param format
+	 * @return
+	 */
+	@Override
+	public List<OrderGoodsDto> queryYesterdayTax(String format) {
+		return orderGoodsDao.queryYesterdayTax(format);
+	}
+
 }

+ 122 - 46
kmall-admin/src/main/java/com/kmall/admin/service/impl/OrderServiceImpl.java

@@ -1,8 +1,11 @@
 package com.kmall.admin.service.impl;
 
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.google.common.collect.ImmutableBiMap;
 import com.google.common.collect.Maps;
+import com.google.gson.Gson;
+import com.google.gson.internal.LinkedTreeMap;
 import com.kmall.admin.dao.*;
 import com.kmall.admin.dao.alarm.Mall2LowPriceWarningDao;
 import com.kmall.admin.dao.mk.Mk2GoodsTopicPriceDao;
@@ -16,8 +19,6 @@ import com.kmall.admin.dao.vip.Mall2PointsRulesDao;
 import com.kmall.admin.dto.*;
 import com.kmall.admin.entity.*;
 import com.kmall.admin.entity.OrderProcessRecordEntity;
-import com.kmall.admin.entity.alarm.Mall2LowPriceWarningEntity;
-import com.kmall.admin.entity.mk.Mk2GoodsTopicPriceEntity;
 import com.kmall.admin.entity.mk.store.*;
 import com.kmall.admin.entity.vip.Mall2MemberConsumptionRecordsEntity;
 import com.kmall.admin.entity.vip.Mall2MemberPointsEntity;
@@ -27,9 +28,11 @@ import com.kmall.admin.service.*;
 import com.kmall.admin.service.mk.store.MkStoreCampMinusService;
 import com.kmall.admin.service.mk.store.MkStoreTicketDiscountService;
 import com.kmall.admin.utils.CalculateTax;
+import com.kmall.admin.utils.data.response.ResponseMessage;
+import com.kmall.admin.utils.data.response.ResponseMessageData;
+import com.kmall.admin.utils.oms.OmsSign;
 import com.kmall.admin.websocket.WebSocketServer;
 import com.kmall.api.entity.*;
-import com.kmall.api.entity.mk.MkStoreTicketDiscountVo;
 import com.kmall.common.utils.ResponseData;
 import com.kmall.common.utils.wechat.WechatMicropayApiResult;
 import com.kmall.common.utils.wechat.WechatReverseApiResult;
@@ -41,6 +44,7 @@ import com.kmall.manager.manager.express.sf.properties.SFUtil;
 import com.kmall.manager.manager.express.sf.entity.SfRouteServiceResponseEntity;
 import com.kmall.manager.manager.express.sf.entity.RouteEntity;
 import com.kmall.manager.manager.express.sf.entity.RouteResponseEntity;
+import com.kmall.manager.manager.merch.OmsMerchProperties;
 import com.kmall.manager.manager.print.ticket.TicketPrintUtil;
 import com.kmall.manager.manager.wechat.WechatUtil;
 import com.kmall.manager.manager.wechat.wxglobal.dto.WechatGlobalRefundApiResult;
@@ -54,7 +58,7 @@ import com.kmall.common.utils.*;
 import com.kmall.common.utils.print.ticket.item.*;
 import com.kmall.manager.manager.express.kdn.KdniaoUtil;
 import com.kmall.common.utils.wechat.WechatRefundApiResult;
-import com.mysql.cj.util.TimeUtil;
+import okhttp3.Request;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -62,7 +66,6 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.io.IOException;
-import java.io.UnsupportedEncodingException;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.net.InetAddress;
@@ -70,10 +73,7 @@ import java.net.URLDecoder;
 import java.text.DateFormat;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
-import java.time.LocalDate;
-import java.time.LocalDateTime;
 import java.util.*;
-import java.util.concurrent.TimeUnit;
 
 
 @Service("orderService")
@@ -82,6 +82,9 @@ public class OrderServiceImpl implements OrderService {
     private final Logger LOGGER = LoggerFactory.getLogger(OrderServiceImpl.class);
 
     @Autowired
+    private OmsMerchProperties omsMerchProperties;
+
+    @Autowired
     private OrderDao orderDao;
     @Autowired
     private ShippingDao shippingDao;
@@ -710,7 +713,7 @@ public class OrderServiceImpl implements OrderService {
         queryStorePromRealUpdateIsScan(order);
     }
 
-    private void updateStock(OrderEntity order, String changeReason) {
+    private synchronized void updateStock(OrderEntity order, String changeReason) {
         Map<String, Object> map = new HashMap();
         SysUserEntity user = ShiroUtils.getUserEntity();
         map.put("orderId", order.getId());
@@ -2061,8 +2064,11 @@ public class OrderServiceImpl implements OrderService {
                 }
             }
 
-            OrderEntity orderEntity = queryObject(order.getId());
-            orderDao.update(orderEntity);
+//            OrderEntity orderEntity = queryObject(order.getId());
+//             TODO 到时候要注释掉,测试用而已
+//            orderEntity.setOrderStatus(Integer.parseInt(Dict.orderStatus.item_201.getItem()));
+//            orderEntity.setPayStatus(Integer.parseInt(Dict.payStatus.item_2.getItem()));
+//            orderDao.update(orderEntity);
             resultObj.put("shopName", store.getStoreName()); // 根据门店编号查询
             resultObj.put("userName", user.getUsername());
 
@@ -2528,11 +2534,7 @@ public class OrderServiceImpl implements OrderService {
     public synchronized R orderRefund(OrderEntity order, String sessionId) throws Exception {
         String payFlag = order.getPayFlag();
 
-        boolean needUpdateStock = true;
-        if (Dict.payFlag.item_cash.getItem().equals(payFlag)) {
-            order.setPayStatus(Integer.parseInt(Dict.payStatus.item_4.getItem()));
-            // TODO 微信的退款代码
-        } else if (Dict.payFlag.item_weixin.getItem().equals(payFlag)) {
+        if (Dict.payFlag.item_weixin.getItem().equals(payFlag)) {
             OrderEntity orderInfo = order;
             if (null == orderInfo) {
                 return R.error("订单不存在");
@@ -2555,6 +2557,13 @@ public class OrderServiceImpl implements OrderService {
                 order.setPayStatus(Integer.parseInt(Dict.payStatus.item_5.getItem()));
                 order.setOrderStatus(Integer.parseInt(Dict.orderStatus.item_401.getItem()));
                 LOGGER.info("微信退款");
+
+                orderDao.update(order);//修改为退款成功
+                // 修改取货码
+                PickUpCodeEntity pickUpCodeEntity = pickUpCodeService.queryObject(order.getOrderSn());
+                pickUpCodeEntity.setPickUpCodeStatus("3");
+                pickUpCodeService.update(pickUpCodeEntity);
+                updateStock(order, "收银端退款");
             }
             // 支付宝的退款代码
         } else if (Dict.payFlag.item_alipay.getItem().equals(payFlag)) {
@@ -2583,13 +2592,15 @@ public class OrderServiceImpl implements OrderService {
                 orderRefund.setRefundType(Integer.parseInt(Dict.RefundType.item_1.getItem()));//用户全额退款
             }
             orderRefundDao.save(orderRefund);//退款记录
+
+            orderDao.update(order);//修改为退款成功
+            // 修改取货码
+            PickUpCodeEntity pickUpCodeEntity = pickUpCodeService.queryObject(order.getOrderSn());
+            pickUpCodeEntity.setPickUpCodeStatus("3");
+            pickUpCodeService.update(pickUpCodeEntity);
+            updateStock(order, "收银端退款");
         }
-        orderDao.update(order);//修改为退款成功
-        // 修改取货码
-        PickUpCodeEntity pickUpCodeEntity = pickUpCodeService.queryObject(order.getOrderSn());
-        pickUpCodeEntity.setPickUpCodeStatus("3");
-        pickUpCodeService.update(pickUpCodeEntity);
-        updateStock(order, "收银端退款");
+
         return R.ok("退款成功");
     }
 
@@ -2670,30 +2681,28 @@ public class OrderServiceImpl implements OrderService {
     }
 
     @Override
-    public List<OrderEntity> queryLastDayOrder() {
+    public List<OrderEntity> queryLastDayOrder(String comparedDate) {
 
         Map<String, Object> map = new HashMap<>();
+//
+//        DateFormat dateFmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//格式化一下时间
+//
+//        Date dNow = new Date(); //当前时间
+//
+//        Date dBefore = new Date();
+//
+//        Calendar calendar = Calendar.getInstance(); //得到日历
+//
+//        calendar.setTime(dNow);//把当前时间赋给日历
+//
+//        calendar.add(Calendar.DAY_OF_MONTH, -1); //设置为前一天
+//
+//        dBefore = calendar.getTime(); //得到前一天的时间
 
-        DateFormat dateFmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//格式化一下时间
-
-        Date dNow = new Date(); //当前时间
-
-        Date dBefore = new Date();
-
-        Calendar calendar = Calendar.getInstance(); //得到日历
-
-        calendar.setTime(dNow);//把当前时间赋给日历
-
-        calendar.add(Calendar.DAY_OF_MONTH, -1); //设置为前一天
-
-        dBefore = calendar.getTime(); //得到前一天的时间
-
-        String defaultStartDate = dateFmt.format(dBefore); //格式化前一天
-
-        defaultStartDate = defaultStartDate.substring(0, 10) + " 00:00:00";
+        String defaultStartDate =  comparedDate + " 00:00:00";
 
 
-        String defaultEndDate = defaultStartDate.substring(0, 10) + " 23:59:59";
+        String defaultEndDate = comparedDate + " 23:59:59";
 
 
         map.put("startTime", defaultStartDate);
@@ -2812,16 +2821,16 @@ public class OrderServiceImpl implements OrderService {
                 // 获取实际支付价格
                 String postTaxPrice = taxDetailDto.getPostTaxPrice();
                 // 获取总税额
-                String  taxStr = taxDetailDto.getTax();
+                String  taxStr = taxDetailDto.getPreTax();
                 // 税前金额
                 BigDecimal tax = new BigDecimal(taxStr);
                 BigDecimal pretaxPrice = new BigDecimal(postTaxPrice).subtract(tax).setScale(2, RoundingMode.HALF_UP);
                 // 计算综合税率
                 BigDecimal taxRate = tax.divide(pretaxPrice, 4, RoundingMode.HALF_UP);
                 // 消费税率
-                BigDecimal saleTaxRate = new BigDecimal(taxDetailDto.getSaleTaxRate()).divide(new BigDecimal(100),2,RoundingMode.HALF_UP);
+                BigDecimal saleTaxRate = new BigDecimal(taxDetailDto.getPreSaleTax()).divide(new BigDecimal(100),2,RoundingMode.HALF_UP);
                 // 综合税率
-                BigDecimal vatRate = new BigDecimal(taxDetailDto.getVatRate()).divide(new BigDecimal(100),2,RoundingMode.HALF_UP);
+                BigDecimal vatRate = new BigDecimal(taxDetailDto.getPreVat()).divide(new BigDecimal(100),2,RoundingMode.HALF_UP);
 //              消费税 = (明细商品总价 / (1-消费税税率)) * 消费税税率
 //              增值税 = (明细商品总价 + 消费税) * 增值税税率
 //              订单该商品总税费 = (商品消费税 + 商品增值税)* 0.7
@@ -2838,8 +2847,8 @@ public class OrderServiceImpl implements OrderService {
                     // 不需要算消费税,增值税计算
                     vat = pretaxPrice.multiply(vatRate).multiply(discountRate).setScale(2, RoundingMode.HALF_UP);
                 }
-                taxDetailDto.setPreSaleTax(saleTax.toString());
-                taxDetailDto.setPreVat(vat.toString());
+                taxDetailDto.setPreSaleTax(saleTax.compareTo(BigDecimal.ZERO)==0?saleTax.toString():"-"+saleTax.toString());
+                taxDetailDto.setPreVat(vat.compareTo(BigDecimal.ZERO)==0?vat.toString():"-"+vat.toString());
             }
         }
 
@@ -2848,6 +2857,73 @@ public class OrderServiceImpl implements OrderService {
         return result;
     }
 
+    @Override
+    public List<String> queryInveResponse(String orderSn) throws IOException {
+        Map<String, String> sParaTemp = new TreeMap<String, String>();
+        sParaTemp.put("data",orderSn);
+        sParaTemp.put("merchId",omsMerchProperties.getMerchSn());
+        String timestamp = String.valueOf(System.currentTimeMillis()/1000);
+        sParaTemp.put("timestamp", timestamp);
+        //生成要请求给oms秘钥
+//        String sign = OmsSign.sign(sParaTemp,cus.getWaybill().get("secret-key"));
+        LOGGER.info("md5混淆码参数:" + omsMerchProperties.getMd5Salt());
+        String sign = OmsSign.sign(sParaTemp,omsMerchProperties.getMd5Salt());
+        sParaTemp.put("sign", sign);
+        //构建Request
+        String  url = omsMerchProperties.getQueryInveResponseUrl();
+//        url = "http://127.0.0.1:8680/al/queryInveResponse";
+        Request request = com.kmall.admin.utils.oms.OkHttpUtils.buildRequest(url, JSON.toJSONString(sParaTemp));
+        LOGGER.info("oms的请求报文:" + request);
+        // 同步访问,返回结果字符串
+        String responseString = null;
+        try {
+
+            responseString = com.kmall.admin.utils.oms.OkHttpUtils.post(request);
+
+        } catch (Exception e) {
+            e.printStackTrace();
+            throw e;
+        }
+
+        LOGGER.info("oms的响应报文"+responseString);
+        //解析响应数据
+        Gson gson = new Gson();
+        ResponseMessage result = gson.fromJson(responseString, ResponseMessage.class);
+        if(result == null){
+            String info = "解析响应数据Result失败";
+            LOGGER.error("--- {}", info);
+            throw new RuntimeException(info);
+        }
+        ResponseMessageData data = result.getData();
+        List rows = data.getRows();
+        List<String> resultMessage = new LinkedList<>();
+        for (Object row : rows) {
+            if(row instanceof ArrayList){
+                for (Object o : ((ArrayList<?>) row)) {
+                    if(o instanceof LinkedTreeMap){
+                        String cusReturnInfo = (String) ((LinkedTreeMap<?, ?>) o).get("cusReturnInfo");
+                        resultMessage.add(cusReturnInfo);
+                    }
+                }
+            }
+        }
+//        cusReturnInfo -> [Code:2600;Desc:放行]
+        return resultMessage;
+    }
+
+    /**
+     * 查询所有状态为201的订单。且下单时间超过5分钟的订单
+     *
+     * @return
+     */
+    @Override
+    public List<OrderEntity> queryAll201Order() {
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+        String date = format.format(new Date());
+        return orderDao.queryAll201Order(date);
+
+    }
+
 
     /**
      * 设置订单数据

+ 59 - 0
kmall-admin/src/main/java/com/kmall/admin/service/impl/compared/ImportPayOrderRecordServiceImpl.java

@@ -0,0 +1,59 @@
+package com.kmall.admin.service.impl.compared;
+
+import com.kmall.admin.dao.compared.ImportPayOrderRecordDao;
+import com.kmall.admin.entity.compared.ImportPayOrderRecordEntity;
+import com.kmall.admin.service.compared.ImportPayOrderRecordService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * 导入支付单记录表Service实现类
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2021-01-12 16:26:45
+ */
+@Service("importPayOrderRecordService")
+public class ImportPayOrderRecordServiceImpl implements ImportPayOrderRecordService {
+    @Autowired
+    private ImportPayOrderRecordDao importPayOrderRecordDao;
+
+    @Override
+    public ImportPayOrderRecordEntity queryObject(Long iporId) {
+        return importPayOrderRecordDao.queryObject(iporId);
+    }
+
+    @Override
+    public List<ImportPayOrderRecordEntity> queryList(Map<String, Object> map) {
+        return importPayOrderRecordDao.queryList(map);
+    }
+
+    @Override
+    public int queryTotal(Map<String, Object> map) {
+        return importPayOrderRecordDao.queryTotal(map);
+    }
+
+    @Override
+    public int save(ImportPayOrderRecordEntity importPayOrderRecord) {
+        return importPayOrderRecordDao.save(importPayOrderRecord);
+    }
+
+    @Override
+    public int update(ImportPayOrderRecordEntity importPayOrderRecord) {
+        return importPayOrderRecordDao.update(importPayOrderRecord);
+    }
+
+    @Override
+    public int delete(Long iporId) {
+        return importPayOrderRecordDao.delete(iporId);
+    }
+
+    @Override
+    public int deleteBatch(Long[]iporIds) {
+        return importPayOrderRecordDao.deleteBatch(iporIds);
+    }
+}

+ 59 - 0
kmall-admin/src/main/java/com/kmall/admin/service/impl/compared/ImportTaxOrderRecordServiceImpl.java

@@ -0,0 +1,59 @@
+package com.kmall.admin.service.impl.compared;
+
+import com.kmall.admin.dao.compared.ImportTaxOrderRecordDao;
+import com.kmall.admin.entity.compared.ImportTaxOrderRecordEntity;
+import com.kmall.admin.service.compared.ImportTaxOrderRecordService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * 导入税单记录表Service实现类
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2021-01-12 16:26:45
+ */
+@Service("importTaxOrderRecordService")
+public class ImportTaxOrderRecordServiceImpl implements ImportTaxOrderRecordService {
+    @Autowired
+    private ImportTaxOrderRecordDao importTaxOrderRecordDao;
+
+    @Override
+    public ImportTaxOrderRecordEntity queryObject(Long itorId) {
+        return importTaxOrderRecordDao.queryObject(itorId);
+    }
+
+    @Override
+    public List<ImportTaxOrderRecordEntity> queryList(Map<String, Object> map) {
+        return importTaxOrderRecordDao.queryList(map);
+    }
+
+    @Override
+    public int queryTotal(Map<String, Object> map) {
+        return importTaxOrderRecordDao.queryTotal(map);
+    }
+
+    @Override
+    public int save(ImportTaxOrderRecordEntity importTaxOrderRecord) {
+        return importTaxOrderRecordDao.save(importTaxOrderRecord);
+    }
+
+    @Override
+    public int update(ImportTaxOrderRecordEntity importTaxOrderRecord) {
+        return importTaxOrderRecordDao.update(importTaxOrderRecord);
+    }
+
+    @Override
+    public int delete(Long itorId) {
+        return importTaxOrderRecordDao.delete(itorId);
+    }
+
+    @Override
+    public int deleteBatch(Long[]itorIds) {
+        return importTaxOrderRecordDao.deleteBatch(itorIds);
+    }
+}

+ 79 - 24
kmall-admin/src/main/java/com/kmall/admin/service/impl/compared/OrderComparedErrorServiceImpl.java

@@ -1,11 +1,10 @@
 package com.kmall.admin.service.impl.compared;
 
 import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
 import com.google.gson.Gson;
 import com.google.gson.internal.LinkedTreeMap;
 import com.kmall.admin.dao.compared.OrderComparedErrorDao;
+import com.kmall.admin.dto.QueryOrderDto;
 import com.kmall.admin.entity.OrderEntity;
 import com.kmall.admin.entity.compared.OrderComparedErrorEntity;
 import com.kmall.admin.entity.compared.PayOrderInfoEntity;
@@ -13,7 +12,6 @@ import com.kmall.admin.service.OrderService;
 import com.kmall.admin.service.compared.OrderComparedErrorService;
 import com.kmall.admin.service.compared.PayOrderInfoService;
 import com.kmall.admin.utils.data.response.ResponseMessage;
-import com.kmall.admin.utils.data.response.ResponseMessageData;
 import com.kmall.admin.utils.oms.OkHttpUtils;
 import com.kmall.admin.utils.oms.OmsSign;
 import com.kmall.common.utils.R;
@@ -28,6 +26,8 @@ import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestMapping;
 
 import java.io.IOException;
+import java.text.DateFormat;
+import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -56,6 +56,8 @@ public class OrderComparedErrorServiceImpl implements OrderComparedErrorService
     @Autowired
     private OmsMerchProperties omsMerchProperties;
 
+    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+
 
     @Override
     public OrderComparedErrorEntity queryObject(Integer moceId) {
@@ -94,22 +96,23 @@ public class OrderComparedErrorServiceImpl implements OrderComparedErrorService
 
     /**
      * 对比订单
+     * @param comparedDate
      */
     @Override
     @Transactional
-    public String comparedOrder() {
+    public String comparedOrder(String comparedDate) {
 
         try {
             // 查询所有为对比的订单
-            List<PayOrderInfoEntity> payOrderInfoEntities = payOrderInfoService.queryNoComparedOrder();
+            List<PayOrderInfoEntity> payOrderInfoEntities = payOrderInfoService.queryNoComparedOrder(comparedDate);
             if(payOrderInfoEntities == null || payOrderInfoEntities.size() == 0){
                 return "暂无需要对比的订单";
             }
 
             // 对比中网的订单数据
-            comparedKmallOrder(payOrderInfoEntities);
+            comparedKmallOrder(payOrderInfoEntities,comparedDate);
             // 对比oms的订单数据
-            comparedOmsOrder(payOrderInfoEntities);
+            comparedOmsOrder(payOrderInfoEntities,comparedDate);
 
             // 批量修改支付单对比状态跟对比时间
             payOrderInfoService.updateBatch(payOrderInfoEntities);
@@ -121,13 +124,19 @@ public class OrderComparedErrorServiceImpl implements OrderComparedErrorService
         return "对比成功";
      }
 
-    private void comparedOmsOrder(List<PayOrderInfoEntity> payOrderInfoEntities) throws IOException {
+    private void comparedOmsOrder(List<PayOrderInfoEntity> payOrderInfoEntities, String comparedDate) throws IOException {
         // 查询oms系统前一天的订单
         List<OrderEntity> orderEntities = new ArrayList<>();
         List<String> merchOrderSns = payOrderInfoEntities.stream().map(PayOrderInfoEntity::getMerchOrderSn).collect(Collectors.toList());
 
+        QueryOrderDto queryOrderDto = new QueryOrderDto();
+        queryOrderDto.setQueryDate(comparedDate);
+        queryOrderDto.setThirdSn(omsMerchProperties.getThirdSn());
+
+
+
         Map<String, String> sParaTemp = new TreeMap<String, String>();
-        sParaTemp.put("data",omsMerchProperties.getThirdSn());
+        sParaTemp.put("data",JSON.toJSONString(queryOrderDto));
         sParaTemp.put("merchId",omsMerchProperties.getMerchSn());
         String timestamp = String.valueOf(System.currentTimeMillis()/1000);
         sParaTemp.put("timestamp", timestamp);
@@ -138,7 +147,7 @@ public class OrderComparedErrorServiceImpl implements OrderComparedErrorService
         sParaTemp.put("sign", sign);
         //构建Request
         String  url = omsMerchProperties.getQueryOrderUrl();
-        url = "http://127.0.0.1:8680/al/shop/order/query";
+//        url = "http://127.0.0.1:8680/al/shop/order/query";
         Request request = OkHttpUtils.buildRequest(url, JSON.toJSONString(sParaTemp));
         LOGGER.info("oms的请求报文:" + request);
         // 同步访问,返回结果字符串
@@ -169,16 +178,33 @@ public class OrderComparedErrorServiceImpl implements OrderComparedErrorService
 
         Map<String,OrderComparedErrorEntity> inconsistentMap = new HashMap<>();
 
-
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
         for(PayOrderInfoEntity parOrderInfo : payOrderInfoEntities){
 
             String merchOrderSn = parOrderInfo.getMerchOrderSn();
             // 将订单号插入到表中
             OrderComparedErrorEntity orderComparedErrorEntity = new OrderComparedErrorEntity();
-            orderComparedErrorEntity.setMerchOrderSn(merchOrderSn);
-            orderComparedErrorEntity.setOrderSource("OMS");
-            orderComparedErrorEntity.setReason("oms无订单");
-            inconsistentMap.put(merchOrderSn,orderComparedErrorEntity);
+
+            try {
+                // 获取前一天日期
+                String yesterday = getYesterday();
+
+
+                if(!format.format(format.parse(parOrderInfo.getPayTime())).equals(yesterday)){
+                    orderComparedErrorEntity.setMerchOrderSn(merchOrderSn);
+                    orderComparedErrorEntity.setOrderSource("OMS");
+                    orderComparedErrorEntity.setReason("oms无订单");
+                    orderComparedErrorEntity.setCreateTime(parOrderInfo.getPayTime());
+                    inconsistentMap.put(merchOrderSn,orderComparedErrorEntity);
+                }
+            } catch (ParseException e) {
+                e.printStackTrace();
+            }
+
+//            orderComparedErrorEntity.setOrderSource("OMS");
+//            orderComparedErrorEntity.setReason("oms无订单");
+//            orderComparedErrorEntity.setCreateTime(format);
+//            inconsistentMap.put(merchOrderSn,orderComparedErrorEntity);
 
             for(int i = 0 ; i < rows.size() ; i ++){
                 LinkedTreeMap<String,Object> treeMap = (LinkedTreeMap<String, Object>) rows.get(i);
@@ -189,14 +215,21 @@ public class OrderComparedErrorServiceImpl implements OrderComparedErrorService
                         orderStatus = "300";
                     }
                     // 判断订单状态 不等于支付单状态
-                    if(!orderStatus.equals(Integer.parseInt(parOrderInfo.getOrderStatus()))){
-
+                    if(!orderStatus.equals(parOrderInfo.getOrderStatus())){
+                        orderComparedErrorEntity.setMerchOrderSn(merchOrderSn);
                         orderComparedErrorEntity.setOrderSource("OMS");
-                        orderComparedErrorEntity.setReason("订单状态不一致");
-//                        inconsistentMap.put(orderSn,orderComparedErrorEntity);
+                        if(orderStatus.equals("52")){
+                            orderComparedErrorEntity.setReason("订单状态不一致,oms需要调减");
+
+                        }else{
+                            orderComparedErrorEntity.setReason("订单状态不一致,需要查询oms系统");
+                        }
+                        orderComparedErrorEntity.setCreateTime(parOrderInfo.getPayTime());
+                        inconsistentMap.put(orderSn,orderComparedErrorEntity);
                         continue;
                     }
-                    // 如果状态一直,然后map中有数据,则证明是当天退款的订单( 支付单:收费  退费 2条 订单 : 退 1条)
+
+                    // 如果状态一致,然后map中有数据,则证明是当天退款的订单( 支付单:收费  退费 2条 订单 : 退 1条)
                     if(orderComparedErrorEntity != null){
                         inconsistentMap.remove(orderSn);
                     }
@@ -207,7 +240,7 @@ public class OrderComparedErrorServiceImpl implements OrderComparedErrorService
 
 
             parOrderInfo.setCompared("1");
-            parOrderInfo.setComparedTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
+            parOrderInfo.setComparedTime(dateFormat.format(new Date()));
 
         }
 
@@ -218,9 +251,29 @@ public class OrderComparedErrorServiceImpl implements OrderComparedErrorService
         }
     }
 
-    private void comparedKmallOrder(List<PayOrderInfoEntity> payOrderInfoEntities) {
-        // 查询前一天的订单
-        List<OrderEntity> orderEntities = orderService.queryLastDayOrder();
+    private String getYesterday() {
+        Map<String, Object> map = new HashMap<>();
+
+        DateFormat dateFmt = new SimpleDateFormat("yyyy-MM-dd");//格式化一下时间
+
+        Date dNow = new Date(); //当前时间
+
+        Date dBefore = new Date();
+
+        Calendar calendar = Calendar.getInstance(); //得到日历
+
+        calendar.setTime(dNow);//把当前时间赋给日历
+
+        calendar.add(Calendar.DAY_OF_MONTH, -1); //设置为前一天
+
+        dBefore = calendar.getTime(); //得到前一天的时间
+
+        return dateFmt.format(dBefore); //格式化前一天
+    }
+
+    private void comparedKmallOrder(List<PayOrderInfoEntity> payOrderInfoEntities, String comparedDate) {
+        // 查询导入日期的的订单
+        List<OrderEntity> orderEntities = orderService.queryLastDayOrder(comparedDate);
         // 要插入的异常订单集合
         List<OrderComparedErrorEntity> insertList = new ArrayList<>();
 
@@ -229,6 +282,7 @@ public class OrderComparedErrorServiceImpl implements OrderComparedErrorService
         Map<String,OrderComparedErrorEntity> inconsistentMap = new HashMap<>();
 
 
+        String format = dateFormat.format(new Date());
         for(PayOrderInfoEntity parOrderInfo : payOrderInfoEntities){
 
             String merchOrderSn = parOrderInfo.getMerchOrderSn();
@@ -237,6 +291,7 @@ public class OrderComparedErrorServiceImpl implements OrderComparedErrorService
             orderComparedErrorEntity.setMerchOrderSn(merchOrderSn);
             orderComparedErrorEntity.setOrderSource("Kmall");
             orderComparedErrorEntity.setReason("kmall无订单");
+            orderComparedErrorEntity.setCreateTime(format);
             inconsistentMap.put(merchOrderSn,orderComparedErrorEntity);
 
             for(OrderEntity order : orderEntities){

+ 3 - 2
kmall-admin/src/main/java/com/kmall/admin/service/impl/compared/PayOrderInfoServiceImpl.java

@@ -152,10 +152,11 @@ public class PayOrderInfoServiceImpl implements PayOrderInfoService {
 
     /**
      * 查询所有未对比的订单
+     * @param comparedDate
      */
     @Override
-    public List<PayOrderInfoEntity> queryNoComparedOrder() {
-        return payOrderInfoDao.queryNoComparedOrder();
+    public List<PayOrderInfoEntity> queryNoComparedOrder(String comparedDate) {
+        return payOrderInfoDao.queryNoComparedOrder(comparedDate);
     }
 
     /**

+ 166 - 0
kmall-admin/src/main/java/com/kmall/admin/service/impl/compared/TaxComparedErrorServiceImpl.java

@@ -0,0 +1,166 @@
+package com.kmall.admin.service.impl.compared;
+
+import com.kmall.admin.dao.compared.TaxComparedErrorDao;
+import com.kmall.admin.dto.OrderGoodsDto;
+import com.kmall.admin.entity.compared.TaxComparedErrorEntity;
+import com.kmall.admin.entity.compared.TaxInfoEntity;
+import com.kmall.admin.service.OrderGoodsService;
+import com.kmall.admin.service.compared.TaxComparedErrorService;
+import com.kmall.admin.service.compared.TaxInfoService;
+import com.kmall.common.utils.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.math.BigDecimal;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.*;
+import java.util.stream.Collectors;
+
+
+/**
+ * Service实现类
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-12-29 14:11:24
+ */
+@Service("taxComparedErrorService")
+public class TaxComparedErrorServiceImpl implements TaxComparedErrorService {
+    @Autowired
+    private TaxComparedErrorDao taxComparedErrorDao;
+
+    @Autowired
+    private TaxInfoService taxInfoService;
+    @Autowired
+    private OrderGoodsService orderGoodsService;
+
+    @Override
+    public TaxComparedErrorEntity queryObject(Integer mtceId) {
+        return taxComparedErrorDao.queryObject(mtceId);
+    }
+
+    @Override
+    public List<TaxComparedErrorEntity> queryList(Map<String, Object> map) {
+        return taxComparedErrorDao.queryList(map);
+    }
+
+    @Override
+    public int queryTotal(Map<String, Object> map) {
+        return taxComparedErrorDao.queryTotal(map);
+    }
+
+    @Override
+    public int save(TaxComparedErrorEntity taxComparedError) {
+        return taxComparedErrorDao.save(taxComparedError);
+    }
+
+    @Override
+    public int update(TaxComparedErrorEntity taxComparedError) {
+        return taxComparedErrorDao.update(taxComparedError);
+    }
+
+    @Override
+    public int delete(Integer mtceId) {
+        return taxComparedErrorDao.delete(mtceId);
+    }
+
+    @Override
+    public int deleteBatch(Integer[]mtceIds) {
+        return taxComparedErrorDao.deleteBatch(mtceIds);
+    }
+
+    /**
+     * 税单对比
+     *
+     * @return
+     * @param comparedDate
+     */
+    @Override
+    @Transactional
+    public String comparedTaxOrder(String comparedDate) {
+        Map<String,Object> param = new HashMap<>();
+        param.put("compared","0");
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+
+
+//        DateFormat dateFmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//格式化一下时间
+//        Date dNow = new Date(); //当前时间
+//        Date dBefore = new Date();
+//        Calendar calendar = Calendar.getInstance(); //得到日历
+//        calendar.setTime(dNow);//把当前时间赋给日历
+//        calendar.add(Calendar.DAY_OF_MONTH, -1); //设置为前一天
+//        dBefore = calendar.getTime(); //得到前一天的时间
+//        String defaultStartDate = dateFmt.format(dBefore); //格式化前一天
+//        defaultStartDate = defaultStartDate.substring(0, 10);
+
+        // 查询导入的税单
+        List<TaxInfoEntity> taxInfoEntities = taxInfoService.queryList(param);
+        // 查询昨天的订单明细的税单
+        List<OrderGoodsDto> orderGoodsEntities = orderGoodsService.queryYesterdayTax(comparedDate);
+
+        Map<String, String> map = orderGoodsEntities.stream()
+                .collect(Collectors.toMap(OrderGoodsDto::getOrderSn, OrderGoodsDto::getTax , (key1,key2)->key2));
+
+        List<TaxComparedErrorEntity> taxComparedErrorEntities = new LinkedList<>();
+
+        // 对比两个结果集的税
+        for (TaxInfoEntity taxInfoEntity : taxInfoEntities) {
+
+            // 获取订单号
+            String merchOrderSn = taxInfoEntity.getMerchOrderSn();
+            BigDecimal tax = taxInfoEntity.getTax();
+
+            taxInfoEntity.setCompared("1");
+            taxInfoEntity.setComparedTime(format.format(new Date()));
+            String kmallTax = map.get(merchOrderSn);
+            if(StringUtils.isNullOrEmpty(kmallTax)){
+                // 如果为空,证明kmall这个订单是异常订单
+                TaxComparedErrorEntity taxComparedErrorEntity = new TaxComparedErrorEntity();
+                taxComparedErrorEntity.setMerchOrderSn(merchOrderSn);
+                taxComparedErrorEntity.setCreateTime(format.format(new Date()));
+                taxComparedErrorEntity.setOmsTax(tax);
+                taxComparedErrorEntity.setKmallTax(new BigDecimal(0));
+                taxComparedErrorEntities.add(taxComparedErrorEntity);
+            }else{
+                // 获取kmall的税
+                BigDecimal kmall = new BigDecimal(kmallTax);
+                // 对比oms跟kmall的税,如果不一致,生成异常信息
+                if(kmall.compareTo(tax) != 0){
+                    TaxComparedErrorEntity taxComparedErrorEntity = new TaxComparedErrorEntity();
+                    taxComparedErrorEntity.setMerchOrderSn(merchOrderSn);
+                    taxComparedErrorEntity.setCreateTime(format.format(new Date()));
+                    taxComparedErrorEntity.setOmsTax(tax);
+                    taxComparedErrorEntity.setKmallTax(kmall);
+                    taxComparedErrorEntities.add(taxComparedErrorEntity);
+                }
+            }
+            // 交验完后从map中删除这个key
+            map.remove(merchOrderSn);
+        }
+
+        // 判断是否还有未生成的异常订单,循环map
+        Iterator<String> iterator = map.keySet().iterator();
+        while(iterator.hasNext()){
+            String orderSn = iterator.next();
+            String kmallTax = map.get(orderSn);
+            TaxComparedErrorEntity taxComparedErrorEntity = new TaxComparedErrorEntity();
+            taxComparedErrorEntity.setMerchOrderSn(orderSn);
+            taxComparedErrorEntity.setCreateTime(format.format(new Date()));
+            taxComparedErrorEntity.setOmsTax(new BigDecimal(0));
+            taxComparedErrorEntity.setKmallTax(new BigDecimal(kmallTax));
+            taxComparedErrorEntities.add(taxComparedErrorEntity);
+        }
+
+        // 批量插入
+        if(taxComparedErrorEntities != null && taxComparedErrorEntities.size() > 0){
+            taxComparedErrorDao.saveBatch(taxComparedErrorEntities);
+        }
+        if(taxInfoEntities != null && taxInfoEntities.size() > 0){
+            taxInfoService.updateBatch(taxInfoEntities);
+        }
+
+        return "对比成功";
+    }
+}

+ 112 - 0
kmall-admin/src/main/java/com/kmall/admin/service/impl/compared/TaxInfoServiceImpl.java

@@ -0,0 +1,112 @@
+package com.kmall.admin.service.impl.compared;
+
+import com.kmall.admin.dao.compared.TaxInfoDao;
+import com.kmall.admin.dto.TaxOrderDto;
+import com.kmall.admin.entity.compared.TaxInfoEntity;
+import com.kmall.admin.fromcomm.entity.SysUserEntity;
+import com.kmall.admin.service.compared.TaxInfoService;
+import com.kmall.admin.utils.ShiroUtils;
+import org.apache.poi.ss.formula.functions.T;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+
+/**
+ * Service实现类
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-12-29 14:11:24
+ */
+@Service("taxInfoService")
+public class TaxInfoServiceImpl implements TaxInfoService {
+    @Autowired
+    private TaxInfoDao taxInfoDao;
+
+    @Override
+    public TaxInfoEntity queryObject(Integer mtiId) {
+        return taxInfoDao.queryObject(mtiId);
+    }
+
+    @Override
+    public List<TaxInfoEntity> queryList(Map<String, Object> map) {
+        return taxInfoDao.queryList(map);
+    }
+
+    @Override
+    public int queryTotal(Map<String, Object> map) {
+        return taxInfoDao.queryTotal(map);
+    }
+
+    @Override
+    public int save(TaxInfoEntity taxInfo) {
+        return taxInfoDao.save(taxInfo);
+    }
+
+    @Override
+    public int update(TaxInfoEntity taxInfo) {
+        return taxInfoDao.update(taxInfo);
+    }
+
+    @Override
+    public int delete(Integer mtiId) {
+        return taxInfoDao.delete(mtiId);
+    }
+
+    @Override
+    public int deleteBatch(Integer[]mtiIds) {
+        return taxInfoDao.deleteBatch(mtiIds);
+    }
+
+    /**
+     * 上传税单
+     *
+     * @param taxOrderDtoList
+     * @return
+     */
+    @Override
+    @Transactional
+    public boolean uploadExcel(List<TaxOrderDto> taxOrderDtoList) {
+
+        if(taxOrderDtoList != null && taxOrderDtoList.size() > 0){
+
+            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+            SysUserEntity user = ShiroUtils.getUserEntity();
+            List<TaxInfoEntity> taxInfoEntities = new LinkedList<>();
+
+            Map<String,TaxInfoEntity> importTax = new HashMap<>();
+
+            for (TaxOrderDto taxOrderDto : taxOrderDtoList) {
+                TaxInfoEntity taxInfoEntity = new TaxInfoEntity();
+                taxInfoEntity.setMerchOrderSn(taxOrderDto.getOrderSn());
+                taxInfoEntity.setPreTaxPrice(new BigDecimal(taxOrderDto.getPreTaxPrice()));
+                taxInfoEntity.setTax(new BigDecimal(taxOrderDto.getTax()));
+                taxInfoEntity.setImportTime(format.format(new Date()));
+                taxInfoEntity.setImporter(user.getUserId()+"");
+                taxInfoEntity.setCompared("0");
+
+                TaxInfoEntity entity = importTax.get(taxOrderDto.getOrderSn());
+                if(entity != null){
+                    entity.setTax(entity.getTax().add(new BigDecimal(taxOrderDto.getTax())));
+                    continue;
+                }
+                importTax.put(taxOrderDto.getOrderSn(),taxInfoEntity);
+                taxInfoEntities.add(taxInfoEntity);
+            }
+            taxInfoDao.saveBatch(taxInfoEntities);
+            return true;
+        }else{
+            return false;
+        }
+    }
+
+    @Override
+    public void updateBatch(List<TaxInfoEntity> taxInfoEntities) {
+        taxInfoDao.updateBatch(taxInfoEntities);
+    }
+}

+ 59 - 0
kmall-admin/src/main/java/com/kmall/admin/service/impl/kmall2eccs/KtoEccsServiceImpl.java

@@ -0,0 +1,59 @@
+package com.kmall.admin.service.impl.kmall2eccs;
+
+import com.kmall.admin.dao.kmall2eccs.KtoEccsDao;
+import com.kmall.admin.entity.kmall2eccs.KtoEccsEntity;
+import com.kmall.admin.service.kmall2eccs.KtoEccsService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * Service实现类
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2021-01-12 15:50:45
+ */
+@Service("ktoEccsService")
+public class KtoEccsServiceImpl implements KtoEccsService {
+    @Autowired
+    private KtoEccsDao ktoEccsDao;
+
+    @Override
+    public KtoEccsEntity queryObject(Long kteId) {
+        return ktoEccsDao.queryObject(kteId);
+    }
+
+    @Override
+    public List<KtoEccsEntity> queryList(Map<String, Object> map) {
+        return ktoEccsDao.queryList(map);
+    }
+
+    @Override
+    public int queryTotal(Map<String, Object> map) {
+        return ktoEccsDao.queryTotal(map);
+    }
+
+    @Override
+    public int save(KtoEccsEntity ktoEccs) {
+        return ktoEccsDao.save(ktoEccs);
+    }
+
+    @Override
+    public int update(KtoEccsEntity ktoEccs) {
+        return ktoEccsDao.update(ktoEccs);
+    }
+
+    @Override
+    public int delete(Long kteId) {
+        return ktoEccsDao.delete(kteId);
+    }
+
+    @Override
+    public int deleteBatch(Long[]kteIds) {
+        return ktoEccsDao.deleteBatch(kteIds);
+    }
+}

+ 73 - 0
kmall-admin/src/main/java/com/kmall/admin/service/kmall2eccs/KtoEccsService.java

@@ -0,0 +1,73 @@
+package com.kmall.admin.service.kmall2eccs;
+
+
+import com.kmall.admin.entity.kmall2eccs.KtoEccsEntity;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Service接口
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2021-01-12 15:50:45
+ */
+public interface KtoEccsService {
+
+    /**
+     * 根据主键查询实体
+     *
+     * @param kteId 主键
+     * @return 实体
+     */
+    KtoEccsEntity queryObject(Long kteId);
+
+    /**
+     * 分页查询
+     *
+     * @param map 参数
+     * @return list
+     */
+    List<KtoEccsEntity> queryList(Map<String, Object> map);
+
+    /**
+     * 分页统计总数
+     *
+     * @param map 参数
+     * @return 总数
+     */
+    int queryTotal(Map<String, Object> map);
+
+    /**
+     * 保存实体
+     *
+     * @param ktoEccs 实体
+     * @return 保存条数
+     */
+    int save(KtoEccsEntity ktoEccs);
+
+    /**
+     * 根据主键更新实体
+     *
+     * @param ktoEccs 实体
+     * @return 更新条数
+     */
+    int update(KtoEccsEntity ktoEccs);
+
+    /**
+     * 根据主键删除
+     *
+     * @param kteId
+     * @return 删除条数
+     */
+    int delete(Long kteId);
+
+    /**
+     * 根据主键批量删除
+     *
+     * @param kteIds
+     * @return 删除条数
+     */
+    int deleteBatch(Long[]kteIds);
+}

+ 1 - 1
kmall-admin/src/main/java/com/kmall/admin/utils/CalculateTax.java

@@ -57,7 +57,7 @@ public class CalculateTax {
 
     static {
         hsCodeMap.put("3304990029",new BigDecimal("10"));
-        hsCodeMap.put("3304910000",new BigDecimal("10"));
+        hsCodeMap.put("3304910090",new BigDecimal("10"));
         hsCodeMap.put("3303000010",new BigDecimal("10"));
         hsCodeMap.put("3303000020",new BigDecimal("10"));
         hsCodeMap.put("3304100091",new BigDecimal("10"));

+ 42 - 8
kmall-admin/src/main/java/com/kmall/admin/websocket/WebSocketServer.java

@@ -1,8 +1,12 @@
 package com.kmall.admin.websocket;
 
 import com.alibaba.fastjson.JSONObject;
+import com.kmall.admin.entity.OrderEntity;
 import com.kmall.admin.entity.PickUpCodeEntity;
+import com.kmall.admin.service.OrderService;
 import com.kmall.admin.service.PickUpCodeService;
+import com.kmall.api.util.SendMsgUtil;
+import com.kmall.common.utils.R;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -39,30 +43,27 @@ public class WebSocketServer {
     private static Map<String, List<PickUpCodeEntity>> pickUpCodeMap ;
 
     private static List<PickUpCodeEntity> pickUpList ;
+    static SimpleDateFormat sdf = null;
     static {
         // concurrent包的线程安全Set,用来存放每个客户端对应的Session对象。
         SessionSet = new CopyOnWriteArraySet<Session>();
         pickUpCodeMap = new HashMap<>();
         pickUpList = new ArrayList<>();
+        sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
     }
 
 
 
 
-
     private static PickUpCodeService pickUpCodeService;
+    private static OrderService orderService;
     @Autowired
-    public void setOptionService(PickUpCodeService pickUpCodeService) {
+    public void setOptionService(PickUpCodeService pickUpCodeService,OrderService orderService) {
         WebSocketServer.pickUpCodeService = pickUpCodeService;
+        WebSocketServer.orderService = orderService;
     }
 
     public static void delete(String sessionId, Integer storeId, PickUpCodeEntity pickUpCodeEntity) throws IOException {
-//        List<PickUpCodeEntity> pickUpCodeEntities = pickUpCodeMap.get(storeId+"");
-//        for(PickUpCodeEntity pick : pickUpList){
-//            if(pick.getPickUpCodeSn().equalsIgnoreCase(pickUpCodeEntity.getPickUpCodeSn())){
-//                pickUpList.remove(pick);
-//            }
-//        }
 
         sendMessage(sessionId,"delete",storeId+"");
 
@@ -143,6 +144,39 @@ public class WebSocketServer {
 //                pickUpCodeEntities = pickUpCodeMap.get(picNo);
 //            }
             Map<String,Object> data = new HashMap<>();
+
+
+            data.put("delayResponse",false);
+            /**
+             * 查询是否有卡单的情况
+             * 步骤:
+             *  1.查询所有状态为201且下单时间超过5分钟的订单
+             *  2.判断订单数是否超过10个,如果超过10个,则去查询oms是否有该订单,如果有该订单,是否存在回执
+             *  3.循环查询,如果第一个有回执,则查询第二个,直到查询到最后一个,如果都有回执,则无异常,如果其中有一个单无回执,则证明海关可能卡单
+             *  4.如果海关卡单,给页面一个卡单提示,并且发送短信给客服相关人员
+             */
+            try{
+                // 1.查询所有状态为201且下单时间超过5分钟的订单
+//                List<OrderEntity> all201Order = orderService.queryAll201Order();
+//                if(all201Order != null && all201Order.size() >= 10){
+//                    // 循环查询oms是否有回执
+//                    for (OrderEntity orderEntity : all201Order) {
+//                        List<String> resultMessage = orderService.queryInveResponse(orderEntity.getOrderSn());
+//                        if(resultMessage == null || resultMessage.size() == 0){
+//                            String sendTemplate = "【CW惠州门店】时间:" + sdf.format(new Date()) + ",订单出现卡单情况!";
+////
+////                            SendMsgUtil.sendMsg("18825104165", sendTemplate);
+////                            SendMsgUtil.sendMsg("", sendTemplate);
+//
+//                            // 如果能进这里,证明卡回执了
+//                            data.put("delayResponse",true);
+//                        }
+//                    }
+//                }
+            }catch (Exception e){
+
+            }
+
             if("服务端返回WebSocket连接成功".equalsIgnoreCase(message)){
 
                 data.put("sessionId",session.getId());

+ 19 - 0
kmall-admin/src/main/resources/XmlTemplate/TaxOrderDtoList.xml

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<workbook>
+    <worksheet name="Sheet1">
+        <section startRow="0" endRow="0"/>
+        <loop startRow="1" endRow="1" items="TaxOrderDtoList" var="TaxOrderDto"
+              varType="com.kmall.admin.dto.TaxOrderDto">
+            <section startRow="1" endRow="1">
+                <mapping row="1" col="0">TaxOrderDto.orderSn</mapping>
+                <mapping row="1" col="4">TaxOrderDto.preTaxPrice</mapping>
+                <mapping row="1" col="9">TaxOrderDto.tax</mapping>
+            </section>
+            <loopbreakcondition>
+                <rowcheck offset="0">
+                    <cellcheck offset="0"></cellcheck>
+                </rowcheck>
+            </loopbreakcondition>
+        </loop>
+    </worksheet>
+</workbook>

+ 13 - 0
kmall-admin/src/main/resources/mybatis/mapper/OrderDao.xml

@@ -2306,4 +2306,17 @@
         </if>
     </select>
 
+    <select id="queryAll201Order" resultType="com.kmall.admin.entity.OrderEntity">
+        SELECT
+            *
+        FROM
+            mall_order
+        WHERE
+            DATE_FORMAT( create_time, '%Y-%m-%d' ) = #{date}
+            AND order_status = 201
+            AND now( ) - INTERVAL 5 MINUTE >= pay_time
+        ORDER BY
+            create_time DESC
+    </select>
+
 </mapper>

+ 16 - 0
kmall-admin/src/main/resources/mybatis/mapper/OrderGoodsDao.xml

@@ -275,4 +275,20 @@
     </select>
 
 
+    <select id="queryYesterdayTax" resultType="com.kmall.admin.dto.OrderGoodsDto">
+        SELECT
+            o.order_sn as orderSn,
+            sum( tax_price ) as tax
+        FROM
+            mall_order_goods g,
+            mall_order o
+        WHERE
+            g.order_id = o.id
+            AND o.order_status = 300
+            AND DATE_FORMAT( g.create_time, '%Y-%m-%d' ) = #{date}
+        GROUP BY
+            order_id
+    </select>
+
+
 </mapper>

+ 111 - 0
kmall-admin/src/main/resources/mybatis/mapper/compared/ImportPayOrderRecordDao.xml

@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.kmall.admin.dao.compared.ImportPayOrderRecordDao">
+
+    <resultMap type="com.kmall.admin.entity.compared.ImportPayOrderRecordEntity" id="importPayOrderRecordMap">
+        <result property="iporId" column="ipor_id"/>
+        <result property="importer" column="importer"/>
+        <result property="importTime" column="import_time"/>
+        <result property="importFileName" column="import_file_name"/>
+        <result property="createTime" column="create_time"/>
+        <result property="createrSn" column="creater_sn"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="moderSn" column="moder_sn"/>
+    </resultMap>
+
+	<select id="queryObject" resultType="com.kmall.admin.entity.compared.ImportPayOrderRecordEntity">
+		select
+			`ipor_id`,
+			`importer`,
+			`import_time`,
+			`import_file_name`,
+			`create_time`,
+			`creater_sn`,
+			`update_time`,
+			`moder_sn`
+		from import_pay_order_record
+		where ipor_id = #{id}
+	</select>
+
+	<select id="queryList" resultType="com.kmall.admin.entity.compared.ImportPayOrderRecordEntity">
+		select
+    		`ipor_id`,
+    		`importer`,
+    		`import_time`,
+    		`import_file_name`,
+    		`create_time`,
+    		`creater_sn`,
+    		`update_time`,
+    		`moder_sn`
+		from import_pay_order_record
+		WHERE 1=1
+		<if test="name != null and name.trim() != ''">
+			AND name LIKE concat('%',#{name},'%')
+		</if>
+        <choose>
+            <when test="sidx != null and sidx.trim() != ''">
+                order by ${sidx} ${order}
+            </when>
+			<otherwise>
+                order by ipor_id desc
+			</otherwise>
+        </choose>
+		<if test="offset != null and limit != null">
+			limit #{offset}, #{limit}
+		</if>
+	</select>
+
+ 	<select id="queryTotal" resultType="int">
+		select count(*) from import_pay_order_record
+		WHERE 1=1
+        <if test="name != null and name.trim() != ''">
+            AND name LIKE concat('%',#{name},'%')
+        </if>
+	</select>
+
+	<insert id="save" parameterType="com.kmall.admin.entity.compared.ImportPayOrderRecordEntity" useGeneratedKeys="true" keyProperty="iporId">
+		insert into import_pay_order_record(
+			`importer`,
+			`import_time`,
+			`import_file_name`,
+			`create_time`,
+			`creater_sn`,
+			`update_time`,
+			`moder_sn`)
+		values(
+			#{importer},
+			#{importTime},
+			#{importFileName},
+			#{createTime},
+			#{createrSn},
+			#{updateTime},
+			#{moderSn})
+	</insert>
+
+	<update id="update" parameterType="com.kmall.admin.entity.compared.ImportPayOrderRecordEntity">
+		update import_pay_order_record
+		<set>
+			<if test="importer != null">`importer` = #{importer}, </if>
+			<if test="importTime != null">`import_time` = #{importTime}, </if>
+			<if test="importFileName != null">`import_file_name` = #{importFileName}, </if>
+			<if test="createTime != null">`create_time` = #{createTime}, </if>
+			<if test="createrSn != null">`creater_sn` = #{createrSn}, </if>
+			<if test="updateTime != null">`update_time` = #{updateTime}, </if>
+			<if test="moderSn != null">`moder_sn` = #{moderSn}</if>
+		</set>
+		where ipor_id = #{iporId}
+	</update>
+
+	<delete id="delete">
+		delete from import_pay_order_record where ipor_id = #{value}
+	</delete>
+
+	<delete id="deleteBatch">
+		delete from import_pay_order_record where ipor_id in
+		<foreach item="iporId" collection="array" open="(" separator="," close=")">
+			#{iporId}
+		</foreach>
+	</delete>
+
+</mapper>

+ 111 - 0
kmall-admin/src/main/resources/mybatis/mapper/compared/ImportTaxOrderRecordDao.xml

@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.kmall.admin.dao.compared.ImportTaxOrderRecordDao">
+
+    <resultMap type="com.kmall.admin.entity.compared.ImportTaxOrderRecordEntity" id="importTaxOrderRecordMap">
+        <result property="itorId" column="itor_id"/>
+        <result property="importer" column="importer"/>
+        <result property="importTime" column="import_time"/>
+        <result property="importFileName" column="import_file_name"/>
+        <result property="createTime" column="create_time"/>
+        <result property="createrSn" column="creater_sn"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="moderSn" column="moder_sn"/>
+    </resultMap>
+
+	<select id="queryObject" resultType="com.kmall.admin.entity.compared.ImportTaxOrderRecordEntity">
+		select
+			`itor_id`,
+			`importer`,
+			`import_time`,
+			`import_file_name`,
+			`create_time`,
+			`creater_sn`,
+			`update_time`,
+			`moder_sn`
+		from import_tax_order_record
+		where itor_id = #{id}
+	</select>
+
+	<select id="queryList" resultType="com.kmall.admin.entity.compared.ImportTaxOrderRecordEntity">
+		select
+    		`itor_id`,
+    		`importer`,
+    		`import_time`,
+    		`import_file_name`,
+    		`create_time`,
+    		`creater_sn`,
+    		`update_time`,
+    		`moder_sn`
+		from import_tax_order_record
+		WHERE 1=1
+		<if test="name != null and name.trim() != ''">
+			AND name LIKE concat('%',#{name},'%')
+		</if>
+        <choose>
+            <when test="sidx != null and sidx.trim() != ''">
+                order by ${sidx} ${order}
+            </when>
+			<otherwise>
+                order by itor_id desc
+			</otherwise>
+        </choose>
+		<if test="offset != null and limit != null">
+			limit #{offset}, #{limit}
+		</if>
+	</select>
+
+ 	<select id="queryTotal" resultType="int">
+		select count(*) from import_tax_order_record
+		WHERE 1=1
+        <if test="name != null and name.trim() != ''">
+            AND name LIKE concat('%',#{name},'%')
+        </if>
+	</select>
+
+	<insert id="save" parameterType="com.kmall.admin.entity.compared.ImportTaxOrderRecordEntity" useGeneratedKeys="true" keyProperty="itorId">
+		insert into import_tax_order_record(
+			`importer`,
+			`import_time`,
+			`import_file_name`,
+			`create_time`,
+			`creater_sn`,
+			`update_time`,
+			`moder_sn`)
+		values(
+			#{importer},
+			#{importTime},
+			#{importFileName},
+			#{createTime},
+			#{createrSn},
+			#{updateTime},
+			#{moderSn})
+	</insert>
+
+	<update id="update" parameterType="com.kmall.admin.entity.compared.ImportTaxOrderRecordEntity">
+		update import_tax_order_record
+		<set>
+			<if test="importer != null">`importer` = #{importer}, </if>
+			<if test="importTime != null">`import_time` = #{importTime}, </if>
+			<if test="importFileName != null">`import_file_name` = #{importFileName}, </if>
+			<if test="createTime != null">`create_time` = #{createTime}, </if>
+			<if test="createrSn != null">`creater_sn` = #{createrSn}, </if>
+			<if test="updateTime != null">`update_time` = #{updateTime}, </if>
+			<if test="moderSn != null">`moder_sn` = #{moderSn}</if>
+		</set>
+		where itor_id = #{itorId}
+	</update>
+
+	<delete id="delete">
+		delete from import_tax_order_record where itor_id = #{value}
+	</delete>
+
+	<delete id="deleteBatch">
+		delete from import_tax_order_record where itor_id in
+		<foreach item="itorId" collection="array" open="(" separator="," close=")">
+			#{itorId}
+		</foreach>
+	</delete>
+
+</mapper>

+ 5 - 2
kmall-admin/src/main/resources/mybatis/mapper/compared/OrderComparedErrorDao.xml

@@ -34,8 +34,8 @@
     		`reason`
 		from mall_order_compared_error
 		WHERE 1=1
-		<if test="name != null and name.trim() != ''">
-			AND name LIKE concat('%',#{name},'%')
+		<if test="createTime != null and createTime.trim() != ''">
+			AND DATE_FORMAT(create_time,'%Y-%m-%d') = #{createTime}
 		</if>
         <choose>
             <when test="sidx != null and sidx.trim() != ''">
@@ -56,6 +56,9 @@
         <if test="name != null and name.trim() != ''">
             AND name LIKE concat('%',#{name},'%')
         </if>
+		<if test="createTime != null and createTime.trim() != ''">
+			AND DATE_FORMAT(create_time,'%Y-%m-%d') = #{createTime}
+		</if>
 	</select>
 
 	<insert id="save" parameterType="com.kmall.admin.entity.compared.OrderComparedErrorEntity" useGeneratedKeys="true" keyProperty="moceId">

+ 6 - 5
kmall-admin/src/main/resources/mybatis/mapper/compared/PayOrderInfoDao.xml

@@ -52,8 +52,8 @@
     		`compared_time`
 		from mall_pay_order_info
 		WHERE 1=1
-		<if test="name != null and name.trim() != ''">
-			AND name LIKE concat('%',#{name},'%')
+		<if test="merchOrderSn != null and merchOrderSn.trim() != ''">
+			AND merch_order_sn LIKE concat('%',#{merchOrderSn},'%')
 		</if>
         <choose>
             <when test="sidx != null and sidx.trim() != ''">
@@ -71,8 +71,8 @@
  	<select id="queryTotal" resultType="int">
 		select count(*) from mall_pay_order_info
 		WHERE 1=1
-        <if test="name != null and name.trim() != ''">
-            AND name LIKE concat('%',#{name},'%')
+        <if test="merchOrderSn != null and merchOrderSn.trim() != ''">
+            AND merch_order_sn LIKE concat('%',#{merchOrderSn},'%')
         </if>
 	</select>
 
@@ -132,7 +132,7 @@
 		</foreach>
 	</delete>
 
-	<insert id="saveBatch" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id">
+	<insert id="saveBatch" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="mpoiId">
 
 		insert into mall_pay_order_info(
 		`merch_order_sn`,
@@ -182,6 +182,7 @@
 		from mall_pay_order_info
 		WHERE 1=1
 		AND compared = 0
+		and date_format(pay_time, '%Y-%m-%d') = #{comparedDate}
 		order by pay_time
 	</select>
 

+ 116 - 0
kmall-admin/src/main/resources/mybatis/mapper/compared/TaxComparedErrorDao.xml

@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.kmall.admin.dao.compared.TaxComparedErrorDao">
+
+    <resultMap type="com.kmall.admin.entity.compared.TaxComparedErrorEntity" id="taxComparedErrorMap">
+        <result property="mtceId" column="mtce_id"/>
+        <result property="merchOrderSn" column="merch_order_sn"/>
+        <result property="kmallTax" column="kmall_tax"/>
+        <result property="omsTax" column="oms_tax"/>
+        <result property="createTime" column="create_time"/>
+    </resultMap>
+
+	<select id="queryObject" resultType="com.kmall.admin.entity.compared.TaxComparedErrorEntity">
+		select
+			`mtce_id`,
+			`merch_order_sn`,
+			`kmall_tax`,
+			`oms_tax`,
+			`create_time`
+		from mall_tax_compared_error
+		where mtce_id = #{id}
+	</select>
+
+	<select id="queryList" resultType="com.kmall.admin.entity.compared.TaxComparedErrorEntity">
+		select
+    		`mtce_id`,
+    		`merch_order_sn`,
+    		`kmall_tax`,
+    		`oms_tax`,
+    		`create_time`
+		from mall_tax_compared_error
+		WHERE 1=1
+		<if test="createTime != null and createTime.trim() != ''">
+			AND DATE_FORMAT(create_time,'%Y-%m-%d') = #{createTime}
+		</if>
+        <choose>
+            <when test="sidx != null and sidx.trim() != ''">
+                order by ${sidx} ${order}
+            </when>
+			<otherwise>
+                order by mtce_id desc
+			</otherwise>
+        </choose>
+		<if test="offset != null and limit != null">
+			limit #{offset}, #{limit}
+		</if>
+	</select>
+
+ 	<select id="queryTotal" resultType="int">
+		select count(*) from mall_tax_compared_error
+		WHERE 1=1
+        <if test="name != null and name.trim() != ''">
+            AND name LIKE concat('%',#{name},'%')
+        </if>
+		<if test="createTime != null and createTime.trim() != ''">
+			AND DATE_FORMAT(create_time,'%Y-%m-%d') = #{createTime}
+		</if>
+	</select>
+
+	<insert id="save" parameterType="com.kmall.admin.entity.compared.TaxComparedErrorEntity" useGeneratedKeys="true" keyProperty="mtceId">
+		insert into mall_tax_compared_error(
+			`merch_order_sn`,
+			`kmall_tax`,
+			`oms_tax`,
+			`create_time`)
+		values(
+			#{merchOrderSn},
+			#{kmallTax},
+			#{omsTax},
+			#{createTime})
+	</insert>
+
+	<update id="update" parameterType="com.kmall.admin.entity.compared.TaxComparedErrorEntity">
+		update mall_tax_compared_error
+		<set>
+			<if test="merchOrderSn != null">`merch_order_sn` = #{merchOrderSn}, </if>
+			<if test="kmallTax != null">`kmall_tax` = #{kmallTax}, </if>
+			<if test="omsTax != null">`oms_tax` = #{omsTax}, </if>
+			<if test="createTime != null">`create_time` = #{createTime}</if>
+		</set>
+		where mtce_id = #{mtceId}
+	</update>
+
+	<delete id="delete">
+		delete from mall_tax_compared_error where mtce_id = #{value}
+	</delete>
+
+	<delete id="deleteBatch">
+		delete from mall_tax_compared_error where mtce_id in
+		<foreach item="mtceId" collection="array" open="(" separator="," close=")">
+			#{mtceId}
+		</foreach>
+	</delete>
+
+	<insert id="saveBatch" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="mtceId">
+		insert into mall_tax_compared_error(
+		`merch_order_sn`,
+		`kmall_tax`,
+		`oms_tax`,
+		`create_time`)
+		values
+		<foreach collection="list" index="index" item="item" separator=",">
+			(
+			#{item.merchOrderSn},
+			#{item.kmallTax},
+			#{item.omsTax},
+			#{item.createTime}
+			)
+		</foreach>
+
+	</insert>
+
+
+
+</mapper>

+ 141 - 0
kmall-admin/src/main/resources/mybatis/mapper/compared/TaxInfoDao.xml

@@ -0,0 +1,141 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.kmall.admin.dao.compared.TaxInfoDao">
+
+    <resultMap type="com.kmall.admin.entity.compared.TaxInfoEntity" id="taxInfoMap">
+        <result property="mtiId" column="mti_id"/>
+        <result property="merchOrderSn" column="merch_order_sn"/>
+        <result property="preTaxPrice" column="pre_tax_price"/>
+        <result property="tax" column="tax"/>
+        <result property="importTime" column="import_time"/>
+        <result property="importer" column="importer"/>
+        <result property="compared" column="compared"/>
+        <result property="comparedTime" column="compared_time"/>
+    </resultMap>
+
+	<select id="queryObject" resultType="com.kmall.admin.entity.compared.TaxInfoEntity">
+		select
+			`mti_id`,
+			`merch_order_sn`,
+			`pre_tax_price`,
+			`tax`,
+			`import_time`,
+			`importer`,
+			`compared`,
+			`compared_time`
+		from mall_tax_info
+		where mti_id = #{id}
+	</select>
+
+	<select id="queryList" resultType="com.kmall.admin.entity.compared.TaxInfoEntity">
+		select
+    		`mti_id`,
+    		`merch_order_sn`,
+    		`pre_tax_price`,
+    		`tax`,
+    		`import_time`,
+    		`importer`,
+    		`compared`,
+    		`compared_time`
+		from mall_tax_info
+		WHERE 1=1
+		<if test="compared != null and compared.trim() != ''">
+			and compared = #{compared}
+		</if>
+		<if test="merchOrderSn != null and merchOrderSn.trim() != ''">
+			AND merch_order_sn LIKE concat('%',#{merchOrderSn},'%')
+		</if>
+	</select>
+
+ 	<select id="queryTotal" resultType="int">
+		select count(*) from mall_tax_info
+		WHERE 1=1
+        <if test="merchOrderSn != null and merchOrderSn.trim() != ''">
+            AND merch_order_sn LIKE concat('%',#{merchOrderSn},'%')
+        </if>
+	</select>
+
+	<insert id="save" parameterType="com.kmall.admin.entity.compared.TaxInfoEntity" useGeneratedKeys="true" keyProperty="mtiId">
+		insert into mall_tax_info(
+			`merch_order_sn`,
+			`pre_tax_price`,
+			`tax`,
+			`import_time`,
+			`importer`,
+			`compared`,
+			`compared_time`)
+		values(
+			#{merchOrderSn},
+			#{preTaxPrice},
+			#{tax},
+			#{importTime},
+			#{importer},
+			#{compared},
+			#{comparedTime})
+	</insert>
+
+	<update id="update" parameterType="com.kmall.admin.entity.compared.TaxInfoEntity">
+		update mall_tax_info
+		<set>
+			<if test="merchOrderSn != null">`merch_order_sn` = #{merchOrderSn}, </if>
+			<if test="preTaxPrice != null">`pre_tax_price` = #{preTaxPrice}, </if>
+			<if test="tax != null">`tax` = #{tax}, </if>
+			<if test="importTime != null">`import_time` = #{importTime}, </if>
+			<if test="importer != null">`importer` = #{importer}, </if>
+			<if test="compared != null">`compared` = #{compared}, </if>
+			<if test="comparedTime != null">`compared_time` = #{comparedTime}</if>
+		</set>
+		where mti_id = #{mtiId}
+	</update>
+
+	<delete id="delete">
+		delete from mall_tax_info where mti_id = #{value}
+	</delete>
+
+	<delete id="deleteBatch">
+		delete from mall_tax_info where mti_id in
+		<foreach item="mtiId" collection="array" open="(" separator="," close=")">
+			#{mtiId}
+		</foreach>
+	</delete>
+
+
+
+	<insert id="saveBatch" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="mtiId">
+		insert into mall_tax_info(
+		`merch_order_sn`,
+		`pre_tax_price`,
+		`tax`,
+		`import_time`,
+		`importer`,
+		`compared`,
+		`compared_time`)
+		values
+		<foreach collection="list" index="index" item="item" separator=",">
+			(
+			#{item.merchOrderSn},
+			#{item.preTaxPrice},
+			#{item.tax},
+			#{item.importTime},
+			#{item.importer},
+			#{item.compared},
+			#{item.comparedTime}
+			)
+		</foreach>
+
+	</insert>
+
+
+	<update id="updateBatch" parameterType="java.util.List">
+		<foreach collection="list" item="oderInfo" index="index" open="" close="" separator=";">
+			update mall_tax_info
+			<set>
+				<if test="oderInfo.compared != null">`compared` = #{oderInfo.compared}, </if>
+				<if test="oderInfo.comparedTime != null">`compared_time` = #{oderInfo.comparedTime}</if>
+			</set>
+			where mti_id = #{oderInfo.mtiId}
+		</foreach>
+	</update>
+
+</mapper>

+ 123 - 0
kmall-admin/src/main/resources/mybatis/mapper/kmall2eccs/KtoEccsDao.xml

@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.kmall.admin.dao.kmall2eccs.KtoEccsDao">
+
+    <resultMap type="com.kmall.admin.entity.kmall2eccs.KtoEccsEntity" id="ktoEccsMap">
+        <result property="kteId" column="kte_id"/>
+        <result property="requestData" column="request_data"/>
+        <result property="requestTime" column="request_time"/>
+        <result property="requestType" column="request_type"/>
+        <result property="sendStatus" column="send_status"/>
+        <result property="failReason" column="fail_reason"/>
+        <result property="createTime" column="create_time"/>
+        <result property="createrSn" column="creater_sn"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="moderSn" column="moder_sn"/>
+    </resultMap>
+
+	<select id="queryObject" resultType="com.kmall.admin.entity.kmall2eccs.KtoEccsEntity">
+		select
+			`kte_id`,
+			`request_data`,
+			`request_time`,
+			`request_type`,
+			`send_status`,
+			`fail_reason`,
+			`create_time`,
+			`creater_sn`,
+			`update_time`,
+			`moder_sn`
+		from kmall_to_eccs
+		where kte_id = #{id}
+	</select>
+
+	<select id="queryList" resultType="com.kmall.admin.entity.kmall2eccs.KtoEccsEntity">
+		select
+    		`kte_id`,
+    		`request_data`,
+    		`request_time`,
+    		`request_type`,
+    		`send_status`,
+    		`fail_reason`,
+    		`create_time`,
+    		`creater_sn`,
+    		`update_time`,
+    		`moder_sn`
+		from kmall_to_eccs
+		WHERE 1=1
+		<if test="name != null and name.trim() != ''">
+			AND name LIKE concat('%',#{name},'%')
+		</if>
+        <choose>
+            <when test="sidx != null and sidx.trim() != ''">
+                order by ${sidx} ${order}
+            </when>
+			<otherwise>
+                order by kte_id desc
+			</otherwise>
+        </choose>
+		<if test="offset != null and limit != null">
+			limit #{offset}, #{limit}
+		</if>
+	</select>
+
+ 	<select id="queryTotal" resultType="int">
+		select count(*) from kmall_to_eccs
+		WHERE 1=1
+        <if test="name != null and name.trim() != ''">
+            AND name LIKE concat('%',#{name},'%')
+        </if>
+	</select>
+
+	<insert id="save" parameterType="com.kmall.admin.entity.kmall2eccs.KtoEccsEntity" useGeneratedKeys="true" keyProperty="kteId">
+		insert into kmall_to_eccs(
+			`request_data`,
+			`request_time`,
+			`request_type`,
+			`send_status`,
+			`fail_reason`,
+			`create_time`,
+			`creater_sn`,
+			`update_time`,
+			`moder_sn`)
+		values(
+			#{requestData},
+			#{requestTime},
+			#{requestType},
+			#{sendStatus},
+			#{failReason},
+			#{createTime},
+			#{createrSn},
+			#{updateTime},
+			#{moderSn})
+	</insert>
+
+	<update id="update" parameterType="com.kmall.admin.entity.kmall2eccs.KtoEccsEntity">
+		update kmall_to_eccs
+		<set>
+			<if test="requestData != null">`request_data` = #{requestData}, </if>
+			<if test="requestTime != null">`request_time` = #{requestTime}, </if>
+			<if test="requestType != null">`request_type` = #{requestType}, </if>
+			<if test="sendStatus != null">`send_status` = #{sendStatus}, </if>
+			<if test="failReason != null">`fail_reason` = #{failReason}, </if>
+			<if test="createTime != null">`create_time` = #{createTime}, </if>
+			<if test="createrSn != null">`creater_sn` = #{createrSn}, </if>
+			<if test="updateTime != null">`update_time` = #{updateTime}, </if>
+			<if test="moderSn != null">`moder_sn` = #{moderSn}</if>
+		</set>
+		where kte_id = #{kteId}
+	</update>
+
+	<delete id="delete">
+		delete from kmall_to_eccs where kte_id = #{value}
+	</delete>
+
+	<delete id="deleteBatch">
+		delete from kmall_to_eccs where kte_id in
+		<foreach item="kteId" collection="array" open="(" separator="," close=")">
+			#{kteId}
+		</foreach>
+	</delete>
+
+</mapper>

+ 69 - 0
kmall-admin/src/main/webapp/WEB-INF/page/compared/importpayorderrecord.html

@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <title>导入支付单记录表</title>
+    #parse("sys/header.html")
+</head>
+<body>
+<div id="rrapp" v-cloak>
+	<div v-show="showList">
+        <Row :gutter="16">
+            <div class="search-group">
+                <i-col span="4">
+                    <i-input v-model="q.name" @on-enter="query" placeholder="名称"/>
+                </i-col>
+                <i-button @click="query">查询</i-button>
+                <i-button @click="reloadSearch">重置</i-button>
+            </div>
+            <div class="buttons-group">
+                #if($shiro.hasPermission("importpayorderrecord:save"))
+                <i-button type="info" @click="add"><i class="fa fa-plus"></i>&nbsp;新增</i-button>
+                #end
+                #if($shiro.hasPermission("importpayorderrecord:update"))
+                <i-button type="warning" @click="update"><i class="fa fa-pencil-square-o"></i>&nbsp;修改</i-button>
+                #end
+                #if($shiro.hasPermission("importpayorderrecord:delete"))
+                <i-button type="error" @click="del"><i class="fa fa-trash-o"></i>&nbsp;删除</i-button>
+                #end
+            </div>
+        </Row>
+	    <table id="jqGrid"></table>
+	    <div id="jqGridPager"></div>
+    </div>
+
+    <Card v-show="!showList">
+        <p slot="title">{{title}}</p>
+		<i-form ref="formValidate" :model="importPayOrderRecord" :rules="ruleValidate" :label-width="80">
+            <Form-item label="导入人" prop="importer">
+                <i-input v-model="importPayOrderRecord.importer" placeholder="导入人"/>
+            </Form-item>
+            <Form-item label="导入时间" prop="importTime">
+                <i-input v-model="importPayOrderRecord.importTime" placeholder="导入时间"/>
+            </Form-item>
+            <Form-item label="导入文件名" prop="importFileName">
+                <i-input v-model="importPayOrderRecord.importFileName" placeholder="导入文件名"/>
+            </Form-item>
+            <Form-item label="创建时间" prop="createTime">
+                <i-input v-model="importPayOrderRecord.createTime" placeholder="创建时间"/>
+            </Form-item>
+            <Form-item label="创建人编号" prop="createrSn">
+                <i-input v-model="importPayOrderRecord.createrSn" placeholder="创建人编号"/>
+            </Form-item>
+            <Form-item label="修改时间" prop="updateTime">
+                <i-input v-model="importPayOrderRecord.updateTime" placeholder="修改时间"/>
+            </Form-item>
+            <Form-item label="修改人编号" prop="moderSn">
+                <i-input v-model="importPayOrderRecord.moderSn" placeholder="修改人编号"/>
+            </Form-item>
+            <Form-item>
+                <i-button type="primary" @click="handleSubmit('formValidate')">提交</i-button>
+                <i-button type="warning" @click="reload" style="margin-left: 8px"/>返回</i-button>
+                <i-button type="ghost" @click="handleReset('formValidate')" style="margin-left: 8px">重置</i-button>
+            </Form-item>
+        </i-form>
+	</Card>
+</div>
+
+<script src="${rc.contextPath}/js/compared/importpayorderrecord.js?_${date.systemTime}"></script>
+</body>
+</html>

+ 69 - 0
kmall-admin/src/main/webapp/WEB-INF/page/compared/importtaxorderrecord.html

@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <title>导入税单记录表</title>
+    #parse("sys/header.html")
+</head>
+<body>
+<div id="rrapp" v-cloak>
+	<div v-show="showList">
+        <Row :gutter="16">
+            <div class="search-group">
+                <i-col span="4">
+                    <i-input v-model="q.name" @on-enter="query" placeholder="名称"/>
+                </i-col>
+                <i-button @click="query">查询</i-button>
+                <i-button @click="reloadSearch">重置</i-button>
+            </div>
+            <div class="buttons-group">
+                #if($shiro.hasPermission("importtaxorderrecord:save"))
+                <i-button type="info" @click="add"><i class="fa fa-plus"></i>&nbsp;新增</i-button>
+                #end
+                #if($shiro.hasPermission("importtaxorderrecord:update"))
+                <i-button type="warning" @click="update"><i class="fa fa-pencil-square-o"></i>&nbsp;修改</i-button>
+                #end
+                #if($shiro.hasPermission("importtaxorderrecord:delete"))
+                <i-button type="error" @click="del"><i class="fa fa-trash-o"></i>&nbsp;删除</i-button>
+                #end
+            </div>
+        </Row>
+	    <table id="jqGrid"></table>
+	    <div id="jqGridPager"></div>
+    </div>
+
+    <Card v-show="!showList">
+        <p slot="title">{{title}}</p>
+		<i-form ref="formValidate" :model="importTaxOrderRecord" :rules="ruleValidate" :label-width="80">
+            <Form-item label="导入人" prop="importer">
+                <i-input v-model="importTaxOrderRecord.importer" placeholder="导入人"/>
+            </Form-item>
+            <Form-item label="导入时间" prop="importTime">
+                <i-input v-model="importTaxOrderRecord.importTime" placeholder="导入时间"/>
+            </Form-item>
+            <Form-item label="导入文件名" prop="importFileName">
+                <i-input v-model="importTaxOrderRecord.importFileName" placeholder="导入文件名"/>
+            </Form-item>
+            <Form-item label="创建时间" prop="createTime">
+                <i-input v-model="importTaxOrderRecord.createTime" placeholder="创建时间"/>
+            </Form-item>
+            <Form-item label="创建人编号" prop="createrSn">
+                <i-input v-model="importTaxOrderRecord.createrSn" placeholder="创建人编号"/>
+            </Form-item>
+            <Form-item label="修改时间" prop="updateTime">
+                <i-input v-model="importTaxOrderRecord.updateTime" placeholder="修改时间"/>
+            </Form-item>
+            <Form-item label="修改人编号" prop="moderSn">
+                <i-input v-model="importTaxOrderRecord.moderSn" placeholder="修改人编号"/>
+            </Form-item>
+            <Form-item>
+                <i-button type="primary" @click="handleSubmit('formValidate')">提交</i-button>
+                <i-button type="warning" @click="reload" style="margin-left: 8px"/>返回</i-button>
+                <i-button type="ghost" @click="handleReset('formValidate')" style="margin-left: 8px">重置</i-button>
+            </Form-item>
+        </i-form>
+	</Card>
+</div>
+
+<script src="${rc.contextPath}/js/compared/importtaxorderrecord.js?_${date.systemTime}"></script>
+</body>
+</html>

+ 2 - 2
kmall-admin/src/main/webapp/WEB-INF/page/compared/ordercomparederror.html

@@ -9,8 +9,8 @@
 	<div v-show="showList">
         <Row :gutter="16">
             <div class="search-group">
-                <i-col span="4">
-                    <i-input v-model="q.name" @on-enter="query" placeholder="名称"/>
+                <i-col span="3">
+                    <Date-picker v-model="q.createTime" placeholder="异常日期"/>
                 </i-col>
                 <i-button @click="query">查询</i-button>
                 <i-button @click="reloadSearch">重置</i-button>

+ 4 - 1
kmall-admin/src/main/webapp/WEB-INF/page/compared/payorderinfo.html

@@ -10,12 +10,15 @@
         <Row :gutter="16">
             <div class="search-group">
                 <i-col span="4">
-                    <i-input v-model="q.name" @on-enter="query" placeholder="名称"/>
+                    <i-input v-model="q.merchOrderSn" @on-enter="query" placeholder="商户订单编号"/>
                 </i-col>
                 <i-button @click="query">查询</i-button>
                 <i-button @click="reloadSearch">重置</i-button>
             </div>
             <div class="buttons-group">
+                <i-col span="5">
+                    <Date-picker v-model="comparedDate" placeholder="对比日期"/>
+                </i-col>
                 <i-button type="info" @click="compared"><i class="fa fa-plus"></i>&nbsp;对比</i-button>
 <!--                <i-button type="warning" @click="update"><i class="fa fa-pencil-square-o"></i>&nbsp;修改</i-button>-->
 <!--                <i-button type="error" @click="del"><i class="fa fa-trash-o"></i>&nbsp;删除</i-button>-->

+ 60 - 0
kmall-admin/src/main/webapp/WEB-INF/page/compared/taxcomparederror.html

@@ -0,0 +1,60 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <title></title>
+    #parse("sys/header.html")
+</head>
+<body>
+<div id="rrapp" v-cloak>
+	<div v-show="showList">
+        <Row :gutter="16">
+            <div class="search-group">
+                <i-col span="3">
+                    <Date-picker v-model="q.createTime" placeholder="异常日期"/>
+                </i-col>
+                <i-button @click="query">查询</i-button>
+                <i-button @click="reloadSearch">重置</i-button>
+            </div>
+            <div class="buttons-group">
+                #if($shiro.hasPermission("taxcomparederror:save"))
+                <i-button type="info" @click="add"><i class="fa fa-plus"></i>&nbsp;新增</i-button>
+                #end
+                #if($shiro.hasPermission("taxcomparederror:update"))
+                <i-button type="warning" @click="update"><i class="fa fa-pencil-square-o"></i>&nbsp;修改</i-button>
+                #end
+                #if($shiro.hasPermission("taxcomparederror:delete"))
+                <i-button type="error" @click="del"><i class="fa fa-trash-o"></i>&nbsp;删除</i-button>
+                #end
+            </div>
+        </Row>
+	    <table id="jqGrid"></table>
+	    <div id="jqGridPager"></div>
+    </div>
+
+    <Card v-show="!showList">
+        <p slot="title">{{title}}</p>
+		<i-form ref="formValidate" :model="taxComparedError" :rules="ruleValidate" :label-width="80">
+            <Form-item label="" prop="merchOrderSn">
+                <i-input v-model="taxComparedError.merchOrderSn" placeholder=""/>
+            </Form-item>
+            <Form-item label="" prop="kmallTax">
+                <i-input v-model="taxComparedError.kmallTax" placeholder=""/>
+            </Form-item>
+            <Form-item label="" prop="omsTax">
+                <i-input v-model="taxComparedError.omsTax" placeholder=""/>
+            </Form-item>
+            <Form-item label="" prop="createTime">
+                <i-input v-model="taxComparedError.createTime" placeholder=""/>
+            </Form-item>
+            <Form-item>
+                <i-button type="primary" @click="handleSubmit('formValidate')">提交</i-button>
+                <i-button type="warning" @click="reload" style="margin-left: 8px"/>返回</i-button>
+                <i-button type="ghost" @click="handleReset('formValidate')" style="margin-left: 8px">重置</i-button>
+            </Form-item>
+        </i-form>
+	</Card>
+</div>
+
+<script src="${rc.contextPath}/js/compared/taxcomparederror.js?_${date.systemTime}"></script>
+</body>
+</html>

+ 71 - 0
kmall-admin/src/main/webapp/WEB-INF/page/compared/taxinfo.html

@@ -0,0 +1,71 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <title></title>
+    #parse("sys/header.html")
+</head>
+<body>
+<div id="rrapp" v-cloak>
+	<div v-show="showList">
+        <Row :gutter="16">
+            <div class="search-group">
+                <i-col span="4">
+                    <i-input v-model="q.merchOrderSn" @on-enter="query" placeholder="商户订单编号"/>
+                </i-col>
+                <i-button @click="query">查询</i-button>
+                <i-button @click="reloadSearch">重置</i-button>
+            </div>
+            <div class="buttons-group">
+                <i-col span="8">
+                    <Date-picker v-model="comparedDate" placeholder="对比日期"/>
+                </i-col>
+                <i-button type="info" @click="compared"><i class="fa fa-plus"></i>&nbsp;对比</i-button>
+                <i-col style="display: inline-grid;">
+                    <Upload :show-upload-list="false" :on-success="uploadExcelSuccess" :on-error="uploadExcelError" :on-format-error="uploadExcelFormatError"
+                            :format="['xls','xlsx']"
+                            action="../taxinfo/uploadTax">
+                        <i-button type="ghost" icon="ios-cloud-upload-outline">税单导入</i-button>
+                    </Upload>
+                </i-col>
+            </div>
+        </Row>
+	    <table id="jqGrid"></table>
+	    <div id="jqGridPager"></div>
+    </div>
+
+    <Card v-show="!showList">
+        <p slot="title">{{title}}</p>
+		<i-form ref="formValidate" :model="taxInfo" :rules="ruleValidate" :label-width="80">
+            <Form-item label="" prop="merchOrderSn">
+                <i-input v-model="taxInfo.merchOrderSn" placeholder=""/>
+            </Form-item>
+            <Form-item label="" prop="preTaxPrice">
+                <i-input v-model="taxInfo.preTaxPrice" placeholder=""/>
+            </Form-item>
+            <Form-item label="" prop="tax">
+                <i-input v-model="taxInfo.tax" placeholder=""/>
+            </Form-item>
+            <Form-item label="" prop="importTime">
+                <i-input v-model="taxInfo.importTime" placeholder=""/>
+            </Form-item>
+            <Form-item label="" prop="importer">
+                <i-input v-model="taxInfo.importer" placeholder=""/>
+            </Form-item>
+            <Form-item label="" prop="compared">
+                <i-input v-model="taxInfo.compared" placeholder=""/>
+            </Form-item>
+            <Form-item label="" prop="comparedTime">
+                <i-input v-model="taxInfo.comparedTime" placeholder=""/>
+            </Form-item>
+            <Form-item>
+                <i-button type="primary" @click="handleSubmit('formValidate')">提交</i-button>
+                <i-button type="warning" @click="reload" style="margin-left: 8px"/>返回</i-button>
+                <i-button type="ghost" @click="handleReset('formValidate')" style="margin-left: 8px">重置</i-button>
+            </Form-item>
+        </i-form>
+	</Card>
+</div>
+
+<script src="${rc.contextPath}/js/compared/taxinfo.js?_${date.systemTime}"></script>
+</body>
+</html>

+ 6 - 2
kmall-admin/src/main/webapp/WEB-INF/page/sale/sale.html

@@ -66,8 +66,12 @@
 
                         <Row :gutter="16">
                             <ul class="nav navbar-top-links navbar-right" style="font-size: 1.3em;">
+
+                                <li>
+                                    <i-input v-model="orderSn1" @on-enter="queryInveResponse" placeholder="输入要查询回执的订单号" id="queryInveResponse" />
+                                </li>
                                 <li>
-                                    <i-input v-model="orderSn" @on-enter="queryOrderStatus" placeholder="输入要查询的订单号" id="queryOrderStatus"  />
+                                    <i-input v-model="orderSn" @on-enter="queryOrderStatus" placeholder="输入要查询订单状态的订单号" id="queryOrderStatus" />
                                 </li>
                                 <li >
                                     <span style="margin-right: 40px">&nbsp; 门店:<b>{{storeName}}</b></span>
@@ -249,7 +253,7 @@
 
             </div>
             <div class="col-md-3">
-                <h2 class="text-center" style="border: white;background-color: #F5DCB3;padding: 8px" >取货码</h2><br/>
+                <h2 class="text-center" style="border: white;background-color: #F5DCB3;padding: 8px" >取货码 <span v-show="delayResponse"> 卡回执!!!!!</span></h2><br/>
                 <div class="row" style="border: white;background-color: #f0f0f0;overflow:auto;height: 700px;">
                     <div class="col-xs-4 col-sm-4" v-for="(item,i) in pickUpCodeList" style="margin-bottom: 8px;">
                         <i-button data-toggle="modal" data-target="#orderDetail" style="width: 110px;font-family: 微软雅黑" @click="queryOrderDetail(item.orderSn,item.pickUpCodeSn)" v-if="item.pickUpCodeStatus == 0"  >&nbsp;{{item.pickUpCodeSn}}</i-button>

+ 145 - 0
kmall-admin/src/main/webapp/js/compared/importpayorderrecord.js

@@ -0,0 +1,145 @@
+$(function () {
+    $("#jqGrid").jqGrid({
+        url: '../importpayorderrecord/list',
+        datatype: "json",
+        colModel: [
+			{label: 'iporId', name: 'iporId', index: 'ipor_id', key: true, hidden: true},
+			{label: '导入人', name: 'importer', index: 'importer', width: 80},
+			{label: '导入时间', name: 'importTime', index: 'import_time', width: 80},
+			{label: '导入文件名', name: 'importFileName', index: 'import_file_name', width: 80},
+			{label: '创建时间', name: 'createTime', index: 'create_time', width: 80},
+			{label: '创建人编号', name: 'createrSn', index: 'creater_sn', width: 80},
+			{label: '修改时间', name: 'updateTime', index: 'update_time', width: 80},
+			{label: '修改人编号', name: 'moderSn', index: 'moder_sn', width: 80}],
+		viewrecords: true,
+        height: 550,
+        rowNum: 10,
+        rowList: [10, 30, 50],
+        rownumbers: true,
+        rownumWidth: 25,
+        autowidth: true,
+        multiselect: true,
+        pager: "#jqGridPager",
+        jsonReader: {
+            root: "page.list",
+            page: "page.currPage",
+            total: "page.totalPage",
+            records: "page.totalCount"
+        },
+        prmNames: {
+            page: "page",
+            rows: "limit",
+            order: "order"
+        },
+        gridComplete: function () {
+            $("#jqGrid").closest(".ui-jqgrid-bdiv").css({"overflow-x": "hidden"});
+        }
+    });
+});
+
+let vm = new Vue({
+	el: '#rrapp',
+	data: {
+        showList: true,
+        title: null,
+		importPayOrderRecord: {},
+		ruleValidate: {
+			name: [
+				{required: true, message: '名称不能为空', trigger: 'blur'}
+			]
+		},
+		q: {
+		    name: ''
+		}
+	},
+	methods: {
+		query: function () {
+			vm.reload();
+		},
+		add: function () {
+			vm.showList = false;
+			vm.title = "新增";
+			vm.importPayOrderRecord = {};
+		},
+		update: function (event) {
+            let iporId = getSelectedRow();
+			if (iporId == null) {
+				return;
+			}
+			vm.showList = false;
+            vm.title = "修改";
+
+            vm.getInfo(iporId)
+		},
+		saveOrUpdate: function (event) {
+            let url = vm.importPayOrderRecord.iporId == null ? "../importpayorderrecord/save" : "../importpayorderrecord/update";
+			$.ajax({
+				type: "POST",
+			    url: url,
+			    contentType: "application/json",
+			    data: JSON.stringify(vm.importPayOrderRecord),
+                success: function (r) {
+                    if (r.code === 0) {
+                        alert('操作成功', function (index) {
+                            vm.reload();
+                        });
+                    } else {
+                        alert(r.msg);
+                    }
+                }
+			});
+		},
+		del: function (event) {
+            let iporIds = getSelectedRows();
+			if (iporIds == null){
+				return;
+			}
+
+			confirm('确定要删除选中的记录?', function () {
+				$.ajax({
+					type: "POST",
+				    url: "../importpayorderrecord/delete",
+				    contentType: "application/json",
+				    data: JSON.stringify(iporIds),
+				    success: function (r) {
+						if (r.code == 0) {
+							alert('操作成功', function (index) {
+								$("#jqGrid").trigger("reloadGrid");
+							});
+						} else {
+							alert(r.msg);
+						}
+					}
+				});
+			});
+		},
+		getInfo: function(iporId){
+			$.get("../importpayorderrecord/info/"+iporId, function (r) {
+                vm.importPayOrderRecord = r.importPayOrderRecord;
+            });
+		},
+        reloadSearch: function() {
+            vm.q = {
+                name: ''
+            }
+            vm.reload();
+		},
+		reload: function (event) {
+			vm.showList = true;
+            let page = $("#jqGrid").jqGrid('getGridParam', 'page');
+			$("#jqGrid").jqGrid('setGridParam', {
+                postData: {'name': vm.q.name},
+                page: page
+            }).trigger("reloadGrid");
+            vm.handleReset('formValidate');
+		},
+        handleSubmit: function (name) {
+            handleSubmitValidate(this, name, function () {
+                vm.saveOrUpdate()
+            });
+        },
+        handleReset: function (name) {
+            handleResetForm(this, name);
+        }
+	}
+});

+ 145 - 0
kmall-admin/src/main/webapp/js/compared/importtaxorderrecord.js

@@ -0,0 +1,145 @@
+$(function () {
+    $("#jqGrid").jqGrid({
+        url: '../importtaxorderrecord/list',
+        datatype: "json",
+        colModel: [
+			{label: 'itorId', name: 'itorId', index: 'itor_id', key: true, hidden: true},
+			{label: '导入人', name: 'importer', index: 'importer', width: 80},
+			{label: '导入时间', name: 'importTime', index: 'import_time', width: 80},
+			{label: '导入文件名', name: 'importFileName', index: 'import_file_name', width: 80},
+			{label: '创建时间', name: 'createTime', index: 'create_time', width: 80},
+			{label: '创建人编号', name: 'createrSn', index: 'creater_sn', width: 80},
+			{label: '修改时间', name: 'updateTime', index: 'update_time', width: 80},
+			{label: '修改人编号', name: 'moderSn', index: 'moder_sn', width: 80}],
+		viewrecords: true,
+        height: 550,
+        rowNum: 10,
+        rowList: [10, 30, 50],
+        rownumbers: true,
+        rownumWidth: 25,
+        autowidth: true,
+        multiselect: true,
+        pager: "#jqGridPager",
+        jsonReader: {
+            root: "page.list",
+            page: "page.currPage",
+            total: "page.totalPage",
+            records: "page.totalCount"
+        },
+        prmNames: {
+            page: "page",
+            rows: "limit",
+            order: "order"
+        },
+        gridComplete: function () {
+            $("#jqGrid").closest(".ui-jqgrid-bdiv").css({"overflow-x": "hidden"});
+        }
+    });
+});
+
+let vm = new Vue({
+	el: '#rrapp',
+	data: {
+        showList: true,
+        title: null,
+		importTaxOrderRecord: {},
+		ruleValidate: {
+			name: [
+				{required: true, message: '名称不能为空', trigger: 'blur'}
+			]
+		},
+		q: {
+		    name: ''
+		}
+	},
+	methods: {
+		query: function () {
+			vm.reload();
+		},
+		add: function () {
+			vm.showList = false;
+			vm.title = "新增";
+			vm.importTaxOrderRecord = {};
+		},
+		update: function (event) {
+            let itorId = getSelectedRow();
+			if (itorId == null) {
+				return;
+			}
+			vm.showList = false;
+            vm.title = "修改";
+
+            vm.getInfo(itorId)
+		},
+		saveOrUpdate: function (event) {
+            let url = vm.importTaxOrderRecord.itorId == null ? "../importtaxorderrecord/save" : "../importtaxorderrecord/update";
+			$.ajax({
+				type: "POST",
+			    url: url,
+			    contentType: "application/json",
+			    data: JSON.stringify(vm.importTaxOrderRecord),
+                success: function (r) {
+                    if (r.code === 0) {
+                        alert('操作成功', function (index) {
+                            vm.reload();
+                        });
+                    } else {
+                        alert(r.msg);
+                    }
+                }
+			});
+		},
+		del: function (event) {
+            let itorIds = getSelectedRows();
+			if (itorIds == null){
+				return;
+			}
+
+			confirm('确定要删除选中的记录?', function () {
+				$.ajax({
+					type: "POST",
+				    url: "../importtaxorderrecord/delete",
+				    contentType: "application/json",
+				    data: JSON.stringify(itorIds),
+				    success: function (r) {
+						if (r.code == 0) {
+							alert('操作成功', function (index) {
+								$("#jqGrid").trigger("reloadGrid");
+							});
+						} else {
+							alert(r.msg);
+						}
+					}
+				});
+			});
+		},
+		getInfo: function(itorId){
+			$.get("../importtaxorderrecord/info/"+itorId, function (r) {
+                vm.importTaxOrderRecord = r.importTaxOrderRecord;
+            });
+		},
+        reloadSearch: function() {
+            vm.q = {
+                name: ''
+            }
+            vm.reload();
+		},
+		reload: function (event) {
+			vm.showList = true;
+            let page = $("#jqGrid").jqGrid('getGridParam', 'page');
+			$("#jqGrid").jqGrid('setGridParam', {
+                postData: {'name': vm.q.name},
+                page: page
+            }).trigger("reloadGrid");
+            vm.handleReset('formValidate');
+		},
+        handleSubmit: function (name) {
+            handleSubmitValidate(this, name, function () {
+                vm.saveOrUpdate()
+            });
+        },
+        handleReset: function (name) {
+            handleResetForm(this, name);
+        }
+	}
+});

+ 7 - 6
kmall-admin/src/main/webapp/js/compared/ordercomparederror.js

@@ -7,6 +7,7 @@ $(function () {
 			{label: '订单号', name: 'merchOrderSn', index: 'merch_order_sn', width: 80},
 			{label: '来源', name: 'orderSource', index: 'merch_order_sn', width: 80},
 			{label: '异常原因', name: 'reason', index: 'merch_order_sn', width: 80},
+			{label: '时间', name: 'createTime', index: 'create_time', width: 80},
 			],
 		viewrecords: true,
         height: 550,
@@ -41,12 +42,11 @@ let vm = new Vue({
         title: null,
 		orderComparedError: {},
 		ruleValidate: {
-			name: [
-				{required: true, message: '名称不能为空', trigger: 'blur'}
-			]
+
 		},
 		q: {
-		    name: ''
+		    name: '',
+			createTime:''
 		}
 	},
 	methods: {
@@ -120,7 +120,8 @@ let vm = new Vue({
 		},
         reloadSearch: function() {
             vm.q = {
-                name: ''
+                name: '',
+				createTime:''
             }
             vm.reload();
 		},
@@ -128,7 +129,7 @@ let vm = new Vue({
 			vm.showList = true;
             let page = $("#jqGrid").jqGrid('getGridParam', 'page');
 			$("#jqGrid").jqGrid('setGridParam', {
-                postData: {'name': vm.q.name},
+                postData: {'name': vm.q.name,'createTime':vm.q.createTime},
                 page: page
             }).trigger("reloadGrid");
             vm.handleReset('formValidate');

+ 47 - 9
kmall-admin/src/main/webapp/js/compared/payorderinfo.js

@@ -6,15 +6,47 @@ $(function () {
         colModel: [
 			{label: 'mpoiId', name: 'mpoiId', index: 'mpoi_id', key: true, hidden: true},
 			{label: '商户订单编号', name: 'merchOrderSn', index: 'merch_order_sn', width: 80},
-			{label: '支付状态', name: 'payStatus', index: 'pay_status', width: 80},
+			{label: '支付状态', name: 'payStatus', index: 'pay_status', width: 80,formatter:function(value){
+				if(value == 2){
+					return "已付款";
+				}else if(value == 5){
+					return "已退款";
+				}else{
+					return value;
+				}
+				}},
 			{label: '支付金额', name: 'orderAmount', index: 'order_amount', width: 80},
 			{label: '退款金额', name: 'refundAmount', index: 'refund_amount', width: 80},
-			{label: '订单状态', name: 'orderStatus', index: 'order_status', width: 80},
-			{label: '支付方式', name: 'payFlag', index: 'pay_flag', width: 80},
+			{label: '订单状态', name: 'orderStatus', index: 'order_status', width: 80,formatter:function(value){
+				if(value == 300){
+					return "订单出货成功";
+				}else if(value == 401){
+					return "订单退款";
+				}else{
+					return value;
+				}
+				}},
+			{label: '支付方式', name: 'payFlag', index: 'pay_flag', width: 80,formatter:function(value){
+				if(value == "weixin"){
+					return "微信支付";
+				}else if(value == "alipay"){
+					return "支付宝支付";
+				}else{
+					return value;
+				}
+				}},
 			{label: '支付时间', name: 'payTime', index: 'pay_time', width: 80},
 			{label: '导入时间', name: 'importTime', index: 'import_time', width: 80},
 			{label: '导入人', name: 'importer', index: 'importer', width: 80},
-			{label: '是否对比', name: 'compared', index: 'compared', width: 80},
+			{label: '是否对比', name: 'compared', index: 'compared', width: 80,formatter:function(value){
+				if(value == 1){
+					return "已对比";
+				}else if(value == 0){
+					return "未对比";
+				}else {
+					return value;
+				}
+				}},
 			{label: '对比时间', name: 'comparedTime', index: 'compared_time', width: 80}],
 		viewrecords: true,
         height: 550,
@@ -54,15 +86,21 @@ let vm = new Vue({
 			]
 		},
 		q: {
-		    name: ''
-		}
+		    merchOrderSn: ''
+
+		},
+		comparedDate:""
 	},
 	methods: {
 		query: function () {
 			vm.reload();
 		},
 		compared: function () {
-			$.get("../ordercomparederror/comparedOrder", function (r) {
+			if(vm.comparedDate == ""){
+				alert("请输入对比日期!");
+				return;
+			}
+			$.get("../ordercomparederror/comparedOrder/"+vm.comparedDate, function (r) {
 				alert(r.msg);
 				//vm.mall2OrderingEarlyWarningReminds = r.mall2OrderingEarlyWarningReminds;
 			});
@@ -150,7 +188,7 @@ let vm = new Vue({
 		},
         reloadSearch: function() {
             vm.q = {
-                name: ''
+				merchOrderSn: ''
             }
             vm.reload();
 		},
@@ -158,7 +196,7 @@ let vm = new Vue({
 			vm.showList = true;
             let page = $("#jqGrid").jqGrid('getGridParam', 'page');
 			$("#jqGrid").jqGrid('setGridParam', {
-                postData: {'name': vm.q.name},
+                postData: {'merchOrderSn': vm.q.merchOrderSn},
                 page: page
             }).trigger("reloadGrid");
             vm.handleReset('formValidate');

+ 142 - 0
kmall-admin/src/main/webapp/js/compared/taxcomparederror.js

@@ -0,0 +1,142 @@
+$(function () {
+    $("#jqGrid").jqGrid({
+        url: '../taxcomparederror/list',
+        datatype: "json",
+        colModel: [
+			{label: 'mtceId', name: 'mtceId', index: 'mtce_id', key: true, hidden: true},
+			{label: '', name: 'merchOrderSn', index: 'merch_order_sn', width: 80},
+			{label: '', name: 'kmallTax', index: 'kmall_tax', width: 80},
+			{label: '', name: 'omsTax', index: 'oms_tax', width: 80},
+			{label: '', name: 'createTime', index: 'create_time', width: 80}],
+		viewrecords: true,
+        height: 550,
+        rowNum: 10,
+        rowList: [10, 30, 50],
+        rownumbers: true,
+        rownumWidth: 25,
+        autowidth: true,
+        multiselect: true,
+        pager: "#jqGridPager",
+        jsonReader: {
+            root: "page.list",
+            page: "page.currPage",
+            total: "page.totalPage",
+            records: "page.totalCount"
+        },
+        prmNames: {
+            page: "page",
+            rows: "limit",
+            order: "order"
+        },
+        gridComplete: function () {
+            $("#jqGrid").closest(".ui-jqgrid-bdiv").css({"overflow-x": "hidden"});
+        }
+    });
+});
+
+let vm = new Vue({
+	el: '#rrapp',
+	data: {
+        showList: true,
+        title: null,
+		taxComparedError: {},
+		ruleValidate: {
+
+		},
+		q: {
+		    name: '',
+			createTime:''
+		}
+	},
+	methods: {
+		query: function () {
+			vm.reload();
+		},
+		add: function () {
+			vm.showList = false;
+			vm.title = "新增";
+			vm.taxComparedError = {};
+		},
+		update: function (event) {
+            let mtceId = getSelectedRow();
+			if (mtceId == null) {
+				return;
+			}
+			vm.showList = false;
+            vm.title = "修改";
+
+            vm.getInfo(mtceId)
+		},
+		saveOrUpdate: function (event) {
+            let url = vm.taxComparedError.mtceId == null ? "../taxcomparederror/save" : "../taxcomparederror/update";
+			$.ajax({
+				type: "POST",
+			    url: url,
+			    contentType: "application/json",
+			    data: JSON.stringify(vm.taxComparedError),
+                success: function (r) {
+                    if (r.code === 0) {
+                        alert('操作成功', function (index) {
+                            vm.reload();
+                        });
+                    } else {
+                        alert(r.msg);
+                    }
+                }
+			});
+		},
+		del: function (event) {
+            let mtceIds = getSelectedRows();
+			if (mtceIds == null){
+				return;
+			}
+
+			confirm('确定要删除选中的记录?', function () {
+				$.ajax({
+					type: "POST",
+				    url: "../taxcomparederror/delete",
+				    contentType: "application/json",
+				    data: JSON.stringify(mtceIds),
+				    success: function (r) {
+						if (r.code == 0) {
+							alert('操作成功', function (index) {
+								$("#jqGrid").trigger("reloadGrid");
+							});
+						} else {
+							alert(r.msg);
+						}
+					}
+				});
+			});
+		},
+		getInfo: function(mtceId){
+			$.get("../taxcomparederror/info/"+mtceId, function (r) {
+                vm.taxComparedError = r.taxComparedError;
+            });
+		},
+        reloadSearch: function() {
+            vm.q = {
+                name: '',
+				createTime:'',
+            }
+            vm.reload();
+		},
+		reload: function (event) {
+			vm.showList = true;
+            let page = $("#jqGrid").jqGrid('getGridParam', 'page');
+			$("#jqGrid").jqGrid('setGridParam', {
+                postData: {'name': vm.q.name , 'createTime':vm.q.createTime},
+                page: page
+            }).trigger("reloadGrid");
+            vm.handleReset('formValidate');
+		},
+        handleSubmit: function (name) {
+            handleSubmitValidate(this, name, function () {
+                vm.saveOrUpdate()
+            });
+        },
+        handleReset: function (name) {
+            handleResetForm(this, name);
+        }
+	}
+});

+ 175 - 0
kmall-admin/src/main/webapp/js/compared/taxinfo.js

@@ -0,0 +1,175 @@
+$(function () {
+    $("#jqGrid").jqGrid({
+        url: '../taxinfo/list',
+        datatype: "json",
+        colModel: [
+			{label: 'mtiId', name: 'mtiId', index: 'mti_id', key: true, hidden: true},
+			{label: '订单号', name: 'merchOrderSn', index: 'merch_order_sn', width: 80},
+			{label: '税前价', name: 'preTaxPrice', index: 'pre_tax_price', width: 80},
+			{label: '税', name: 'tax', index: 'tax', width: 80},
+			{label: '导入时间', name: 'importTime', index: 'import_time', width: 80},
+			{label: '导入人id', name: 'importer', index: 'importer', width: 80},
+			{label: '是否对比', name: 'compared', index: 'compared', width: 80},
+			{label: '导入时间', name: 'comparedTime', index: 'compared_time', width: 80}],
+		viewrecords: true,
+        height: 550,
+        rowNum: 10,
+        rowList: [10, 30, 50],
+        rownumbers: true,
+        rownumWidth: 25,
+        autowidth: true,
+        multiselect: true,
+        pager: "#jqGridPager",
+        jsonReader: {
+            root: "page.list",
+            page: "page.currPage",
+            total: "page.totalPage",
+            records: "page.totalCount"
+        },
+        prmNames: {
+            page: "page",
+            rows: "limit",
+            order: "order"
+        },
+        gridComplete: function () {
+            $("#jqGrid").closest(".ui-jqgrid-bdiv").css({"overflow-x": "hidden"});
+        }
+    });
+});
+
+let vm = new Vue({
+	el: '#rrapp',
+	data: {
+        showList: true,
+        title: null,
+		taxInfo: {},
+		ruleValidate: {
+			name: [
+				{required: true, message: '名称不能为空', trigger: 'blur'}
+			]
+		},
+		q: {
+		    merchOrderSn: ''
+		},
+		comparedDate:""
+	},
+	methods: {
+		query: function () {
+			vm.reload();
+		},
+		add: function () {
+			vm.showList = false;
+			vm.title = "新增";
+			vm.taxInfo = {};
+		},
+		update: function (event) {
+            let mtiId = getSelectedRow();
+			if (mtiId == null) {
+				return;
+			}
+			vm.showList = false;
+            vm.title = "修改";
+
+            vm.getInfo(mtiId)
+		},
+		saveOrUpdate: function (event) {
+            let url = vm.taxInfo.mtiId == null ? "../taxinfo/save" : "../taxinfo/update";
+			$.ajax({
+				type: "POST",
+			    url: url,
+			    contentType: "application/json",
+			    data: JSON.stringify(vm.taxInfo),
+                success: function (r) {
+                    if (r.code === 0) {
+                        alert('操作成功', function (index) {
+                            vm.reload();
+                        });
+                    } else {
+                        alert(r.msg);
+                    }
+                }
+			});
+		},
+		del: function (event) {
+            let mtiIds = getSelectedRows();
+			if (mtiIds == null){
+				return;
+			}
+
+			confirm('确定要删除选中的记录?', function () {
+				$.ajax({
+					type: "POST",
+				    url: "../taxinfo/delete",
+				    contentType: "application/json",
+				    data: JSON.stringify(mtiIds),
+				    success: function (r) {
+						if (r.code == 0) {
+							alert('操作成功', function (index) {
+								$("#jqGrid").trigger("reloadGrid");
+							});
+						} else {
+							alert(r.msg);
+						}
+					}
+				});
+			});
+		},
+		getInfo: function(mtiId){
+			$.get("../taxinfo/info/"+mtiId, function (r) {
+                vm.taxInfo = r.taxInfo;
+            });
+		},
+		uploadExcelSuccess: function (data) {
+			// console.log(data);
+			if(data.code==0){
+				alert('导入成功', function (index) {
+					$("#jqGrid").trigger("reloadGrid");
+				});
+			}else{
+				alert(data.msg);
+			}
+		},
+		uploadExcelError: function () {
+			alert('上传出现异常,请重试!');
+		},
+		uploadExcelFormatError: function (file) {
+			this.$Notice.warning({
+				title: '文件格式不正确',
+				desc: '文件 ' + file.name + ' 格式不正确,请上传 xls 或 xlsx 格式的文件。'
+			});
+		},
+		compared:function(){
+			if(vm.comparedDate == ""){
+				alert("请输入对比日期!");
+				return;
+			}
+			$.get("../taxcomparederror/comparedTaxOrder?comparedDate/"+vm.comparedDate, function (r) {
+				alert(r.msg);
+				//vm.mall2OrderingEarlyWarningReminds = r.mall2OrderingEarlyWarningReminds;
+			});
+		},
+        reloadSearch: function() {
+            vm.q = {
+				merchOrderSn: ''
+            }
+            vm.reload();
+		},
+		reload: function (event) {
+			vm.showList = true;
+            let page = $("#jqGrid").jqGrid('getGridParam', 'page');
+			$("#jqGrid").jqGrid('setGridParam', {
+                postData: {'merchOrderSn': vm.q.merchOrderSn},
+                page: page
+            }).trigger("reloadGrid");
+            vm.handleReset('formValidate');
+		},
+        handleSubmit: function (name) {
+            handleSubmitValidate(this, name, function () {
+                vm.saveOrUpdate()
+            });
+        },
+        handleReset: function (name) {
+            handleResetForm(this, name);
+        }
+	}
+});

+ 1 - 1
kmall-admin/src/main/webapp/js/pcd/hbk6zzez.js

@@ -36,7 +36,7 @@ function openWebSocket() {
 		//注意ws、wss使用不同的端口。我使用自签名的证书测试,
 		//无法使用wss,浏览器打开WebSocket时报错
 		//ws对应http、wss对应https。
-		webSocket = new WebSocket("ws://8.135.102.238/:8080/ws/server/"+storeId);
+		webSocket = new WebSocket("ws://8.135.102.238:8080/ws/server/"+storeId);
 		// webSocket = new WebSocket("ws://127.0.0.1:8080/ws/server/163");
 		// webSocket = new WebSocket("wss://cb.k1net.cn/ws/server/"+storeId);
 		if (webSocket.readyState === webSocket.CONNECTING) {

+ 58 - 22
kmall-admin/src/main/webapp/js/sale/sale.js

@@ -500,6 +500,7 @@ let vm = new Vue({
         title: null,
         goods:{},
         orderSn:"",
+        orderSn1:"",
         sysNotice: {},
         goodsList:[],
         orderInfo:[],
@@ -577,7 +578,10 @@ let vm = new Vue({
 
         searchGoodsList: [],
         timer: null,
-        searchGoods: []
+        searchGoods: [],
+
+        // 卡回执标志
+        delayResponse:false
     },
     watch: {
         prodBarcode (){
@@ -610,7 +614,9 @@ let vm = new Vue({
         myDebounce:debounce(function(){
             toPayOrder();
         },2000),
-
+        debounceRefund:debounce(function(){
+            toRefund();
+        },5000),
         queryGoods: function(){
             vm.storeId = sessionStorage.getItem("storeId");
             $.get("../goods/queryGoodsName?storeId="+vm.storeId+"&goodsName=", function (r) {
@@ -630,6 +636,18 @@ let vm = new Vue({
                 alert(r.msg);
             });
         },
+        queryInveResponse:function(){
+            $.get("../order/queryInveResponse/"+vm.orderSn1, function(r){
+                console.log(r.resultMessage);
+                let resultString = "";
+                if(r.resultMessage != null && r.resultMessage.length > 0){
+                    for(let i = 0 ; i < r.resultMessage.length; i ++){
+                        resultString += i+':'+r.resultMessage[i] + '\r\n';
+                    }
+                }
+                alert(resultString);
+            })  ;
+        },
         query: function () {
             vm.storeId = sessionStorage.getItem("storeId");
             var thisGoods = {};
@@ -1069,21 +1087,22 @@ let vm = new Vue({
             })
         },
         refundOrder:function(){
-            confirm('确认退款吗?', function () {
-                $.ajax({
-                    type: "POST",
-                    url: "../order/orderRefund",
-                    contentType: "application/json",
-                    data: JSON.stringify({'orderId':vm.currentOrderNo,'sessionId':vm.sessionId}),
-                    success: function (r) {
-                        if (r.code == 0) {
-                            alert("退款成功")
-                        }else{
-                            alert("退款失败,请联系管理员");
-                        }
-                    }
-                });
-            })
+            vm.debounceRefund();
+            // confirm('确认退款吗?', function () {
+            //     $.ajax({
+            //         type: "POST",
+            //         url: "../order/orderRefund",
+            //         contentType: "application/json",
+            //         data: JSON.stringify({'orderId':vm.currentOrderNo,'sessionId':vm.sessionId}),
+            //         success: function (r) {
+            //             if (r.code == 0) {
+            //                 alert("退款成功")
+            //             }else{
+            //                 alert("退款失败,请联系管理员");
+            //             }
+            //         }
+            //     });
+            // })
         },
         //确认提货
         confirmDelivery: function(){
@@ -1254,8 +1273,9 @@ function openWebSocket() {
         //注意ws、wss使用不同的端口。我使用自签名的证书测试,
         //无法使用wss,浏览器打开WebSocket时报错
         //ws对应http、wss对应https。
-        // webSocket = new WebSocket("ws://183.62.225.124:8080/ws/server/"+storeId);
-        webSocket = new WebSocket("ws://8.135.102.238:8080//ws/server/"+storeId);
+        webSocket = new WebSocket("ws://183.3.221.143:8080/ws/server/"+storeId);
+        // webSocket = new WebSocket("ws://8.135.102.238:8080//ws/server/"+storeId);
+        // webSocket = new WebSocket("ws://127.0.0.1:8080//ws/server/"+storeId);
         // webSocket = new WebSocket("wss://cb.k1net.cn/ws/server/"+storeId);
         if (webSocket.readyState === webSocket.CONNECTING) {
             console.log('1.连接正在打开......');
@@ -1285,9 +1305,7 @@ function openWebSocket() {
                     }
                 }
             }
-            // vm.pickUpCodeList = vm.pickUpCodeList.concat(data.pickUpCodeList);
-            // console.log(vm.pickUpCodeList);
-            // webSocket.send("2.client发测试消息:Client sent test msg。");
+            vm.delayResponse = data.delayResponse;
         };
         //连接关闭事件
         webSocket.onclose = function () {
@@ -1691,4 +1709,22 @@ function toPayOrder(payCode){
     });
 }
 
+function toRefund(){
+    confirm('确认退款吗?', function () {
+        $.ajax({
+            type: "POST",
+            url: "../order/orderRefund",
+            contentType: "application/json",
+            data: JSON.stringify({'orderId':vm.currentOrderNo,'sessionId':vm.sessionId}),
+            success: function (r) {
+                if (r.code == 0) {
+                    alert("退款成功")
+                }else{
+                    alert("退款失败,请联系管理员");
+                }
+            }
+        });
+    })
+}
+
 

+ 4 - 1
kmall-common/src/main/java/com/kmall/common/constant/JxlsXmlTemplateName.java

@@ -48,7 +48,10 @@ public class JxlsXmlTemplateName {
     public static final String DISCOUNTED_PRODUCTS_DTO_LIST = "/XmlTemplate/DiscountedProductsDtoList.xml";
     // 支付宝订单导入
     public static final String ALIPAY_PAY_ORDER_DTO_LIST = "/XmlTemplate/AlipayPayOrderDtoList.xml";
-    // 支付宝订单导入
+    // 微信订单导入
     public static final String WX_PAY_ORDER_DTO_LIST = "/XmlTemplate/WXPayOrderDtoList.xml";
+    // 税单导入
+    public static final String TAX_ORDER_DTO_LIST = "/XmlTemplate/TaxOrderDtoList.xml";
+
 
 }

+ 1 - 1
kmall-manager/src/main/java/com/kmall/manager/manager/alipay/AliPayUtil.java

@@ -212,7 +212,7 @@ public class AliPayUtil {
     public static AliPayMicropayApiResult aliTradeQuery(String outTradeNo, String tradeNo) throws Exception{
 
         // 创建查询请求builder,设置请求参数
-        AlipayTradeQueryRequestBuilder builder = new AlipayTradeQueryRequestBuilder().setOutTradeNo(outTradeNo);
+        AlipayTradeQueryRequestBuilder builder = new AlipayTradeQueryRequestBuilder().setOutTradeNo(outTradeNo).setTradeNo(tradeNo);
 
         AlipayF2FQueryResult result = tradeService.queryTradeResult(builder);
         AliPayMicropayApiResult apiResult = new AliPayMicropayApiResult();

+ 10 - 0
kmall-manager/src/main/java/com/kmall/manager/manager/merch/OmsMerchProperties.java

@@ -29,6 +29,8 @@ public class OmsMerchProperties implements Serializable {
 
     private String queryOrderUrl;
 
+    private String queryInveResponseUrl;
+
     public String getMerchSn() {
         return merchSn;
     }
@@ -100,4 +102,12 @@ public class OmsMerchProperties implements Serializable {
     public void setQueryOrderUrl(String queryOrderUrl) {
         this.queryOrderUrl = queryOrderUrl;
     }
+
+    public String getQueryInveResponseUrl() {
+        return queryInveResponseUrl;
+    }
+
+    public void setQueryInveResponseUrl(String queryInveResponseUrl) {
+        this.queryInveResponseUrl = queryInveResponseUrl;
+    }
 }

+ 2 - 1
kmall-manager/src/main/resources/conf/oms-merch.properties

@@ -9,7 +9,8 @@ merch.merchShortName=ZW
 #cw\u5546\u6237\u7F16\u53F7
 merch.thirdSn=CW001
 #\u67E5\u8BE2\u8BA2\u5355\u5730\u5740
-merch.queryOrderUrl=http://ws.ds-bay.com/al/shop/orderQuery
+merch.queryOrderUrl=http://ws.ds-bay.com/al/shop/order/query
+merch.queryInveResponseUrl=http://ws.ds-bay.com/al/queryInveResponse
 
 #ccnet\u751F\u4EA7\u73AF\u5883\u67E5\u8BE2\u652F\u4ED8\u5355\u3001\u7535\u5B50\u8BA2\u5355\u3001\u8FD0\u5355\u5931\u8D25\u8BA2\u5355\u63A5\u53E3
 merch.wxOrderResendUrl=http://8.135.102.238:8680/wx/wxOrderResendQueryAll

+ 10 - 1
kmall-manager/src/main/resources/conf/redis.properties

@@ -1,7 +1,7 @@
 ########## redis \u914D\u7F6E ##########
 
 # [dev, prod]
-redis.env=dev
+redis.env=prod
 
 # \u5F00\u53D1\u73AF\u5883
 redis.dev.keyPrefix=platform
@@ -12,6 +12,15 @@ redis.dev.pool.maxWait=1000
 redis.dev.pool.maxTotal=10000
 redis.dev.pool.testOnBorrow=true
 
+# \u4E2D\u7F51\u65B0\u670D\u52A1\u5668\u751F\u4EA7\u73AF\u5883
+#redis.prod.keyPrefix=platform
+#redis.prod.host=8.135.102.238
+#redis.prod.port=6379
+#redis.prod.password=A48jc-2*3#*.-
+#redis.prod.pool.maxIdle=200
+#redis.prod.pool.maxWait=1000
+#redis.prod.pool.maxTotal=10000
+#redis.prod.pool.testOnBorrow=true
 
 # \u4E2D\u7F51\u751F\u4EA7\u73AF\u5883
 redis.prod.keyPrefix=platform

+ 1 - 0
kmall-manager/src/main/resources/spring/spring-oms-merch.xml

@@ -25,5 +25,6 @@
         <property name="quotaInquiryUrl" value="${merch.quotaInquiryUrl}"/>
         <property name="thirdSn" value="${merch.thirdSn}"/>
         <property name="queryOrderUrl" value="${merch.queryOrderUrl}"/>
+        <property name="queryInveResponseUrl" value="${merch.queryInveResponseUrl}"/>
     </bean>
 </beans>