From 6c91381010daea9815134caa50ad3ec68a6d0755 Mon Sep 17 00:00:00 2001 From: xinfengYin <1776570748@qq.com> Date: Mon, 10 Mar 2025 15:31:06 +0800 Subject: [PATCH] =?UTF-8?q?#xinfengYin-25#=20GY103-=E4=BE=9B=E5=BA=94?= =?UTF-8?q?=E5=95=86=E5=BC=95=E5=85=A5=E3=80=81=E8=BD=AC=E6=AD=A3=E7=94=B3?= =?UTF-8?q?=E8=AF=B7=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../action/OaSrmVendorCheckAction.java | 263 +++++++++--------- .../action/OaSrmVendorReapplyAction.java | 248 +++++++++-------- .../action/OaSrmVendorSyncAction.java | 212 +++++++------- 3 files changed, 365 insertions(+), 358 deletions(-) diff --git a/secondev-history-action/src/main/java/com/weaver/seconddev/interfaces/workflow/action/OaSrmVendorCheckAction.java b/secondev-history-action/src/main/java/com/weaver/seconddev/interfaces/workflow/action/OaSrmVendorCheckAction.java index 8ff7c08..66b4bbc 100644 --- a/secondev-history-action/src/main/java/com/weaver/seconddev/interfaces/workflow/action/OaSrmVendorCheckAction.java +++ b/secondev-history-action/src/main/java/com/weaver/seconddev/interfaces/workflow/action/OaSrmVendorCheckAction.java @@ -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 set = new HashSet(); - Set wlhset = new HashSet(); - List list = new ArrayList(); - 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 set = new HashSet(); + Set wlhset = new HashSet(); + List list = new ArrayList(); + 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"); diff --git a/secondev-history-action/src/main/java/com/weaver/seconddev/interfaces/workflow/action/OaSrmVendorReapplyAction.java b/secondev-history-action/src/main/java/com/weaver/seconddev/interfaces/workflow/action/OaSrmVendorReapplyAction.java index 264fb5f..5dfb26c 100644 --- a/secondev-history-action/src/main/java/com/weaver/seconddev/interfaces/workflow/action/OaSrmVendorReapplyAction.java +++ b/secondev-history-action/src/main/java/com/weaver/seconddev/interfaces/workflow/action/OaSrmVendorReapplyAction.java @@ -233,137 +233,139 @@ public class OaSrmVendorReapplyAction extends BaseBean implements Action, EsbSer StringBuilder sb = new StringBuilder(); DetailTable[] detailtable = requestinfo.getDetailTableInfo().getDetailTable(); // 指定明细表 - DetailTable dtq = detailtable[1]; - // 当前明细表的所有数据,按行存储 - Row[] sq = dtq.getRow(); - 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_a5e612ac.error("sql-->" + sql); - String poolname_uh = CONN_TYPE.workflow.getType(); - // TODO E10执行sql方法第二参数必须指定源,默认使用流程源,单体客户无需修改,微服务/组合客户需根据查询表所属服务切换源,或使用外部数据源 - boolean b = rs.executeSql(sql, poolname_uh); - logger_a5e612ac.error(String.valueOf(requestid + "调用查询接口返回:" + b)); - dtcount = rs.getCounts(); - logger_a5e612ac.error(String.valueOf(requestid + " dt2count:" + dtcount)); - if (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_a5e612ac.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_a5e612ac.error(String.valueOf(requestid + " 物料号重复:" + valueq)); - isexists = "1"; - continue; + if(detailtable.length > 1 ){ + DetailTable dtq = detailtable[1]; + // 当前明细表的所有数据,按行存储 + Row[] sq = dtq.getRow(); + 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_a5e612ac.error("sql-->" + sql); + String poolname_uh = CONN_TYPE.workflow.getType(); + // TODO E10执行sql方法第二参数必须指定源,默认使用流程源,单体客户无需修改,微服务/组合客户需根据查询表所属服务切换源,或使用外部数据源 + boolean b = rs.executeSql(sql, poolname_uh); + logger_a5e612ac.error(String.valueOf(requestid + "调用查询接口返回:" + b)); + dtcount = rs.getCounts(); + logger_a5e612ac.error(String.valueOf(requestid + " dt2count:" + dtcount)); + if (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_a5e612ac.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_a5e612ac.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()); + // itemIn.setMaterialName(wlms); + String wlms = StringEscapeUtils.unescapeHtml(valueq.trim()); + logger_a5e612ac.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()); - // itemIn.setMaterialName(wlms); - String wlms = StringEscapeUtils.unescapeHtml(valueq.trim()); - logger_a5e612ac.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_a5e612ac.error(String.valueOf(requestid + " 物料号重复:跳过")); + continue; } + item[itemnum] = itemIn; + itemnum++; } - if ("1".equals(isexists)) { - logger_a5e612ac.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_a5e612ac.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_a5e612ac.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_a5e612ac.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_a5e612ac.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_a5e612ac.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_a5e612ac.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_a5e612ac.error(String.valueOf(requestid + "调用货源关系接口校验数据返回值" + message)); + // }else{ + // state = "E"; + // message = "一次只能申请一个采购组织的"; + // writeLog(requestid+" 用户申请货源关系转正数据不符合要求:"+message); + // } } - message = str[1]; - logger_a5e612ac.error(String.valueOf(requestid + "调用货源关系接口校验数据返回值" + message)); - // }else{ - // state = "E"; - // message = "一次只能申请一个采购组织的"; - // writeLog(requestid+" 用户申请货源关系转正数据不符合要求:"+message); - // } } + } else { + state = "E"; + message = "明细表明细行不能超过300行,请分开申请!"; + logger_a5e612ac.error(String.valueOf(requestid + " 用户申请货源关系转正数据不符合要求:" + message)); } - } else { - state = "E"; - message = "明细表明细行不能超过300行,请分开申请!"; - logger_a5e612ac.error(String.valueOf(requestid + " 用户申请货源关系转正数据不符合要求:" + message)); } } if (!"S".equals(state)) { diff --git a/secondev-history-action/src/main/java/com/weaver/seconddev/interfaces/workflow/action/OaSrmVendorSyncAction.java b/secondev-history-action/src/main/java/com/weaver/seconddev/interfaces/workflow/action/OaSrmVendorSyncAction.java index cc3e1a8..83fa51e 100644 --- a/secondev-history-action/src/main/java/com/weaver/seconddev/interfaces/workflow/action/OaSrmVendorSyncAction.java +++ b/secondev-history-action/src/main/java/com/weaver/seconddev/interfaces/workflow/action/OaSrmVendorSyncAction.java @@ -228,119 +228,121 @@ public class OaSrmVendorSyncAction extends BaseBean implements Action, EsbServer if ("S".equals(state)) { Set set = new HashSet(); DetailTable[] detailtable = requestinfo.getDetailTableInfo().getDetailTable(); - // 指定明细表 - DetailTable dtq = null; - if(dtq != null){ - dtq = detailtable[1]; - } - // 当前明细表的所有数据,按行存储 - Row[] sq = null; - if(dtq != null){sq = dtq.getRow();} - 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_41a64316.error("sql-->" + sql); - String poolname_wk = CONN_TYPE.workflow.getType(); - // TODO E10执行sql方法第二参数必须指定源,默认使用流程源,单体客户无需修改,微服务/组合客户需根据查询表所属服务切换源,或使用外部数据源 - boolean b = rs.executeSql(sql, poolname_wk); - logger_41a64316.error(String.valueOf("b-->" + b)); - dtcount = rs.getCounts(); - logger_41a64316.error(String.valueOf(requestid + " dt2count:" + dtcount)); - if (sq != null && sq.length <= 300 && sq.length > 0) { - 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_41a64316.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_41a64316.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();} + 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_41a64316.error("sql-->" + sql); + String poolname_wk = CONN_TYPE.workflow.getType(); + // TODO E10执行sql方法第二参数必须指定源,默认使用流程源,单体客户无需修改,微服务/组合客户需根据查询表所属服务切换源,或使用外部数据源 + boolean b = rs.executeSql(sql, poolname_wk); + logger_41a64316.error(String.valueOf("b-->" + b)); + dtcount = rs.getCounts(); + logger_41a64316.error(String.valueOf(requestid + " dt2count:" + dtcount)); + if (sq != null && sq.length <= 300 && sq.length > 0) { + 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_41a64316.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_41a64316.error(String.valueOf(requestid + " 物料号重复:" + valueq)); + isexists = "1"; + continue; + } + itemIn.setMaterialCode(valueq); + wlhs = wlhs + flagwl + valueq; + flagwl = ","; + } + if ("wlms".equals(nameq)) { + // String wlms = StringEscapeUtils.unescapeHtml(valueq.trim()); + // itemIn.setMaterialName(wlms); + String wlms = StringEscapeUtils.unescapeHtml(valueq.trim()); + logger_41a64316.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); - wlhs = wlhs + flagwl + valueq; - flagwl = ","; - } - if ("wlms".equals(nameq)) { - // String wlms = StringEscapeUtils.unescapeHtml(valueq.trim()); - // itemIn.setMaterialName(wlms); - String wlms = StringEscapeUtils.unescapeHtml(valueq.trim()); - logger_41a64316.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_41a64316.error(String.valueOf(requestid + " 物料号重复:跳过")); + continue; } + item[itemnum] = itemIn; + itemnum++; } - if ("1".equals(isexists)) { - logger_41a64316.error(String.valueOf(requestid + " 物料号重复:跳过")); - continue; + String purOrgCodes = ""; + String flag = ""; + Iterator it = set.iterator(); + while (it.hasNext()) { + purOrgCodes = purOrgCodes + flag + it.next(); + flag = ";"; } - item[itemnum] = itemIn; - itemnum++; - } - String purOrgCodes = ""; - String flag = ""; - Iterator it = set.iterator(); - while (it.hasNext()) { - purOrgCodes = purOrgCodes + flag + it.next(); - flag = ";"; - } - logger_41a64316.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("6"); - paramInfo.setRequestId("GY103/" + requestid); - paramInfo.setStartDate(map.get("SQRQ")); - paramInfo.setEndDate("2099-12-31"); - paramInfo.setPurOrgCode(purOrgCodes); - paramInfo.setItems(item); - paramInfo.setFreezeReason(""); - logger_41a64316.error(String.valueOf(requestid + " resourceType:" + resourceType)); - paramInfo.setResourceType(resourceType); - param.setInputTab(paramInfo); + logger_41a64316.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("6"); + paramInfo.setRequestId("GY103/" + requestid); + paramInfo.setStartDate(map.get("SQRQ")); + paramInfo.setEndDate("2099-12-31"); + paramInfo.setPurOrgCode(purOrgCodes); + paramInfo.setItems(item); + paramInfo.setFreezeReason(""); + logger_41a64316.error(String.valueOf(requestid + " resourceType:" + resourceType)); + paramInfo.setResourceType(resourceType); + param.setInputTab(paramInfo); // OaSrmVenMatExtService service = new OaSrmVenMatExtService(); - // + // - logger_41a64316.error("param--" + param + ",requestid--" + requestid); - String[] str = service.sendsrm(param, requestid); - if ("1".equals(str[0])) { - state = "S"; - } else { - state = "E"; + logger_41a64316.error("param--" + param + ",requestid--" + requestid); + String[] str = service.sendsrm(param, requestid); + if ("1".equals(str[0])) { + state = "S"; + } else { + state = "E"; + } + message = str[1]; + logger_41a64316.error(String.valueOf(requestid + "调用货源关系接口同步数据返回值" + message)); } - message = str[1]; - logger_41a64316.error(String.valueOf(requestid + "调用货源关系接口同步数据返回值" + message)); } } if (!"S".equals(state)) {