|
@@ -996,6 +996,7 @@ public class AmsSaleOrderMaterialServiceImpl implements IAmsSaleOrderMaterialSer
|
|
|
|
|
|
|
|
|
@Override
|
|
|
+ @Transactional
|
|
|
public int mergeOrder(Map<String, Object> map) {
|
|
|
int i = 0 ;
|
|
|
List<Map<String,Object>> mapList = (List<Map<String,Object>>)map.get("mapList");
|
|
@@ -1032,6 +1033,7 @@ public class AmsSaleOrderMaterialServiceImpl implements IAmsSaleOrderMaterialSer
|
|
|
|
|
|
|
|
|
@Override
|
|
|
+ @Transactional
|
|
|
public int splitOrder(Map<String, Object> map) {
|
|
|
int i = 0;
|
|
|
List<Map<String,Object>> mapList = (List<Map<String,Object>>)map.get("mapList");
|
|
@@ -1040,11 +1042,49 @@ public class AmsSaleOrderMaterialServiceImpl implements IAmsSaleOrderMaterialSer
|
|
|
List<BigDecimal> dispatchIds = amsDispatchSaleOrderMapper.selectDispatchIdsBySale(toSplitSaleOrderMaterialID);
|
|
|
if(dispatchIds != null && dispatchIds.size() > 1) {
|
|
|
//删除所有已授权,
|
|
|
+ for(int j=1;j<dispatchIds.size() ; j++) {
|
|
|
+ if(dispatchIds.get(i) != null) {
|
|
|
+ amsDispatchSaleOrderMapper.deleteByPrimaryKey(dispatchIds.get(j));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //再查一下该车序号对应有几个运输订单,删除该车序号表下所有运单
|
|
|
+ List<BigDecimal> orderIds = omstruckOrderMapper.getOrderIdsBySale(toSplitSaleOrderMaterialID);
|
|
|
+ if(orderIds != null && orderIds.size() > 0) {
|
|
|
+ for (BigDecimal orderId :orderIds) {
|
|
|
+ if(orderId != null && orderId.intValue() != 0) {
|
|
|
+ omstruckOrderMapper.deleteByPrimaryKey(orderId);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //首先根据车序号主键id查询车序号实体类
|
|
|
+ AmsSaleOrderMaterial amsSaleOrderMaterial = amsSaleOrderMaterialMapper.selectByPrimaryKey(toSplitSaleOrderMaterialID);
|
|
|
+ //查询承运商授权信息
|
|
|
+ AmsDispatchSaleOrder amsDispatchSaleOrder = new AmsDispatchSaleOrder();
|
|
|
+ if(dispatchIds != null && dispatchIds.size() > 0 && dispatchIds.get(0) != null) {
|
|
|
+ amsDispatchSaleOrder = amsDispatchSaleOrderMapper.selectByPrimaryKey(dispatchIds.get(0));
|
|
|
}
|
|
|
//根据主键ID查询车序号子表主键id
|
|
|
List<BigDecimal> truckNoMaterialIds = amsSaleTrucknoMaterialMapper.getTruckNoMaterialIds(toSplitSaleOrderMaterialID);
|
|
|
- //首先根据车序号主键id查询车序号实体类
|
|
|
-
|
|
|
+ //如果车序号子表只有一条则不执行
|
|
|
+ if(truckNoMaterialIds != null && truckNoMaterialIds.size() > 1) {
|
|
|
+ //遍历车序号子表,第一个不变,后面的都变
|
|
|
+ for(int k=1;k < truckNoMaterialIds.size() ; k++) {
|
|
|
+ if(truckNoMaterialIds.get(k) != null){
|
|
|
+ BigDecimal saleOrderMaterialID = amsSaleOrderMaterialMapper.selectMaxId();
|
|
|
+ amsSaleOrderMaterial.setSaleOrderMaterialId(saleOrderMaterialID);
|
|
|
+ amsSaleOrderMaterial.setInsertUpdateRemark("拆分订单,拆分前车序号为" + toSplitSaleOrderMaterialID);
|
|
|
+ i += amsSaleOrderMaterialMapper.insertSelective(amsSaleOrderMaterial);
|
|
|
+ AmsSaleTrucknoMaterial amsSaleTrucknoMaterial = amsSaleTrucknoMaterialMapper.selectByPrimaryKey(truckNoMaterialIds.get(k));
|
|
|
+ amsSaleTrucknoMaterial.setSaleOrderMaterialId(saleOrderMaterialID);
|
|
|
+ i += amsSaleTrucknoMaterialMapper.updateByPrimaryKeySelective(amsSaleTrucknoMaterial);
|
|
|
+ BigDecimal dispatchId = amsDispatchSaleOrderMapper.selectOtherId();
|
|
|
+ amsDispatchSaleOrder.setDispatchId(dispatchId);
|
|
|
+ amsDispatchSaleOrder.setSaleOrderMaterialId(saleOrderMaterialID);
|
|
|
+ amsDispatchSaleOrderMapper.insertSelective(amsDispatchSaleOrder);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
return i;
|
|
|
}
|
|
|
}
|