到货单检验
This commit is contained in:
		
							parent
							
								
									49f56dc502
								
							
						
					
					
						commit
						8c76f8e3e9
					
				|  | @ -0,0 +1,477 @@ | |||
| package nccloud.web.pu.arrivalqc.action; | ||||
| 
 | ||||
| import com.alibaba.fastjson.JSON; | ||||
| import com.alibaba.fastjson.JSONArray; | ||||
| import com.alibaba.fastjson.JSONObject; | ||||
| import com.alibaba.fastjson.serializer.SerializerFeature; | ||||
| import nc.bs.dao.BaseDAO; | ||||
| import nc.bs.dao.DAOException; | ||||
| import nc.bs.framework.common.NCLocator; | ||||
| import nc.bs.logging.Log; | ||||
| import nc.bs.trade.business.HYPubBO; | ||||
| import nc.bs.uapbd.util.MyHelper; | ||||
| import nc.bs.uapbd.util.ThirdPartyPostRequestUtil; | ||||
| import nc.itf.bd.supplier.baseinfo.ISupplierBaseInfoQryService; | ||||
| import nc.itf.pu.m23.qc.IArriveForQC; | ||||
| import nc.pubitf.pu.m23.pubquery.IArrivePubQuery; | ||||
| import nc.pubitf.qc.c001.pu.ReturnObjectFor23; | ||||
| import nc.vo.am.common.util.StringUtils; | ||||
| import nc.vo.bd.material.MaterialVO; | ||||
| import nc.vo.bd.material.measdoc.MeasdocVO; | ||||
| import nc.vo.bd.psn.PsndocVO; | ||||
| import nc.vo.bd.supplier.SupplierVersionVO; | ||||
| import nc.vo.org.OrgVO; | ||||
| import nc.vo.pu.m23.entity.ArriveHeaderVO; | ||||
| import nc.vo.pu.m23.entity.ArriveItemVO; | ||||
| import nc.vo.pu.m23.entity.ArriveVO; | ||||
| import nc.vo.pu.m23.entity.ArriveViewVO; | ||||
| import nc.vo.pu.pub.util.AggVOUtil; | ||||
| import nc.vo.pub.BusinessException; | ||||
| import nc.vo.pub.lang.UFDouble; | ||||
| import nc.vo.pubapp.pattern.model.entity.view.AbstractDataView; | ||||
| import nc.vo.pubapp.pattern.model.tool.BillComposite; | ||||
| import nc.vo.qc.c003.entity.ReportHeaderVO; | ||||
| import nc.vo.qc.c003.entity.ReportItemVO; | ||||
| import nc.vo.qc.pub.enumeration.StrictLevelEnum; | ||||
| import nc.vo.sm.UserVO; | ||||
| import nccloud.baseapp.core.log.NCCForUAPLogger; | ||||
| import nccloud.commons.lang.ArrayUtils; | ||||
| import nccloud.dto.pu.puinvoice.entity.DataInfo; | ||||
| import nccloud.framework.core.exception.ExceptionUtils; | ||||
| import nccloud.framework.core.json.IJson; | ||||
| import nccloud.framework.service.ServiceLocator; | ||||
| import nccloud.framework.web.action.itf.ICommonAction; | ||||
| import nccloud.framework.web.container.IRequest; | ||||
| import nccloud.framework.web.json.JsonFactory; | ||||
| import nccloud.framework.web.processor.template.GridConvertProcessor; | ||||
| import nccloud.pubitf.pu.arrival.service.IArrivalQueryService; | ||||
| import nccloud.web.pu.arrivalqc.entity.QualityCheckInfo; | ||||
| 
 | ||||
| import java.util.ArrayList; | ||||
| import java.util.Arrays; | ||||
| import java.util.HashMap; | ||||
| import java.util.List; | ||||
| import java.util.Map; | ||||
| import java.util.Set; | ||||
| 
 | ||||
| 
 | ||||
| /** | ||||
|  * @description 检验 | ||||
|  * @author ligangt | ||||
|  * @date 2018年8月28日 下午1:43:35 | ||||
|  * @version ncc1.0 | ||||
|  */ | ||||
| public class QualityCheckAction implements ICommonAction { | ||||
|     private static final String LOG_INFO_NAME = "qyMesLog"; | ||||
|     private static final Log logger = Log.getInstance(LOG_INFO_NAME); | ||||
|     private static final String reqUrl = "/IF_QyErpApi.ashx?action=addsjd"; | ||||
|     private Map<String, String> configParams; | ||||
|     @Override | ||||
|     public Object doAction(IRequest request) { | ||||
|         try { | ||||
|             // 获取前台json | ||||
|             IJson json = JsonFactory.create(); | ||||
|             QualityCheckInfo info = json.fromJson(request.read(), | ||||
|                     QualityCheckInfo.class); | ||||
| 
 | ||||
|             ArriveViewVO[] views = null; | ||||
|             if (info.isQcEnable()) { | ||||
|                 DataInfo[] idTs = info.getIdTs(); | ||||
|                 views = queryViewVOs(idTs); | ||||
|             } else { | ||||
|                 GridConvertProcessor processor = new GridConvertProcessor(); | ||||
|                 views = processor.fromGrid(info.getGrid()); | ||||
|             } | ||||
| 
 | ||||
|             if (views != null && views.length > 0) { | ||||
|                 // IPubUtilService pubService = ServiceLocator | ||||
|                 // .find(IPubUtilService.class); | ||||
|                 // if (pubService.isOrgQcEnable(info.getPk_org())) { | ||||
|                 // 非紧急放行入库数量>0,即根据质检入库 | ||||
|                 // ArriveItemVO item = views[0].getBVO(); | ||||
|                 // if | ||||
|                 // (MathTool.compareTo(MathTool.sub(item.getNaccumstorenum(), | ||||
|                 // item.getNaccumletgoinnum()), UFDouble.ZERO_DBL) > 0) { | ||||
|                 // //ExceptionUtils.wrapBusinessException("紧急放行数量大于入库数量"); | ||||
|                 // return false; | ||||
|                 // } | ||||
|                 // } | ||||
|                 ArriveVO[] vos = this.getArriveVOs(views); | ||||
|                 for (ArriveVO vo : vos) { | ||||
|                     ArriveItemVO[] bvos = vo.getBVO(); | ||||
|                     for (ArriveItemVO bvo : bvos) { | ||||
|                         UFDouble nchecknum = bvo.getNchecknum(); | ||||
|                         UFDouble nwillelignum = bvo.getNwillelignum(); | ||||
|                         if (nchecknum != null && nwillelignum != null) { | ||||
|                             if (nchecknum.compareTo(UFDouble.ZERO_DBL) < 0 | ||||
|                                     || nwillelignum.compareTo(UFDouble.ZERO_DBL) < 0) { | ||||
|                                 ExceptionUtils.wrapBusinessException( | ||||
|                                         nc.vo.ml.NCLangRes4VoTransl.getNCLangRes().getStrByID( | ||||
|                                                 "4004100_0", "04004100-0010")/* | ||||
|                                          * @res "报检数量和合格主数量不允许为负数" | ||||
|                                          */); | ||||
|                             } | ||||
|                         } | ||||
|                         UFDouble naccumchecknum = bvo.getNaccumchecknum(); | ||||
|                         if (naccumchecknum != null) { | ||||
|                             if (naccumchecknum.compareTo(bvo.getNnum()) == 0) { | ||||
|                                 UFDouble naccumstorenum = bvo.getNaccumstorenum(); | ||||
|                                 if (naccumstorenum != null | ||||
|                                         && naccumstorenum.compareTo(UFDouble.ZERO_DBL) > 0) { | ||||
| //									ExceptionUtils.wrapBusinessException( | ||||
| //											nc.vo.ml.NCLangRes4VoTransl.getNCLangRes() | ||||
| //													.getStrByID("4004100_0", "04004100-0012") | ||||
| //													/* @res "第" */ + bvo.getCrowno() | ||||
| //													+ nc.vo.ml.NCLangRes4VoTransl.getNCLangRes() | ||||
| //															.getStrByID("4004100_0", | ||||
| //																	"04004100-0307")/* @res 04004100-0062 "行已经完全入库,不能生成报检单" | ||||
| //																		NCC-362748 修改后:行已经生成过报检单且正在检验中,不允许复检!*/); | ||||
|                                     ExceptionUtils.wrapBusinessException(nc.vo.ml.NCLangRes4VoTransl.getNCLangRes().getStrByID("4008015_0", | ||||
|                                             "04008015-0077"+"\n", null, new String[] { | ||||
|                                                     bvo.getCrowno() | ||||
|                                             })); | ||||
| 									/* @res 04004100-0062 "行已经完全入库,不能生成报检单" | ||||
| 																		NCC-362748 修改后:第{0}行已经生成过报检单且正在检验中,不允许复检!*/ | ||||
| 
 | ||||
| 
 | ||||
|                                 } | ||||
|                             } | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|                 ArriveVO[] returnVos = this.check(vos, info.isCheck()); | ||||
|                 if (null == returnVos) { | ||||
|                     ExceptionUtils.wrapBusinessException( | ||||
|                             nc.vo.ml.NCLangRes4VoTransl.getNCLangRes().getStrByID("4004100_0", | ||||
|                                     "04004100-0011")/* @res "到货单检验失败!" */); | ||||
|                 } | ||||
|                 List<ArriveVO> validArriveList = new ArrayList<>(); | ||||
| 
 | ||||
|                 configParams = MyHelper.getConfigParams("xb-config", null); | ||||
|                 if (configParams.isEmpty()) { | ||||
|                     throw new BusinessException("箱变的QMS接口缺少配置"); | ||||
|                 } | ||||
|                 for (ArriveVO arriveVO : returnVos) { | ||||
|                     ArriveItemVO[] bvos = arriveVO.getBVO(); | ||||
|                     boolean needSkip = false; // 标记是否需要跳过当前ArriveVO | ||||
| 
 | ||||
|                     // 检查当前到货单的所有明细,只要有一个明细的vbdef23为Y/y,就跳过整个到货单 | ||||
|                     if (bvos != null && bvos.length > 0) { | ||||
|                         for (ArriveItemVO itemVO : bvos) { | ||||
|                             // 获取vbdef23字段值,处理null情况 | ||||
|                             String vbdef32 = (String) itemVO.getAttributeValue("vbdef32"); | ||||
|                             if (vbdef32 != null && "Y".equalsIgnoreCase(vbdef32)) { | ||||
|                                 needSkip = true; | ||||
|                                 break; // 只要有一个明细符合,直接跳出明细循环 | ||||
|                             } | ||||
|                         } | ||||
|                     } | ||||
| 
 | ||||
|                     // 不需要跳过的,加入有效列表 | ||||
|                     if (!needSkip) { | ||||
|                         validArriveList.add(arriveVO); | ||||
|                     } | ||||
|                 } | ||||
|                 buildSyncData(returnVos); | ||||
|                 ServiceLocator.find(IArriveForQC.class).pushWmsByArriveVOs(vos); | ||||
|                 // 把后台返回的轻量级聚合VO转换为视图VO | ||||
|                 // new ClientBillCombinServer<ArriveVO>().combine(vos, | ||||
|                 // returnVos); | ||||
|                 // ArriveViewVO[] newViews = ArrivePublicUtil | ||||
|                 // .convertAggToViewVO(vos); | ||||
|                 // grid = processor.convert(info.getGrid().getPageid(), | ||||
|                 // newViews); | ||||
| 
 | ||||
|                 // String[] successIds = this.getSuccessBIDs(returnVos); | ||||
|                 // return successIds; | ||||
|             } | ||||
|         } catch (Exception e) { | ||||
|             ExceptionUtils.wrapException(e); | ||||
|         } | ||||
|         return null; | ||||
|     } | ||||
| 
 | ||||
|     private ArriveViewVO[] queryViewVOs(DataInfo[] idTs) { | ||||
|         List<String> bids = new ArrayList<String>(); | ||||
|         Map<String, String> idTsIndex = new HashMap<String, String>(); | ||||
|         for (DataInfo item : idTs) { | ||||
|             bids.add(item.getId()); | ||||
|             idTsIndex.put(item.getId(), item.getTs()); | ||||
|         } | ||||
| 
 | ||||
|         IArrivalQueryService qryService = ServiceLocator | ||||
|                 .find(IArrivalQueryService.class); | ||||
|         ArriveViewVO[] viewvos = qryService | ||||
|                 .queryViewByBIDs(bids.toArray(new String[0])); | ||||
|         // 重设ts | ||||
|         for (ArriveViewVO viewvo : viewvos) { | ||||
|             viewvo.setAttributeValue("ts", | ||||
|                     idTsIndex.get(viewvo.getPk_arriveorder_b())); | ||||
|         } | ||||
| 
 | ||||
|         return viewvos; | ||||
|     } | ||||
| 
 | ||||
|     // private String[] getSuccessBIDs(ArriveVO[] returnVos) { | ||||
|     // List<String> bid_l = new ArrayList<String>(); | ||||
|     // for (ArriveVO arrivevo : returnVos) { | ||||
|     // ArriveItemVO[] itemvos = arrivevo.getBVO(); | ||||
|     // for (ArriveItemVO item : itemvos) { | ||||
|     // bid_l.add(item.getPk_arriveorder_b()); | ||||
|     // } | ||||
|     // } | ||||
|     // return bid_l.toArray(new String[0]); | ||||
|     // } | ||||
| 
 | ||||
|     private ArriveVO[] getArriveVOs(ArriveViewVO[] views) { | ||||
|         List<ArriveHeaderVO> headers = new ArrayList<ArriveHeaderVO>(); | ||||
|         List<ArriveItemVO> items = new ArrayList<ArriveItemVO>(); | ||||
|         for (AbstractDataView view : views) { | ||||
|             headers.add((ArriveHeaderVO) view.getVO(ArriveHeaderVO.class)); | ||||
|             items.add((ArriveItemVO) view.getVO(ArriveItemVO.class)); | ||||
|         } | ||||
| 
 | ||||
|         BillComposite<ArriveVO> bc = new BillComposite<ArriveVO>(ArriveVO.class); | ||||
|         ArriveVO tempVO = new ArriveVO(); | ||||
|         bc.append(tempVO.getMetaData().getParent(), | ||||
|                 headers.toArray(new ArriveHeaderVO[headers.size()])); | ||||
|         bc.append(tempVO.getMetaData().getVOMeta(ArriveItemVO.class), | ||||
|                 items.toArray(new ArriveItemVO[items.size()])); | ||||
|         return bc.composite(); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * 调用后台接口进行检验 | ||||
|      * | ||||
|      * @param vos | ||||
|      *          到货单vo | ||||
|      * @param isCheck | ||||
|      * @return 检验结果数组 | ||||
|      * @throws Exception | ||||
|      */ | ||||
|     private ArriveVO[] check(ArriveVO[] vos, boolean isCheck) throws Exception { | ||||
|         Object[] objs = ServiceLocator.find(IArriveForQC.class).qualityCheck(vos, | ||||
|                 isCheck); | ||||
|         ArriveVO[] result = (ArriveVO[]) objs[0]; | ||||
|         ReturnObjectFor23 rof = (ReturnObjectFor23) objs[1]; | ||||
|         // 得到质检模块的提示信息 | ||||
|         if (rof != null) { | ||||
|             Map<String, Integer> strictMap = rof.getCsourcebid_strictlevel(); | ||||
|             Set<String> keySet = strictMap.keySet(); | ||||
|             IArrivePubQuery arriveQuery = ServiceLocator.find(IArrivePubQuery.class); | ||||
|             ArriveItemVO[] items = arriveQuery | ||||
|                     .queryItemVOByBids(keySet.toArray(new String[keySet.size()])); | ||||
| 
 | ||||
|             String[] bpks = AggVOUtil.getPrimaryKeys(items); | ||||
|             if (strictMap.size() > 0) { | ||||
|                 for (Map.Entry<String, Integer> entry : strictMap.entrySet()) { | ||||
|                     String itempk = entry.getKey(); | ||||
|                     int dji = entry.getValue().intValue(); | ||||
|                     if (StrictLevelEnum.FREE.getReturnType() == dji) { | ||||
|                         int i = Arrays.binarySearch(bpks, itempk); | ||||
|                         items[i].getCrowno(); | ||||
|                         ExceptionUtils.wrapBusinessException( | ||||
|                                 nc.vo.ml.NCLangRes4VoTransl.getNCLangRes() | ||||
|                                         .getStrByID("4004100_0", "04004100-0012")/* @res "第" */ | ||||
|                                         + items[i].getCrowno() | ||||
|                                         + nc.vo.ml.NCLangRes4VoTransl.getNCLangRes().getStrByID( | ||||
|                                         "4004100_0", | ||||
|                                         "04004100-0013")/* | ||||
|                                  * @res "行为质检连续批的严格程度为免检,不需要生成报检单!" | ||||
|                                  */); | ||||
|                     } else if (StrictLevelEnum.PAUSE.getReturnType() == dji) { | ||||
|                         int i = Arrays.binarySearch(bpks, itempk); | ||||
|                         items[i].getCrowno(); | ||||
|                         ExceptionUtils.wrapBusinessException( | ||||
|                                 nc.vo.ml.NCLangRes4VoTransl.getNCLangRes() | ||||
|                                         .getStrByID("4004100_0", "04004100-0012")/* @res "第" */ | ||||
|                                         + items[i].getCrowno() | ||||
|                                         + nc.vo.ml.NCLangRes4VoTransl.getNCLangRes().getStrByID( | ||||
|                                         "4004100_0", | ||||
|                                         "04004100-0014")/* | ||||
|                                  * @res "行为质检连续批的严格程度为暂停, 不能生成报检单!" | ||||
|                                  */);/* | ||||
|                          * 第 { 0 } 行为质检连续批的严格程度为暂停 , | ||||
|                          * 不能生成报检单 ! | ||||
|                          */ | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         if (!ArrayUtils.isEmpty(result)) { | ||||
|             return result; | ||||
|         } | ||||
|         return null; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|     /** | ||||
|      * 构建同步数据 | ||||
|      * | ||||
|      * @param arriveVOS 到货单VO | ||||
|      */ | ||||
|     private void buildSyncData(ArriveVO[] arriveVOS) throws BusinessException { | ||||
|         List<String> update =new ArrayList<>(); | ||||
|         for (ArriveVO arriveVO : arriveVOS) { | ||||
|             ArriveHeaderVO hvo = arriveVO.getHVO(); | ||||
|             ArriveItemVO[] bvo = arriveVO.getBVO(); | ||||
|             String pk_arriveorder = hvo.getPk_arriveorder(); | ||||
|             String pkOrg = hvo.getPk_org(); | ||||
|             // 判断物料的业务单元是否是箱变公司,不是则跳过 | ||||
|             String orgCode = MyHelper.transferField(OrgVO.getDefaultTableName(), OrgVO.CODE, OrgVO.PK_ORG, pkOrg); | ||||
|             if (checkIfOrg(orgCode, configParams)) { | ||||
|                 continue; | ||||
|             } | ||||
|             // 查询供应商信息 | ||||
|             String pk_supplier_v = hvo.getPk_supplier_v(); | ||||
|             SupplierVersionVO supplierVersionVO = new SupplierVersionVO(); | ||||
|             if (pk_supplier_v != null && !pk_supplier_v.isEmpty() && !"~".equals(pk_supplier_v)) { | ||||
|                 ISupplierBaseInfoQryService baseQryService = NCLocator.getInstance().lookup(ISupplierBaseInfoQryService.class); | ||||
|                 supplierVersionVO = baseQryService.querySupplierVersionByVID(pk_supplier_v); | ||||
|             } | ||||
|             // 制单人名称 | ||||
|             String creatorName = MyHelper.getStrValByCondition("sm_user", UserVO.USER_NAME, | ||||
|                     UserVO.CUSERID + " = '" + hvo.getBillmaker() + "'"); | ||||
|             JSONObject singleObj = new JSONObject(); | ||||
|             // 采购合同号 | ||||
|             String cghth = getCghthVal(hvo, bvo); | ||||
|             // 启源送检单主表 | ||||
|             long cts = System.currentTimeMillis(); | ||||
|             singleObj.put("batchid", cts); | ||||
|             singleObj.put("csdh", hvo.getVbillcode());// 送检单号,BIP到货单号 | ||||
|             singleObj.put("sjrq", hvo.getDmakedate().toString());// 送检日期,格式建议为 yyyy-MM-dd | ||||
|             singleObj.put("wlgysid", supplierVersionVO.getCode());// 供应商编码 | ||||
|             singleObj.put("wlgysmc", supplierVersionVO.getName());// 供应商名称 | ||||
|             singleObj.put("sjr", creatorName);// 送检人,BIP制单人 | ||||
|             singleObj.put("cghth", cghth);// 采购合同号,关联对应的采购合同 | ||||
|             singleObj.put("bz", hvo.getVmemo());// 摘要备注,用于填写送检单的补充说明信息 | ||||
|             // 查询关联的质检报告-传入启源送检单的明细 | ||||
|             HYPubBO hybo = new HYPubBO(); | ||||
|             ReportItemVO[] reportItemVOS = (ReportItemVO[]) hybo.queryByCondition(ReportItemVO.class, " cfirstid = '" + pk_arriveorder + "'"); | ||||
|             JSONArray contentArray = new JSONArray(); | ||||
|             for (ReportItemVO reportItemVO : reportItemVOS) { | ||||
|                 String pkReportbill = reportItemVO.getPk_reportbill(); | ||||
|                 ReportHeaderVO reportHeaderVO = (ReportHeaderVO) hybo.queryByPrimaryKey(ReportHeaderVO.class, pkReportbill); | ||||
|                 String pkMaterial = reportHeaderVO.getPk_material(); | ||||
|                 Map<String, Object> materialMap = MyHelper.getMapValByCondition(MaterialVO.getDefaultTableName(), "code,name,materialspec,materialtype", | ||||
|                         "pk_material = '" + pkMaterial + "'"); | ||||
|                 String cunitid = reportHeaderVO.getCunitid();// 主单位 | ||||
|                 String cunitname = MyHelper.getStrValByCondition(MeasdocVO.getDefaultTableName(), MeasdocVO.NAME, | ||||
|                         MeasdocVO.PK_MEASDOC + " = '" + cunitid + "'"); | ||||
|                 JSONObject itemObj = new JSONObject(); | ||||
|                 itemObj.put("wlbh", materialMap.getOrDefault("code", "")); // 物料编码 | ||||
|                 itemObj.put("wlmc", materialMap.getOrDefault("name", "")); // 物料名称 | ||||
|                 String materialtype = skipNull(materialMap.get("materialtype")); | ||||
|                 String materialspec = skipNull(materialMap.get("materialspec")); | ||||
|                 itemObj.put("wlxhgg", materialtype + materialspec); // 物料型号规格 | ||||
|                 itemObj.put("sjsl", reportHeaderVO.getNapplynum().toString()); // 送检数量(设计单位),按设计计量单位统计的送检数量 | ||||
|                 itemObj.put("jldw", cunitname); // 计量单位 | ||||
|                 itemObj.put("bz",  getBz(bvo,reportItemVO.getCfirstbid())); // 明细备注,用于填写该送检物料的补充说明 | ||||
|                 itemObj.put("bipzyid", pkReportbill); // 质检报告ID | ||||
|                 itemObj.put("bipqdid", reportItemVO.getPk_reportbill_b()); // 质检报告明细ID | ||||
|                 contentArray.add(itemObj); | ||||
|             } | ||||
|             singleObj.put("Content", contentArray); | ||||
|             pushData(singleObj); | ||||
|             update.add(hvo.getPk_arriveorder()); | ||||
|             updateArrveOrder(hvo.getPk_arriveorder()); | ||||
|         } | ||||
| 
 | ||||
|     } | ||||
|     private Object getBz(ArriveItemVO[] bvo, String cfirstbid) { | ||||
|         for (ArriveItemVO arriveItemVO : bvo) { | ||||
|             if(arriveItemVO.getPk_arriveorder_b().equals(cfirstbid)) { | ||||
|                 return arriveItemVO.getVmemob(); | ||||
|             } | ||||
|         } | ||||
|         return null; | ||||
|     } | ||||
| 
 | ||||
|     private void updateArrveOrder(String pkArriveorder) throws DAOException { | ||||
|         BaseDAO dao = new BaseDAO(); | ||||
|         String sql = "update po_arriveorder_b set vbdef32='Y' where pk_arriveorder='" | ||||
|                 + pkArriveorder + "'"; | ||||
|         dao.executeUpdate(sql); | ||||
|     } | ||||
| 
 | ||||
|     private String getCghthVal(ArriveHeaderVO hvo, ArriveItemVO[] bvo) throws BusinessException { | ||||
|         String cghth = ""; | ||||
|         String pkPupsndoc = hvo.getPk_pupsndoc(); | ||||
|         // 查询采购员名称 | ||||
|         String name = ""; | ||||
|         if (pkPupsndoc != null && !pkPupsndoc.isEmpty() && !"~".equals(pkPupsndoc)) { | ||||
|             name = MyHelper.getStrValByCondition(PsndocVO.getDefaultTableName(), PsndocVO.NAME, | ||||
|                     PsndocVO.PK_PSNDOC + " = '" + pkPupsndoc + "'"); | ||||
|         } | ||||
|         if (bvo != null && bvo.length > 0) { | ||||
|             StringBuilder cghthBuilder = new StringBuilder(); | ||||
|             for (int i = 0; i < bvo.length; i++) { | ||||
|                 String vsourcecode = bvo[i].getVsourcecode(); | ||||
|                 if (vsourcecode == null || vsourcecode.isEmpty() || "~".equals(vsourcecode)) { | ||||
|                     continue; | ||||
|                 } | ||||
|                 if (i > 0) { | ||||
|                     cghthBuilder.append(","); | ||||
|                 } | ||||
|                 cghthBuilder.append(vsourcecode); | ||||
|                 if (!name.isEmpty()) { | ||||
|                     cghthBuilder.append(name); | ||||
|                 } | ||||
|             } | ||||
|             cghth = cghthBuilder.toString(); | ||||
|         } | ||||
|         return cghth; | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * 推送同步数据 | ||||
|      */ | ||||
|     private void pushData(JSONObject param) throws BusinessException { | ||||
|         // String jsonString = param.toJSONString(); | ||||
|         // 转json字符串的时候保留null值 | ||||
|         String jsonStr = JSON.toJSONString(param, | ||||
|                 SerializerFeature.WriteMapNullValue, | ||||
|                 SerializerFeature.WriteNullStringAsEmpty | ||||
|         ); | ||||
|         logger.error("QMS-QC-param = " + jsonStr); | ||||
|         NCCForUAPLogger.debug("QMS-QC-param = " + jsonStr); | ||||
|         String baseUrl = configParams.get("qmsBaseUrl"); | ||||
|         String requestUrl = baseUrl + reqUrl; | ||||
|         logger.error("QMS-QC-url = " + requestUrl); | ||||
|         // String result = ThirdPartyPostRequestUtil.sendPostRequest(requestUrl, jsonStr); | ||||
|         // NCCForUAPLogger.debug("QMS-QC-result = " + result); | ||||
|         // JSONObject resultObj = JSONObject.parseObject(result); | ||||
|         // logger.error("QMS-QC-res = " + result); | ||||
|         // | ||||
|         // if (!"true".equals(resultObj.getString("success"))) { | ||||
|         //     logger.error("QMS-QC-error,result[" + resultObj.toJSONString() + "]"); | ||||
|         //     throw new BusinessException("QMS-QC-error:" + resultObj.getString("message")); | ||||
|         // } | ||||
|     } | ||||
| 
 | ||||
|     private boolean checkIfOrg(String code, Map<String, String> configParams) throws BusinessException { | ||||
|         String targetCode = configParams.get("xbqcOrg"); | ||||
|         if (targetCode == null || StringUtils.isEmpty(targetCode)) { | ||||
|             throw new BusinessException("未配置组织参数"); | ||||
|         } | ||||
|         if (targetCode.contains("qc-")) { | ||||
|             targetCode = targetCode.replace("qc-", ""); | ||||
|         } | ||||
|         String[] orgItem = targetCode.split(","); | ||||
|         for (String orgCode : orgItem) { | ||||
|             if (!orgCode.isEmpty() && orgCode.equals(code)) { | ||||
|                 return false; | ||||
|             } | ||||
|         } | ||||
|         return true; | ||||
|     } | ||||
| 
 | ||||
|     public String skipNull(Object value) { | ||||
|         if ((value == null) || (value.toString().trim().length() == 0)) { | ||||
|             return ""; | ||||
|         } | ||||
|         return value.toString().trim(); | ||||
|     } | ||||
| } | ||||
		Loading…
	
		Reference in New Issue