wip:PLM匹配,生成替换关系

This commit is contained in:
zzs01@yunemao.com 2024-08-29 17:31:52 +08:00
parent 15ec1e9cac
commit db1cce9b4d
2 changed files with 23 additions and 50 deletions

View File

@ -6,6 +6,7 @@ import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection; import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.exception.KDException; import kd.bos.exception.KDException;
import kd.bos.schedule.executor.AbstractTask; import kd.bos.schedule.executor.AbstractTask;
import kd.bos.servicehelper.BusinessDataServiceHelper;
import java.util.Map; import java.util.Map;
@ -34,7 +35,25 @@ public class GenerateReplaceRelationshipTaskEdit extends AbstractTask {
// if (替换件启用停用状态 = "启用") {} // if (替换件启用停用状态 = "启用") {}
enabled.add(plm); enabled.add(plm);
} }
AtlasUtils.generateReplaceRelationPLM(plmObj, enabled); DynamicObject bomChange = createBOMChange(plmObj, enabled);
DynamicObjectCollection entry = bomChange.getDynamicObjectCollection("yem_entryentity");
if (!entry.isEmpty()) {
DynamicObject replace = null;
if (entry.size() == 1) {
replace = AtlasUtils.Addreplace(bomChange, entry.get(0), null, "yem_em_replace", "add");
}
for (DynamicObject entryObject : entry) {
int idx = entry.indexOf(entryObject);
if (idx == 0) continue;
replace = AtlasUtils.Addreplace(bomChange, entry.get(0), replace, "yem_em_replace", "update");
} }
} }
} }
}
private DynamicObject createBOMChange(DynamicObject head, DynamicObjectCollection entry) {
DynamicObject bomchange = BusinessDataServiceHelper.newDynamicObject("yem_em_bomchange");
return bomchange;
}
}

View File

@ -32,8 +32,9 @@ public class AtlasUtils {
* @param bill 表头数据包 * @param bill 表头数据包
* @param entryentity 分录行数据包 * @param entryentity 分录行数据包
* @param entityName 单据标识 * @param entityName 单据标识
* @return
*/ */
public static void Addreplace(DynamicObject bill, DynamicObject entryentity, DynamicObject replace, String entityName, String type) { public static DynamicObject Addreplace(DynamicObject bill, DynamicObject entryentity, DynamicObject replace, String entityName, String type) {
DynamicObject billObj = null; DynamicObject billObj = null;
if (type.equals("add")) { if (type.equals("add")) {
billObj = BusinessDataServiceHelper.newDynamicObject(entityName); billObj = BusinessDataServiceHelper.newDynamicObject(entityName);
@ -127,6 +128,7 @@ public class AtlasUtils {
// AtlasUtils.Upassatlasdet(bill, entryentity, "Audit"); // AtlasUtils.Upassatlasdet(bill, entryentity, "Audit");
SubRelationUtils.BomUpdateCMMPTable(bill, entryentity, "Audit"); SubRelationUtils.BomUpdateCMMPTable(bill, entryentity, "Audit");
} }
return billObj;
} else { } else {
List<IOperateInfo> allErrorOrValidateInfo = Operate.getAllErrorOrValidateInfo(); List<IOperateInfo> allErrorOrValidateInfo = Operate.getAllErrorOrValidateInfo();
String message = Operate.getMessage(); String message = Operate.getMessage();
@ -1082,52 +1084,4 @@ public class AtlasUtils {
} }
return list; return list;
} }
/**
* PLM变更单生成替换关系
* @param head 单据头数据
* @param entryCollection 分录数据一行
*/
public static void generateReplaceRelationPLM(DynamicObject head, DynamicObjectCollection entryCollection) {
DynamicObject replace = BusinessDataServiceHelper.newDynamicObject("yem_em_replace");
replace.set("createorg", head.getDynamicObject("createorg"));
replace.set("enable", "1");
replace.set("status", "C");
replace.set("yem_sourcetype", "PLM");//来源类型
DynamicObjectCollection collection = replace.getDynamicObjectCollection("yem_entryentity");
for (DynamicObject entry : entryCollection) {
DynamicObject addNew = collection.addNew();
addNew.set("yem_operator", YEM.getCurrentUserId());//操作人
addNew.set("yem_replacedate", new Date());//操作时间
addNew.set("yem_replace", entry.getString("yem_exchangetype"));//替换关系
addNew.set("yem_sourcetypeen", head.getDynamicObjectType().getName());//来源类型
addNew.set("yem_trackingno", head.getString("billno"));//来源单号
addNew.set("yem_trackingid", head.getLong("id"));//来源内码
addNew.set("yem_sourceid", entry.getLong("id"));//来源分录内码
}
OperationResult Operate = OperationServiceHelper.executeOperate("save",
replace.getDynamicObjectType().getName(),
new DynamicObject[]{replace}, OperateOption.create());
if (Operate.isSuccess()) {
// //总成
// boolean yem_isass = entryentity.getBoolean("yem_isass");
// if (yem_isass) {
// AtlasUtils.Upassatlasdet(head, entryentity, "Audit");
// }
// //资源
// boolean yem_isresource = entryentity.getBoolean("yem_isresource");
// if (yem_isresource) {
//// AtlasUtils.Upassatlasdet(bill, entryentity, "Audit");
// SubRelationUtils.BomUpdateCMMPTable(bill, entryentity, "Audit");
// }
} else {
List<IOperateInfo> allErrorOrValidateInfo = Operate.getAllErrorOrValidateInfo();
String message = Operate.getMessage();
throw new KDBizException("保存《替换关系》失败,失败信息为:," + message + "" + allErrorOrValidateInfo);
}
}
} }