|
@@ -44,6 +44,9 @@ public class TMSController extends BaseRESTfulController {
|
|
|
@Autowired
|
|
@Autowired
|
|
|
private RmsFeign rmsFeign;
|
|
private RmsFeign rmsFeign;
|
|
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private UniversalMapper universalMapper;
|
|
|
|
|
+
|
|
|
@ApiOperation(value = "车辆实绩")
|
|
@ApiOperation(value = "车辆实绩")
|
|
|
@ApiImplicitParams({
|
|
@ApiImplicitParams({
|
|
|
@ApiImplicitParam(name = "map", value = "参数", required = false, dataType = "map"),
|
|
@ApiImplicitParam(name = "map", value = "参数", required = false, dataType = "map"),
|
|
@@ -359,47 +362,50 @@ public class TMSController extends BaseRESTfulController {
|
|
|
if (fileName != null && fileName.length() > 0) {
|
|
if (fileName != null && fileName.length() > 0) {
|
|
|
is = new FileInputStream(excel);
|
|
is = new FileInputStream(excel);
|
|
|
}
|
|
}
|
|
|
|
|
+ Map<String,Object> map = new HashMap<>();
|
|
|
//获取Excel中包含的对象数组
|
|
//获取Excel中包含的对象数组
|
|
|
List<Map<String,Object>> list = ExcelToolUtils.getExcelList(is, fileName, 0);
|
|
List<Map<String,Object>> list = ExcelToolUtils.getExcelList(is, fileName, 0);
|
|
|
- //对不同的对象数组按通知单号求和1
|
|
|
|
|
- /*
|
|
|
|
|
- * requirementMap结构:{
|
|
|
|
|
- * "通知单号":{
|
|
|
|
|
- * weight:'重量',
|
|
|
|
|
- * truckNumber:'车数'
|
|
|
|
|
- * }
|
|
|
|
|
- * }
|
|
|
|
|
- * */
|
|
|
|
|
- Map<String,Map<String,Object>> requirementMap = new HashMap<>();//需求
|
|
|
|
|
|
|
+ List<String> capacityIds = new ArrayList<>();
|
|
|
|
|
+ for(Map<String,Object> item:list){
|
|
|
|
|
+ capacityIds.add(item.get("车号").toString());
|
|
|
|
|
+ }
|
|
|
|
|
+ map.put("list",list);
|
|
|
|
|
+ //校验当前excel是否已经导过
|
|
|
|
|
+ if(universalMapper.checkTrainOrder(map) > 0){
|
|
|
|
|
+ throw new Exception("存在24小时内的重复运单!不允许重复导入!");
|
|
|
|
|
+ }
|
|
|
|
|
+ //统计通知单的重量车数和车牌号
|
|
|
Set<String> capacitySet = new HashSet<>();//车牌号
|
|
Set<String> capacitySet = new HashSet<>();//车牌号
|
|
|
for (Map<String,Object> item : list){
|
|
for (Map<String,Object> item : list){
|
|
|
//通知单统计
|
|
//通知单统计
|
|
|
- String key = item.get("通知单号").toString();
|
|
|
|
|
- Map<String,Object> countMap = requirementMap.get(key);
|
|
|
|
|
- if(countMap != null){
|
|
|
|
|
- //已存在,修改
|
|
|
|
|
- BigDecimal weight = DataChange.dataToBigDecimal(countMap.get("weight"));
|
|
|
|
|
- BigDecimal truckNumber = DataChange.dataToBigDecimal(countMap.get("truckNumber"));
|
|
|
|
|
- weight = weight.add(DataChange.dataToBigDecimal(item.get("净重")));
|
|
|
|
|
- truckNumber = truckNumber.add(new BigDecimal(1));
|
|
|
|
|
- countMap.put("weight",weight);
|
|
|
|
|
- countMap.put("truckNumber",truckNumber);
|
|
|
|
|
|
|
+ String requirementNumber = item.get("通知单号").toString();
|
|
|
|
|
+ if(map.get("requirementNumber") != null){
|
|
|
|
|
+ if(map.get("requirementNumber").equals(requirementNumber)){
|
|
|
|
|
+ //已存在,修改
|
|
|
|
|
+ BigDecimal weight = DataChange.dataToBigDecimal(map.get("weight"));
|
|
|
|
|
+ BigDecimal truckNumber = DataChange.dataToBigDecimal(map.get("truckNumber"));
|
|
|
|
|
+ weight = weight.add(DataChange.dataToBigDecimal(item.get("净重")));
|
|
|
|
|
+ truckNumber = truckNumber.add(new BigDecimal(1));
|
|
|
|
|
+ map.put("weight",weight);
|
|
|
|
|
+ map.put("truckNumber",truckNumber);
|
|
|
|
|
+ }else{
|
|
|
|
|
+ throw new Exception("同一个Excel文件中只允许有一个采购订单号!");
|
|
|
|
|
+ }
|
|
|
}else{
|
|
}else{
|
|
|
//不存在,新增
|
|
//不存在,新增
|
|
|
- countMap = new HashMap<>();
|
|
|
|
|
BigDecimal weight = DataChange.dataToBigDecimal(item.get("净重"));
|
|
BigDecimal weight = DataChange.dataToBigDecimal(item.get("净重"));
|
|
|
BigDecimal truckNumber = new BigDecimal(1);
|
|
BigDecimal truckNumber = new BigDecimal(1);
|
|
|
- countMap.put("weight",weight);
|
|
|
|
|
- countMap.put("truckNumber",truckNumber);
|
|
|
|
|
|
|
+ map.put("requirementNumber",requirementNumber);
|
|
|
|
|
+ map.put("weight",weight);
|
|
|
|
|
+ map.put("truckNumber",truckNumber);
|
|
|
}
|
|
}
|
|
|
- requirementMap.put(key,countMap);
|
|
|
|
|
//车牌号去重
|
|
//车牌号去重
|
|
|
capacitySet.add(item.get("车号").toString());
|
|
capacitySet.add(item.get("车号").toString());
|
|
|
}
|
|
}
|
|
|
//新增火车运力资源
|
|
//新增火车运力资源
|
|
|
String[] capacities = capacitySet.toArray(new String[0]);//车牌号
|
|
String[] capacities = capacitySet.toArray(new String[0]);//车牌号
|
|
|
if(capacities.length != list.size()){
|
|
if(capacities.length != list.size()){
|
|
|
- throw new Exception("操作失败:车号可能重复!");
|
|
|
|
|
|
|
+ throw new Exception("车号不允许重复!");
|
|
|
}else{
|
|
}else{
|
|
|
new Runnable(){
|
|
new Runnable(){
|
|
|
@Override
|
|
@Override
|
|
@@ -413,12 +419,9 @@ public class TMSController extends BaseRESTfulController {
|
|
|
}.run();
|
|
}.run();
|
|
|
}
|
|
}
|
|
|
//新增AMS及TMS
|
|
//新增AMS及TMS
|
|
|
- Map<String,Object> map = new HashMap<>();
|
|
|
|
|
- map.put("list",list);
|
|
|
|
|
map.put("userId",userId);
|
|
map.put("userId",userId);
|
|
|
map.put("userName",userName);
|
|
map.put("userName",userName);
|
|
|
map.put("materialType",materialType);
|
|
map.put("materialType",materialType);
|
|
|
- map.put("requirementMap",requirementMap);
|
|
|
|
|
return tmsFeign.purchaseTrainLoad(map,userId,userName);
|
|
return tmsFeign.purchaseTrainLoad(map,userId,userName);
|
|
|
}
|
|
}
|
|
|
|
|
|