|
@@ -3,15 +3,13 @@ package com.steerinfo.dil.service.impl;
|
|
import com.alibaba.druid.support.json.JSONUtils;
|
|
import com.alibaba.druid.support.json.JSONUtils;
|
|
import com.alibaba.fastjson.JSON;
|
|
import com.alibaba.fastjson.JSON;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
-import com.steerinfo.dil.feign.JoinFeign;
|
|
|
|
-import com.steerinfo.dil.feign.OtmsFeign;
|
|
|
|
-import com.steerinfo.dil.feign.RmsFeign;
|
|
|
|
-import com.steerinfo.dil.feign.TmsTruckFeign;
|
|
|
|
|
|
+import com.steerinfo.dil.feign.*;
|
|
import com.steerinfo.dil.mapper.*;
|
|
import com.steerinfo.dil.mapper.*;
|
|
import com.steerinfo.dil.model.*;
|
|
import com.steerinfo.dil.model.*;
|
|
import com.steerinfo.dil.service.IAmsSaleOrderService;
|
|
import com.steerinfo.dil.service.IAmsSaleOrderService;
|
|
import com.steerinfo.dil.util.*;
|
|
import com.steerinfo.dil.util.*;
|
|
import io.swagger.annotations.ApiOperation;
|
|
import io.swagger.annotations.ApiOperation;
|
|
|
|
+import org.apache.poi.ss.formula.functions.T;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.scheduling.annotation.Scheduled;
|
|
import org.springframework.scheduling.annotation.Scheduled;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
@@ -106,6 +104,12 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
|
|
@Autowired
|
|
@Autowired
|
|
EasFluMakeDateUtil easFluMakeDateUtil;
|
|
EasFluMakeDateUtil easFluMakeDateUtil;
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ EASCapacityTestUtil easCapacityTestUtil;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ BmstruckFeign bmstruckFeign;
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
public List<Map<String, Object>> getSaleOrderInfo(Map<String, Object> map) {
|
|
public List<Map<String, Object>> getSaleOrderInfo(Map<String, Object> map) {
|
|
return amsSaleOrderMapper.getSaleOrderInfo(map);
|
|
return amsSaleOrderMapper.getSaleOrderInfo(map);
|
|
@@ -902,17 +906,18 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
|
|
throw new Exception("该车没有GPS定位信息,请联系销售公司物流部,申请是否可以派车。");
|
|
throw new Exception("该车没有GPS定位信息,请联系销售公司物流部,申请是否可以派车。");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ //校验结束,上传金蝶
|
|
|
|
+ pushCarNumberToEas(map);
|
|
// 得到车序号表主键
|
|
// 得到车序号表主键
|
|
BigDecimal saleOrderMaterialId = DataChange.dataToBigDecimal(map.get("saleOrderMaterialId"));
|
|
BigDecimal saleOrderMaterialId = DataChange.dataToBigDecimal(map.get("saleOrderMaterialId"));
|
|
// 得到承运商
|
|
// 得到承运商
|
|
BigDecimal carrierId = DataChange.dataToBigDecimal(map.get("carrierId"));
|
|
BigDecimal carrierId = DataChange.dataToBigDecimal(map.get("carrierId"));
|
|
// 查询到车序号的单价
|
|
// 查询到车序号的单价
|
|
- //BigDecimal priceId = amsSaleOrderMapper.getOrderPrice(map);
|
|
|
|
|
|
+ BigDecimal priceId = amsSaleOrderMapper.getOrderPrice(map);
|
|
// 得到详细地址id
|
|
// 得到详细地址id
|
|
BigDecimal placeId = amsSaleOrderMapper.getPlaceId(saleOrderMaterialId);
|
|
BigDecimal placeId = amsSaleOrderMapper.getPlaceId(saleOrderMaterialId);
|
|
- BigDecimal priceId = null;
|
|
|
|
- // 如果详细地址匹配不到单价,则匹配省市县内最高的一条单价(只给非自提的进行匹配)
|
|
|
|
- if (placeId != null && selfMention.equals("否")) {
|
|
|
|
|
|
+ // 如果已经设置单价则不覆盖,详细地址匹配不到单价,则匹配省市县内最高的一条单价(只给非自提的进行匹配)
|
|
|
|
+ if (priceId == null && placeId != null && selfMention.equals("否")) {
|
|
priceId = amsSaleOrderMapper.getPriceIdByPlaceId(placeId);
|
|
priceId = amsSaleOrderMapper.getPriceIdByPlaceId(placeId);
|
|
}
|
|
}
|
|
// 运输线路id
|
|
// 运输线路id
|
|
@@ -1682,6 +1687,17 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
|
|
amsSaleOrderMaterial.setSaleShippingAddressId((BigDecimal) placeIdList.get(0).get("placeId"));
|
|
amsSaleOrderMaterial.setSaleShippingAddressId((BigDecimal) placeIdList.get(0).get("placeId"));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ try{
|
|
|
|
+ //修改单价
|
|
|
|
+ Map<String,Object> data=new HashMap<>();
|
|
|
|
+ List<Map<String,Object>> mapList = new ArrayList<>();
|
|
|
|
+ mapValue.put("priceId",DataChange.dataToBigDecimal(amsSaleOrderMaterialMapper.getPriceByPlace(addressid2)));
|
|
|
|
+ mapList.add(mapValue);
|
|
|
|
+ data.put("mapList",mapList);
|
|
|
|
+ bmstruckFeign.updateBatchDetailsOrder(data);
|
|
|
|
+ }catch (Exception e){
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ }
|
|
String addressids="";
|
|
String addressids="";
|
|
addressids =addressid1+","+addressid2;
|
|
addressids =addressid1+","+addressid2;
|
|
amsSaleOrderMaterial.setShippingAddressIds(addressids);
|
|
amsSaleOrderMaterial.setShippingAddressIds(addressids);
|
|
@@ -1973,6 +1989,7 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
|
|
BigDecimal oldCapacityId = omstruckOrderMapper.getOldCapacityId(DataChange.dataToBigDecimal(mapValue.get("orderId")));
|
|
BigDecimal oldCapacityId = omstruckOrderMapper.getOldCapacityId(DataChange.dataToBigDecimal(mapValue.get("orderId")));
|
|
if(oldCapacityId.compareTo(DataChange.dataToBigDecimal(mapValue.get("capacityId"))) == 0) {
|
|
if(oldCapacityId.compareTo(DataChange.dataToBigDecimal(mapValue.get("capacityId"))) == 0) {
|
|
mapValue.put("result",1);
|
|
mapValue.put("result",1);
|
|
|
|
+ pushCarNumberToEas(mapValue);
|
|
return mapValue;
|
|
return mapValue;
|
|
}
|
|
}
|
|
Integer isCheckGps = amsSaleOrderMapper.getDispachSwitch();
|
|
Integer isCheckGps = amsSaleOrderMapper.getDispachSwitch();
|
|
@@ -1998,6 +2015,7 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
|
|
throw new Exception("该车没有GPS定位信息,请联系销售公司物流部,申请是否可以派车。");
|
|
throw new Exception("该车没有GPS定位信息,请联系销售公司物流部,申请是否可以派车。");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ pushCarNumberToEas(mapValue);
|
|
BigDecimal capacityTel = omstruckOrderMapper.getCapacityTel(capacityNo);
|
|
BigDecimal capacityTel = omstruckOrderMapper.getCapacityTel(capacityNo);
|
|
if (capacityTel.compareTo(BigDecimal.ZERO)!=0){
|
|
if (capacityTel.compareTo(BigDecimal.ZERO)!=0){
|
|
mapValue.put("capacityTel",capacityTel);
|
|
mapValue.put("capacityTel",capacityTel);
|
|
@@ -2170,18 +2188,22 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
|
|
if ((loadIdList == null || loadIdList.size() == 0) && orderStatus == 5) {
|
|
if ((loadIdList == null || loadIdList.size() == 0) && orderStatus == 5) {
|
|
return result;
|
|
return result;
|
|
}
|
|
}
|
|
|
|
+ //判断该分录对应净重有没有出来
|
|
|
|
+ int netWeightCount = amsSaleMaterialMapper.getSaleMaterialWeight(mapValue);
|
|
//判断关闭分录是否为最后一拼
|
|
//判断关闭分录是否为最后一拼
|
|
int asmMaterialCount = amsSaleMaterialMapper.getSaleMaterialDelete(saleOrderMaterialId);
|
|
int asmMaterialCount = amsSaleMaterialMapper.getSaleMaterialDelete(saleOrderMaterialId);
|
|
- if (asmMaterialCount > 1 && orderStatus == 5) {
|
|
|
|
|
|
+ if (asmMaterialCount > 1 && orderStatus == 5 && netWeightCount == 0) {
|
|
// 删除实绩表
|
|
// 删除实绩表
|
|
Map<String, Object> loadMap = loadIdList.get(0);
|
|
Map<String, Object> loadMap = loadIdList.get(0);
|
|
Map<String, Object> weightMap = weightIdList.get(0);
|
|
Map<String, Object> weightMap = weightIdList.get(0);
|
|
BigDecimal loadId = (BigDecimal) loadMap.get("loadId");
|
|
BigDecimal loadId = (BigDecimal) loadMap.get("loadId");
|
|
BigDecimal weightId = (BigDecimal) weightMap.get("weightId");
|
|
BigDecimal weightId = (BigDecimal) weightMap.get("weightId");
|
|
- result += amsSaleMaterialMapper.deleteLoadResult(loadId);
|
|
|
|
- result += amsSaleMaterialMapper.deleteWeightResult(weightId);
|
|
|
|
- result += amsSaleMaterialMapper.deleteWmspOutResult(mapValue);
|
|
|
|
- }else if(asmMaterialCount <= 1){
|
|
|
|
|
|
+ int i = amsSaleMaterialMapper.deleteWeightResult(weightId);
|
|
|
|
+ if(i != 0) {
|
|
|
|
+ result += amsSaleMaterialMapper.deleteLoadResult(loadId);
|
|
|
|
+ result += amsSaleMaterialMapper.deleteWmspOutResult(mapValue);
|
|
|
|
+ }
|
|
|
|
+ }else if(asmMaterialCount <= 1 && netWeightCount == 0){
|
|
//关闭运输订单
|
|
//关闭运输订单
|
|
OmstruckOrder omstruckOrder = new OmstruckOrder();
|
|
OmstruckOrder omstruckOrder = new OmstruckOrder();
|
|
omstruckOrder.setOrderId(DataChange.dataToBigDecimal(orderId));
|
|
omstruckOrder.setOrderId(DataChange.dataToBigDecimal(orderId));
|
|
@@ -2192,7 +2214,9 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
|
|
result += omstruckOrderMapper.updateByPrimaryKeySelective(omstruckOrder);
|
|
result += omstruckOrderMapper.updateByPrimaryKeySelective(omstruckOrder);
|
|
}
|
|
}
|
|
result += amsSaleMaterialMapper.updateByPrimaryKeySelective(amsSaleMaterial);
|
|
result += amsSaleMaterialMapper.updateByPrimaryKeySelective(amsSaleMaterial);
|
|
- result += amsSaleMaterialMapper.updateOrderMaterialToClose(mapValue);
|
|
|
|
|
|
+ if(netWeightCount == 0) {
|
|
|
|
+ result += amsSaleMaterialMapper.updateOrderMaterialToClose(mapValue);
|
|
|
|
+ }
|
|
return result;
|
|
return result;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -2801,5 +2825,43 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
|
|
getEasPrimaryIds(Map);
|
|
getEasPrimaryIds(Map);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 推送车牌号给金蝶
|
|
|
|
+ * @param map
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
|
|
+ public int pushCarNumberToEas(Map<String, Object> map) throws Exception {
|
|
|
|
+ // 调用EAS接口将车牌号传给金蝶
|
|
|
|
+ List<Map<String,Object>> mapList = new ArrayList<>();
|
|
|
|
+ mapList.add(map);
|
|
|
|
+ Map<String,Object> input = joinFeign.findCarNumberByOrderList(mapList);
|
|
|
|
+ Map<String, Object> totalMap = easCapacityTestUtil.getTotalMap();
|
|
|
|
+ totalMap.put("input",input);
|
|
|
|
+ System.out.println(totalMap);
|
|
|
|
+ String json = JSONUtils.toJSONString(totalMap);
|
|
|
|
+ System.out.println(json);
|
|
|
|
+ Map<String,Object> s = joinFeign.pushCarNumberToEas(totalMap);
|
|
|
|
+ if (s == null || s.size() == 0) {
|
|
|
|
+ throw new Exception("登录金蝶失败!请重试派车!");
|
|
|
|
+ }else{
|
|
|
|
+ try{
|
|
|
|
+ JSONObject result = new JSONObject(s);
|
|
|
|
+ //如果status不为1,抛出异常
|
|
|
|
+ if(!result.getJSONObject("res").getString("status").equals("1")){
|
|
|
|
+ throw new Exception("上传金蝶失败!请重试派车:"+result.getJSONObject("requestException").getString("message"));
|
|
|
|
+ }
|
|
|
|
+ }catch (Exception e){
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ //只抛出自定义异常
|
|
|
|
+ if(e.getMessage().contains("Exception")){
|
|
|
|
+ throw new Exception("上传金蝶失败!请重试派车!");
|
|
|
|
+ }else{
|
|
|
|
+ throw new Exception(e.getMessage());
|
|
|
|
+ }
|
|
|
|
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return 1;
|
|
|
|
+ }
|
|
}
|
|
}
|