|
@@ -863,6 +863,13 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
|
|
|
int result = 0;
|
|
|
// 遍历每一行
|
|
|
for (Map<String,Object> map : mapList) {
|
|
|
+ //得到此次是否校验GPS
|
|
|
+ boolean onceCheck = true;
|
|
|
+ try{
|
|
|
+ onceCheck = (boolean) map.get("isCheckGPS");
|
|
|
+ }catch (Exception e){
|
|
|
+ //取值失败不处理,默认校验GPS
|
|
|
+ }
|
|
|
// 得到车牌号
|
|
|
String capacityNumber = (String) map.get("capacityNumber");
|
|
|
//Map<String,Object> details = amsSaleOrderMapper.getOrderIdByCapacity(map);
|
|
@@ -878,7 +885,8 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
|
|
|
// }
|
|
|
// throw new Exception(capacityNumber+"有未完成的运输订单任务,无法派单");
|
|
|
//}
|
|
|
- if(isCheckGps!=null && isCheckGps==0){
|
|
|
+ //非自提订单 && 本次校验GPS && 全局GPS校验打开
|
|
|
+ if((selfMention==null || selfMention.equals("否")) && onceCheck && (isCheckGps!=null && isCheckGps==0)){
|
|
|
Map<String,Object> locationResult = null;
|
|
|
int isGPS=0;
|
|
|
try{
|
|
@@ -1940,6 +1948,9 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
|
|
|
public Map<String, Object> updateCapacityNumberInFactory(Map<String, Object> mapValue) throws Exception {
|
|
|
Object lineSequence = mapValue.get("lineSequence");
|
|
|
int result = 0;
|
|
|
+ if (mapValue.get("orderId") == null) {
|
|
|
+ throw new Exception("还未派车,不允许修改车牌号");
|
|
|
+ }
|
|
|
//查询输入进来的车牌号是否与原有车牌号一致,如果一致则退出
|
|
|
BigDecimal oldCapacityId = omstruckOrderMapper.getOldCapacityId(DataChange.dataToBigDecimal(mapValue.get("orderId")));
|
|
|
if(oldCapacityId.compareTo(DataChange.dataToBigDecimal(mapValue.get("capacityId"))) == 0) {
|
|
@@ -1948,7 +1959,18 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
|
|
|
}
|
|
|
Integer isCheckGps = amsSaleOrderMapper.getDispachSwitch();
|
|
|
String capacityNo = (String) mapValue.get("capacityNo");
|
|
|
- if(isCheckGps!=null && isCheckGps==0){
|
|
|
+ //得到此次是否校验GPS
|
|
|
+ boolean onceCheck = true;
|
|
|
+ //查询是否自提
|
|
|
+ String selfMention = "否";
|
|
|
+ try{
|
|
|
+ selfMention = amsSaleOrderMapper.findSelfMention(DataChange.dataToBigDecimal(mapValue.get("saleOrderMaterialId")));
|
|
|
+ onceCheck = (boolean) mapValue.get("isCheckGPS");
|
|
|
+ }catch (Exception e){
|
|
|
+ //取值失败不处理,取默认值
|
|
|
+ }
|
|
|
+ //非自提,单次校验且全局校验
|
|
|
+ if((selfMention==null || selfMention.equals("否")) && onceCheck && (isCheckGps!=null && isCheckGps==0)){
|
|
|
Map<String,Object> data = (Map<String,Object>)otmsFeign.getCurrentLocation(capacityNo).getData();
|
|
|
Map<String,Object> locationResult = (Map<String,Object>)data.get("result");
|
|
|
int isGPS=amsSaleOrderMapper.isGPS(capacityNo);
|
|
@@ -1973,37 +1995,73 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
|
|
|
}
|
|
|
mapValue.put("capacityids",capacityids);
|
|
|
//这是修改车牌号
|
|
|
- //将排队信息删掉
|
|
|
- Map<String, Object> isSpellingMap = omstruckOrderMapper.getSteelIsSpelling(DataChange.dataToBigDecimal(mapValue.get("orderId")));
|
|
|
- if(isSpellingMap != null && isSpellingMap.get("listId") != null){
|
|
|
- int isSpelling = DataChange.dataToBigDecimal(isSpellingMap.get("isSpelling")).intValue();
|
|
|
- if(isSpelling == 1 ){
|
|
|
- result += omstruckOrderMapper.deleteSpellingList(isSpellingMap.get("listId"));
|
|
|
+ //取消是新车牌号,那么不删除排队信息,不删除实绩信息,将运单状态变为7
|
|
|
+ if (DataChange.dataToBigDecimal(mapValue.get("capacityId")).compareTo(new BigDecimal(35128)) != 0) {
|
|
|
+ //根据订单id查询车牌号改动记录
|
|
|
+ String oldCpacityIds = omstruckOrderMapper.getOrderCapacityHistory(DataChange.dataToBigDecimal(mapValue.get("orderId")));
|
|
|
+ BigDecimal oldOldCapacityId = null;
|
|
|
+ if(oldCpacityIds != null) {
|
|
|
+ oldOldCapacityId = DataChange.dataToBigDecimal(oldCpacityIds.split(",")[0]);
|
|
|
+ }
|
|
|
+ //如果旧车号是取消,且取消的前一个车与该车相等,那么就将状态还原
|
|
|
+ if (oldCapacityId.compareTo(new BigDecimal(35128)) == 0 && DataChange.dataToBigDecimal(mapValue.get("capacityId")).compareTo(oldOldCapacityId) == 0 ) {
|
|
|
+ //判断该订单下有没有子实绩
|
|
|
+ BigDecimal resultId = amsSaleOrderMaterialMapper.selectEnFactory(DataChange.dataToBigDecimal(mapValue.get("orderId")));
|
|
|
+ if(resultId == null) {
|
|
|
+ OmstruckOrder omstruckOrder = new OmstruckOrder();
|
|
|
+ omstruckOrder.setOrderId(DataChange.dataToBigDecimal(mapValue.get("orderId")));
|
|
|
+ omstruckOrder.setOrderStatus(new BigDecimal(4));
|
|
|
+ omstruckOrder.setOrderLineSequence(new BigDecimal(0));
|
|
|
+ omstruckOrder.setInsertUpdateRemark("将取消改回来原来的车状态不变!");
|
|
|
+ /*omstruckOrder.set*/
|
|
|
+ result += omstruckOrderMapper.updateByPrimaryKeySelective(omstruckOrder);
|
|
|
+ }else{
|
|
|
+ OmstruckOrder omstruckOrder = new OmstruckOrder();
|
|
|
+ omstruckOrder.setOrderId(DataChange.dataToBigDecimal(mapValue.get("orderId")));
|
|
|
+ omstruckOrder.setOrderStatus(new BigDecimal(5));
|
|
|
+ omstruckOrder.setInsertUpdateRemark("将取消改回来原来的车状态不变!");
|
|
|
+ /*omstruckOrder.set*/
|
|
|
+ result += omstruckOrderMapper.updateByPrimaryKeySelective(omstruckOrder);
|
|
|
+ }
|
|
|
+
|
|
|
}else{
|
|
|
- result += omstruckOrderMapper.deleteQueueList(isSpellingMap.get("listId"));
|
|
|
+ //将排队信息删掉
|
|
|
+ Map<String, Object> isSpellingMap = omstruckOrderMapper.getSteelIsSpelling(DataChange.dataToBigDecimal(mapValue.get("orderId")));
|
|
|
+ if(isSpellingMap != null && isSpellingMap.get("listId") != null){
|
|
|
+ int isSpelling = DataChange.dataToBigDecimal(isSpellingMap.get("isSpelling")).intValue();
|
|
|
+ if(isSpelling == 1 ){
|
|
|
+ result += omstruckOrderMapper.deleteSpellingList(isSpellingMap.get("listId"));
|
|
|
+ }else{
|
|
|
+ result += omstruckOrderMapper.deleteQueueList(isSpellingMap.get("listId"));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //若是接单之后还需要删除实绩且将状态变为4
|
|
|
+ //查询运输订单的状态和总实绩ID
|
|
|
+ Map<String, Object> orderMesMap = amsSaleOrderMapper.getOrderMes(mapValue);
|
|
|
+ BigDecimal resultTotalId = DataChange.dataToBigDecimal(orderMesMap.get("resultTotalId"));
|
|
|
+ //删除排队实绩
|
|
|
+ if (resultTotalId !=null && !("".equals(resultTotalId))){
|
|
|
+ omstruckOrderMapper.deleteQueuingPerformance(resultTotalId);
|
|
|
+ }
|
|
|
+ OmstruckOrder omstruckOrder = new OmstruckOrder();
|
|
|
+ omstruckOrder.setOrderId(DataChange.dataToBigDecimal(mapValue.get("orderId")));
|
|
|
+ omstruckOrder.setOrderStatus(new BigDecimal(4));
|
|
|
+ omstruckOrder.setOrderLineSequence(new BigDecimal(0));
|
|
|
+ /*omstruckOrder.set*/
|
|
|
+ result += omstruckOrderMapper.updateByPrimaryKeySelective(omstruckOrder);
|
|
|
+ result += omstruckOrderMapper.deleteEnResult(resultTotalId);
|
|
|
+ result += omstruckOrderMapper.deleteWeightResult(resultTotalId);
|
|
|
+ result += omstruckOrderMapper.deleteLoadResult(resultTotalId);
|
|
|
+ result += omstruckOrderMapper.deleteLeaveResult(resultTotalId);
|
|
|
}
|
|
|
- }
|
|
|
- result += amsSaleOrderMapper.updateCapacityNumberInFactory(mapValue);
|
|
|
- //若是接单之后还需要删除实绩且将状态变为4
|
|
|
- //查询运输订单的状态和总实绩ID
|
|
|
- Map<String, Object> orderMesMap = amsSaleOrderMapper.getOrderMes(mapValue);
|
|
|
- BigDecimal resultTotalId = DataChange.dataToBigDecimal(orderMesMap.get("resultTotalId"));
|
|
|
- //删除排队实绩
|
|
|
- if (resultTotalId !=null && !("".equals(resultTotalId))){
|
|
|
- omstruckOrderMapper.deleteQueuingPerformance(resultTotalId);
|
|
|
- }
|
|
|
- if(DataChange.dataToBigDecimal(orderMesMap.get("orderStatus")).intValue() == 5){
|
|
|
+ }else{
|
|
|
OmstruckOrder omstruckOrder = new OmstruckOrder();
|
|
|
omstruckOrder.setOrderId(DataChange.dataToBigDecimal(mapValue.get("orderId")));
|
|
|
- omstruckOrder.setOrderStatus(new BigDecimal(4));
|
|
|
- omstruckOrder.setOrderLineSequence(new BigDecimal(0));
|
|
|
- /*omstruckOrder.set*/
|
|
|
+ omstruckOrder.setOrderStatus(new BigDecimal(7));
|
|
|
+ omstruckOrder.setInsertUpdateRemark("取消车牌号,保留实绩将状态变为7");
|
|
|
result += omstruckOrderMapper.updateByPrimaryKeySelective(omstruckOrder);
|
|
|
- result += omstruckOrderMapper.deleteEnResult(resultTotalId);
|
|
|
- result += omstruckOrderMapper.deleteWeightResult(resultTotalId);
|
|
|
- result += omstruckOrderMapper.deleteLoadResult(resultTotalId);
|
|
|
- result += omstruckOrderMapper.deleteLeaveResult(resultTotalId);
|
|
|
}
|
|
|
+ result += amsSaleOrderMapper.updateCapacityNumberInFactory(mapValue);
|
|
|
}
|
|
|
mapValue.put("result",result);
|
|
|
return mapValue;
|