|
@@ -1161,6 +1161,62 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
+ * 拉取JD订单时,设置已经发货的订单信息
|
|
|
+ * @param salesOrder
|
|
|
+ * @param job
|
|
|
+ * @param errorMsg
|
|
|
+ * @param otherExtOrderId
|
|
|
+ * @throws ParseException
|
|
|
+ */
|
|
|
+ private void setSendOrderInfo(SalesOrder salesOrder, JSONObject job, StringBuilder errorMsg, String otherExtOrderId) throws ParseException {
|
|
|
+ //是否通知配货0:否1:是
|
|
|
+ salesOrder.setSalesIsSend(1);
|
|
|
+ //出库状态1:未出库2:已出库
|
|
|
+ salesOrder.setSalesDeliver(2);
|
|
|
+ //发货状态0(未发货)1(已发货,即已扫描出库)3(备货中)4(收货)11(已通知配货,后加)
|
|
|
+ salesOrder.setSalesShippingStatus(1);
|
|
|
+ //确认状态 0(未确认)1(确认)2(挂起)3(作废) 4:京东自发 -- 在订单项判断中,可能会变成京东仓库自发状态
|
|
|
+ salesOrder.setSalesStatus(1);
|
|
|
+ // 发货的物流公司
|
|
|
+ JSONArray logisticsArray = null;
|
|
|
+ if(job.has("logistics")){
|
|
|
+ logisticsArray = job.getJSONArray("logistics");
|
|
|
+ }
|
|
|
+ if(logisticsArray.length() < 1){
|
|
|
+ errorMsg.append("商城订单编号:").append(otherExtOrderId).append("发货异常,未拉取到发货单号");
|
|
|
+ }else{
|
|
|
+ JSONObject logistics = logisticsArray.getJSONObject(0);
|
|
|
+ String companyCode = logistics.getString("companyCode");
|
|
|
+ String deliveryNo = logistics.getString("deliveryNo");
|
|
|
+ String deliveryTime = logistics.getString("deliveryTime");
|
|
|
+ salesOrder.setSalesDeliverTime(sdf.parse(deliveryTime));
|
|
|
+ switch (companyCode){
|
|
|
+ case "2087":{
|
|
|
+ salesOrder.setSalesPostFirm("jd");
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case "CYS0000010":{
|
|
|
+ salesOrder.setSalesPostFirm("jd");
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case "STO":{
|
|
|
+ salesOrder.setSalesPostFirm("STO");
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ default:{
|
|
|
+ salesOrder.setSalesPostFirm(companyCode);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (deliveryNo != null && deliveryNo.startsWith("JDVC")) {
|
|
|
+ salesOrder.setSalesPostFirm("jd");
|
|
|
+ }
|
|
|
+ //快递单号
|
|
|
+ salesOrder.setSalesPostNum(deliveryNo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
* 1:定时任务 2:手动同步
|
|
|
* return map.status 0.拉取订单失败 1.拉取订单成功
|
|
|
* map.msg 信息
|
|
@@ -1174,22 +1230,28 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
//获取省份
|
|
|
List<Province> provinceList = addressService.listProvince(new Province());
|
|
|
//返回保存订单结果
|
|
|
- Map<String,Object> returnMap = new HashMap<>();
|
|
|
-
|
|
|
- Integer status = 0; //状态 0.拉取订单失败 1.拉取订单成功
|
|
|
- Integer amountNum = 0; //本次拉取的订单数量(实际需要添加的)
|
|
|
- Integer amountSuccessNum = 0; //保存成功数量
|
|
|
- Integer pullAmount = 0; //拉取的总数量
|
|
|
- String msg = ""; //备注
|
|
|
- StringBuffer errorMsg = new StringBuffer(); //未防止部分拉取失败,所以加入失败原因
|
|
|
- JSONObject jsonObj = new JSONObject(json);//转化为json格式
|
|
|
+ Map<String,Object> returnMap = new HashMap<>(7);
|
|
|
+ //状态 0.拉取订单失败 1.拉取订单成功
|
|
|
+ int status = 0;
|
|
|
+ //本次拉取的订单数量(实际需要添加的)
|
|
|
+ int amountNum = 0;
|
|
|
+ //保存成功数量
|
|
|
+ int amountSuccessNum = 0;
|
|
|
+ //拉取的总数量
|
|
|
+ int pullAmount = 0;
|
|
|
+ //备注
|
|
|
+ String msg = "";
|
|
|
+ //未防止部分拉取失败,所以加入失败原因
|
|
|
+ StringBuilder errorMsg = new StringBuilder();
|
|
|
+ //转化为json格式
|
|
|
+ JSONObject jsonObj = new JSONObject(json);
|
|
|
String resultMsg = jsonObj.getString("result_msg");
|
|
|
- if(resultMsg.equals("success")){
|
|
|
+ if("success".equals(resultMsg)){
|
|
|
status = 1;
|
|
|
msg = "拉取订单成功";
|
|
|
-
|
|
|
- JSONObject dataObj = jsonObj.getJSONObject("data"); //数据
|
|
|
-
|
|
|
+ // 数据
|
|
|
+ JSONObject dataObj = jsonObj.getJSONObject("data");
|
|
|
+ // 获取订单数据
|
|
|
JSONArray beanListArray = dataObj.getJSONArray("beanList");
|
|
|
pullAmount = beanListArray.length();
|
|
|
amountNum = beanListArray.length();
|
|
@@ -1199,80 +1261,52 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
Long otherOrderId = null;
|
|
|
String otherExtOrderId = null;
|
|
|
try{
|
|
|
- JSONObject consigneeObj = job.getJSONObject("consignee"); //用户信息
|
|
|
- JSONObject infoObj = job.getJSONObject("info"); //订单基本信息
|
|
|
- JSONArray itemsArray = job.getJSONArray("items"); //订单项基本信息
|
|
|
+ //用户信息
|
|
|
+ JSONObject consigneeObj = job.getJSONObject("consignee");
|
|
|
+ //订单基本信息
|
|
|
+ JSONObject infoObj = job.getJSONObject("info");
|
|
|
+ //订单项基本信息
|
|
|
+ JSONArray itemsArray = job.getJSONArray("items");
|
|
|
JSONObject memoObj = null;
|
|
|
if(job.has("memo")){
|
|
|
- memoObj = job.getJSONObject("memo"); //备注信息 如果没有备注,将为null
|
|
|
+ //备注信息 如果没有备注,将为null
|
|
|
+ memoObj = job.getJSONObject("memo");
|
|
|
}
|
|
|
|
|
|
SalesOrder salesOrder = new SalesOrder();
|
|
|
//状态信息
|
|
|
- salesOrder.setSalesIsLocked(0);//是否锁定0:否1:是
|
|
|
- salesOrder.setSalesIsSeparate(0);//是否缺货0:否1:是
|
|
|
- salesOrder.setSalesAdminId(10089); //录入人id
|
|
|
-
|
|
|
- salesOrder.setSalesIsSend(0);//是否通知配货0:否1:是
|
|
|
- salesOrder.setSalesDeliver(1); //出库状态1:未出库2:已出库
|
|
|
- salesOrder.setSalesShippingStatus(0);////发货状态0(未发货)1(已发货,即已扫描出库)3(备货中)4(收货)11(已通知配货,后加)
|
|
|
- salesOrder.setSalesStatus(0); //确认状态 0(未确认)1(确认)2(挂起)3(作废) 4:京东自发 -- 在订单项判断中,可能会变成京东仓库自发状态
|
|
|
-
|
|
|
+ //是否锁定0:否1:是
|
|
|
+ salesOrder.setSalesIsLocked(0);
|
|
|
+ //是否缺货0:否1:是
|
|
|
+ salesOrder.setSalesIsSeparate(0);
|
|
|
+ //录入人id
|
|
|
+ salesOrder.setSalesAdminId(10089);
|
|
|
+ //是否通知配货0:否1:是
|
|
|
+ salesOrder.setSalesIsSend(0);
|
|
|
+ //出库状态1:未出库2:已出库
|
|
|
+ salesOrder.setSalesDeliver(1);
|
|
|
+ //发货状态0(未发货)1(已发货,即已扫描出库)3(备货中)4(收货)11(已通知配货,后加)
|
|
|
+ salesOrder.setSalesShippingStatus(0);
|
|
|
+ //确认状态 0(未确认)1(确认)2(挂起)3(作废) 4:京东自发 -- 在订单项判断中,可能会变成京东仓库自发状态
|
|
|
+ salesOrder.setSalesStatus(0);
|
|
|
//小亚通订单编号
|
|
|
otherOrderId = infoObj.getLong("orderId");
|
|
|
-
|
|
|
//商城订单编号
|
|
|
otherExtOrderId = infoObj.getString("extOrderId");
|
|
|
-
|
|
|
//订单状态::0 待支付;10 待成团;20 待发货;30 预售中;40 待审批;50 仓库代发货;60 已发货;70 已签收;80 已拒收;999 已作废
|
|
|
Integer orderStatus = infoObj.getInt("orderStatus");
|
|
|
boolean isStatus = true;
|
|
|
switch (orderStatus){
|
|
|
case 20:
|
|
|
+ // 待发货
|
|
|
+ break;
|
|
|
+ case 70:
|
|
|
+ // 已签收
|
|
|
+ setSendOrderInfo(salesOrder, job, errorMsg, otherExtOrderId);
|
|
|
break;
|
|
|
- case 70: //70 已签收和已发货一样,
|
|
|
case 60:
|
|
|
- salesOrder.setSalesIsSend(1);//是否通知配货0:否1:是
|
|
|
- salesOrder.setSalesDeliver(2); //出库状态1:未出库2:已出库
|
|
|
- salesOrder.setSalesShippingStatus(1);////发货状态0(未发货)1(已发货,即已扫描出库)3(备货中)4(收货)11(已通知配货,后加)
|
|
|
- salesOrder.setSalesStatus(1); //确认状态 0(未确认)1(确认)2(挂起)3(作废) 4:京东自发 -- 在订单项判断中,可能会变成京东仓库自发状态
|
|
|
-
|
|
|
- JSONArray logisticsArray = null;
|
|
|
- if(job.has("logistics")){
|
|
|
- logisticsArray = job.getJSONArray("logistics");
|
|
|
- }
|
|
|
- if(logisticsArray.length() < 1){
|
|
|
- errorMsg.append("商城订单编号:"+otherExtOrderId+"发货异常,未拉取到发货单号");
|
|
|
- }else{
|
|
|
- JSONObject logistics = logisticsArray.getJSONObject(0);
|
|
|
- String companyCode = logistics.getString("companyCode");
|
|
|
- String deliveryNo = logistics.getString("deliveryNo");
|
|
|
- String deliveryTime = logistics.getString("deliveryTime");
|
|
|
- salesOrder.setSalesDeliverTime(sdf.parse(deliveryTime));
|
|
|
- switch (companyCode){
|
|
|
- case "2087":{
|
|
|
- salesOrder.setSalesPostFirm("jd");
|
|
|
- break;
|
|
|
- }
|
|
|
- case "CYS0000010":{
|
|
|
- salesOrder.setSalesPostFirm("jd");
|
|
|
- break;
|
|
|
- }
|
|
|
- case "STO":{
|
|
|
- salesOrder.setSalesPostFirm("STO");
|
|
|
- break;
|
|
|
- }
|
|
|
- default:{
|
|
|
- salesOrder.setSalesPostFirm(companyCode);
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- if (deliveryNo != null && deliveryNo.startsWith("JDV")) {
|
|
|
- salesOrder.setSalesPostFirm("jd");
|
|
|
- }
|
|
|
- //快递单号
|
|
|
- salesOrder.setSalesPostNum(deliveryNo);
|
|
|
- }
|
|
|
+ // 已发货
|
|
|
+ setSendOrderInfo(salesOrder, job, errorMsg, otherExtOrderId);
|
|
|
break;
|
|
|
case 999:
|
|
|
//订单作废
|
|
@@ -1284,13 +1318,12 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
}
|
|
|
|
|
|
if(!isStatus){
|
|
|
- errorMsg.append("商城订单编号:"+otherExtOrderId+"该订单状态异常,"+ getStatusMsg(orderStatus) +";");
|
|
|
+ errorMsg.append("商城订单编号:").append(otherExtOrderId).append("该订单状态异常,").append(getStatusMsg(orderStatus)).append(";");
|
|
|
continue;
|
|
|
}
|
|
|
|
|
|
- //小亚通订单编号
|
|
|
+ //订单编号(将系统订单号、交易号设置为小亚通订单号,并单独保存第三方订单号)
|
|
|
salesOrder.setSalesOrderId(String.valueOf(otherOrderId));
|
|
|
- //小亚通订单编号
|
|
|
salesOrder.setSalesDealCode(String.valueOf(otherOrderId));
|
|
|
salesOrder.setSalesExOrderId(otherExtOrderId);
|
|
|
|
|
@@ -1300,74 +1333,93 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
//小红书:XHS 放心购平台:FXG 微信小店:WXXD 聚宝赞平台:JBZ 苏宁易购:SUNING 蘑菇街小店平台:XIAODIAN 环球捕手平台:HQBS
|
|
|
//平台好医生平台:PAJK 魔筷星选:YAPI 达令家平台:DALING 爱库存平台:AIKUCUN 快手小店:KWAISHOP
|
|
|
String platformId = infoObj.getString("platformId");
|
|
|
- Long shopId = infoObj.getLong("shopId"); // 店铺编号
|
|
|
+ // 店铺编号
|
|
|
+ Long shopId = infoObj.getLong("shopId");
|
|
|
String shopIdStr = String.valueOf(shopId);
|
|
|
switch (platformId){
|
|
|
case "TMALL":{
|
|
|
//因为淘宝天猫有两个所以需要区分
|
|
|
- if("100239736885".equals(shopIdStr) ){ //爱贝源旗舰店
|
|
|
- salesOrder.setSalesStoreId(86); //天猫爱贝源旗舰店
|
|
|
- }else if("100239736886".equals(shopIdStr)){ //爱贝源直销店
|
|
|
- salesOrder.setSalesStoreId(3); //爱贝源母婴直销店
|
|
|
+ if("100239736885".equals(shopIdStr) ){
|
|
|
+ //天猫爱贝源旗舰店
|
|
|
+ salesOrder.setSalesStoreId(86);
|
|
|
+ }else if("100239736886".equals(shopIdStr)){
|
|
|
+ //爱贝源母婴直销店
|
|
|
+ salesOrder.setSalesStoreId(3);
|
|
|
}
|
|
|
- salesOrder.setSalesCompanyId(1); //深圳爱贝源
|
|
|
- salesOrder.setSalesPayType(5);//付款方式5:支付宝支付
|
|
|
+ //深圳爱贝源
|
|
|
+ salesOrder.setSalesCompanyId(1);
|
|
|
+ //付款方式5:支付宝支付
|
|
|
+ salesOrder.setSalesPayType(5);
|
|
|
break;
|
|
|
}
|
|
|
case "JD":{
|
|
|
//JD店铺id:100206182446
|
|
|
- salesOrder.setSalesStoreId(40); //京东
|
|
|
- salesOrder.setSalesCompanyId(1); //深圳爱贝源
|
|
|
+ //京东
|
|
|
+ salesOrder.setSalesStoreId(40);
|
|
|
+ //深圳爱贝源
|
|
|
+ salesOrder.setSalesCompanyId(1);
|
|
|
salesOrder.setSalesPayType(1);
|
|
|
break;
|
|
|
}
|
|
|
- case "OFFLINE": //小亚通虚拟店铺
|
|
|
+ case "OFFLINE":
|
|
|
+ //小亚通虚拟店铺
|
|
|
default:
|
|
|
- salesOrder.setSalesStoreId(124); //虚拟店铺
|
|
|
- salesOrder.setSalesCompanyId(1); //
|
|
|
- salesOrder.setSalesPayType(5);//付款方式5:支付宝支付
|
|
|
+ //虚拟店铺
|
|
|
+ salesOrder.setSalesStoreId(124);
|
|
|
+ salesOrder.setSalesCompanyId(1);
|
|
|
+ //付款方式5:支付宝支付
|
|
|
+ salesOrder.setSalesPayType(5);
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
//收货人信息
|
|
|
- salesOrder.setSalesAddressName(consigneeObj.getString("receiverName"));//收件人姓名
|
|
|
- salesOrder.setSalesAddressTel(consigneeObj.getString("receiverMobile"));//收件人手机号码
|
|
|
-
|
|
|
- //因为狗东的地址信息过于离谱,所以需要单独分开,特殊处理
|
|
|
+ salesOrder.setSalesAddressName(consigneeObj.getString("receiverName"));
|
|
|
+ salesOrder.setSalesAddressTel(consigneeObj.getString("receiverMobile"));
|
|
|
String receiverState = "",receiverCity="",receiverDistrict="",receiverAddress="";
|
|
|
if("JD".equals(platformId)){
|
|
|
- receiverState = consigneeObj.getString("receiverState");//省
|
|
|
- receiverCity = consigneeObj.getString("receiverCity");//市
|
|
|
- receiverDistrict = consigneeObj.getString("receiverCountry");//区
|
|
|
- receiverAddress = consigneeObj.getString("receiverAddress");//地址
|
|
|
+ //因为狗东的地址信息过于离谱,所以需要单独分开,特殊处理
|
|
|
+ //省
|
|
|
+ receiverState = consigneeObj.getString("receiverState");
|
|
|
+ //市
|
|
|
+ receiverCity = consigneeObj.getString("receiverCity");
|
|
|
+ //区
|
|
|
+ receiverDistrict = consigneeObj.getString("receiverCountry");
|
|
|
+ //地址
|
|
|
+ receiverAddress = consigneeObj.getString("receiverAddress");
|
|
|
if(receiverState.contains("上海") || receiverState.contains("北京")
|
|
|
|| receiverState.contains("重庆") || receiverState.contains("天津")){
|
|
|
receiverDistrict = receiverCity;
|
|
|
receiverCity = receiverState;
|
|
|
}
|
|
|
}else{
|
|
|
- receiverState = consigneeObj.getString("receiverState");//省
|
|
|
- receiverCity = consigneeObj.getString("receiverCity");//市
|
|
|
- receiverDistrict = consigneeObj.getString("receiverDistrict");//区
|
|
|
- receiverAddress = consigneeObj.getString("receiverAddress");//地址
|
|
|
+ //省
|
|
|
+ receiverState = consigneeObj.getString("receiverState");
|
|
|
+ //市
|
|
|
+ receiverCity = consigneeObj.getString("receiverCity");
|
|
|
+ //区
|
|
|
+ receiverDistrict = consigneeObj.getString("receiverDistrict");
|
|
|
+ //地址
|
|
|
+ receiverAddress = consigneeObj.getString("receiverAddress");
|
|
|
}
|
|
|
String address = receiverState+" "+receiverCity+" "+receiverDistrict+" "+receiverAddress;
|
|
|
- salesOrder.setSalesAddressInfo(receiverState+" "+receiverCity+" "+receiverDistrict+" "+receiverAddress);//详细地址
|
|
|
+ salesOrder.setSalesAddressInfo(receiverState+" "+receiverCity+" "+receiverDistrict+" "+receiverAddress);
|
|
|
salesOrder.setSalesOpenId(consigneeObj.getString("receiverMobile"));
|
|
|
|
|
|
if(consigneeObj.has("receiverZip")){
|
|
|
- salesOrder.setSalesAddressPostcode(consigneeObj.getString("receiverZip"));//收件人邮政编码
|
|
|
+ //收件人邮政编码
|
|
|
+ salesOrder.setSalesAddressPostcode(consigneeObj.getString("receiverZip"));
|
|
|
}else{
|
|
|
+ // 没有邮编,从系统开始查找
|
|
|
if(provinceList != null && provinceList.size() >0 ){
|
|
|
int provinceIdNum = 0;
|
|
|
int provinceId = 0;
|
|
|
for (Province proiv:provinceList) {
|
|
|
int proNum = 0;
|
|
|
String newPro = proiv.getProvince().replaceAll("省|自治区|壮族自治区|特别行政区|维吾尔自治区","");
|
|
|
- if(newPro.indexOf(receiverState) > -1){
|
|
|
+ if(newPro.contains(receiverState)){
|
|
|
proNum++;
|
|
|
}
|
|
|
- if(receiverState.indexOf(newPro) > -1){
|
|
|
+ if(receiverState.contains(newPro)){
|
|
|
proNum++;
|
|
|
}
|
|
|
if(proNum > provinceIdNum){
|
|
@@ -1387,10 +1439,10 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
for (City ci:cityList) {
|
|
|
int ciNum = 0;
|
|
|
String newCi = ci.getCity().replaceAll("市|州|地区|自治区|特别行政区","");
|
|
|
- if(receiverCity.indexOf(newCi)>-1){
|
|
|
+ if(receiverCity.contains(newCi)){
|
|
|
ciNum ++;
|
|
|
}
|
|
|
- if(newCi.indexOf(receiverCity)>-1){
|
|
|
+ if(newCi.contains(receiverCity)){
|
|
|
ciNum ++;
|
|
|
}
|
|
|
if(cityNum < ciNum){
|
|
@@ -1417,10 +1469,10 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
newDIs = newDIs.substring(0,newDIs.length()-1);
|
|
|
newDIs += newLastNewArea;
|
|
|
|
|
|
- if(newDIs.indexOf(receiverDistrict) > -1){
|
|
|
+ if(newDIs.contains(receiverDistrict)){
|
|
|
disNum++;
|
|
|
}
|
|
|
- if(receiverDistrict.indexOf(newDIs) > -1){
|
|
|
+ if(receiverDistrict.contains(newDIs)){
|
|
|
disNum++;
|
|
|
}
|
|
|
if(districtNum < disNum){
|
|
@@ -1441,39 +1493,50 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
//支付金额 - 订单总金额
|
|
|
Long totalFee = infoObj.getLong("totalFee");
|
|
|
Integer amount = totalFee.intValue();
|
|
|
- salesOrder.setSalesLastMoney(amount);//本次支付金额
|
|
|
- salesOrder.setSalesPayMoney(amount);//已付金额-支付金额/折扣价
|
|
|
- salesOrder.setSalesAmount(amount);//订单总金额
|
|
|
+ //本次支付金额
|
|
|
+ salesOrder.setSalesLastMoney(amount);
|
|
|
+ //已付金额-支付金额/折扣价
|
|
|
+ salesOrder.setSalesPayMoney(amount);
|
|
|
+ //订单总金额
|
|
|
+ salesOrder.setSalesAmount(amount);
|
|
|
|
|
|
//优惠金额
|
|
|
Long discountFee = infoObj.getLong("discountFee");
|
|
|
Integer discountFeeInt = discountFee.intValue();
|
|
|
- salesOrder.setSalesDiscountMoney(discountFeeInt);//优惠金额
|
|
|
+ //优惠金额
|
|
|
+ salesOrder.setSalesDiscountMoney(discountFeeInt);
|
|
|
|
|
|
+ //创建时间
|
|
|
+ String createTime = infoObj.getString("createTime");
|
|
|
+ //订购时间
|
|
|
+ salesOrder.setSalesSalesTime(sdf.parse(createTime));
|
|
|
//支付时间
|
|
|
- String createTime = infoObj.getString("createTime");//创建时间
|
|
|
- salesOrder.setSalesSalesTime(sdf.parse(createTime));//订购时间
|
|
|
- salesOrder.setSalesPayTime(sdf.parse(createTime));//支付时间
|
|
|
+ salesOrder.setSalesPayTime(sdf.parse(createTime));
|
|
|
salesOrder.setSalesCreateTime(sdf.parse(createTime));
|
|
|
|
|
|
String salesUserRemark = "",SalesAdminRemark="";
|
|
|
//备注
|
|
|
if(job.has("memo")){
|
|
|
String orderMemo = "",buyerMemo="",sellerMemo="",buyerMessage="",sellerMessage="";
|
|
|
- if(memoObj.has("orderMemo")){ //小亚通商家备注 -- 郜思琪
|
|
|
+ if(memoObj.has("orderMemo")){
|
|
|
+ //小亚通商家备注 -- 郜思琪
|
|
|
orderMemo = memoObj.getString("orderMemo");
|
|
|
}
|
|
|
- if(memoObj.has("sellerMemo")){ //天猫,淘宝,商家备注 -- 客服
|
|
|
+ if(memoObj.has("sellerMemo")){
|
|
|
+ //天猫,淘宝,商家备注 -- 客服
|
|
|
sellerMemo = memoObj.getString("sellerMemo");
|
|
|
}
|
|
|
- if(memoObj.has("sellerMessage")){ //京东商城,商家备注 -- 客服
|
|
|
+ if(memoObj.has("sellerMessage")){
|
|
|
+ //京东商城,商家备注 -- 客服
|
|
|
sellerMessage = memoObj.getString("sellerMessage");
|
|
|
}
|
|
|
|
|
|
- if(memoObj.has("buyerMemo")){ //买家留言,配送时间 -- 用户
|
|
|
+ if(memoObj.has("buyerMemo")){
|
|
|
+ //买家留言,配送时间 -- 用户
|
|
|
buyerMemo = memoObj.getString("buyerMemo");
|
|
|
}
|
|
|
- if(memoObj.has("buyerMessage")){ //买家填写留言 -- 用户
|
|
|
+ if(memoObj.has("buyerMessage")){
|
|
|
+ //买家填写留言 -- 用户
|
|
|
buyerMessage = memoObj.getString("buyerMessage");
|
|
|
}
|
|
|
salesUserRemark = buyerMessage;
|
|
@@ -1485,26 +1548,37 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
SalesAdminRemark += "-"+sellerMessage;
|
|
|
}
|
|
|
}
|
|
|
- salesOrder.setSalesUserRemark(salesUserRemark);//用户备注
|
|
|
- salesOrder.setSalesAdminRemark(SalesAdminRemark);//后台的备注--卖家备注
|
|
|
+ //用户备注
|
|
|
+ salesOrder.setSalesUserRemark(salesUserRemark);
|
|
|
+ //后台的备注--卖家备注
|
|
|
+ salesOrder.setSalesAdminRemark(SalesAdminRemark);
|
|
|
|
|
|
//邮费
|
|
|
- Long postFee = infoObj.getLong("postFee"); //邮费
|
|
|
+ Long postFee = infoObj.getLong("postFee");
|
|
|
Integer postFeeInt = postFee.intValue();
|
|
|
- salesOrder.setSalesPostageCost(postFeeInt);//邮费成本
|
|
|
- salesOrder.setSalesShippingFee(postFeeInt);//邮费
|
|
|
+ //邮费成本
|
|
|
+ salesOrder.setSalesPostageCost(postFeeInt);
|
|
|
+ //邮费
|
|
|
+ salesOrder.setSalesShippingFee(postFeeInt);
|
|
|
|
|
|
//默认
|
|
|
- salesOrder.setSalesWaitMoney(0);//待付金额
|
|
|
- salesOrder.setSalesType(1);//订单类型1:购买2:租赁
|
|
|
+ //待付金额
|
|
|
+ salesOrder.setSalesWaitMoney(0);
|
|
|
+ //订单类型1:购买2:租赁
|
|
|
+ salesOrder.setSalesType(1);
|
|
|
salesOrder.setSalesOrderStatus(1);
|
|
|
salesOrder.setSalesPayStatus(2);
|
|
|
- salesOrder.setIsSalesCustomerId(1);//是否绑定客诉(是否为售后订单)1:不是2:是
|
|
|
- salesOrder.setSalesAddType(4);//增加订单方式1:手动增加2:Excel导入3:客诉增加订单
|
|
|
- salesOrder.setSalesPledgeMoney(0);//押金金额
|
|
|
+ //是否绑定客诉(是否为售后订单)1:不是2:是
|
|
|
+ salesOrder.setIsSalesCustomerId(1);
|
|
|
+ //增加订单方式1:手动增加2:Excel导入3:客诉增加订单
|
|
|
+ salesOrder.setSalesAddType(4);
|
|
|
+ //押金金额
|
|
|
+ salesOrder.setSalesPledgeMoney(0);
|
|
|
salesOrder.setSalesRemainDeposit(0);
|
|
|
- salesOrder.setSalesWaitMoney(0);//待付金额
|
|
|
- salesOrder.setSalesSendType(2);// 送货方式 1:线下送货,2:物流发货
|
|
|
+ //待付金额
|
|
|
+ salesOrder.setSalesWaitMoney(0);
|
|
|
+ // 送货方式 1:线下送货,2:物流发货
|
|
|
+ salesOrder.setSalesSendType(2);
|
|
|
|
|
|
// 新增处理:如果有订单满足规则,去除对应的订单项内容 {"productCode":"xx","group":[{"productCode":"xx", "productNum":1}]}
|
|
|
for (int j = 0; j < itemsArray.length(); j++) {
|
|
@@ -1517,44 +1591,51 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- Integer salesWarrantyStatus = 0;
|
|
|
+ int salesWarrantyStatus = 0;
|
|
|
List<SalesOrderItem> salesOrderItemList = new ArrayList<SalesOrderItem>();
|
|
|
for(int j=0;j<itemsArray.length();j++){
|
|
|
JSONObject item = itemsArray.getJSONObject(j);
|
|
|
|
|
|
//订单项状态: 0 待支付 10 待成团 20 待发货 30 预售中 40 待审批 50 仓库代发货 60 已发货 70 已签收 80 已拒收 999 已作废
|
|
|
- Integer itemStatus = item.getInt("itemStatus"); //不对单个订单项处理,同样录入到系统中
|
|
|
- Integer itemWarrantyStatus = item.getInt("warrantyStatus"); //不对单个订单项处理,同样录入到系统中
|
|
|
+ //不对单个订单项处理,同样录入到系统中
|
|
|
+ Integer itemStatus = item.getInt("itemStatus");
|
|
|
+ //不对单个订单项处理,同样录入到系统中
|
|
|
+ Integer itemWarrantyStatus = item.getInt("warrantyStatus");
|
|
|
if(itemWarrantyStatus != 0){
|
|
|
salesWarrantyStatus = 1;
|
|
|
}
|
|
|
|
|
|
- String extSkuId = item.getString("outerId"); //69码 外部商家自编码
|
|
|
+ //69码 外部商家自编码
|
|
|
+ String extSkuId = item.getString("outerId");
|
|
|
ProductColor productColor = productColorMapper.getProductColorByBar(extSkuId);
|
|
|
if(productColor == null){
|
|
|
logger.info("商城订单编号:"+otherExtOrderId+"-订单项中的SKU未匹配到本地,SKU编号:"+extSkuId+"; ");
|
|
|
- errorMsg.append(otherExtOrderId+"-订单项中的SKU未匹配到本地,SKU编号:"+extSkuId+";");
|
|
|
+ errorMsg.append(otherExtOrderId).append("-订单项中的SKU未匹配到本地,SKU编号:").append(extSkuId).append(";");
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
if(productColor.getColorIsJdAuto() == 1 && salesOrder.getSalesStoreId() == 40){
|
|
|
if(salesOrder.getSalesStatus() == 0){
|
|
|
//京东仓自发 && 京东店铺
|
|
|
- salesOrder.setSalesStatus(4); //4:京东自发
|
|
|
+ //4:京东自发
|
|
|
+ salesOrder.setSalesStatus(4);
|
|
|
}
|
|
|
- salesOrder.setSalesSendType(3); //3:京东仓发货
|
|
|
+ //3:京东仓发货
|
|
|
+ salesOrder.setSalesSendType(3);
|
|
|
}
|
|
|
-
|
|
|
- Long orderItemId = item.getLong("orderItemId"); //小亚通订单项编号
|
|
|
- Integer num = item.getInt("num"); //数量
|
|
|
- Long totalFeeLong = item.getLong("totalFee"); //应付金额是指:购买数量的总应付金额
|
|
|
+ //小亚通订单项编号
|
|
|
+ Long orderItemId = item.getLong("orderItemId");
|
|
|
+ //数量
|
|
|
+ Integer num = item.getInt("num");
|
|
|
+ //应付金额是指:购买数量的总应付金额
|
|
|
+ Long totalFeeLong = item.getLong("totalFee");
|
|
|
Integer totalFeeInt = totalFeeLong.intValue();
|
|
|
|
|
|
if(productColor.getProductIsSplit() == 1){
|
|
|
List<ProductCombinatInfo> productCombinatList = productMapper.combinatList(productColor.getColorProductId());
|
|
|
if(productCombinatList == null || productCombinatList.size() < 1){
|
|
|
logger.info("商城订单编号:"+otherExtOrderId+"-订单项中的SKU未查询到组合产品,SKU编号:"+extSkuId+"; ");
|
|
|
- errorMsg.append(otherExtOrderId+"-订单项中的SKU未查询到组合产品,SKU编号:"+extSkuId+";");
|
|
|
+ errorMsg.append(otherExtOrderId).append("-订单项中的SKU未查询到组合产品,SKU编号:").append(extSkuId).append(";");
|
|
|
break;
|
|
|
}
|
|
|
Integer advProductCombinatFree = totalFeeInt/productCombinatList.size();
|
|
@@ -1578,23 +1659,33 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
totalFeeInt = totalFeeInt - itemDiscountAllFeeInt;
|
|
|
}
|
|
|
Integer itemDiscountFeeInt = itemDiscountAllFeeInt/sonNum;
|
|
|
-
|
|
|
- salesOrderItem.setItemProductPrice(itemDiscountFeeInt); //产品市场价
|
|
|
- salesOrderItem.setItemProductDiscount(itemDiscountFeeInt); //产品折扣价
|
|
|
- salesOrderItem.setItemTotal(itemDiscountAllFeeInt);//小结
|
|
|
-
|
|
|
- salesOrderItem.setItemNum(sonNum); //产品数量
|
|
|
- salesOrderItem.setItemColorBar(sonPc.getColorBar()); //colorBar
|
|
|
- salesOrderItem.setItemProductId(sonPc.getColorProductId());//产品id
|
|
|
+ //产品市场价
|
|
|
+ salesOrderItem.setItemProductPrice(itemDiscountFeeInt);
|
|
|
+ //产品折扣价
|
|
|
+ salesOrderItem.setItemProductDiscount(itemDiscountFeeInt);
|
|
|
+ //小结
|
|
|
+ salesOrderItem.setItemTotal(itemDiscountAllFeeInt);
|
|
|
+ //产品数量
|
|
|
+ salesOrderItem.setItemNum(sonNum);
|
|
|
+ //colorBar
|
|
|
+ salesOrderItem.setItemColorBar(sonPc.getColorBar());
|
|
|
+ //产品id
|
|
|
+ salesOrderItem.setItemProductId(sonPc.getColorProductId());
|
|
|
salesOrderItem.setItemColorId(sonPc.getColorId());
|
|
|
salesOrderItem.setItemProductType(sonPc.getProductType());
|
|
|
salesOrderItem.setItemProductName(sonPc.getProductName());
|
|
|
- salesOrderItem.setItemProductColor(sonPc.getColorName()); //产品颜色
|
|
|
- salesOrderItem.setProductAbbreviation(sonPc.getProductAbbreviation()); //商品简称
|
|
|
- salesOrderItem.setColorAbbreviation(sonPc.getColorAbbreviation()); //所属产品简称
|
|
|
- salesOrderItem.setColorIsWeight(sonPc.getColorIsWeight());//重量
|
|
|
- salesOrderItem.setColorIsMachine(sonPc.getColorIsMachine());//是否是水机 1:水机 2;其它产品
|
|
|
- salesOrderItem.setItemIsSource(1);//产品来源 1:产品颜色表,2:配件表
|
|
|
+ //产品颜色
|
|
|
+ salesOrderItem.setItemProductColor(sonPc.getColorName());
|
|
|
+ //商品简称
|
|
|
+ salesOrderItem.setProductAbbreviation(sonPc.getProductAbbreviation());
|
|
|
+ //所属产品简称
|
|
|
+ salesOrderItem.setColorAbbreviation(sonPc.getColorAbbreviation());
|
|
|
+ //重量
|
|
|
+ salesOrderItem.setColorIsWeight(sonPc.getColorIsWeight());
|
|
|
+ //是否是水机 1:水机 2;其它产品
|
|
|
+ salesOrderItem.setColorIsMachine(sonPc.getColorIsMachine());
|
|
|
+ //产品来源 1:产品颜色表,2:配件表
|
|
|
+ salesOrderItem.setItemIsSource(1);
|
|
|
salesOrderItemList.add(salesOrderItem);
|
|
|
}
|
|
|
}else{
|
|
@@ -1603,30 +1694,40 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
salesOrderItem.setItemOtherId(String.valueOf(orderItemId));
|
|
|
|
|
|
Integer itemDiscountFeeInt = totalFeeInt/num;
|
|
|
-
|
|
|
- salesOrderItem.setItemProductPrice(itemDiscountFeeInt); //产品市场价
|
|
|
- salesOrderItem.setItemProductDiscount(itemDiscountFeeInt); //产品折扣价
|
|
|
- salesOrderItem.setItemTotal(totalFeeInt);//小结
|
|
|
+ //产品市场价
|
|
|
+ salesOrderItem.setItemProductPrice(itemDiscountFeeInt);
|
|
|
+ //产品折扣价
|
|
|
+ salesOrderItem.setItemProductDiscount(itemDiscountFeeInt);
|
|
|
+ //小结
|
|
|
+ salesOrderItem.setItemTotal(totalFeeInt);
|
|
|
|
|
|
//itemCost;//单个成本 itemCostTotal;//成本小结 确认操作计算
|
|
|
-
|
|
|
- salesOrderItem.setItemNum(num); //产品数量
|
|
|
- salesOrderItem.setItemColorBar(productColor.getColorBar()); //colorBar
|
|
|
- salesOrderItem.setItemProductId(productColor.getColorProductId());//产品id
|
|
|
+ //产品数量
|
|
|
+ salesOrderItem.setItemNum(num);
|
|
|
+ //colorBar
|
|
|
+ salesOrderItem.setItemColorBar(productColor.getColorBar());
|
|
|
+ //产品id
|
|
|
+ salesOrderItem.setItemProductId(productColor.getColorProductId());
|
|
|
salesOrderItem.setItemColorId(productColor.getColorId());
|
|
|
salesOrderItem.setItemProductType(productColor.getProductType());
|
|
|
salesOrderItem.setItemProductName(productColor.getProductName());
|
|
|
- salesOrderItem.setItemProductColor(productColor.getColorName()); //产品颜色
|
|
|
- salesOrderItem.setProductAbbreviation(productColor.getProductAbbreviation()); //商品简称
|
|
|
- salesOrderItem.setColorAbbreviation(productColor.getColorAbbreviation()); //所属产品简称
|
|
|
- salesOrderItem.setColorIsWeight(productColor.getColorIsWeight());//重量
|
|
|
- salesOrderItem.setColorIsMachine(productColor.getColorIsMachine());//是否是水机 1:水机 2;其它产品
|
|
|
- salesOrderItem.setItemIsSource(1);//产品来源 1:产品颜色表,2:配件表
|
|
|
+ //产品颜色
|
|
|
+ salesOrderItem.setItemProductColor(productColor.getColorName());
|
|
|
+ //商品简称
|
|
|
+ salesOrderItem.setProductAbbreviation(productColor.getProductAbbreviation());
|
|
|
+ //所属产品简称
|
|
|
+ salesOrderItem.setColorAbbreviation(productColor.getColorAbbreviation());
|
|
|
+ //重量
|
|
|
+ salesOrderItem.setColorIsWeight(productColor.getColorIsWeight());
|
|
|
+ //是否是水机 1:水机 2;其它产品
|
|
|
+ salesOrderItem.setColorIsMachine(productColor.getColorIsMachine());
|
|
|
+ //产品来源 1:产品颜色表,2:配件表
|
|
|
+ salesOrderItem.setItemIsSource(1);
|
|
|
salesOrderItemList.add(salesOrderItem);
|
|
|
}
|
|
|
}
|
|
|
if(salesOrderItemList.size() < 1){
|
|
|
- errorMsg.append(otherOrderId+"添加订单,订单项出现错误;");
|
|
|
+ errorMsg.append(otherOrderId).append("添加订单,订单项出现错误;");
|
|
|
continue;
|
|
|
}
|
|
|
|
|
@@ -1823,19 +1924,18 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
}
|
|
|
}
|
|
|
//处理客户信息-结束
|
|
|
-
|
|
|
String[] detectIds = {};
|
|
|
salesOrderService.addRstOrderinfo(salesOrder,new ArrayList<SalesOrder>(),detectIds);
|
|
|
-
|
|
|
//添加操作跟踪记录
|
|
|
OrderTracking orderTracking = new OrderTracking();
|
|
|
- orderTracking.setAdminId(1); //默认用户爱贝源自动拉取订单
|
|
|
+ //默认用户爱贝源自动拉取订单
|
|
|
+ orderTracking.setAdminId(1);
|
|
|
orderTracking.setSalesDealCode(salesOrder.getSalesDealCode());
|
|
|
orderTracking.setTrackingDesc("创建订单(小亚通拉取订单)");
|
|
|
salesOrderService.addTracking(orderTracking);
|
|
|
amountSuccessNum++;
|
|
|
}catch (Exception e){
|
|
|
- errorMsg.append(otherOrderId+"添加订单失败,失败原因"+ e.getMessage() +";</br>");
|
|
|
+ errorMsg.append(otherOrderId).append("添加订单失败,失败原因").append(e.getMessage()).append(";</br>");
|
|
|
e.printStackTrace();
|
|
|
logger.info("XYT拉取订单-添加订单错误-错误信息:"+e.getMessage());
|
|
|
}
|
|
@@ -1846,14 +1946,20 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
errorMsg.append(resultMsg);
|
|
|
logger.info("XYT拉取订单-调用小亚通业务错误-错误信息:"+json);
|
|
|
}
|
|
|
-
|
|
|
- returnMap.put("batchId",batchId); //批次id
|
|
|
- returnMap.put("status",status); //拉取订单成功
|
|
|
- returnMap.put("pullAmount",pullAmount); //拉取订单总数量
|
|
|
- returnMap.put("amountNum",amountNum); //拉取实际有用的订单数量
|
|
|
- returnMap.put("amountSuccessNum",amountSuccessNum); //保存成功数量
|
|
|
- returnMap.put("msg",msg); //拉取订单成功
|
|
|
- returnMap.put("errorMsg",errorMsg.toString()); //失败订单号
|
|
|
+ //批次id
|
|
|
+ returnMap.put("batchId",batchId);
|
|
|
+ //拉取订单成功
|
|
|
+ returnMap.put("status",status);
|
|
|
+ //拉取订单总数量
|
|
|
+ returnMap.put("pullAmount",pullAmount);
|
|
|
+ //拉取实际有用的订单数量
|
|
|
+ returnMap.put("amountNum",amountNum);
|
|
|
+ //保存成功数量
|
|
|
+ returnMap.put("amountSuccessNum",amountSuccessNum);
|
|
|
+ //拉取订单成功
|
|
|
+ returnMap.put("msg",msg);
|
|
|
+ //失败订单号
|
|
|
+ returnMap.put("errorMsg",errorMsg.toString());
|
|
|
return returnMap;
|
|
|
}
|
|
|
|