短缺处理单根据物料是否开启批号、效期,给对应字段设置默认值
This commit is contained in:
parent
30cc6ecb30
commit
6afda9b7c9
|
|
@ -0,0 +1,82 @@
|
|||
package tqq9.lc123.cloud.app.plugin.form.im;
|
||||
|
||||
import kd.bos.bill.AbstractBillPlugIn;
|
||||
import kd.bos.dataentity.entity.DynamicObject;
|
||||
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
||||
import kd.bos.entity.EntityMetadataCache;
|
||||
import kd.bos.entity.datamodel.events.ChangeData;
|
||||
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
|
||||
import kd.bos.orm.ORM;
|
||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.ZoneId;
|
||||
import java.util.Date;
|
||||
import java.util.EventObject;
|
||||
|
||||
/**
|
||||
* 短缺处理表单插件
|
||||
*/
|
||||
public class ShortageBillPlugin extends AbstractBillPlugIn {
|
||||
|
||||
@Override
|
||||
public void afterBindData(EventObject e) {
|
||||
super.afterBindData(e);
|
||||
DynamicObject dataEntity = this.getModel().getDataEntity(true);
|
||||
DynamicObjectCollection billentries = dataEntity.getDynamicObjectCollection("billentry");
|
||||
for (int i = 0; i < billentries.size(); i++) {
|
||||
DynamicObject billentry = billentries.get(i);
|
||||
DynamicObject material = billentry.getDynamicObject("material");
|
||||
if(material != null){
|
||||
material = BusinessDataServiceHelper.loadSingle(material.getPkValue(), material.getDynamicObjectType().getName());
|
||||
boolean enablelot = material.getBoolean("enablelot");//是否启用批号
|
||||
boolean enableshelflifemgr = material.getBoolean("enableshelflifemgr");//是否启用保质期
|
||||
if(enablelot){
|
||||
this.getModel().setValue("lotnumber", "ZZZ", i);
|
||||
}else{
|
||||
this.getModel().setValue("lotnumber", null, i);
|
||||
}
|
||||
if(enableshelflifemgr){
|
||||
this.getModel().setValue("producedate", new Date(), i);
|
||||
LocalDate localDate = LocalDate.of(2999, 12, 31);
|
||||
Date expirydate = Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
|
||||
this.getModel().setValue("expirydate", expirydate, i);
|
||||
}else{
|
||||
this.getModel().setValue("producedate", null, i);
|
||||
this.getModel().setValue("expirydate", null, i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void propertyChanged(PropertyChangedArgs e) {
|
||||
super.propertyChanged(e);
|
||||
String name = e.getProperty().getName();
|
||||
ChangeData[] changeSet = e.getChangeSet();
|
||||
int rowIndex = changeSet[0].getRowIndex();
|
||||
if("material".equals(name)){
|
||||
DynamicObject material = (DynamicObject) this.getModel().getValue("material", rowIndex);//物料库存信息
|
||||
if(material != null){
|
||||
material = BusinessDataServiceHelper.loadSingle(material.getPkValue(), material.getDynamicObjectType().getName());
|
||||
boolean enablelot = material.getBoolean("enablelot");//是否启用批号
|
||||
boolean enableshelflifemgr = material.getBoolean("enableshelflifemgr");//是否启用保质期
|
||||
if(enablelot){
|
||||
this.getModel().setValue("lotnumber", "ZZZ", rowIndex);
|
||||
}else{
|
||||
this.getModel().setValue("lotnumber", null, rowIndex);
|
||||
}
|
||||
if(enableshelflifemgr){
|
||||
this.getModel().setValue("producedate", new Date(), rowIndex);
|
||||
LocalDate localDate = LocalDate.of(2999, 12, 31);
|
||||
Date expirydate = Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
|
||||
this.getModel().setValue("expirydate", expirydate, rowIndex);
|
||||
}else{
|
||||
this.getModel().setValue("producedate", null, rowIndex);
|
||||
this.getModel().setValue("expirydate", null, rowIndex);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue