流程备料计划审核源码
This commit is contained in:
parent
fa477117bb
commit
92cd236648
|
@ -0,0 +1,176 @@
|
||||||
|
//
|
||||||
|
// Source code recreated from a .class file by IntelliJ IDEA
|
||||||
|
// (powered by FernFlower decompiler)
|
||||||
|
//
|
||||||
|
|
||||||
|
package nccloud.web.mmpac.pickm.action;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
import nc.itf.mmpac.pickm.IPickmQueryService;
|
||||||
|
import nc.util.mmf.framework.base.MMValueCheck;
|
||||||
|
import nc.vo.ml.NCLangRes4VoTransl;
|
||||||
|
import nc.vo.mmpac.pickm.entity.AggPickmVO;
|
||||||
|
import nc.vo.mmpac.pickm.entity.PickmHeadVO;
|
||||||
|
import nc.vo.mmpac.pickm.entity.PickmItemVO;
|
||||||
|
import nc.vo.pub.BusinessException;
|
||||||
|
import nc.vo.pub.lang.UFDateTime;
|
||||||
|
import nc.vo.pubapp.pattern.model.entity.bill.AbstractBill;
|
||||||
|
import nccloud.dto.mmpac.pickm.pub.entity.PickmDeleteDTO;
|
||||||
|
import nccloud.dto.mmpac.pickm.pub.entity.PickmDeleteInfo;
|
||||||
|
import nccloud.dto.mmpub.script.entity.MMScriptResultDTO;
|
||||||
|
import nccloud.framework.core.exception.ExceptionUtils;
|
||||||
|
import nccloud.framework.core.json.IJson;
|
||||||
|
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.framework.web.ui.pattern.grid.Grid;
|
||||||
|
import nccloud.pubitf.mmpub.commit.service.IBatchRunScriptService;
|
||||||
|
import nccloud.pubitf.riart.pflow.CloudPFlowContext;
|
||||||
|
import nccloud.web.mmpac.pickm.util.PickmScaleUtil;
|
||||||
|
import nccloud.web.mmpub.pub.action.DataPermissionAction;
|
||||||
|
import nccloud.web.mmpub.pub.assign.CommitAssignUtils;
|
||||||
|
import nccloud.web.mmpub.pub.busi.MMATOMaterialCheckUtil;
|
||||||
|
import nccloud.web.mmpub.pub.resexp.PfResumeExceptionNccUtils;
|
||||||
|
import nccloud.web.mmpub.pub.utils.MMBatchOperatorResult;
|
||||||
|
|
||||||
|
public class PickmCommitAction extends DataPermissionAction {
|
||||||
|
private String appcode = null;
|
||||||
|
|
||||||
|
public PickmCommitAction() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object doAction(IRequest request) {
|
||||||
|
String read = request.read();
|
||||||
|
IJson json = JsonFactory.create();
|
||||||
|
|
||||||
|
try {
|
||||||
|
CommitAssignUtils.before(request);
|
||||||
|
PickmDeleteDTO infoDTO = (PickmDeleteDTO)json.fromJson(read, PickmDeleteDTO.class);
|
||||||
|
PickmDeleteInfo[] info = infoDTO.getDeleteInfo();
|
||||||
|
this.appcode = infoDTO.getAppcode();
|
||||||
|
BillCardOperator operator = new BillCardOperator(infoDTO.getPageCode());
|
||||||
|
AggPickmVO[] aggVOs = this.getAggPickmVOs(info);
|
||||||
|
if (null == aggVOs || aggVOs.length == 0) {
|
||||||
|
ExceptionUtils.wrapBusinessException(NCLangRes4VoTransl.getNCLangRes().getStrByID("5008100_0", "05008100-0000"));
|
||||||
|
}
|
||||||
|
|
||||||
|
this.checkPermission(aggVOs);
|
||||||
|
(new MMATOMaterialCheckUtil("5099002_0", "05099002-0450")).CheckMaterialIsATO(aggVOs, "cmaterialvid", "cffileid", (String)null, (String)null);
|
||||||
|
BillCard orginCard = operator.toCard(aggVOs[0]);
|
||||||
|
PickmScaleUtil stoUtil = new PickmScaleUtil();
|
||||||
|
stoUtil.processBillCard(orginCard);
|
||||||
|
operator.setOriginBillcard(orginCard);
|
||||||
|
CloudPFlowContext context = new CloudPFlowContext();
|
||||||
|
context.setBillType("55A3");
|
||||||
|
context.setActionName("SAVE");
|
||||||
|
context.setBillVos(aggVOs);
|
||||||
|
MMScriptResultDTO obj = ((IBatchRunScriptService)ServiceLocator.find(IBatchRunScriptService.class)).runBacth(context, AggPickmVO.class);
|
||||||
|
Object returndata = obj.getData();
|
||||||
|
if (returndata != null && returndata instanceof Map) {
|
||||||
|
return returndata;
|
||||||
|
} else {
|
||||||
|
boolean iscard = infoDTO.isCard();
|
||||||
|
if (iscard) {
|
||||||
|
this.processResult(obj, infoDTO.getPageCode());
|
||||||
|
return obj;
|
||||||
|
} else {
|
||||||
|
MMBatchOperatorResult resultInto = new MMBatchOperatorResult(obj, infoDTO.getPageCode());
|
||||||
|
Grid grid = resultInto.getSucessVOs();
|
||||||
|
if (MMValueCheck.isNotEmpty(grid)) {
|
||||||
|
this.afterProcess(grid);
|
||||||
|
}
|
||||||
|
|
||||||
|
return resultInto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
return PfResumeExceptionNccUtils.handleResumeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void afterProcess(Grid grid) {
|
||||||
|
PickmScaleUtil scaleUtil = new PickmScaleUtil();
|
||||||
|
scaleUtil.processGrid(grid);
|
||||||
|
}
|
||||||
|
|
||||||
|
private AggPickmVO[] getAggPickmVOs(PickmDeleteInfo[] deleteinfo) throws BusinessException {
|
||||||
|
String[] pks = new String[deleteinfo.length];
|
||||||
|
Map<String, UFDateTime> map = new HashMap();
|
||||||
|
Map<String, UFDateTime> bodymap = new HashMap();
|
||||||
|
|
||||||
|
for(int i = 0; i < deleteinfo.length; ++i) {
|
||||||
|
String pk = deleteinfo[i].getPks();
|
||||||
|
pks[i] = pk;
|
||||||
|
map.put(pk, deleteinfo[i].getTs());
|
||||||
|
if (MMValueCheck.isNotEmpty(deleteinfo[i].getBodys())) {
|
||||||
|
for(PickmDeleteInfo bodyInfo : deleteinfo[i].getBodys()) {
|
||||||
|
bodymap.put(bodyInfo.getPks(), bodyInfo.getTs());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
IPickmQueryService query = (IPickmQueryService)ServiceLocator.find(IPickmQueryService.class);
|
||||||
|
AggPickmVO[] aggVOs = query.queryBillsByPks(pks);
|
||||||
|
if (aggVOs != null && aggVOs.length > 0) {
|
||||||
|
for(int j = 0; j < aggVOs.length; ++j) {
|
||||||
|
String key = aggVOs[j].getParentVO().getCpickmid();
|
||||||
|
aggVOs[j].getParentVO().setAttributeValue("ts", map.get(key));
|
||||||
|
if (MMValueCheck.isNotEmpty(aggVOs[j].getChildrenVO())) {
|
||||||
|
for(PickmItemVO body : (PickmItemVO[])aggVOs[j].getChildrenVO()) {
|
||||||
|
body.setStatus(1);
|
||||||
|
if (MMValueCheck.isNotEmpty(bodymap) && bodymap.containsKey(body.getCpickm_bid())) {
|
||||||
|
body.setTs((UFDateTime)bodymap.get(body.getCpickm_bid()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return aggVOs;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void processResult(MMScriptResultDTO dto, String pagecode) {
|
||||||
|
AbstractBill[] sucessVOs = dto.getSucessVOs();
|
||||||
|
if (sucessVOs != null && sucessVOs.length != 0) {
|
||||||
|
dto.setData(this.processCardBill(sucessVOs, pagecode));
|
||||||
|
dto.setSucessVOs((AbstractBill[])null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private Object processCardBill(AbstractBill[] bills, String pagecode) {
|
||||||
|
PickmHeadVO headerVO = (PickmHeadVO)bills[0].getParent();
|
||||||
|
String pk = headerVO.getCpickmid();
|
||||||
|
IPickmQueryService query = (IPickmQueryService)ServiceLocator.find(IPickmQueryService.class);
|
||||||
|
|
||||||
|
try {
|
||||||
|
AggPickmVO[] rvo = query.queryBillsByPks(new String[]{pk});
|
||||||
|
BillCardOperator operator = new BillCardOperator(pagecode);
|
||||||
|
BillCard billCard = operator.toCard(rvo[0]);
|
||||||
|
this.afterProcess(billCard);
|
||||||
|
return billCard;
|
||||||
|
} catch (Exception e) {
|
||||||
|
ExceptionUtils.wrapException(e);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void afterProcess(BillCard card) {
|
||||||
|
PickmScaleUtil scalUtil = new PickmScaleUtil();
|
||||||
|
scalUtil.processBillCard(card);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPermissioncode() {
|
||||||
|
return MMValueCheck.isNotEmpty(this.appcode) && this.appcode.startsWith("5009") ? "55C3" : "55A3";
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getActioncode() {
|
||||||
|
return MMValueCheck.isNotEmpty(this.appcode) && this.appcode.startsWith("5009") ? "DPickmAuditBP" : "PickmAuditBP";
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getBillCodeField() {
|
||||||
|
return "vbillcode";
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue