|
@@ -1113,6 +1113,31 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 钢材批量派车或改车
|
|
|
+ * @param mapList
|
|
|
+ * @return
|
|
|
+ * @throws Exception
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public int batchUpdateCapacity(List<Map<String, Object>> mapList) throws Exception {
|
|
|
+ //先派车
|
|
|
+ for(Map<String, Object> item:mapList){
|
|
|
+ String capacityIds=""+item.get("capacityIds");
|
|
|
+ if(capacityIds.equals("0")){
|
|
|
+ //钢材派车
|
|
|
+ dispatchSteelOrderNotPush(item);
|
|
|
+ }else{
|
|
|
+ //钢材改车
|
|
|
+ updateSteelOrderNotPush(item);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //再上传金蝶
|
|
|
+ batchPushCarNumberToEas(mapList);
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public int continueSteelOrder(List<Map<String, Object>> mapList) throws Exception {
|
|
|
int result = 0;
|
|
@@ -3047,4 +3072,409 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
|
|
|
}
|
|
|
return 1;
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 批量推送
|
|
|
+ * @param mapList
|
|
|
+ * @return
|
|
|
+ * @throws Exception
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public int batchPushCarNumberToEas(List<Map<String, Object>> mapList) throws Exception {
|
|
|
+ Map<String,Object> input = joinFeign.findCarNumberByOrderList(mapList);
|
|
|
+ Map<String,Object> totalMap = new HashMap<>();
|
|
|
+ totalMap.putAll(easCapacityTestUtil.getTotalMap());
|
|
|
+ totalMap.put("input",input);
|
|
|
+ Map<String,Object> s = joinFeign.pushCarNumberToEas(totalMap);
|
|
|
+ System.out.println(totalMap);
|
|
|
+ String json = JSONUtils.toJSONString(totalMap);
|
|
|
+ System.out.println(json);
|
|
|
+ totalMap.put("output",s);
|
|
|
+ try {
|
|
|
+ newFileTool.newFile("pushCarNumberToEas:"+totalMap,"金蝶通讯报文");
|
|
|
+ }catch (Exception e){
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ if (s == null || s.size() == 0) {
|
|
|
+ throw new Exception("登录金蝶失败!请重试派车!");
|
|
|
+ }else{
|
|
|
+ try{
|
|
|
+ JSONObject result = new JSONObject(s);
|
|
|
+ //如果status不为1,抛出异常
|
|
|
+ if(!result.getJSONObject("res").getString("status").equals("1")){
|
|
|
+ throw new Exception("上传金蝶失败!请重试派车:"+result.getJSONObject("requestException").getString("message"));
|
|
|
+ }
|
|
|
+ }catch (Exception e){
|
|
|
+ e.printStackTrace();
|
|
|
+ //只抛出自定义异常
|
|
|
+ if(e.getMessage().contains("Exception")){
|
|
|
+ throw new Exception("上传金蝶失败!请重试派车!");
|
|
|
+ }else{
|
|
|
+ throw new Exception(e.getMessage());
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 钢材派车,不上传金蝶
|
|
|
+ * @param map
|
|
|
+ * @return
|
|
|
+ * @throws Exception
|
|
|
+ */
|
|
|
+ private int dispatchSteelOrderNotPush(Map<String, Object> map) throws Exception {
|
|
|
+ Integer isCheckGps = amsSaleOrderMapper.getDispachSwitch();
|
|
|
+ Integer saleStatus = amsSaleOrderMapper.findStatus(DataChange.dataToBigDecimal(map.get("saleOrderMaterialId")));
|
|
|
+ String selfMention = amsSaleOrderMapper.findSelfMention(DataChange.dataToBigDecimal(map.get("saleOrderMaterialId")));
|
|
|
+ //如果这个车序号下面有运单,则证明已经派了
|
|
|
+ Map<String,Object> orderMap = amsSaleOrderMapper.getSteelOrderMap(DataChange.dataToBigDecimal(map.get("saleOrderMaterialId")));
|
|
|
+ //判断该车序号对应的分录是否全部关闭
|
|
|
+ Integer flCount = amsSaleMaterialMapper.getAbleFlcount(DataChange.dataToBigDecimal(map.get("saleOrderMaterialId")));
|
|
|
+ if(flCount == 0) {
|
|
|
+ throw new Exception("该运单下所有分录被关闭,无法派车");
|
|
|
+ }
|
|
|
+ if (orderMap != null) {
|
|
|
+ throw new Exception("该订单已派发,无法重复派车");
|
|
|
+ }
|
|
|
+ if (saleStatus == 1) {
|
|
|
+ throw new Exception("订单未审核,无法派车!");
|
|
|
+ }
|
|
|
+ int result = 0;
|
|
|
+ //得到此次是否校验GPS
|
|
|
+ boolean onceCheck = true;
|
|
|
+ try{
|
|
|
+ onceCheck = (boolean) map.get("isCheckGPS");
|
|
|
+ }catch (Exception e){
|
|
|
+ //取值失败不处理,默认校验GPS
|
|
|
+ }
|
|
|
+ // 得到车牌号
|
|
|
+ String capacityNumber = (String) map.get("capacityNumber");
|
|
|
+ // 得到运力id
|
|
|
+ BigDecimal capacityId = amsSaleOrderMaterialMapper.getCapacityId(capacityNumber);
|
|
|
+ //校验该车是否存在手机号
|
|
|
+ String tel=omstruckOrderMapper.getTelByCapacityId(capacityId);//数据库的手机号
|
|
|
+ String driverTel = (String) map.get("driverTel");//填写的手机号
|
|
|
+ if(tel==null || "".equals(tel)){
|
|
|
+ throw new Exception("该车没有电话号码,无法派车!请去资源管理-运力维护该车的电话号码!");
|
|
|
+ }
|
|
|
+ //查询车牌号是否是黑名单
|
|
|
+ if(amsSaleOrderMapper.isBlackList(capacityNumber)>0){
|
|
|
+ throw new Exception("该车在黑名单中,无法派车!请联系销售公司!");
|
|
|
+ }
|
|
|
+ //非自提,单次校验且全局校验,且车不允许无GPS
|
|
|
+ int isGPS=amsSaleOrderMapper.isGPS(capacityNumber);
|
|
|
+ if((selfMention==null || selfMention.equals("否")) && onceCheck && (isCheckGps!=null && isCheckGps==0) && isGPS <= 0){
|
|
|
+ Map<String,Object> data=null;
|
|
|
+ try{
|
|
|
+ data= (Map<String,Object>)otmsFeign.getCurrentLocation(capacityNumber).getData();
|
|
|
+ }catch (Exception e){
|
|
|
+ throw new Exception("该车没有GPS定位信息,请联系销售公司物流部,申请是否可以派车。");
|
|
|
+ }
|
|
|
+ if(data==null || !"1001".equals(""+data.get("status"))){
|
|
|
+ throw new Exception("该车没有GPS定位信息,请联系销售公司物流部,申请是否可以派车。");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 得到车序号表主键
|
|
|
+ BigDecimal saleOrderMaterialId = DataChange.dataToBigDecimal(map.get("saleOrderMaterialId"));
|
|
|
+ // 得到承运商
|
|
|
+ BigDecimal carrierId = DataChange.dataToBigDecimal(map.get("carrierId"));
|
|
|
+ // 查询到车序号的单价
|
|
|
+ BigDecimal priceId = amsSaleOrderMapper.getOrderPrice(map);
|
|
|
+ // 得到详细地址id
|
|
|
+ BigDecimal placeId = amsSaleOrderMapper.getPlaceId(saleOrderMaterialId);
|
|
|
+ // 如果已经设置单价则不覆盖,详细地址匹配不到单价,则匹配省市县内最高的一条单价(只给非自提的进行匹配)
|
|
|
+ if (priceId == null && placeId != null && selfMention.equals("否")) {
|
|
|
+ priceId = amsSaleOrderMapper.getPriceIdByPlaceId(placeId);
|
|
|
+ }
|
|
|
+ // 运输线路id
|
|
|
+ BigDecimal lineId = DataChange.dataToBigDecimal(map.get("lineId"));
|
|
|
+ if(lineId==null || lineId.compareTo(BigDecimal.ZERO)==0){
|
|
|
+ throw new Exception("线路异常!");
|
|
|
+ }
|
|
|
+ BigDecimal isSteel = new BigDecimal(1);
|
|
|
+ if (capacityId == null) {
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+ List<Map<String, Object>> materialList = amsSaleOrderMaterialMapper.getMaterial(saleOrderMaterialId);
|
|
|
+ /*
|
|
|
+ 定向派单表
|
|
|
+ */
|
|
|
+ // 通过车序号主键确认定向派单是否已存在
|
|
|
+ BigDecimal dispatchId0 = amsDispatchSaleOrderMapper.isDispatchExist(saleOrderMaterialId);
|
|
|
+ if (dispatchId0 == null || dispatchId0.toString().length() == 0) {
|
|
|
+ AmsDispatchSaleOrder amsDispatchSaleOrder = new AmsDispatchSaleOrder();
|
|
|
+ // 主键
|
|
|
+ BigDecimal dispatchId = amsDispatchSaleOrderMapper.selectOtherId();
|
|
|
+ amsDispatchSaleOrder.setDispatchId(dispatchId);
|
|
|
+ // 车序号表id
|
|
|
+ amsDispatchSaleOrder.setSaleOrderMaterialId(saleOrderMaterialId);
|
|
|
+ // 承运商id
|
|
|
+ amsDispatchSaleOrder.setCarrierId(carrierId);
|
|
|
+ // 派单时间和成交时间
|
|
|
+ amsDispatchSaleOrder.setDispatchTime(new Date());
|
|
|
+ amsDispatchSaleOrder.setDispatchDealTime(new Date());
|
|
|
+ // 成交类型
|
|
|
+ amsDispatchSaleOrder.setDispatchType(new BigDecimal(2));
|
|
|
+ // 车序号状态
|
|
|
+ amsDispatchSaleOrder.setDispatchStatus(new BigDecimal(2));
|
|
|
+ result += amsDispatchSaleOrderMapper.insertSelective(amsDispatchSaleOrder);
|
|
|
+ }
|
|
|
+ // 如果已经匹配过承运商或者给某个承运商授权过,则派车时做修改承运商操作
|
|
|
+ else {
|
|
|
+ AmsDispatchSaleOrder amsDispatchSaleOrder = amsDispatchSaleOrderMapper.selectByPrimaryKey(dispatchId0);
|
|
|
+ amsDispatchSaleOrder.setCarrierId(carrierId);
|
|
|
+ result += amsDispatchSaleOrderMapper.updateByPrimaryKeySelective(amsDispatchSaleOrder);
|
|
|
+ }
|
|
|
+ /*
|
|
|
+ 运输订单
|
|
|
+ */
|
|
|
+ OmstruckOrder omstruckOrder = new OmstruckOrder();
|
|
|
+ Map<String, Object> map1 = new HashMap<>();
|
|
|
+ map1.put("orderType", new BigDecimal(2));
|
|
|
+ map1.put("orderPlanId", saleOrderMaterialId);
|
|
|
+ List<OmstruckOrder> omstruckOrders = omstruckOrderMapper.selectByParameters(map1);
|
|
|
+ if (omstruckOrders == null || omstruckOrders.size() == 0) {
|
|
|
+ // 运输订单主键
|
|
|
+ BigDecimal orderId = omstruckOrderMapper.selectMaxId();
|
|
|
+ omstruckOrder.setOrderId(orderId);
|
|
|
+ // 车序号主键
|
|
|
+ omstruckOrder.setOrderPlanId(saleOrderMaterialId);
|
|
|
+ //添加承运商ID 和 运价ID
|
|
|
+// Object priceId = map.get("priceId");
|
|
|
+ if (priceId != null) {
|
|
|
+ omstruckOrder.setPriceId(priceId);
|
|
|
+ } else {
|
|
|
+ omstruckOrder.setPriceId(new BigDecimal(0));
|
|
|
+ }
|
|
|
+ omstruckOrder.setCarrierId(carrierId);
|
|
|
+ // 运输订单号
|
|
|
+ omstruckOrder.setOrderNumber(DataChange.generateEightDigitsNumber("WYSDD", orderId.intValue()));
|
|
|
+ // 运力id
|
|
|
+ omstruckOrder.setCapacityId(capacityId);
|
|
|
+ // 承运商
|
|
|
+ omstruckOrder.setCarrierId(carrierId);
|
|
|
+ // 是否可作业
|
|
|
+ omstruckOrder.setCanWork(new BigDecimal(0));
|
|
|
+ // 下发时间
|
|
|
+ omstruckOrder.setOrderIssueTime(new Date());
|
|
|
+ // 运单状态
|
|
|
+ omstruckOrder.setOrderStatus(new BigDecimal(4));
|
|
|
+ // 司机电话
|
|
|
+ if(tel != null && !"".equals(tel)){
|
|
|
+ omstruckOrder.setDriverTel(tel);
|
|
|
+ }
|
|
|
+ BigDecimal status;
|
|
|
+ // 钢材
|
|
|
+ if (isSteel != null && isSteel.intValue() == 1) {
|
|
|
+ status = new BigDecimal(1);
|
|
|
+ }
|
|
|
+ // 非钢材(危化品,焦炭,副产品)
|
|
|
+ else {
|
|
|
+ status = new BigDecimal(2);
|
|
|
+ }
|
|
|
+ // 订单类型
|
|
|
+ omstruckOrder.setOrderType(status);
|
|
|
+ // 运输线路id
|
|
|
+ omstruckOrder.setLineId(lineId);
|
|
|
+ omstruckOrder.setInsertTime(new Date());
|
|
|
+ omstruckOrder.setInsertUsername("");
|
|
|
+ result += omstruckOrderMapper.insertSelective(omstruckOrder);
|
|
|
+ //插入日志
|
|
|
+ saleLogUtil.logOrder(orderId,"普通派单",map,SaleLogUtil.INSERT);
|
|
|
+ } else {
|
|
|
+ omstruckOrder = omstruckOrders.get(0);
|
|
|
+ }
|
|
|
+ for (Map<String, Object> materialMap : materialList) {
|
|
|
+ BigDecimal materialId = (BigDecimal) materialMap.get("materialId");
|
|
|
+ BigDecimal materialWeight = (BigDecimal) materialMap.get("materialWeight");
|
|
|
+ BigDecimal materialNumber = (BigDecimal) materialMap.get("materialNumber");
|
|
|
+ BigDecimal saleMaterialId = (BigDecimal) materialMap.get("saleMaterialId");
|
|
|
+ /*
|
|
|
+ 运输订单物资子表
|
|
|
+ */
|
|
|
+ OmstruckOrderMaterial omstruckOrderMaterial = new OmstruckOrderMaterial();
|
|
|
+ // 主键
|
|
|
+ BigDecimal orderMaterialId = omstruckOrderMaterialMapper.selectMaxId();
|
|
|
+ omstruckOrderMaterial.setOrderMaterialId(orderMaterialId);
|
|
|
+ // 运输订单id
|
|
|
+ omstruckOrderMaterial.setOrderId(omstruckOrder.getOrderId());
|
|
|
+ // 物资id
|
|
|
+ omstruckOrderMaterial.setMaterialId(materialId);
|
|
|
+ // 物资重量
|
|
|
+ omstruckOrderMaterial.setOrderMaterialWeight(materialWeight);
|
|
|
+ // 物资件数
|
|
|
+ omstruckOrderMaterial.setOrderMaterialNumber(materialNumber);
|
|
|
+ omstruckOrderMaterial.setSaleMaterialId(saleMaterialId);
|
|
|
+ // 新增运输订单子表
|
|
|
+ result += omstruckOrderMaterialMapper.insertSelective(omstruckOrderMaterial);
|
|
|
+ }
|
|
|
+ // 调用websocket
|
|
|
+ Map<String, Object> orderIdMap = new HashMap<>();
|
|
|
+ orderIdMap.put("orderId", omstruckOrder.getOrderId());
|
|
|
+ try {
|
|
|
+ amsSaleOrderMaterialService.pushMesToWebsocket(orderIdMap);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ // 生成运输执行总实绩
|
|
|
+ result += tmsTruckFeign.addTotalResult(orderIdMap);
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 钢材改车,不上传金蝶
|
|
|
+ * @param mapValue
|
|
|
+ * @return
|
|
|
+ * @throws Exception
|
|
|
+ */
|
|
|
+ private int updateSteelOrderNotPush(Map<String, Object> mapValue) throws Exception {
|
|
|
+ Object lineSequence = mapValue.get("lineSequence");
|
|
|
+ int result = 0;
|
|
|
+ if (mapValue.get("orderId") == null) {
|
|
|
+ throw new Exception("还未派车,不允许修改车牌号");
|
|
|
+ }
|
|
|
+ //判断该车序号对应的分录是否全部关闭
|
|
|
+ if(mapValue.get("saleOrderMaterialId") != null && DataChange.dataToBigDecimal(mapValue.get("capacityId")).compareTo(new BigDecimal(35128)) != 0) {
|
|
|
+ Integer flCount = amsSaleMaterialMapper.getAbleFlcount(DataChange.dataToBigDecimal(mapValue.get("saleOrderMaterialId")));
|
|
|
+ if(flCount == 0) {
|
|
|
+ throw new Exception("该运单下所有分录被关闭,无法派车");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //查询输入进来的车牌号是否与原有车牌号一致,如果一致则退出
|
|
|
+ BigDecimal oldCapacityId = omstruckOrderMapper.getOldCapacityId(DataChange.dataToBigDecimal(mapValue.get("orderId")));
|
|
|
+ if(oldCapacityId.compareTo(DataChange.dataToBigDecimal(mapValue.get("capacityId"))) == 0) {
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+ //校验该车是否存在手机号
|
|
|
+ String tel=omstruckOrderMapper.getTelByCapacityId(DataChange.dataToBigDecimal(mapValue.get("capacityId")));
|
|
|
+ String driverTel = (String) mapValue.get("driverTel");//填写的手机号
|
|
|
+ if(tel==null || "".equals(tel)){
|
|
|
+ throw new Exception("该车没有电话号码,无法派车!请去资源管理-运力维护该车的电话号码!");
|
|
|
+ }
|
|
|
+ Integer isCheckGps = amsSaleOrderMapper.getDispachSwitch();
|
|
|
+ String capacityNo = (String) mapValue.get("capacityNumber");
|
|
|
+ //得到此次是否校验GPS
|
|
|
+ boolean onceCheck = true;
|
|
|
+ //查询是否自提
|
|
|
+ String selfMention = "否";
|
|
|
+ try{
|
|
|
+ selfMention = amsSaleOrderMapper.findSelfMention(DataChange.dataToBigDecimal(mapValue.get("saleOrderMaterialId")));
|
|
|
+ onceCheck = (boolean) mapValue.get("isCheckGPS");
|
|
|
+ }catch (Exception e){
|
|
|
+ //取值失败不处理,取默认值
|
|
|
+ }
|
|
|
+ //查询车牌号是否是黑名单
|
|
|
+ if(amsSaleOrderMapper.isBlackList(capacityNo)>0){
|
|
|
+ throw new Exception("该车在黑名单中,无法派车!请联系销售公司!");
|
|
|
+ }
|
|
|
+ //非自提,单次校验且全局校验,且车辆不允许无GPS
|
|
|
+ int isGPS=amsSaleOrderMapper.isGPS(capacityNo);
|
|
|
+ if((selfMention==null || selfMention.equals("否")) && onceCheck && (isCheckGps!=null && isCheckGps==0) && isGPS <= 0){
|
|
|
+ Map<String,Object> data=null;
|
|
|
+ try{
|
|
|
+ data= (Map<String,Object>)otmsFeign.getCurrentLocation(capacityNo).getData();
|
|
|
+ }catch (Exception e){
|
|
|
+ throw new Exception("该车没有GPS定位信息,请联系销售公司物流部,申请是否可以派车。");
|
|
|
+ }
|
|
|
+ if(data==null || !"1001".equals(""+data.get("status"))){
|
|
|
+ throw new Exception("该车没有GPS定位信息,请联系销售公司物流部,申请是否可以派车。");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ saleLogUtil.logOrder(DataChange.dataToBigDecimal(mapValue.get("orderId")),"修改车牌号",mapValue,SaleLogUtil.UPDATE);
|
|
|
+ if (lineSequence == null || "0".equals(lineSequence.toString()) || "1".equals(lineSequence.toString()) || "2".equals(lineSequence.toString())) {
|
|
|
+ String capacityids="";
|
|
|
+ Integer capacityid1= (Integer) mapValue.get("capacityIds");
|
|
|
+ Integer capacityid2= (Integer) mapValue.get("capacityId");
|
|
|
+ if (capacityid1!=null && !("".equals(capacityid1))){
|
|
|
+ capacityids=capacityid1+","+capacityid2;
|
|
|
+ }
|
|
|
+ mapValue.put("capacityids",capacityids);
|
|
|
+ //这是修改车牌号
|
|
|
+ //取消是新车牌号,那么不删除排队信息,不删除实绩信息,将运单状态变为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 (oldOldCapacityId != null && oldCapacityId != null && 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("将取消改回来原来的车状态不变!");
|
|
|
+ if(tel != null && !"".equals(tel)){
|
|
|
+ omstruckOrder.setDriverTel(tel);
|
|
|
+ }
|
|
|
+ /*omstruckOrder.set*/
|
|
|
+ result += omstruckOrderMapper.updateByPrimaryKeySelective(omstruckOrder);
|
|
|
+ }else{
|
|
|
+ OmstruckOrder omstruckOrder = new OmstruckOrder();
|
|
|
+ omstruckOrder.setOrderId(DataChange.dataToBigDecimal(mapValue.get("orderId")));
|
|
|
+ omstruckOrder.setOrderStatus(new BigDecimal(5));
|
|
|
+ if(tel != null && !"".equals(tel)){
|
|
|
+ omstruckOrder.setDriverTel(tel);
|
|
|
+ }
|
|
|
+ omstruckOrder.setInsertUpdateRemark("将取消改回来原来的车状态不变!");
|
|
|
+ /*omstruckOrder.set*/
|
|
|
+ result += omstruckOrderMapper.updateByPrimaryKeySelective(omstruckOrder);
|
|
|
+ }
|
|
|
+
|
|
|
+ }else{
|
|
|
+ //将排队信息删掉
|
|
|
+ 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.setOrderNumber(DataChange.generateEightDigitsNumber("WYSDD", omstruckOrderMapper.selectMaxId().intValue()));
|
|
|
+ omstruckOrder.setOrderStatus(new BigDecimal(4));
|
|
|
+ omstruckOrder.setOrderLineSequence(new BigDecimal(0));
|
|
|
+ if(tel != null && !"".equals(tel)){
|
|
|
+ omstruckOrder.setDriverTel(tel);
|
|
|
+ }
|
|
|
+ /*omstruckOrder.set*/
|
|
|
+ result += omstruckOrderMapper.updateByPrimaryKeySelective(omstruckOrder);
|
|
|
+ //插入日志
|
|
|
+ result += omstruckOrderMapper.deleteEnResult(resultTotalId);
|
|
|
+ result += omstruckOrderMapper.deleteWeightResult(resultTotalId);
|
|
|
+ result += omstruckOrderMapper.deleteLoadResult(resultTotalId);
|
|
|
+ result += omstruckOrderMapper.deleteLeaveResult(resultTotalId);
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ OmstruckOrder omstruckOrder = new OmstruckOrder();
|
|
|
+ omstruckOrder.setOrderId(DataChange.dataToBigDecimal(mapValue.get("orderId")));
|
|
|
+ if(tel != null && !"".equals(tel)){
|
|
|
+ omstruckOrder.setDriverTel(tel);
|
|
|
+ }
|
|
|
+ omstruckOrder.setOrderStatus(new BigDecimal(7));
|
|
|
+ omstruckOrder.setInsertUpdateRemark("取消车牌号,保留实绩将状态变为7");
|
|
|
+ result += omstruckOrderMapper.updateByPrimaryKeySelective(omstruckOrder);
|
|
|
+ }
|
|
|
+ result += amsSaleOrderMapper.updateCapacityNumberInFactory(mapValue);
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+ }
|
|
|
}
|