|
|
@@ -279,18 +279,31 @@ public class MeterWorkCarActualServiceImpl extends BaseServiceImpl<MeterWorkCarA
|
|
|
MeterWorkCarActualFirst first2 = new MeterWorkCarActualFirst();
|
|
|
first1.setActualFirstNo(queryData.getActualFirst1No());
|
|
|
first1.setCarNo(queryData.getCarNo());
|
|
|
- first1.setUpdateManName("system");
|
|
|
+ first1.setUpdateManNo(model.getUpdateManNo());
|
|
|
+ first1.setUpdateManName(model.getUpdateManName());
|
|
|
first1.setUpdateTime(new Date());
|
|
|
- first1.setNote("未匹配委托净重数据修改车号,同步修改一次计量数据车号");
|
|
|
+ first1.setNote("净重数据修改车号,同步修改一次计量数据车号");
|
|
|
meterWorkCarActualFirstMapper.updateByPrimaryKeySelective(first1);
|
|
|
|
|
|
first2.setActualFirstNo(queryData.getActualFirst1No());
|
|
|
first2.setCarNo(queryData.getCarNo());
|
|
|
- first2.setUpdateManName("system");
|
|
|
+ first2.setUpdateManNo(model.getUpdateManNo());
|
|
|
+ first2.setUpdateManName(model.getUpdateManName());
|
|
|
first2.setUpdateTime(new Date());
|
|
|
- first2.setNote("未匹配委托净重数据修改车号,同步修改一次计量数据车号");
|
|
|
+ first2.setNote("净重数据修改车号,同步修改一次计量数据车号");
|
|
|
meterWorkCarActualFirstMapper.updateByPrimaryKeySelective(first2);
|
|
|
|
|
|
+ MeterBaseOperationLog logModel = new MeterBaseOperationLog();
|
|
|
+ logModel.setId(PublicMethod.IdCreate(2));
|
|
|
+ logModel.setCreateManNo(model.getUpdateManNo());
|
|
|
+ logModel.setCreateManName(model.getUpdateManName());
|
|
|
+ logModel.setCreateTime(new Date());
|
|
|
+ logModel.setOperationPage("Web端-汽车衡一次数据维护");
|
|
|
+ logModel.setOperationFunction("车号修改");
|
|
|
+ logModel.setOperationId(model.getActualNo());
|
|
|
+ logModel.setOperationPredictionNo(model.getPredictionNo());
|
|
|
+ logModel.setOperationCarnNo(model.getCarNo());
|
|
|
+ meterBaseOperationLogMapper.insertSelective(logModel);
|
|
|
return num;
|
|
|
} catch (MarkerMetException e) {
|
|
|
throw e;
|
|
|
@@ -301,7 +314,7 @@ public class MeterWorkCarActualServiceImpl extends BaseServiceImpl<MeterWorkCarA
|
|
|
if (model.getActualNo() == null || "".equals(model.getActualNo())) {
|
|
|
throw new MarkerMetException(500, "操作数据主键不能为空!!!");
|
|
|
}
|
|
|
- if (!model.getValueFlag().equals("3")) {
|
|
|
+ if (StringUtils.isNotEmpty(model.getPredictionNo())) {
|
|
|
throw new MarkerMetException(500, "只有未匹配委托的数据才能修改车号!!!");
|
|
|
}
|
|
|
if (model.getNote() == null || "".equals(model.getNote())) {
|
|
|
@@ -1275,17 +1288,18 @@ public class MeterWorkCarActualServiceImpl extends BaseServiceImpl<MeterWorkCarA
|
|
|
rm.setMessage("只有未匹配的净重数据才能进行委托匹配操作");
|
|
|
return rm;
|
|
|
}
|
|
|
-
|
|
|
-// SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
-// if(model.getUpdateTime() != null && StringUtils.isNotEmpty(model.getUpdateTime().toString())) {
|
|
|
-// long sTime = df.parse(model.getUpdateTime().toString()).getTime();
|
|
|
-// long eTime = df.parse((new Date()).toString()).getTime();
|
|
|
-// long diff = (eTime - sTime) / 1000;
|
|
|
-// if(diff <= 15) {
|
|
|
-// throw new MarkerMetException(500, "匹配委托需在解除委托15秒后进行,请稍等");
|
|
|
-// }
|
|
|
-// }
|
|
|
-
|
|
|
+ SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
+ if(model.getUpdateTime() != null && StringUtils.isNotEmpty(model.getUpdateTime().toString())) {
|
|
|
+ String sDate = df.format(model.getUpdateTime());
|
|
|
+ String eDate = df.format(new Date());
|
|
|
+ long sTime = df.parse(sDate).getTime();
|
|
|
+ long eTime = df.parse(eDate).getTime();
|
|
|
+ long diff = (eTime - sTime) / 1000;
|
|
|
+ if(diff <= 15) {
|
|
|
+ rm.setMessage("匹配委托需在解除委托15秒后进行,请稍等");
|
|
|
+ return rm;
|
|
|
+ }
|
|
|
+ }
|
|
|
if(scale == null) {
|
|
|
rm.setMessage("不存在对应的预报数据,请确认!!");
|
|
|
return rm;
|
|
|
@@ -1336,7 +1350,6 @@ public class MeterWorkCarActualServiceImpl extends BaseServiceImpl<MeterWorkCarA
|
|
|
mwca.setIsPreScale("1");
|
|
|
mwca.setValueFlag("1");
|
|
|
mwca.setUploadFlag("1");
|
|
|
- mwca.setNote(note);
|
|
|
meterWorkCarActualMapper.updateByPrimaryKey(mwca);
|
|
|
|
|
|
// 处理预报
|
|
|
@@ -1389,20 +1402,22 @@ public class MeterWorkCarActualServiceImpl extends BaseServiceImpl<MeterWorkCarA
|
|
|
if (mwcaquery == null) {
|
|
|
throw new MarkerMetException(500, "不存在对应的结净数据");
|
|
|
}else {
|
|
|
-// try{
|
|
|
-// SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
-// if(mwcaquery.getUpdateTime() != null && StringUtils.isNotEmpty(mwcaquery.getUpdateTime().toString())) {
|
|
|
-// long sTime = df.parse(mwcaquery.getUpdateTime().toString()).getTime();
|
|
|
-// long eTime = df.parse((new Date()).toString()).getTime();
|
|
|
-// long diff = (eTime - sTime) / 1000;
|
|
|
-// if(diff <= 15) {
|
|
|
-// throw new MarkerMetException(500, "解除委托需在匹配委托15秒后进行,请稍等");
|
|
|
-// }
|
|
|
-// }
|
|
|
-// } catch (ParseException e) {
|
|
|
-// e.printStackTrace();
|
|
|
-// throw new MarkerMetException(500, "操作异常");
|
|
|
-// }
|
|
|
+ try{
|
|
|
+ SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
+ if(mwcaquery.getUpdateTime() != null && StringUtils.isNotEmpty(mwcaquery.getUpdateTime().toString())) {
|
|
|
+ String sDate = df.format(mwcaquery.getUpdateTime());
|
|
|
+ String eDate = df.format(new Date());
|
|
|
+ long sTime = df.parse(sDate).getTime();
|
|
|
+ long eTime = df.parse(eDate).getTime();
|
|
|
+ long diff = (eTime - sTime) / 1000;
|
|
|
+ if(diff <= 15) {
|
|
|
+ throw new MarkerMetException(500, "解除委托需在匹配委托15秒后进行,请稍等");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (ParseException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ throw new MarkerMetException(500, "操作异常");
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
PreTrackScale scaleTemp = preTrackScaleMapper.selectByPrimaryKey(model.getPredictionNo());
|
|
|
@@ -1418,7 +1433,6 @@ public class MeterWorkCarActualServiceImpl extends BaseServiceImpl<MeterWorkCarA
|
|
|
UserPayload payload = UserPayload.getCurrUser();
|
|
|
String userId = payload.getUserCode();
|
|
|
String userName = payload.getUserName();
|
|
|
-
|
|
|
// 处理一次计量数据
|
|
|
// 毛重
|
|
|
MeterWorkCarActualFirst grossrow = meterWorkCarActualFirstMapper.selectAndRemove(model.getActualFirst1No());
|
|
|
@@ -1454,6 +1468,7 @@ public class MeterWorkCarActualServiceImpl extends BaseServiceImpl<MeterWorkCarA
|
|
|
mwca.setUpdateManNo(userId);
|
|
|
mwca.setUpdateManName(userName);
|
|
|
mwca.setUpdateTime(new Date());
|
|
|
+ mwca.setNote("撤销委托");
|
|
|
//mwca.setValueFlag("3");
|
|
|
mwca.setIsPreScale("0");
|
|
|
mwca.setUploadFlag("1");
|
|
|
@@ -2717,19 +2732,19 @@ public class MeterWorkCarActualServiceImpl extends BaseServiceImpl<MeterWorkCarA
|
|
|
//报警Rfid
|
|
|
countCarHelpRfid = carHelp.stream().filter(model -> model.getBaseSpotNo().equals(spot.getBaseSpotNo())
|
|
|
&& model.getBaseSpotName().equals(spot.getBaseSpotName())
|
|
|
- && model.getHelpContent().equals("rfid")).count();
|
|
|
+ && model.getHelpContent().equals("2")).count();
|
|
|
//报警扫码
|
|
|
countCarHelpScanningCode = carHelp.stream().filter(model -> model.getBaseSpotNo().equals(spot.getBaseSpotNo())
|
|
|
&& model.getBaseSpotName().equals(spot.getBaseSpotName())
|
|
|
- && model.getHelpContent().equals("扫码")).count();
|
|
|
+ && model.getHelpContent().equals("3")).count();
|
|
|
//报警正常
|
|
|
countCarHelpNormal = carHelp.stream().filter(model -> model.getBaseSpotNo().equals(spot.getBaseSpotNo())
|
|
|
&& model.getBaseSpotName().equals(spot.getBaseSpotName())
|
|
|
- && model.getHelpContent().equals("正常")).count();
|
|
|
+ && model.getHelpContent().equals("1")).count();
|
|
|
//报警车号重置
|
|
|
countCarHelpVehicleReset = carHelp.stream().filter(model -> model.getBaseSpotNo().equals(spot.getBaseSpotNo())
|
|
|
&& model.getBaseSpotName().equals(spot.getBaseSpotName())
|
|
|
- && model.getHelpContent().equals("车号重置")).count();
|
|
|
+ && model.getHelpContent().equals("4")).count();
|
|
|
}
|
|
|
|
|
|
long countLogFirstIsPreScale = 0L;
|
|
|
@@ -2775,58 +2790,90 @@ public class MeterWorkCarActualServiceImpl extends BaseServiceImpl<MeterWorkCarA
|
|
|
long countLogActualIsNotPreScale = 0L;
|
|
|
long countLogActualDecompose = 0L;
|
|
|
long countLogActualValid = 0L;
|
|
|
-// long countLogFirstClean = 0L;
|
|
|
-// long countLogFirstDoubleEntrust = 0L;
|
|
|
-// long countLogFirstMixedLoading = 0L;
|
|
|
-// long countLogFirstMixedDischarge = 0L;
|
|
|
+ long countLogFirstClean = 0L;
|
|
|
+ long countLogFirstDoubleEntrust = 0L;
|
|
|
+ long countLogFirstMixedLoading = 0L;
|
|
|
+ long countLogFirstMixedDischarge = 0L;
|
|
|
+ long countLogActualCancelDoubleEntrust = 0L;
|
|
|
+ long countLogActualCancelMixedLoading = 0L;
|
|
|
+ long countLogActualCancelMixedDischarge = 0L;
|
|
|
if(carActualLog != null && carActualLog.size() >= 1) {
|
|
|
-// countLogFirstClean = carActualLog.stream().filter(model -> model.get("OPERATION_FUNCTION") != null
|
|
|
-// && model.get("NET_SPOT3_NO") != null
|
|
|
-// && model.get("NET_SPOT3_NAME") != null
|
|
|
-// && model.get("NET_SPOT3_NO").equals(spot.getBaseSpotNo())
|
|
|
-// && model.get("NET_SPOT3_NAME").equals(spot.getBaseSpotName())
|
|
|
-// && model.get("OPERATION_FUNCTION").equals("毛皮结净")).count();
|
|
|
-// countLogFirstDoubleEntrust = carActualLog.stream().filter(model -> model.get("OPERATION_FUNCTION") != null
|
|
|
-// && model.get("NET_SPOT3_NO") != null
|
|
|
-// && model.get("NET_SPOT3_NAME") != null
|
|
|
-// && model.get("NET_SPOT3_NO").equals(spot.getBaseSpotNo())
|
|
|
-// && model.get("NET_SPOT3_NAME").equals(spot.getBaseSpotName())
|
|
|
-// && model.get("OPERATION_FUNCTION").equals("毛皮结净")).count();
|
|
|
-// countLogFirstMixedLoading = carActualLog.stream().filter(model -> model.get("OPERATION_FUNCTION") != null
|
|
|
-// && model.get("NET_SPOT3_NO") != null
|
|
|
-// && model.get("NET_SPOT3_NAME") != null
|
|
|
-// && model.get("NET_SPOT3_NO").equals(spot.getBaseSpotNo())
|
|
|
-// && model.get("NET_SPOT3_NAME").equals(spot.getBaseSpotName())
|
|
|
-// && model.get("OPERATION_FUNCTION").equals("毛皮结净")).count();
|
|
|
-// countLogFirstMixedDischarge = carActualLog.stream().filter(model -> model.get("OPERATION_FUNCTION") != null
|
|
|
-// && model.get("NET_SPOT3_NO") != null
|
|
|
-// && model.get("NET_SPOT3_NAME") != null
|
|
|
-// && model.get("NET_SPOT3_NO").equals(spot.getBaseSpotNo())
|
|
|
-// && model.get("NET_SPOT3_NAME").equals(spot.getBaseSpotName())
|
|
|
-// && model.get("OPERATION_FUNCTION").equals("毛皮结净")).count();
|
|
|
+ countLogFirstClean = carActualLog.stream().filter(model -> model.get("OPERATION_FUNCTION") != null
|
|
|
+ && model.get("NET_SPOT3_NO") != null
|
|
|
+ && model.get("NET_SPOT3_NAME") != null
|
|
|
+ && model.get("NET_SPOT3_NO").equals(spot.getBaseSpotNo())
|
|
|
+ && model.get("NET_SPOT3_NAME").equals(spot.getBaseSpotName())
|
|
|
+ && model.get("OPERATION_PAGE").equals("web端-汽车衡一次数据维护")
|
|
|
+ && model.get("OPERATION_FUNCTION").equals("毛皮结净")).count();
|
|
|
+ countLogFirstDoubleEntrust = carActualLog.stream().filter(model -> model.get("OPERATION_FUNCTION") != null
|
|
|
+ && model.get("NET_SPOT3_NO") != null
|
|
|
+ && model.get("NET_SPOT3_NAME") != null
|
|
|
+ && model.get("NET_SPOT3_NO").equals(spot.getBaseSpotNo())
|
|
|
+ && model.get("NET_SPOT3_NAME").equals(spot.getBaseSpotName())
|
|
|
+ && model.get("OPERATION_PAGE").equals("web端-汽车衡一次数据维护")
|
|
|
+ && model.get("OPERATION_FUNCTION").equals("双委托结净")).count();
|
|
|
+ countLogFirstMixedLoading = carActualLog.stream().filter(model -> model.get("OPERATION_FUNCTION") != null
|
|
|
+ && model.get("NET_SPOT3_NO") != null
|
|
|
+ && model.get("NET_SPOT3_NAME") != null
|
|
|
+ && model.get("NET_SPOT3_NO").equals(spot.getBaseSpotNo())
|
|
|
+ && model.get("NET_SPOT3_NAME").equals(spot.getBaseSpotName())
|
|
|
+ && model.get("OPERATION_PAGE").equals("web端-汽车衡一次数据维护")
|
|
|
+ && model.get("OPERATION_FUNCTION").equals("混装委托结净")).count();
|
|
|
+ countLogFirstMixedDischarge = carActualLog.stream().filter(model -> model.get("OPERATION_FUNCTION") != null
|
|
|
+ && model.get("NET_SPOT3_NO") != null
|
|
|
+ && model.get("NET_SPOT3_NAME") != null
|
|
|
+ && model.get("NET_SPOT3_NO").equals(spot.getBaseSpotNo())
|
|
|
+ && model.get("NET_SPOT3_NAME").equals(spot.getBaseSpotName())
|
|
|
+ && model.get("OPERATION_PAGE").equals("web端-汽车衡一次数据维护")
|
|
|
+ && model.get("OPERATION_FUNCTION").equals("混卸委托结净")).count();
|
|
|
+ countLogActualCancelDoubleEntrust = carActualLog.stream().filter(model -> model.get("OPERATION_FUNCTION") != null
|
|
|
+ && model.get("NET_SPOT3_NO") != null
|
|
|
+ && model.get("NET_SPOT3_NAME") != null
|
|
|
+ && model.get("NET_SPOT3_NO").equals(spot.getBaseSpotNo())
|
|
|
+ && model.get("NET_SPOT3_NAME").equals(spot.getBaseSpotName())
|
|
|
+ && model.get("OPERATION_PAGE").equals("web端-汽车衡净重数据维护")
|
|
|
+ && model.get("OPERATION_FUNCTION").equals("取消双委托结净")).count();
|
|
|
+ countLogActualCancelMixedLoading = carActualLog.stream().filter(model -> model.get("OPERATION_FUNCTION") != null
|
|
|
+ && model.get("NET_SPOT3_NO") != null
|
|
|
+ && model.get("NET_SPOT3_NAME") != null
|
|
|
+ && model.get("NET_SPOT3_NO").equals(spot.getBaseSpotNo())
|
|
|
+ && model.get("NET_SPOT3_NAME").equals(spot.getBaseSpotName())
|
|
|
+ && model.get("OPERATION_PAGE").equals("web端-汽车衡净重数据维护")
|
|
|
+ && model.get("OPERATION_FUNCTION").equals("取消混装委托结净")).count();
|
|
|
+ countLogActualCancelMixedDischarge = carActualLog.stream().filter(model -> model.get("OPERATION_FUNCTION") != null
|
|
|
+ && model.get("NET_SPOT3_NO") != null
|
|
|
+ && model.get("NET_SPOT3_NAME") != null
|
|
|
+ && model.get("NET_SPOT3_NO").equals(spot.getBaseSpotNo())
|
|
|
+ && model.get("NET_SPOT3_NAME").equals(spot.getBaseSpotName())
|
|
|
+ && model.get("OPERATION_PAGE").equals("web端-汽车衡净重数据维护")
|
|
|
+ && model.get("OPERATION_FUNCTION").equals("取消混卸委托结净")).count();
|
|
|
countLogActualIsPreScale = carActualLog.stream().filter(model -> model.get("OPERATION_FUNCTION") != null
|
|
|
&& model.get("NET_SPOT3_NO") != null
|
|
|
&& model.get("NET_SPOT3_NAME") != null
|
|
|
&& model.get("NET_SPOT3_NO").equals(spot.getBaseSpotNo())
|
|
|
&& model.get("NET_SPOT3_NAME").equals(spot.getBaseSpotName())
|
|
|
+ && model.get("OPERATION_PAGE").equals("web端-汽车衡净重数据维护")
|
|
|
&& model.get("OPERATION_FUNCTION").equals("匹配委托")).count();
|
|
|
countLogActualIsNotPreScale = carActualLog.stream().filter(model -> model.get("OPERATION_FUNCTION") != null
|
|
|
&& model.get("NET_SPOT3_NO") != null
|
|
|
&& model.get("NET_SPOT3_NAME") != null
|
|
|
&& model.get("NET_SPOT3_NO").equals(spot.getBaseSpotNo())
|
|
|
&& model.get("NET_SPOT3_NAME").equals(spot.getBaseSpotName())
|
|
|
+ && model.get("OPERATION_PAGE").equals("web端-汽车衡净重数据维护")
|
|
|
&& model.get("OPERATION_FUNCTION").equals("撤销委托")).count();
|
|
|
countLogActualDecompose = carActualLog.stream().filter(model -> model.get("OPERATION_FUNCTION") != null
|
|
|
&& model.get("NET_SPOT3_NO") != null
|
|
|
&& model.get("NET_SPOT3_NAME") != null
|
|
|
&& model.get("NET_SPOT3_NO").equals(spot.getBaseSpotNo())
|
|
|
&& model.get("NET_SPOT3_NAME").equals(spot.getBaseSpotName())
|
|
|
+ && model.get("OPERATION_PAGE").equals("web端-汽车衡净重数据维护")
|
|
|
&& model.get("OPERATION_FUNCTION").equals("毛皮分解")).count();
|
|
|
countLogActualValid = carActualLog.stream().filter(model -> model.get("OPERATION_FUNCTION") != null
|
|
|
&& model.get("NET_SPOT3_NO") != null
|
|
|
&& model.get("NET_SPOT3_NAME") != null
|
|
|
&& model.get("NET_SPOT3_NO").equals(spot.getBaseSpotNo())
|
|
|
&& model.get("NET_SPOT3_NAME").equals(spot.getBaseSpotName())
|
|
|
+ && model.get("OPERATION_PAGE").equals("web端-汽车衡净重数据维护")
|
|
|
&& model.get("OPERATION_FUNCTION").equals("结净废除")).count();
|
|
|
}
|
|
|
|
|
|
@@ -2901,17 +2948,24 @@ public class MeterWorkCarActualServiceImpl extends BaseServiceImpl<MeterWorkCarA
|
|
|
obj.put("countCarHelpScanningCode", countCarHelpScanningCode);
|
|
|
obj.put("countCarHelpNormal", countCarHelpNormal);
|
|
|
obj.put("countCarHelpVehicleReset", countCarHelpVehicleReset);
|
|
|
- //根据时间查询所有秤点的一次匹配委托、撤销委托、车号修改、作废、启用
|
|
|
+ //根据时间查询所有秤点的一次匹配委托、撤销委托、车号修改、作废、启用、毛皮结净、双委托结净、混装结净、混卸结净
|
|
|
obj.put("countLogFirstIsPreScale", countLogFirstIsPreScale);
|
|
|
obj.put("countLogFirstIsNotPreScale", countLogFirstIsNotPreScale);
|
|
|
obj.put("countLogFirstUpdateCar", countLogFirstUpdateCar);
|
|
|
obj.put("countLogFirstValid", countLogFirstValid);
|
|
|
obj.put("countLogFirstRecover", countLogFirstRecover);
|
|
|
- //根据时间查询所有秤点的结净匹配委托、撤销委托、毛皮分解、结净废除
|
|
|
+ obj.put("countLogFirstClean", countLogFirstClean);
|
|
|
+ obj.put("countLogFirstDoubleEntrust", countLogFirstDoubleEntrust);
|
|
|
+ obj.put("countLogFirstMixedLoading", countLogFirstMixedLoading);
|
|
|
+ obj.put("countLogFirstMixedDischarge", countLogFirstMixedDischarge);
|
|
|
+ //根据时间查询所有秤点的结净匹配委托、撤销委托、毛皮分解、结净废除、取消双委托、取消混装、取消混卸
|
|
|
obj.put("countLogActualIsPreScale", countLogActualIsPreScale);
|
|
|
obj.put("countLogActualIsNotPreScale", countLogActualIsNotPreScale);
|
|
|
obj.put("countLogActualDecompose", countLogActualDecompose);
|
|
|
obj.put("countLogActualValid", countLogActualValid);
|
|
|
+ obj.put("countLogActualCancelDoubleEntrust", countLogActualCancelDoubleEntrust);
|
|
|
+ obj.put("countLogActualCancelMixedLoading", countLogActualCancelMixedLoading);
|
|
|
+ obj.put("countLogActualCancelMixedDischarge", countLogActualCancelMixedDischarge);
|
|
|
//根据时间查询所有秤点的不验证历史皮重、不验证异地计量、不验证零点告警、不验证时间间隔、不验证对射、不验证毛皮超差
|
|
|
obj.put("countMonitorLogHisTare", countMonitorLogHisTare);
|
|
|
obj.put("countMonitorLogGrossTare", countMonitorLogGrossTare);
|
|
|
@@ -2925,4 +2979,5 @@ public class MeterWorkCarActualServiceImpl extends BaseServiceImpl<MeterWorkCarA
|
|
|
}
|
|
|
return map;
|
|
|
}
|
|
|
+
|
|
|
}
|