Compare commits

...

2 Commits

Author SHA1 Message Date
zzs
7a9e6f79d3 feat: 替换关系审核更新总成图册明细中是否部件是否上级字段
(cherry picked from commit 4ca9d1426c)
2025-04-02 18:17:29 +08:00
zzs
015f1998c3 fix: 图册查询,零件编号按照升序排列
(cherry picked from commit 08e2229c29)
2025-04-02 18:17:24 +08:00
4 changed files with 101 additions and 45 deletions

View File

@ -12,6 +12,8 @@ import kd.bos.servicehelper.operation.SaveServiceHelper;
import java.util.List;
import static com.yem.em.task.GenerateReplaceRelationshipTaskEdit.updateIsCompAndIsUp;
/**
* @author zhouc
* @date 2023/11/2 18:14
@ -38,49 +40,7 @@ public class AssAtlasdetAuditOpEdit extends AbstractOperationServicePlugIn {
if (e.getDataEntities() != null && e.getDataEntities().length != 0) {
DynamicObject[] bills = e.getDataEntities();
for (DynamicObject bill : bills) {
String number = bill.getString("number");
QFilter qFilter = new QFilter("enable", QCP.equals, "1");//
qFilter.and(new QFilter("yem_entryentity.yem_partnumber", QCP.equals, number));//
DynamicObject[] yem_em_assatlasdet = BusinessDataServiceHelper.load("yem_em_assatlasdet", "id"
, new QFilter[]{qFilter}, null);
if (yem_em_assatlasdet.length > 0) {
bill.set("yem_issup", true);
for (int i = 0; i < yem_em_assatlasdet.length; i++) {
DynamicObject assatlasdet = yem_em_assatlasdet[i];
//根据id加载所有数据
DynamicObject component = BusinessDataServiceHelper.loadSingle(assatlasdet.getLong("id"), "yem_em_assatlasdet");
DynamicObjectCollection yemEntryentity = component.getDynamicObjectCollection("yem_entryentity");
for (int j = 0; j < yemEntryentity.size(); j++) {
DynamicObject dynamicObject = yemEntryentity.get(j);
String yemPartnumber = dynamicObject.getString("yem_partnumber");
if (yemPartnumber.equals(number)) {
dynamicObject.set("yem_iscomp", true);
dynamicObject.set("yem_compid", bill.getString("id"));
}
}
//保存
SaveServiceHelper.save(new DynamicObject[]{component});
}
}
DynamicObjectCollection yem_entryentity = bill.getDynamicObjectCollection("yem_entryentity");
for (int i = 0; i < yem_entryentity.size(); i++) {
DynamicObject object = yem_entryentity.get(i);
boolean yem_iscomp = object.getBoolean("yem_iscomp");
if (!yem_iscomp) {
String yem_partnumber = object.getString("yem_partnumber");
QFilter qFilter1 = new QFilter("enable", QCP.equals, "1");//
qFilter1.and(new QFilter("number", QCP.equals, yem_partnumber));//
DynamicObject assatlasdet = BusinessDataServiceHelper.loadSingle("yem_em_assatlasdet", "id,yem_issup,number,name"
, new QFilter[]{qFilter1});
if (assatlasdet != null) {
assatlasdet.set("yem_issup", true);
object.set("yem_iscomp", true);
object.set("yem_compid", assatlasdet.getString("id"));
SaveServiceHelper.save(new DynamicObject[]{assatlasdet});
}
}
}
SaveServiceHelper.save(new DynamicObject[]{bill});
updateIsCompAndIsUp(bill);
}
}
}

View File

@ -765,6 +765,10 @@ public class AssepcNewDynamicEdut extends AbstractFormPlugin implements BeforeBi
getQueryResult().setDataCount(data.size());
// 把列数据返回
DynamicObjectCollection datas = DealData(data);
// 按照图册编号进行排序
sortDynamicObjectCollection(datas);
Setistcardviewap(datas);
return datas;
}
@ -772,6 +776,45 @@ public class AssepcNewDynamicEdut extends AbstractFormPlugin implements BeforeBi
}
}
public static void sortDynamicObjectCollection(DynamicObjectCollection data) {
List<DynamicObject> list = new ArrayList<>(data);
Collections.sort(list, new Comparator<DynamicObject>() {
@Override
public int compare(DynamicObject o1, DynamicObject o2) {
BigDecimal num1 = parseBigDecimal(o1.getString("yem_atlasno"));
BigDecimal num2 = parseBigDecimal(o2.getString("yem_atlasno"));
// 如果两个都转换成功按数值比较
if (num1 != null && num2 != null) {
return num1.compareTo(num2);
}
if (num1 != null) {
return -1;
}
if (num2 != null) {
return 1;
}
// 如果两个都失败按字符串比较
return o1.getString("yem_atlasno").compareTo(o2.getString("yem_atlasno"));
}
});
// 将排序后的结果重新赋值给原集合
data.clear();
data.addAll(list);
}
private static BigDecimal parseBigDecimal(String value) {
try {
return new BigDecimal(value);
} catch (NumberFormatException e) {
return null; // 转换失败返回 null
}
}
/**
* 给图号单据体赋值
*

View File

@ -9,6 +9,7 @@ import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.exception.KDException;
import kd.bos.fileservice.FileServiceFactory;
import kd.bos.orm.query.QCP;
import kd.bos.orm.query.QFilter;
import kd.bos.schedule.executor.AbstractTask;
import kd.bos.servicehelper.AttachmentServiceHelper;
@ -377,4 +378,54 @@ public class GenerateReplaceRelationshipTaskEdit extends AbstractTask {
}
return null;
}
/**
* 更新总成图册明细中的 是否部件 是否有上级
* @param bill 总成图册明细
*/
public static void updateIsCompAndIsUp(DynamicObject bill) {
String number = bill.getString("number");
QFilter qFilter = new QFilter("enable", QCP.equals, "1");//
qFilter.and(new QFilter("yem_entryentity.yem_partnumber", QCP.equals, number));//
DynamicObject[] yem_em_assatlasdet = BusinessDataServiceHelper.load("yem_em_assatlasdet", "id"
, new QFilter[]{qFilter}, null);
if (yem_em_assatlasdet.length > 0) {
bill.set("yem_issup", true);
for (int i = 0; i < yem_em_assatlasdet.length; i++) {
DynamicObject assatlasdet = yem_em_assatlasdet[i];
//根据id加载所有数据
DynamicObject component = BusinessDataServiceHelper.loadSingle(assatlasdet.getLong("id"), "yem_em_assatlasdet");
DynamicObjectCollection yemEntryentity = component.getDynamicObjectCollection("yem_entryentity");
for (int j = 0; j < yemEntryentity.size(); j++) {
DynamicObject dynamicObject = yemEntryentity.get(j);
String yemPartnumber = dynamicObject.getString("yem_partnumber");
if (yemPartnumber.equals(number)) {
dynamicObject.set("yem_iscomp", true);
dynamicObject.set("yem_compid", bill.getString("id"));
}
}
//保存
SaveServiceHelper.save(new DynamicObject[]{component});
}
}
DynamicObjectCollection yem_entryentity = bill.getDynamicObjectCollection("yem_entryentity");
for (int i = 0; i < yem_entryentity.size(); i++) {
DynamicObject object = yem_entryentity.get(i);
boolean yem_iscomp = object.getBoolean("yem_iscomp");
if (!yem_iscomp) {
String yem_partnumber = object.getString("yem_partnumber");
QFilter qFilter1 = new QFilter("enable", QCP.equals, "1");//
qFilter1.and(new QFilter("number", QCP.equals, yem_partnumber));//
DynamicObject assatlasdet = BusinessDataServiceHelper.loadSingle("yem_em_assatlasdet", "id,yem_issup,number,name"
, new QFilter[]{qFilter1});
if (assatlasdet != null) {
assatlasdet.set("yem_issup", true);
object.set("yem_iscomp", true);
object.set("yem_compid", assatlasdet.getString("id"));
SaveServiceHelper.save(new DynamicObject[]{assatlasdet});
}
}
}
SaveServiceHelper.save(new DynamicObject[]{bill});
}
}

View File

@ -18,6 +18,8 @@ import kd.bos.servicehelper.operation.SaveServiceHelper;
import java.math.BigDecimal;
import java.util.*;
import static com.yem.em.task.GenerateReplaceRelationshipTaskEdit.updateIsCompAndIsUp;
/**
* @author zhouc
* @date 2023/10/24 11:33
@ -424,7 +426,7 @@ public class AtlasUtils {
OperationResult Operate = OperationServiceHelper.executeOperate("save", yem_em_assatlasdet.getDynamicObjectType().getName(),
new DynamicObject[]{yem_em_assatlasdet}, OperateOption.create());
if (Operate.isSuccess()) {
updateIsCompAndIsUp(yem_em_assatlasdet);
}
}
}
@ -571,7 +573,7 @@ public class AtlasUtils {
OperationResult Operate = OperationServiceHelper.executeOperate("save", yem_em_assatlasdet.getDynamicObjectType().getName(),
new DynamicObject[]{yem_em_assatlasdet}, OperateOption.create());
if (Operate.isSuccess()) {
updateIsCompAndIsUp(yem_em_assatlasdet);
}
}
}