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