|
|
@ -76,7 +76,7 @@ func ParseOpenPrintMsg(pe *service.BL_PrintEngine) (err error) { |
|
|
|
|
|
|
|
case common.MSG_TYPE_PACK: |
|
|
|
// 获取包装单,基于打印模板生成打印数据
|
|
|
|
packordtab = db.Jit_packorder{Finr:db.G_FINR,Packorderid: ordmsgtablst[i].Msgobjid} |
|
|
|
packordtab = db.Jit_packorder{Finr: db.G_FINR, Packorderid: ordmsgtablst[i].Msgobjid} |
|
|
|
if packordtab, err = packordtab.SelectOne(); err != nil { |
|
|
|
glog.InfoExtln("Msg解析", "解析打印消息失败:", err) |
|
|
|
return |
|
|
@ -184,13 +184,14 @@ func ParseShipOrderMsg() (err error) { |
|
|
|
packordtab db.Jit_packorder |
|
|
|
vdatalst []db.VCustorderPackorder |
|
|
|
pfdict map[string]ASN_ARD_PF |
|
|
|
asnsnr string |
|
|
|
asnardpf ASN_ARD_PF |
|
|
|
i, j, k, m int |
|
|
|
ok,found bool |
|
|
|
sgtab db.Me_supplygroup |
|
|
|
sglst []db.Me_supplygroup |
|
|
|
sgdict map[string]db.Me_supplygroup |
|
|
|
pfid string |
|
|
|
ok, found bool |
|
|
|
sgtab db.Me_supplygroup |
|
|
|
sglst []db.Me_supplygroup |
|
|
|
sgdict map[string]db.Me_supplygroup |
|
|
|
pfid string |
|
|
|
) |
|
|
|
|
|
|
|
// 查询发运单消息
|
|
|
@ -225,7 +226,7 @@ func ParseShipOrderMsg() (err error) { |
|
|
|
glog.InfoExtln("BBAASN", "获取项目供应组失败: ", err) |
|
|
|
return |
|
|
|
} |
|
|
|
sgdict = make( map[string]db.Me_supplygroup ) |
|
|
|
sgdict = make(map[string]db.Me_supplygroup) |
|
|
|
for j = 0; j < len(sglst); j++ { |
|
|
|
sgdict[sglst[j].Supplygroupid] = sglst[j] |
|
|
|
} |
|
|
@ -282,10 +283,16 @@ func ParseShipOrderMsg() (err error) { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if shipordtab.Shiptype != "REO" { |
|
|
|
// 获取ASN流水号
|
|
|
|
if asnsnr, err = service.SN_GetNextSnr(projtab.Asn_snr); err != nil { |
|
|
|
glog.InfoExtln("BBAASN", "解析发运单消息失败: ", err) |
|
|
|
return |
|
|
|
} |
|
|
|
} |
|
|
|
// 按零件族生成ASN文件
|
|
|
|
for _, asnardpf = range pfdict { |
|
|
|
if err = GenAsnFileForShipOrderByPartFamily(&asnardpf, shipordtab); err != nil { |
|
|
|
if err = GenAsnFileForShipOrderByPartFamily(&asnardpf, shipordtab, asnsnr); err != nil { |
|
|
|
glog.InfoExtln("BBAASN", "解析发运单消息失败: ", err) |
|
|
|
return |
|
|
|
} |
|
|
@ -302,7 +309,7 @@ func ParseShipOrderMsg() (err error) { |
|
|
|
} |
|
|
|
|
|
|
|
// 将发运单基于零件族归集的发运项生成对应的ASN文件,并放到项目指定的文件夹中
|
|
|
|
func GenAsnFileForShipOrderByPartFamily(asnardpf *ASN_ARD_PF, shipordtab db.Jit_shiporder) (err error) { |
|
|
|
func GenAsnFileForShipOrderByPartFamily(asnardpf *ASN_ARD_PF, shipordtab db.Jit_shiporder, asnsnr string) (err error) { |
|
|
|
var ( |
|
|
|
stdeftab db.Stdeftab |
|
|
|
stdeftablst []db.Stdeftab |
|
|
@ -320,9 +327,9 @@ func GenAsnFileForShipOrderByPartFamily(asnardpf *ASN_ARD_PF, shipordtab db.Jit_ |
|
|
|
bbaasntmptab db.Jit_bbaasntemplate |
|
|
|
session *xorm.Session |
|
|
|
bl_asnmsg service.BL_Ordmsg |
|
|
|
kvmap,binmap map[string]string |
|
|
|
key,asnsnr string |
|
|
|
ok bool |
|
|
|
kvmap, binmap map[string]string |
|
|
|
key string |
|
|
|
ok bool |
|
|
|
) |
|
|
|
|
|
|
|
// 查询项目
|
|
|
@ -357,11 +364,6 @@ func GenAsnFileForShipOrderByPartFamily(asnardpf *ASN_ARD_PF, shipordtab db.Jit_ |
|
|
|
glog.InfoExtln("BBAASN", "解析Reorder发运单消息失败: ", err) |
|
|
|
return |
|
|
|
} |
|
|
|
}else{ |
|
|
|
if asnsnr, err = service.SN_GetNextSnr(projtab.Asn_snr); err != nil { |
|
|
|
glog.InfoExtln("BBAASN", "解析发运单消息失败: ", err) |
|
|
|
return |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// 组合流水号
|
|
|
@ -404,19 +406,19 @@ func GenAsnFileForShipOrderByPartFamily(asnardpf *ASN_ARD_PF, shipordtab db.Jit_ |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
bbaasntab.Bol = bolnr |
|
|
|
bbaasntab.Shipto = bbaasntmptab.Shipto |
|
|
|
bbaasntab.Bol = bolnr |
|
|
|
bbaasntab.Shipto = bbaasntmptab.Shipto |
|
|
|
|
|
|
|
// 生成ARD数据行
|
|
|
|
kvmap = make( map[string]string ) |
|
|
|
binmap= make( map[string]string ) |
|
|
|
kvmap = make(map[string]string) |
|
|
|
binmap = make(map[string]string) |
|
|
|
for i, vdata = range asnardpf.DataList { |
|
|
|
if common.ValueIsEmpty(strings.TrimSpace(vdata.Pln_custorder.Oemordernr)){ |
|
|
|
fmt.Printf("vdata.Pln_custorder.Oemordernr:%v",vdata.Pln_custorder.Oemordernr) |
|
|
|
if common.ValueIsEmpty(strings.TrimSpace(vdata.Pln_custorder.Oemordernr)) { |
|
|
|
fmt.Printf("vdata.Pln_custorder.Oemordernr:%v", vdata.Pln_custorder.Oemordernr) |
|
|
|
continue |
|
|
|
} |
|
|
|
key = strconv.Itoa(vdata.Pln_custorder.Calloffnr) + strings.TrimSpace(vdata.Pln_custorder.Oemordernr) + strings.TrimSpace(asnardpf.Pfid) |
|
|
|
if strings.TrimSpace(vdata.Pln_workorder.Partfamilyid) == strings.TrimSpace(asnardpf.Pfid){ |
|
|
|
if strings.TrimSpace(vdata.Pln_workorder.Partfamilyid) == strings.TrimSpace(asnardpf.Pfid) { |
|
|
|
if _, ok = kvmap[key]; !ok { |
|
|
|
kvmap[key] = key |
|
|
|
ard = ASN_ARD{} |
|
|
@ -431,20 +433,20 @@ func GenAsnFileForShipOrderByPartFamily(asnardpf *ASN_ARD_PF, shipordtab db.Jit_ |
|
|
|
// ASN数据行
|
|
|
|
bbaasnitemtab = db.Jit_bbaasn_itemlst{Finr: db.G_FINR, Asn: ae.mid.Field1, Pos: i + 1} |
|
|
|
if shipordtab.Shiptype == "REO" { |
|
|
|
bbaasnitemtab.Calloffnr,_ = strconv.Atoi(vdata.Pln_workorder.Orderinfo) |
|
|
|
}else{ |
|
|
|
bbaasnitemtab.Calloffnr, _ = strconv.Atoi(vdata.Pln_workorder.Orderinfo) |
|
|
|
} else { |
|
|
|
bbaasnitemtab.Calloffnr = vdata.Pln_custorder.Calloffnr |
|
|
|
} |
|
|
|
bbaasnitemtab.Modelcode = vdata.Pln_custorder.Projnr |
|
|
|
bbaasnitemtab.Oemordernr = vdata.Pln_custorder.Oemordernr |
|
|
|
bbaasnitemtab.Partfamilyid = asnardpf.Pfid |
|
|
|
bbaasnitemtab.Modelcode = vdata.Pln_custorder.Projnr |
|
|
|
bbaasnitemtab.Oemordernr = vdata.Pln_custorder.Oemordernr |
|
|
|
bbaasnitemtab.Partfamilyid = asnardpf.Pfid |
|
|
|
bbaasnitemtab.Supplygroupid = vdata.Pln_workorder.Supplygroupid |
|
|
|
bbaasnitemtab.Packorderid = vdata.Jit_packorder.Packorderid |
|
|
|
bbaasnitemtab.Swet = vdata.Pln_custorder.Calloffswet |
|
|
|
bbaasnitemtab.Binnr = vdata.Jit_packorder.Boxsn |
|
|
|
bbaasnitemtab.Lastuser = "bbaasn_service" |
|
|
|
bbaasnitemtab.Lastmodif = common.Date(time.Now().Unix(), "YYYYMMDDHHmmss") |
|
|
|
bbaasnitemtab.Credatuz = common.Date(time.Now().Unix(), "YYYYMMDDHHmmss") |
|
|
|
bbaasnitemtab.Packorderid = vdata.Jit_packorder.Packorderid |
|
|
|
bbaasnitemtab.Swet = vdata.Pln_custorder.Calloffswet |
|
|
|
bbaasnitemtab.Binnr = vdata.Jit_packorder.Boxsn |
|
|
|
bbaasnitemtab.Lastuser = "bbaasn_service" |
|
|
|
bbaasnitemtab.Lastmodif = common.Date(time.Now().Unix(), "YYYYMMDDHHmmss") |
|
|
|
bbaasnitemtab.Credatuz = common.Date(time.Now().Unix(), "YYYYMMDDHHmmss") |
|
|
|
|
|
|
|
bbaasntab.Itemlst = append(bbaasntab.Itemlst, bbaasnitemtab) |
|
|
|
// 统计包装数
|
|
|
@ -454,10 +456,10 @@ func GenAsnFileForShipOrderByPartFamily(asnardpf *ASN_ARD_PF, shipordtab db.Jit_ |
|
|
|
ae.unt.Read(len(ae.ardlst)+5, asnnr) |
|
|
|
ae.unz.Read(asnnr) |
|
|
|
|
|
|
|
bbaasntab.Totalbinqty = len(binmap) |
|
|
|
bbaasntab.Lastuser = "bbaasn_service" |
|
|
|
bbaasntab.Lastmodif = common.Date(time.Now().Unix(), "YYYYMMDDHHmmss") |
|
|
|
bbaasntab.Credatuz = common.Date(time.Now().Unix(), "YYYYMMDDHHmmss") |
|
|
|
bbaasntab.Totalbinqty = len(binmap) |
|
|
|
bbaasntab.Lastuser = "bbaasn_service" |
|
|
|
bbaasntab.Lastmodif = common.Date(time.Now().Unix(), "YYYYMMDDHHmmss") |
|
|
|
bbaasntab.Credatuz = common.Date(time.Now().Unix(), "YYYYMMDDHHmmss") |
|
|
|
|
|
|
|
// 保存ASN记录
|
|
|
|
if err = bbaasntab.Insert(session); err != nil { |
|
|
|