@ -283,146 +283,149 @@ public class OaSrmVendorCheckAction extends BaseBean implements Action, EsbServe
logger_a864d799 . error ( String . valueOf ( requestid + "申请转正供应商为线下供应商" ) ) ;
}
DetailTable [ ] detailtable = requestinfo . getDetailTableInfo ( ) . getDetailTable ( ) ;
// 指定明细表
DetailTable dtq = null ;
if ( dtq ! = null ) {
dtq = detailtable [ 1 ] ;
}
// 当前明细表的所有数据,按行存储
Row [ ] sq = null ;
if ( dtq ! = null ) { sq = dtq . getRow ( ) ; }
if ( sq ! = null & & sq . length > 0 & & "S" . equals ( state ) ) {
Set < String > set = new HashSet < String > ( ) ;
Set < String > wlhset = new HashSet < String > ( ) ;
List < String > list = new ArrayList < String > ( ) ;
StringBuilder sb = new StringBuilder ( ) ;
int dtcount = 0 ;
String sql = "select distinct wlh from e10_core_business.dbo." + tablename + " a,e10_core_business.dbo." + tablename + "_dt2 b where a.form_data_id=b.form_data_id and a.id=" + requestid ;
logger_a864d799 . error ( "sql-->" + sql ) ;
String poolname_4c = CONN_TYPE . workflow . getType ( ) ;
// TODO E10执行sql方法第二参数必须指定源, 默认使用流程源, 单体客户无需修改, 微服务/组合客户需根据查询表所属服务切换源,或使用外部数据源
boolean b = rs . executeSql ( sql , poolname_4c ) ;
logger_a864d799 . error ( String . valueOf ( "b--" + b ) ) ;
dtcount = rs . getCounts ( ) ;
logger_a864d799 . error ( String . valueOf ( requestid + " dt2count:" + dtcount ) ) ;
if ( sq ! = null & & sq . length < = 300 ) {
SRM_OA_VENMATEXT_RESULT param = new SRM_OA_VENMATEXT_RESULT ( ) ;
VenMatExtResultIn paramInfo = new VenMatExtResultIn ( ) ;
VenMatExtResultItemIn [ ] item = new VenMatExtResultItemIn [ dtcount ] ;
String wlhs = "" ;
String flagwl = "" ;
int itemnum = 0 ;
for ( int j = 0 ; j < sq . length ; j + + ) {
// 指定行
Row rq = sq [ j ] ;
Cell [ ] cq = rq . getCell ( ) ;
VenMatExtResultItemIn itemIn = new VenMatExtResultItemIn ( ) ;
String isexists = "0" ;
logger_a864d799 . error ( String . valueOf ( requestid + " wlhs:" + wlhs ) ) ;
for ( int k = 0 ; k < cq . length ; k + + ) {
// 指定列
Cell cq1 = cq [ k ] ;
// 明细字段名称
String nameq = cq1 . getName ( ) . toLowerCase ( ) ;
// 明细字段的值
String valueq = Util . null2String ( cq1 . getValue ( ) ) ;
if ( "cgzzbm" . equals ( nameq ) ) {
set . add ( valueq ) ;
}
if ( "wlh" . equals ( nameq ) ) {
if ( ( "," + wlhs + "," ) . indexOf ( "," + valueq + "," ) > = 0 ) {
logger_a864d799 . error ( String . valueOf ( requestid + " 物料号重复:" + valueq ) ) ;
isexists = "1" ;
continue ;
if ( detailtable . length > 1 ) {
// 指定明细表
DetailTable dtq = null ;
if ( dtq ! = null ) {
dtq = detailtable [ 1 ] ;
}
// 当前明细表的所有数据,按行存储
Row [ ] sq = null ;
if ( dtq ! = null ) { sq = dtq . getRow ( ) ; }
if ( sq ! = null & & sq . length > 0 & & "S" . equals ( state ) ) {
Set < String > set = new HashSet < String > ( ) ;
Set < String > wlhset = new HashSet < String > ( ) ;
List < String > list = new ArrayList < String > ( ) ;
StringBuilder sb = new StringBuilder ( ) ;
int dtcount = 0 ;
String sql = "select distinct wlh from e10_core_business.dbo." + tablename + " a,e10_core_business.dbo." + tablename + "_dt2 b where a.form_data_id=b.form_data_id and a.id=" + requestid ;
logger_a864d799 . error ( "sql-->" + sql ) ;
String poolname_4c = CONN_TYPE . workflow . getType ( ) ;
// TODO E10执行sql方法第二参数必须指定源, 默认使用流程源, 单体客户无需修改, 微服务/组合客户需根据查询表所属服务切换源,或使用外部数据源
boolean b = rs . executeSql ( sql , poolname_4c ) ;
logger_a864d799 . error ( String . valueOf ( "b--" + b ) ) ;
dtcount = rs . getCounts ( ) ;
logger_a864d799 . error ( String . valueOf ( requestid + " dt2count:" + dtcount ) ) ;
if ( sq ! = null & & sq . length < = 300 ) {
SRM_OA_VENMATEXT_RESULT param = new SRM_OA_VENMATEXT_RESULT ( ) ;
VenMatExtResultIn paramInfo = new VenMatExtResultIn ( ) ;
VenMatExtResultItemIn [ ] item = new VenMatExtResultItemIn [ dtcount ] ;
String wlhs = "" ;
String flagwl = "" ;
int itemnum = 0 ;
for ( int j = 0 ; j < sq . length ; j + + ) {
// 指定行
Row rq = sq [ j ] ;
Cell [ ] cq = rq . getCell ( ) ;
VenMatExtResultItemIn itemIn = new VenMatExtResultItemIn ( ) ;
String isexists = "0" ;
logger_a864d799 . error ( String . valueOf ( requestid + " wlhs:" + wlhs ) ) ;
for ( int k = 0 ; k < cq . length ; k + + ) {
// 指定列
Cell cq1 = cq [ k ] ;
// 明细字段名称
String nameq = cq1 . getName ( ) . toLowerCase ( ) ;
// 明细字段的值
String valueq = Util . null2String ( cq1 . getValue ( ) ) ;
if ( "cgzzbm" . equals ( nameq ) ) {
set . add ( valueq ) ;
}
if ( "wlh" . equals ( nameq ) ) {
if ( ( "," + wlhs + "," ) . indexOf ( "," + valueq + "," ) > = 0 ) {
logger_a864d799 . error ( String . valueOf ( requestid + " 物料号重复:" + valueq ) ) ;
isexists = "1" ;
continue ;
}
itemIn . setMaterialCode ( valueq ) ;
list . add ( valueq ) ;
wlhs = wlhs + flagwl + valueq ;
flagwl = "," ;
}
if ( "wlms" . equals ( nameq ) ) {
String wlms = StringEscapeUtils . unescapeHtml ( valueq . trim ( ) ) ;
logger_a864d799 . error ( String . valueOf ( "wlms:" + wlms ) ) ;
// String wlms_half = full2HalfWidth(wlms);
// writeLog("wlms_half:"+wlms_half);
itemIn . setMaterialName ( wlms ) ;
}
if ( "xjxzb" . equals ( nameq ) ) {
itemIn . setWeight ( valueq ) ;
}
if ( "clfl" . equals ( nameq ) ) {
// String clfl = BillFieldUtil.getselectName(valueq,"59436");//测试53290 正式59436
// 测试53290 正式59436
String clfl = tu . getSelectName ( tablename , "clfl" , valueq ) ;
itemIn . setMatLevel ( clfl ) ;
}
itemIn . setMaterialCode ( valueq ) ;
list . add ( valueq ) ;
wlhs = wlhs + flagwl + valueq ;
flagwl = "," ;
}
if ( "wlms" . equals ( nameq ) ) {
String wlms = StringEscapeUtils . unescapeHtml ( valueq . trim ( ) ) ;
logger_a864d799 . error ( String . valueOf ( "wlms:" + wlms ) ) ;
// String wlms_half = full2HalfWidth(wlms);
// writeLog("wlms_half:"+wlms_half);
itemIn . setMaterialName ( wlms ) ;
}
if ( "xjxzb" . equals ( nameq ) ) {
itemIn . setWeight ( valueq ) ;
}
if ( "clfl" . equals ( nameq ) ) {
// String clfl = BillFieldUtil.getselectName(valueq,"59436");//测试53290 正式59436
// 测试53290 正式59436
String clfl = tu . getSelectName ( tablename , "clfl" , valueq ) ;
itemIn . setMatLevel ( clfl ) ;
if ( "1" . equals ( isexists ) ) {
logger_a864d799 . error ( String . valueOf ( requestid + " 物料号重复:跳过" ) ) ;
continue ;
}
item [ itemnum ] = itemIn ;
itemnum + + ;
}
if ( "1" . equals ( isexists ) ) {
logger_a864d799 . error ( String . valueOf ( requestid + " 物料号重复:跳过" ) ) ;
continue ;
}
item [ itemnum ] = itemIn ;
itemnum + + ;
}
if ( list . size ( ) > 0 ) {
// for(String s:list){
// boolean flag = wlhset.add(s);
// if(!flag){
// sb.append("物料号-"+s+"-存在重复;");
// }
// }
if ( sb ! = null & & sb . length ( ) > 0 ) {
state = "E" ;
message = sb . toString ( ) ;
logger_a864d799 . error ( String . valueOf ( requestid + " 用户申请货源关系转正数据不符合要求:" + message ) ) ;
} else {
// if(set.size()==1){
String purOrgCodes = "" ;
String flag = "" ;
Iterator it = set . iterator ( ) ;
while ( it . hasNext ( ) ) {
purOrgCodes = purOrgCodes + flag + it . next ( ) ;
flag = ";" ;
}
logger_a864d799 . error ( String . valueOf ( requestid + " purOrgCodes: " + purOrgCodes ) ) ;
paramInfo . setApplyUser ( gh ) ;
paramInfo . setCheckUser ( shr ) ;
paramInfo . setCompanyCode ( sqdwbm ) ;
paramInfo . setCompanyName ( sqdw ) ;
paramInfo . setVendorCode ( gysbm ) ;
paramInfo . setVendorName ( gysmc ) ;
paramInfo . setHandleType ( "0" ) ;
paramInfo . setRequestId ( "GY103/" + requestid ) ;
paramInfo . setStartDate ( map . get ( "SQRQ" ) ) ;
paramInfo . setEndDate ( "2099-12-31" ) ;
paramInfo . setPurOrgCode ( purOrgCodes ) ;
paramInfo . setItems ( item ) ;
paramInfo . setFreezeReason ( "" ) ;
logger_a864d799 . error ( String . valueOf ( requestid + " resourceType:" + resourceType ) ) ;
paramInfo . setResourceType ( resourceType ) ;
param . setInputTab ( paramInfo ) ;
// OaSrmVenMatExtService service = new OaSrmVenMatExtService();
String [ ] str = service . sendsrm ( param , requestid ) ;
if ( "1" . equals ( str [ 0 ] ) ) {
state = "S" ;
} else {
if ( list . size ( ) > 0 ) {
// for(String s:list){
// boolean flag = wlhset.add(s);
// if(!flag){
// sb.append("物料号-"+s+"-存在重复;");
// }
// }
if ( sb ! = null & & sb . length ( ) > 0 ) {
state = "E" ;
message = sb . toString ( ) ;
logger_a864d799 . error ( String . valueOf ( requestid + " 用户申请货源关系转正数据不符合要求:" + message ) ) ;
} else {
// if(set.size()==1){
String purOrgCodes = "" ;
String flag = "" ;
Iterator it = set . iterator ( ) ;
while ( it . hasNext ( ) ) {
purOrgCodes = purOrgCodes + flag + it . next ( ) ;
flag = ";" ;
}
logger_a864d799 . error ( String . valueOf ( requestid + " purOrgCodes: " + purOrgCodes ) ) ;
paramInfo . setApplyUser ( gh ) ;
paramInfo . setCheckUser ( shr ) ;
paramInfo . setCompanyCode ( sqdwbm ) ;
paramInfo . setCompanyName ( sqdw ) ;
paramInfo . setVendorCode ( gysbm ) ;
paramInfo . setVendorName ( gysmc ) ;
paramInfo . setHandleType ( "0" ) ;
paramInfo . setRequestId ( "GY103/" + requestid ) ;
paramInfo . setStartDate ( map . get ( "SQRQ" ) ) ;
paramInfo . setEndDate ( "2099-12-31" ) ;
paramInfo . setPurOrgCode ( purOrgCodes ) ;
paramInfo . setItems ( item ) ;
paramInfo . setFreezeReason ( "" ) ;
logger_a864d799 . error ( String . valueOf ( requestid + " resourceType:" + resourceType ) ) ;
paramInfo . setResourceType ( resourceType ) ;
param . setInputTab ( paramInfo ) ;
// OaSrmVenMatExtService service = new OaSrmVenMatExtService();
String [ ] str = service . sendsrm ( param , requestid ) ;
if ( "1" . equals ( str [ 0 ] ) ) {
state = "S" ;
} else {
state = "E" ;
}
message = str [ 1 ] ;
logger_a864d799 . error ( String . valueOf ( requestid + "调用货源关系接口校验数据返回值" + message ) ) ;
// }else{
// state = "E";
// message = "一次只能申请一个采购组织的";
// writeLog(requestid+" 用户申请货源关系转正数据不符合要求:"+message);
// }
}
message = str [ 1 ] ;
logger_a864d799 . error ( String . valueOf ( requestid + "调用货源关系接口校验数据返回值" + message ) ) ;
// }else{
// state = "E";
// message = "一次只能申请一个采购组织的";
// writeLog(requestid+" 用户申请货源关系转正数据不符合要求:"+message);
// }
}
} else {
state = "E" ;
message = "明细表明细行不能超过300行, 请分开申请! " ;
logger_a864d799 . error ( String . valueOf ( requestid + " 用户申请货源关系转正数据不符合要求:" + message ) ) ;
}
} else {
state = "E" ;
message = "明细表明细行不能超过300行, 请分开申请! " ;
logger_a864d799 . error ( String . valueOf ( requestid + " 用户申请货源关系转正数据不符合要求:" + message ) ) ;
}
}
}
if ( ! "S" . equals ( state ) ) {
requestinfo . getRequestManager ( ) . setMessageid ( "error" ) ;