|
@@ -8,6 +8,7 @@ import com.steerinfo.dil.model.*;
|
|
|
import com.steerinfo.dil.service.IAmsSaleOrderService;
|
|
|
import com.steerinfo.dil.util.DataChange;
|
|
|
import com.steerinfo.dil.util.MyException;
|
|
|
+import org.apache.ibatis.executor.loader.ResultLoader;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
@@ -112,6 +113,7 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
|
|
|
@Transactional
|
|
|
@Override
|
|
|
public int operationSaleOrder(Map<String, Object> mapVal) {
|
|
|
+ System.out.println(mapVal);
|
|
|
int result = 0;
|
|
|
// 审批状态
|
|
|
String orderStatus = (String) mapVal.get("orderStatus");
|
|
@@ -146,6 +148,12 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
|
|
|
result += amsSaleOrderMapper.closeOrderNotIn(amsSaleOrder.getSaleOrderId());
|
|
|
}
|
|
|
}
|
|
|
+ //如果是钢材订单
|
|
|
+ if(amsSaleOrder.getSaleType().intValue() == 1){
|
|
|
+ //获取该钢材销售订单下所有的运输订单ID,状态
|
|
|
+ result += amsSaleOrderMapper.closeOrderNotIn(amsSaleOrder.getSaleOrderId());
|
|
|
+
|
|
|
+ }
|
|
|
}
|
|
|
// 关闭单个分录订单
|
|
|
if (closeStatus.equals("-1") && wholeOrder.equals("0")) {
|
|
@@ -194,6 +202,8 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
|
|
|
amsSaleOrder.setSaleOrderStatus(new BigDecimal(4));
|
|
|
amsSaleOrder.setDeleted(new BigDecimal(0));
|
|
|
result += amsSaleOrderMapper.updateByPrimaryKeySelective(amsSaleOrder);
|
|
|
+ // 如果是财务审批后,将不可作业的运输订单改为已接收状态
|
|
|
+ result += amsSaleOrderMapper.updateTruckOrderStatus(amsSaleOrder.getSaleOrderId());
|
|
|
}
|
|
|
if (orderStatus.equals("2") && closeStatus.equals("1")){
|
|
|
// 得到账户余额
|
|
@@ -356,10 +366,6 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
|
|
|
amsSaleOrder.setUpdateTime(new Date());
|
|
|
amsSaleOrder.setShipperId(shipperId);
|
|
|
amsSaleOrder.setReceiveId(receiveId);
|
|
|
- // 如果是财务审批后,将不可作业的运输订单改为已接收状态
|
|
|
- if (orderStatus.equals("4")) {
|
|
|
- result += amsSaleOrderMapper.updateTruckOrderStatus(amsSaleOrder.getSaleOrderId());
|
|
|
- }
|
|
|
if (isSelfMention != null) {
|
|
|
if (isSelfMention.equals("CARRY")) {
|
|
|
amsSaleOrder.setSaleOrderIsselfMention("是");
|
|
@@ -371,7 +377,10 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
|
|
|
amsSaleOrder.setSaleHistoricalOrderAmount(new BigDecimal(saleHistoricalOrderAmount));
|
|
|
}
|
|
|
amsSaleOrder.setSaleOrderStatus(new BigDecimal(orderStatus));
|
|
|
+ //获取销售订单下的分录id
|
|
|
+ List<String> wuliuEasIds = amsSaleMaterialMapper.getMaterialEasList(saleNumber);
|
|
|
//查询该销售订单下的所有物资分录
|
|
|
+ List<String> EasIds = new ArrayList<>();
|
|
|
for (Map<String, Object> materialMap : mapList) {
|
|
|
// 得到中间表主键id
|
|
|
String saleMaterialId = (String) materialMap.get("saleMaterialId");
|
|
@@ -379,6 +388,7 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
|
|
|
String easPrimaryId = (String) materialMap.get("easPrimaryId");
|
|
|
Map<String,Object> resultMap = new HashMap<>();
|
|
|
resultMap.put("easPrimaryId",easPrimaryId);
|
|
|
+ EasIds.add(easPrimaryId);
|
|
|
AmsSaleMaterial amsSaleMaterial;
|
|
|
// 得到物资重量
|
|
|
String materialWeight = (String) materialMap.get("materialNumber");
|
|
@@ -433,6 +443,33 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
|
|
|
amsSaleMaterial.setInsertTime(new Date());
|
|
|
result += amsSaleMaterialMapper.updateByPrimaryKeySelective(amsSaleMaterial);
|
|
|
}
|
|
|
+ if(EasIds.size() < wuliuEasIds.size()){
|
|
|
+ //只有当金蝶传过来的分录小于物流这边的金蝶分录时,才进行此处判断
|
|
|
+ //遍历物流存在的数组,如果wuliu有的金蝶没有,那就将物流没有的给隐藏调
|
|
|
+ //将物流这边的金蝶分录集合变成set
|
|
|
+ Set<String> set = new HashSet<String>(wuliuEasIds);
|
|
|
+ //遍历金蝶分录数组
|
|
|
+ for(String easId:EasIds){
|
|
|
+ // 若是集合里有相同的就删掉,若是没有就将值添加到集合
|
|
|
+ if (set.contains(easId))
|
|
|
+ {
|
|
|
+ set.remove(easId);
|
|
|
+ } else
|
|
|
+ {
|
|
|
+ set.add(easId);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ List<String> chaEasIds = new ArrayList<>(set);
|
|
|
+ //遍历数组将这里面的分录删掉
|
|
|
+ for (String easId:chaEasIds){
|
|
|
+ //物理删除该分录
|
|
|
+ BigDecimal stId = amsSaleMaterialMapper.getSaleMaterialIdByEasId(easId);
|
|
|
+ result += amsSaleMaterialMapper.deleteSaleMaterialByEasId(easId);
|
|
|
+ result += amsSaleMaterialMapper.deleteAstmBystId(stId);
|
|
|
+
|
|
|
+ }
|
|
|
+ System.out.println(chaEasIds);
|
|
|
+ }
|
|
|
result += amsSaleOrderMapper.updateByPrimaryKeySelective(amsSaleOrder);
|
|
|
}
|
|
|
}
|