添加 PMO 资源类处理生产订单
- 新增 PmoResource 类,实现生产订单的保存、更新、删除和查询功能 - 提供 RESTful API 接口,支持 JSON 数据交互 -集成业务逻辑和服务调用,处理数据验证和异常情况
This commit is contained in:
parent
a27d073012
commit
5e0b306c15
|
@ -0,0 +1,166 @@
|
|||
package nccloud.openapi.mmpac.pmo;
|
||||
|
||||
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.bs.dao.DAOException;
|
||||
import nc.bs.framework.common.NCLocator;
|
||||
import nc.jdbc.framework.processor.MapListProcessor;
|
||||
import nc.util.mmf.framework.base.MMCollectionUtil;
|
||||
import nc.vo.mmpac.pmo.pac0002.entity.PMOAggVO;
|
||||
import nc.vo.pub.BusinessException;
|
||||
import nc.ws.opm.pub.utils.result.APIErrCodeEnum;
|
||||
import nccloud.api.mmpac.pmo.IAPIPmoMaintainService;
|
||||
import nccloud.api.rest.utils.ResultMessageUtil;
|
||||
import nccloud.ws.rest.resource.AbstractNCCRestResource;
|
||||
import org.json.JSONString;
|
||||
|
||||
@Path("mmpac/pmo")
|
||||
public class PmoResource extends AbstractNCCRestResource {
|
||||
private static String HEADTABLE = "mm_pmo";
|
||||
private static String BODYTABLE = "mm_mo";
|
||||
private static String GRANDTABLE = "mm_pmo_procedure";
|
||||
private static final BaseDAO BASE_DAO = new BaseDAO();
|
||||
|
||||
public PmoResource() {
|
||||
}
|
||||
|
||||
@POST
|
||||
@Path("save")
|
||||
@Consumes({"application/json"})
|
||||
@Produces({"application/json"})
|
||||
public JSONString save(Map<String, Object> paramMap) {
|
||||
List<Map<String, Object>> paramList = (List) paramMap.get("data");
|
||||
PMOAggVO[] insertBills = null;
|
||||
|
||||
try {
|
||||
if (MMCollectionUtil.isEmpty(paramList)) {
|
||||
return ResultMessageUtil.exceptionToJSON("传入数据异常,参数要包含data", APIErrCodeEnum.BUSINESSEXCCODE.getCode());
|
||||
} else {
|
||||
for (Map<String, Object> map : paramList) {
|
||||
if (!map.containsKey(HEADTABLE) || !map.containsKey(BODYTABLE)) {
|
||||
return ResultMessageUtil.exceptionToJSON("传入数据异常,参数要包含表头信息", APIErrCodeEnum.BUSINESSEXCCODE.getCode());
|
||||
}
|
||||
}
|
||||
|
||||
IAPIPmoMaintainService serv = (IAPIPmoMaintainService) NCLocator.getInstance().lookup(IAPIPmoMaintainService.class);
|
||||
insertBills = serv.save(paramList);
|
||||
return ResultMessageUtil.toJSON(insertBills, "流程生产订单保存成功");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
return ResultMessageUtil.exceptionToJSON(e);
|
||||
}
|
||||
}
|
||||
|
||||
@POST
|
||||
@Path("update")
|
||||
@Consumes({"application/json"})
|
||||
@Produces({"application/json"})
|
||||
public JSONString update(Map<String, Object> paramMap) {
|
||||
List<Map<String, Object>> paramList = (List) paramMap.get("data");
|
||||
PMOAggVO[] updateBills = null;
|
||||
|
||||
try {
|
||||
if (MMCollectionUtil.isEmpty(paramList)) {
|
||||
return ResultMessageUtil.exceptionToJSON("传入数据异常,参数要包含data", APIErrCodeEnum.BUSINESSEXCCODE.getCode());
|
||||
} else {
|
||||
for (Map<String, Object> map : paramList) {
|
||||
if (!map.containsKey(HEADTABLE) || !map.containsKey(BODYTABLE)) {
|
||||
return ResultMessageUtil.exceptionToJSON("传入数据异常,参数要包含表头信息", APIErrCodeEnum.BUSINESSEXCCODE.getCode());
|
||||
}
|
||||
}
|
||||
|
||||
updateBills = ((IAPIPmoMaintainService) NCLocator.getInstance().lookup(IAPIPmoMaintainService.class)).update(paramList);
|
||||
return ResultMessageUtil.toJSON(updateBills, "流程生产订单修改成功");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
return ResultMessageUtil.exceptionToJSON(e);
|
||||
}
|
||||
}
|
||||
|
||||
@POST
|
||||
@Path("delete")
|
||||
@Consumes({"application/json"})
|
||||
@Produces({"application/json"})
|
||||
public JSONString delete(Map<String, Object> paramMap) {
|
||||
List<String> hidList = (List) paramMap.get("ids");
|
||||
if (MMCollectionUtil.isEmpty(hidList)) {
|
||||
return ResultMessageUtil.exceptionToJSON("传入数据异常,参数要包含ids信息", APIErrCodeEnum.BUSINESSEXCCODE.getCode());
|
||||
} else {
|
||||
try {
|
||||
String[] hids = (String[]) hidList.toArray(new String[0]);
|
||||
((IAPIPmoMaintainService) NCLocator.getInstance().lookup(IAPIPmoMaintainService.class)).delete(hids);
|
||||
return ResultMessageUtil.toJSON(new String[0], "流程生产订单删除成功");
|
||||
} catch (BusinessException e) {
|
||||
return ResultMessageUtil.exceptionToJSON(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@POST
|
||||
@Path("queryPmos")
|
||||
@Consumes({"application/json"})
|
||||
@Produces({"application/json"})
|
||||
public JSONString queryByPurcahseOrderId(Map<String, Object> paramMap) {
|
||||
try {
|
||||
if (paramMap == null || !paramMap.containsKey("vdef8")) {
|
||||
return ResultMessageUtil.exceptionToJSON("传入数据异常,参数要包含vdef8信息", APIErrCodeEnum.BUSINESSEXCCODE.getCode());
|
||||
}
|
||||
// 获取vdef8数组
|
||||
List<String> vdef8List = (List<String>) paramMap.get("vdef8");
|
||||
|
||||
// 获取limit参数
|
||||
Integer limit = null;
|
||||
if (paramMap.containsKey("limit")) {
|
||||
Object limitObj = paramMap.get("limit");
|
||||
if (limitObj instanceof Number) {
|
||||
limit = ((Number) limitObj).intValue();
|
||||
}
|
||||
}
|
||||
|
||||
String baseSql;
|
||||
if (MMCollectionUtil.isEmpty(vdef8List)) {
|
||||
// 如果vdef8List为空,查询所有数据
|
||||
baseSql = "SELECT * FROM GET_PRODUCTION_ORDER";
|
||||
} else {
|
||||
// 构建IN条件的SQL查询
|
||||
StringBuilder sqlBuilder = new StringBuilder("SELECT * FROM GET_PRODUCTION_ORDER WHERE vdef8 IN (");
|
||||
for (int i = 0; i < vdef8List.size(); i++) {
|
||||
if (i > 0) {
|
||||
sqlBuilder.append(",");
|
||||
}
|
||||
sqlBuilder.append("'").append(vdef8List.get(i)).append("'");
|
||||
}
|
||||
sqlBuilder.append(")");
|
||||
baseSql = sqlBuilder.toString();
|
||||
}
|
||||
|
||||
// 如果有limit参数,使用ROWNUM限制返回条数
|
||||
String sql;
|
||||
if (limit != null && limit > 0) {
|
||||
sql = "SELECT * FROM (" + baseSql + ") WHERE ROWNUM <= " + limit;
|
||||
} else {
|
||||
sql = baseSql;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
List<Map<String, Object>> rows = (List<Map<String, Object>>) BASE_DAO.executeQuery(sql, new MapListProcessor());
|
||||
|
||||
return ResultMessageUtil.toJSON(rows, "查询生产订单信息成功");
|
||||
|
||||
} catch (DAOException e) {
|
||||
return ResultMessageUtil.exceptionToJSON("数据库查询异常: ", e.getMessage());
|
||||
} catch (Exception e) {
|
||||
return ResultMessageUtil.exceptionToJSON(e);
|
||||
}
|
||||
}
|
||||
|
||||
public String getModule() {
|
||||
return "mmpac";
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue