SalesDetailServiceImpl.java 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. package com.kmall.admin.service.impl;
  2. import com.alibaba.fastjson.JSON;
  3. import com.kmall.admin.dao.SalesDetailMapper;
  4. import com.kmall.admin.dto.NewSystemFormatEntiy;
  5. import com.kmall.admin.service.SalesDetailService;
  6. import com.kmall.common.constant.Dict;
  7. import com.kmall.common.utils.DateUtils;
  8. import com.kmall.common.utils.HttpUtil;
  9. import org.apache.commons.logging.Log;
  10. import org.apache.commons.logging.LogFactory;
  11. import org.springframework.beans.factory.annotation.Autowired;
  12. import org.springframework.stereotype.Service;
  13. import java.math.BigDecimal;
  14. import java.util.Date;
  15. import java.util.HashMap;
  16. import java.util.List;
  17. import java.util.Map;
  18. @Service
  19. public class SalesDetailServiceImpl implements SalesDetailService {
  20. private static Log logger = LogFactory.getLog(SalesDetailService.class);
  21. @Autowired
  22. private SalesDetailMapper salesDetailMapper;
  23. /**
  24. *向eccs推送销售明细数据
  25. */
  26. public void pushSalesDetailData() {
  27. logger.info(">>>>>>>>>>>>>>>>>>>>pushSalesDetailData is start ");
  28. Map<String, Object> params = new HashMap<>();
  29. String date = DateUtils.formatDate(DateUtils.addDate(new Date(),-1),"yyyy-MM-dd");
  30. params.put("startTime",date + " " +"00:00:00");
  31. params.put("endTime",date+ " " +"23:59:59");
  32. params.put("isOnfiilineOrder","1");
  33. List<NewSystemFormatEntiy> dtoList = salesDetailMapper.querySalesSystemFormatList(params);
  34. pushDateEccs(dtoList);
  35. }
  36. public void pushDateEccs(List<NewSystemFormatEntiy> dtoList) {
  37. String valueUrl = salesDetailMapper.querySalesByKey("SALES_DETAIL_DATA_URL");
  38. if (dtoList.size() > 0) {
  39. dtoList.forEach(bean ->{
  40. BigDecimal unitSold = new BigDecimal(bean.getUnitSold());
  41. // 如果是退货
  42. String orderStatus = bean.getOrderStatus();
  43. if (Dict.orderStatus.item_401.getItem().equals(orderStatus)){
  44. bean.setSaleReturnType("整单退货");
  45. bean.setTransactionType("退货");
  46. }else{
  47. bean.setTransactionType("销售");
  48. }
  49. // 设置综合税额
  50. BigDecimal totalSalesIncTax = new BigDecimal(bean.getTotalSalesInclTax());
  51. // 设置实际销售额
  52. bean.setCurrentPrice(totalSalesIncTax.divide(unitSold,2,BigDecimal.ROUND_HALF_UP).setScale(2,BigDecimal.ROUND_HALF_UP).toEngineeringString());
  53. NewSystemFormatEntiy merchMsg = salesDetailMapper.queryMerch(bean.getMerchSn());
  54. if(merchMsg!=null){
  55. bean.setThirdMerchSn(merchMsg.getThirdMerchSn());
  56. bean.setThirdMerchSnName(merchMsg.getThirdMerchSnName());
  57. bean.setMerchSnName(merchMsg.getMerchSnName());
  58. }
  59. String msg = HttpUtil.doPostJson(valueUrl, JSON.toJSONString(bean));
  60. if(msg!=null&&!msg.equals("")){
  61. Map<String, Object> kmallMsg = com.alibaba.fastjson.JSONObject.toJavaObject(JSON.parseObject(msg), Map.class);
  62. if (kmallMsg.get("code").equals("200")) {
  63. bean.setSalesDetStatus("1");
  64. } else {
  65. bean.setSalesDetStatus("2");
  66. }
  67. bean.setSalesDetMsg(msg);
  68. salesDetailMapper.writebackSalesDet(bean);
  69. }
  70. });
  71. }
  72. }
  73. /**
  74. * 重推接口
  75. */
  76. public void pushSalesDetailDataAgain() {
  77. logger.info(">>>>>>>>>>>>>>>>>>>>pushSalesDetailDataAgain is start ");
  78. Map<String, Object> params = new HashMap<>();
  79. String date = DateUtils.formatDate(DateUtils.addDate(new Date(),-1),"yyyy-MM-dd");
  80. params.put("startTime",date + " " +"00:00:00");
  81. params.put("endTime",date+ " " +"23:59:59");
  82. List<NewSystemFormatEntiy> dtoList = salesDetailMapper.querySalesAgain(params);
  83. pushDateEccs(dtoList);
  84. }
  85. }