This commit is contained in:
parent
4209d80496
commit
225f50970b
|
@ -0,0 +1,138 @@
|
|||
//
|
||||
// Source code recreated from a .class file by IntelliJ IDEA
|
||||
// (powered by FernFlower decompiler)
|
||||
//
|
||||
|
||||
package zcgj.zcdev.zcdev.pr.plugin.form;
|
||||
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import kd.bos.dataentity.entity.DynamicObject;
|
||||
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
||||
import kd.bos.dataentity.utils.StringUtils;
|
||||
import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
|
||||
import kd.bos.entity.plugin.AddValidatorsEventArgs;
|
||||
import kd.bos.entity.plugin.PreparePropertysEventArgs;
|
||||
import kd.bos.entity.plugin.args.BeginOperationTransactionArgs;
|
||||
import kd.bos.orm.query.QFilter;
|
||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||
import kd.bos.servicehelper.operation.SaveServiceHelper;
|
||||
import kd.ec.basedata.business.model.ecma.CheckingTaskConstant;
|
||||
import kd.ec.material.common.enums.CheckingStatusEnum;
|
||||
import kd.ec.material.common.utils.MaterialInventoryUtils;
|
||||
import kd.ec.material.common.utils.TaskStatusUtils;
|
||||
import kd.ec.material.opplugin.validator.InvAdjustBillExistValidator;
|
||||
|
||||
public class CheckingAdjustBillOpExt extends AbstractOperationServicePlugIn {
|
||||
public CheckingAdjustBillOpExt() {
|
||||
}
|
||||
|
||||
public void onPreparePropertys(PreparePropertysEventArgs e) {
|
||||
super.onPreparePropertys(e);
|
||||
e.getFieldKeys().add("org");
|
||||
e.getFieldKeys().add("depot");
|
||||
e.getFieldKeys().add("checkbill");
|
||||
e.getFieldKeys().add("adjustdetailentry");
|
||||
e.getFieldKeys().add("amount");
|
||||
e.getFieldKeys().add("lot");
|
||||
e.getFieldKeys().add("material");
|
||||
e.getFieldKeys().add("measureunit");
|
||||
e.getFieldKeys().add("modelnum");
|
||||
e.getFieldKeys().add("price");
|
||||
e.getFieldKeys().add("qty");
|
||||
}
|
||||
|
||||
public void onAddValidators(AddValidatorsEventArgs e) {
|
||||
e.addValidator(new InvAdjustBillExistValidator());
|
||||
}
|
||||
|
||||
public void beginOperationTransaction(BeginOperationTransactionArgs e) {
|
||||
super.beginOperationTransaction(e);
|
||||
String operationKey = e.getOperationKey();
|
||||
DynamicObject[] dataEntities = e.getDataEntities();
|
||||
if (StringUtils.equals(operationKey, "audit")) {
|
||||
this.updateInventory(dataEntities, true);
|
||||
this.updateTaskStatusOnAudit(dataEntities);
|
||||
} else if (StringUtils.equals(operationKey, "unaudit")) {
|
||||
this.updateInventory(dataEntities, false);
|
||||
this.updateTaskStatusOnUnaudit(dataEntities);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
protected void updateTaskStatusOnUnaudit(DynamicObject[] dataEntities) {
|
||||
Set<Object> taskIds = new HashSet();
|
||||
DynamicObject[] var3 = dataEntities;
|
||||
int var4 = dataEntities.length;
|
||||
|
||||
DynamicObject task;
|
||||
for (int var5 = 0; var5 < var4; ++var5) {
|
||||
DynamicObject dataEntity = var3[var5];
|
||||
DynamicObject checkBill = dataEntity.getDynamicObject("checkbill");
|
||||
task = checkBill.getDynamicObject("checkingtask");
|
||||
DynamicObjectCollection entities = dataEntity.getDynamicObjectCollection("adjustdetailentry");
|
||||
if (!entities.isEmpty()) {
|
||||
taskIds.add(task.getPkValue());
|
||||
}
|
||||
}
|
||||
|
||||
QFilter qFilter = new QFilter("checkingstatus", "=", CheckingStatusEnum.FINISHED.getValue());
|
||||
qFilter.and(new QFilter(CheckingTaskConstant.ID_ENTITY_PK, "in", taskIds));
|
||||
DynamicObject[] tasks = BusinessDataServiceHelper.load("ecma_checkingtask", "checkingstatus", new QFilter[]{qFilter});
|
||||
DynamicObject[] var12 = tasks;
|
||||
int var13 = tasks.length;
|
||||
|
||||
for (int var14 = 0; var14 < var13; ++var14) {
|
||||
task = var12[var14];
|
||||
task.set("checkingstatus", CheckingStatusEnum.UNFINISH.getValue());
|
||||
}
|
||||
|
||||
SaveServiceHelper.save(tasks);
|
||||
}
|
||||
|
||||
protected void updateTaskStatusOnAudit(DynamicObject[] dataEntities) {
|
||||
Map<Object, List<Object>> taskBillDepotMap = new HashMap();
|
||||
DynamicObject[] var3 = dataEntities;
|
||||
int var4 = dataEntities.length;
|
||||
|
||||
for (int var5 = 0; var5 < var4; ++var5) {
|
||||
DynamicObject dataEntity = var3[var5];
|
||||
DynamicObject depot = dataEntity.getDynamicObject("depot");
|
||||
DynamicObject checkBill = dataEntity.getDynamicObject("checkbill");
|
||||
DynamicObject task = checkBill.getDynamicObject("checkingtask");
|
||||
/* List<Object> depotList = (List)taskBillDepotMap.get(task.getPkValue());
|
||||
List<Object> depotList = depotList == null ? new ArrayList() : depotList;
|
||||
((List)depotList).add(depot.getPkValue());//系统源码*/
|
||||
Object taskId = task.getPkValue();
|
||||
List<Object> depotList = taskBillDepotMap.get(taskId);
|
||||
if (depotList == null) {
|
||||
depotList = new ArrayList<>();
|
||||
taskBillDepotMap.put(taskId, depotList);
|
||||
}
|
||||
depotList.add(depot.getPkValue());
|
||||
}
|
||||
|
||||
TaskStatusUtils.updateTaskStatus(taskBillDepotMap);
|
||||
}
|
||||
|
||||
protected void updateInventory(DynamicObject[] dataEntities, boolean isAudit) {
|
||||
for (int i = 0; i < dataEntities.length; ++i) {
|
||||
DynamicObject obj = dataEntities[i];
|
||||
String orgId = obj.getDynamicObject("org").getString("id");
|
||||
DynamicObject depot = obj.getDynamicObject("depot");
|
||||
String depotId = depot.getString("id");
|
||||
DynamicObject projectobj = depot.getDynamicObject("project");
|
||||
String projectId = projectobj == null ? "0" : projectobj.getString("id");
|
||||
DynamicObjectCollection entryCol = obj.getDynamicObjectCollection("adjustdetailentry");
|
||||
MaterialInventoryUtils.matBalanceUpdate(orgId, projectId, depotId, (DynamicObject[]) entryCol.toArray(new DynamicObject[entryCol.size()]), isAudit, BigDecimal.ONE);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue