This commit is contained in:
xuhaihui 2025-09-02 13:40:56 +08:00
parent 4209d80496
commit 225f50970b
1 changed files with 138 additions and 0 deletions

View File

@ -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);
}
}
}