Merge remote-tracking branch 'origin/main'

This commit is contained in:
violet 2025-01-07 20:28:37 +08:00
commit 4cd06af9c2
31 changed files with 593 additions and 247 deletions

View File

@ -36,6 +36,8 @@ import kd.bos.servicehelper.operation.SaveServiceHelper;
import java.util.*;
import static com.yem.em.utils.SubRelationUtils.Getatlasno;
/**
* @author zhouc
* @date 2023/11/25 15:26
@ -236,6 +238,13 @@ public class AssAtlasdetFromEdit extends AbstractBillPlugIn implements UploadLis
args.cancel = true;
}
}
if ("test_getatlasno".equals(key)) {
IDataModel model = this.getModel();
String number = (String)model.getValue("number");
int atlasno = Getatlasno(number);
getView().showMessage(String.valueOf(atlasno));
}
}
@Override

View File

@ -51,7 +51,7 @@ public class BomChangeTaskEdit extends AbstractTask {
QFilter qFilter = new QFilter("number", QCP.equals, "110");
DynamicObject bos_org = BusinessDataServiceHelper.loadSingle("bos_org", "id", qFilter.toArray());
String Queryfield = AtlasUtils.Queryfield("changebill_code", "pcode", "ccode", "qty", "break_flag", "complete_time",
"disable_time", "state", "complete_time", "complete_user", "MATER_NAME", "CMATER_NAME", "COMPLETE_TIME");
"disable_time", "state", "complete_time", "complete_user", "MATER_NAME", "CMATER_NAME", "COMPLETE_TIME", "enable_time");
Calendar calendar = Calendar.getInstance();
// 昨天
@ -71,8 +71,8 @@ public class BomChangeTaskEdit extends AbstractTask {
calendar.set(Calendar.MILLISECOND, 999);
String end = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(calendar.getTime());
// start = "2024-12-04 00:00:00";
// end = "2024-12-10 23:59:59";
// start = "2024-12-25 00:00:00";
// end = "2024-12-25 23:59:59";
for (String key : productmap.keySet()) {
String value = productmap.get(key);

View File

@ -2,6 +2,7 @@ package com.yem.em.task;
import com.yem.em.utils.AtlasUtils;
import com.yem.wm.utils.AttachmentUtil;
import com.yem.wm.utils.DynamicObjectUtil;
import com.yem.wm.utils.YEM;
import kd.bos.context.RequestContext;
import kd.bos.dataentity.entity.DynamicObject;
@ -22,6 +23,7 @@ import java.util.*;
import static com.yem.em.task.MatchingPLMChangeUpdateTaskEdit.*;
import static com.yem.em.utils.AtlasUtils.seelctDyn;
import static com.yem.rf.utils.RFUtils.getBaseQFilter;
/**
* @Description: 1PLM变更单分录替换关系=相互替换新替换旧互不替换,分录启用停用状态=停用并且替换件启用停用状态=启用更新当前行执行状态完成完成时间默认当前时间并生成替换关系记录替换关系id以及行id
@ -120,25 +122,41 @@ public class GenerateReplaceRelationshipTaskEdit extends AbstractTask {
Map<Long, DynamicObject> successMap = new HashMap<>();
DynamicObject bomChange = createBOMChange(plmObj, enabled);
DynamicObjectCollection entry = bomChange.getDynamicObjectCollection("yem_entryentity");
if (!entry.isEmpty()) {
DynamicObject replace = null;
String billno = plmObj.getString("billno");
String gybg_no = plmObj.getString("yem_gybg_no");
if (entry.size() == 1) {
logger.info("生成替换关系PLM单号{} PLM工艺变更单号{},父项编码:{}", billno, gybg_no, enabled.get(0).getString("yem_textfield"));
logger.info("生成_当前替换关系{}", entry.get(0).getString("yem_replace"));
replace = AtlasUtils.Addreplace(bomChange, entry.get(0), null, "yem_em_replace", "add", "PLM");
successMap.put(entry.get(0).getLong("id"), bomChange);
}
for (DynamicObject entryObject : entry) {
int idx = entry.indexOf(entryObject);
if (idx == 0) continue;
logger.info("更新替换关系PLM单号{} PLM工艺变更单号{},父项编码:{}", billno, gybg_no, entryObject.getString("yem_textfield"));
logger.info("更新_替换关系{}", entryObject.getString("yem_replace"));
replace = AtlasUtils.Addreplace(bomChange, entry.get(0), replace, "yem_em_replace", "update", "PLM");
successMap.put(entryObject.getLong("id"), bomChange);
}
for (DynamicObject entryObject : entry) {
useExistReplace(bomChange, entryObject, successMap);
}
// if (!entry.isEmpty()) {
// DynamicObject replace = null;
// String billno = plmObj.getString("billno");
// String gybg_no = plmObj.getString("yem_gybg_no");
// if (entry.size() == 1) {
// logger.info("生成替换关系PLM单号{} PLM工艺变更单号{},父项编码:{}", billno, gybg_no, entry.get(0).getString("yem_parentno"));
// logger.info("生成_当前替换关系{}", entry.get(0).getString("yem_replace"));
// replace = AtlasUtils.Addreplace(bomChange, entry.get(0), null, "yem_em_replace", "add", "PLM");
// successMap.put(entry.get(0).getLong("id"), bomChange);
// } else {
// for (DynamicObject entryObject : entry) {
// int idx = entry.indexOf(entryObject);
// if (idx == 0) {
// QFilter qFilter = new QFilter("status", "=", "C");
// qFilter.and("number", "=", entryObject.getString("yem_parentno"));
// DynamicObject[] load = BusinessDataServiceHelper.load("yem_em_replace", selectfields, qFilter.toArray());
// if (load.length == 1) {
// replace = load[0];
// replace = AtlasUtils.Addreplace(bomChange, entry.get(0), replace, "yem_em_replace", "update", "PLM");
// } else {
// replace = AtlasUtils.Addreplace(bomChange, entry.get(0), null, "yem_em_replace", "add", "PLM");
// }
// continue;
// };
// logger.info("更新替换关系PLM单号{} PLM工艺变更单号{},父项编码:{}", billno, gybg_no, entryObject.getString("yem_parentno"));
// logger.info("更新_替换关系{}", entryObject.getString("yem_replace"));
// replace = AtlasUtils.Addreplace(bomChange, entry.get(0), replace, "yem_em_replace", "update", "PLM");
// successMap.put(entryObject.getLong("id"), bomChange);
// }
// }
// }
List<Long> list = new ArrayList<>();
for (Map.Entry<Long, DynamicObject> mapEntry : successMap.entrySet()) {
Long bomChangeEntryId = mapEntry.getKey();
@ -172,6 +190,31 @@ public class GenerateReplaceRelationshipTaskEdit extends AbstractTask {
syncImage(plmObj, list);
}
/**
* 查询已存在的替换关系
*
* @param bomChange
* @param bomChangeEntry
* @param successMap
* @return
*/
private void useExistReplace(DynamicObject bomChange, DynamicObject bomChangeEntry, Map<Long, DynamicObject> successMap) {
QFilter qFilter = new QFilter("status", "=", "C");
qFilter.and("number", "=", bomChangeEntry.getString("yem_parentno"));
DynamicObject[] load = BusinessDataServiceHelper.load("yem_em_replace", "id, billno", qFilter.toArray());
if (load.length > 0) {
DynamicObject replace = load[0];
replace = BusinessDataServiceHelper.loadSingle(replace.getPkValue(), replace.getDataEntityType().getName());
logger.info("使用已有替换关系:{}", replace.getString("number"));
AtlasUtils.Addreplace(bomChange, bomChangeEntry, replace, "yem_em_replace", "update", "PLM");
successMap.put(bomChangeEntry.getLong("id"), bomChange);
} else {
logger.info("创建新的替换关系:{}", bomChangeEntry.getString("yem_parentno"));
AtlasUtils.Addreplace(bomChange, bomChangeEntry, null, "yem_em_replace", "add", "PLM");
successMap.put(bomChangeEntry.getLong("id"), bomChange);
}
}
/**
* 根据PLM创建BOM用于生成替换关系
*
@ -318,6 +361,7 @@ public class GenerateReplaceRelationshipTaskEdit extends AbstractTask {
* 查询匹配的 总成图册明细
* PLM变更后父项编码 - 总成图册明细.编码
* PLM变更后子项编码 - 替换关系ABC 替换编码E删除不匹配D新增替换前编码
*
* @return
*/
private DynamicObject queryMatchAssemblyAtlasDetails(DynamicObject plmObj, DynamicObject d) {
@ -360,6 +404,10 @@ public class GenerateReplaceRelationshipTaskEdit extends AbstractTask {
detailPartNo = d.getString("yem_textfield");
}
if (!"B".equals(d.get("yem_invokstatus"))) {
continue;
}
if (partno.lastIndexOf("-") != -1) {
partno = partno.substring(0, partno.lastIndexOf("-")).trim();
}

View File

@ -15,7 +15,9 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
@ -53,87 +55,47 @@ public class MatchingPLMChangeUpdateTaskEdit extends AbstractTask {
Date bom_completetime = bom.getDate("yem_completetime");
String exestate = bom.getString("yem_exestate");
Date invoktime = plm.getDate("yem_invoktime");//执行时间
String invokstatus = plm.getString("yem_invokstatus");//执行状态
if (YEM.isNotEmpty(invoktime) && "B".equals(invokstatus)) {
//已完成跳过
continue;
}
Boolean plmMatchBom = isPlmMatchBom(plmObj, bom, plm);
exestate = "30".equals(exestate) ? "B" : "A";
if (plmMatchBom != null && !plmMatchBom) {
// Date stoptime = plm.getDate("yem_stoptime");
Date downdate = bom.getDate("yem_downdate");
if (YEM.isNotEmpty(downdate)) {
plm.set("yem_enablestatus_before", bom_enablesta);
plm.set("yem_stoptime", downdate);
// plm.set("yem_invoktime", bom_completetime);
// plm.set("yem_invokstatus", exestate);
} else {
logger.info("停用_无时间不更新{}{}", plm_billno, plm_parent);
}
}
if (plmMatchBom != null && plmMatchBom) {
// Date starttime = plm.getDate("yem_starttime");
Date enableddate = bom.getDate("yem_enableddate");
if (YEM.isNotEmpty(enableddate)) {
plm.set("yem_enablesta", bom_enablesta);
plm.set("yem_starttime", enableddate);
// plm.set("yem_invoktime", bom_completetime);
// plm.set("yem_invokstatus", exestate);
if (YEM.isNotEmpty(bom_completetime)) {
plm.set("yem_invoktime", bom_completetime);
plm.set("yem_invokstatus", exestate);
}
} else {
logger.info("启用_无时间不更新{}{}", plm_billno, plm_parent);
}
}
if (plmMatchBom != null && YEM.isNotEmpty(bom_completetime)) {
plm.set("yem_invoktime", bom_completetime);
plm.set("yem_invokstatus", exestate);
}
}
}
}
}
//
// for (DynamicObject plmObj : plms) {
// DynamicObjectCollection plm_entry = plmObj.getDynamicObjectCollection("yem_change_detail");
// String plm_billno = plmObj.getString("yem_gybg_no");//PLM工艺变更单号
// for (DynamicObject plm : plm_entry) {
// String plm_parent = plm.getString("yem_textfield");//总成编码
// for (DynamicObject bomObj : boms) {
// DynamicObjectCollection bom_entry = bomObj.getDynamicObjectCollection("yem_entryentity");
// for (DynamicObject bom : bom_entry) {
// String bom_enablesta = bom.getString("yem_enablesta");//启用停用状态
// Date bom_completetime = bom.getDate("yem_completetime");
// Boolean plmMatchBom = isPlmMatchBom(plmObj, bom, plm);
// if (plmMatchBom != null && !plmMatchBom) {
// Date stoptime = plm.getDate("yem_stoptime");
// if (YEM.isEmpty(stoptime)) {
// plm.set("yem_enablestatus_before", bom_enablesta);
// Date downdate = bom.getDate("yem_downdate");
// plm.set("yem_stoptime", downdate);
// plm.set("yem_completetime", bom_completetime);
// } else {
// logger.info("停用_已有时间不更新{}{}", plm_billno, plm_parent);
// }
// }
//
// if (plmMatchBom != null && plmMatchBom) {
// Date starttime = plm.getDate("yem_starttime");
// if (YEM.isEmpty(starttime)) {
// Date enableddate = bom.getDate("yem_enableddate");
// plm.set("yem_enablesta", bom_enablesta);
// plm.set("yem_starttime", enableddate);
// plm.set("yem_completetime", bom_completetime);
// } else {
// logger.info("启用_已有时间不更新{}{}", plm_billno, plm_parent);
// }
// }
// }
// }
// }
// }
SaveServiceHelper.save(plms);
}
/**
* PLM匹配BOM
*
* @param plmObj
* @param bom
* @param plm
@ -151,20 +113,20 @@ public class MatchingPLMChangeUpdateTaskEdit extends AbstractTask {
// BigDecimal plm_qty = plm.getBigDecimal("yem_qty_before");//子件数量
String plm_after_parent_now = plm.getString("yem_parent_now");//父项编码
String plm_after_child_now = plm.getString("yem_child_now");//子项编码
BigDecimal plm_after_qty = plm.getBigDecimal("yem_qty_new");
// BigDecimal plm_after_qty = plm.getBigDecimal("yem_qty_new");
String bom_before_parent_no = bom.getString("yem_parentno");//总成编码
String bom_before_child_no = bom.getString("yem_subno");//数量
BigDecimal bom_before_qty = bom.getBigDecimal("yem_qty");
logger.info("停用_compare: {} {}, {} {}, {} {}, {} {}", plm_billno, bom_billno, plm_parent, bom_parent, plm_child, bom_child, bom_child, bom_enablesta);
String bom_before_child_no = bom.getString("yem_subno");//子件编码
// BigDecimal bom_before_qty = bom.getBigDecimal("yem_qty");
// logger.info("停用_compare: {} {}, {} {}, {} {}, {} {}", plm_billno, bom_billno, plm_parent, bom_parent, plm_child, bom_child, bom_child, bom_enablesta);
if (eq(plm_billno, bom_billno) && eq(plm_parent, bom_parent) && eq(plm_child, bom_child) && "B".equals(bom_enablesta)) {
logger.info("停用_PLM匹配到BOM{} {}, {} {}, {} {}", plm_billno, bom_billno, plm_parent, bom_parent, plm_child, bom_child);
return false;
}
logger.info("启用_compare{} {}, {} {}, {} {}, {} {}, {}", plm_billno, bom_billno,plm_after_parent_now, bom_before_parent_no, plm_after_child_now, bom_before_child_no, plm_after_qty, bom_before_qty, bom_enablesta);
if (eq(plm_billno, bom_billno) && eq(plm_after_parent_now, bom_before_parent_no) && eq(plm_after_child_now, bom_before_child_no) && eq(plm_after_qty, bom_before_qty) && "A".equals(bom_enablesta)) {
logger.info("启用_PLM匹配到BOM{} {}, {} {}, {} {}, {} {}", plm_billno, bom_billno,plm_after_parent_now, bom_before_parent_no, plm_after_child_now, bom_before_child_no, plm_after_qty, bom_before_qty);
// logger.info("启用_compare{} {}, {} {}, {} {}, {} {}, {}", plm_billno, bom_billno,plm_after_parent_now, bom_before_parent_no, plm_after_child_now, bom_before_child_no, plm_after_qty, bom_before_qty, bom_enablesta);
if (eq(plm_billno, bom_billno) && eq(plm_after_parent_now, bom_before_parent_no) && eq(plm_after_child_now, bom_before_child_no) && "A".equals(bom_enablesta)) {
logger.info("启用_PLM匹配到BOM{} {}, {} {}, {} {}", plm_billno, bom_billno, plm_after_parent_now, bom_before_parent_no, plm_after_child_now, bom_before_child_no);
return true;
}

View File

@ -923,10 +923,20 @@ public class AtlasUtils {
DynamicObject yem_em_bomchange = BusinessDataServiceHelper.loadSingle("yem_em_bomchange", "id", qFilter1.toArray());
if (yem_em_bomchange != null) {
DynamicObject bomchange = BusinessDataServiceHelper.loadSingle(yem_em_bomchange.getLong("id"), "yem_em_bomchange");
if (bomchange != null) {
DynamicObjectCollection yem_entryentity = bomchange.getDynamicObjectCollection("yem_entryentity");
if (yem_entryentity.size() == 0) {
DynamicObject dynamicObject = yem_entryentity.addNew();
DynamicObjectCollection yem_entryentity = bomchange.getDynamicObjectCollection("yem_entryentity");
String code = map.get("pcode").toString() + "_" + map.get("ccode").toString() + "_" + map.get("break_flag").toString();
boolean exist = false;
for (DynamicObject dynamicObject : yem_entryentity) {
String break_flag = "";
if ("A".equals(dynamicObject.getString("yem_enablesta"))) {
break_flag = "启用";
}
if ("B".equals(dynamicObject.getString("yem_enablesta"))) {
break_flag = "停用";
}
String key = dynamicObject.getString("yem_parentno") + "_" + dynamicObject.getString("yem_subno") + "_" + break_flag;
if (code.equals(key)) {
exist = true;
dynamicObject.set("yem_changeno", changebill_code);//更改单号
dynamicObject.set("yem_parentno", map.get("pcode"));//父件编码
dynamicObject.set("yem_parentname", map.get("mater_name"));//父件名称
@ -956,54 +966,45 @@ public class AtlasUtils {
}
dynamicObject.set("yem_completetime", map.get("complete_time"));
} else {
Boolean fag = true;
String code = map.get("pcode").toString() + "_" + map.get("ccode").toString();
for (int j = 0; j < yem_entryentity.size(); j++) {
DynamicObject dynamicObject = yem_entryentity.get(j);
String key = dynamicObject.getString("yem_parentno") + "_" + dynamicObject.getString("yem_subno");
if (key.equals(code)) {
fag = false;
break;
}
}
if (fag) {
DynamicObject dynamicObject = yem_entryentity.addNew();
dynamicObject.set("yem_changeno", changebill_code);//更改单号
dynamicObject.set("yem_parentno", map.get("pcode"));//父件编码
dynamicObject.set("yem_parentname", map.get("mater_name"));//父件名称
dynamicObject.set("yem_subno", map.get("ccode"));//父件编码
dynamicObject.set("yem_subname", map.get("cmater_name"));//子件名称
dynamicObject.set("yem_qty", map.get("qty"));//数量
if (map.get("break_flag").toString().equals("启用")) {
dynamicObject.set("yem_enablesta", "A");//启用停用状态
}
if (map.get("break_flag").toString().equals("停用")) {
dynamicObject.set("yem_enablesta", "B");//启用停用状态
}
dynamicObject.set("yem_enableparno", map.get("pcode"));//替换父件名称
dynamicObject.set("yem_enableparname", map.get("mater_name"));//替换父件名称
dynamicObject.set("yem_enableddate", map.get("enable_time"));//启用时间
dynamicObject.set("yem_downdate", map.get("disable_time"));//停用时间
dynamicObject.set("yem_exestate", map.get("state"));//执行状态
DynamicObject assatlasdet = seelctDyn("yem_em_assatlasdet", "number", map.get("pcode").toString());
if (assatlasdet != null) {
//是否总成 yem_isass
dynamicObject.set("yem_isass", true);
}
DynamicObject basemodelib = seelctDyn("yem_bd_basemodelib", "number", map.get("pcode").toString());
if (basemodelib != null) {
//是否资源 yem_isass
dynamicObject.set("yem_isresource", true);
}
dynamicObject.set("yem_completetime", map.get("complete_time"));
}
}
}
OperationResult Operate = OperationServiceHelper.executeOperate("save",
bomchange.getDynamicObjectType().getName(), new DynamicObject[]{bomchange}, OperateOption.create());
if (Operate.isSuccess()) {
if (!exist) {
DynamicObject dynamicObject = yem_entryentity.addNew();
dynamicObject.set("yem_changeno", changebill_code);//更改单号
dynamicObject.set("yem_parentno", map.get("pcode"));//父件编码
dynamicObject.set("yem_parentname", map.get("mater_name"));//父件名称
dynamicObject.set("yem_subno", map.get("ccode"));//父件编码
dynamicObject.set("yem_subname", map.get("cmater_name"));//子件名称
dynamicObject.set("yem_qty", map.get("qty"));//数量
if (map.get("break_flag").toString().equals("启用")) {
dynamicObject.set("yem_enablesta", "A");//启用停用状态
}
if (map.get("break_flag").toString().equals("停用")) {
dynamicObject.set("yem_enablesta", "B");//启用停用状态
}
dynamicObject.set("yem_enableparno", map.get("pcode"));//替换父件名称
dynamicObject.set("yem_enableparname", map.get("mater_name"));//替换父件名称
dynamicObject.set("yem_enableddate", map.get("enable_time"));//启用时间
dynamicObject.set("yem_downdate", map.get("disable_time"));//停用时间
dynamicObject.set("yem_exestate", map.get("state"));//执行状态
DynamicObject assatlasdet = seelctDyn("yem_em_assatlasdet", "number", map.get("pcode").toString());
if (assatlasdet != null) {
//是否总成 yem_isass
dynamicObject.set("yem_isass", true);
}
DynamicObject basemodelib = seelctDyn("yem_bd_basemodelib", "number", map.get("pcode").toString());
if (basemodelib != null) {
//是否资源 yem_isass
dynamicObject.set("yem_isresource", true);
}
dynamicObject.set("yem_completetime", map.get("complete_time"));
}
OperationResult save = OperationServiceHelper.executeOperate("save",
bomchange.getDynamicObjectType().getName(), new DynamicObject[]{bomchange}, OperateOption.create());
if (!save.isSuccess()) {
throw new KDBizException("保存失败!" + save.getMessage());
}
} else {
DynamicObject cmmptable = BusinessDataServiceHelper.newDynamicObject("yem_em_bomchange");

View File

@ -13,10 +13,7 @@ import kd.bos.servicehelper.QueryServiceHelper;
import kd.bos.servicehelper.operation.OperationServiceHelper;
import java.math.BigDecimal;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.List;
import java.util.*;
import java.util.stream.Stream;
/**
@ -109,7 +106,7 @@ public class SubRelationUtils {
qFilter.and(new QFilter("yem_entryentity.yem_completetime", QCP.less_equals, new Date()));
String selectfield = DynamicObjectUtil.getSelectfields("yem_em_replace", false);
String selectfields = DynamicObjectUtil.getEntrySelectfields(selectfield, "yem_em_replace", "yem_entryentity", false);
object = QueryServiceHelper.query("yem_em_replace", selectfields, new QFilter[]{qFilter}, "yem_entryentity.yem_completetime DESC");
object = QueryServiceHelper.query("yem_em_replace", "yem_entryentity.id," + selectfields, new QFilter[]{qFilter}, "yem_entryentity.yem_completetime DESC");
if (object.size() > 0) {
object = queryAssemblyreplevel(object, replacement, isComplete, yem_completetime);
}
@ -147,12 +144,22 @@ public class SubRelationUtils {
String selectfield = DynamicObjectUtil.getSelectfields("yem_em_replace", false);
String selectfields = DynamicObjectUtil.getEntrySelectfields(selectfield, "yem_em_replace", "yem_entryentity", false);
DynamicObjectCollection yem_em_replace = QueryServiceHelper.query("yem_em_replace",
selectfields, new QFilter[]{qFilter}, "yem_entryentity.yem_completetime DESC");
if (yem_em_replace.size() > 0) {
for (int j = 0; j < yem_em_replace.size(); j++) {
object.add(yem_em_replace.get(j));
"yem_entryentity.id," + selectfields, new QFilter[]{qFilter}, "yem_entryentity.yem_completetime DESC");
if (!yem_em_replace.isEmpty()) {
int count = 0;
Set<Long> ids = new HashSet<>();
for (DynamicObject dynamicObject : object) {
ids.add(dynamicObject.getLong("yem_entryentity.id"));
}
for (DynamicObject dynamicObject : yem_em_replace) {
if (!ids.contains(dynamicObject.getLong("yem_entryentity.id"))) {
object.add(dynamicObject);
count++;
}
}
if (count > 0) {
queryAssemblyreplevel(yem_em_replace, replacement, isComplete, yem_completetime);
}
queryAssemblyreplevel(yem_em_replace, replacement, isComplete, yem_completetime);
}
}
return object;
@ -631,7 +638,7 @@ public class SubRelationUtils {
QFilter qFilter = new QFilter("number", QCP.in, repno);
DynamicObjectCollection data = QueryServiceHelper.query("yem_em_assatlasdet",
"id,number,name,yem_entryentity.yem_atlasno", new QFilter[]{qFilter},
"length(yem_entryentity.yem_atlasno),yem_entryentity.yem_atlasno DESC");
"length(yem_entryentity.yem_atlasno) DESC,yem_entryentity.yem_atlasno DESC");
if (data.size() > 0) {
result = data.get(0).getInt("yem_entryentity.yem_atlasno");
}

View File

@ -27,6 +27,7 @@ import kd.bos.orm.query.QCP;
import kd.bos.orm.query.QFilter;
import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.bos.servicehelper.QueryServiceHelper;
import org.apache.commons.lang3.StringUtils;
import org.jetbrains.annotations.NotNull;
import javax.validation.constraints.NotBlank;
@ -117,7 +118,9 @@ public class AssepcDynamic {
JSONArray jsonArray = new JSONArray();
QFilter qFilter = new QFilter("createorg.number", QCP.equals, "110");
qFilter.and("status", QCP.equals, "C");
qFilter.and("yem_customer.number", QCP.equals, number);
if (!StringUtils.containsIgnoreCase(number, "admin")) {
qFilter.and("yem_customer.number", QCP.equals, number);
}
// qFilter.and("yem_billtype.number", QCP.equals, "yem_es_salesorder_ZJ");
String selectfields = DynamicObjectUtil.getSelectfields("yem_em_devicefiles", false);
DynamicObjectCollection dynamicObjects = QueryServiceHelper.query("yem_em_devicefiles", selectfields
@ -182,9 +185,11 @@ public class AssepcDynamic {
//查询零件明细表 根据零件编码过滤n
qFilters.add(new QFilter("yem_model.yem_products.number", QCP.equals, number));
if (YEM.isNotEmpty(custom)) {
qFilters.add(new QFilter("yem_customer.number", QCP.equals, custom));
if ((!StringUtils.containsIgnoreCase(custom, "admin"))) {
qFilters.add(new QFilter("yem_customer.number", QCP.equals, custom));
}
} else {
return CustomApiResult.fail("501", "客户编码必传");
return CustomApiResult.fail("501", "客户编码为空!");
}
extracted(algoKey, qFilters, jsonArray);
// fillMissInfo(algoKey, number, jsonArray);
@ -444,8 +449,10 @@ public class AssepcDynamic {
@ApiPostMapping("/assepcdynamic/electronic_group")
public CustomApiResult<Object> queryElectronicGroup(@NotNull @ApiParam("客户.编码(116021200012)") String number) {
List<Map<String, Object>> result = new ArrayList<>();
QFilter qFilter = new QFilter("yem_customer.number", QCP.equals, number);
qFilter.and("status", QCP.equals, "C");
QFilter qFilter = new QFilter("status", QCP.equals, "C");
if (!StringUtils.containsIgnoreCase(number, "admin")) {
qFilter.and(new QFilter("yem_customer.number", QCP.equals, number));
}
String selectfields = DynamicObjectUtil.getSelectfields("yem_em_devicefiles");
DynamicObjectCollection load = ORM.create().query("yem_em_devicefiles", selectfields + ",id", qFilter.toArray());
for (DynamicObject dynamicObject : load) {
@ -664,7 +671,9 @@ public class AssepcDynamic {
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);
if (!StringUtils.containsIgnoreCase(customerNo, "admin")) {
qFilter.and("yem_customer.number", "=", customerNo);
}
qFilter.and("yem_model", "is not null", null);
ArrayList<String> list = Lists.newArrayList();
list.add("yem_model");
@ -796,7 +805,9 @@ public class AssepcDynamic {
public CustomApiResult<Object> queryProductModel(@NotBlank @ApiParam(value = "客户编码", example = "116021200012") String customerNo) {
String algoKey = this.getClass().getName();
QFilter qFilter = new QFilter("status", "=", "C");
qFilter.and("yem_customer.number", "=", customerNo);
if (!StringUtils.containsIgnoreCase(customerNo, "admin")) {
qFilter.and("yem_customer.number", "=", customerNo);
}
qFilter.and("group", "is not null", null);
ArrayList<String> list = Lists.newArrayList();
list.add("group.number number");

View File

@ -578,15 +578,22 @@ public class OrderApiUtils {
JSONObject objects = (JSONObject) object;
String salesorderno = objects.getString("salesorderno");
Long objectsId = objects.getLong("id");
DynamicObject mechanical = BusinessDataServiceHelper.loadSingle("yem_em_devicefiles"
, "id,number,yem_ordeid,yem_issynorde"
, new QFilter[]{new QFilter("yem_salesorderno", QCP.equals, salesorderno)});
if (mechanical != null) {
mechanical.set("yem_ordeid", objectsId);
mechanical.set("yem_issynorde", true);
SaveServiceHelper.update(mechanical);
SaveServiceHelper.save(new DynamicObject[]{mechanical});
Set<String> compNo = new HashSet<>();
for (Map<String, Object> map : list) {
if (map.containsKey("framenumber")) {
compNo.add((String) map.get("framenumber"));
}
}
DynamicObject[] mechanical = BusinessDataServiceHelper.load("yem_em_devicefiles"
, "id,number,yem_ordeid,yem_issynorde"
, new QFilter[]{new QFilter("yem_salesorderno", QCP.equals, salesorderno),
new QFilter("number", QCP.in, compNo)
});
for (DynamicObject d : mechanical) {
d.set("yem_ordeid", objectsId);
d.set("yem_issynorde", true);
}
SaveServiceHelper.save(mechanical);
}
}
} else {

View File

@ -1,6 +1,5 @@
package com.yem.tws.task;
import com.yem.ensign.common.CommonUtils;
import com.yem.wm.task.YunZhiJaGetOpenidTask;
import com.yem.wm.utils.DynamicObjectUtil;
import com.yem.wm.utils.YEM;
@ -27,11 +26,8 @@ import kd.bos.orm.query.QCP;
import kd.bos.orm.query.QFilter;
import kd.bos.schedule.executor.AbstractTask;
import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.bos.servicehelper.QueryServiceHelper;
import kd.bos.servicehelper.botp.BFTrackerServiceHelper;
import kd.bos.servicehelper.botp.ConvertServiceHelper;
import kd.bos.servicehelper.coderule.CodeRuleServiceHelper;
import kd.bos.servicehelper.operation.DeleteServiceHelper;
import kd.bos.servicehelper.operation.OperationServiceHelper;
import kd.bos.servicehelper.operation.SaveServiceHelper;

View File

@ -0,0 +1,58 @@
package com.yem.wm.bc.bill.op;
import com.yem.wm.utils.YunzhijiaUtils;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.entity.operate.result.OperationResult;
import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
import kd.bos.entity.plugin.PreparePropertysEventArgs;
import kd.bos.entity.plugin.args.EndOperationTransactionArgs;
import kd.bos.exception.KDBizException;
import java.util.ArrayList;
import java.util.List;
/**
* @Description: 合同提交云之家特殊处理事务结束之后在进行同步操作
* @Date: 2024/12/25 17:34
* @Created: by ZZSLL
*/
public class YemBillSubmitToYZJEndTransactionOp extends AbstractOperationServicePlugIn {
@Override
public void onPreparePropertys(PreparePropertysEventArgs e) {
super.onPreparePropertys(e);
}
@Override
public void endOperationTransaction(EndOperationTransactionArgs e) {
super.endOperationTransaction(e);
DynamicObject[] entities = e.getDataEntities();
List<DynamicObject> passDataEntity = new ArrayList<>();
OperationResult result = this.operationResult;
if (!result.isSuccess()) {
return;
}
StringBuilder errMsg = new StringBuilder();
for (DynamicObject entity : entities) {
String billType = entity.getDataEntityType().getName();
if (!"yem_es_salesorder".equals(billType)) {
return;
}
YunzhijiaUtils.submit2YZJ(result, passDataEntity, entity);
if (result.isSuccess()) {
passDataEntity.add(entity);
} else {
String message = result.getMessage();
errMsg.append(message).append("\n ");
}
}
if (errMsg.length() > 0) {
throw new KDBizException("提交云之家失败!错误信息:" + errMsg);
}
}
}

View File

@ -29,7 +29,7 @@ public class YemBillSubmitToYZJOp extends AbstractOperationServicePlugIn {
@Override
public void onPreparePropertys(PreparePropertysEventArgs e) {
super.onPreparePropertys(e);
e.getFieldKeys().add("billno");
e.getFieldKeys().addAll(this.billEntityType.getAllFields().keySet());
}
@Override
@ -39,6 +39,12 @@ public class YemBillSubmitToYZJOp extends AbstractOperationServicePlugIn {
List<DynamicObject> passDataEntitys = new ArrayList<>();
for (DynamicObject dynamicObject : dataEntities1) {
String name = dynamicObject.getDynamicObjectType().getName();
if ("yem_es_salesorder".equals(name)) {
// 合同提交云之家特殊处理
// 已经移动到插件 com.yem.wm.bc.bill.op.YemBillSubmitToYZJEndTransactionOp
passDataEntitys.add(dynamicObject);
continue;
}
dynamicObject = BusinessDataServiceHelper.loadSingle(dynamicObject.getPkValue(), name);
if ("yem_es_specialapplica".equals(name)) {

View File

@ -94,8 +94,11 @@ public class ExportInvoiceSaveOP extends AbstractOperationServicePlugIn {
yemDestports.append(string);//目的港
}
}
dataEntitie.set("yem_remark", yemTradeway + " 成交总额:" + yemSettlement + totalAmount.stripTrailingZeros() + " 汇率:" + yemExrate.stripTrailingZeros()
+ "\r\n 海运费:"+ yemseatransfeecurr + yemSeatransfee.stripTrailingZeros() + " 保险费:" + yeminsurefeecurr + yemInsurefee.stripTrailingZeros()
BigDecimal stripTrailingZeros = new BigDecimal(totalAmount.toPlainString().replaceAll("0*$", "").replaceAll("\\.$", ""));
BigDecimal stripTrailingZeros1 = new BigDecimal(yemSeatransfee.toPlainString().replaceAll("0*$", "").replaceAll("\\.$", ""));
BigDecimal stripTrailingZeros2 = new BigDecimal(yemInsurefee.toPlainString().replaceAll("0*$", "").replaceAll("\\.$", ""));
dataEntitie.set("yem_remark", yemTradeway + " 成交总额:" + yemSettlement + stripTrailingZeros + " 汇率:" + yemExrate.stripTrailingZeros()
+ "\r\n 海运费:"+ yemseatransfeecurr + stripTrailingZeros1 + " 保险费:" + yeminsurefeecurr + stripTrailingZeros2
+ "\r\n 提单号:"+ yemLadbillnum + "\r\n 合同号:"+ queryString + "\r\n 起运港:" + yemShipports + "\r\n 目的港:" + yemDestports);
}
}

View File

@ -1,6 +1,7 @@
package com.yem.wm.es.exportpresent.validator;
import com.yem.wm.utils.DynamicObjectUtil;
import com.yem.wm.utils.YEM;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.entity.ExtendedDataEntity;
@ -11,6 +12,7 @@ import kd.bos.servicehelper.BusinessDataServiceHelper;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
@ -21,28 +23,27 @@ import java.util.List;
public class ExportPresentSubmitsValidator extends AbstractValidator {
@Override
public void validate()
{
public void validate() {
ExtendedDataEntity[] dataEntities = this.getDataEntities();
for (ExtendedDataEntity data : dataEntities) {
DynamicObject dataEntity = data.getDataEntity();
// 款项类型
String paymenttype = dataEntity.getString("yem_paymenttype");
if ("A".equals(paymenttype)) {
arrearsVerification(dataEntity,data);
arrearsVerification(dataEntity, data);
}
}
}
private void arrearsVerification(DynamicObject dataEntity,ExtendedDataEntity data) {
private void arrearsVerification(DynamicObject dataEntity, ExtendedDataEntity data) {
DynamicObject yemCustomer = dataEntity.getDynamicObject("yem_customer");
if (yemCustomer!=null){
if (yemCustomer != null) {
long aLong = yemCustomer.getLong("id");
String selectfield = DynamicObjectUtil.getSelectfields("yem_es_storagetrans_xbs", false);
String selectfields = DynamicObjectUtil.getEntrySelectfields(selectfield, "yem_es_storagetrans_xbs", "yem_creditdetail", false);
DynamicObject[] load = BusinessDataServiceHelper.load("yem_es_storagetrans_xbs", selectfields
, new QFilter[]{new QFilter("yem_customer.id", QCP.equals, aLong)});
if (load.length>0){
if (load.length > 0) {
List<String> list = new ArrayList<>();
for (DynamicObject dynamicObject : load) {
DynamicObjectCollection yemCreditdetail = dynamicObject.getDynamicObjectCollection("yem_creditdetail");
@ -51,17 +52,18 @@ public class ExportPresentSubmitsValidator extends AbstractValidator {
BigDecimal yemCountpayback = object.getBigDecimal("yem_countpayback");
BigDecimal yemActualsinkamtCd = object.getBigDecimal("yem_actualsinkamt_cd");
BigDecimal yemPaymentamt1Cd = object.getBigDecimal("yem_paymentamt1_cd");
if (yemCountpayback.compareTo(BigDecimal.ZERO)<0&&yemActualsinkamtCd.compareTo(yemPaymentamt1Cd)<0){
Date paydate1 = object.getDate("yem_paydate1");//应收款日期1
if (YEM.isNotEmpty(paydate1) && paydate1.before(new Date()) && yemActualsinkamtCd.compareTo(yemPaymentamt1Cd) < 0) {
DynamicObject yemSalecontractno = object.getDynamicObject("yem_salecontractno");
if (yemSalecontractno!=null){
String billno = yemSalecontractno.getString("billno");
list.add("当前寄单放单客户存在历史合同:["+billno+"],订舱通知单:["+dynamicObjectString+"],逾期未收款,请确认!!!\n");
if (yemSalecontractno != null) {
String billno = yemSalecontractno.getString("billno");
list.add("当前寄单放单客户存在历史合同:[" + billno + "],订舱通知单:[" + dynamicObjectString + "],逾期未收款,请确认!!!\n");
}
}
}
}
if (list.size()>0){
if (list.size() > 0) {
this.addMessage(data, list.toString());
}
}

View File

@ -136,6 +136,8 @@ public class SaleOrderCreditFromEdit extends AbstractBillPlugIn implements Befor
products = "CC";
} else if (number.contains("TLJ")) {
products = "TLJ";
}else if (number.contains("WJJ")){
products = "WJJ";
}
}
@ -318,6 +320,8 @@ public class SaleOrderCreditFromEdit extends AbstractBillPlugIn implements Befor
products = "CC";
} else if (number.contains("TLJ")) {
products = "TLJ";
}else if (number.contains("WJJ")){
products = "WJJ";
}
}
QFilter qFilter2 = new QFilter("billstatus", QCP.equals, "C");//

View File

@ -467,6 +467,67 @@ public class SalesOrderEdit extends AbstractBillPlugIn implements Plugin, Before
// model.setValue("yem_departure", yemShipportsename, row);
// }
/**
* 客户需求单外销合同的价格条款为FCA时贸易术语=价格条款+目的港.工厂
*
* @param model
* @param view
*/
public static void genTradeTermsDestports(IDataModel model, IFormView view) {
DynamicObject priceitem = (DynamicObject) model.getValue("yem_priceitem");
String priceitemString = "";
if (priceitem != null) {
priceitemString = priceitem.getString("name");
}
if ("FCA".equals(priceitemString)) {
StringBuilder sb = new StringBuilder();
sb.append("FCA ");
DynamicObjectCollection destports = (DynamicObjectCollection) model.getValue("yem_shipports");
for (DynamicObject destport : destports) {
DynamicObject port = destport.getDynamicObject("fbasedataid");
if (port == null) continue;
port = BusinessDataServiceHelper.loadSingle(port.getPkValue(), port.getDataEntityType().getName(), "yem_namecn");
if (!port.getString("yem_namecn").isEmpty()) {
sb.append(port.getString("yem_namecn")).append(";");
}
}
if (sb.lastIndexOf(";") == sb.length() - 1) {
sb.deleteCharAt(sb.length() - 1);
}
model.setValue("yem_tradeterms", sb.toString());
}
}
// /**
// * 客户需求单外销合同的价格条款为FCA时贸易术语=价格条款+目的港.工厂
// *
// * @param model
// * @param view
// */
// public static void genTradeTermsShipports(IDataModel model, IFormView view) {
// DynamicObject priceitem = (DynamicObject) model.getValue("yem_priceitem");
// String priceitemString = "";
// if (priceitem != null) {
// priceitemString = priceitem.getString("name");
// }
// if ("EXW".equals(priceitemString)) {
// StringBuilder sb = new StringBuilder();
// sb.append("EXW ");
// DynamicObjectCollection shipports = (DynamicObjectCollection) model.getValue("yem_destports");
// for (DynamicObject shipport : shipports) {
// DynamicObject port = shipport.getDynamicObject("fbasedataid");
// if (port == null) continue;
// port = BusinessDataServiceHelper.loadSingle(port.getPkValue(), port.getDataEntityType().getName(), "yem_factory");
// if (!port.getString("yem_factory").isEmpty()) {
// sb.append(port.getString("yem_factory")).append(";");
// }
// }
// if (sb.lastIndexOf(";") == sb.length() - 1) {
// sb.deleteCharAt(sb.length() - 1);
// }
// model.setValue("yem_tradeterms", sb.toString());
// }
// }
/**
* 方数携带

View File

@ -21,9 +21,6 @@ import kd.bos.servicehelper.QueryServiceHelper;
import kd.bos.servicehelper.basedata.BaseDataServiceHelper;
import kd.bos.servicehelper.operation.OperationServiceHelper;
import kd.bos.servicehelper.operation.SaveServiceHelper;
import kd.fi.gl.accountref.handler.SaveBalDataHandler;
import kd.fi.gl.balcal.carriedintoleaf.SaveBalanceHandler;
import kd.hr.hies.common.enu.Operate;
import java.math.BigDecimal;
import java.util.Date;
@ -99,6 +96,8 @@ public class SaleOrdeAddGenerateOp extends AbstractOperationServicePlugIn {
products = "CC";
} else if (number.contains("TLJ")) {
products = "TLJ";
}else if (number.contains("WJJ")){
products = "WJJ";
}
}
debcrednote.set("yem_bd_products", seelctDyn("yem_bd_productsgroup", "number", products));

View File

@ -416,11 +416,25 @@ public class SalesOrderUtils {
materielId.add(materiel.getLong("id"));
}
}
String yemBdProductsid = "";
DynamicObject yemBdProducts = dataEntitie.getDynamicObject("yem_bd_products");
if (yemBdProducts != null) {
yemBdProductsid = yemBdProducts.getString("number");
}
if ("CC".equals(yemBdProducts.getString("number"))) {//叉车
yemBdProductsid = "CCPJ";
} else if ("ZZJ".equals(yemBdProducts.getString("number"))) {//装载机
yemBdProductsid = "ZZJPJ";
} else if ("TLJ".equals(yemBdProducts.getString("number"))) {//拖拉机
yemBdProductsid = "TLJPJ";
}
String selectFields = DynamicObjectUtil.getSelectfields("yem_pricelibrary", false);
selectFields = DynamicObjectUtil.getEntrySelectfields(selectFields, "yem_pricelibrary", "yem_accessory", false);
DynamicObject[] accPriceLibrarys = BusinessDataServiceHelper.load("yem_pricelibrary", selectFields,
new QFilter[]{new QFilter("yem_accessory.yem_material", QCP.in, materielId),
new QFilter("billstatus", QCP.equals, "C")});
new QFilter[]{new QFilter("yem_accessory.yem_material", QCP.in, materielId)
, new QFilter("billstatus", QCP.equals, "C")
, new QFilter("yem_productclass.number", QCP.equals, yemBdProductsid)
,new QFilter("yem_cancelstatus", QCP.equals, "0")});
for (DynamicObject accPriceLibrary : accPriceLibrarys) {
Map<Long, Map<String, Object>> allMap = new HashMap<>();
Date bizDate = accPriceLibrary.getDate("yem_bizdate");
@ -1234,7 +1248,7 @@ public class SalesOrderUtils {
qty = qty.add(dynamicObject.getBigDecimal("yem_qty"));
}
if (singlepartgiftmat.compareTo(BigDecimal.ZERO) == 0) {
singlepartgiftmat = yemSinglepartgiftmat ;
singlepartgiftmat = yemSinglepartgiftmat;
}
}
BigDecimal amount = qty.multiply(singlepartgiftmat);

View File

@ -109,7 +109,8 @@ public class ShippingDetialToStoraConvert extends AbstractConvertPlugIn
BigDecimal yemRaprate = dynamicObject.getBigDecimal("yem_raprate");
addNew.set("yem_exchangereceipts", yemRaprate);
//订舱投保金额原币种
addNew.set("yem_bookinginsured",storageAmount.multiply(yemRaprate).divide(new BigDecimal(100) ,2));
BigDecimal bigDecimal = storageAmount.multiply(yemRaprate).divide(new BigDecimal(100), 2);
addNew.set("yem_bookinginsured", bigDecimal);
// 预收金额
addNew.set("yem_preamt_cd", raprate.multiply(storageAmount).divide(new BigDecimal(100), 4, RoundingMode.HALF_UP));
// 合同认领金额
@ -123,11 +124,12 @@ public class ShippingDetialToStoraConvert extends AbstractConvertPlugIn
// 信保本位币金额
addNew.set("yem_creditamtbase", storageAmount.multiply(exrate));
//应收款金额1本位币
addNew.set("yem_paymentamt1_cd", bigDecimal);
addNew.set("yem_paymentamt1_cdbase", storageAmount.multiply(exrate));
if ("USD".equals(currency)) {
// 投保金额美元
addNew.set("yem_usacreditamt_cd", storageAmount);
addNew.set("yem_usacreditamt_cd", bigDecimal);
} else {
storageAmount = BigDecimal.ZERO;
@ -144,7 +146,7 @@ public class ShippingDetialToStoraConvert extends AbstractConvertPlugIn
BigDecimal sinosurerate = (BigDecimal) dynamicObject.get("yem_sinosurerate");
addNew.set("yem_sinosurerate_cd", sinosurerate);
// yem_insuranceamt_cd = yem_usacreditamt_cd * yem_sinosurerate_cd / 100
BigDecimal insuranceamt = storageAmount.multiply(sinosurerate).divide(new BigDecimal("100"), 10, RoundingMode.HALF_UP);
BigDecimal insuranceamt = bigDecimal.multiply(sinosurerate).divide(new BigDecimal("100"), 10, RoundingMode.HALF_UP);
// 保险费
addNew.set("yem_insuranceamt_cd", insuranceamt);
// 信用期限
@ -152,6 +154,7 @@ public class ShippingDetialToStoraConvert extends AbstractConvertPlugIn
// 保险费本位币金额
addNew.set("yem_insuranceamtbas_cd", insuranceamt.multiply(exrate));
addNew.set("yem_amountowed", bigDecimal);
// //SWIFT CODE
// addNew.set("yem_swiftcode", dynamicObject.get("yem_swiftcode"));
}

View File

@ -56,6 +56,9 @@ public class XSalesOrderFromEdit extends AbstractBillPlugIn {
if ("yem_es_materialinfo".equals(name)) {
setMaterialType(rowIndex);
}
if ("yem_multiconfig".equals(name)){
this.getModel().setValue("yem_linetypes","add",rowIndex);
}
}
}

View File

@ -12,8 +12,6 @@ import kd.bos.orm.query.QCP;
import kd.bos.orm.query.QFilter;
import kd.bos.servicehelper.BusinessDataServiceHelper;
import org.apache.commons.lang3.ArrayUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.math.BigDecimal;
import java.math.RoundingMode;
@ -48,12 +46,28 @@ public class ClientUtils {
int rowInfo = 0;
// boolean flag = false;
for (DynamicObject temp : detailedinfor) {
String yem_linetype = "";
if (Entityname.equals("yem_es_xsalesorder")) {
String yem_linetype = temp.getString("yem_linetype");
yem_linetype = temp.getString("yem_linetype");
if (!yem_linetype.equals("add")) {
rowInfo++;
continue;
boolean tor = true;
DynamicObjectCollection yemMulticonfig = temp.getDynamicObjectCollection("yem_multiconfig");
if (!yemMulticonfig.isEmpty()) {
for (DynamicObject dynamicObject : yemMulticonfig) {
String yemLinetypes = dynamicObject.getString("yem_linetypes");
if ("add".equals(yemLinetypes)) {
tor = false;
}
}
}
if (tor) {
rowInfo++;
continue;
}
}
} else {
yem_linetype = "add";
}
//多功能配置分录行获取
DynamicObjectCollection multiconfig = null;
@ -106,7 +120,8 @@ public class ClientUtils {
//客户需求单整机 -整机分录行
// if (("yem_im_clientdeman_zj".equals(yem_billtype) || "yem_im_inclientdeman_zj".equals(yem_billtype) || ("yem_es_salesorder_ZJ".equals(yem_billtype)) || "yem_es_salesorder_nmzj".equals(yem_billtype)) && "Z".equals(businesssort)) {
if (("yem_im_clientdeman_zj".equals(yem_billtype) || "yem_im_inclientdeman_zj".equals(yem_billtype) || ("yem_es_salesorder_ZJ".equals(yem_billtype))
|| "yem_es_salesorder_nmzj".equals(yem_billtype) || "yem_es_xsalesorder_zj".equals(yem_billtype) | "yem_es_xsalesorder_nmzj".equals(yem_billtype)) && "Z".equals(businesssort)) {
|| "yem_es_salesorder_nmzj".equals(yem_billtype) || "yem_es_xsalesorder_zj".equals(yem_billtype)
|| "yem_es_xsalesorder_nmzj".equals(yem_billtype)) && "Z".equals(businesssort)) {
list.add(new QFilter("yem_bd_products.id", QCP.equals, products));
list.add(new QFilter("billstatus", QCP.equals, "C"));
list.add(new QFilter("yem_billtype.number", QCP.equals, "yem_pricelibrary_ZJ"));
@ -114,11 +129,7 @@ public class ClientUtils {
// list.add(new QFilter("yem_productclass.number",QCP.equals,yemBdProductsid));
//读取价格库数据
DynamicObject yem_pricelibrary = null;
if (multiconfig != null && !multiconfig.isEmpty()) {
yem_pricelibrary = BusinessDataServiceHelper.loadSingle("yem_pricelibrary", list.toArray(new QFilter[0]));
} else {
yem_pricelibrary = BusinessDataServiceHelper.loadSingle("yem_pricelibrary", list.toArray(new QFilter[0]));
}
yem_pricelibrary = BusinessDataServiceHelper.loadSingle("yem_pricelibrary", list.toArray(new QFilter[0]));
if (yem_pricelibrary != null) {
//多功能配置分录行无数据 则跳过查询价格库
if (multiconfig != null && !multiconfig.isEmpty()) {
@ -149,7 +160,23 @@ public class ClientUtils {
}
}
}
setPriceNow(multiconfig, dataMap, rowInfo, models);
if ("yem_es_xsalesorder".equals(models.getDataEntityType().getName())) {
int multiconfigIndex = 0;
if (!multiconfig.isEmpty()) {
for (DynamicObject dc : multiconfig) {
if ("add".equals(dc.getString("yem_linetypes"))) {
long configentryid = dc.getLong("yem_configentryid");
BigDecimal configentry = dataMap.get(configentryid) == null ? BigDecimal.ZERO : dataMap.get(configentryid).setScale(2);
models.setValue("yem_marketraisepribase", configentry, multiconfigIndex, rowInfo);
multiconfigIndex++;
} else {
multiconfigIndex++;
}
}
}
} else {
setPriceNow(multiconfig, dataMap, rowInfo, models);
}
}
DynamicObjectCollection yem_basicmodel = yem_pricelibrary.getDynamicObjectCollection("yem_basicmodel");
if (yem_basicmodel != null && !yem_basicmodel.isEmpty()) {
@ -176,14 +203,20 @@ public class ClientUtils {
}
//客户需求单整机 -配件分录行
else if (("yem_im_clientdeman_zj".equals(yem_billtype) || "yem_im_inclientdeman_zj".equals(yem_billtype) || ("yem_es_salesorder_ZJ".equals(yem_billtype)) || "yem_es_salesorder_nmzj".equals(yem_billtype) || "yem_es_xsalesorder_zj".equals(yem_billtype) || "yem_es_xsalesorder_nmzj".equals(yem_billtype)) && "P".equals(businesssort)) {
else if (("yem_im_clientdeman_zj".equals(yem_billtype) || "yem_im_inclientdeman_zj".equals(yem_billtype)
|| ("yem_es_salesorder_ZJ".equals(yem_billtype)) || "yem_es_salesorder_nmzj".equals(yem_billtype)
|| "yem_es_xsalesorder_zj".equals(yem_billtype) || "yem_es_xsalesorder_nmzj".equals(yem_billtype))
&& "P".equals(businesssort) && yem_linetype.equals("add")) {
// else if (("yem_im_clientdeman_zj".equals(yem_billtype) || "yem_im_inclientdeman_zj".equals(yem_billtype) || ("yem_es_salesorder_ZJ".equals(yem_billtype)) || "yem_es_salesorder_nmzj".equals(yem_billtype)) && "P".equals(businesssort)) {
pjFindPrice(yem_exrate, info, pjDatas, rowInfo, list, materials, models, yemBdProductsid);
}
//客户需求单配件
// else if (("yem_im_clientdema_pj".equals(yem_billtype) || "yem_im_inclientdema_pj".equals(yem_billtype) || "yem_es_salesorder_PJ".equals(yem_billtype) || "yem_es_salesorder_nmpj".equals(yem_billtype)) && "P".equals(businesssort)) {
else if (("yem_im_clientdema_pj".equals(yem_billtype) || "yem_im_inclientdema_pj".equals(yem_billtype) || "yem_es_salesorder_PJ".equals(yem_billtype) || "yem_es_salesorder_nmpj".equals(yem_billtype) || "yem_es_xsalesorder_pj".equals(yem_billtype) || "yem_es_xsalesorder_nmpj".equals(yem_billtype)) && "P".equals(businesssort)) {
else if (("yem_im_clientdema_pj".equals(yem_billtype) || "yem_im_inclientdema_pj".equals(yem_billtype)
|| "yem_es_salesorder_PJ".equals(yem_billtype) || "yem_es_salesorder_nmpj".equals(yem_billtype)
|| "yem_es_xsalesorder_pj".equals(yem_billtype) || "yem_es_xsalesorder_nmpj".equals(yem_billtype))
&& "P".equals(businesssort) && yem_linetype.equals("add")) {
pjFindPrice(yem_exrate, info, pjDatas, rowInfo, list, materials, models, yemBdProductsid);
}
rowInfo++;
@ -338,7 +371,7 @@ public class ClientUtils {
*/
public static void setPriceNow(DynamicObjectCollection multiconfig, Map<Long, BigDecimal> dataMap, int rowInfo, IDataModel models) {
int multiconfigIndex = 0;
if (multiconfig != null && multiconfig.size() > 0) {
if (!multiconfig.isEmpty()) {
for (DynamicObject dc : multiconfig) {
long configentryid = dc.getLong("yem_configentryid");
BigDecimal configentry = dataMap.get(configentryid) == null ? BigDecimal.ZERO : dataMap.get(configentryid).setScale(2);
@ -1950,12 +1983,13 @@ public class ClientUtils {
/**
* 计算销售FOB单价
* <p>
* 销售FOB单价=商品明细对应多功能配置中 单台加价金额结算币别合计值 + 销售FCA标配青岛单价+FOB与FCA费用差额
* 销售FOB单价=商品明细对应多功能配置中 单台加价金额结算币别合计值 + 销售FCA标配青岛单价
*/
public static void calculateSalesFOBUnitPrice(IDataModel model, int idx) {
// if (!isFCAPriceItem(model, idx)) {
// return;
// }
String string = model.getDataEntityType().getName();
DynamicObject dataEntity = model.getDataEntity(true);
DynamicObjectCollection c = dataEntity.getDynamicObjectCollection("yem_es_materialinfo");
@ -1977,6 +2011,15 @@ public class ClientUtils {
int rowCount = model.getEntryRowCount("yem_es_materialinfo");
for (int i = 0; i < rowCount; i++) {
DynamicObject d = c.get(i);
if (string.equals("yem_es_xsalesorder")) {
String yemLinetype = d.getString("yem_linetype");
if (!"add".equals(yemLinetype)) {
continue;
}
}
if (!"Z".equals(d.getString("yem_businesssort"))) {
continue;
}
DynamicObjectCollection subC = d.getDynamicObjectCollection("yem_multiconfig");
BigDecimal sumAmt = BigDecimal.ZERO;
for (DynamicObject sub : subC) {

View File

@ -9,7 +9,6 @@ import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
import kd.bos.entity.plugin.AddValidatorsEventArgs;
import kd.bos.entity.plugin.PreparePropertysEventArgs;
import kd.bos.entity.plugin.args.BeforeOperationArgs;
import kd.bos.entity.plugin.args.BeginOperationTransactionArgs;
import kd.bos.entity.plugin.args.EndOperationTransactionArgs;
import kd.bos.orm.query.QCP;
import kd.bos.orm.query.QFilter;
@ -19,7 +18,6 @@ import kd.bos.servicehelper.operation.SaveServiceHelper;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**

View File

@ -77,6 +77,9 @@ public class OptionalFormPlugIn extends AbstractFormPlugin implements Plugin {
model.setValue("yem_parameter", mechanical.getString("yem_parameter"), createRow);
model.setValue("yem_remarke", mechanical.getString("yem_remarke"), createRow);
model.setValue("yem_entryid", id, createRow);
if (mechanical.containsProperty("yem_model_config_c")) {
model.setValue("yem_model_config_c", mechanical.getDynamicObject("yem_model_config_c"), createRow);
}
}
}
}
@ -114,6 +117,8 @@ public class OptionalFormPlugIn extends AbstractFormPlugin implements Plugin {
model.setValue("yem_specification", optional.getString("yem_specification_o"), entryRow);
model.setValue("yem_remarke", optional.getString("yem_remarke"), entryRow);
model.setValue("yem_entryid", optional.getPkValue(), entryRow);
model.setValue("yem_model_config_c", optional.getDynamicObject("yem_model_config_c"), entryRow);
model.setValue("yem_ruconfigure_c",optional.getString("yem_ruconfigure_c"),entryRow);
}
}
@ -172,6 +177,7 @@ public class OptionalFormPlugIn extends AbstractFormPlugin implements Plugin {
parentModel.setValue("yem_configurtype", "A", optionalRow);
parentModel.setValue("yem_configurname", model.getValue("yem_profilenamea", selectRow), optionalRow);
parentModel.setValue("yem_configurtypeen", model.getValue("yem_configure", selectRow), optionalRow);
parentModel.setValue("yem_configurtyperu", model.getValue("yem_ruconfigure_c", selectRow), optionalRow);
parentModel.setValue("yem_specification_o", model.getValue("yem_specification", selectRow), optionalRow);
// parentModel.setValue("yem_marketprice", marketPrice, optionalRow);
// parentModel.setValue("yem_marketraiseprice", marketRaisePrice, optionalRow);
@ -179,6 +185,13 @@ public class OptionalFormPlugIn extends AbstractFormPlugin implements Plugin {
parentModel.setValue("yem_arguments", model.getValue("yem_parameter", selectRow), optionalRow);
parentModel.setValue("yem_remarkss", model.getValue("yem_remarke", selectRow), optionalRow);
parentModel.setValue("yem_configentryid", model.getValue("yem_entryid", selectRow), optionalRow);
DynamicObject modelConfigR = (DynamicObject) model.getValue("yem_model_config_c", selectRow);
if (YEM.isNotEmpty(modelConfigR)) {
parentModel.setValue("yem_cname_config", modelConfigR.getString("yem_standard_cname"), optionalRow);
parentModel.setValue("yem_ename_config", modelConfigR.getString("yem_standard_ename"), optionalRow);
parentModel.setValue("yem_runame_config", modelConfigR.getString("yem_standard_runame"), optionalRow);
}
}
}
}

View File

@ -6,6 +6,7 @@ import com.yem.wm.utils.FunctionalCommon;
import com.yem.wm.utils.YEM;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.entity.MainEntityType;
import kd.bos.entity.datamodel.IDataModel;
import kd.bos.form.FormShowParameter;
import kd.bos.form.IFormView;
@ -107,6 +108,10 @@ public class ReplaceFormPlugIn extends AbstractFormPlugin implements Plugin {
// model.setValue("yem_marketraiseprice", replaceable.getBigDecimal("yem_salesmarkup_re"), entryRow);
model.setValue("yem_remarke", replaceable.getString("yem_remarkr"), entryRow);
model.setValue("yem_entryid", replaceable.getPkValue(), entryRow);
model.setValue("yem_ruconfigure_c",replaceable.getString("yem_ruconfigure_r"),entryRow);
model.setValue("yem_model_config_r", replaceable.getDynamicObject("yem_model_config_r"), entryRow);
}
}
@ -164,12 +169,20 @@ public class ReplaceFormPlugIn extends AbstractFormPlugin implements Plugin {
parentModel.setValue("yem_configurtype", "B", optionalRow);
parentModel.setValue("yem_configurname", model.getValue("yem_profilenamea", selectRow), optionalRow);
parentModel.setValue("yem_configurtypeen", model.getValue("yem_configure", selectRow), optionalRow);
parentModel.setValue("yem_configurtyperu",model.getValue("yem_ruconfigure_c",selectRow),optionalRow);
parentModel.setValue("yem_specification_o", model.getValue("yem_specification", selectRow), optionalRow);
// parentModel.setValue("yem_marketprice", marketPrice, optionalRow);
// parentModel.setValue("yem_marketraiseprice", marketRaisePrice, optionalRow);
parentModel.setValue("yem_unitsetnumber", model.getValue("yem_unitsetnumber", selectRow), optionalRow);
parentModel.setValue("yem_remarkss", model.getValue("yem_remarke", selectRow), optionalRow);
parentModel.setValue("yem_configentryid", model.getValue("yem_entryid", selectRow), optionalRow);
DynamicObject modelConfigR = (DynamicObject) model.getValue("yem_model_config_r", selectRow);
DynamicObject parentDataEntity = parentModel.getDataEntity(true);
if (YEM.isNotEmpty(modelConfigR)) {
parentModel.setValue("yem_cname_config", modelConfigR.getString("yem_standard_cname"), optionalRow);
parentModel.setValue("yem_ename_config", modelConfigR.getString("yem_standard_ename"), optionalRow);
parentModel.setValue("yem_runame_config", modelConfigR.getString("yem_standard_runame"), optionalRow);
}
}
}

View File

@ -105,6 +105,8 @@ public class RetrofittingFormPlugIn extends AbstractFormPlugin implements Plugin
model.setValue("yem_specification",optional.getString("yem_specification_a"),entryRow);
model.setValue("yem_remarke",optional.getString("yem_remarka"),entryRow);
model.setValue("yem_entryid",optional.getPkValue(),entryRow);
model.setValue("yem_ruconfigure_c", optional.getString("yem_ruconfigure_a"), entryRow);
model.setValue("yem_model_config_r", optional.getDynamicObject("yem_model_config_a"), entryRow);
}
}
@ -161,12 +163,19 @@ public class RetrofittingFormPlugIn extends AbstractFormPlugin implements Plugin
parentModel.setValue("yem_configurtype","C",optionalRow);
parentModel.setValue("yem_configurname",model.getValue("yem_profilenamea",selectRow),optionalRow);
parentModel.setValue("yem_configurtypeen",model.getValue("yem_configure",selectRow),optionalRow);
parentModel.setValue("yem_configurtyperu",model.getValue("yem_ruconfigure_c",selectRow),optionalRow);
parentModel.setValue("yem_specification_o",model.getValue("yem_specification",selectRow),optionalRow);
// parentModel.setValue("yem_marketprice",marketPrice,optionalRow);
// parentModel.setValue("yem_marketraiseprice",marketRaisePrice,optionalRow);
parentModel.setValue("yem_unitsetnumber", model.getValue("yem_unitsetnumber", selectRow), optionalRow);
parentModel.setValue("yem_remarkss",model.getValue("yem_remarke",selectRow),optionalRow);
parentModel.setValue("yem_configentryid",model.getValue("yem_entryid",selectRow),optionalRow);
DynamicObject modelConfigR = (DynamicObject) model.getValue("yem_model_config_r", selectRow);
if (YEM.isNotEmpty(modelConfigR)) {
parentModel.setValue("yem_cname_config", modelConfigR.getString("yem_standard_cname"), optionalRow);
parentModel.setValue("yem_ename_config", modelConfigR.getString("yem_standard_ename"), optionalRow);
parentModel.setValue("yem_runame_config", modelConfigR.getString("yem_standard_runame"), optionalRow);
}
}
}

View File

@ -108,6 +108,7 @@ public class PayapplyService extends AbstractOperationServicePlugIn {
SimpleDateFormat fmtTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String yemBizdate = fmtDate.format(dataEntitie.getDate("yem_bizdate"));
json.put("bizDate", yemBizdate);
json.put("cosmic", dataEntitie.getString("yem_cosmic"));
//申请人 creator
DynamicObject creators = dataEntitie.getDynamicObject("creator");
if (creators != null) {

View File

@ -50,7 +50,7 @@ public class YemDelivernoticeService extends AbstractOperationServicePlugIn {
dataEntity = BusinessDataServiceHelper.loadSingle(dataEntity.getPkValue(), dataEntity.getDynamicObjectType().getName());
DynamicObject yem_billtype = dataEntity.getDynamicObject("yem_billtype");
String yemSynchronizeeas = dataEntity.getString("yem_synchronizeeas");
if ("B".equals(yemSynchronizeeas)){
if ("B".equals(yemSynchronizeeas)) {
list.add(selectedRow);
continue;
}
@ -129,12 +129,20 @@ public class YemDelivernoticeService extends AbstractOperationServicePlugIn {
//单据编号
json.put("number", dataEntitie.getString("billno"));
//送货客户
// if (dataEntitie.getString("yem_sale_type").equals("B")) {
//
// }
DynamicObject yemCustomer = dataEntitie.getDynamicObject("yem_customer1");
if (yemCustomer != null) {
json.put("customer", setJson("number", yemCustomer.getString("number")));
if (dataEntitie.getString("yem_sale_type").equals("B")) {
DynamicObject yemCustomer = dataEntitie.getDynamicObject("yem_actualcustomer");
if (yemCustomer != null) {
json.put("customer", setJson("number", yemCustomer.getString("number")));
json.put("receiveinfo", dataEntitie.getString("yem_customername"));
json.put("paymentcustomer", setJson("number", yemCustomer.getString("number")));
json.put("ordercustomer", setJson("number", yemCustomer.getString("number")));
json.put("balancecustomer", setJson("number", yemCustomer.getString("number")));
}
} else {
DynamicObject yemCustomer = dataEntitie.getDynamicObject("yem_customer1");
if (yemCustomer != null) {
json.put("customer", setJson("number", yemCustomer.getString("number")));
}
}
//币别
DynamicObject yemCurrency = dataEntitie.getDynamicObject("yem_currency");
@ -276,6 +284,11 @@ public class YemDelivernoticeService extends AbstractOperationServicePlugIn {
if (yemWarehouse != null) {
json.put("warehouse", setJson("number", yemWarehouse.getString("number")));
}
//送货客户
if (dataEntitie.getString("yem_sale_type").equals("B")) {
json.put("terminalamount", materialentry.getString("yem_endamount"));
json.put("terminalprice", materialentry.getString("yem_endprice"));
}
//库位
DynamicObject yemLocation = materialentry.getDynamicObject("yem_location");
if (yemLocation != null) {

View File

@ -8,6 +8,7 @@ import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.db.DB;
import kd.bos.db.DBRoute;
import kd.bos.entity.operate.OperateOptionConst;
import kd.bos.entity.operate.result.IOperateInfo;
import kd.bos.entity.operate.result.OperationResult;
import kd.bos.metadata.dao.MetaCategory;
@ -22,6 +23,7 @@ import kd.bos.orm.query.QFilter;
import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.bos.servicehelper.operation.OperationServiceHelper;
import kd.bos.servicehelper.operation.SaveServiceHelper;
import kd.fi.ar.consts.OperationConst;
import org.jetbrains.annotations.NotNull;
import javax.validation.Valid;
@ -52,7 +54,9 @@ public class OperationalUniversal {
FormMetadata formMeta = (FormMetadata) MetadataDao.readRuntimeMeta(id, MetaCategory.Form);
String name = formMeta.getName().toString();
if (operate.length() > 0) {
OperationResult audit = OperationServiceHelper.executeOperate(operateKey, dynamicObject.getDynamicObjectType().getName(), new Object[]{dynamicObject.getPkValue()}, OperateOption.create());
OperateOption operateOption = OperateOption.create();
operateOption.setVariableValue(OperateOptionConst.MUTEX_IGNOREMODIFY, Boolean.toString(false));
OperationResult audit = OperationServiceHelper.executeOperate(operateKey, dynamicObject.getDynamicObjectType().getName(), new Object[]{dynamicObject.getPkValue()}, operateOption);
if (!audit.isSuccess()) {
List<IOperateInfo> allErrorOrValidateInfo = audit.getAllErrorOrValidateInfo();
String message = audit.getMessage();

View File

@ -5,6 +5,7 @@ import com.yem.ia.intebilllogon.Utils.BackfilljsonAssignUtils;
import com.yem.wm.syn.eas.api.dto.IntebilllogonAuditDTO;
import com.yem.wm.syn.eas.api.service.IYZJAuditService;
import com.yem.wm.syn.eas.api.service.impl.YZJAuditServiceImpl;
import com.yem.wm.utils.YEM;
import com.yem.wm.utils.YunzhijiaUtils;
import kd.bos.dataentity.OperateOption;
import kd.bos.dataentity.entity.DynamicObject;
@ -59,11 +60,12 @@ public class YZJAuditController {
*/
@ApiPostMapping("/rewriting")
public CustomApiResult<Object> rewriting(@NotNull @ApiParam("参数") String data) throws IOException {
DynamicObject billObj = null;
try {
JSONObject json = JSONObject.parseObject(data);
// JSONObject data1 = json.getJSONObject("data");
JSONObject basicInfo = json.getJSONObject("basicInfo");
logger.info("云之家回写,入参"+data);
logger.info("云之家回写,入参" + data);
logger.info(json.toJSONString());
String formCodeId = basicInfo.getString("formCodeId");
//通过表单定义ID获取模板
@ -71,23 +73,64 @@ public class YZJAuditController {
ArrayList<QFilter> qFilters = new ArrayList<>();
qFilters.add(new QFilter("yem_yzjid", QCP.equals, formCodeId));
qFilters.add(new QFilter("yem_isdisable", QCP.equals, false));
logger.info("QFilter{}", qFilters);
DynamicObject yem_ia_intebilllogon = BusinessDataServiceHelper.loadSingle("yem_ia_intebilllogon", qFilters.toArray(new QFilter[0]));
if (yem_ia_intebilllogon != null) {
yem_ia_intebilllogon = BusinessDataServiceHelper.loadSingle(yem_ia_intebilllogon.getLong("id"), "yem_ia_intebilllogon");
} else {
return CustomApiResult.success("调用成功");
}
//单据类型
String bos_entityobjectnum = yem_ia_intebilllogon.getString("yem_formid.number");
//获取单据
DynamicObject billObj = BusinessDataServiceHelper.loadSingle(bos_entityobjectnum, new QFilter[]{new QFilter("yem_forminstid", QCP.equals, formInstId)});
if (billObj != null) {
billObj = BusinessDataServiceHelper.loadSingle(billObj.get("id"), bos_entityobjectnum);
}
//通过表单实例ID获取日志对象
DynamicObject ialog = BusinessDataServiceHelper.loadSingle("yem_ialog", new QFilter[]{new QFilter("yem_forminstid", QCP.equals, billObj.get("yem_forminstid"))});
ialog.set("yem_writeback", data);
if (yem_ia_intebilllogon != null) {
logger.info("智能审批单据注册:{}{}", yem_ia_intebilllogon.getString("billno"), yem_ia_intebilllogon.getPkValue());
// yem_ia_intebilllogon = BusinessDataServiceHelper.loadSingle(yem_ia_intebilllogon.getLong("id"), "yem_ia_intebilllogon");
} else {
logger.info("未获取到智能审批单据注册");
return CustomApiResult.success("调用成功(未获取到智能审批单据注册)");
}
DynamicObject formType = yem_ia_intebilllogon.getDynamicObject("yem_formid");
String bos_entityobjectnum;
if (formType != null) {
bos_entityobjectnum = formType.getString("number");
} else {
return CustomApiResult.fail("501", "智能审批单据注册:" + yem_ia_intebilllogon.getString("billno") + ",中单据类为空!");
}
logger.info("获取审批单据,查询条件:{}{}", bos_entityobjectnum, formInstId);
//获取单据
QFilter qFilter = new QFilter("yem_forminstid", QCP.equals, formInstId);
DynamicObject[] load = BusinessDataServiceHelper.load(bos_entityobjectnum, "id, billno", qFilter.toArray());
logger.info("查询到审批单据: {} 条", load.length);
for (DynamicObject d : load) {
logger.info("审批单据:{}", d.getString("billno"));
}
if (load.length > 0) {
DynamicObject object = load[0];
billObj = BusinessDataServiceHelper.loadSingle(object.getPkValue(), object.getDataEntityType().getName());
}
} catch (Exception e) {
e.printStackTrace();
return CustomApiResult.fail("501", e.getMessage());
}
DynamicObject ialog = null;
try {
if (YEM.isNotEmpty(billObj)) {
//通过表单实例ID获取日志对象
ialog = BusinessDataServiceHelper.loadSingle("yem_ialog", new QFilter[]{new QFilter("yem_forminstid", QCP.equals, billObj.get("yem_forminstid"))});
} else {
return CustomApiResult.fail("501", "获取审批单据失败!");
}
} catch (Exception e) {
e.printStackTrace();
return CustomApiResult.fail("501", "获取审批日志失败!" + e.getMessage());
}
if (YEM.isNotEmpty(ialog)) {
ialog.set("yem_writeback", data);
} else {
return CustomApiResult.fail("501", "获取审批日志失败!");
}
try {
//TODO 调用云之家获取审批结果接口
JSONObject reqjson = new JSONObject();
reqjson.put("flowInstId", billObj.get("yem_flowinstid"));
@ -111,31 +154,30 @@ public class YZJAuditController {
dynamicObject.set("yem_synfalt", "同步失败,点击按钮查看失败详情!");
dynamicObject.set("yem_synfalt_tag", "同步失败,失败原因:" + audit);
logger.info("同步失败,失败原因:" + audit);
ialog.set("yem_error","调用单据审核失败");
ialog.set("yem_error_tag",audit);
ialog.set("yem_success",false);
ialog.set("yem_error", "调用单据审核失败");
ialog.set("yem_error_tag", audit);
ialog.set("yem_success", false);
SaveServiceHelper.update(dynamicObject);
// SaveServiceHelper.save(new DynamicObject[]{ialog});
OperationServiceHelper.executeOperate("unsubmit", billObj.getDynamicObjectType().getName(), new Object[]{billObj.get("id")}, OperateOption.create());
CustomApiResult<Object> fail = CustomApiResult.fail("501", audit);
return fail;
return CustomApiResult.fail("501", audit);
} else {
ialog.set("yem_success",true);
ialog.set("yem_error"," ");
ialog.set("yem_error_tag"," ");
ialog.set("yem_success", true);
ialog.set("yem_error", " ");
ialog.set("yem_error_tag", " ");
dynamicObject.set("yem_synfalt", "同步成功");
SaveServiceHelper.update(dynamicObject);
// SaveServiceHelper.save(new DynamicObject[]{ialog});
}
}
SaveServiceHelper.save(new DynamicObject[]{ialog});
} catch (Exception e) {
CustomApiResult<Object> fail = CustomApiResult.fail("501", e.getMessage());
return fail;
e.printStackTrace();
return CustomApiResult.fail("501", e.getMessage());
} finally {
SaveServiceHelper.save(new DynamicObject[]{ialog});
}
CustomApiResult<Object> ces = CustomApiResult.success("调用成功");
return ces;
return CustomApiResult.success("调用成功");
}
/**
@ -206,6 +248,7 @@ public class YZJAuditController {
CustomApiResult<Object> ces = CustomApiResult.success("调用成功");
return ces;
}
/**
* 云之家框架合同 合同签章回写
*

View File

@ -217,7 +217,7 @@ public class DelivernoticeSynEAS extends AbstractOperationServicePlugIn {
//已领料数量
json.put("HavePickQty", 0);
//备注
json.put("Remark", entryentity.getString("yem_remark"));
json.put("Remark", entryentity.getString("yem_conbillnumber"));
jsonArray.add(json);
}
return jsonArray;

View File

@ -1,6 +1,9 @@
package com.yem.wm.sys.formplugin.list;
import java.util.EventObject;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
@ -122,14 +125,27 @@ public class AbstractVersionListPlugin extends AbstractListPlugin {
if (BillFormId.equals("yem_es_storagetrans")) {
entityNumber = BillFormId;
}
if (entityNumber.length() > 0) {
for (ListSelectedRow SelectedData : listSelectedData) {
DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(SelectedData.getPrimaryKeyValue(), entityNumber);
String billNo = SelectedData.getBillNo();
boolean yem_changing = dynamicObject.getBoolean("yem_changing");
if (yem_changing) {
this.getView().showErrorNotification("单据【" + billNo + "】正在变更中,禁止下推!");
e.setCancel(true);
if (!entityNumber.isEmpty()) {
Set<Long> ids = new HashSet<>();
for (ListSelectedRow datum : listSelectedData) {
Long keyValue = (Long) datum.getPrimaryKeyValue();
ids.add(keyValue);
}
Map<Object, DynamicObject> loads = BusinessDataServiceHelper.loadFromCache(entityNumber, "id, billno, yem_changing", new QFilter[]{new QFilter("id", "in", ids)});
for (ListSelectedRow selectedRow : listSelectedData) {
Object primaryKeyValue = selectedRow.getPrimaryKeyValue();
if (loads.containsKey(primaryKeyValue)) {
DynamicObject dynamicObject = loads.get(primaryKeyValue);
String billno = dynamicObject.getString("billno");
boolean yem_changing = dynamicObject.getBoolean("yem_changing");
if (yem_changing) {
this.getView().showErrorNotification("单据【" + billno + "】正在变更中,禁止下推!");
e.setCancel(true);
}
}
}
}

View File

@ -35,8 +35,7 @@ public class StoraGetransToDeviceFilesTask extends AbstractTask {
long yemResourcescodeLong = yemResourcescode.getLong("id");
String yemEmDevicefiles = DynamicObjectUtil.getSelectfields("yem_em_devicefiles", false);
QFilter qFilter = new QFilter("yem_framenumber", QCP.equals, yemVehicleno);
qFilter.and("yem_model.id", QCP.equals, yemResourcescodeLong)
.and("billstatus", QCP.equals, "C");
qFilter.and("yem_model.id", QCP.equals, yemResourcescodeLong);
DynamicObject[] dynamicObjects = BusinessDataServiceHelper.load("yem_em_devicefiles", yemEmDevicefiles
, new QFilter[]{qFilter});
if (dynamicObjects.length > 0) {