添加 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