|  | @@ -1,10 +1,10 @@
 | 
	
		
			
				|  |  |  package service
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  import (
 | 
	
		
			
				|  |  | -	"encoding/json"
 | 
	
		
			
				|  |  |  	"fmt"
 | 
	
		
			
				|  |  |  	"strings"
 | 
	
		
			
				|  |  |  	"sync"
 | 
	
		
			
				|  |  | +	"time"
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	log "github.com/sirupsen/logrus"
 | 
	
		
			
				|  |  |  	"kpt.xdmy/apiserver/model"
 | 
	
	
		
			
				|  | @@ -14,7 +14,7 @@ import (
 | 
	
		
			
				|  |  |  const (
 | 
	
		
			
				|  |  |  	ContractToAspUrl    = "http://192.168.61.117/SAPQ0/SRM/MM018/PurchaseInfo"
 | 
	
		
			
				|  |  |  	ContractToAspDestID = "EQMAN"
 | 
	
		
			
				|  |  | -	ContractToAspBussTp = "MM007"
 | 
	
		
			
				|  |  | +	ContractToAspBussTp = "MM018"
 | 
	
		
			
				|  |  |  	ContractLimit       = 10
 | 
	
		
			
				|  |  |  )
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -28,6 +28,8 @@ var (
 | 
	
		
			
				|  |  |  		},
 | 
	
		
			
				|  |  |  		DATA: &http.ContractDataToASP{},
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  | +	loc, _     = time.LoadLocation("Local")
 | 
	
		
			
				|  |  | +	timeLayout = "2006-01-02 15:04:05"
 | 
	
		
			
				|  |  |  )
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  type ContractInfo struct {
 | 
	
	
		
			
				|  | @@ -139,31 +141,32 @@ func PushContractDataToSAP(bigContract *model.BigContract, contractInfo *Contrac
 | 
	
		
			
				|  |  |  		if contract.Enable == 0 {
 | 
	
		
			
				|  |  |  			LOEKZ = "X"
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  | +		startTime, _ := time.ParseInLocation(timeLayout, bigContract.StartTime, loc)
 | 
	
		
			
				|  |  | +		stopTime, _ := time.ParseInLocation(timeLayout, bigContract.StopTime, loc)
 | 
	
		
			
				|  |  |  		contractDataToASP := &http.ContractDataToASP{
 | 
	
		
			
				|  |  |  			MATNR: contract.PartCode,
 | 
	
		
			
				|  |  |  			LIFNR: contractInfo.Provider.SapCode,
 | 
	
		
			
				|  |  |  			EKORG: contractInfo.Pasture.ParchaseOrganization,
 | 
	
		
			
				|  |  |  			WERKS: contractInfo.Pasture.FactoryCode,
 | 
	
		
			
				|  |  | -			NETPR: "",
 | 
	
		
			
				|  |  |  			WAERS: "CNY",
 | 
	
		
			
				|  |  | -			BPRME: "",
 | 
	
		
			
				|  |  | -			PEINH: "",
 | 
	
		
			
				|  |  | +			PEINH: fmt.Sprintf("%f", contract.Price),
 | 
	
		
			
				|  |  |  			MWSKZ: "J0",
 | 
	
		
			
				|  |  |  			EKGRP: contractInfo.Pasture.PurchasingGroup,
 | 
	
		
			
				|  |  | -			DATAB: bigContract.StartTime,
 | 
	
		
			
				|  |  | -			DATBI: bigContract.StopTime,
 | 
	
		
			
				|  |  | +			DATAB: startTime.Format("20060102"),
 | 
	
		
			
				|  |  | +			DATBI: stopTime.Format("20060102"),
 | 
	
		
			
				|  |  |  			LOEKZ: LOEKZ,
 | 
	
		
			
				|  |  | +			ESOKZ: fmt.Sprintf("%d", contract.IsZeroStock),
 | 
	
		
			
				|  |  | +			MEINS: contract.Unit,
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  		sapContractReq.DATA = contractDataToASP
 | 
	
		
			
				|  |  | -		bodyByte, _ := json.Marshal(sapContractReq.DATA)
 | 
	
		
			
				|  |  | -		rp := &http.OrderResp{}
 | 
	
		
			
				|  |  | -		if err := s.SyncSap(sapContractReq, rp, bodyByte); err != nil {
 | 
	
		
			
				|  |  | -			log.Errorf("AutoContractToASP SyncSap Err:%v", err)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +		rp := &http.SapContractResp{}
 | 
	
		
			
				|  |  | +		if err := s.SyncSap(sapContractReq, rp, sapContractReq); err != nil {
 | 
	
		
			
				|  |  | +			log.Errorf("AutoContractToASP SyncSap Err:%v contract:%v", err, contract)
 | 
	
		
			
				|  |  | +			continue
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  | -		log.Infof("AutoContractToASP SyncSap Success:%v", rp)
 | 
	
		
			
				|  |  | -		if rp.Data.Status != "S" {
 | 
	
		
			
				|  |  | -			log.Errorf("AutoContractToASP SyncSap Error Data:%v", rp.Data)
 | 
	
		
			
				|  |  | +		if rp.Dest.Status != "S" {
 | 
	
		
			
				|  |  | +			log.Errorf("AutoContractToASP SyncSap Error:%v,contract:%v", rp, contract)
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  }
 |