|
|
@@ -2733,6 +2733,105 @@ public class OmsTransOrderServiceImpl {
|
|
|
* @param orderStatus 运单执行状态
|
|
|
* @return
|
|
|
*/
|
|
|
+ public int updateOrderStatus(BigDecimal transOrderId, BigDecimal sequence, String orderStatus, String userName,String poundNo) throws Exception {
|
|
|
+ try {
|
|
|
+ Map<String, Object> searchMap = new HashMap<>();
|
|
|
+ searchMap.put("transOrderId", transOrderId.toString());
|
|
|
+ searchMap.put("userName", userName);
|
|
|
+ Map<String, Object> transOrder = omsTransOrderMapper.getTransOrder(searchMap);
|
|
|
+ if (transOrder == null) {
|
|
|
+ throw new Exception("没有查询到唯一运单!");
|
|
|
+ }
|
|
|
+ searchMap.put("businessTypeName",transOrder.get("businessTypeName").toString());
|
|
|
+ searchMap.put("billingType",transOrder.get("billingType").toString());
|
|
|
+ BigDecimal deleted = DataChange.dataToBigDecimal(transOrder.get("deleted"));
|
|
|
+ BigDecimal endSeq = DataChange.dataToBigDecimal(transOrder.get("endSeq"));
|
|
|
+ BigDecimal currentLineSeq = DataChange.dataToBigDecimal(transOrder.get("currentLineSeq"));
|
|
|
+ if (sequence.compareTo(currentLineSeq.add(BigDecimal.ONE)) != 0) {
|
|
|
+ Map<String,Object> config = omsTransOrderMapper.getConfigByName("运输实绩顺序执行");
|
|
|
+ config = config == null ? new HashMap<>() : config;
|
|
|
+ if("否".equals(config.get("valueString"))){
|
|
|
+ log.info("配置如此,允许跳步骤执行");
|
|
|
+ }else{
|
|
|
+ throw new Exception("顺序错误,不允许跳步骤执行!");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ OmsTransOrder omsTransOrder = new OmsTransOrder();
|
|
|
+ omsTransOrder.setSerialNumber(transOrder.get("transOrderNumber").toString());
|
|
|
+ omsTransOrder.setTransOrderId(transOrderId);
|
|
|
+ omsTransOrder.setCurrentLineSeq(sequence);
|
|
|
+ omsTransOrder.setOrderStatus(orderStatus);
|
|
|
+ omsTransOrder.setAlternateFields7(poundNo);
|
|
|
+ //补录车辆档案
|
|
|
+ //try{
|
|
|
+ // buluCapacity(transOrder);
|
|
|
+ //}catch (Exception e){
|
|
|
+ // e.printStackTrace();
|
|
|
+ // log.error("补录车辆档案失败:"+e.getMessage());
|
|
|
+ //}
|
|
|
+ if("采购".equals(transOrder.get("businessScene"))){
|
|
|
+ //采购查询大宗补录卸货实绩
|
|
|
+ try{
|
|
|
+ findUnloadDetails(omsTransOrder,userName);
|
|
|
+ }catch (Exception e){
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if("销售".equals(transOrder.get("businessScene"))){
|
|
|
+ //销售查询大宗补录装货实绩
|
|
|
+ try{
|
|
|
+ findLoadDetails(omsTransOrder,userName);
|
|
|
+ }catch (Exception e){
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if("大宗销售订单".equals(transOrder.get("businessTypeName")) && (transOrder.get("materialName")+"").contains("复磅")){
|
|
|
+ //销售查询是否有同车号,业务类型为型钢销售订单、高线销售订单,未接单但有装货的运单,最近一条。迁移其他实绩
|
|
|
+ replaceResultSpecial(transOrder);
|
|
|
+ }
|
|
|
+ if (deleted.compareTo(new BigDecimal(4)) == 0 || deleted.compareTo(new BigDecimal(5)) == 0) {
|
|
|
+ //正在运行中的运单需要校验是否结束
|
|
|
+ if (endSeq.compareTo(BigDecimal.ZERO) > 0 && endSeq.compareTo(sequence) <= 0) {
|
|
|
+ //关闭运单
|
|
|
+ omsTransOrder.setDeleted(new BigDecimal(2));
|
|
|
+ omsTransOrder.setUpdateUsername(userName);
|
|
|
+ omsTransOrder.setUpdateTime(new Date());
|
|
|
+ //if (
|
|
|
+ // ("采购".equals(transOrder.get("businessScene")) && "自提".equals(transOrder.get("isSelfMention")))
|
|
|
+ // || ("销售".equals(transOrder.get("businessScene")) && "非自提".equals(transOrder.get("isSelfMention")))
|
|
|
+ // || ("生产".equals(transOrder.get("businessScene")))
|
|
|
+ //) {
|
|
|
+ // //调用结算接口生成详单
|
|
|
+ // //emsFeign.emsdetailsordersAdd(searchMap);
|
|
|
+ //}
|
|
|
+ }else{
|
|
|
+ //调整运单状态
|
|
|
+ omsTransOrder.setDeleted(new BigDecimal(5));
|
|
|
+ omsTransOrder.setUpdateUsername(userName);
|
|
|
+ omsTransOrder.setUpdateTime(new Date());
|
|
|
+ }
|
|
|
+ omsTransOrderMapper.updateOtherStatus(omsTransOrder.getTransOrderId(),omsTransOrder.getDeleted());
|
|
|
+ }else if(deleted.compareTo(new BigDecimal(9)) == 0) {
|
|
|
+ //待执行运单变为已执行
|
|
|
+ if("出厂".equals(orderStatus)){
|
|
|
+ omsTransOrder.setDeleted(new BigDecimal(2));
|
|
|
+ }else{
|
|
|
+ omsTransOrder.setDeleted(new BigDecimal(5));
|
|
|
+ }
|
|
|
+ omsTransOrder.setUpdateUsername(userName);
|
|
|
+ omsTransOrder.setUpdateTime(new Date());
|
|
|
+ }
|
|
|
+ entityDispose.disposeOmsTransOrder(omsTransOrder);
|
|
|
+ omsTransOrderMapper.updateByPrimaryKeySelective(omsTransOrder);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ log.error("更新运单状态失败:" + e.getMessage());
|
|
|
+ throw e;
|
|
|
+ }
|
|
|
+ return 0;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
public int updateOrderStatus(BigDecimal transOrderId, BigDecimal sequence, String orderStatus, String userName) throws Exception {
|
|
|
try {
|
|
|
Map<String, Object> searchMap = new HashMap<>();
|