|
@@ -508,12 +508,19 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
@Override
|
|
@Override
|
|
- public int addSteelSaleOrder(Map<String, Object> mapValue) {
|
|
|
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
|
+ public int addSteelSaleOrder(Map<String, Object> mapValue) throws Exception {
|
|
List<Map<String,Object>> mapList = (List<Map<String, Object>>) mapValue.get("mapList");
|
|
List<Map<String,Object>> mapList = (List<Map<String, Object>>) mapValue.get("mapList");
|
|
// 得到发货单位
|
|
// 得到发货单位
|
|
BigDecimal shipperId = DataChange.dataToBigDecimal(mapValue.get("shipperId"));
|
|
BigDecimal shipperId = DataChange.dataToBigDecimal(mapValue.get("shipperId"));
|
|
// 收货单位
|
|
// 收货单位
|
|
BigDecimal receiveId = DataChange.dataToBigDecimal(mapValue.get("receiveId"));
|
|
BigDecimal receiveId = DataChange.dataToBigDecimal(mapValue.get("receiveId"));
|
|
|
|
+ if (receiveId == null || receiveId.intValue() == 0) {
|
|
|
|
+ receiveId = amsSaleOrderMapper.findReceiveId(mapValue.get("receiveName"));
|
|
|
|
+ if (receiveId == null) {
|
|
|
|
+ throw new Exception("您输入的收货单位:" + mapValue.get("receiveName") + "不存在!!");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
// 是否自提
|
|
// 是否自提
|
|
String isSelfMention = (String) mapValue.get("isSelfMention");
|
|
String isSelfMention = (String) mapValue.get("isSelfMention");
|
|
// 备注
|
|
// 备注
|
|
@@ -522,6 +529,12 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
|
|
String saleOrderReceiveCustomer = (String) mapValue.get("saleOrderReceiveCustomer");
|
|
String saleOrderReceiveCustomer = (String) mapValue.get("saleOrderReceiveCustomer");
|
|
// 业务员
|
|
// 业务员
|
|
BigDecimal salerId = DataChange.dataToBigDecimal(mapValue.get("salerId"));
|
|
BigDecimal salerId = DataChange.dataToBigDecimal(mapValue.get("salerId"));
|
|
|
|
+ if (salerId == null || salerId.intValue() == 0) {
|
|
|
|
+ salerId = amsSaleOrderMapper.findSalerId(mapValue.get("salerName"));
|
|
|
|
+ if (receiveId == null) {
|
|
|
|
+ throw new Exception("您输入的业务员:" + mapValue.get("salerName") +"不存在!!");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
BigDecimal saleOrderId = amsSaleOrderMapper.selectMaxId();
|
|
BigDecimal saleOrderId = amsSaleOrderMapper.selectMaxId();
|
|
int result = 0;
|
|
int result = 0;
|
|
// 销售订单
|
|
// 销售订单
|
|
@@ -569,6 +582,19 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
|
|
// 车序号主键
|
|
// 车序号主键
|
|
BigDecimal saleOrderMaterialId = amsSaleOrderMaterialMapper.selectMaxId();
|
|
BigDecimal saleOrderMaterialId = amsSaleOrderMaterialMapper.selectMaxId();
|
|
BigDecimal shippingAddressId = DataChange.dataToBigDecimal(map.get("shipperAddressId"));
|
|
BigDecimal shippingAddressId = DataChange.dataToBigDecimal(map.get("shipperAddressId"));
|
|
|
|
+ if (shippingAddressId == null || shippingAddressId.intValue() == 0) {
|
|
|
|
+ String province = (String) map.get("province");
|
|
|
|
+ String district = (String) map.get("district");
|
|
|
|
+ String town = (String) map.get("town");
|
|
|
|
+ Map<String,Object> addressMap = new HashMap<>();
|
|
|
|
+ addressMap.put("province",province);
|
|
|
|
+ addressMap.put("district",district);
|
|
|
|
+ addressMap.put("town",town);
|
|
|
|
+ shippingAddressId = amsSaleOrderMapper.findAddressId(addressMap);
|
|
|
|
+ if (receiveId == null) {
|
|
|
|
+ throw new Exception("您输入的:" + province + district + town + "地址不存在!!");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
// 车号备注
|
|
// 车号备注
|
|
String truckRemark = (String) (map.get("truckRemark"));
|
|
String truckRemark = (String) (map.get("truckRemark"));
|
|
String place = (String) (map.get("place"));
|
|
String place = (String) (map.get("place"));
|
|
@@ -647,6 +673,22 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
|
|
*/
|
|
*/
|
|
// 物资
|
|
// 物资
|
|
BigDecimal materialId = DataChange.dataToBigDecimal(map.get("materialId"));
|
|
BigDecimal materialId = DataChange.dataToBigDecimal(map.get("materialId"));
|
|
|
|
+ if (materialId == null || materialId.intValue() == 0) {
|
|
|
|
+ String name = (String) map.get("materialName");
|
|
|
|
+ String specification = (String) map.get("materialSpecification");
|
|
|
|
+ String model = (String) map.get("materialModel");
|
|
|
|
+ Map<String,Object> materialMap = new HashMap<>();
|
|
|
|
+ materialMap.put("name",name);
|
|
|
|
+ materialMap.put("specification",specification);
|
|
|
|
+ if (model == null || model.equals("") || model.equals("null")) {
|
|
|
|
+ model = null;
|
|
|
|
+ }
|
|
|
|
+ materialMap.put("model",model);
|
|
|
|
+ materialId = amsSaleOrderMapper.findMaterialId(materialMap);
|
|
|
|
+ if (materialId == null) {
|
|
|
|
+ throw new Exception("您输入的物资:" + name + specification + model + "不存在!!");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
Integer materialCount = amsSaleMaterialMapper.getMaterialCount(materialId);
|
|
Integer materialCount = amsSaleMaterialMapper.getMaterialCount(materialId);
|
|
RmsMaterial rmsMaterial = new RmsMaterial();
|
|
RmsMaterial rmsMaterial = new RmsMaterial();
|
|
rmsMaterial.setMaterialId(materialId);
|
|
rmsMaterial.setMaterialId(materialId);
|
|
@@ -729,6 +771,7 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
|
|
public int dispatchSteelOrder(List<Map<String, Object>> mapList) throws Exception {
|
|
public int dispatchSteelOrder(List<Map<String, Object>> mapList) throws Exception {
|
|
Map<String, Object> stringObjectMap = mapList.get(0);
|
|
Map<String, Object> stringObjectMap = mapList.get(0);
|
|
Integer saleStatus = amsSaleOrderMapper.findStatus(DataChange.dataToBigDecimal(stringObjectMap.get("saleOrderMaterialId")));
|
|
Integer saleStatus = amsSaleOrderMapper.findStatus(DataChange.dataToBigDecimal(stringObjectMap.get("saleOrderMaterialId")));
|
|
|
|
+ String selfMention = amsSaleOrderMapper.findSelfMention(DataChange.dataToBigDecimal(stringObjectMap.get("saleOrderMaterialId")));
|
|
if (saleStatus == 1) {
|
|
if (saleStatus == 1) {
|
|
throw new Exception("订单未审核,无法派车!");
|
|
throw new Exception("订单未审核,无法派车!");
|
|
}
|
|
}
|
|
@@ -743,6 +786,23 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
|
|
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
|
|
|
|
+ BigDecimal placeId = amsSaleOrderMapper.getPlaceId(saleOrderMaterialId);
|
|
|
|
+ // 如果详细地址匹配不到单价,则匹配省市县内最高的一条单价(只给非自提的进行匹配)
|
|
|
|
+ if (priceId == null && selfMention.equals("否")) {
|
|
|
|
+ // 找到详细地址下的省市县id
|
|
|
|
+ BigDecimal addressId = amsSaleOrderMapper.getAddressByPlace(placeId);
|
|
|
|
+ // 根据省市县匹配出省市县下的所有单价
|
|
|
|
+ Map<String,Object> hashMap = new HashMap<>();
|
|
|
|
+ hashMap.put("addressId",addressId);
|
|
|
|
+ hashMap.put("carrierId",carrierId);
|
|
|
|
+ List<Map<String,Object>> priceList = amsSaleOrderMapper.getAddressPriceList(hashMap);
|
|
|
|
+ // 如果长度为0,说明此地址所在省市县内也无单价
|
|
|
|
+ if (priceList != null && priceList.size() != 0) {
|
|
|
|
+ Map<String, Object> priceMap = priceList.get(0);
|
|
|
|
+ priceId = (BigDecimal) priceMap.get("priceId");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
// 运输线路id
|
|
// 运输线路id
|
|
BigDecimal lineId = DataChange.dataToBigDecimal(map.get("lineId"));
|
|
BigDecimal lineId = DataChange.dataToBigDecimal(map.get("lineId"));
|
|
// 司机电话号码
|
|
// 司机电话号码
|
|
@@ -1649,6 +1709,7 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
@Override
|
|
@Override
|
|
|
|
+ @Transactional
|
|
public int closeSteelMaterialId(Map<String, Object> mapValue) {
|
|
public int closeSteelMaterialId(Map<String, Object> mapValue) {
|
|
int result = 0;
|
|
int result = 0;
|
|
Object orderId = mapValue.get("orderId");
|
|
Object orderId = mapValue.get("orderId");
|
|
@@ -1699,4 +1760,85 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
|
|
List<Map<String, Object>> resultList = amsSaleOrderMapper.getSaleCokeOrder(mapValue);
|
|
List<Map<String, Object>> resultList = amsSaleOrderMapper.getSaleCokeOrder(mapValue);
|
|
return resultList;
|
|
return resultList;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 反关闭金蝶单个分录
|
|
|
|
+ * @param saleMaterialId
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
|
|
+ public int adverseCloseSaleMaterial(BigDecimal saleMaterialId) {
|
|
|
|
+ Map<String,Object> head = new HashMap<>();
|
|
|
|
+ Map<String,Object> input = new HashMap<>();
|
|
|
|
+ // 0:代表不关闭整单
|
|
|
|
+ String wholeOrder = "0";
|
|
|
|
+ // unClose : 代表反关闭
|
|
|
|
+ String status = "unClose";
|
|
|
|
+ AmsSaleMaterial amsSaleMaterial = amsSaleMaterialMapper.selectByPrimaryKey(saleMaterialId);
|
|
|
|
+ amsSaleMaterial.setDeleted(null);
|
|
|
|
+ int result = amsSaleMaterialMapper.updateByPrimaryKeySelective(amsSaleMaterial);
|
|
|
|
+ AmsSaleOrder amsSaleOrder = amsSaleOrderMapper.selectByPrimaryKey(amsSaleMaterial.getSaleOrderId());
|
|
|
|
+ // 设置反关闭分录id
|
|
|
|
+ head.put("unCloseEntryId",amsSaleMaterial.getEasPrimaryId());
|
|
|
|
+ // 设置是否整单
|
|
|
|
+ head.put("wholeOrder",wholeOrder);
|
|
|
|
+ // 设置销售订单号
|
|
|
|
+ head.put("number",amsSaleOrder.getSaleNumber());
|
|
|
|
+ // 设置状态:unClose,反关闭;close,关闭
|
|
|
|
+ head.put("status",status);
|
|
|
|
+ input.put("head",head);
|
|
|
|
+ // 测试
|
|
|
|
+ Map<String, Object> totalMap = easDeleteUtil.getTotalMap();
|
|
|
|
+ // 正式
|
|
|
|
+// Map<String, Object> totalMap = easDeleteUtil.getTotalMap();
|
|
|
|
+ input.put("head",head);
|
|
|
|
+ totalMap.put("input",input);
|
|
|
|
+ // 调用金蝶关闭接口
|
|
|
|
+ String json = JSONUtils.toJSONString(totalMap);
|
|
|
|
+ System.out.println(json);
|
|
|
|
+ Map<String,Object> resultMap = joinFeign.deleteSaleOrderToEas(totalMap);
|
|
|
|
+ System.out.println(resultMap);
|
|
|
|
+ return result;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 反关闭金蝶整个销售订单
|
|
|
|
+ * @param saleOrderId
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
|
|
+ public int adverseCloseSaleOrder(BigDecimal saleOrderId) {
|
|
|
|
+ Map<String,Object> head = new HashMap<>();
|
|
|
|
+ Map<String,Object> input = new HashMap<>();
|
|
|
|
+ // 0:代表不关闭整单
|
|
|
|
+ String wholeOrder = "1";
|
|
|
|
+ // unClose : 代表反关闭
|
|
|
|
+ String status = "unClose";
|
|
|
|
+ AmsSaleOrder amsSaleOrder = amsSaleOrderMapper.selectByPrimaryKey(saleOrderId);
|
|
|
|
+ amsSaleOrder.setDeleted(new BigDecimal(0));
|
|
|
|
+ // 开启所有的分录
|
|
|
|
+ int result = amsSaleMaterialMapper.openAllSaleMaterial(amsSaleOrder.getSaleOrderId());
|
|
|
|
+ result += amsSaleOrderMapper.updateByPrimaryKeySelective(amsSaleOrder);
|
|
|
|
+ // 设置是否整单
|
|
|
|
+ head.put("wholeOrder",wholeOrder);
|
|
|
|
+ // 设置销售订单号
|
|
|
|
+ head.put("number",amsSaleOrder.getSaleNumber());
|
|
|
|
+ // 设置状态:unClose,反关闭;close,关闭
|
|
|
|
+ head.put("status",status);
|
|
|
|
+ input.put("head",head);
|
|
|
|
+ // 测试
|
|
|
|
+ Map<String, Object> totalMap = easDeleteUtil.getTotalMap();
|
|
|
|
+ // 正式
|
|
|
|
+// Map<String, Object> totalMap = easDeleteUtil.getTotalMap();
|
|
|
|
+ input.put("head",head);
|
|
|
|
+ totalMap.put("input",input);
|
|
|
|
+ // 调用金蝶关闭接口
|
|
|
|
+ String json = JSONUtils.toJSONString(totalMap);
|
|
|
|
+ System.out.println(json);
|
|
|
|
+ Map<String,Object> resultMap = joinFeign.deleteSaleOrderToEas(totalMap);
|
|
|
|
+ System.out.println(resultMap);
|
|
|
|
+ return result;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
}
|
|
}
|