Commit 1a9e28b8 by yinyong

订单新增合并单号、退款关联订单及发货状态更改

parent 3ce3a073
......@@ -4,12 +4,14 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.bailuntec.domain.constant.CommonConstant;
import com.bailuntec.domain.entity.DcBaseCrmRefund;
import com.bailuntec.domain.entity.DcBaseOmsOrder;
import com.bailuntec.domain.entity.JobPointLog;
import com.bailuntec.domain.example.DcBaseCrmRefundExample;
import com.bailuntec.domain.example.DcBaseOmsOrderExample;
import com.bailuntec.domain.pojo.RefundDetails;
import com.bailuntec.domain.pojo.RefundItem;
import com.bailuntec.mapper.DcBaseCrmRefundMapper;
import com.bailuntec.support.CallBailunSystem;
import com.bailuntec.mapper.DcBaseOmsOrderMapper;
import com.bailuntec.support.PointJob;
import com.bailuntec.utils.OkHttpUtil;
import com.bailuntec.utils.PropertiesUtil;
......@@ -23,7 +25,6 @@ import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.lang3.StringUtils;
import java.io.IOException;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
......@@ -37,8 +38,8 @@ public class CrmRefundSyncJob extends PointJob {
@Override
public void executeJob(ShardingContext shardingContext, JobPointLog jobPointLog) {
HashMap<String, String> map = new HashMap<>(4);
map.put("r_btime", jobPointLog.getStartTime().format(DateTimeFormatter.ofPattern(CommonConstant.TIME_FORMAT)));
map.put("r_etime", jobPointLog.getEndTime().format(DateTimeFormatter.ofPattern(CommonConstant.TIME_FORMAT)));
map.put("btime", jobPointLog.getStartTime().format(DateTimeFormatter.ofPattern(CommonConstant.TIME_FORMAT)));
map.put("etime", jobPointLog.getEndTime().format(DateTimeFormatter.ofPattern(CommonConstant.TIME_FORMAT)));
map.put("rows", jobPointLog.getPageSize().toString());
Integer totalPage = 0;
do {
......@@ -83,6 +84,30 @@ public class CrmRefundSyncJob extends PointJob {
e.printStackTrace();
throw new RuntimeException("CRM退款BeanUtils.copyProperties失败", e);
}
DcBaseOmsOrderMapper omsOrderMapper = SessionUtil.getSession().getMapper(DcBaseOmsOrderMapper.class);
DcBaseOmsOrder dcBaseOmsOrder = null;
switch (dcBaseCrmRefund.getPlatformType().toUpperCase()) {
case "EBAY":
dcBaseOmsOrder = omsOrderMapper.selectOneByExample(DcBaseOmsOrderExample.newAndCreateCriteria().andBailunAccountIdEqualTo(dcBaseCrmRefund.getBailunAccountId()).andTransactionIdEqualTo(dcBaseCrmRefund.getOriginOrderId()).example());
break;
case "WALMART":
dcBaseOmsOrder = omsOrderMapper.selectOneByExample(DcBaseOmsOrderExample.newAndCreateCriteria().andBailunAccountIdEqualTo(dcBaseCrmRefund.getBailunAccountId()).andBuyerIdEqualTo(dcBaseCrmRefund.getOriginOrderId()).example());
break;
default:
dcBaseOmsOrder = omsOrderMapper.selectOneByExample(DcBaseOmsOrderExample.newAndCreateCriteria().andBailunAccountIdEqualTo(dcBaseCrmRefund.getBailunAccountId()).andOriginOrderIdEqualTo(dcBaseCrmRefund.getOriginOrderId()).example());
}
if(dcBaseOmsOrder != null) {
if("MERGED".equals(dcBaseOmsOrder.getBailunMergeStatus().toUpperCase())) {
dcBaseOmsOrder = omsOrderMapper.selectOneByExample(DcBaseOmsOrderExample.newAndCreateCriteria().andBailunAccountIdEqualTo(dcBaseCrmRefund.getBailunAccountId()).andOriginOrderIdEqualTo(dcBaseOmsOrder.getAftermergedBailunOrderNo()).example());
}
if(dcBaseOmsOrder != null) {
dcBaseCrmRefund.setShippingStatus(dcBaseOmsOrder.getBailunShippingStatus());
dcBaseCrmRefund.setOrderStatus(dcBaseOmsOrder.getBailunOrderStatus());
}
}
DcBaseCrmRefundMapper mapper = SessionUtil.getSession().getMapper(DcBaseCrmRefundMapper.class);
int i = mapper.updateByExampleSelective(dcBaseCrmRefund, DcBaseCrmRefundExample.newAndCreateCriteria().andCrmIdEqualTo(dcBaseCrmRefund.getCrmId()).example());
if (i == 0) {
......
......@@ -285,7 +285,7 @@ public class OrderSyncJob extends PointJob {
BigDecimal skuPaypalFee = bailunSkuStructure.getSkuCostRatio().multiply(dcBaseOmsOrder.getCostPaypalFee()).setScale(5, RoundingMode.HALF_EVEN);
BigDecimal skuPaypalFeeRmb = bailunSkuStructure.getSkuCostRatio().multiply(totalCostPaypalFeeRMB).setScale(5, RoundingMode.HALF_EVEN);
//如果不是国内仓并且发货了 就需要计算头程费
totalCostFirst = caculateCostFirst(dcBaseWarehouse, dcBaseOmsSku,bailunSkuStructure,totalCostFirst);
totalCostFirst = caculateCostFirst(dcBaseWarehouse, dcBaseOmsSku,bailunSkuStructure,totalCostFirst, dcBaseOmsOrder);
//下单数大于发货数, 判定为预收费-人民币
if (dcBaseOmsSku.getBailunSkuQuantityOrdered() != null && dcBaseOmsSku.getBailunSkuQuantityOrdered() > dcBaseOmsSku.getBailunSkuQuantityShipped()) {
BigDecimal quantityPrepared = BigDecimal.valueOf(dcBaseOmsSku.getBailunSkuQuantityOrdered() - dcBaseOmsSku.getBailunSkuQuantityShipped());
......@@ -466,8 +466,17 @@ public class OrderSyncJob extends PointJob {
* @param totalCostFirst
* @return
*/
private BigDecimal caculateCostFirst(DcBaseWarehouse dcBaseWarehouse, DcBaseOmsSku dcBaseOmsSku, BailunSkuStructure bailunSkuStructure, BigDecimal totalCostFirst) {
private BigDecimal caculateCostFirst(DcBaseWarehouse dcBaseWarehouse, DcBaseOmsSku dcBaseOmsSku, BailunSkuStructure bailunSkuStructure, BigDecimal totalCostFirst, DcBaseOmsOrder dcBaseOmsOrder) {
if (dcBaseWarehouse != null && !dcBaseWarehouse.getHqType().equals(Constant.DOMESTIC_WAREHOUSE) && dcBaseOmsSku.getBailunSkuQuantityShipped() > 0) {
//如果存在不更新头程费
DcBaseOmsOrderMapper omsOrderMapper = SessionUtil.getSession().getMapper(DcBaseOmsOrderMapper.class);
DcBaseOmsOrder dcBaseOmsOrder1 = omsOrderMapper.selectOneByExample(DcBaseOmsOrderExample.newAndCreateCriteria().andOriginOrderIdEqualTo(dcBaseOmsOrder.getOriginOrderId()).andBailunAccountIdEqualTo(dcBaseOmsOrder.getBailunAccountId()).example());
if(dcBaseOmsOrder1 != null && dcBaseOmsOrder1.getCostFirst().compareTo(BigDecimal.ZERO) == 1) {
DcBaseOmsSkuMapper omsSkuMapper = SessionUtil.getSession().getMapper(DcBaseOmsSkuMapper.class);
DcBaseOmsSku dcBaseOmsSku1 = omsSkuMapper.selectOneByExample(DcBaseOmsSkuExample.newAndCreateCriteria().andBailunSkuEqualTo(dcBaseOmsSku.getBailunSku()).andOriginOrderIdEqualTo(dcBaseOmsSku.getOriginOrderId()).andBailunAccountIdEqualTo(dcBaseOmsSku.getBailunAccountId()).example());
dcBaseOmsSku.setCostFirst(dcBaseOmsSku1.getCostFirst());
return dcBaseOmsOrder1.getCostFirst();
}
DcMidCostFirstMapper mapper = SessionUtil.getSession().getMapper(DcMidCostFirstMapper.class);
DcMidCostFirst dcMidCostFirst = mapper.selectOneByExample(DcMidCostFirstExample.newAndCreateCriteria().andBailunSkuEqualTo(dcBaseOmsSku.getBailunSku()).andWarehouseCodeEqualTo(dcBaseWarehouse.getWarehouseCode()).example());
//如果dcMidCostFirst查不到,铭哥那边商量好了,头程0的,先跑调拨单,若是真是之前的SKU无法找到的,那就取值38元1KG来计算。
......
......@@ -872,6 +872,15 @@ public class DcBaseOmsOrder {
private BigDecimal amountGeneralCargo;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_base_oms_order.aftermerged_bailun_order_no
*
* @mbg.generated
*/
private String aftermergedBailunOrderNo;
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_oms_order
*
......@@ -979,6 +988,7 @@ public class DcBaseOmsOrder {
sb.append(", refundReferenceId=").append(refundReferenceId);
sb.append(", hasFbaS=").append(hasFbaS);
sb.append(", amountGeneralCargo=").append(amountGeneralCargo);
sb.append(", aftermergedBailunOrderNo=").append(aftermergedBailunOrderNo);
sb.append("]");
return sb.toString();
}
......@@ -1096,7 +1106,8 @@ public class DcBaseOmsOrder {
&& (this.getRefundType() == null ? other.getRefundType() == null : this.getRefundType().equals(other.getRefundType()))
&& (this.getRefundReferenceId() == null ? other.getRefundReferenceId() == null : this.getRefundReferenceId().equals(other.getRefundReferenceId()))
&& (this.getHasFbaS() == null ? other.getHasFbaS() == null : this.getHasFbaS().equals(other.getHasFbaS()))
&& (this.getAmountGeneralCargo() == null ? other.getAmountGeneralCargo() == null : this.getAmountGeneralCargo().equals(other.getAmountGeneralCargo()));
&& (this.getAmountGeneralCargo() == null ? other.getAmountGeneralCargo() == null : this.getAmountGeneralCargo().equals(other.getAmountGeneralCargo()))
&& (this.getAftermergedBailunOrderNo() == null ? other.getAftermergedBailunOrderNo() == null : this.getAftermergedBailunOrderNo().equals(other.getAftermergedBailunOrderNo()));
}
/**
......@@ -1205,6 +1216,7 @@ public class DcBaseOmsOrder {
result = prime * result + ((getRefundReferenceId() == null) ? 0 : getRefundReferenceId().hashCode());
result = prime * result + ((getHasFbaS() == null) ? 0 : getHasFbaS().hashCode());
result = prime * result + ((getAmountGeneralCargo() == null) ? 0 : getAmountGeneralCargo().hashCode());
result = prime * result + ((getAftermergedBailunOrderNo() == null) ? 0 : getAftermergedBailunOrderNo().hashCode());
return result;
}
}
\ No newline at end of file
......@@ -6570,6 +6570,76 @@ public class DcBaseOmsOrderExample {
addCriterion("amount_general_cargo not between", value1, value2, "amountGeneralCargo");
return (Criteria) this;
}
public Criteria andAftermergedBailunOrderNoIsNull() {
addCriterion("aftermerged_bailun_order_no is null");
return (Criteria) this;
}
public Criteria andAftermergedBailunOrderNoIsNotNull() {
addCriterion("aftermerged_bailun_order_no is not null");
return (Criteria) this;
}
public Criteria andAftermergedBailunOrderNoEqualTo(String value) {
addCriterion("aftermerged_bailun_order_no =", value, "aftermergedBailunOrderNo");
return (Criteria) this;
}
public Criteria andAftermergedBailunOrderNoNotEqualTo(String value) {
addCriterion("aftermerged_bailun_order_no <>", value, "aftermergedBailunOrderNo");
return (Criteria) this;
}
public Criteria andAftermergedBailunOrderNoGreaterThan(String value) {
addCriterion("aftermerged_bailun_order_no >", value, "aftermergedBailunOrderNo");
return (Criteria) this;
}
public Criteria andAftermergedBailunOrderNoGreaterThanOrEqualTo(String value) {
addCriterion("aftermerged_bailun_order_no >=", value, "aftermergedBailunOrderNo");
return (Criteria) this;
}
public Criteria andAftermergedBailunOrderNoLessThan(String value) {
addCriterion("aftermerged_bailun_order_no <", value, "aftermergedBailunOrderNo");
return (Criteria) this;
}
public Criteria andAftermergedBailunOrderNoLessThanOrEqualTo(String value) {
addCriterion("aftermerged_bailun_order_no <=", value, "aftermergedBailunOrderNo");
return (Criteria) this;
}
public Criteria andAftermergedBailunOrderNoLike(String value) {
addCriterion("aftermerged_bailun_order_no like", value, "aftermergedBailunOrderNo");
return (Criteria) this;
}
public Criteria andAftermergedBailunOrderNoNotLike(String value) {
addCriterion("aftermerged_bailun_order_no not like", value, "aftermergedBailunOrderNo");
return (Criteria) this;
}
public Criteria andAftermergedBailunOrderNoIn(List<String> values) {
addCriterion("aftermerged_bailun_order_no in", values, "aftermergedBailunOrderNo");
return (Criteria) this;
}
public Criteria andAftermergedBailunOrderNoNotIn(List<String> values) {
addCriterion("aftermerged_bailun_order_no not in", values, "aftermergedBailunOrderNo");
return (Criteria) this;
}
public Criteria andAftermergedBailunOrderNoBetween(String value1, String value2) {
addCriterion("aftermerged_bailun_order_no between", value1, value2, "aftermergedBailunOrderNo");
return (Criteria) this;
}
public Criteria andAftermergedBailunOrderNoNotBetween(String value1, String value2) {
addCriterion("aftermerged_bailun_order_no not between", value1, value2, "aftermergedBailunOrderNo");
return (Criteria) this;
}
}
/**
......
......@@ -102,6 +102,7 @@
<result column="refund_reference_id" jdbcType="VARCHAR" property="refundReferenceId" />
<result column="has_fba_s" jdbcType="BIT" property="hasFbaS" />
<result column="amount_general_cargo" jdbcType="DECIMAL" property="amountGeneralCargo" />
<result column="aftermerged_bailun_order_no" jdbcType="VARCHAR" property="aftermergedBailunOrderNo" />
</resultMap>
<sql id="Example_Where_Clause">
<!--
......@@ -192,7 +193,7 @@
gmt_modified, quantity_bailun_sku, logistics_warehouse_code, logistics_warehouse_name,
logistics_method_code, logistics_method_name, bailun_picking_status, bailun_require_logistics,
has_scalp, has_innersale, company_id, profit_oms, refund_obj, refund_type, refund_reference_id,
has_fba_s, amount_general_cargo
has_fba_s, amount_general_cargo, aftermerged_bailun_order_no
</sql>
<select id="selectByExample" parameterType="com.bailuntec.domain.example.DcBaseOmsOrderExample" resultMap="BaseResultMap">
<!--
......@@ -287,8 +288,8 @@
bailun_picking_status, bailun_require_logistics,
has_scalp, has_innersale, company_id,
profit_oms, refund_obj, refund_type,
refund_reference_id, has_fba_s, amount_general_cargo
)
refund_reference_id, has_fba_s, amount_general_cargo,
aftermerged_bailun_order_no)
values (#{id,jdbcType=INTEGER}, #{originOrderId,jdbcType=VARCHAR}, #{platformType,jdbcType=VARCHAR},
#{transactionId,jdbcType=VARCHAR}, #{payTime,jdbcType=TIMESTAMP}, #{payMethod,jdbcType=VARCHAR},
#{payAccount,jdbcType=VARCHAR}, #{payStatus,jdbcType=VARCHAR}, #{collectionAccount,jdbcType=VARCHAR},
......@@ -323,8 +324,8 @@
#{bailunPickingStatus,jdbcType=VARCHAR}, #{bailunRequireLogistics,jdbcType=VARCHAR},
#{hasScalp,jdbcType=BIT}, #{hasInnersale,jdbcType=BIT}, #{companyId,jdbcType=INTEGER},
#{profitOms,jdbcType=DECIMAL}, #{refundObj,jdbcType=VARCHAR}, #{refundType,jdbcType=VARCHAR},
#{refundReferenceId,jdbcType=VARCHAR}, #{hasFbaS,jdbcType=BIT}, #{amountGeneralCargo,jdbcType=DECIMAL}
)
#{refundReferenceId,jdbcType=VARCHAR}, #{hasFbaS,jdbcType=BIT}, #{amountGeneralCargo,jdbcType=DECIMAL},
#{aftermergedBailunOrderNo,jdbcType=VARCHAR})
</insert>
<insert id="insertSelective" parameterType="com.bailuntec.domain.entity.DcBaseOmsOrder">
<!--
......@@ -621,6 +622,9 @@
<if test="amountGeneralCargo != null">
amount_general_cargo,
</if>
<if test="aftermergedBailunOrderNo != null">
aftermerged_bailun_order_no,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
......@@ -911,6 +915,9 @@
<if test="amountGeneralCargo != null">
#{amountGeneralCargo,jdbcType=DECIMAL},
</if>
<if test="aftermergedBailunOrderNo != null">
#{aftermergedBailunOrderNo,jdbcType=VARCHAR},
</if>
</trim>
</insert>
<select id="countByExample" parameterType="com.bailuntec.domain.example.DcBaseOmsOrderExample" resultType="java.lang.Long">
......@@ -1218,6 +1225,9 @@
<if test="record.amountGeneralCargo != null">
amount_general_cargo = #{record.amountGeneralCargo,jdbcType=DECIMAL},
</if>
<if test="record.aftermergedBailunOrderNo != null">
aftermerged_bailun_order_no = #{record.aftermergedBailunOrderNo,jdbcType=VARCHAR},
</if>
</set>
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
......@@ -1324,7 +1334,8 @@
refund_type = #{record.refundType,jdbcType=VARCHAR},
refund_reference_id = #{record.refundReferenceId,jdbcType=VARCHAR},
has_fba_s = #{record.hasFbaS,jdbcType=BIT},
amount_general_cargo = #{record.amountGeneralCargo,jdbcType=DECIMAL}
amount_general_cargo = #{record.amountGeneralCargo,jdbcType=DECIMAL},
aftermerged_bailun_order_no = #{record.aftermergedBailunOrderNo,jdbcType=VARCHAR}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
......@@ -1621,6 +1632,9 @@
<if test="amountGeneralCargo != null">
amount_general_cargo = #{amountGeneralCargo,jdbcType=DECIMAL},
</if>
<if test="aftermergedBailunOrderNo != null">
aftermerged_bailun_order_no = #{aftermergedBailunOrderNo,jdbcType=VARCHAR},
</if>
</set>
where id = #{id,jdbcType=INTEGER}
</update>
......@@ -1724,7 +1738,8 @@
refund_type = #{refundType,jdbcType=VARCHAR},
refund_reference_id = #{refundReferenceId,jdbcType=VARCHAR},
has_fba_s = #{hasFbaS,jdbcType=BIT},
amount_general_cargo = #{amountGeneralCargo,jdbcType=DECIMAL}
amount_general_cargo = #{amountGeneralCargo,jdbcType=DECIMAL},
aftermerged_bailun_order_no = #{aftermergedBailunOrderNo,jdbcType=VARCHAR}
where id = #{id,jdbcType=INTEGER}
</update>
<insert id="upsertSelective" parameterType="com.bailuntec.domain.entity.DcBaseOmsOrder">
......@@ -2023,6 +2038,9 @@
<if test="amountGeneralCargo != null">
amount_general_cargo,
</if>
<if test="aftermergedBailunOrderNo != null">
aftermerged_bailun_order_no,
</if>
</trim>
values
<trim prefix="(" suffix=")" suffixOverrides=",">
......@@ -2314,6 +2332,9 @@
<if test="amountGeneralCargo != null">
#{amountGeneralCargo,jdbcType=DECIMAL},
</if>
<if test="aftermergedBailunOrderNo != null">
#{aftermergedBailunOrderNo,jdbcType=VARCHAR},
</if>
</trim>
on duplicate key update
<trim suffixOverrides=",">
......@@ -2605,6 +2626,9 @@
<if test="amountGeneralCargo != null">
amount_general_cargo = #{amountGeneralCargo,jdbcType=DECIMAL},
</if>
<if test="aftermergedBailunOrderNo != null">
aftermerged_bailun_order_no = #{aftermergedBailunOrderNo,jdbcType=VARCHAR},
</if>
</trim>
</insert>
<insert id="upsert" parameterType="com.bailuntec.domain.entity.DcBaseOmsOrder">
......@@ -2632,7 +2656,7 @@
gmt_modified, quantity_bailun_sku, logistics_warehouse_code, logistics_warehouse_name,
logistics_method_code, logistics_method_name, bailun_picking_status, bailun_require_logistics,
has_scalp, has_innersale, company_id, profit_oms, refund_obj, refund_type, refund_reference_id,
has_fba_s, amount_general_cargo)
has_fba_s, amount_general_cargo, aftermerged_bailun_order_no)
values
(#{id,jdbcType=INTEGER}, #{originOrderId,jdbcType=VARCHAR}, #{platformType,jdbcType=VARCHAR},
#{transactionId,jdbcType=VARCHAR}, #{payTime,jdbcType=TIMESTAMP}, #{payMethod,jdbcType=VARCHAR},
......@@ -2668,8 +2692,8 @@
#{bailunPickingStatus,jdbcType=VARCHAR}, #{bailunRequireLogistics,jdbcType=VARCHAR},
#{hasScalp,jdbcType=BIT}, #{hasInnersale,jdbcType=BIT}, #{companyId,jdbcType=INTEGER},
#{profitOms,jdbcType=DECIMAL}, #{refundObj,jdbcType=VARCHAR}, #{refundType,jdbcType=VARCHAR},
#{refundReferenceId,jdbcType=VARCHAR}, #{hasFbaS,jdbcType=BIT}, #{amountGeneralCargo,jdbcType=DECIMAL}
)
#{refundReferenceId,jdbcType=VARCHAR}, #{hasFbaS,jdbcType=BIT}, #{amountGeneralCargo,jdbcType=DECIMAL},
#{aftermergedBailunOrderNo,jdbcType=VARCHAR})
on duplicate key update
id = #{id,jdbcType=INTEGER},
origin_order_id = #{originOrderId,jdbcType=VARCHAR},
......@@ -2766,7 +2790,8 @@
refund_type = #{refundType,jdbcType=VARCHAR},
refund_reference_id = #{refundReferenceId,jdbcType=VARCHAR},
has_fba_s = #{hasFbaS,jdbcType=BIT},
amount_general_cargo = #{amountGeneralCargo,jdbcType=DECIMAL}
amount_general_cargo = #{amountGeneralCargo,jdbcType=DECIMAL},
aftermerged_bailun_order_no = #{aftermergedBailunOrderNo,jdbcType=VARCHAR}
</insert>
<select id="selectOneByExample" parameterType="com.bailuntec.domain.example.DcBaseOmsOrderExample" resultMap="BaseResultMap">
<!--
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment