refactor(pmo): 重构 PMO 卡片操作流程
- 新增 PmoCardOperAction 类作为 PMO 卡片操作的基类 - 实现 PmoCardPutAction 类用于处理卡片投放操作 - 重构 PmoResource 中的自动投放逻辑,使用 IPMOBusinessService 接口替代 PMORowPutBP
This commit is contained in:
parent
2d34d04fed
commit
5795f4b5be
|
@ -0,0 +1,109 @@
|
|||
|
||||
package nccloud.web.mmpac.pmo.action;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import nc.itf.mmpac.pmo.pac0002.IPMOQueryService;
|
||||
import nc.util.mmf.framework.base.MMArrayUtil;
|
||||
import nc.util.mmf.framework.base.MMCollectionUtil;
|
||||
import nc.util.mmf.framework.base.MMValueCheck;
|
||||
import nc.vo.mmpac.pmo.pac0002.entity.PMOAggVO;
|
||||
import nc.vo.mmpac.pmo.pac0002.entity.PMOItemVO;
|
||||
import nc.vo.pub.BusinessException;
|
||||
import nc.vo.pub.CircularlyAccessibleValueObject;
|
||||
import nc.vo.pubapp.pattern.exception.ExceptionUtils;
|
||||
import nccloud.framework.core.util.GridCompareUtils;
|
||||
import nccloud.framework.service.ServiceLocator;
|
||||
import nccloud.framework.web.container.IRequest;
|
||||
import nccloud.framework.web.json.JsonFactory;
|
||||
import nccloud.framework.web.ui.pattern.billcard.BillCard;
|
||||
import nccloud.framework.web.ui.pattern.billcard.BillCardOperator;
|
||||
import nccloud.mmpac.pmo.pub.entity.CardInfo;
|
||||
import nccloud.mmpac.pmo.pub.entity.PmoConst;
|
||||
import nccloud.mmpac.pmo.pub.entity.SingleInfo;
|
||||
import nccloud.web.mmpac.pmo.constant.NCCPMOConstLang;
|
||||
import nccloud.web.mmpac.pmo.util.PmoScaleUtil;
|
||||
import nccloud.web.mmpac.pmo.util.PmoUtil;
|
||||
import nccloud.web.mmpub.pub.resexp.PfResumeExceptionNccUtils;
|
||||
|
||||
public abstract class PmoCardOperAction extends PMOCommonAction {
|
||||
public PmoCardOperAction() {
|
||||
}
|
||||
|
||||
public Object doAction(IRequest request) {
|
||||
BillCard card = null;
|
||||
BillCard originBillcard = null;
|
||||
BillCard returnCard = null;
|
||||
PfResumeExceptionNccUtils.before(request);
|
||||
BillCardOperator operator = new BillCardOperator(PmoConst.PAGECODE);
|
||||
PMOAggVO[] vos = null;
|
||||
PMOAggVO[] returnvos = null;
|
||||
|
||||
try {
|
||||
CardInfo cardInfo = (CardInfo) JsonFactory.create().fromJson(request.read(), CardInfo.class);
|
||||
String cpmhoid = cardInfo.getId();
|
||||
PMOAggVO vo = null;
|
||||
|
||||
try {
|
||||
vo = ((IPMOQueryService) ServiceLocator.find(IPMOQueryService.class)).queryByPk(cpmhoid);
|
||||
} catch (BusinessException e) {
|
||||
ExceptionUtils.wrappException(e);
|
||||
}
|
||||
|
||||
if (MMValueCheck.isEmpty(vo)) {
|
||||
ExceptionUtils.wrappBusinessException(NCCPMOConstLang.getHint4Delete());
|
||||
}
|
||||
|
||||
vo.getParentVO().setFatpcheck(cardInfo.getFatpcheck());
|
||||
List<SingleInfo> bodys = cardInfo.getBodyInfo();
|
||||
if (MMCollectionUtil.isNotEmpty(bodys)) {
|
||||
Map<String, SingleInfo> cacheMap = new HashMap();
|
||||
List<PMOItemVO> itemList = new ArrayList();
|
||||
|
||||
for (SingleInfo body : bodys) {
|
||||
cacheMap.put(body.getId(), body);
|
||||
}
|
||||
|
||||
PMOItemVO[] items = vo.getChildrenVO();
|
||||
if (MMArrayUtil.isNotEmpty(items)) {
|
||||
for (PMOItemVO item : items) {
|
||||
if (cacheMap.containsKey(item.getPrimaryKey())) {
|
||||
item.setTs(((SingleInfo) cacheMap.get(item.getPrimaryKey())).getTs());
|
||||
item.setAttributeValue("rowid", ((SingleInfo) cacheMap.get(item.getPrimaryKey())).getRowid());
|
||||
itemList.add(item);
|
||||
}
|
||||
}
|
||||
|
||||
vo.setChildrenVO((CircularlyAccessibleValueObject[]) itemList.toArray(new PMOItemVO[itemList.size()]));
|
||||
}
|
||||
}
|
||||
|
||||
vo.getParentVO().setTs(cardInfo.getTs());
|
||||
(new PmoUtil()).processhslScale(vo);
|
||||
originBillcard = operator.toCard(vo);
|
||||
operator.setOriginBillcard(originBillcard);
|
||||
vo.getParent().setStatus(1);
|
||||
vos = new PMOAggVO[]{vo};
|
||||
this.checkPermission(vos);
|
||||
(new PmoUtil()).clearPseudocolumn(vos);
|
||||
returnvos = this.process(vos);
|
||||
vos = (PMOAggVO[]) this.combine(vos, returnvos);
|
||||
card = operator.toCard(vos[0]);
|
||||
this.afterProcess(card);
|
||||
returnCard = GridCompareUtils.compareBillCardGrid(operator.getOriginBillcard(), card);
|
||||
return returnCard;
|
||||
} catch (Exception e) {
|
||||
return PfResumeExceptionNccUtils.handleResumeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
protected abstract PMOAggVO[] process(PMOAggVO[] var1) throws BusinessException;
|
||||
|
||||
public void afterProcess(BillCard card) {
|
||||
PmoScaleUtil util = new PmoScaleUtil();
|
||||
util.processBillCard(card);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
|
||||
package nccloud.web.mmpac.pmo.action;
|
||||
|
||||
import nc.itf.mmpac.pmo.pac0002.IPMOBusinessService;
|
||||
import nc.vo.mmpac.pmo.pac0002.entity.PMOAggVO;
|
||||
import nc.vo.pub.BusinessException;
|
||||
import nccloud.framework.service.ServiceLocator;
|
||||
import nccloud.mmpac.pmo.pub.entity.PmoConst;
|
||||
|
||||
|
||||
// ¿¨Æ¬ÖÐͶ·Å²Ù×÷
|
||||
public class PmoCardPutAction extends PmoCardOperAction {
|
||||
public PmoCardPutAction() {
|
||||
}
|
||||
|
||||
protected String getActioncode() {
|
||||
return PmoConst.PMOPUT;
|
||||
}
|
||||
|
||||
protected PMOAggVO[] process(PMOAggVO[] vos) throws BusinessException {
|
||||
IPMOBusinessService serv = (IPMOBusinessService) ServiceLocator.find(IPMOBusinessService.class);
|
||||
return serv.rowput(vos);
|
||||
}
|
||||
}
|
|
@ -7,6 +7,7 @@ import javax.ws.rs.POST;
|
|||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.Produces;
|
||||
|
||||
import nc.itf.mmpac.pmo.pac0002.IPMOBusinessService;
|
||||
import nc.bs.dao.BaseDAO;
|
||||
import nc.bs.dao.DAOException;
|
||||
import nc.bs.framework.common.NCLocator;
|
||||
|
@ -19,7 +20,6 @@ import nc.ws.opm.pub.utils.result.APIErrCodeEnum;
|
|||
import nccloud.api.mmpac.pmo.IAPIPmoMaintainService;
|
||||
import nccloud.api.rest.utils.ResultMessageUtil;
|
||||
import nccloud.pubift.commen.itf.utils.IHttpPostOtherSys;
|
||||
import nc.bs.mmpac.pmo.pac0002.bp.PMORowPutBP;
|
||||
import nccloud.ws.rest.resource.AbstractNCCRestResource;
|
||||
import org.json.JSONString;
|
||||
|
||||
|
@ -69,9 +69,9 @@ public class PmoResource extends AbstractNCCRestResource {
|
|||
isIncludeOrg = httpPostOtherSys.checkIfIncludeOrg(orgCode);
|
||||
logger.debug("检查是否为电缆[" + orgCode + "]返回:" + isIncludeOrg);
|
||||
if (isIncludeOrg) {
|
||||
PMORowPutBP rowPutBP = NCLocator.getInstance().lookup(PMORowPutBP.class);
|
||||
IPMOBusinessService putService = (IPMOBusinessService) NCLocator.getInstance().lookup(IPMOBusinessService.class);
|
||||
try {
|
||||
rowPutBP.rowput(insertBills);
|
||||
putService.rowput(insertBills);
|
||||
logger.info("自动投放完成,orgCode=" + orgCode);
|
||||
} catch (Exception e) {
|
||||
logger.error("自动投放失败,orgCode=" + orgCode, e);
|
||||
|
|
Loading…
Reference in New Issue