|
@@ -6,10 +6,7 @@ import com.steerinfo.dil.feign.TmsTruckFeign;
|
|
|
import com.steerinfo.dil.mapper.*;
|
|
|
import com.steerinfo.dil.model.*;
|
|
|
import com.steerinfo.dil.service.IAmsSaleOrderService;
|
|
|
-import com.steerinfo.dil.util.DataChange;
|
|
|
-import com.steerinfo.dil.util.EASDeleteUtil;
|
|
|
-import com.steerinfo.dil.util.EASUtil;
|
|
|
-import com.steerinfo.dil.util.NumberToWeightUtil;
|
|
|
+import com.steerinfo.dil.util.*;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
@@ -64,6 +61,10 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
|
|
|
EASUtil easUtil;
|
|
|
@Autowired
|
|
|
EASDeleteUtil easDeleteUtil;
|
|
|
+ @Autowired
|
|
|
+ EASTestUtil easTestUtil;
|
|
|
+ @Autowired
|
|
|
+ EASDeleteTestUtil easDeleteTestUtil;
|
|
|
|
|
|
@Override
|
|
|
public List<Map<String, Object>> getSaleOrderInfo(Map<String, Object> map) {
|
|
@@ -206,14 +207,16 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
|
|
|
Map<String, Object> input = joinFeign.getSaleOrder(saleOrderId);
|
|
|
Map<String, Object> head = (Map<String, Object>) input.get("head");
|
|
|
head.put("status","");
|
|
|
- // 获得金蝶接口配置
|
|
|
+ // 获得金蝶接口配置:正式
|
|
|
+// Map<String, Object> totalMap = easUtil.getTotalMap();
|
|
|
+ // 获得金蝶接口配置:测试
|
|
|
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);
|
|
|
+ Map<String,Object> s = joinFeign.pushSaleOrderToEas(totalMap);
|
|
|
System.out.println(s);
|
|
|
amsSaleOrder.setSaleOrderStatus(new BigDecimal(1));
|
|
|
return amsSaleOrderMapper.updateByPrimaryKey(amsSaleOrder);
|
|
@@ -932,7 +935,7 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
|
|
|
System.out.println(totalMap);
|
|
|
String json = JSONUtils.toJSONString(totalMap);
|
|
|
System.out.println(json);
|
|
|
- String s = joinFeign.pushSaleOrderToEas(totalMap);
|
|
|
+ Map<String,Object> s = joinFeign.pushSaleOrderToEas(totalMap);
|
|
|
System.out.println(s);
|
|
|
}
|
|
|
// 如果是副产品订单则关闭时同步关闭未进厂的运单
|
|
@@ -988,14 +991,18 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
|
|
|
BigDecimal saleOrderId = DataChange.dataToBigDecimal(map.get("saleOrderId"));
|
|
|
// 调用金蝶接口,将销售订单推送到金蝶系统
|
|
|
Map<String, Object> input = joinFeign.getSaleOrder(saleOrderId);
|
|
|
- // 获得金蝶接口配置
|
|
|
+ Map<String, Object> head = (Map<String, Object>) input.get("head");
|
|
|
+ head.put("status","");
|
|
|
+ // 获得金蝶接口配置:正式
|
|
|
+// Map<String, Object> totalMap = easUtil.getTotalMap();
|
|
|
+ // 获得金蝶接口配置:测试
|
|
|
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);
|
|
|
+ Map<String,Object> s = joinFeign.pushSaleOrderToEas(totalMap);
|
|
|
System.out.println(s);
|
|
|
amsSaleOrder.setSaleOrderId(saleOrderId);
|
|
|
amsSaleOrder.setSaleOrderStatus(new BigDecimal(1));
|
|
@@ -1271,7 +1278,7 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
|
|
|
System.out.println(totalMap);
|
|
|
String json = JSONUtils.toJSONString(totalMap);
|
|
|
System.out.println(json);
|
|
|
- String s = joinFeign.pushSaleOrderToEas(totalMap);
|
|
|
+ Map<String,Object> s = joinFeign.pushSaleOrderToEas(totalMap);
|
|
|
System.out.println(s);
|
|
|
return 0;
|
|
|
}
|
|
@@ -1375,6 +1382,7 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
|
|
|
* @param mapValue
|
|
|
* @return
|
|
|
*/
|
|
|
+ @Transactional
|
|
|
@Override
|
|
|
public int updateAllMaterialInSale(Map<String, Object> mapValue) {
|
|
|
int result = 0;
|
|
@@ -1388,7 +1396,7 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
|
|
|
Map<String, Object> truckNoMap = new HashMap<>();
|
|
|
truckNoMap.put("saleOrderMaterialId",saleOrderMaterialId);
|
|
|
toTmsMap.put("orderId", orderId);
|
|
|
- toTmsMap.put("oldList", oldList);
|
|
|
+ toTmsMap.put("oldMaterialMapList", oldList);
|
|
|
// 得到所有的物资
|
|
|
List<Map<String, Object>> mapList = (List<Map<String, Object>>) mapValue.get("mapList");
|
|
|
/*
|
|
@@ -1402,14 +1410,20 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
|
|
|
amsSaleTrucknoMaterialMapper.deleteByPrimaryKey(amsSaleTrucknoMaterial.getTrucknoMaterialId());
|
|
|
}
|
|
|
// 运输订单物资子表
|
|
|
-
|
|
|
- // 新增拼数/修改拼数
|
|
|
+ List<OmstruckOrderMaterial> omstruckOrderMaterials = omstruckOrderMaterialMapper.selectByParameters(toTmsMap);
|
|
|
+ for (OmstruckOrderMaterial omstruckOrderMaterial : omstruckOrderMaterials) {
|
|
|
+ omstruckOrderMaterialMapper.deleteByPrimaryKey(omstruckOrderMaterial.getOrderMaterialId());
|
|
|
+ }
|
|
|
+ /*
|
|
|
+ 重新新增三个表
|
|
|
+ */
|
|
|
for (Map<String, Object> map : mapList) {
|
|
|
- BigDecimal saleMaterialId = DataChange.dataToBigDecimal(map.get("saleMaterialId"));
|
|
|
+ Object saleMaterialId = map.get("saleMaterialId");
|
|
|
BigDecimal materialId = DataChange.dataToBigDecimal(map.get("materialId"));
|
|
|
BigDecimal materialNumber = DataChange.dataToBigDecimal(map.get("orderPlanWeight"));
|
|
|
- BigDecimal trucknoMaterialId = DataChange.dataToBigDecimal(map.get("trucknoMaterialId"));
|
|
|
+ Object trucknoMaterialId = map.get("trucknoMaterialId");
|
|
|
BigDecimal isPoundSale = DataChange.dataToBigDecimal(map.get("isPound"));
|
|
|
+ Object materialWeight = map.get("materialWeight");
|
|
|
Object steelMeter = map.get("meterNumber");
|
|
|
Object easId = map.get("easId");
|
|
|
Object warehouse = map.get("warehouse");
|
|
@@ -1419,139 +1433,54 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
|
|
|
AmsSaleTrucknoMaterial amsSaleTrucknoMaterial = new AmsSaleTrucknoMaterial();
|
|
|
// 运输订单子表
|
|
|
OmstruckOrderMaterial omstruckOrderMaterial = new OmstruckOrderMaterial();
|
|
|
-// // 判断是否要新增运输订单子表
|
|
|
-// Map<String, Object> orderMap = new HashMap<>();
|
|
|
-// orderMap.put("orderId", orderId);
|
|
|
-// orderMap.put("materialId", materialId);
|
|
|
-// List<OmstruckOrderMaterial> omstruckOrderMaterials = omstruckOrderMaterialMapper.selectByParameters(orderMap);
|
|
|
-// BigDecimal orderMaterialId;
|
|
|
-// if (omstruckOrderMaterials == null || omstruckOrderMaterials.size() == 0) {
|
|
|
-// orderMaterialId = omstruckOrderMaterialMapper.selectMaxId();
|
|
|
-// omstruckOrderMaterial.setOrderMaterialId(orderMaterialId);
|
|
|
-// omstruckOrderMaterial.setOrderId(orderId);
|
|
|
-// omstruckOrderMaterial.setInsertTime(new Date());
|
|
|
-// omstruckOrderMaterial.setInsertUsername("新增拼数");
|
|
|
-// } else {
|
|
|
-// omstruckOrderMaterial = omstruckOrderMaterials.get(0);
|
|
|
-// }
|
|
|
-// omstruckOrderMaterial.setMaterialId(materialId);
|
|
|
-// omstruckOrderMaterial.setOrderMaterialNumber(materialNumber);
|
|
|
-// omstruckOrderMaterial.setUpdateTime(new Date());
|
|
|
-// if (omstruckOrderMaterials == null || omstruckOrderMaterials.size() == 0) {
|
|
|
-// result += omstruckOrderMaterialMapper.insertSelective(omstruckOrderMaterial);
|
|
|
-// } else {
|
|
|
-// result += omstruckOrderMaterialMapper.updateByPrimaryKeySelective(omstruckOrderMaterial);
|
|
|
+// if (saleMaterialId != null) {
|
|
|
+// amsSaleMaterial.setSaleMaterialId(DataChange.dataToBigDecimal(saleMaterialId));
|
|
|
+// amsSaleTrucknoMaterial.setTrucknoMaterialId(DataChange.dataToBigDecimal(trucknoMaterialId));
|
|
|
// }
|
|
|
-// // 判断是否是新增的拼数
|
|
|
-// if (saleMaterialId == null || saleMaterialId.intValue() == 0) {
|
|
|
-// saleMaterialId = amsSaleMaterialMapper.selectMaxId();
|
|
|
-// trucknoMaterialId = amsSaleTrucknoMaterialMapper.selectMaxId();
|
|
|
-// amsSaleMaterial.setInsertTime(new Date());
|
|
|
-// amsSaleMaterial.setInsertUsername("修改时加拼数");
|
|
|
-// amsSaleTrucknoMaterial.setInsertTime(new Date());
|
|
|
-// amsSaleTrucknoMaterial.setInsertUsername("修改时加拼数");
|
|
|
+// if (saleMaterialId == null){
|
|
|
+ amsSaleMaterial.setSaleMaterialId(amsSaleMaterialMapper.selectMaxId());
|
|
|
+ amsSaleTrucknoMaterial.setTrucknoMaterialId(amsSaleTrucknoMaterialMapper.selectMaxId());
|
|
|
// }
|
|
|
-// // 车序号子表
|
|
|
-// amsSaleTrucknoMaterial.setTrucknoMaterialId(trucknoMaterialId);
|
|
|
-// amsSaleTrucknoMaterial.setMaterialId(saleMaterialId);
|
|
|
-// amsSaleTrucknoMaterial.setSaleOrderMaterialId(saleOrderMaterialId);
|
|
|
-// amsSaleTrucknoMaterial.setUpdateTime(new Date());
|
|
|
-// // 销售订单物资表
|
|
|
-// amsSaleMaterial.setSaleMaterialId(saleMaterialId);
|
|
|
-// amsSaleMaterial.setMaterialNumber(materialNumber);
|
|
|
-// amsSaleMaterial.setSaleOrderId(saleOrderId);
|
|
|
-// amsSaleMaterial.setMaterialId(materialId);
|
|
|
-// amsSaleMaterial.setIsPoundSale(isPoundSale);
|
|
|
-// amsSaleMaterial.setUpdateTime(new Date());
|
|
|
-// if (steelMeter != null) {
|
|
|
-// amsSaleMaterial.setSteelMeter(new BigDecimal(steelMeter.toString()));
|
|
|
-// }
|
|
|
-// if (map.get("saleOrderId") == null) {
|
|
|
-// result += amsSaleMaterialMapper.insertSelective(amsSaleMaterial);
|
|
|
-// result += amsSaleTrucknoMaterialMapper.insertSelective(amsSaleTrucknoMaterial);
|
|
|
-// } else {
|
|
|
-// result += amsSaleMaterialMapper.updateByPrimaryKeySelective(amsSaleMaterial);
|
|
|
-// result += amsSaleTrucknoMaterialMapper.updateByPrimaryKeySelective(amsSaleTrucknoMaterial);
|
|
|
-// }
|
|
|
- }
|
|
|
- // 得到运单中的物资
|
|
|
- List<Map<String, Object>> newList = omstruckOrderMaterialMapper.getMaterialList(orderId);
|
|
|
- toTmsMap.put("newList", newList);
|
|
|
- // 调用金蝶接口,将销售订单推送到金蝶系统
|
|
|
- Map<String, Object> input = joinFeign.getSaleOrder(saleOrderId);
|
|
|
- Map<String, Object> head = (Map<String, Object>) input.get("head");
|
|
|
- head.put("status", "update");
|
|
|
- // 获得金蝶接口配置
|
|
|
- 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);
|
|
|
- return result;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 遍历两次物资集合,找出哪些修改哪些新增哪些删除的物资
|
|
|
- * @param newMaterialMapList
|
|
|
- * @param oldMaterialMapList
|
|
|
- * @return
|
|
|
- */
|
|
|
- public static Map<String, Object> checkMaterial(List<Map<String, Object>> oldMaterialMapList, List<Map<String, Object>> newMaterialMapList){
|
|
|
- Map<String, Object> returnMap = new HashMap<>();
|
|
|
- List<BigDecimal> delete = new ArrayList<>(); //存放删除的物资ID
|
|
|
- List<Map<String, Object>> add = new ArrayList<>(); //存放添加的物资ID及件数
|
|
|
- List<Map<String, Object>> update = new ArrayList<>(); // 存放修改的物资Id及件数
|
|
|
- //先遍历old中的物资 查找有没有相同的物资 找到修改和删除的物资
|
|
|
- for (Map<String, Object> map : oldMaterialMapList) {
|
|
|
- String materialId = String.valueOf(map.get("materialId"));//拿到key
|
|
|
- //通过这个key去新物资集合中获取是否包含这个key
|
|
|
- Map<String, Object> newMap = getNewMap(materialId, newMaterialMapList);
|
|
|
- if(newMap == null){
|
|
|
- //如果在新物资中没有找到,则代表此物资已删除
|
|
|
- delete.add(DataChange.dataToBigDecimal(map.get("materialId")));
|
|
|
- }else{ //如果找到了,取出件数进行对比
|
|
|
- BigDecimal newNumber = DataChange.dataToBigDecimal(newMap.get("materialNumber")); //拿到新物资中的件数
|
|
|
- BigDecimal oldNumber = DataChange.dataToBigDecimal(map.get("materialNumber"));
|
|
|
- int i = newNumber.compareTo(oldNumber);
|
|
|
- if(i != 0){ //如果件数不相等,则需要进行修改,添加进修改list中
|
|
|
- Map<String, Object> updateMap = new HashMap<>();
|
|
|
- updateMap.put("materialId", materialId);
|
|
|
- updateMap.put("materialNumber", newNumber);
|
|
|
- update.add(updateMap);
|
|
|
- }
|
|
|
+ if (easId != null) {
|
|
|
+ amsSaleMaterial.setEasPrimaryId(easId.toString());
|
|
|
}
|
|
|
- }
|
|
|
- //再次遍历new中的物资 查找 新增 的物资
|
|
|
- for (Map<String, Object> map : newMaterialMapList) {
|
|
|
- String materialId = String.valueOf(map.get("materialId"));
|
|
|
- Map<String, Object> oldMaps = getNewMap(materialId, oldMaterialMapList);
|
|
|
- if(oldMaps == null){
|
|
|
- //如果在旧map中没有找到,则代表是新增的物资,将新增的物资存放到新增列表中
|
|
|
- add.add(map);
|
|
|
+ if (warehouse != null) {
|
|
|
+ amsSaleMaterial.setSaleWarehouse(warehouse.toString());
|
|
|
}
|
|
|
- }
|
|
|
- if(add.size() != 0) returnMap.put("add", add);
|
|
|
- if(delete.size() != 0) returnMap.put("delete", delete);
|
|
|
- if(update.size() != 0) returnMap.put("update", update);
|
|
|
- return returnMap;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 遍历list查看里面的map是否包含这个值
|
|
|
- * @param key
|
|
|
- * @param mapList
|
|
|
- * @return
|
|
|
- */
|
|
|
- public static Map<String, Object> getNewMap(String key, List<Map<String, Object>> mapList){
|
|
|
- for (Map<String, Object> map : mapList) {
|
|
|
- if(map.containsValue(key)){
|
|
|
- return map;
|
|
|
+ if (steelMeter != null) {
|
|
|
+ amsSaleMaterial.setSteelMeter(DataChange.dataToBigDecimal(steelMeter));
|
|
|
}
|
|
|
+ if (materialWeight != null) {
|
|
|
+ amsSaleMaterial.setMaterialWeight(DataChange.dataToBigDecimal(materialWeight));
|
|
|
+ omstruckOrderMaterial.setOrderMaterialWeight(DataChange.dataToBigDecimal(materialWeight));
|
|
|
+ }
|
|
|
+ amsSaleMaterial.setSaleOrderId(saleOrderId);
|
|
|
+ amsSaleMaterial.setIsPoundSale(isPoundSale);
|
|
|
+ amsSaleMaterial.setMaterialId(materialId);
|
|
|
+ amsSaleMaterial.setDeleted(new BigDecimal(0));
|
|
|
+ amsSaleMaterial.setMaterialNumber(materialNumber);
|
|
|
+ amsSaleMaterial.setUpdateTime(new Date());
|
|
|
+ result += amsSaleMaterialMapper.insertSelective(amsSaleMaterial);
|
|
|
+ // 车序号子表
|
|
|
+ amsSaleTrucknoMaterial.setSaleOrderMaterialId(saleOrderMaterialId);
|
|
|
+ amsSaleTrucknoMaterial.setMaterialId(amsSaleMaterial.getSaleMaterialId());
|
|
|
+ amsSaleTrucknoMaterial.setSaleOrderMaterialNumber(materialNumber);
|
|
|
+ amsSaleTrucknoMaterial.setUpdateTime(new Date());
|
|
|
+ result += amsSaleTrucknoMaterialMapper.insertSelective(amsSaleTrucknoMaterial);
|
|
|
+ // 运输订单子表
|
|
|
+ omstruckOrderMaterial.setOrderMaterialId(omstruckOrderMaterialMapper.selectMaxId());
|
|
|
+ omstruckOrderMaterial.setOrderId(orderId);
|
|
|
+ omstruckOrderMaterial.setMaterialId(materialId);
|
|
|
+ omstruckOrderMaterial.setOrderMaterialNumber(materialNumber);
|
|
|
+ result += omstruckOrderMaterialMapper.insertSelective(omstruckOrderMaterial);
|
|
|
}
|
|
|
- return null;
|
|
|
+ // 得到运单中的物资
|
|
|
+ List<Map<String, Object>> newList = omstruckOrderMaterialMapper.getMaterialList(orderId);
|
|
|
+ toTmsMap.put("newMaterialMapList", newList);
|
|
|
+ // 修改实绩结果
|
|
|
+ Map<String, Object> updateResult = tmsTruckFeign.update(toTmsMap);
|
|
|
+ System.out.println(updateResult);
|
|
|
+ return result;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -1564,4 +1493,40 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
|
|
|
List<Map<String, Object>> resultList = amsSaleOrderMapper.getFuSaleOrderList(map);
|
|
|
return resultList;
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 同步关闭金蝶销售订单
|
|
|
+ * @param mapValue
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public int deleteSaleOrderSame(Map<String, Object> mapValue) {
|
|
|
+ int result = 0;
|
|
|
+ String reason = (String) mapValue.get("reason");
|
|
|
+ String number = (String) mapValue.get("number");
|
|
|
+ String wholeOrder = "1";
|
|
|
+ String status = "close";
|
|
|
+ Map<String,Object> head = new HashMap<>();
|
|
|
+ head.put("number",number);
|
|
|
+ head.put("reason",reason);
|
|
|
+ head.put("wholeOrder",wholeOrder);
|
|
|
+ head.put("status",status);
|
|
|
+ Map<String,Object> input = new HashMap<>();
|
|
|
+ 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);
|
|
|
+ BigDecimal saleOrderId = DataChange.dataToBigDecimal(mapValue.get("saleOrderId"));
|
|
|
+ AmsSaleOrder amsSaleOrder = new AmsSaleOrder();
|
|
|
+ amsSaleOrder.setSaleOrderId(saleOrderId);
|
|
|
+ amsSaleOrder.setDeleted(new BigDecimal(1));
|
|
|
+ amsSaleOrder.setInsertUpdateRemark(reason);
|
|
|
+ result += amsSaleOrderMapper.closeOrderNotIn(saleOrderId);
|
|
|
+ result += amsSaleOrderMapper.updateByPrimaryKeySelective(amsSaleOrder);
|
|
|
+ return result;
|
|
|
+ }
|
|
|
}
|