销售订单新增-自定义档案调整-liz
This commit is contained in:
		
							parent
							
								
									17898b3e6e
								
							
						
					
					
						commit
						46bd2e52ed
					
				|  | @ -4,10 +4,10 @@ import nc.bd.itf.tools.BFPubTools; | |||
| import nc.bs.dao.BaseDAO; | ||||
| import nc.bs.framework.common.InvocationInfoProxy; | ||||
| import nc.bs.framework.common.NCLocator; | ||||
| import nc.bs.logging.Log; | ||||
| import nc.itf.bd.defdoc.IDefdocService; | ||||
| import nc.itf.pim.project.prv.IProject; | ||||
| import nc.jdbc.framework.SQLParameter; | ||||
| import nc.jdbc.framework.processor.ColumnListProcessor; | ||||
| import nc.jdbc.framework.processor.ColumnProcessor; | ||||
| import nc.jdbc.framework.processor.MapProcessor; | ||||
| import nc.vo.bd.defdoc.DefdocVO; | ||||
|  | @ -15,13 +15,14 @@ import nc.vo.pim.project.ProjectHeadVO; | |||
| import nc.vo.pub.BusinessException; | ||||
| import nc.vo.pub.lang.UFDateTime; | ||||
| import nc.vo.pubapp.AppContext; | ||||
| import nc.vo.so.m30.entity.SaleOrderBVO; | ||||
| import nc.vo.so.m30.entity.SaleOrderHVO; | ||||
| import nc.vo.so.m30.entity.SaleOrderVO; | ||||
| import nc.ws.opm.pub.utils.result.APIErrCodeEnum; | ||||
| import nccloud.api.rest.utils.NCCRestUtils; | ||||
| import nccloud.api.rest.utils.ResultMessageUtil; | ||||
| import nccloud.api.so.m30.IAPISaleOrderMaitain; | ||||
| import nccloud.api.so.m30.IAPISaleOrderQuery; | ||||
| import nccloud.baseapp.core.log.NCCForUAPLogger; | ||||
| import nccloud.commons.lang.StringUtils; | ||||
| import nccloud.openapi.scmpub.pub.NCCPubRestResource; | ||||
| import nccloud.openapi.scmpub.pub.TransferCodeToPKTool; | ||||
|  | @ -33,9 +34,7 @@ import javax.ws.rs.Consumes; | |||
| import javax.ws.rs.POST; | ||||
| import javax.ws.rs.Path; | ||||
| import javax.ws.rs.Produces; | ||||
| import java.util.ArrayList; | ||||
| import java.util.List; | ||||
| import java.util.Map; | ||||
| import java.util.*; | ||||
| 
 | ||||
| 
 | ||||
| /** | ||||
|  | @ -45,7 +44,7 @@ import java.util.Map; | |||
| 
 | ||||
| @Path("so/saleorder") | ||||
| public class SaleOrderResource extends NCCPubRestResource { | ||||
| 
 | ||||
|     private static Log log = Log.getInstance("biptonccsaleorder"); | ||||
|     private static String BODYTABLE = "so_saleorder_b"; | ||||
|     private static String HEADTABLE = "so_saleorder"; | ||||
|     public BaseDAO dao; | ||||
|  | @ -134,7 +133,9 @@ public class SaleOrderResource extends NCCPubRestResource { | |||
|             } | ||||
|             // 新增自定义档案 | ||||
|             SaleOrderVO[] salevos = OpenAPIParaUtil.changeVO(paramList, HEADTABLE, BODYTABLE); | ||||
|             genDef(salevos); | ||||
|             log.error("销售订单根据自定义项创建档案开始-----------------------"); | ||||
|             List<DefdocVO> defdocVOS = genDef(salevos); | ||||
| 
 | ||||
|             for (Map<String, Object> map : paramList) { | ||||
|                 BaseDAO baseDAO = new BaseDAO(); | ||||
|                 Map<String, Object> headdata = (Map<String, Object>) map.get(HEADTABLE); | ||||
|  | @ -149,21 +150,104 @@ public class SaleOrderResource extends NCCPubRestResource { | |||
| 
 | ||||
|             // 参数形式转换为vo并翻译 | ||||
|             List<SaleOrderVO> vosList = TransferMapToVOTool.transferMapToAggVO(paramList, SaleOrderVO.class); | ||||
|             //根据返回的defdocVOS先行翻译 | ||||
|             if(defdocVOS!=null && defdocVOS.size()>0){ | ||||
|                 Map<String,Map<String,String>> deflist_map = new HashMap<>(); | ||||
|                 for(DefdocVO defdocVO : defdocVOS){ | ||||
|                     String pkDefdoclist = defdocVO.getPk_defdoclist(); | ||||
|                     String code = defdocVO.getCode(); | ||||
|                     String pkDefdoc = defdocVO.getPk_defdoc(); | ||||
|                     log.error("销售订单保存接口:档案列表编号【"+pkDefdoclist+"】,档案编号【"+code+"】,档案主键【"+pkDefdoc+"】"); | ||||
|                     if(deflist_map.containsKey(pkDefdoclist)){ | ||||
|                         Map<String, String> stringStringMap = deflist_map.get(pkDefdoclist); | ||||
|                         if(!stringStringMap.containsKey(code)){ | ||||
|                             stringStringMap.put(code, pkDefdoc); | ||||
|                         } | ||||
|                     }else{ | ||||
|                         Map<String, String> code_DefdocMap = new HashMap<>(); | ||||
|                         code_DefdocMap.put(code, pkDefdoc); | ||||
|                         deflist_map.put(pkDefdoclist, code_DefdocMap); | ||||
|                     } | ||||
|                 } | ||||
|                 for(SaleOrderVO saleOrderVO : vosList){ | ||||
|                     SaleOrderHVO parentVO = saleOrderVO.getParentVO(); | ||||
|                     String vdef6 = BFPubTools.getString_TrimAsNull(parentVO.getVdef6()); | ||||
|                     String vdef2 = BFPubTools.getString_TrimAsNull(parentVO.getVdef2()); | ||||
|                     String vdef13 = BFPubTools.getString_TrimAsNull(parentVO.getVdef13()); | ||||
|                     if (vdef6 != "") { | ||||
|                         Map<String, String> stringStringMap = deflist_map.get("zdy-001"); | ||||
|                         if(stringStringMap!=null&&stringStringMap.size()>0){ | ||||
|                             String defpk = stringStringMap.get(vdef6); | ||||
|                             if(defpk!=null){ | ||||
|                                 parentVO.setVdef6(defpk); | ||||
|                             } | ||||
|                         } | ||||
|                     } | ||||
|                     if (vdef2 != "") { | ||||
|                         Map<String, String> stringStringMap = deflist_map.get("BQxmh"); | ||||
|                         if(stringStringMap!=null&&stringStringMap.size()>0){ | ||||
|                             String defpk = stringStringMap.get(vdef2); | ||||
|                             if(defpk!=null){ | ||||
|                                 parentVO.setVdef2(defpk); | ||||
|                             } | ||||
|                         } | ||||
|                     } | ||||
|                     if (vdef13 != "") { | ||||
|                         Map<String, String> stringStringMap = deflist_map.get("BIP-ddh"); | ||||
|                         if(stringStringMap!=null&&stringStringMap.size()>0){ | ||||
|                             String defpk = stringStringMap.get(vdef13); | ||||
|                             if(defpk!=null){ | ||||
|                                 parentVO.setVdef13(defpk); | ||||
|                             } | ||||
|                         } | ||||
|                     } | ||||
|                     //表体自定义项翻译--vbdef1值与vdef6相同,vbdef5与vdef13相同 | ||||
|                     SaleOrderBVO[] childrenVO = saleOrderVO.getChildrenVO(); | ||||
|                     for(SaleOrderBVO saleOrderBVO : saleOrderVO.getChildrenVO()){ | ||||
|                         String vbdef1 = saleOrderBVO.getVbdef1(); | ||||
|                         Map<String, String> zdy_001 = deflist_map.get("zdy-001"); | ||||
|                         if(zdy_001!=null&&zdy_001.size()>0){ | ||||
|                             String defpk = zdy_001.get(vbdef1); | ||||
|                             if(defpk!=null){ | ||||
|                                 saleOrderBVO.setVbdef1(defpk); | ||||
|                             } | ||||
|                         } | ||||
|                         String vbdef5 = saleOrderBVO.getVbdef5(); | ||||
|                         Map<String, String> bip_ddh = deflist_map.get("BIP-ddh"); | ||||
|                         if(bip_ddh!=null&&bip_ddh.size()>0){ | ||||
|                             String defpk = bip_ddh.get(vbdef5); | ||||
|                             if(defpk!=null){ | ||||
|                                 saleOrderBVO.setVbdef5(defpk); | ||||
|                             } | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             }else{ | ||||
|                 log.error("销售订单保存接口:新增/已存在的档案没有,可能json自定义项无值"); | ||||
|             } | ||||
|             //翻译前打印各个档案值 | ||||
|             for (SaleOrderVO saleOrderVO : vosList) { | ||||
|                 SaleOrderHVO parentVO = saleOrderVO.getParentVO(); | ||||
|                 log.error("销售订单保存接口:vdef6【"+parentVO.getVdef6()+"】,vdef2【"+parentVO.getVdef2()+"】,vdef13【"+parentVO.getVdef13()+"】"); | ||||
|             } | ||||
|             vosList = TransferCodeToPKTool.transferAggVO(vosList); | ||||
|             SaleOrderVO[] vos = vosList.toArray(new SaleOrderVO[vosList.size()]); | ||||
| 
 | ||||
|             // 调用接口保存 | ||||
|             IAPISaleOrderMaitain service = NCLocator.getInstance().lookup(IAPISaleOrderMaitain.class); | ||||
|             SaleOrderVO[] results = service.save(vos); | ||||
|             log.error("销售订单根据自定义项创建档案结束-----------------------"); | ||||
|             // 包装返回信息 | ||||
|             return NCCRestUtils.toJSONString(CallReturnBuildUtil.buildSuccessResult(results, "销售订单保存成功")); | ||||
|         } catch (Exception e) { | ||||
|             log.error("销售订单根据自定义项创建档案结束-----------------------"); | ||||
|             return NCCRestUtils.toJSONString(CallReturnBuildUtil.buildFailResult(null, "销售单保存异常:" + e.getMessage())); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     private void genDef(SaleOrderVO[] salevos) throws BusinessException { | ||||
|     private List<DefdocVO> genDef(SaleOrderVO[] salevos) throws BusinessException { | ||||
|         BaseDAO baseDAO = new BaseDAO(); | ||||
|         List<DefdocVO> allDefDoc = new ArrayList<DefdocVO>(); | ||||
|         ArrayList<String> arrhth = new ArrayList<String>(); | ||||
|         ArrayList<String> arrxmh = new ArrayList<String>(); | ||||
|         ArrayList<String> arrxsddh = new ArrayList<String>(); | ||||
|  | @ -204,46 +288,62 @@ public class SaleOrderResource extends NCCPubRestResource { | |||
| 
 | ||||
|         } | ||||
|         if (arrhth.size() > 0) { | ||||
|             sql = " select code from bd_defdoc where  pk_defdoclist in(select pk_defdoclist from bd_defdoclist  where code='zdy-001') and pk_org='" + o + "' and  "; | ||||
|             sql = " pk_defdoclist in(select pk_defdoclist from bd_defdoclist  where code='zdy-001') and pk_org='" + o + "' and  "; | ||||
|             sql += BFPubTools.getInSqlWithOutAnd("code", arrhth, 0, arrhth.size()); | ||||
|             ArrayList<String> obj_arrhth = (ArrayList<String>) baseDAO.executeQuery(sql, new ColumnListProcessor()); | ||||
| //            ArrayList<String> obj_arrhth = (ArrayList<String>) baseDAO.executeQuery(sql, new ColumnListProcessor()); | ||||
|             List<DefdocVO> obj_arrhth = (List<DefdocVO>) dao.retrieveByClause(DefdocVO.class, sql); | ||||
|             if (obj_arrhth != null && obj_arrhth.size() > 0) { | ||||
|                 arrhth.removeAll(obj_arrhth); | ||||
|                 List<String> defCode=new ArrayList<>(); | ||||
|                 obj_arrhth.stream().forEach(defdoc -> {defdoc.setPk_defdoclist("zdy-001");defCode.add(defdoc.getCode());}); | ||||
|                 arrhth.removeAll(defCode); | ||||
|                 allDefDoc.addAll(obj_arrhth); | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         // 组装销售订单数据 | ||||
|         if (arrhth.size() > 0) { | ||||
|             NCLocator.getInstance().lookup(IDefdocService.class).insertDefdocs(o, createDefVO(arrhth, "zdy-001", o.toString())); | ||||
|             DefdocVO[] defdocVOS = NCLocator.getInstance().lookup(IDefdocService.class).insertDefdocs(o, createDefVO(arrhth, "zdy-001", o.toString())); | ||||
|             Arrays.stream(defdocVOS).forEach(defdoc -> defdoc.setPk_defdoclist("zdy-001")); | ||||
|             allDefDoc.addAll(Arrays.asList(defdocVOS)); | ||||
|         } | ||||
| 
 | ||||
|         if (arrxmh.size() > 0) { | ||||
|             sql = " select code from bd_defdoc where  pk_defdoclist in(select pk_defdoclist from bd_defdoclist  where code='BQxmh') and pk_org='" + o + "' and "; | ||||
|             sql = " pk_defdoclist in(select pk_defdoclist from bd_defdoclist  where code='BQxmh') and pk_org='" + o + "' and "; | ||||
|             sql += BFPubTools.getInSqlWithOutAnd("code", arrxmh, 0, arrxmh.size()); | ||||
|             ArrayList<String> obj_arrhth = (ArrayList<String>) baseDAO.executeQuery(sql, new ColumnListProcessor()); | ||||
| 
 | ||||
| //            ArrayList<String> obj_arrhth = (ArrayList<String>) baseDAO.executeQuery(sql, new ColumnListProcessor()); | ||||
|             List<DefdocVO> obj_arrhth = (List<DefdocVO>) dao.retrieveByClause(DefdocVO.class, sql); | ||||
|             if (obj_arrhth != null && obj_arrhth.size() > 0) { | ||||
| 
 | ||||
|                 arrxmh.removeAll(obj_arrhth); | ||||
|                 List<String> defCode=new ArrayList<>(); | ||||
|                 obj_arrhth.stream().forEach(defdoc -> {defdoc.setPk_defdoclist("BQxmh");defCode.add(defdoc.getCode());}); | ||||
|                 arrxmh.removeAll(defCode); | ||||
|                 allDefDoc.addAll(obj_arrhth); | ||||
|             } | ||||
| 
 | ||||
|         } | ||||
|         if (arrxmh.size() > 0) { | ||||
|             NCLocator.getInstance().lookup(IDefdocService.class).insertDefdocs(o, createDefVO(arrxmh, "BQxmh", o.toString())); | ||||
|             DefdocVO[] defdocVOS = NCLocator.getInstance().lookup(IDefdocService.class).insertDefdocs(o, createDefVO(arrxmh, "BQxmh", o.toString())); | ||||
|             Arrays.stream(defdocVOS).forEach(defdoc -> defdoc.setPk_defdoclist("BQxmh")); | ||||
|             allDefDoc.addAll(Arrays.asList(defdocVOS)); | ||||
|         } | ||||
| 
 | ||||
|         if (arrxsddh.size() > 0) { | ||||
|             sql = " select code from bd_defdoc where  pk_defdoclist in( select pk_defdoclist from bd_defdoclist  where code='BIP-ddh') and pk_org='" + o + "' and  "; | ||||
|             sql = " pk_defdoclist in( select pk_defdoclist from bd_defdoclist  where code='BIP-ddh') and pk_org='" + o + "' and  "; | ||||
|             sql += BFPubTools.getInSqlWithOutAnd("code", arrxsddh, 0, arrxsddh.size()); | ||||
|             ArrayList<String> obj_arrhth = (ArrayList<String>) baseDAO.executeQuery(sql, new ColumnListProcessor()); | ||||
| //            ArrayList<String> obj_arrhth = (ArrayList<String>) baseDAO.executeQuery(sql, new ColumnListProcessor()); | ||||
|             List<DefdocVO> obj_arrhth = (List<DefdocVO>) dao.retrieveByClause(DefdocVO.class, sql); | ||||
|             if (obj_arrhth != null && obj_arrhth.size() > 0) { | ||||
|                 arrxsddh.removeAll(obj_arrhth); | ||||
|                 List<String> defCode=new ArrayList<>(); | ||||
|                 obj_arrhth.stream().forEach(defdoc -> {defdoc.setPk_defdoclist("BIP-ddh");defCode.add(defdoc.getCode());}); | ||||
|                 arrxsddh.removeAll(defCode); | ||||
|                 allDefDoc.addAll(obj_arrhth); | ||||
|             } | ||||
|         } | ||||
|         if (arrxsddh.size() > 0) { | ||||
|             NCLocator.getInstance().lookup(IDefdocService.class).insertDefdocs(o, createDefVO(arrxsddh, "BIP-ddh", o.toString())); | ||||
|             DefdocVO[] defdocVOS = NCLocator.getInstance().lookup(IDefdocService.class).insertDefdocs(o, createDefVO(arrxsddh, "BIP-ddh", o.toString())); | ||||
|             Arrays.stream(defdocVOS).forEach(defdoc -> defdoc.setPk_defdoclist("BIP-ddh")); | ||||
|             allDefDoc.addAll(Arrays.asList(defdocVOS)); | ||||
|         } | ||||
| 
 | ||||
|         return allDefDoc; | ||||
|     } | ||||
| 
 | ||||
|     private void createPro(String cprocode, String cproname, Map map) throws BusinessException { | ||||
|  | @ -499,7 +599,7 @@ public class SaleOrderResource extends NCCPubRestResource { | |||
|             // 删除最后的", " | ||||
|             sql.delete(sql.length() - 2, sql.length()); | ||||
|             sql.append(" where csaleorderbid = ?"); | ||||
|             NCCForUAPLogger.debug("updateDef-sql:" + sql); | ||||
|             // NCCForUAPLogger.debug("updateDef-sql:" + sql); | ||||
|             parameter.addParam(csaleorderbid); | ||||
|             BaseDAO baseDAO = new BaseDAO(); | ||||
|             // 修改销售订单子表 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue