|
@@ -592,9 +592,11 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
|
|
|
// 车序号主键
|
|
|
BigDecimal saleOrderMaterialId = amsSaleOrderMaterialMapper.selectMaxId();
|
|
|
BigDecimal shippingAddressId = DataChange.dataToBigDecimal(map.get("shipperAddressId"));
|
|
|
+ // 车号备注
|
|
|
+ String truckRemark = (String) (map.get("truckRemark"));
|
|
|
String place = (String) (map.get("place"));
|
|
|
if (place != null && !"null".equals(place)) {
|
|
|
- List<Map<String, Object>> placeIdList = amsSaleOrderMaterialMapper.getPlaceId(place);
|
|
|
+ List<Map<String, Object>> placeIdList = amsSaleOrderMaterialMapper.getPlaceId(place,shippingAddressId);
|
|
|
if (placeIdList == null || placeIdList.size() == 0) {
|
|
|
RmsReceivePlace rmsReceivePlace = new RmsReceivePlace();
|
|
|
rmsReceivePlace.setPlaceId(rmsReceivePlaceMapper.selectMaxId());
|
|
@@ -647,6 +649,7 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
|
|
|
}
|
|
|
amsSaleOrderMaterial.setSaleOrderMaterialId(saleOrderMaterialId);
|
|
|
amsSaleOrderMaterial.setSaleOrderId(saleOrderId);
|
|
|
+ amsSaleOrderMaterial.setTruckRemark(truckRemark);
|
|
|
amsSaleOrderMaterial.setSaleOrderMaterialTruckNo(truckNo);
|
|
|
if (consigneeName != null && !consigneeName.equals("null")) {
|
|
|
amsSaleOrderMaterial.setSaleOrderConsignee(consigneeName);
|
|
@@ -877,7 +880,7 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
|
|
|
@Override
|
|
|
public synchronized List<Map<String,Object>> getCarrierByPlace(BigDecimal placeId) {
|
|
|
BigDecimal addressId = amsSaleOrderMapper.getAddressByPlace(placeId);
|
|
|
- List<Map<String,Object>> mapList = amsSaleOrderMapper.getCarrierByPlace(addressId);
|
|
|
+ List<Map<String,Object>> mapList = amsSaleOrderMapper.getCarrierByPlace(placeId);
|
|
|
return mapList;
|
|
|
}
|
|
|
|
|
@@ -1007,6 +1010,235 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
|
|
|
return saleMap;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 修改承运商授权
|
|
|
+ * @param mapValue
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public int updateTruckNoCarrier(Map<String, Object> mapValue) {
|
|
|
+ BigDecimal carrierId = DataChange.dataToBigDecimal(mapValue.get("carrierId"));
|
|
|
+ mapValue.remove("carrierId");
|
|
|
+ List<AmsDispatchSaleOrder> amsDispatchSaleOrders = amsDispatchSaleOrderMapper.selectByParameters(mapValue);
|
|
|
+ AmsDispatchSaleOrder amsDispatchSaleOrder = amsDispatchSaleOrders.get(0);
|
|
|
+ amsDispatchSaleOrder.setCarrierId(carrierId);
|
|
|
+ int result = amsDispatchSaleOrderMapper.updateByPrimaryKeySelective(amsDispatchSaleOrder);
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 批量上传销售订单至金蝶
|
|
|
+ * @param saleOrderIdList
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public int uploadSaleOrderList(List<Map<String, Object>> saleOrderIdList) {
|
|
|
+ int result = 0;
|
|
|
+ for (Map<String, Object> map : saleOrderIdList) {
|
|
|
+ AmsSaleOrder amsSaleOrder = new AmsSaleOrder();
|
|
|
+ BigDecimal saleOrderId = DataChange.dataToBigDecimal(map.get("saleOrderId"));
|
|
|
+ // 调用金蝶接口,将销售订单推送到金蝶系统
|
|
|
+ Map<String, Object> input = joinFeign.getSaleOrder(saleOrderId);
|
|
|
+ // 获得金蝶接口配置
|
|
|
+ Map<String, Object> totalMap = easUtil.getTotalMap();
|
|
|
+ // 组装报文
|
|
|
+ totalMap.put("input",input);
|
|
|
+ System.out.println(totalMap);
|
|
|
+ String json = JSONUtils.toJSONString(totalMap);
|
|
|
+ System.out.println(json);
|
|
|
+ String s = joinFeign.pushSaleOrderToEas(totalMap);
|
|
|
+ System.out.println(s);
|
|
|
+ amsSaleOrder.setSaleOrderId(saleOrderId);
|
|
|
+ amsSaleOrder.setSaleOrderStatus(new BigDecimal(1));
|
|
|
+ result += amsSaleOrderMapper.updateByPrimaryKeySelective(amsSaleOrder);
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 新增钒渣销售订单
|
|
|
+ * @param mapValue
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public int addVanadiumSaleOrder(Map<String, Object> mapValue) {
|
|
|
+ List<Map<String,Object>> mapList = (List<Map<String, Object>>) mapValue.get("mapList");
|
|
|
+ // 得到发货单位
|
|
|
+ BigDecimal shipperId = DataChange.dataToBigDecimal(mapValue.get("shipperId"));
|
|
|
+ // 收货单位
|
|
|
+ BigDecimal receiveId = DataChange.dataToBigDecimal(mapValue.get("receiveId"));
|
|
|
+ // 是否自提
|
|
|
+ String isSelfMention = (String) mapValue.get("isSelfMention");
|
|
|
+ // 备注
|
|
|
+ String saleRemark = (String) mapValue.get("saleRemark");
|
|
|
+ // 收款客户
|
|
|
+ String saleOrderReceiveCustomer = (String) mapValue.get("saleOrderReceiveCustomer");
|
|
|
+ // 业务员
|
|
|
+ BigDecimal salerId = DataChange.dataToBigDecimal(mapValue.get("salerId"));
|
|
|
+ BigDecimal saleOrderId = amsSaleOrderMapper.selectMaxId();
|
|
|
+ int result = 0;
|
|
|
+ // 销售订单
|
|
|
+ AmsSaleOrder amsSaleOrder = new AmsSaleOrder();
|
|
|
+ amsSaleOrder.setReceiveId(receiveId);
|
|
|
+ amsSaleOrder.setSaleRemark(saleRemark == null ? "":saleRemark);
|
|
|
+ amsSaleOrder.setShipperId(shipperId);
|
|
|
+ amsSaleOrder.setSaleOrderIsselfMention(isSelfMention);
|
|
|
+ amsSaleOrder.setSaleOrderId(saleOrderId);
|
|
|
+ amsSaleOrder.setSalerId(salerId);
|
|
|
+ // 设置钢材订单
|
|
|
+ amsSaleOrder.setSaleType(new BigDecimal(1));
|
|
|
+ amsSaleOrder.setSaleNumber(DataChange.generateEightDigitsNumber("WXSDD",saleOrderId.intValue(),"-"));
|
|
|
+ amsSaleOrder.setInsertTime(new Date());
|
|
|
+ amsSaleOrder.setInsertUpdateRemark("物流新增销售订单");
|
|
|
+ amsSaleOrder.setInsertUsername("物流");
|
|
|
+ amsSaleOrder.setUpdateTime(new Date());
|
|
|
+ amsSaleOrder.setDeleted(new BigDecimal(0));
|
|
|
+ amsSaleOrder.setSaleOrderStatus(new BigDecimal(0));
|
|
|
+ // 税率默认13%
|
|
|
+ amsSaleOrder.setSaleOrderTax("13%");
|
|
|
+ // 含税单价某人4000
|
|
|
+ amsSaleOrder.setSaleUnitPrice(new BigDecimal(4000));
|
|
|
+ // 收款客户
|
|
|
+ amsSaleOrder.setSaleOrderReceiveCustomer(saleOrderReceiveCustomer);
|
|
|
+ // 销售订单物资表
|
|
|
+ AmsSaleMaterial amsSaleMaterial = new AmsSaleMaterial();
|
|
|
+ // 车序号物资表
|
|
|
+ AmsSaleTrucknoMaterial amsSaleTrucknoMaterial = new AmsSaleTrucknoMaterial();
|
|
|
+ // 遍历每一行
|
|
|
+ for (Map<String, Object> map : mapList) {
|
|
|
+ /*
|
|
|
+ 车序号表
|
|
|
+ */
|
|
|
+ // 得到车序号
|
|
|
+ BigDecimal truckNo = DataChange.dataToBigDecimal(map.get("truckNo"));
|
|
|
+ Map<String,Object> saleMap = new HashMap<>();
|
|
|
+ saleMap.put("saleOrderId",saleOrderId);
|
|
|
+ saleMap.put("saleOrderMaterialTruckNo",truckNo);
|
|
|
+ // 检测销售订单下的车序号是否已存在
|
|
|
+ List<AmsSaleOrderMaterial> amsSaleOrderMaterials = amsSaleOrderMaterialMapper.selectByParameters(saleMap);
|
|
|
+ // 车序号表
|
|
|
+ AmsSaleOrderMaterial amsSaleOrderMaterial = new AmsSaleOrderMaterial();
|
|
|
+ if (amsSaleOrderMaterials == null || amsSaleOrderMaterials.size() == 0) {
|
|
|
+ // 车序号主键
|
|
|
+ BigDecimal saleOrderMaterialId = amsSaleOrderMaterialMapper.selectMaxId();
|
|
|
+ BigDecimal shippingAddressId = DataChange.dataToBigDecimal(map.get("shipperAddressId"));
|
|
|
+ // 车号备注
|
|
|
+ String truckRemark = (String) (map.get("truckRemark"));
|
|
|
+ String place = (String) (map.get("place"));
|
|
|
+ if (place != null && !"null".equals(place)) {
|
|
|
+ List<Map<String, Object>> placeIdList = amsSaleOrderMaterialMapper.getPlaceId(place,shippingAddressId);
|
|
|
+ if (placeIdList == null || placeIdList.size() == 0) {
|
|
|
+ RmsReceivePlace rmsReceivePlace = new RmsReceivePlace();
|
|
|
+ rmsReceivePlace.setPlaceId(rmsReceivePlaceMapper.selectMaxId());
|
|
|
+ rmsReceivePlace.setAddressId(shippingAddressId);
|
|
|
+ rmsReceivePlace.setAddressDeliveryAddress(place);
|
|
|
+ amsSaleOrderMaterial.setSaleShippingAddressId(rmsReceivePlace.getPlaceId());
|
|
|
+ rmsReceivePlaceMapper.insertSelective(rmsReceivePlace);
|
|
|
+ } else {
|
|
|
+ amsSaleOrderMaterial.setSaleShippingAddressId((BigDecimal) placeIdList.get(0).get("placeId"));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (amsSaleOrderMaterial.getSaleShippingAddressId() != null && isSelfMention.equals("否")) {
|
|
|
+ // 自动匹配承运商
|
|
|
+ List<Map<String, Object>> carrierList = getCarrierByPlace(amsSaleOrderMaterial.getSaleShippingAddressId());
|
|
|
+ // 单一承运商才进行匹配
|
|
|
+ if (carrierList != null && carrierList.size() == 1) {
|
|
|
+ List<Map<String, Object>> list = new ArrayList<>();
|
|
|
+ Map<String, Object> map1 = carrierList.get(0);
|
|
|
+ // 传入车序号主键和承运商id
|
|
|
+ map1.put("saleOrderMaterialId", saleOrderMaterialId);
|
|
|
+ map1.put("carrierId", map1.get("value"));
|
|
|
+ list.add(map1);
|
|
|
+ dispatchToCarrier(list);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (isSelfMention.equals("是")) {
|
|
|
+ // 根据收货单位id查询出收货单位名称
|
|
|
+ String consigneeName = amsSaleOrderMapper.selectConsigneeName(receiveId);
|
|
|
+ // 根据收货单位名称查询承运商id
|
|
|
+ BigDecimal carrierId = amsSaleOrderMapper.selectCarrierId(consigneeName);
|
|
|
+ List<Map<String, Object>> list = new ArrayList<>();
|
|
|
+ Map<String,Object> map1 = new HashMap<>();
|
|
|
+ // 传入车序号主键和承运商id
|
|
|
+ if (carrierId != null) {
|
|
|
+ map1.put("saleOrderMaterialId", saleOrderMaterialId);
|
|
|
+ map1.put("carrierId", carrierId);
|
|
|
+ list.add(map1);
|
|
|
+ dispatchToCarrier(list);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 收货方姓名
|
|
|
+ String consigneeName = String.valueOf(map.get("saleOrderConsignee"));
|
|
|
+ // 收货方电话
|
|
|
+ String consigneeTel = String.valueOf(map.get("saleOrderConsigneeTel"));
|
|
|
+ // 截止日期
|
|
|
+ String dateOfReceiptStr = String.valueOf(map.get("saleDateOfReceipt"));
|
|
|
+ Date dateOfReceipt = null;
|
|
|
+ if (!"null".equals(dateOfReceiptStr) && !"undefined".equals(dateOfReceiptStr)) {
|
|
|
+ dateOfReceipt = new Date(Long.valueOf(dateOfReceiptStr));
|
|
|
+ }
|
|
|
+ amsSaleOrderMaterial.setSaleOrderMaterialId(saleOrderMaterialId);
|
|
|
+ amsSaleOrderMaterial.setSaleOrderId(saleOrderId);
|
|
|
+ amsSaleOrderMaterial.setTruckRemark(truckRemark);
|
|
|
+ amsSaleOrderMaterial.setSaleOrderMaterialTruckNo(truckNo);
|
|
|
+ if (consigneeName != null && !consigneeName.equals("null")) {
|
|
|
+ amsSaleOrderMaterial.setSaleOrderConsignee(consigneeName);
|
|
|
+ }
|
|
|
+ if (consigneeTel != null && !consigneeTel.equals("null")) {
|
|
|
+ amsSaleOrderMaterial.setSaleOrderConsigneeTel(consigneeTel);
|
|
|
+ }
|
|
|
+ amsSaleOrderMaterial.setSaleDateOfReceipt(dateOfReceipt);
|
|
|
+ amsSaleOrderMaterial.setInsertTime(new Date());
|
|
|
+ amsSaleOrderMaterial.setUpdateTime(new Date());
|
|
|
+ amsSaleOrderMaterial.setInsertUpdateRemark("物流新增");
|
|
|
+ result += amsSaleOrderMaterialMapper.insertSelective(amsSaleOrderMaterial);
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ amsSaleOrderMaterial = amsSaleOrderMaterials.get(0);
|
|
|
+ }
|
|
|
+ /*
|
|
|
+ 销售订单物资表
|
|
|
+ */
|
|
|
+ // 物资
|
|
|
+ BigDecimal materialId = DataChange.dataToBigDecimal(map.get("materialId"));
|
|
|
+ // 物资件数
|
|
|
+ BigDecimal materialNumber = DataChange.dataToBigDecimal(map.get("materialNumber"));
|
|
|
+ // 钢材米数
|
|
|
+ BigDecimal steelMeters = DataChange.dataToBigDecimal(map.get("steelMeters"));
|
|
|
+ // 是否磅重销售(0:磅重;1:理重)
|
|
|
+ BigDecimal isPoundSale = DataChange.dataToBigDecimal(map.get("isPoundSale"));
|
|
|
+ // 销售订单物资表主键
|
|
|
+ BigDecimal saleMaterialId = amsSaleMaterialMapper.selectMaxId();
|
|
|
+ amsSaleMaterial.setSaleMaterialId(saleMaterialId);
|
|
|
+ amsSaleMaterial.setSaleOrderId(saleOrderId);
|
|
|
+ amsSaleMaterial.setMaterialId(materialId);
|
|
|
+ amsSaleMaterial.setMaterialNumber(materialNumber);
|
|
|
+ amsSaleMaterial.setInsertTime(new Date());
|
|
|
+ amsSaleMaterial.setUpdateTime(new Date());
|
|
|
+ if (steelMeters != null && !steelMeters.toString().equals("0")) {
|
|
|
+ amsSaleMaterial.setSteelMeter(steelMeters);
|
|
|
+ }
|
|
|
+ amsSaleMaterial.setIsPoundSale(isPoundSale);
|
|
|
+ amsSaleMaterial.setInsertUpdateRemark("物流新增");
|
|
|
+ result += amsSaleMaterialMapper.insertSelective(amsSaleMaterial);
|
|
|
+ /*
|
|
|
+ 车序号物资表
|
|
|
+ */
|
|
|
+ // 车序号物资表主键
|
|
|
+ BigDecimal truckNoMaterialId = amsSaleTrucknoMaterialMapper.selectMaxId();
|
|
|
+ amsSaleTrucknoMaterial.setTrucknoMaterialId(truckNoMaterialId);
|
|
|
+ amsSaleTrucknoMaterial.setSaleOrderMaterialId(amsSaleOrderMaterial.getSaleOrderMaterialId());
|
|
|
+ amsSaleTrucknoMaterial.setMaterialId(amsSaleMaterial.getSaleMaterialId());
|
|
|
+ amsSaleTrucknoMaterial.setSaleOrderMaterialNumber(materialNumber);
|
|
|
+ amsSaleTrucknoMaterial.setInsertTime(new Date());
|
|
|
+ amsSaleTrucknoMaterial.setUpdateTime(new Date());
|
|
|
+ amsSaleTrucknoMaterial.setInsertUpdateRemark("物流新增");
|
|
|
+ result += amsSaleTrucknoMaterialMapper.insertSelective(amsSaleTrucknoMaterial);
|
|
|
+ }
|
|
|
+ result += amsSaleOrderMapper.insertSelective(amsSaleOrder);
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 展示未匹配承运商的车序号
|
|
|
* @param mapValue
|
|
@@ -1096,4 +1328,6 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
|
|
|
}
|
|
|
return resultList;
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
}
|