Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
commit
fe609728ce
|
@ -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 "";
|
||||
}
|
||||
}
|
|
@ -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);//所属组织
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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)) {
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -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);//备注
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
//开发工作流时开启
|
||||
// 关闭轻量环境,启用 redis、rabbitmq
|
||||
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);
|
||||
}*/
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue