高压mes调用回写行状态
This commit is contained in:
		
							parent
							
								
									baa5472e64
								
							
						
					
					
						commit
						aae15b298b
					
				|  | @ -17,6 +17,7 @@ import nc.itf.mmpac.pmo.pac0002.IPMOQueryService; | |||
| import nc.jdbc.framework.processor.MapListProcessor; | ||||
| import nc.util.mmf.framework.base.MMCollectionUtil; | ||||
| import nc.vo.mmpac.pmo.pac0002.entity.PMOAggVO; | ||||
| import nc.vo.mmpac.pmo.pac0002.entity.PMOItemVO; | ||||
| import nc.vo.org.OrgVO; | ||||
| import nc.vo.pub.BusinessException; | ||||
| import nc.ws.opm.pub.utils.result.APIErrCodeEnum; | ||||
|  | @ -158,6 +159,116 @@ public class PmoResource extends AbstractNCCRestResource { | |||
|             return ResultMessageUtil.exceptionToJSON(e); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * 回写行状态(包含从其他状态回到审核通过状态的功能) | ||||
|      * @param paramMap | ||||
|      * @return | ||||
|      */ | ||||
|     @POST | ||||
|     @Path("fitemstatusChange") | ||||
|     @Consumes({"application/json"}) | ||||
|     @Produces({"application/json"}) | ||||
|     public JSONString fitemstatusChange(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()); | ||||
|             } | ||||
| 
 | ||||
|             IPMOQueryService queryService = NCLocator.getInstance().lookup(IPMOQueryService.class); | ||||
|             IPMOBusinessService businessService = NCLocator.getInstance().lookup(IPMOBusinessService.class); | ||||
| 
 | ||||
|             for (Map<String, Object> map : paramList) { | ||||
|                 // 验证必要参数 | ||||
|                 if (!map.containsKey("pks")) { | ||||
|                     return ResultMessageUtil.exceptionToJSON("传入数据异常,参数要包含生产订单id", APIErrCodeEnum.BUSINESSEXCCODE.getCode()); | ||||
|                 } | ||||
|                 if (!map.containsKey("fitemstatus")) { | ||||
|                     return ResultMessageUtil.exceptionToJSON("传入数据异常,参数要包含行状态fitemstatus", APIErrCodeEnum.BUSINESSEXCCODE.getCode()); | ||||
|                 } | ||||
| 
 | ||||
|                 String pk = (String) map.get("pks"); | ||||
|                 int targetStatus; | ||||
|                 try { | ||||
|                     targetStatus = Integer.parseInt(map.get("fitemstatus").toString()); | ||||
|                 } catch (NumberFormatException e) { | ||||
|                     return ResultMessageUtil.exceptionToJSON("行状态格式错误,必须为整数", APIErrCodeEnum.BUSINESSEXCCODE.getCode()); | ||||
|                 } | ||||
| 
 | ||||
|                 // 不处理自由状态(0)的修改 | ||||
|                 if (targetStatus == 0) { | ||||
|                     return ResultMessageUtil.exceptionToJSON("不支持修改为自由状态", APIErrCodeEnum.BUSINESSEXCCODE.getCode()); | ||||
|                 } | ||||
| 
 | ||||
|                 // 验证状态值是否合法 | ||||
|                 if (targetStatus < 1 || targetStatus > 4) { | ||||
|                     return ResultMessageUtil.exceptionToJSON("行状态值无效,必须是1-4之间的整数", APIErrCodeEnum.BUSINESSEXCCODE.getCode()); | ||||
|                 } | ||||
| 
 | ||||
|                 // 查询当前订单信息 | ||||
|                 PMOAggVO[] currentVOs = queryService.queryPMOAggVOByBid(new String[]{pk}); | ||||
|                 if (currentVOs == null || currentVOs.length == 0) { | ||||
|                     return ResultMessageUtil.exceptionToJSON("未找到订单: " + pk, APIErrCodeEnum.BUSINESSEXCCODE.getCode()); | ||||
|                 } | ||||
|                 for (PMOAggVO vo : currentVOs) { | ||||
|                     for(PMOItemVO itemVOS:vo.getChildrenVO()){ | ||||
|                         // 获取当前行状态 | ||||
|                         int currentStatus = itemVOS.getFitemstatus(); // 假设存在此方法获取当前状态 | ||||
|                         // 只有审核通过(4)的订单才能修改为其他状态 | ||||
|                         if (targetStatus != 4 && currentStatus != 4) { | ||||
|                             return ResultMessageUtil.exceptionToJSON( | ||||
|                                     "订单" + pk + "当前状态为" + currentStatus + ",只有审核通过的订单才能修改行状态", | ||||
|                                     APIErrCodeEnum.BUSINESSEXCCODE.getCode() | ||||
|                             ); | ||||
|                         } | ||||
|                         // 根据当前状态和目标状态决定调用哪个方法 | ||||
|                         if (targetStatus == 4) { | ||||
|                             // 目标状态是审核通过,需要从其他状态返回,调用对应的cancel方法 | ||||
|                             switch (currentStatus) { | ||||
|                                 case 1:  // 从投放状态回到审核通过 | ||||
|                                     updateBills = businessService.rowputCancel(currentVOs); | ||||
|                                     break; | ||||
|                                 case 2:  // 从完工状态回到审核通过 | ||||
|                                     updateBills = businessService.rowfinishCancel(currentVOs); | ||||
|                                     break; | ||||
|                                 case 3:  // 从关闭状态回到审核通过 | ||||
|                                     updateBills = businessService.rowcloseCancel(currentVOs); | ||||
|                                     break; | ||||
|                                 case 4:  // 已经是审核通过状态,无需处理 | ||||
|                                     break; | ||||
|                                 default: | ||||
|                                     return ResultMessageUtil.exceptionToJSON("不支持的当前行状态值: " + currentStatus, APIErrCodeEnum.BUSINESSEXCCODE.getCode()); | ||||
|                             } | ||||
|                         } else { | ||||
|                             // 目标状态是1-3,从审核通过状态变更,调用对应的方法 | ||||
|                             switch (targetStatus) { | ||||
|                                 case 1:  // 投放 | ||||
|                                     updateBills = businessService.rowput(currentVOs); | ||||
|                                     break; | ||||
|                                 case 2:  // 完工 | ||||
|                                     updateBills = businessService.rowfinish(currentVOs); | ||||
|                                     break; | ||||
|                                 case 3:  // 关闭 | ||||
|                                     updateBills = businessService.rowclose(currentVOs); | ||||
|                                     break; | ||||
|                             } | ||||
|                         } | ||||
| 
 | ||||
|                     } | ||||
| 
 | ||||
| 
 | ||||
|                 } | ||||
| 
 | ||||
|             } | ||||
| 
 | ||||
|             return ResultMessageUtil.toJSON(updateBills, "流程生产订单行状态修改成功"); | ||||
|         } catch (Exception e) { | ||||
|             return ResultMessageUtil.exceptionToJSON(e); | ||||
|         } | ||||
|     } | ||||
|     @POST | ||||
|     @Path("delete") | ||||
|     @Consumes({"application/json"}) | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue