Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
xiaoshi 2025-08-13 15:14:13 +08:00
commit fe609728ce
5 changed files with 546 additions and 57 deletions

View File

@ -0,0 +1,66 @@
package zcgj.zcdev.zcdev.fs.plugin.other;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.entity.earlywarn.EarlyWarnContext;
import kd.bos.entity.earlywarn.kit.StringTemplateParser;
import kd.bos.entity.earlywarn.kit.StringUtil;
import kd.bos.entity.earlywarn.warn.plugin.IEarlyWarnMessageCompiler;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class MessageCompiler implements IEarlyWarnMessageCompiler {
@Override
public String getSingleMessage(String expression, List<String> fields, DynamicObject data, EarlyWarnContext earlyWarnContext) {
if (expression == null || data == null){
return "";
}
Map<String, String> map = new HashMap<>();
for (String field : fields) {
String value = "";
if ("zcgj_beginlocal".equals(field)
|| "zcgj_debitlocal".equals(field)
|| "zcgj_creditlocal".equals(field)
|| "zcgj_yeardebitfor".equals(field)
|| "zcgj_yearcreditfor".equals(field)
|| "zcgj_endlocal".equals(field)){
String[] arr = StringUtil.split(field, ".");
Object objValue = getValue(data, arr);
value = objValue == null?"" : objValue.toString();
if(value!=null){
BigDecimal valBig = new BigDecimal(value);
BigDecimal divide = valBig.setScale(2, RoundingMode.HALF_UP).divide(new BigDecimal("10000"), 2, RoundingMode.HALF_UP);
value = String.valueOf(divide);
}
}else {
String[] arr = StringUtil.split(field, ".");
Object objValue = getValue(data, arr);
value = objValue == null?"" : objValue.toString();
}
map.put(field,value);
}
StringTemplateParser parser = new StringTemplateParser();
return parser.parse(expression,name->map.get(name));
}
private String getValue(DynamicObject data, String[] arr) {
if(null == arr || arr.length == 0){
return "";
}
Object obj = data.get(arr[0]);
if(obj instanceof DynamicObject){
return getValue((DynamicObject)obj, Arrays.copyOfRange(arr, 1, arr.length));
}
return StringUtil.toSafeString(obj);
}
@Override
public String getMergeMessage(String s, List<String> list, EarlyWarnContext earlyWarnContext) {
return "";
}
}

View File

@ -13,14 +13,15 @@ import kd.bos.list.ListShowParameter;
import kd.bos.orm.query.QCP;
import kd.bos.orm.query.QFilter;
import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.bos.servicehelper.user.UserServiceHelper;
import java.util.ArrayList;
import java.util.EventObject;
import java.util.List;
/*
* 设备令单表单插件
* 说明1设备编码带出资产编码2:过滤设备编码字段3调出调入项目带出调出调入负责人
* 设备令单表单插件
* 说明1设备编码带出资产编码2:过滤设备编码字段3调出调入项目带出调出调入负责人4自动带出所属组织和部门
*/
public class EquipmentCommandBillPlugin extends AbstractBillPlugIn implements BeforeF7SelectListener {
@Override
@ -32,10 +33,18 @@ public class EquipmentCommandBillPlugin extends AbstractBillPlugIn implements Be
outProject.addBeforeF7SelectListener(this);
BasedataEdit inProject = this.getControl("zcgj_inproject"); //调入项目
inProject.addBeforeF7SelectListener(this);
// BasedataEdit outUser = this.getControl("zcgj_outuser"); //调出负责人
// outUser.addBeforeF7SelectListener(this);
// BasedataEdit inUser = this.getControl("zcgj_inuser"); //调入负责人
// inUser.addBeforeF7SelectListener(this);
}
@Override
public void afterCreateNewData(EventObject e) {
super.afterCreateNewData(e);
long currentUserId = UserServiceHelper.getCurrentUserId();
Long mainOrgId = UserServiceHelper.getUserMainOrgId(currentUserId);
this.getModel().setValue("zcgj_department", mainOrgId);//部门
DynamicObject costDept = (DynamicObject) this.getModel().getValue("zcgj_department");//部门
if (costDept != null) {
setOrg(costDept);
}
}
@Override
@ -49,7 +58,7 @@ public class EquipmentCommandBillPlugin extends AbstractBillPlugIn implements Be
int rowIndex = changeData.getRowIndex();
DynamicObject realCard = (DynamicObject) changeData.getNewValue();//新值
if (realCard != null) {
String realCardNumber = realCard.getString("number");//设备编码-设备编码
String realCardNumber = realCard.getString("zcgj_assetnumber");//设备编码-资产编码
DynamicObject org = (DynamicObject) realCard.get("org");//管理组织
QFilter[] qFilters = new QFilter[]{new QFilter("number", QCP.equals, realCardNumber).and("org.id", QCP.equals, org.get("id"))};
DynamicObject fa_card_real_base = BusinessDataServiceHelper.loadSingle("fa_card_real_base", "id", qFilters);//实物卡片基础资料
@ -93,6 +102,12 @@ public class EquipmentCommandBillPlugin extends AbstractBillPlugIn implements Be
}
}
}
} else if (StringUtil.equals(key, "zcgj_department")){
//部门
DynamicObject costDept = (DynamicObject) this.getModel().getValue("zcgj_department");//部门
if (costDept != null) {
setOrg(costDept);
}
}
}
@ -100,23 +115,38 @@ public class EquipmentCommandBillPlugin extends AbstractBillPlugIn implements Be
public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) {
String propertyName = beforeF7SelectEvent.getProperty().getName();
ListShowParameter formShowParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter();
List<QFilter> qFilter = new ArrayList<>();
if (StringUtil.equals(propertyName, "zcgj_realcard") || StringUtil.equals(propertyName, "zcgj_outproject")) {
//设备编码调出项目
List<QFilter> qFilters = new ArrayList<>();
if (StringUtil.equals(propertyName, "zcgj_realcard")) {
//设备编码
Object outOrg = this.getModel().getValue("zcgj_outorg");//调出组织
if (outOrg == null) {
this.getView().showErrorNotification("请先填写调出组织!");
beforeF7SelectEvent.setCancel(true);
return;
}
DynamicObject outOrgDy = (DynamicObject) outOrg;
if (StringUtil.equals(propertyName, "zcgj_realcard")) {
//设备编码
qFilter.add(new QFilter("org.id", "=", outOrgDy.get("id")));
} else {
//调出项目
qFilter.add(new QFilter("fiaccountorg.id", "=", outOrgDy.get("id")));
DynamicObject outOrgDy = (DynamicObject) outOrg;//调出组织
QFilter filter = new QFilter("org.id", "=", outOrgDy.get("id"));
DynamicObject[] equipmentInfos = BusinessDataServiceHelper.load("eceq_equipment_info", "id", new QFilter[]{filter});//设备台账F7
List<Long> equipmentInfoIds = getIdsFromDynamicObjects(equipmentInfos);
qFilters.add(new QFilter("id", QCP.in, equipmentInfoIds));
} else if (StringUtil.equals(propertyName, "zcgj_outproject")) {
// 调出项目
Object outOrg = this.getModel().getValue("zcgj_outorg");//调出组织
if (outOrg == null) {
this.getView().showErrorNotification("请先填写调出组织!");
beforeF7SelectEvent.setCancel(true);
return;
}
DynamicObject outOrgDy = (DynamicObject) outOrg;//调出组织
QFilter filter = new QFilter("fiaccountorg.id", "=", outOrgDy.get("id"));
DynamicObject[] projectF7s = BusinessDataServiceHelper.load("ec_ecbd_projectf7", "id", new QFilter[]{filter});//工程项目
List<Long> projectF7Ids = getIdsFromDynamicObjects(projectF7s);
qFilters.add(new QFilter("id", QCP.in, projectF7Ids));
} else if (StringUtil.equals(propertyName, "zcgj_inproject")) {
//调入项目
Object inOrg = this.getModel().getValue("zcgj_inorg");//调入组织
@ -126,8 +156,72 @@ public class EquipmentCommandBillPlugin extends AbstractBillPlugIn implements Be
return;
}
DynamicObject inOrgDy = (DynamicObject) inOrg;
qFilter.add(new QFilter("fiaccountorg.id", "=", inOrgDy.get("id")));
QFilter filter = new QFilter("fiaccountorg.id", "=", inOrgDy.get("id"));
DynamicObject[] projectF7s = BusinessDataServiceHelper.load("ec_ecbd_projectf7", "id", new QFilter[]{filter});
List<Long> projectF7Ids = getIdsFromDynamicObjects(projectF7s);
qFilters.add(new QFilter("id", QCP.in, projectF7Ids));
}
formShowParameter.getListFilterParameter().setQFilters(qFilter);
// formShowParameter.setHasRight(true);
// formShowParameter.getCustomParams().put("isIgnoreLicense", true);
// formShowParameter.setIsolationOrg(false);
formShowParameter.getListFilterParameter().setQFilters(qFilters);
}
private List<Long> getIdsFromDynamicObjects(DynamicObject[] dynamicObjects) {
List<Long> ids = new ArrayList<>();
if (dynamicObjects != null && dynamicObjects.length > 0) {
for (DynamicObject obj : dynamicObjects) {
ids.add((Long) obj.get("id"));
}
}
return ids;
}
private void setOrg(DynamicObject costDept) {
DynamicObject orgPattern = costDept.getDynamicObject("orgpattern");
if (orgPattern == null) {
return;
}
String orgPatternNumber = orgPattern.getString("number");
if (!orgPatternNumber.equals("Orgform06")) {
//填写的部门的形态不是部门时直接将部门值赋值给所属组织
this.getModel().setValue("zcgj_org", costDept);//所属组织
return;
}
int a = 0;
DynamicObject cost;
DynamicObject viewParent = null;
while (true) {
if (a == 0) {
//第一次进入循环
cost = costDept;
} else {
QFilter[] qFilters = new QFilter[]{
new QFilter("number", QCP.equals, viewParent.getString("number"))
};
cost = BusinessDataServiceHelper.loadSingle("bos_adminorg", qFilters);
}
DynamicObjectCollection structureCollection = cost.getDynamicObjectCollection("structure");//组织结构分录
DynamicObject structure = structureCollection.get(0);
viewParent = structure.getDynamicObject("viewparent");//上级组织
String viewParentNumber = viewParent.getString("number");
QFilter[] qFilters = new QFilter[]{
new QFilter("number", QCP.equals, viewParentNumber)
};
DynamicObject bos_adminOrg = BusinessDataServiceHelper.loadSingle("bos_adminorg", qFilters);//行政组织
DynamicObject orgPattern1 = bos_adminOrg.getDynamicObject("orgpattern");//形态
String orgPatternNumber1 = orgPattern1.getString("number");
if (!orgPatternNumber1.equals("Orgform06")) {
//上级不为不为部门的时候将现在查询的部门赋值给一级承担部门
break;
} else {
a++;
}
}
DynamicObject bos_adminorg = BusinessDataServiceHelper.loadSingle("bos_adminorg", new QFilter[]{
new QFilter("number", QCP.equals, viewParent.getString("number"))});
this.getModel().setValue("zcgj_org", bos_adminorg);//所属组织
}
}

View File

@ -0,0 +1,164 @@
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
package zcgj.zcdev.zcdev.pr.plugin.form;
import java.util.EventObject;
import kd.bos.bill.AbstractBillPlugIn;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.dataentity.resource.ResManager;
import kd.bos.dataentity.utils.ObjectUtils;
import kd.bos.dataentity.utils.StringUtils;
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
import kd.bos.form.events.BeforeDoOperationEventArgs;
import kd.bos.form.field.BasedataEdit;
import kd.bos.form.field.FieldEdit;
import kd.bos.form.field.events.BeforeF7SelectEvent;
import kd.bos.form.field.events.BeforeF7SelectListener;
import kd.bos.form.operate.FormOperate;
import kd.bos.list.ListShowParameter;
import kd.bos.orm.query.QFilter;
/**
* 劳务班组系统插件二开去除自动携带身份证号和联系电话逻辑
*/
public class LabourEditPluginExt extends AbstractBillPlugIn implements BeforeF7SelectListener {
public LabourEditPluginExt() {
}
public void afterCreateNewData(EventObject e) {
super.afterCreateNewData(e);
}
public void registerListener(EventObject e) {
super.registerListener(e);
BasedataEdit contract = (BasedataEdit) this.getControl("contract");
contract.addBeforeF7SelectListener(this);
BasedataEdit unitProject = (BasedataEdit) this.getControl("unitproject");
if (unitProject != null) {
unitProject.addBeforeF7SelectListener(this);
}
BasedataEdit project = (BasedataEdit) this.getControl("project");
if (project != null) {
project.addBeforeF7SelectListener(this);
}
}
public void afterBindData(EventObject e) {
super.afterBindData(e);
this.teamChanged();
this.setUnitProject();
}
public void propertyChanged(PropertyChangedArgs e) {
super.propertyChanged(e);
String propertyName = e.getProperty().getName();
if (StringUtils.equals(propertyName, "team")) {
this.teamChanged();
this.getModel().deleteEntryData("entryentity");
} else {
DynamicObject contract;
if (StringUtils.equals(propertyName, "supplier")) {
contract = (DynamicObject) this.getModel().getValue("supplier");
if (null != contract) {
this.getModel().setValue("supplierman", contract.getString("linkman"));
// this.getModel().setValue("supplieridcard", contract.getString("tx_register_no"));//二开注释掉的
// this.getModel().setValue("suppliertel", contract.getString("bizpartner_phone"));//二开注释掉的
}
} else if (StringUtils.equals(propertyName, "contract")) {
contract = (DynamicObject) this.getModel().getValue("contract");
if (null != contract && null != contract.getDynamicObject("partb")) {
this.getModel().setValue("supplier", contract.getDynamicObject("partb").getPkValue());
}
} else if (StringUtils.equals(propertyName, "project")) {
this.getModel().setValue("unitproject", (Object) null);
this.setUnitProject();
this.getView().updateView("unitproject");
}
}
}
protected void setUnitProject() {
DynamicObject project = (DynamicObject) this.getModel().getValue("project");
if (project == null) {
this.getView().setEnable(false, new String[]{"unitproject"});
} else {
boolean editOnUnit = project.getBoolean("editonunit");
FieldEdit unitProjectEdit = (FieldEdit) this.getView().getControl("unitproject");
if (editOnUnit) {
this.getView().setEnable(true, new String[]{"unitproject"});
} else {
unitProjectEdit.setMustInput(false);
this.getView().setEnable(false, new String[]{"unitproject"});
}
}
}
private void teamChanged() {
String team = (String) this.getModel().getValue("team");
BasedataEdit supplier = (BasedataEdit) this.getControl("supplier");
BasedataEdit f7pickmaterials = (BasedataEdit) this.getControl("pickmaterials");
FieldEdit pickmaterialsName = (FieldEdit) this.getControl("pickmaterialsname");
if (StringUtils.equals(team, "01")) {
supplier.setMustInput(false);
this.getView().setVisible(false, new String[]{"pickmaterialsname"});
pickmaterialsName.setMustInput(false);
this.getView().setVisible(true, new String[]{"pickmaterials"});
f7pickmaterials.setMustInput(true);
this.getModel().setValue("supplier", (Object) null);
} else if (StringUtils.equals(team, "02")) {
supplier.setMustInput(true);
this.getView().setVisible(true, new String[]{"pickmaterialsname"});
pickmaterialsName.setMustInput(true);
this.getView().setVisible(false, new String[]{"pickmaterials"});
f7pickmaterials.setMustInput(false);
}
}
public void beforeDoOperation(BeforeDoOperationEventArgs args) {
super.beforeDoOperation(args);
FormOperate operate = (FormOperate) args.getSource();
String operateKey = operate.getOperateKey();
if (StringUtils.equals(operateKey, "save") || StringUtils.equals(operateKey, "submit")) {
String team = (String) this.getModel().getValue("team");
DynamicObjectCollection entryCollection = this.getModel().getEntryEntity("entryentity");
if (null != entryCollection && entryCollection.size() > 0) {
for (int i = 0; i < entryCollection.size(); ++i) {
if (StringUtils.equals(team, "01")) {
if (ObjectUtils.isEmpty(((DynamicObject) entryCollection.get(i)).get("pickmaterials"))) {
this.getView().showTipNotification(String.format(ResManager.loadKDString("领料人设置分录,第[%s]行领料人姓名为空。", "LabourEditPlugin_0", "ec-ecma-formplugin", new Object[0]), i + 1));
args.setCancel(true);
return;
}
} else if (StringUtils.equals(team, "02") && StringUtils.isEmpty(((DynamicObject) entryCollection.get(i)).get("pickmaterialsname").toString().trim())) {
this.getView().showTipNotification(String.format(ResManager.loadKDString("领料人设置分录,第[%s]行领料人姓名为空。", "LabourEditPlugin_0", "ec-ecma-formplugin", new Object[0]), i + 1));
args.setCancel(true);
return;
}
}
}
}
}
public void beforeF7Select(BeforeF7SelectEvent arg0) {
BasedataEdit source = (BasedataEdit) arg0.getSource();
String key = source.getFieldKey();
if (StringUtils.equals(key, "contract")) {
ListShowParameter showParameter = (ListShowParameter) arg0.getFormShowParameter();
QFilter typpeFilter = new QFilter("contracttype.contattr.basictype", "=", "03");
showParameter.getListFilterParameter().setFilter(typpeFilter);
} else if (StringUtils.equals("unitproject", key)) {
}
}
}

View File

@ -11,10 +11,17 @@ import kd.bos.dataentity.resource.ResManager;
import kd.bos.dataentity.utils.StringUtils;
import kd.bos.entity.EntityMetadataCache;
import kd.bos.entity.datamodel.ListSelectedRowCollection;
import kd.bos.entity.datamodel.events.ChangeData;
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
import kd.bos.form.*;
import kd.bos.form.control.EntryGrid;
import kd.bos.form.events.AfterDoOperationEventArgs;
import kd.bos.form.events.BeforeDoOperationEventArgs;
import kd.bos.form.events.ClosedCallBackEvent;
import kd.bos.form.field.BasedataEdit;
import kd.bos.form.field.RefBillEdit;
import kd.bos.form.field.events.BeforeF7SelectEvent;
import kd.bos.form.field.events.BeforeF7SelectListener;
import kd.bos.form.operate.FormOperate;
import kd.bos.list.ListShowParameter;
import kd.bos.orm.query.QCP;
@ -28,9 +35,67 @@ import java.util.*;
import java.util.stream.Collectors;
/**
* 入库单表单插件入库单点击选择采购申请按钮后弹出对应采购申请分录内容后通过选择弹出的采购申请分录行赋值给入库单中
* 入库单表单插件
* 说明1入库单点击选择采购申请按钮后弹出对应采购申请分录内容后通过选择弹出的采购申请分录行赋值给入库单中
* 2采购申请字段内容修改后清空分录
* 3采购申请字段过滤逻辑加仓库修改后清空采购申请字段
*/
public class MaterialInbPurchaseApplyPlugin extends AbstractBillPlugIn implements Plugin {
public class MaterialInbPurchaseApplyPlugin extends AbstractBillPlugIn implements Plugin, BeforeF7SelectListener {
@Override
public void registerListener(EventObject e) {
super.registerListener(e);
RefBillEdit purchaseApply = getView().getControl("zcgj_purchaseapply");//采购申请
purchaseApply.addBeforeF7SelectListener(this);
}
@Override
public void propertyChanged(PropertyChangedArgs e) {
super.propertyChanged(e);
String key = e.getProperty().getName();
if ("zcgj_purchaseapply".equals(key)) {
//采购申请
ChangeData[] changeSet = e.getChangeSet();
ChangeData changeData = changeSet[0];
Object newValue = changeData.getNewValue();//新值
Object oldValue = changeData.getOldValue();//旧值
if (newValue == null || !newValue.equals(oldValue)) {
// // 消息模板#{x}为超链接占位符格式如保存成功#{0},单据详情#{1}
// String tempMsg = "更改采购申请单将自动清单入库单明细,您确定更改吗?";
// List<MessageBoxLink> msglinks = new ArrayList<MessageBoxLink>();
// // 消息框按钮类型
// MessageBoxOptions options = MessageBoxOptions.OKCancel;
// // 确认提示类型
// ConfirmTypes confirmTypes = ConfirmTypes.Default;
// // 确认框回调
// ConfirmCallBackListener callBack = new ConfirmCallBackListener("CALLBACKID_DEMO2", this);
// // 按钮名称
// Map<Integer, String> btnNameMaps = new HashMap<Integer, String>();
// btnNameMaps.put(2, "按钮名称2");
// btnNameMaps.put(6, "按钮名称6");
// this.getView().showConfirm(tempMsg, msglinks, options, confirmTypes, callBack, btnNameMaps);
DynamicObjectCollection entryCollection = this.getModel().getDataEntity(true).getDynamicObjectCollection("entryentity");//入库单分录
entryCollection.clear();
this.getView().updateView("entryentity");//刷新分录
}
} else if ("warehouse".equals(key)) {
//仓库
this.getModel().setValue("zcgj_purchaseapply", null);//清空采购申请单字段
}
}
@Override
public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) {
String propertyName = beforeF7SelectEvent.getProperty().getName();
Object project = this.getModel().getValue("project");//项目
if (project != null) {
DynamicObject project1 = (DynamicObject) project;
ListShowParameter formShowParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter();
List<QFilter> qFilters = new ArrayList<>();
qFilters.add(new QFilter("project.id", QCP.in, project1.get("id")));
formShowParameter.getListFilterParameter().setQFilters(qFilters);
}
}
public void beforeDoOperation(BeforeDoOperationEventArgs args) {
super.beforeDoOperation(args);
FormOperate operate = (FormOperate) args.getSource();
@ -40,6 +105,42 @@ public class MaterialInbPurchaseApplyPlugin extends AbstractBillPlugIn implement
}
}
public void closedCallBack(ClosedCallBackEvent closedCallBackEvent) {
super.closedCallBack(closedCallBackEvent);
String actionId = closedCallBackEvent.getActionId();
DynamicObjectCollection returnDataCollection = (DynamicObjectCollection) closedCallBackEvent.getReturnData();
if (returnDataCollection == null) {
return;
}
if ("zcgj_selectpurchaseapply".equals(actionId) && returnDataCollection.size() > 0) {
for (DynamicObject returnData : returnDataCollection) {
int curIndex = this.getModel().createNewEntryRow("entryentity");
this.getModel().updateCache();
this.getView().setEnable(false, curIndex, new String[]{"oftaxamount", "notaxamount", "taxamount", "taxprice"});
long zcgj_bigintfield = returnData.getLong("zcgj_bigintfield");//采购申请单id
QFilter filter = new QFilter("purchaseentry.id", QCP.equals, zcgj_bigintfield);
DynamicObjectCollection purchaseApply = QueryServiceHelper.query("ecma_purchaseapply",
"purchaseentry,purchaseentry.material,purchaseentry.purchaseqty,purchaseentry.entrytaxrate,purchaseentry.price,purchaseentry.id,purchaseentry.remarks,purchaseentry.zcgj_incount",
new QFilter[]{filter});//采购申请单
long material = purchaseApply.get(0).getLong("purchaseentry.material");//采购申请分录-资源编码
BigDecimal purchaseQty = (BigDecimal) purchaseApply.get(0).get("purchaseentry.purchaseqty");//采购申请分录-采购数量
BigDecimal zcgj_inCount = (BigDecimal) purchaseApply.get(0).get("purchaseentry.zcgj_incount");//采购申请分录-已入库数量
Object entryTaxRate = purchaseApply.get(0).get("purchaseentry.entrytaxrate");//采购申请分录-税率
Object price = purchaseApply.get(0).get("purchaseentry.price");//采购申请分录-预估单价
Object purchaseEntryId = purchaseApply.get(0).get("purchaseentry.id");//采购申请分录-预估单价
Object remarks = purchaseApply.get(0).get("purchaseentry.remarks");//采购申请分录-备注
this.getModel().setValue("material", material, curIndex);//资源编码
this.getModel().setValue("entrytaxrate", entryTaxRate, curIndex);//税率名称
this.getModel().setValue("qty", purchaseQty.subtract(zcgj_inCount), curIndex);//数量
this.getModel().setValue("price", price, curIndex);//入库单价
this.getModel().setValue("listingid", purchaseEntryId, curIndex);//合同清单id
this.getModel().setValue("note", remarks, curIndex);//备注
}
}
}
private void doPurchaseApply() {
DynamicObject purchaseApply = (DynamicObject) this.getModel().getValue("zcgj_purchaseapply");//采购申请单
if (purchaseApply == null) {
@ -99,40 +200,4 @@ public class MaterialInbPurchaseApplyPlugin extends AbstractBillPlugIn implement
this.getView().showForm(formShowParameter);
}
}
public void closedCallBack(ClosedCallBackEvent closedCallBackEvent) {
super.closedCallBack(closedCallBackEvent);
String actionId = closedCallBackEvent.getActionId();
DynamicObjectCollection returnDataCollection = (DynamicObjectCollection) closedCallBackEvent.getReturnData();
if (returnDataCollection == null) {
return;
}
if ("zcgj_selectpurchaseapply".equals(actionId) && returnDataCollection.size() > 0) {
for (DynamicObject returnData : returnDataCollection) {
int curIndex = this.getModel().createNewEntryRow("entryentity");
this.getModel().updateCache();
this.getView().setEnable(false, curIndex, new String[]{"oftaxamount", "notaxamount", "taxamount", "taxprice"});
long zcgj_bigintfield = returnData.getLong("zcgj_bigintfield");//采购申请单id
QFilter filter = new QFilter("purchaseentry.id", QCP.equals, zcgj_bigintfield);
DynamicObjectCollection purchaseApply = QueryServiceHelper.query("ecma_purchaseapply",
"purchaseentry,purchaseentry.material,purchaseentry.purchaseqty,purchaseentry.entrytaxrate,purchaseentry.price,purchaseentry.id,purchaseentry.remarks,purchaseentry.zcgj_incount",
new QFilter[]{filter});//采购申请单
long material = purchaseApply.get(0).getLong("purchaseentry.material");//采购申请分录-资源编码
BigDecimal purchaseQty = (BigDecimal) purchaseApply.get(0).get("purchaseentry.purchaseqty");//采购申请分录-采购数量
BigDecimal zcgj_inCount = (BigDecimal) purchaseApply.get(0).get("purchaseentry.zcgj_incount");//采购申请分录-已入库数量
Object entryTaxRate = purchaseApply.get(0).get("purchaseentry.entrytaxrate");//采购申请分录-税率
Object price = purchaseApply.get(0).get("purchaseentry.price");//采购申请分录-预估单价
Object purchaseEntryId = purchaseApply.get(0).get("purchaseentry.id");//采购申请分录-预估单价
Object remarks = purchaseApply.get(0).get("purchaseentry.remarks");//采购申请分录-备注
this.getModel().setValue("material", material, curIndex);//资源编码
this.getModel().setValue("entrytaxrate", entryTaxRate, curIndex);//税率名称
this.getModel().setValue("qty", purchaseQty.subtract(zcgj_inCount), curIndex);//数量
this.getModel().setValue("price", price, curIndex);//入库单价
this.getModel().setValue("listingid", purchaseEntryId, curIndex);//合同清单id
this.getModel().setValue("note", remarks, curIndex);//备注
}
}
}
}

View File

@ -0,0 +1,100 @@
/**
* This is a kingdee cosmic template project that is automatically generated by the Kingdee cosmic development assistant plugin.
* If there are any issues during the use process, you can provide feedback to the kingdee developer community website.
* Website: https://developer.kingdee.com/developer?productLineId=29
* Author: liebin.zheng
* Generate Date: 2024-11-22 11:26:47
*/
package zcgj.cosmic.debug;
import kd.cosmic.debug.tools.CosmicLauncher;
/**
* 启动本地应用程序(微服务节点)
*/
public class UatDebugApplication {
public static void main(String[] args) {
// Thread.currentThread().setContextClassLoader(new KDSecurityClassLoader(Thread.currentThread().getContextClassLoader()));
CosmicLauncher cosmic = new CosmicLauncher(false);
//开发工作流时开启
// 关闭轻量环境启用 redisrabbitmq
cosmic.setEnableLightWeightDeploy(false);
//debbugTopic 需要设置成每人都不同的
String debbugTopic = "zzg";
// 注册为消息队列消费者
cosmic.setMqConsumerRegister(true, debbugTopic);
cosmic.setClusterNumber("ierp");//xxx为mc中的集群编码
cosmic.setTenantNumber("sinoma");//xxx为mc中租户id
//cosmic.setClusterNumber("cosmic");
//cosmic.setTenantNumber("ierp");
//本地环境
//cosmic.setConfigUrl("192.168.10.210?user=zookeeper&password=123456abc");
//cosmic.setMcServerUrl("http://192.168.10.210:8090/");
//UAT环境
cosmic.setConfigUrl("172.31.195.243:2181?user=zookeeper&password=Cosmic@6654");
cosmic.setMcServerUrl("http://111.51.168.122:8090/");
// cosmic.setConfigUrl("127.0.0.1:2181?user=zk&password=xxx");
//cosmic.set("Schedule.zk.server.ip_port","192.168.10.210:2181?user=zookeeper&password=123456abc");
//cosmic.setConfigUrl("26.60.218.15?user=zookeeper&password=123456abc");
// cosmic.setMcServerUrl("http://127.0.0.1:8090");
// cosmic.setMcServerUrl("http://26.60.218.15:8090/");
//http://111.51.168.122:8090/mc
// cosmic.setFsServerUrl("127.0.0.1", 8100);
// cosmic.setImageServerUrl("127.0.0.1", 8100);
//自定义本地苍穹调试服务的端口
cosmic.setCosmicWebPort(8881);
// cosmic.setDubboConfig(false, true, true);
cosmic.start();
//redis 47.101.159.154
// debbugTopic 需要设置成每人都不同的
// String debbugTopic = "zzg";
// 注册为消息队列消费者
//cosmic.setMqConsumerRegister(true, debbugTopic);
// rabbitmq配置
/* {
//MQ地址
String mqHost = "139.224.101.245";
String mqPort = "5672"; // 默认5672
//MQ用戶名
String mqUser = "admin";
//MQ密碼
String mqPwd = "admin";
// MQ Ierp vhost
String mqVhost = "ierp";
StringBuilder builder = new StringBuilder();
builder.append("type=rabbitmq").append(System.getProperty("line.separator"))
.append("host=").append(mqHost).append(System.getProperty("line.separator"))
.append("port=").append(mqPort).append(System.getProperty("line.separator"))
.append("user=").append(mqUser).append(System.getProperty("line.separator"))
.append("password=").append(mqPwd).append(System.getProperty("line.separator"))
.append("vhost=").append(mqVhost);
cosmic.set("mq.server", builder.toString());
}
// redis
{
String redisUrl = "47.101.159.154:6379";
cosmic.set("redis.serversForCache", redisUrl);
cosmic.set("redis.serversForSession", redisUrl);
cosmic.set("algo.storage.redis.url", redisUrl);
}*/
}
}