commit
9e926dcb20
1
.gitignore
vendored
1
.gitignore
vendored
@ -5,3 +5,4 @@
|
||||
|
||||
*.idea/
|
||||
out/
|
||||
!/src/main/java/kd/cosmic/
|
||||
|
@ -2,16 +2,20 @@ package com.yem.or.api;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.google.common.collect.Maps;
|
||||
import com.google.common.collect.Sets;
|
||||
import com.yem.em.utils.SubRelationUtils;
|
||||
import com.yem.or.utils.OrderUtils;
|
||||
import com.yem.rf.utils.RFUtils;
|
||||
import com.yem.wm.utils.DynamicObjectUtil;
|
||||
import com.yem.wm.utils.RptUtil;
|
||||
import com.yem.wm.utils.YEM;
|
||||
import com.yem.wm.utils.groupfunc.GroupTopOneFunction;
|
||||
import kd.bos.algo.DataSet;
|
||||
import kd.bos.algo.Row;
|
||||
import kd.bos.algo.sql.tree.OrderBy;
|
||||
import kd.bos.dataentity.entity.DynamicObject;
|
||||
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
||||
import kd.bos.dataentity.entity.OrmLocaleValue;
|
||||
import kd.bos.openapi.common.custom.annotation.ApiController;
|
||||
import kd.bos.openapi.common.custom.annotation.ApiParam;
|
||||
import kd.bos.openapi.common.custom.annotation.ApiPostMapping;
|
||||
@ -23,6 +27,7 @@ import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||
import kd.bos.servicehelper.QueryServiceHelper;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import java.io.IOException;
|
||||
import java.math.BigDecimal;
|
||||
import java.text.ParseException;
|
||||
@ -533,8 +538,8 @@ public class AssepcDynamic {
|
||||
@ApiPostMapping("/assepcdynamic/colorlibrary")
|
||||
public CustomApiResult<Object> colorlibrary(@NotNull @ApiParam("产品类型") String modnumber,
|
||||
@NotNull @ApiParam("物料编码") String material,
|
||||
@NotNull @ApiParam("页码") int page,
|
||||
@NotNull @ApiParam("每一页个数") int number) {
|
||||
@ApiParam("页码") int page,
|
||||
@ApiParam("每一页个数") int number) {
|
||||
material = material.trim();
|
||||
JSONArray jsonArray = new JSONArray();
|
||||
QFilter qFilter = new QFilter("yem_productclass.number", QCP.equals, modnumber + "PJ");
|
||||
@ -629,4 +634,140 @@ public class AssepcDynamic {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询客户购买过的资源
|
||||
* @param customerNo
|
||||
* @return
|
||||
*/
|
||||
@ApiPostMapping("/assepcdynamic/queassequipment")
|
||||
public CustomApiResult<Object> queryBayedResourceNo(@NotBlank @ApiParam(value = "客户编码", example = "116021200012") String customerNo) {
|
||||
String algoKey = this.getClass().getName();
|
||||
QFilter qFilter = new QFilter("status", "=", "C");
|
||||
qFilter.and("yem_customer.number", "=", customerNo);
|
||||
qFilter.and("yem_model", "is not null", null);
|
||||
ArrayList<String> list = Lists.newArrayList();
|
||||
list.add("yem_model");
|
||||
list.add("yem_customer");
|
||||
list.add("number");
|
||||
DataSet dataSet = ORM.create().queryDataSet(algoKey, "yem_em_devicefiles", String.join(",", list), qFilter.toArray());
|
||||
HashSet<String> set = Sets.newHashSet();
|
||||
DynamicObjectCollection collection = ORM.create().toPlainDynamicObjectCollection(dataSet);
|
||||
Set<Long> ids = new HashSet<>();
|
||||
for (DynamicObject dynamicObject : collection) {
|
||||
Long model = dynamicObject.getLong("yem_model");
|
||||
ids.add(model);
|
||||
}
|
||||
DataSet basemodelib = ORM.create().queryDataSet(algoKey, "yem_bd_basemodelib", "number", new QFilter[]{new QFilter("id", "in", ids)});
|
||||
DynamicObjectCollection libs = ORM.create().toPlainDynamicObjectCollection(basemodelib);
|
||||
for (DynamicObject lib : libs) {
|
||||
set.add(lib.getString("number"));
|
||||
}
|
||||
|
||||
ArrayList<String> ass = Lists.newArrayList();
|
||||
ass.add("number");//电子目录编码
|
||||
ass.add("name");//电子目录名称
|
||||
ass.add("yem_eqctype.number");//产品类型.编码
|
||||
ass.add("yem_eqctype.name");//产品类型.名称
|
||||
ass.add("yem_eqctype.longnumber");//产品类型.长编码
|
||||
ass.add("yem_eqctype.fullname");//产品类型.长名称
|
||||
ass.add("yem_brandmodel.number");//品牌车型.编码
|
||||
ass.add("yem_brandmodel.name");//品牌车型.名称
|
||||
ass.add("yem_brandmodel.longnumber");//品牌车型.长编码
|
||||
ass.add("yem_brandmodel.fullname");//品牌车型.长名称
|
||||
ass.add("yem_eqctype.yem_enname");//产品类型.英文名称
|
||||
QFilter assFilter = new QFilter("status", "=", "C");
|
||||
assFilter.and("number", "in", set);
|
||||
DataSet assDataSet = ORM.create().queryDataSet(algoKey, "yem_em_assequipment", String.join(",", ass), assFilter.toArray());
|
||||
DynamicObjectCollection assColl = ORM.create().toPlainDynamicObjectCollection(assDataSet);
|
||||
HashMap<String, Object> map = Maps.newHashMap();
|
||||
ArrayList<Map<String, String>> rows = Lists.newArrayList();
|
||||
for (DynamicObject dynamicObject : assColl) {
|
||||
Map<String, String> row = Maps.newHashMap();
|
||||
row.put("number", dynamicObject.getString("number"));//电子目录编码
|
||||
row.put("name", dynamicObject.getString("name"));//电子目录名称
|
||||
row.put("yem_eqctype_number", dynamicObject.getString("yem_eqctype.number"));//产品类型.编码
|
||||
row.put("yem_eqctype_name", dynamicObject.getString("yem_eqctype.name"));//产品类型.名称
|
||||
row.put("yem_eqctype_longnumber", dynamicObject.getString("yem_eqctype.longnumber"));//产品类型.长编码
|
||||
row.put("yem_eqctype_fullname", dynamicObject.getString("yem_eqctype.fullname"));//产品类型.长名称
|
||||
row.put("yem_brandmodel_number", dynamicObject.getString("yem_brandmodel.number"));//品牌车型.编码
|
||||
row.put("yem_brandmodel_name", dynamicObject.getString("yem_brandmodel.name"));//品牌车型.名称
|
||||
row.put("yem_brandmodel_longnumber", dynamicObject.getString("yem_brandmodel.longnumber"));//品牌车型.长编码
|
||||
row.put("yem_brandmodel_fullname", dynamicObject.getString("yem_brandmodel.fullname"));//品牌车型.长名称
|
||||
row.put("yem_eqctype_yem_enname", dynamicObject.getString("yem_eqctype.yem_enname"));//产品类型.英文名称
|
||||
rows.add(row);
|
||||
}
|
||||
HashMap<Object, Object> rowMap = Maps.newHashMap();
|
||||
rowMap.put("rows", rows);
|
||||
return CustomApiResult.success(rowMap);
|
||||
}
|
||||
|
||||
@ApiPostMapping("/assepcdynamic/page/pricelib")
|
||||
public CustomApiResult<Object> queryPriceLibPage(@ApiParam("产品机型") String type, @ApiParam("每页个数") int pageSize, @ApiParam("页码") int pageNum) {
|
||||
String algoKey = this.getClass().getName();
|
||||
HashMap<Object, Object> resMap = Maps.newHashMap();
|
||||
|
||||
QFilter qFilter = RFUtils.getBaseQFilter();
|
||||
qFilter.and("yem_productclass.number", QCP.equals, type + "PJ");
|
||||
|
||||
ArrayList<String> selectfields = Lists.newArrayList();
|
||||
selectfields.add("id");
|
||||
selectfields.add("yem_bizdate");
|
||||
selectfields.add("yem_bd_products.id products_id");
|
||||
selectfields.add("yem_accessory entry_id");
|
||||
selectfields.add("yem_accessory.yem_material.id yem_material_id");
|
||||
selectfields.add("yem_accessory.yem_material.number yem_material_number");
|
||||
selectfields.add("yem_accessory.yem_material.name yem_material_name");
|
||||
selectfields.add("yem_accessory.yem_materialename yem_material_ename");
|
||||
selectfields.add("yem_accessory.yem_material.modelnum yem_material_modelnum");
|
||||
selectfields.add("yem_accessory.yem_standsalesprice price");
|
||||
|
||||
|
||||
DataSet dataSet = ORM.create().queryDataSet(algoKey, "yem_pricelibrary", String.join(",", selectfields), qFilter.toArray());
|
||||
DataSet origin = dataSet.copy();
|
||||
dataSet = dataSet.orderBy(new String[]{"yem_bizdate DESC"})
|
||||
.groupBy(new String[]{"yem_material_id"})
|
||||
.agg(new GroupTopOneFunction(), "entry_id", "entry_id")
|
||||
.finish();
|
||||
dataSet = dataSet.select("entry_id ordered_entry_id");
|
||||
dataSet = dataSet.leftJoin(origin)
|
||||
.on("ordered_entry_id", "entry_id")
|
||||
.select(RptUtil.getDataSetFiledAlias(dataSet), RptUtil.getDataSetFiledAlias(origin))
|
||||
.finish();
|
||||
dataSet = dataSet.orderBy(new String[]{"yem_bizdate DESC"});
|
||||
ArrayList<Object> rows = Lists.newArrayList();
|
||||
|
||||
DynamicObjectCollection collection = ORM.create().toPlainDynamicObjectCollection(dataSet.copy());
|
||||
resMap.put("total", collection.size());
|
||||
dataSet.close();
|
||||
if (pageSize > collection.size()) {
|
||||
pageSize = collection.size();
|
||||
}
|
||||
for (DynamicObject dynamicObject : collection) {
|
||||
HashMap<String, Object> map = Maps.newHashMap();
|
||||
map.put("yem_bizdate", dynamicObject.get("yem_bizdate"));
|
||||
map.put("yem_material_id", dynamicObject.get("yem_material_id"));
|
||||
map.put("yem_material_number", dynamicObject.get("yem_material_number"));
|
||||
map.put("yem_material_name", dynamicObject.get("yem_material_name"));
|
||||
map.put("yem_material_ename", dynamicObject.get("yem_material_ename"));
|
||||
map.put("yem_material_modelnum", dynamicObject.get("yem_material_modelnum"));
|
||||
map.put("price", dynamicObject.get("price"));
|
||||
rows.add(map);
|
||||
}
|
||||
resMap.put("rows", getPageData(rows, pageSize, pageNum));
|
||||
int totalPage = (int) Math.ceil((double) rows.size() / pageSize);
|
||||
if (pageNum > totalPage) {
|
||||
pageNum = totalPage;
|
||||
}
|
||||
resMap.put("pageSize", pageSize);
|
||||
resMap.put("pageNum", pageNum);
|
||||
resMap.put("isLastPage", pageNum == totalPage);
|
||||
return CustomApiResult.success(resMap);
|
||||
}
|
||||
|
||||
public static List<Object> getPageData(List<Object> rows, int pageSize, int pageNum) {
|
||||
int startIndex = (pageNum - 1) * pageSize;
|
||||
int endIndex = Math.min(startIndex + pageSize, rows.size());
|
||||
return rows.subList(startIndex, endIndex);
|
||||
}
|
||||
}
|
||||
|
@ -47,7 +47,7 @@ public class SalesOrderAutoSignOp extends AbstractOperationServicePlugIn {
|
||||
DynamicObject[] entities = e.getDataEntities();
|
||||
|
||||
// Word中的书签名称
|
||||
final String bookmark = "ensign";
|
||||
final String BOOKMARK = "ensign";
|
||||
// 修改Word后上传的附件面板
|
||||
final String UPLOAD_ATTACHMENT_KEY = "yem_approval";
|
||||
|
||||
@ -113,7 +113,7 @@ public class SalesOrderAutoSignOp extends AbstractOperationServicePlugIn {
|
||||
|
||||
// 获取书签
|
||||
List<CTBookmark> bookMarks = ContactSignUtils.getFileBookMarks(validatorStream);
|
||||
validatorSignAble(bookMarks, bookmark, filename);
|
||||
validatorSignAble(bookMarks, BOOKMARK, filename);
|
||||
|
||||
File file;
|
||||
try {
|
||||
@ -121,7 +121,7 @@ public class SalesOrderAutoSignOp extends AbstractOperationServicePlugIn {
|
||||
ByteArrayInputStream stream = new ByteArrayInputStream(imageData);
|
||||
|
||||
// 书签位置替换为图片(书签不会删除)
|
||||
file = ContactSignUtils.replaceBookmarkWithImage(in, stream, filename, bookmark);
|
||||
file = ContactSignUtils.replaceBookmarkWithImage(in, stream, filename, BOOKMARK);
|
||||
AttachmentUtil.uploadAttachment(appId, formId, String.valueOf(pkId), UPLOAD_ATTACHMENT_KEY, file.getName(), file.getPath());
|
||||
} catch (IOException ex) {
|
||||
throw new RuntimeException(ex);
|
||||
|
@ -1,6 +1,7 @@
|
||||
package com.yem.wm.task;
|
||||
|
||||
import com.yem.wm.utils.DynamicObjectUtil;
|
||||
import com.yem.wm.utils.YEM;
|
||||
import kd.bos.context.RequestContext;
|
||||
import kd.bos.dataentity.OperateOption;
|
||||
import kd.bos.dataentity.entity.DynamicObject;
|
||||
@ -86,6 +87,51 @@ public class ServiceRepairTask extends AbstractTask {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
updateVoidStatus();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 更新作废状态
|
||||
*/
|
||||
private void updateVoidStatus() {
|
||||
QFilter qFilter = new QFilter("billstatus", QCP.equals, "C");
|
||||
qFilter.and(new QFilter("yem_ismachine", QCP.equals, true));
|
||||
DynamicObjectCollection servicerepair_pl = QueryServiceHelper.query("yem_servicerepair", "id,billno,yem_factoryno", new QFilter[]{qFilter}, null);
|
||||
|
||||
for (DynamicObject object : servicerepair_pl) {
|
||||
String factoryno = object.getString("yem_factoryno");
|
||||
if (YEM.isEmpty(factoryno)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
//整机档案
|
||||
DynamicObject getdevicefiles = getdevicefiles(factoryno);
|
||||
//服务维修单
|
||||
DynamicObject servicerepair = BusinessDataServiceHelper.loadSingle(object.getString("id"), "yem_servicerepair");
|
||||
|
||||
if (YEM.isNotEmpty(servicerepair) && YEM.isNotEmpty(getdevicefiles)) {
|
||||
//整机档案维修记录
|
||||
DynamicObjectCollection maintenancerecords = getdevicefiles.getDynamicObjectCollection("yem_maintenancerecords");
|
||||
//服务维修
|
||||
DynamicObjectCollection faultypartsreco = servicerepair.getDynamicObjectCollection("yem_faultypartsreco");
|
||||
|
||||
for (DynamicObject dynamicObject : faultypartsreco) {
|
||||
long id = dynamicObject.getLong("id");
|
||||
String voidstatus = servicerepair.getString("yem_voidstatus");//作废状态
|
||||
for (DynamicObject maintenancerecord : maintenancerecords) {
|
||||
long yem_servicerepairenryid = maintenancerecord.getLong("yem_servicerepairenryid");
|
||||
if (yem_servicerepairenryid == id) {
|
||||
maintenancerecord.set("yem_voidstatus", voidstatus);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
OperationServiceHelper.executeOperate("save",
|
||||
getdevicefiles.getDynamicObjectType().getName(), new DynamicObject[]{getdevicefiles}, OperateOption.create());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user