高压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