高压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.jdbc.framework.processor.MapListProcessor;
|
||||||
import nc.util.mmf.framework.base.MMCollectionUtil;
|
import nc.util.mmf.framework.base.MMCollectionUtil;
|
||||||
import nc.vo.mmpac.pmo.pac0002.entity.PMOAggVO;
|
import nc.vo.mmpac.pmo.pac0002.entity.PMOAggVO;
|
||||||
|
import nc.vo.mmpac.pmo.pac0002.entity.PMOItemVO;
|
||||||
import nc.vo.org.OrgVO;
|
import nc.vo.org.OrgVO;
|
||||||
import nc.vo.pub.BusinessException;
|
import nc.vo.pub.BusinessException;
|
||||||
import nc.ws.opm.pub.utils.result.APIErrCodeEnum;
|
import nc.ws.opm.pub.utils.result.APIErrCodeEnum;
|
||||||
|
|
@ -158,6 +159,116 @@ public class PmoResource extends AbstractNCCRestResource {
|
||||||
return ResultMessageUtil.exceptionToJSON(e);
|
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
|
@POST
|
||||||
@Path("delete")
|
@Path("delete")
|
||||||
@Consumes({"application/json"})
|
@Consumes({"application/json"})
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue