408 lines
14 KiB
Java
408 lines
14 KiB
Java
|
|
package nccloud.api.mmbd.dchangemanage.dchangemaster;
|
|||
|
|
|
|||
|
|
import java.lang.reflect.Field;
|
|||
|
|
|
|||
|
|
import javax.ws.rs.Consumes;
|
|||
|
|
import javax.ws.rs.POST;
|
|||
|
|
import javax.ws.rs.Path;
|
|||
|
|
import javax.ws.rs.Produces;
|
|||
|
|
import java.lang.StringBuilder;
|
|||
|
|
import java.math.BigDecimal;
|
|||
|
|
import java.util.*;
|
|||
|
|
import java.util.Map.Entry;
|
|||
|
|
|
|||
|
|
import nc.bs.dao.BaseDAO;
|
|||
|
|
import nc.bs.trade.business.HYPubBO;
|
|||
|
|
import nc.bs.uapbd.util.MyHelper;
|
|||
|
|
import nc.itf.mmbd.dchange.dchangemaster.IDchangeMasterVOService;
|
|||
|
|
import nc.itf.mmpac.pickm.IPickmQueryService;
|
|||
|
|
import nc.jdbc.framework.processor.MapListProcessor;
|
|||
|
|
import nc.jdbc.framework.processor.MapProcessor;
|
|||
|
|
import nc.uif.pub.exception.UifException;
|
|||
|
|
import nc.util.mmf.framework.base.MMValueCheck;
|
|||
|
|
import nc.vo.dchange.dchange.DchangeMasterVO;
|
|||
|
|
import nc.vo.dchange.dchange.DchangeSlave0VO;
|
|||
|
|
import nc.vo.dchange.dchange.DchangeSlave1VO;
|
|||
|
|
import nc.vo.dchange.dchange.DchangeSlave2VO;
|
|||
|
|
import nc.vo.mmpac.pickm.entity.AggPickmVO;
|
|||
|
|
import nc.vo.mmpps.mps0202.AggregatedPoVO;
|
|||
|
|
import nccloud.framework.service.ServiceLocator;
|
|||
|
|
import nccloud.pubift.commen.itf.utils.IHttpPostOtherSys;
|
|||
|
|
import org.json.JSONString;
|
|||
|
|
|
|||
|
|
import com.alibaba.fastjson.JSON;
|
|||
|
|
import com.alibaba.fastjson.JSONArray;
|
|||
|
|
import com.alibaba.fastjson.JSONObject;
|
|||
|
|
|
|||
|
|
import nccloud.ws.rest.resource.AbstractNCCRestResource;
|
|||
|
|
import nccloud.api.rest.utils.ResultMessageUtil;
|
|||
|
|
import nccloud.commons.lang.ArrayUtils;
|
|||
|
|
import nccloud.commons.lang.StringUtils;
|
|||
|
|
import nc.bs.framework.common.NCLocator;
|
|||
|
|
import nc.vo.pub.JavaType;
|
|||
|
|
import nc.vo.pub.IAttributeMeta;
|
|||
|
|
import nc.vo.pub.BusinessException;
|
|||
|
|
import nc.vo.pub.SuperVO;
|
|||
|
|
import nc.vo.pub.VOStatus;
|
|||
|
|
import nc.vo.pub.lang.UFBoolean;
|
|||
|
|
import nc.vo.pub.lang.UFDate;
|
|||
|
|
import nc.vo.pub.lang.UFDateTime;
|
|||
|
|
import nc.vo.pub.lang.UFDouble;
|
|||
|
|
import nc.vo.pub.lang.UFLiteralDate;
|
|||
|
|
import nc.vo.pub.lang.UFTime;
|
|||
|
|
|
|||
|
|
@Path("mmbd/dchangemanage/dchangeMaster")
|
|||
|
|
public class DchangeMasterManageResources extends AbstractNCCRestResource {
|
|||
|
|
|
|||
|
|
private Map<String, String> fieldsNameAndType = new HashMap<>();
|
|||
|
|
|
|||
|
|
private Map<String, Map<String, String>> bodyFieldsNameAndTypes = new HashMap<>();
|
|||
|
|
|
|||
|
|
@Override
|
|||
|
|
public String getModule() {
|
|||
|
|
return "mmbd";
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
@POST
|
|||
|
|
@Path("/adddchangeMasterVO")
|
|||
|
|
@Consumes({ "application/json" })
|
|||
|
|
@Produces({ "application/json" })
|
|||
|
|
public JSONString adddchangeMasterVO(JSONString json) {
|
|||
|
|
return dealJson(json, "adddchangeMasterVO");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
@POST
|
|||
|
|
@Path("/deletedchangeMasterVO")
|
|||
|
|
@Consumes({ "application/json" })
|
|||
|
|
@Produces({ "application/json" })
|
|||
|
|
public JSONString deletedchangeMasterVO(JSONString json) {
|
|||
|
|
return dealJson(json, "deletedchangeMasterVO");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
@POST
|
|||
|
|
@Path("/updatedchangeMasterVO")
|
|||
|
|
@Consumes({ "application/json" })
|
|||
|
|
@Produces({ "application/json" })
|
|||
|
|
public JSONString updatedchangeMasterVO(JSONString json) {
|
|||
|
|
return dealJson(json, "updatedchangeMasterVO");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
@POST
|
|||
|
|
@Path("/querydchangeMasterVO")
|
|||
|
|
@Consumes({ "application/json" })
|
|||
|
|
@Produces({ "application/json" })
|
|||
|
|
public JSONString querydchangeMasterVO(JSONString json) {
|
|||
|
|
return dealJson(json, "querydchangeMasterVO");
|
|||
|
|
}
|
|||
|
|
@POST
|
|||
|
|
@Path("/insert")
|
|||
|
|
@Consumes({ "application/json" })
|
|||
|
|
@Produces({ "application/json" })
|
|||
|
|
public JSONString insert(JSONString json) throws BusinessException {
|
|||
|
|
JSONObject obj = JSON.parseObject(json.toJSONString());
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD>ýӿ<C3BD><D3BF><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
DchangeMasterVO vo = buildVO1(obj, true);
|
|||
|
|
DchangeMasterVO[] result = null;
|
|||
|
|
try{
|
|||
|
|
result = getService().saveDchangeMasterVO(vo);
|
|||
|
|
} catch(BusinessException e) {
|
|||
|
|
return ResultMessageUtil.exceptionToJSON(e);
|
|||
|
|
}
|
|||
|
|
JSONObject returnJson = new JSONObject();
|
|||
|
|
returnJson.put("result", result);
|
|||
|
|
return ResultMessageUtil.toJSON(returnJson);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
private JSONString dealJson(JSONString json, String methodName) {
|
|||
|
|
if(json == null) {
|
|||
|
|
return ResultMessageUtil.exceptionToJSON(new NullPointerException("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>"));
|
|||
|
|
}
|
|||
|
|
JSONObject obj = JSON.parseObject(json.toJSONString());
|
|||
|
|
if(methodName.indexOf("add") >= 0) {
|
|||
|
|
StringBuilder builder = requiredFieldsValidate(obj);
|
|||
|
|
if(builder.length() > 0) {
|
|||
|
|
String addError = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD>ֵ<EFBFBD><EFBFBD>Ϊ<EFBFBD>յı<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD>" + builder.deleteCharAt(builder.length() - 1).toString();
|
|||
|
|
return ResultMessageUtil.exceptionToJSON(new NullPointerException(addError));
|
|||
|
|
} else {
|
|||
|
|
// <20><><EFBFBD>ýӿ<C3BD><D3BF><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
DchangeMasterVO vo = buildVO(obj, true);
|
|||
|
|
DchangeMasterVO[] result = null;
|
|||
|
|
try{
|
|||
|
|
result = getService().saveDchangeMasterVO(vo);
|
|||
|
|
} catch(BusinessException e) {
|
|||
|
|
return ResultMessageUtil.exceptionToJSON(e);
|
|||
|
|
}
|
|||
|
|
JSONObject returnJson = new JSONObject();
|
|||
|
|
returnJson.put("result", result);
|
|||
|
|
return ResultMessageUtil.toJSON(returnJson);
|
|||
|
|
}
|
|||
|
|
} else if(methodName.indexOf("delete") >= 0) {
|
|||
|
|
String entityPk = obj.getString("pk_dchangemaster");
|
|||
|
|
if(StringUtils.isEmpty(entityPk)) {
|
|||
|
|
return ResultMessageUtil.exceptionToJSON(new NullPointerException("ɾ<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>"));
|
|||
|
|
}
|
|||
|
|
// ɾ<><C9BE><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>ȫ<EFBFBD>֡<EFBFBD><D6A1><EFBFBD><EFBFBD>ź<EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD>Ԫ
|
|||
|
|
String pk_org = obj.getString("pk_org");
|
|||
|
|
// <20><><EFBFBD><EFBFBD>û<EFBFBD>д<EFBFBD>pk_org, Ĭ<><C4AC><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB>
|
|||
|
|
if(StringUtils.isEmpty(pk_org)) {
|
|||
|
|
pk_org = "GLOBLE00000000000000";
|
|||
|
|
}
|
|||
|
|
// <20><><EFBFBD>ýӿ<C3BD>ɾ<EFBFBD><C9BE>
|
|||
|
|
JSONObject returnJson = new JSONObject();
|
|||
|
|
Map<String, String> tsMap = new HashMap<>();
|
|||
|
|
DchangeMasterVO[] vos = null;
|
|||
|
|
try {
|
|||
|
|
vos = getService().listDchangeMasterVOByPk("pk_dchangemaster = '" + entityPk + "'", false);
|
|||
|
|
} catch (BusinessException e) {
|
|||
|
|
ResultMessageUtil.exceptionToJSON(e);
|
|||
|
|
}
|
|||
|
|
if(ArrayUtils.isNotEmpty(vos)) {
|
|||
|
|
tsMap.put(vos[0].getAttributeValue("pk_dchangemaster").toString(), vos[0].getTs().toString());
|
|||
|
|
}
|
|||
|
|
DchangeMasterVO[] result = null;
|
|||
|
|
try {
|
|||
|
|
result = getService().deleteDchangeMasterVOs(tsMap);
|
|||
|
|
} catch (BusinessException e) {
|
|||
|
|
ResultMessageUtil.exceptionToJSON(e);
|
|||
|
|
}
|
|||
|
|
returnJson.put("result", result);
|
|||
|
|
return ResultMessageUtil.toJSON(returnJson);
|
|||
|
|
} else if(methodName.indexOf("update") >= 0) {
|
|||
|
|
JSONObject object = (JSONObject)obj.get("dchangeMaster");
|
|||
|
|
String entityPk = object.getString("pk_dchangemaster");
|
|||
|
|
if(StringUtils.isEmpty(entityPk)) {
|
|||
|
|
return ResultMessageUtil.exceptionToJSON(new NullPointerException("<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>"));
|
|||
|
|
}
|
|||
|
|
StringBuilder builder = requiredFieldsValidate(obj);
|
|||
|
|
if(builder.length() > 0) {
|
|||
|
|
String updateError = "<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD>ֵ<EFBFBD><EFBFBD>Ϊ<EFBFBD>յı<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD>" + builder.deleteCharAt(builder.length() - 1).toString();
|
|||
|
|
return ResultMessageUtil.exceptionToJSON(new NullPointerException(updateError));
|
|||
|
|
} else {
|
|||
|
|
// <20><><EFBFBD>ýӿ<C3BD><D3BF><EFBFBD>
|
|||
|
|
DchangeMasterVO vo = buildVO(obj, false);
|
|||
|
|
DchangeMasterVO[] result = null;
|
|||
|
|
JSONObject returnJson = new JSONObject();
|
|||
|
|
try{
|
|||
|
|
result = getService().saveDchangeMasterVO(vo);
|
|||
|
|
} catch(BusinessException e) {
|
|||
|
|
return ResultMessageUtil.exceptionToJSON(e);
|
|||
|
|
}
|
|||
|
|
returnJson.put("result", result);
|
|||
|
|
return ResultMessageUtil.toJSON(returnJson);
|
|||
|
|
}
|
|||
|
|
} else if(methodName.indexOf("query") >= 0) {
|
|||
|
|
// <20><>ѯʱ<D1AF><CAB1>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD>Ԫ<EFBFBD><D4AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
StringBuilder sqlBuilder = new StringBuilder(" isnull(dr, 0) = 0");
|
|||
|
|
Set<Entry<String, Object>> entrySet = obj.entrySet();
|
|||
|
|
Iterator<Entry<String, Object>> iterator = entrySet.iterator();
|
|||
|
|
while(iterator.hasNext()) {
|
|||
|
|
Entry<String, Object> entry = iterator.next();
|
|||
|
|
if(entry.getValue() != null) {
|
|||
|
|
sqlBuilder.append(" and " + entry.getKey() + "='" + entry.getValue() + "'");
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
DchangeMasterVO[] results = null;
|
|||
|
|
try {
|
|||
|
|
String[] pks = getService().listDchangeMasterVOPkByCond(sqlBuilder.toString());
|
|||
|
|
results = getService().listDchangeMasterVOByPk(pks, false);
|
|||
|
|
} catch (BusinessException e) {
|
|||
|
|
return ResultMessageUtil.exceptionToJSON(e);
|
|||
|
|
}
|
|||
|
|
JSONObject returnJson = new JSONObject();
|
|||
|
|
returnJson.put("result", results);
|
|||
|
|
return ResultMessageUtil.toJSON(returnJson);
|
|||
|
|
}
|
|||
|
|
return null;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private StringBuilder requiredFieldsValidate(JSONObject obj) {
|
|||
|
|
StringBuilder builder = new StringBuilder();
|
|||
|
|
List<String> notNullFields = getRequiredFields(obj);
|
|||
|
|
JSONObject object = (JSONObject)obj.get("dchangeMaster");
|
|||
|
|
for(String notNullField : notNullFields) {
|
|||
|
|
Object val = object.get(notNullField);
|
|||
|
|
if(val == null){
|
|||
|
|
builder.append(notNullField + ",");
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
return builder;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private DchangeMasterVO buildVO(JSONObject json, boolean isAdd) {
|
|||
|
|
if(json.get("dchangeMaster") == null) {
|
|||
|
|
throw new NullPointerException("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>в<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD>");
|
|||
|
|
}
|
|||
|
|
int voStatus = isAdd ? VOStatus.NEW : VOStatus.UPDATED;
|
|||
|
|
|
|||
|
|
// <20><>ʵ<EFBFBD><CAB5>
|
|||
|
|
JSONObject headJson = (JSONObject) json.get("dchangeMaster");
|
|||
|
|
DchangeMasterVO headVO = new DchangeMasterVO();
|
|||
|
|
IAttributeMeta[] headAttrs = headVO.getMetaData().getAttributes();
|
|||
|
|
for (IAttributeMeta attribute : headAttrs) {
|
|||
|
|
Object value = getValueByAttr(headJson, attribute);
|
|||
|
|
headVO.setAttributeValue(attribute.getName(), value);
|
|||
|
|
}
|
|||
|
|
headVO.setStatus(voStatus);
|
|||
|
|
|
|||
|
|
return headVO;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private DchangeMasterVO buildVO1(JSONObject json, boolean isAdd) throws BusinessException {
|
|||
|
|
if(json.get("dchangeMaster") == null) {
|
|||
|
|
throw new NullPointerException("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>в<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD>");
|
|||
|
|
}
|
|||
|
|
HYPubBO hy = new HYPubBO();
|
|||
|
|
int voStatus = isAdd ? VOStatus.NEW : VOStatus.UPDATED;
|
|||
|
|
// <20><>ʵ<EFBFBD><CAB5>
|
|||
|
|
JSONObject headJson = (JSONObject) json.get("dchangeMaster");
|
|||
|
|
// BOM<4F>汾<EFBFBD><E6B1BE>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
String bomVersion = headJson.getString("bomVersion");
|
|||
|
|
String pcode=headJson.getString("pcode");
|
|||
|
|
String ccode=headJson.getString("ccode");
|
|||
|
|
UFDouble beforenum=new UFDouble(headJson.getString("beforenum")) ;
|
|||
|
|
UFDouble afternum=new UFDouble(headJson.getString("afternum")) ;
|
|||
|
|
// <09>ȸ<EFBFBD><C8B8><EFBFBD>bom<6F>汾<EFBFBD>ź<C5BA><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>루<EFBFBD><EBA3A8>Ʒ<EFBFBD><C6B7><EFBFBD>룩<EFBFBD><EBA3A9>ѯ<EFBFBD><D1AF><EFBFBD>ϼƻ<CFBC> <20>Ȳ<EFBFBD>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>id<69><64><EFBFBD>ڲ<EFBFBD>ѯbom<6F>汾
|
|||
|
|
Object pk_material = hy.findColValue("bd_material", "pk_material", "code = '"+pcode+"' and nvl(dr,0)=0 ");
|
|||
|
|
|
|||
|
|
Object cmrl = hy.findColValue("bd_material", "pk_material", "code = '"+ccode+"' and nvl(dr,0)=0 ");
|
|||
|
|
|
|||
|
|
Object cbomid = hy.findColValue("bd_bom", "cbomid", "hcmaterialvid = '"+pk_material+"' and hversion=<3D><>"+bomVersion+"<EFBFBD><EFBFBD> and nvl(dr,0)=0 ");
|
|||
|
|
|
|||
|
|
|
|||
|
|
Object cpickmid=hy.findColValue("mm_pickm", "cpickmid", "cmaterialvid = '"+pk_material+"' and vbomversion=<3D><>"+cbomid+"<EFBFBD><EFBFBD> and nvl(dr,0)=0 ");
|
|||
|
|
|
|||
|
|
AggPickmVO aggVOs = null;
|
|||
|
|
IPickmQueryService service =NCLocator.getInstance().lookup(IPickmQueryService.class);
|
|||
|
|
aggVOs =service.querySingleBillByPk((String) cpickmid);
|
|||
|
|
DchangeMasterVO dchangeMasterVO = new DchangeMasterVO();
|
|||
|
|
dchangeMasterVO.setBom_v((String) cbomid);
|
|||
|
|
dchangeMasterVO.setPcode(pcode);
|
|||
|
|
// DchangeSlave0VO[] dchangeSlave0VOS=null;
|
|||
|
|
// <09><>ѯ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD>ӱ<EFBFBD><D3B1><EFBFBD><EFBFBD><EFBFBD> <09><><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>ϸ
|
|||
|
|
List<DchangeSlave0VO> list = null;
|
|||
|
|
List<String> code =new ArrayList<>();
|
|||
|
|
if (aggVOs != null) {
|
|||
|
|
code.add(aggVOs.getParentVO().getVbillcode());
|
|||
|
|
for (int j=0;j<aggVOs.getChildrenVO().length;j++) {
|
|||
|
|
Map<String,Object> map = new HashMap<>();
|
|||
|
|
// if(aggVOs.getChildrenVO()[j].getAttributeValue("cbmaterialvid").equals(cmrl)){
|
|||
|
|
DchangeSlave0VO slave0VO=new DchangeSlave0VO();
|
|||
|
|
slave0VO.setAfternum(afternum);
|
|||
|
|
slave0VO.setCbmaterialvid((String) cmrl);
|
|||
|
|
slave0VO.setBeforenum(beforenum);
|
|||
|
|
list.add(slave0VO);
|
|||
|
|
// }
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
dchangeMasterVO.setDchangeslave0_dchangeslave0(list.toArray(new DchangeSlave0VO[0]));
|
|||
|
|
// <20><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>ʱmrp<72>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƻ<EFBFBD> <20><> <09><><EFBFBD>ƻ<EFBFBD>
|
|||
|
|
// AggregatedPoVO aggregatedPoVO =
|
|||
|
|
// SELECT
|
|||
|
|
// cmaterialvid,
|
|||
|
|
// nassaccponum,
|
|||
|
|
// nassaccpraynum
|
|||
|
|
//FROM
|
|||
|
|
// mm_plo
|
|||
|
|
//WHERE
|
|||
|
|
// fpotype = '1'
|
|||
|
|
// AND vsrccode IN ('55A32025031500426880')
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
// OrgVO orgvo = (OrgVO)hy.queryByPrimaryKey(OrgVO.class, );
|
|||
|
|
List<Map<String,Object>> mrpPlan=getMRPPlan(code);
|
|||
|
|
List<DchangeSlave1VO> list1=new ArrayList<>();
|
|||
|
|
for (Map<String,Object> map : mrpPlan) {
|
|||
|
|
DchangeSlave1VO slave1VO=new DchangeSlave1VO();
|
|||
|
|
slave1VO.setPlannum((UFDouble) map.get("nassaccpraynum"));
|
|||
|
|
slave1VO.setCbmaterialvid((String) map.get("cmaterialvid"));
|
|||
|
|
slave1VO.setMrpbillcode((String) map.get("mrpbillcode"));
|
|||
|
|
list1.add(slave1VO);
|
|||
|
|
}
|
|||
|
|
dchangeMasterVO.setDchangeslave1_dchangeslave1(list1.toArray(new DchangeSlave1VO[0]));
|
|||
|
|
|
|||
|
|
List<DchangeSlave2VO> list2=new ArrayList<>();
|
|||
|
|
for (Map<String,Object> map : mrpPlan) {
|
|||
|
|
DchangeSlave2VO slave1VO=new DchangeSlave2VO();
|
|||
|
|
slave1VO.setPlannum((UFDouble) map.get("nassaccpraynum"));
|
|||
|
|
slave1VO.setCbmaterialvid((String) map.get("cmaterialvid"));
|
|||
|
|
slave1VO.setMrpbillcode((String) map.get("mrpbillcode"));
|
|||
|
|
list2.add(slave1VO);
|
|||
|
|
}
|
|||
|
|
dchangeMasterVO.setDchangeslave2_dchangeslave2(list2.toArray(new DchangeSlave2VO[0]));
|
|||
|
|
Object pk_org = hy.findColValue("org_orgs", "pk_org", "code = '"+headJson.get("pk_org")+"' and nvl(dr,0)=0 and isbusinessunit='Y' ");
|
|||
|
|
headJson.put("pk_org", pk_org);
|
|||
|
|
DchangeMasterVO headVO = new DchangeMasterVO();
|
|||
|
|
IAttributeMeta[] headAttrs = headVO.getMetaData().getAttributes();
|
|||
|
|
for (IAttributeMeta attribute : headAttrs) {
|
|||
|
|
Object value = getValueByAttr(headJson, attribute);
|
|||
|
|
headVO.setAttributeValue(attribute.getName(), value);
|
|||
|
|
}
|
|||
|
|
headVO.setStatus(voStatus);
|
|||
|
|
|
|||
|
|
return headVO;
|
|||
|
|
}
|
|||
|
|
// <09><>ȡmrp<72>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
private List<Map<String,Object>> getMRPPlan(List<String> codes) throws BusinessException {
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>codes<65><73><EFBFBD><EFBFBD>ƥ<EFBFBD><C6A5><EFBFBD><EFBFBD>ռλ<D5BC><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ?, ?, ?<3F><>
|
|||
|
|
String placeholders = String.join(",", Collections.nCopies(codes.size(), "?"));
|
|||
|
|
String sql = " \t\tSELECT\n" +
|
|||
|
|
"\tcmaterialvid,\n" +
|
|||
|
|
"\tnassaccponum,\n" +
|
|||
|
|
"\tnassaccpraynum\n" +
|
|||
|
|
"FROM\n" +
|
|||
|
|
"\tmm_plo\n" +
|
|||
|
|
"WHERE\n" +
|
|||
|
|
"\tfpotype = '1'\n" +
|
|||
|
|
" AND vsrccode IN (" + placeholders + ")";
|
|||
|
|
List<Map<String,Object>> remain = (List<Map<String, Object>>) new BaseDAO().executeQuery(sql, new MapListProcessor());
|
|||
|
|
|
|||
|
|
return remain;
|
|||
|
|
}
|
|||
|
|
private Object getValueByAttr(JSONObject json, IAttributeMeta attribute) {
|
|||
|
|
Object value = json.get(attribute.getName());
|
|||
|
|
if (value == null || StringUtils.isEmpty(value.toString())) {
|
|||
|
|
return null;
|
|||
|
|
}
|
|||
|
|
JavaType javaType = attribute.getJavaType();
|
|||
|
|
switch (javaType) {
|
|||
|
|
case String:
|
|||
|
|
case UFStringEnum:
|
|||
|
|
return value.toString();
|
|||
|
|
case BigDecimal:
|
|||
|
|
return new BigDecimal(value.toString());
|
|||
|
|
case Integer:
|
|||
|
|
case UFFlag:
|
|||
|
|
return Integer.valueOf(value.toString());
|
|||
|
|
case UFDouble:
|
|||
|
|
return new UFDouble(value.toString());
|
|||
|
|
case UFBoolean:
|
|||
|
|
return new UFBoolean(value.toString());
|
|||
|
|
case UFDate:
|
|||
|
|
return new UFDate(value.toString());
|
|||
|
|
case UFDateTime:
|
|||
|
|
return new UFDateTime(value.toString());
|
|||
|
|
case UFTime:
|
|||
|
|
return new UFTime(value.toString());
|
|||
|
|
case UFLiteralDate:
|
|||
|
|
return new UFLiteralDate(value.toString());
|
|||
|
|
default:
|
|||
|
|
return value;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private List<String> getRequiredFields(JSONObject obj) {
|
|||
|
|
List<String> notNullFields = new ArrayList<String>();
|
|||
|
|
return notNullFields;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private IDchangeMasterVOService getService() {
|
|||
|
|
return NCLocator.getInstance().lookup(IDchangeMasterVOService.class);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|