物料接口适配2312
This commit is contained in:
parent
f031caea12
commit
0cda105fe0
|
@ -0,0 +1,547 @@
|
||||||
|
package nccloud.api.uapbd.materialmanage.material;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSON;
|
||||||
|
import com.alibaba.fastjson.JSONArray;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import javax.ws.rs.Consumes;
|
||||||
|
import javax.ws.rs.POST;
|
||||||
|
import javax.ws.rs.Path;
|
||||||
|
import javax.ws.rs.Produces;
|
||||||
|
import nc.bs.dao.BaseDAO;
|
||||||
|
import nc.ws.opm.pub.utils.result.APIErrCodeEnum;
|
||||||
|
import nc.bs.dao.DAOException;
|
||||||
|
import nc.bs.framework.common.NCLocator;
|
||||||
|
import nc.bs.framework.core.util.ObjectCreator;
|
||||||
|
import nc.impl.pubapp.pattern.database.SqlBuilderUtil;
|
||||||
|
import nc.itf.bd.material.assign.IMaterialAssignService;
|
||||||
|
import nc.jdbc.framework.processor.ColumnListProcessor;
|
||||||
|
import nc.vo.bd.material.MaterialVO;
|
||||||
|
import nc.vo.bd.material.prod.MaterialProdVO;
|
||||||
|
import nc.vo.bd.material.sale.MaterialSaleVO;
|
||||||
|
import nc.vo.bd.material.stock.MaterialStockVO;
|
||||||
|
import nccloud.api.baseapp.exchange.convert.IOpenApiJsonConvertToExChangeXmlService;
|
||||||
|
import nccloud.api.baseapp.exchange.convert.OpenApiConvertDataObject;
|
||||||
|
import nccloud.api.baseapp.exchange.convert.OpenApiConvertDataResult;
|
||||||
|
import nccloud.api.rest.utils.ApiResourceParamUtils;
|
||||||
|
import nccloud.api.rest.utils.IParamTranslator;
|
||||||
|
import nccloud.api.rest.utils.OpenApiPageInfo;
|
||||||
|
import nccloud.api.rest.utils.ResultMessageUtil;
|
||||||
|
import nccloud.api.uapbd.common.utils.OpenApiPagenationUtils;
|
||||||
|
import nccloud.commons.lang.StringUtils;
|
||||||
|
import nc.jdbc.framework.processor.MapListProcessor;
|
||||||
|
import nccloud.ws.rest.resource.AbstractNCCRestResource;
|
||||||
|
import org.json.JSONString;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料接口适配2312
|
||||||
|
*/
|
||||||
|
|
||||||
|
@Path("uapbd/material/material")
|
||||||
|
public class MaterialManageMaterial extends AbstractNCCRestResource {
|
||||||
|
private static final String defbilltype = "material";
|
||||||
|
|
||||||
|
@POST
|
||||||
|
@Path("add")
|
||||||
|
@Consumes({ "application/json" })
|
||||||
|
@Produces({ "application/json" })
|
||||||
|
public JSONString addMaterial(JSONString json) {
|
||||||
|
return process(json);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param json {"code":"COM24111300019","version":"1","pk_org":"PLM"}
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@POST
|
||||||
|
@Path("queryMaterialIsExist")
|
||||||
|
@Consumes({ "application/json" })
|
||||||
|
@Produces({ "application/json" })
|
||||||
|
|
||||||
|
public JSONString queryMaterialIsExist(JSONString json) {
|
||||||
|
|
||||||
|
boolean bool = false;// false 不存在 true 存在
|
||||||
|
|
||||||
|
JSONObject jObject = JSONObject.parseObject(json.toJSONString());
|
||||||
|
if (jObject == null) {
|
||||||
|
return ResultMessageUtil.exceptionToJSON(new NullPointerException("JSONString:null"));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (StringUtils.isEmpty(jObject.getString("code"))) {
|
||||||
|
return ResultMessageUtil.exceptionToJSON("code 不能为空", APIErrCodeEnum.UNKNOWEXCCODE.getCode());
|
||||||
|
}
|
||||||
|
String code = jObject.getString("code");
|
||||||
|
String version = jObject.getString("version");
|
||||||
|
String pk_org = jObject.getString("pk_org");// 所属组织编码
|
||||||
|
|
||||||
|
String sql = "select bd_material.code,bd_material.version,org_orgs.code From bd_material , org_orgs where bd_material.pk_org=org_orgs.pk_org and bd_material.code='"
|
||||||
|
+ code + "'";
|
||||||
|
|
||||||
|
if (!StringUtils.isEmpty(version)) {
|
||||||
|
sql += " and bd_material.version ='" + jObject.get("version") + "'";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!StringUtils.isEmpty(pk_org)) {
|
||||||
|
sql += " and org_orgs.code ='" + jObject.get("pk_org") + "'";
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
ArrayList<HashMap<String, String>> lists = (ArrayList<HashMap<String, String>>) new BaseDAO()
|
||||||
|
.executeQuery(sql, new MapListProcessor());
|
||||||
|
if (lists != null && lists.size() > 0) {
|
||||||
|
bool = true;
|
||||||
|
return ResultMessageUtil.toJSONUnTranslate(bool);
|
||||||
|
} else {
|
||||||
|
bool = false;
|
||||||
|
return ResultMessageUtil.toJSONUnTranslate(bool, "没有符合条件的数据");
|
||||||
|
}
|
||||||
|
} catch (DAOException e) {
|
||||||
|
// TODO Auto-generated catch block
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
return ResultMessageUtil.toJSONUnTranslate(bool);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@POST
|
||||||
|
@Path("update")
|
||||||
|
@Consumes({ "application/json" })
|
||||||
|
@Produces({ "application/json" })
|
||||||
|
public JSONString updateMaterial(JSONString json) {
|
||||||
|
return process(json);
|
||||||
|
}
|
||||||
|
|
||||||
|
@POST
|
||||||
|
@Path("queryMaterial")
|
||||||
|
@Consumes({ "application/json" })
|
||||||
|
@Produces({ "application/json" })
|
||||||
|
public JSONString queryMaterial(JSONString json) {
|
||||||
|
JSONObject jObject = JSON.parseObject(json.toJSONString());
|
||||||
|
if (jObject == null) {
|
||||||
|
return ResultMessageUtil.exceptionToJSON(new NullPointerException("JSONString:null"));
|
||||||
|
}
|
||||||
|
JSONObject bject = jObject.getJSONObject("ufinterface");
|
||||||
|
if (bject == null) {
|
||||||
|
return ResultMessageUtil.exceptionToJSON(new NullPointerException("ufinterface:null"));
|
||||||
|
}
|
||||||
|
|
||||||
|
JSONObject data = bject.getJSONObject("data");
|
||||||
|
String pk_group = data.getString("pk_group");
|
||||||
|
JSONArray pk_orgs = data.getJSONArray("pk_org");
|
||||||
|
JSONArray code = data.getJSONArray("code");
|
||||||
|
JSONArray name = data.getJSONArray("name");
|
||||||
|
JSONArray marbaseclass = data.getJSONArray("marbaseclass");
|
||||||
|
String enablestate = data.getString("enablestate");
|
||||||
|
String ts = data.getString("ts");
|
||||||
|
JSONObject pageInfo = data.getJSONObject("pageInfo");
|
||||||
|
Map<String, Object> param = new HashMap<String, Object>();
|
||||||
|
|
||||||
|
if (StringUtils.isNotBlank(pk_group)) {
|
||||||
|
param.put("pk_group", pk_group);
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotBlank(enablestate)) {
|
||||||
|
param.put("enablestate", enablestate);
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotBlank(ts)) {
|
||||||
|
param.put("ts", ts);
|
||||||
|
}
|
||||||
|
if (pk_orgs != null && pk_orgs.size() > 0) {
|
||||||
|
param.put("pk_org", pk_orgs.toArray(new String[0]));
|
||||||
|
}
|
||||||
|
if (code != null && code.size() > 0) {
|
||||||
|
param.put("code", code.toArray(new String[0]));
|
||||||
|
}
|
||||||
|
if (name != null && name.size() > 0) {
|
||||||
|
param.put("name", name.toArray(new String[0]));
|
||||||
|
}
|
||||||
|
if (marbaseclass != null && marbaseclass.size() > 0) {
|
||||||
|
param.put("marbaseclass", marbaseclass.toArray(new String[0]));
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
ApiResourceParamUtils ApiResourceParamUtils = new ApiResourceParamUtils();
|
||||||
|
IParamTranslator IParamTranslator = (IParamTranslator) ObjectCreator.newInstance("uapbd",
|
||||||
|
nccloud.api.uapbd.translator.OrgParamTranslator.class.getName());
|
||||||
|
ApiResourceParamUtils.addTranslatorMap("pk_org", IParamTranslator);
|
||||||
|
String condition = ApiResourceParamUtils.parseParmToSqlByCode(new MaterialVO(), param);
|
||||||
|
|
||||||
|
String sql = "select pk_material from bd_material where " + condition;
|
||||||
|
List<String> allPks = (List) (new BaseDAO()).executeQuery(sql, new ColumnListProcessor());
|
||||||
|
OpenApiPageInfo openApiPageInfo = new OpenApiPageInfo();
|
||||||
|
String[] currPks = OpenApiPagenationUtils.getCurrentPagePksAndPageInfo(allPks, pageInfo, openApiPageInfo);
|
||||||
|
if (currPks == null || currPks.length == 0) {
|
||||||
|
return ResultMessageUtil.toJSON(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
SqlBuilderUtil SqlBuilderUtil = new SqlBuilderUtil();
|
||||||
|
String wherepart = SqlBuilderUtil.buildSQL("pk_material", currPks, null);
|
||||||
|
|
||||||
|
MaterialVO[] vos = (MaterialVO[]) (new BaseDAO()).retrieveByClause(MaterialVO.class, wherepart)
|
||||||
|
.toArray(new MaterialVO[0]);
|
||||||
|
ResultMessageUtil.toJSONByPage(vos, openApiPageInfo, false);
|
||||||
|
return ResultMessageUtil.toJSONByPage(vos, openApiPageInfo, false);
|
||||||
|
} catch (Exception e) {
|
||||||
|
return ResultMessageUtil.exceptionToJSON(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@POST
|
||||||
|
@Path("assignMaterial")
|
||||||
|
@Consumes({ "application/json" })
|
||||||
|
@Produces({ "application/json" })
|
||||||
|
public JSONString assignMaterial(JSONString json) {
|
||||||
|
JSONObject jObject = JSON.parseObject(json.toJSONString());
|
||||||
|
if (jObject == null) {
|
||||||
|
return ResultMessageUtil.exceptionToJSON(new NullPointerException("JSONString:null"));
|
||||||
|
}
|
||||||
|
JSONObject bject = jObject.getJSONObject("ufinterface");
|
||||||
|
if (bject == null) {
|
||||||
|
return ResultMessageUtil.exceptionToJSON(new NullPointerException("ufinterface:null"));
|
||||||
|
}
|
||||||
|
|
||||||
|
JSONObject data = bject.getJSONObject("data");
|
||||||
|
String pk_org = data.getString("pk_org");
|
||||||
|
String code = data.getString("code");
|
||||||
|
String version = data.getString("version");
|
||||||
|
JSONArray assignorgs = data.getJSONArray("assignorgs");
|
||||||
|
|
||||||
|
JSONObject pageInfo = data.getJSONObject("pageInfo");
|
||||||
|
Map<String, Object> param = new HashMap<String, Object>();
|
||||||
|
|
||||||
|
if (StringUtils.isBlank(pk_org) && StringUtils.isBlank(code) && StringUtils.isBlank(version)) {
|
||||||
|
return ResultMessageUtil.exceptionToJSON(new Exception("所属组织、物料编码、版本号,不能同时为空"));
|
||||||
|
}
|
||||||
|
if (assignorgs == null || (assignorgs != null && assignorgs.size() <= 0)) {
|
||||||
|
return ResultMessageUtil.exceptionToJSON(new Exception("分配组织不能为空"));
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotBlank(pk_org)) {
|
||||||
|
param.put("pk_org", pk_org);
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotBlank(code)) {
|
||||||
|
param.put("code", code);
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotBlank(version)) {
|
||||||
|
param.put("version", version);
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
ApiResourceParamUtils ApiResourceParamUtils = new ApiResourceParamUtils();
|
||||||
|
IParamTranslator IParamTranslator = (IParamTranslator) ObjectCreator.newInstance("uapbd",
|
||||||
|
nccloud.api.uapbd.translator.OrgParamTranslator.class.getName());
|
||||||
|
ApiResourceParamUtils.addTranslatorMap("pk_org", IParamTranslator);
|
||||||
|
String condition = ApiResourceParamUtils.parseParmToSqlByCode(new MaterialVO(), param);
|
||||||
|
|
||||||
|
MaterialVO[] vos = (MaterialVO[]) (new BaseDAO()).retrieveByClause(MaterialVO.class, condition)
|
||||||
|
.toArray(new MaterialVO[0]);
|
||||||
|
if (vos == null || (vos != null && vos.length <= 0)) {
|
||||||
|
return ResultMessageUtil.exceptionToJSON(new Exception("未查询到物料信息"));
|
||||||
|
}
|
||||||
|
IMaterialAssignService IMaterialAssignService = (IMaterialAssignService) NCLocator.getInstance()
|
||||||
|
.lookup(IMaterialAssignService.class);
|
||||||
|
if (vos != null && vos.length > 0) {
|
||||||
|
List<String> pk_materials = new ArrayList<String>();
|
||||||
|
for (MaterialVO vo : vos) {
|
||||||
|
pk_materials.add(vo.getPk_material());
|
||||||
|
}
|
||||||
|
if (assignorgs != null && assignorgs.size() > 0) {
|
||||||
|
List<String> pk_orgs = IParamTranslator.translateByCode(null,
|
||||||
|
(String[]) assignorgs.toArray(new String[0]));
|
||||||
|
IMaterialAssignService.assignMaterialByPks((String[]) pk_materials.toArray(new String[0]),
|
||||||
|
(String[]) pk_orgs.toArray(new String[0]), null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ResultMessageUtil.toJSON(null, "分配成功!");
|
||||||
|
} catch (Exception e) {
|
||||||
|
return ResultMessageUtil.exceptionToJSON(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@POST
|
||||||
|
@Path("queryMaterialsale")
|
||||||
|
@Consumes({ "application/json" })
|
||||||
|
@Produces({ "application/json" })
|
||||||
|
public JSONString queryMaterialsale(JSONString json) {
|
||||||
|
JSONObject jObject = JSON.parseObject(json.toJSONString());
|
||||||
|
if (jObject == null) {
|
||||||
|
return ResultMessageUtil.exceptionToJSON(new NullPointerException("JSONString:null"));
|
||||||
|
}
|
||||||
|
JSONObject bject = jObject.getJSONObject("ufinterface");
|
||||||
|
if (bject == null) {
|
||||||
|
return ResultMessageUtil.exceptionToJSON(new NullPointerException("ufinterface:null"));
|
||||||
|
}
|
||||||
|
|
||||||
|
JSONObject data = bject.getJSONObject("data");
|
||||||
|
String pk_org = data.getString("pk_org");
|
||||||
|
String code = data.getString("code");
|
||||||
|
String version = data.getString("version");
|
||||||
|
JSONArray saleorgs = data.getJSONArray("saleorgs");
|
||||||
|
JSONObject pageInfo = data.getJSONObject("pageInfo");
|
||||||
|
Map<String, Object> param = new HashMap<String, Object>();
|
||||||
|
|
||||||
|
if (StringUtils.isNotBlank(pk_org)) {
|
||||||
|
param.put("pk_org", pk_org);
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotBlank(code)) {
|
||||||
|
param.put("code", code);
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotBlank(version)) {
|
||||||
|
param.put("version", version);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (StringUtils.isBlank(pk_org) && StringUtils.isBlank(code)) {
|
||||||
|
return ResultMessageUtil.exceptionToJSON(new Exception("所属组织和编码 pk_org、code不能同时为空"));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (saleorgs == null || saleorgs.size() == 0) {
|
||||||
|
return ResultMessageUtil.exceptionToJSON(new NullPointerException("saleorgs:" + saleorgs + ",不能为空"));
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
ApiResourceParamUtils ApiResourceParamUtils = new ApiResourceParamUtils();
|
||||||
|
IParamTranslator IParamTranslator = (IParamTranslator) ObjectCreator.newInstance("uapbd",
|
||||||
|
nccloud.api.uapbd.translator.OrgParamTranslator.class.getName());
|
||||||
|
ApiResourceParamUtils.addTranslatorMap("pk_org", IParamTranslator);
|
||||||
|
String condition = ApiResourceParamUtils.parseParmToSqlByCode(new MaterialVO(), param);
|
||||||
|
MaterialVO[] vos = (MaterialVO[]) (new BaseDAO()).retrieveByClause(MaterialVO.class, condition)
|
||||||
|
.toArray(new MaterialVO[0]);
|
||||||
|
|
||||||
|
if (vos != null && vos.length > 0) {
|
||||||
|
List<String> materialpks = new ArrayList<String>();
|
||||||
|
for (MaterialVO vo : vos) {
|
||||||
|
materialpks.add(vo.getPk_material());
|
||||||
|
}
|
||||||
|
param.clear();
|
||||||
|
param.put("pk_material", materialpks.toArray(new String[0]));
|
||||||
|
if (saleorgs != null && saleorgs.size() > 0) {
|
||||||
|
param.put("pk_org", saleorgs.toArray(new String[0]));
|
||||||
|
}
|
||||||
|
String condition1 = ApiResourceParamUtils.parseParmToSqlByCode(new MaterialVO(), param);
|
||||||
|
|
||||||
|
String sql = "select pk_materialsale from bd_materialsale where " + condition1;
|
||||||
|
List<String> allPks = (List) (new BaseDAO()).executeQuery(sql, new ColumnListProcessor());
|
||||||
|
OpenApiPageInfo openApiPageInfo = new OpenApiPageInfo();
|
||||||
|
String[] currPks = OpenApiPagenationUtils.getCurrentPagePksAndPageInfo(allPks, pageInfo,
|
||||||
|
openApiPageInfo);
|
||||||
|
if (currPks == null || currPks.length == 0) {
|
||||||
|
return ResultMessageUtil.toJSON(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
SqlBuilderUtil SqlBuilderUtil = new SqlBuilderUtil();
|
||||||
|
String wherepart = SqlBuilderUtil.buildSQL("pk_materialsale", currPks, null);
|
||||||
|
|
||||||
|
MaterialSaleVO[] salevos = (MaterialSaleVO[]) (new BaseDAO())
|
||||||
|
.retrieveByClause(MaterialSaleVO.class, wherepart).toArray(new MaterialSaleVO[0]);
|
||||||
|
return ResultMessageUtil.toJSONByPage(salevos, openApiPageInfo, false);
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
return ResultMessageUtil.exceptionToJSON(e);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@POST
|
||||||
|
@Path("queryMaterialprod")
|
||||||
|
@Consumes({ "application/json" })
|
||||||
|
@Produces({ "application/json" })
|
||||||
|
public JSONString queryMaterialprod(JSONString json) {
|
||||||
|
JSONObject jObject = JSON.parseObject(json.toJSONString());
|
||||||
|
if (jObject == null) {
|
||||||
|
return ResultMessageUtil.exceptionToJSON(new NullPointerException("JSONString:null"));
|
||||||
|
}
|
||||||
|
JSONObject bject = jObject.getJSONObject("ufinterface");
|
||||||
|
if (bject == null) {
|
||||||
|
return ResultMessageUtil.exceptionToJSON(new NullPointerException("ufinterface:null"));
|
||||||
|
}
|
||||||
|
|
||||||
|
JSONObject data = bject.getJSONObject("data");
|
||||||
|
String pk_org = data.getString("pk_org");
|
||||||
|
String code = data.getString("code");
|
||||||
|
String version = data.getString("version");
|
||||||
|
JSONArray prodorgs = data.getJSONArray("prodorgs");
|
||||||
|
JSONObject pageInfo = data.getJSONObject("pageInfo");
|
||||||
|
Map<String, Object> param = new HashMap<String, Object>();
|
||||||
|
|
||||||
|
if (StringUtils.isNotBlank(pk_org)) {
|
||||||
|
param.put("pk_org", pk_org);
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotBlank(code)) {
|
||||||
|
param.put("code", code);
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotBlank(version)) {
|
||||||
|
param.put("version", version);
|
||||||
|
}
|
||||||
|
if (StringUtils.isBlank(pk_org) && StringUtils.isBlank(code)) {
|
||||||
|
return ResultMessageUtil.exceptionToJSON(new Exception("所属组织和编码 pk_org、code不能同时为空"));
|
||||||
|
}
|
||||||
|
if (prodorgs == null || prodorgs.size() == 0) {
|
||||||
|
return ResultMessageUtil.exceptionToJSON(new Exception("prodorgs:" + prodorgs + ",不能为空"));
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
ApiResourceParamUtils ApiResourceParamUtils = new ApiResourceParamUtils();
|
||||||
|
IParamTranslator IParamTranslator = (IParamTranslator) ObjectCreator.newInstance("uapbd",
|
||||||
|
nccloud.api.uapbd.translator.OrgParamTranslator.class.getName());
|
||||||
|
ApiResourceParamUtils.addTranslatorMap("pk_org", IParamTranslator);
|
||||||
|
String condition = ApiResourceParamUtils.parseParmToSqlByCode(new MaterialVO(), param);
|
||||||
|
MaterialVO[] vos = (MaterialVO[]) (new BaseDAO()).retrieveByClause(MaterialVO.class, condition)
|
||||||
|
.toArray(new MaterialVO[0]);
|
||||||
|
|
||||||
|
if (vos != null && vos.length > 0) {
|
||||||
|
List<String> materialpks = new ArrayList<String>();
|
||||||
|
for (MaterialVO vo : vos) {
|
||||||
|
materialpks.add(vo.getPk_material());
|
||||||
|
}
|
||||||
|
param.clear();
|
||||||
|
param.put("pk_material", materialpks.toArray(new String[0]));
|
||||||
|
if (prodorgs != null && prodorgs.size() > 0) {
|
||||||
|
param.put("pk_org", prodorgs.toArray(new String[0]));
|
||||||
|
}
|
||||||
|
String condition1 = ApiResourceParamUtils.parseParmToSqlByCode(new MaterialVO(), param);
|
||||||
|
|
||||||
|
String sql = "select pk_materialprod from bd_materialprod where " + condition1;
|
||||||
|
List<String> allPks = (List) (new BaseDAO()).executeQuery(sql, new ColumnListProcessor());
|
||||||
|
OpenApiPageInfo openApiPageInfo = new OpenApiPageInfo();
|
||||||
|
String[] currPks = OpenApiPagenationUtils.getCurrentPagePksAndPageInfo(allPks, pageInfo,
|
||||||
|
openApiPageInfo);
|
||||||
|
if (currPks == null || currPks.length == 0) {
|
||||||
|
return ResultMessageUtil.toJSON(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
SqlBuilderUtil SqlBuilderUtil = new SqlBuilderUtil();
|
||||||
|
String wherepart = SqlBuilderUtil.buildSQL("pk_materialprod", currPks, null);
|
||||||
|
MaterialProdVO[] prodvos = (MaterialProdVO[]) (new BaseDAO())
|
||||||
|
.retrieveByClause(MaterialProdVO.class, wherepart).toArray(new MaterialProdVO[0]);
|
||||||
|
return ResultMessageUtil.toJSONByPage(prodvos, openApiPageInfo, false);
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
return ResultMessageUtil.exceptionToJSON(e);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@POST
|
||||||
|
@Path("queryMaterialstock")
|
||||||
|
@Consumes({ "application/json" })
|
||||||
|
@Produces({ "application/json" })
|
||||||
|
public JSONString queryMaterialstock(JSONString json) {
|
||||||
|
JSONObject jObject = JSON.parseObject(json.toJSONString());
|
||||||
|
if (jObject == null) {
|
||||||
|
return ResultMessageUtil.exceptionToJSON(new NullPointerException("JSONString:null"));
|
||||||
|
}
|
||||||
|
JSONObject bject = jObject.getJSONObject("ufinterface");
|
||||||
|
if (bject == null) {
|
||||||
|
return ResultMessageUtil.exceptionToJSON(new NullPointerException("ufinterface:null"));
|
||||||
|
}
|
||||||
|
|
||||||
|
JSONObject data = bject.getJSONObject("data");
|
||||||
|
String pk_org = data.getString("pk_org");
|
||||||
|
String code = data.getString("code");
|
||||||
|
String version = data.getString("version");
|
||||||
|
JSONArray stockorgs = data.getJSONArray("stockorgs");
|
||||||
|
JSONObject pageInfo = data.getJSONObject("pageInfo");
|
||||||
|
Map<String, Object> param = new HashMap<String, Object>();
|
||||||
|
|
||||||
|
if (StringUtils.isNotBlank(pk_org)) {
|
||||||
|
param.put("pk_org", pk_org);
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotBlank(code)) {
|
||||||
|
param.put("code", code);
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotBlank(version)) {
|
||||||
|
param.put("version", version);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (StringUtils.isBlank(pk_org) && StringUtils.isBlank(code)) {
|
||||||
|
return ResultMessageUtil.exceptionToJSON(new Exception("所属组织和编码 pk_org、code不能同时为空"));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (stockorgs == null || stockorgs.size() == 0) {
|
||||||
|
return ResultMessageUtil.exceptionToJSON(new Exception("stockorgs:" + stockorgs + ",不能为空"));
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
ApiResourceParamUtils ApiResourceParamUtils = new ApiResourceParamUtils();
|
||||||
|
IParamTranslator IParamTranslator = (IParamTranslator) ObjectCreator.newInstance("uapbd",
|
||||||
|
nccloud.api.uapbd.translator.OrgParamTranslator.class.getName());
|
||||||
|
ApiResourceParamUtils.addTranslatorMap("pk_org", IParamTranslator);
|
||||||
|
String condition = ApiResourceParamUtils.parseParmToSqlByCode(new MaterialVO(), param);
|
||||||
|
MaterialVO[] vos = (MaterialVO[]) (new BaseDAO()).retrieveByClause(MaterialVO.class, condition)
|
||||||
|
.toArray(new MaterialVO[0]);
|
||||||
|
|
||||||
|
if (vos != null && vos.length > 0) {
|
||||||
|
List<String> materialpks = new ArrayList<String>();
|
||||||
|
for (MaterialVO vo : vos) {
|
||||||
|
materialpks.add(vo.getPk_material());
|
||||||
|
}
|
||||||
|
param.clear();
|
||||||
|
param.put("pk_material", materialpks.toArray(new String[0]));
|
||||||
|
if (stockorgs != null && stockorgs.size() > 0) {
|
||||||
|
param.put("pk_org", stockorgs.toArray(new String[0]));
|
||||||
|
}
|
||||||
|
String condition1 = ApiResourceParamUtils.parseParmToSqlByCode(new MaterialVO(), param);
|
||||||
|
|
||||||
|
String sql = "select pk_materialstock from bd_materialstock where " + condition1;
|
||||||
|
List<String> allPks = (List) (new BaseDAO()).executeQuery(sql, new ColumnListProcessor());
|
||||||
|
OpenApiPageInfo openApiPageInfo = new OpenApiPageInfo();
|
||||||
|
String[] currPks = OpenApiPagenationUtils.getCurrentPagePksAndPageInfo(allPks, pageInfo,
|
||||||
|
openApiPageInfo);
|
||||||
|
if (currPks == null || currPks.length == 0) {
|
||||||
|
return ResultMessageUtil.toJSON(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
SqlBuilderUtil SqlBuilderUtil = new SqlBuilderUtil();
|
||||||
|
String wherepart = SqlBuilderUtil.buildSQL("pk_materialstock", currPks, null);
|
||||||
|
MaterialStockVO[] stockvos = (MaterialStockVO[]) (new BaseDAO())
|
||||||
|
.retrieveByClause(MaterialStockVO.class, wherepart).toArray(new MaterialStockVO[0]);
|
||||||
|
return ResultMessageUtil.toJSONByPage(stockvos, openApiPageInfo, false);
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
return ResultMessageUtil.exceptionToJSON(e);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private JSONString process(JSONString json) {
|
||||||
|
JSONObject jObject = JSON.parseObject(json.toJSONString());
|
||||||
|
if (jObject == null) {
|
||||||
|
return ResultMessageUtil.exceptionToJSON(new NullPointerException("JSONString:null"));
|
||||||
|
}
|
||||||
|
JSONObject bject = jObject.getJSONObject("ufinterface");
|
||||||
|
if (bject == null) {
|
||||||
|
return ResultMessageUtil.exceptionToJSON(new NullPointerException("ufinterface:null"));
|
||||||
|
}
|
||||||
|
String billtype = bject.getString("billtype");
|
||||||
|
String account = bject.getString("account");
|
||||||
|
String groupcode = bject.getString("groupcode");
|
||||||
|
if (!"material".equals(billtype)) {
|
||||||
|
return ResultMessageUtil.exceptionToJSON(new NullPointerException(
|
||||||
|
"billtype:" + billtype + ",account:" + account + ",groupcode:" + groupcode));
|
||||||
|
}
|
||||||
|
|
||||||
|
OpenApiConvertDataObject openApiConvertDataObject = new OpenApiConvertDataObject();
|
||||||
|
openApiConvertDataObject.setAccount(account);
|
||||||
|
openApiConvertDataObject.setBilltype(billtype);
|
||||||
|
openApiConvertDataObject.setGroupcode(groupcode);
|
||||||
|
openApiConvertDataObject.setOpenApiJsonData(jObject);
|
||||||
|
|
||||||
|
try {
|
||||||
|
OpenApiConvertDataResult r = getIOpenApiJsonConvertToExChangeXmlService()
|
||||||
|
.changeToExchangeData(openApiConvertDataObject);
|
||||||
|
if (r != null) {
|
||||||
|
return ResultMessageUtil.toJSON(r.getDesc());
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
return ResultMessageUtil.exceptionToJSON(e);
|
||||||
|
}
|
||||||
|
return ResultMessageUtil.exceptionToJSON(new Exception("未知异常"));
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getModule() {
|
||||||
|
return "uapbd";
|
||||||
|
}
|
||||||
|
|
||||||
|
private IOpenApiJsonConvertToExChangeXmlService getIOpenApiJsonConvertToExChangeXmlService() {
|
||||||
|
return (IOpenApiJsonConvertToExChangeXmlService) NCLocator.getInstance()
|
||||||
|
.lookup(IOpenApiJsonConvertToExChangeXmlService.class);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue