fix:图册查询零件查询逻辑调整
This commit is contained in:
parent
396c9fdb2a
commit
f686dcbe06
@ -1,5 +1,6 @@
|
|||||||
package com.yem.em.dynamic;
|
package com.yem.em.dynamic;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.yem.em.utils.SubRelationUtils;
|
import com.yem.em.utils.SubRelationUtils;
|
||||||
import com.yem.wm.utils.StringUtils;
|
import com.yem.wm.utils.StringUtils;
|
||||||
import kd.bos.algo.DataSet;
|
import kd.bos.algo.DataSet;
|
||||||
@ -33,6 +34,8 @@ import java.text.ParseException;
|
|||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
|
import static com.yem.em.utils.SubRelationUtils.queryBoughtPartInfo;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author zhouc
|
* @author zhouc
|
||||||
* @date 2023/8/31 17:48
|
* @date 2023/8/31 17:48
|
||||||
@ -75,47 +78,75 @@ public class SelectsalenoDynamicoEdit extends AbstractFormPlugin implements RowC
|
|||||||
}
|
}
|
||||||
if (customParas.get("Tpye").equals("searchap2")) {//零件
|
if (customParas.get("Tpye").equals("searchap2")) {//零件
|
||||||
if (customParas.containsKey("yem_salesorderno")) {
|
if (customParas.containsKey("yem_salesorderno")) {
|
||||||
List<QFilter> qFilters = new ArrayList<>();
|
|
||||||
String algoKey = this.getClass().getName();
|
String modelnumber = (String) customParas.get("yem_salesorderno");
|
||||||
//查询零件明细表 根据零件编码过滤
|
DataSet dataSet = queryBoughtPartInfo(modelnumber, null);
|
||||||
// qFilters.add(new QFilter("yem_entryentity.yem_partnumber", QCP.equals, customParas.get("yem_salesorderno")));
|
|
||||||
// DataSet dataSet = ORM.create().queryDataSet(algoKey, "yem_em_assatlasdet", "number ljnumber", qFilters.toArray(new QFilter[]{}));
|
DynamicObjectCollection collection = ORM.create().toPlainDynamicObjectCollection(dataSet);
|
||||||
// DataSet dataSet2 = ORM.create().queryDataSet(algoKey, "yem_em_cmmptable", "yem_entryentity.yem_asscomponent.number yem_ccode,number ", null);
|
Map<String, DynamicObject> res = new HashMap<>();
|
||||||
// DataSet dataSet3 = dataSet.leftJoin(dataSet2).on("ljnumber", "yem_ccode").select(new String[]{"ljnumber"}, new String[]{"number"}).finish();
|
for (DynamicObject data : collection) {
|
||||||
DynamicObject object1 = SubRelationUtils.getfirstNumber(customParas.get("yem_salesorderno").toString());
|
String salesorderno = (String) data.get("yem_salesorderno");
|
||||||
DynamicObject getfirstid = SubRelationUtils.getfirstid(customParas.get("yem_salesorderno").toString());
|
String ass_number = data.getString("ass_number");
|
||||||
if (getfirstid != null) {
|
res.put(salesorderno + "_" + modelnumber + "_" + ass_number, data);
|
||||||
qFilters.add(new QFilter("yem_entryentity.yem_asscomponent.number", QCP.equals, getfirstid.getString("number")));
|
|
||||||
DataSet dataSet3 = ORM.create().queryDataSet(algoKey, "yem_em_cmmptable", "number", qFilters.toArray(new QFilter[]{}));
|
|
||||||
//查询设备档案 与 查询零件明细表DataSet通过资源号编码进行左关联
|
|
||||||
String selectField1 = "yem_model.number yem_modelno,yem_model.yem_products.number yem_products" +
|
|
||||||
",yem_model.yem_productsgroup.name yem_productsgroup,yem_dateofpurchase,yem_salesorderno";
|
|
||||||
DataSet dataSet1 = ORM.create().queryDataSet(algoKey, "yem_em_devicefiles", selectField1, null);
|
|
||||||
DataSet dataSetdi11 = dataSet3.leftJoin(dataSet1).on("number", "yem_modelno")
|
|
||||||
.select(new String[]{"number"},
|
|
||||||
new String[]{"yem_modelno", "yem_products", "yem_productsgroup", "yem_dateofpurchase", "yem_salesorderno"})
|
|
||||||
.finish().where("yem_salesorderno is not null");
|
|
||||||
DataSet dataSetdis = dataSetdi11.distinct();
|
|
||||||
if (dataSetdis != null) {
|
|
||||||
for (Row data : dataSetdis) {
|
|
||||||
if (data.get("yem_salesorderno") != null) {
|
|
||||||
DynamicObject entryentity = yem_entryentity.addNew();
|
|
||||||
entryentity.set("yem_salesorderno", data.get("yem_salesorderno"));
|
|
||||||
entryentity.set("yem_resourceno", data.getString("yem_modelno"));
|
|
||||||
entryentity.set("yem_products", data.getString("yem_products"));
|
|
||||||
entryentity.set("yem_productsgroup", data.getString("yem_productsgroup"));
|
|
||||||
if (object1 != null) {
|
|
||||||
entryentity.set("yem_parentpartcode", object1.getString("number"));
|
|
||||||
}
|
|
||||||
entryentity.set("yem_partcode", customParas.get("yem_salesorderno"));
|
|
||||||
if (data.getString("yem_dateofpurchase") != null) {
|
|
||||||
Date yem_dateofpurchase = formatDate(data.getString("yem_dateofpurchase"), "yyyy-MM-dd");
|
|
||||||
entryentity.set("yem_dateofpurchase", yem_dateofpurchase);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (DynamicObject data : res.values()) {
|
||||||
|
DynamicObject obj = yem_entryentity.addNew();
|
||||||
|
obj.set("yem_salesorderno", data.getString("yem_salesorderno"));
|
||||||
|
obj.set("yem_dateofpurchase", data.getDate("yem_dateofpurchase"));
|
||||||
|
obj.set("yem_resourceno", data.getString("resource_no"));
|
||||||
|
obj.set("yem_products", data.getString("yem_products"));
|
||||||
|
obj.set("yem_productsgroup", data.getString("yem_productsgroup"));
|
||||||
|
obj.set("yem_partcode", modelnumber);
|
||||||
|
obj.set("yem_parentpartcode", data.getString("ass_number"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// List<QFilter> qFilters = new ArrayList<>();
|
||||||
|
// String algoKey = this.getClass().getName();
|
||||||
|
// //查询零件明细表 根据零件编码过滤
|
||||||
|
//// qFilters.add(new QFilter("yem_entryentity.yem_partnumber", QCP.equals, customParas.get("yem_salesorderno")));
|
||||||
|
//// DataSet dataSet = ORM.create().queryDataSet(algoKey, "yem_em_assatlasdet", "number ljnumber", qFilters.toArray(new QFilter[]{}));
|
||||||
|
//// DataSet dataSet2 = ORM.create().queryDataSet(algoKey, "yem_em_cmmptable", "yem_entryentity.yem_asscomponent.number yem_ccode,number ", null);
|
||||||
|
//// DataSet dataSet3 = dataSet.leftJoin(dataSet2).on("ljnumber", "yem_ccode").select(new String[]{"ljnumber"}, new String[]{"number"}).finish();
|
||||||
|
// DynamicObject[] object1 = SubRelationUtils.getfirstNumber(customParas.get("yem_salesorderno").toString());
|
||||||
|
// Set<DynamicObject> resultList = new HashSet<>();
|
||||||
|
//// SubRelationUtils.getfirstid(customParas.get("yem_salesorderno").toString(), resultList);
|
||||||
|
// Set<String> queryNum = new HashSet<>();
|
||||||
|
// for (DynamicObject object : resultList) {
|
||||||
|
// queryNum.add(object.getString("number"));
|
||||||
|
// }
|
||||||
|
// if (!resultList.isEmpty()) {
|
||||||
|
// qFilters.add(new QFilter("yem_entryentity.yem_asscomponent.number", QCP.in, queryNum));
|
||||||
|
// DataSet dataSet3 = ORM.create().queryDataSet(algoKey, "yem_em_cmmptable", "number", qFilters.toArray(new QFilter[]{}));
|
||||||
|
// //查询设备档案 与 查询零件明细表DataSet通过资源号编码进行左关联
|
||||||
|
// String selectField1 = "yem_model.number yem_modelno,yem_model.yem_products.number yem_products" +
|
||||||
|
// ",yem_model.yem_productsgroup.name yem_productsgroup,yem_dateofpurchase,yem_salesorderno";
|
||||||
|
// DataSet dataSet1 = ORM.create().queryDataSet(algoKey, "yem_em_devicefiles", selectField1, null);
|
||||||
|
// DataSet dataSetdi11 = dataSet3.leftJoin(dataSet1).on("number", "yem_modelno")
|
||||||
|
// .select(new String[]{"number"},
|
||||||
|
// new String[]{"yem_modelno", "yem_products", "yem_productsgroup", "yem_dateofpurchase", "yem_salesorderno"})
|
||||||
|
// .finish().where("yem_salesorderno is not null");
|
||||||
|
// DataSet dataSetdis = dataSetdi11.distinct();
|
||||||
|
// if (dataSetdis != null) {
|
||||||
|
// for (Row data : dataSetdis) {
|
||||||
|
// if (data.get("yem_salesorderno") != null) {
|
||||||
|
// DynamicObject entryentity = yem_entryentity.addNew();
|
||||||
|
// entryentity.set("yem_salesorderno", data.get("yem_salesorderno"));
|
||||||
|
// entryentity.set("yem_resourceno", data.getString("yem_modelno"));
|
||||||
|
// entryentity.set("yem_products", data.getString("yem_products"));
|
||||||
|
// entryentity.set("yem_productsgroup", data.getString("yem_productsgroup"));
|
||||||
|
// if (object1.length > 0) {
|
||||||
|
// entryentity.set("yem_parentpartcode", object1[0].getString("number"));
|
||||||
|
// }
|
||||||
|
// entryentity.set("yem_partcode", customParas.get("yem_salesorderno"));
|
||||||
|
// if (data.getString("yem_dateofpurchase") != null) {
|
||||||
|
// Date yem_dateofpurchase = formatDate(data.getString("yem_dateofpurchase"), "yyyy-MM-dd");
|
||||||
|
// entryentity.set("yem_dateofpurchase", yem_dateofpurchase);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,22 +1,28 @@
|
|||||||
package com.yem.em.utils;
|
package com.yem.em.utils;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.yem.wm.utils.DynamicObjectUtil;
|
import com.yem.wm.utils.DynamicObjectUtil;
|
||||||
|
import com.yem.wm.utils.RptUtil;
|
||||||
|
import com.yem.wm.utils.YEM;
|
||||||
|
import kd.bos.algo.DataSet;
|
||||||
import kd.bos.dataentity.OperateOption;
|
import kd.bos.dataentity.OperateOption;
|
||||||
import kd.bos.dataentity.entity.DynamicObject;
|
import kd.bos.dataentity.entity.DynamicObject;
|
||||||
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
||||||
import kd.bos.entity.datamodel.IDataModel;
|
|
||||||
import kd.bos.entity.operate.result.OperationResult;
|
import kd.bos.entity.operate.result.OperationResult;
|
||||||
import kd.bos.logging.Log;
|
import kd.bos.logging.Log;
|
||||||
import kd.bos.logging.LogFactory;
|
import kd.bos.logging.LogFactory;
|
||||||
|
import kd.bos.openapi.common.custom.annotation.ApiParam;
|
||||||
|
import kd.bos.orm.ORM;
|
||||||
import kd.bos.orm.query.QCP;
|
import kd.bos.orm.query.QCP;
|
||||||
import kd.bos.orm.query.QFilter;
|
import kd.bos.orm.query.QFilter;
|
||||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||||
import kd.bos.servicehelper.QueryServiceHelper;
|
import kd.bos.servicehelper.QueryServiceHelper;
|
||||||
import kd.bos.servicehelper.operation.OperationServiceHelper;
|
import kd.bos.servicehelper.operation.OperationServiceHelper;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.springframework.lang.Nullable;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.math.RoundingMode;
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
@ -644,6 +650,7 @@ public class SubRelationUtils {
|
|||||||
* 层级为2:编号为1.1.1,1.1.2,1.1.3
|
* 层级为2:编号为1.1.1,1.1.2,1.1.3
|
||||||
* 对图册中编号按照层级进行排序,之后取最大的编号,给最后一位数加一,返回加一后的时
|
* 对图册中编号按照层级进行排序,之后取最大的编号,给最后一位数加一,返回加一后的时
|
||||||
* 如果按照以上规则无法获取到正确的编号,返回空字符串,后续手动维护编号
|
* 如果按照以上规则无法获取到正确的编号,返回空字符串,后续手动维护编号
|
||||||
|
*
|
||||||
* @param repno
|
* @param repno
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@ -675,6 +682,7 @@ public class SubRelationUtils {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 对图册中编号按照层级进行排序,之后取最大的编号,给最后一位数加一,返回加一后的时
|
* 对图册中编号按照层级进行排序,之后取最大的编号,给最后一位数加一,返回加一后的时
|
||||||
|
*
|
||||||
* @param hierarchicalStrings 已有编号
|
* @param hierarchicalStrings 已有编号
|
||||||
* @param levels 层级
|
* @param levels 层级
|
||||||
* @return 下一个编号
|
* @return 下一个编号
|
||||||
@ -717,6 +725,7 @@ public class SubRelationUtils {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 最后一位编号加一
|
* 最后一位编号加一
|
||||||
|
*
|
||||||
* @param maxString 当前最大编号
|
* @param maxString 当前最大编号
|
||||||
*/
|
*/
|
||||||
private static String getNextValue(String maxString) {
|
private static String getNextValue(String maxString) {
|
||||||
@ -773,19 +782,17 @@ public class SubRelationUtils {
|
|||||||
* @param yem_partnumber 零件编码
|
* @param yem_partnumber 零件编码
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public static DynamicObject getfirstNumber(String yem_partnumber) {
|
public static DynamicObject[] getfirstNumber(String yem_partnumber) {
|
||||||
QFilter qFilter = new QFilter("yem_entryentity.yem_partnumber", QCP.equals, yem_partnumber);//
|
QFilter qFilter = new QFilter("yem_entryentity.yem_partnumber", QCP.equals, yem_partnumber);//
|
||||||
qFilter.and(new QFilter("status", QCP.equals, "C"));
|
qFilter.and(new QFilter("status", QCP.equals, "C"));
|
||||||
String selectfield = DynamicObjectUtil.getSelectfields("yem_em_assatlasdet", false);
|
String selectfield = DynamicObjectUtil.getSelectfields("yem_em_assatlasdet", false);
|
||||||
String selectfields = DynamicObjectUtil.getEntrySelectfields(selectfield, "yem_em_assatlasdet", "yem_entryentity", false);
|
String selectfields = DynamicObjectUtil.getEntrySelectfields(selectfield, "yem_em_assatlasdet", "yem_entryentity", false);
|
||||||
DynamicObject Object = BusinessDataServiceHelper.loadSingle("yem_em_assatlasdet", selectfields, qFilter.toArray());
|
return BusinessDataServiceHelper.load("yem_em_assatlasdet", selectfields, qFilter.toArray());
|
||||||
return Object;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取零件一级部件
|
* 获取零件一级部件
|
||||||
*
|
*
|
||||||
* @param yem_partnumber 零件编码
|
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public static DynamicObject getfirstid(String yem_partnumber) {
|
public static DynamicObject getfirstid(String yem_partnumber) {
|
||||||
@ -805,6 +812,33 @@ public class SubRelationUtils {
|
|||||||
return Object;
|
return Object;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static List<DynamicObject> getTopLevelPart(String yem_partnumber) {
|
||||||
|
List<DynamicObject> topLevelObjects = new ArrayList<>();
|
||||||
|
findTopLevelRecursively(yem_partnumber, topLevelObjects);
|
||||||
|
return topLevelObjects;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void findTopLevelRecursively(String currentPartNumber, List<DynamicObject> topLevelObjects) {
|
||||||
|
QFilter qFilter = new QFilter("yem_entryentity.yem_partnumber", QCP.equals, currentPartNumber);
|
||||||
|
qFilter.and(new QFilter("status", QCP.equals, "C"));
|
||||||
|
|
||||||
|
DynamicObject[] objects = BusinessDataServiceHelper.load("yem_em_assatlasdet", "id, number, yem_issup", qFilter.toArray());
|
||||||
|
|
||||||
|
if (objects == null || objects.length == 0) {
|
||||||
|
return; // 没有找到关联数据,直接返回
|
||||||
|
}
|
||||||
|
|
||||||
|
for (DynamicObject object : objects) {
|
||||||
|
boolean yem_issup = object.getBoolean("yem_issup");
|
||||||
|
if (yem_issup) {
|
||||||
|
String number = object.getString("number");
|
||||||
|
findTopLevelRecursively(number, topLevelObjects);
|
||||||
|
} else {
|
||||||
|
topLevelObjects.add(object); // 将最上级对象添加到列表
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取零件一级部件
|
* 获取零件一级部件
|
||||||
*
|
*
|
||||||
@ -847,4 +881,68 @@ public class SubRelationUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据零件编码查询订单信息
|
||||||
|
* @param modelnumber 零件面板
|
||||||
|
* @param clientnumber 客户
|
||||||
|
* @return mix dataset
|
||||||
|
*/
|
||||||
|
public static DataSet queryBoughtPartInfo(String modelnumber, @Nullable String clientnumber) {
|
||||||
|
|
||||||
|
String algoKey = SubRelationUtils.class.getName();
|
||||||
|
Map<String, JSONObject> res = new HashMap<>();
|
||||||
|
QFilter qFilter = new QFilter("status", "=", "C");
|
||||||
|
List<String> dfFields = new ArrayList<>();
|
||||||
|
dfFields.add("number df_number");
|
||||||
|
dfFields.add("yem_model.number resource_no");
|
||||||
|
dfFields.add("yem_salesorderno");
|
||||||
|
dfFields.add("group");//产品类型
|
||||||
|
dfFields.add("yem_dateofpurchase");
|
||||||
|
dfFields.add("yem_groupcustomer.number cus_no");//业务主体
|
||||||
|
dfFields.add("yem_model.yem_products.number yem_products");
|
||||||
|
dfFields.add("yem_model.yem_productsgroup.name yem_productsgroup");
|
||||||
|
DataSet df = ORM.create().queryDataSet(algoKey, "yem_em_devicefiles", String.join(",", dfFields), qFilter.toArray());
|
||||||
|
|
||||||
|
List<String> cpField = new ArrayList<>();
|
||||||
|
cpField.add("number cp_number");
|
||||||
|
cpField.add("yem_entryentity.yem_assatlasdet.id assatlasdet_id");
|
||||||
|
|
||||||
|
DataSet cp = ORM.create().queryDataSet(algoKey, "yem_em_cmmptable", String.join(",", cpField), qFilter.toArray());
|
||||||
|
|
||||||
|
List<String> assField = new ArrayList<>();
|
||||||
|
assField.add("number ass_number");
|
||||||
|
assField.add("id ass_id");
|
||||||
|
assField.add("yem_entryentity.yem_partnumber part_no");
|
||||||
|
|
||||||
|
DataSet ass = ORM.create().queryDataSet(algoKey, "yem_em_assatlasdet", String.join(",", assField), qFilter.toArray());
|
||||||
|
|
||||||
|
List<String> egField = new ArrayList<>();
|
||||||
|
egField.add("id eg_id");
|
||||||
|
egField.add("yem_model");
|
||||||
|
egField.add("yem_modelname");
|
||||||
|
egField.add("yem_modelenname");
|
||||||
|
DataSet eg = ORM.create().queryDataSet(algoKey, "yem_em_electronicgroup", String.join(",", egField), new QFilter[]{new QFilter("status", "=", "C")});
|
||||||
|
|
||||||
|
DataSet dataSet = df.leftJoin(cp)
|
||||||
|
.select(RptUtil.getDataSetFiledAlias(df), RptUtil.getDataSetFiledAlias(cp))
|
||||||
|
.on("resource_no", "cp_number")
|
||||||
|
.finish();
|
||||||
|
dataSet = dataSet.leftJoin(ass.copy())
|
||||||
|
.select(RptUtil.getDataSetFiledAlias(dataSet), RptUtil.getDataSetFiledAlias(ass.copy()))
|
||||||
|
.on("assatlasdet_id", "ass_id")
|
||||||
|
.finish();
|
||||||
|
dataSet = dataSet.leftJoin(eg)
|
||||||
|
.select(RptUtil.getDataSetFiledAlias(dataSet), RptUtil.getDataSetFiledAlias(eg))
|
||||||
|
.on("group", "eg_id")
|
||||||
|
.finish();
|
||||||
|
|
||||||
|
if (YEM.isNotEmpty(clientnumber)) {
|
||||||
|
dataSet = dataSet.where(String.format("part_no = '%s' AND cus_no = '%s'", modelnumber, clientnumber)).orderBy(new String[]{"yem_salesorderno"});
|
||||||
|
} else {
|
||||||
|
dataSet = dataSet.where(String.format("part_no = '%s'", modelnumber)).orderBy(new String[]{"yem_salesorderno"});
|
||||||
|
}
|
||||||
|
dataSet = dataSet.distinct();
|
||||||
|
|
||||||
|
return dataSet;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -14,7 +14,6 @@ import com.yem.wm.utils.YEM;
|
|||||||
import com.yem.wm.utils.groupfunc.GroupTopOneFunction;
|
import com.yem.wm.utils.groupfunc.GroupTopOneFunction;
|
||||||
import kd.bos.algo.DataSet;
|
import kd.bos.algo.DataSet;
|
||||||
import kd.bos.algo.Row;
|
import kd.bos.algo.Row;
|
||||||
import kd.bos.context.RequestContext;
|
|
||||||
import kd.bos.dataentity.entity.DynamicObject;
|
import kd.bos.dataentity.entity.DynamicObject;
|
||||||
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
||||||
import kd.bos.openapi.common.custom.annotation.ApiController;
|
import kd.bos.openapi.common.custom.annotation.ApiController;
|
||||||
@ -36,10 +35,6 @@ import java.math.BigDecimal;
|
|||||||
import java.text.ParseException;
|
import java.text.ParseException;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.ExecutionException;
|
|
||||||
import java.util.concurrent.ExecutorService;
|
|
||||||
import java.util.concurrent.Executors;
|
|
||||||
import java.util.concurrent.Future;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author zhouc
|
* @author zhouc
|
||||||
@ -313,69 +308,36 @@ public class AssepcDynamic {
|
|||||||
*/
|
*/
|
||||||
@ApiPostMapping("/assepcdynamic/queryassemblies")
|
@ApiPostMapping("/assepcdynamic/queryassemblies")
|
||||||
public CustomApiResult<Object> queryassemblies(@NotNull @ApiParam("部件编码") String modelnumber, @NotNull @ApiParam("客户编码") String clientnumber) throws IOException {
|
public CustomApiResult<Object> queryassemblies(@NotNull @ApiParam("部件编码") String modelnumber, @NotNull @ApiParam("客户编码") String clientnumber) throws IOException {
|
||||||
JSONObject object = new JSONObject();
|
|
||||||
try {
|
try {
|
||||||
List<QFilter> qFilters = new ArrayList<>();
|
DataSet dataSet = SubRelationUtils.queryBoughtPartInfo(modelnumber, clientnumber);
|
||||||
String algoKey = this.getClass().getName();
|
|
||||||
JSONArray jsonArray = new JSONArray();
|
|
||||||
DynamicObject object1 = SubRelationUtils.getfirstNumber(modelnumber);
|
|
||||||
DynamicObject getfirstid = SubRelationUtils.getfirstid(modelnumber);
|
|
||||||
if (getfirstid != null) {
|
|
||||||
qFilters.add(new QFilter("yem_entryentity.yem_asscomponent.number", QCP.equals, getfirstid.getString("number")));
|
|
||||||
DataSet dataSet3 = ORM.create().queryDataSet(algoKey, "yem_em_cmmptable", "number", qFilters.toArray(new QFilter[]{}));
|
|
||||||
|
|
||||||
//查询设备档案 与 查询零件明细表DataSet通过资源号编码进行左关联
|
DynamicObjectCollection collection = ORM.create().toPlainDynamicObjectCollection(dataSet);
|
||||||
String selectField1 = "yem_model.number yem_modelno,yem_model.yem_products.number yem_products" +
|
Map<String, JSONObject> res = new HashMap<>();
|
||||||
",yem_model.yem_productsgroup.name yem_productsgroup,yem_dateofpurchase,yem_salesorderno,group";
|
for (DynamicObject d : collection) {
|
||||||
// DataSet dataSet1 = ORM.create().queryDataSet(algoKey, "yem_em_devicefiles", selectField1, null);
|
JSONObject obj = new JSONObject();
|
||||||
DataSet dataSet1 = ORM.create().queryDataSet(algoKey, "yem_em_devicefiles", selectField1, new QFilter[]{new QFilter("yem_customer.number", QCP.equals, clientnumber)});
|
|
||||||
DataSet dataSetdi11 = dataSet3.leftJoin(dataSet1).on("number", "yem_modelno")
|
|
||||||
.select(new String[]{"number"},
|
|
||||||
new String[]{"yem_modelno", "yem_products", "yem_productsgroup", "yem_dateofpurchase", "yem_salesorderno", "group"})
|
|
||||||
.finish().where("yem_salesorderno is not null");
|
|
||||||
DataSet dataSetdis = dataSetdi11.distinct();
|
|
||||||
|
|
||||||
if (dataSetdis != null) {
|
String salesorderno = (String) d.get("yem_salesorderno");
|
||||||
for (Row data : dataSetdis) {
|
String ass_number = d.getString("ass_number");
|
||||||
JSONObject jsonObject = new JSONObject();
|
obj.put("yem_salesorderno", d.get("yem_salesorderno"));
|
||||||
DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle("yem_em_electronicgroup", "id,number,yem_model,yem_modelname,yem_modelenname"
|
obj.put("yem_resourceno", d.getString("resource_no"));
|
||||||
, new QFilter[]{new QFilter("id", QCP.equals, data.getLong("group"))});
|
obj.put("yem_products", d.getString("yem_products"));
|
||||||
if (data.get("yem_salesorderno") != null) {
|
obj.put("yem_productsgroup", d.getString("yem_productsgroup"));
|
||||||
jsonObject.put("yem_salesorderno", data.get("yem_salesorderno"));
|
obj.put("yem_parentpartcode", d.getString("ass_number"));
|
||||||
jsonObject.put("yem_resourceno", data.getString("yem_modelno"));
|
obj.put("yem_partcode", modelnumber);
|
||||||
jsonObject.put("yem_products", data.getString("yem_products"));
|
obj.put("producttypeno", d.getString("yem_model"));
|
||||||
jsonObject.put("yem_productsgroup", data.getString("yem_productsgroup"));
|
obj.put("producttypename", d.getString("yem_modelname"));
|
||||||
if (object1 != null) {
|
obj.put("producttypeenname", d.getString("yem_modelenname"));
|
||||||
jsonObject.put("yem_parentpartcode", object1.getString("number"));
|
obj.put("yem_dateofpurchase", d.getDate("yem_dateofpurchase"));
|
||||||
} else {
|
res.put(salesorderno + "_" + modelnumber + "_" + ass_number, obj);
|
||||||
jsonObject.put("yem_parentpartcode", "");
|
|
||||||
}
|
}
|
||||||
jsonObject.put("yem_firstNumber", getfirstid.getString("number"));
|
return CustomApiResult.success(res.values());
|
||||||
jsonObject.put("yem_partcode", modelnumber);
|
|
||||||
jsonObject.put("producttypeno", dynamicObject.getString("yem_model"));
|
|
||||||
jsonObject.put("producttypename", dynamicObject.getString("yem_modelname"));
|
|
||||||
jsonObject.put("producttypeenname", dynamicObject.getString("yem_modelenname"));
|
|
||||||
if (data.getString("yem_dateofpurchase") != null) {
|
|
||||||
Date yem_dateofpurchase = formatDate(data.getString("yem_dateofpurchase"), "yyyy-MM-dd");
|
|
||||||
jsonObject.put("yem_dateofpurchase", yem_dateofpurchase);
|
|
||||||
}
|
|
||||||
jsonArray.add(jsonObject);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
object.put("status", "success");
|
|
||||||
object.put("mag", "");
|
|
||||||
object.put("list", jsonArray);
|
|
||||||
} catch (
|
} catch (
|
||||||
Exception e) {
|
Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
return CustomApiResult.
|
return CustomApiResult.
|
||||||
|
|
||||||
fail("501", e.getMessage());
|
fail("501", e.getMessage());
|
||||||
}
|
}
|
||||||
return CustomApiResult.
|
|
||||||
|
|
||||||
success(object);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Date formatDate(String date, String format) {
|
public Date formatDate(String date, String format) {
|
||||||
|
Loading…
Reference in New Issue
Block a user