销售订单新增-自定义档案调整-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