根据物料 批号,生产日期,到期日期查询商品
This commit is contained in:
parent
bae67f370a
commit
b357c2c27c
|
|
@ -213,13 +213,13 @@ public class WMSAdjustBillController {
|
||||||
materialinv = BusinessDataServiceHelper.loadSingle(materialinv.getPkValue(), "bd_materialinventoryinfo");
|
materialinv = BusinessDataServiceHelper.loadSingle(materialinv.getPkValue(), "bd_materialinventoryinfo");
|
||||||
//调整前商品
|
//调整前商品
|
||||||
DynamicObject oGoods = null;
|
DynamicObject oGoods = null;
|
||||||
DynamicObject[] oGoodsArr = BaseDataMatchUtils.materialMatchGoods(cInvCode, cOBatch, true);
|
DynamicObject[] oGoodsArr = BaseDataMatchUtils.materialMatchGoods(cInvCode, cOBatch, dOMDate, dOVDate, true);
|
||||||
if(oGoodsArr != null && oGoodsArr.length > 0){
|
if(oGoodsArr != null && oGoodsArr.length > 0){
|
||||||
oGoods = oGoodsArr[0];
|
oGoods = oGoodsArr[0];
|
||||||
}
|
}
|
||||||
//调整后商品
|
//调整后商品
|
||||||
DynamicObject iGoods = null;
|
DynamicObject iGoods = null;
|
||||||
DynamicObject[] iGoodsArr = BaseDataMatchUtils.materialMatchGoods(cInvCode, cIBatch, true);
|
DynamicObject[] iGoodsArr = BaseDataMatchUtils.materialMatchGoods(cInvCode, cIBatch, dIMDate, dIVDate, true);
|
||||||
if(iGoodsArr != null && iGoodsArr.length > 0){
|
if(iGoodsArr != null && iGoodsArr.length > 0){
|
||||||
iGoods = iGoodsArr[0];
|
iGoods = iGoodsArr[0];
|
||||||
}
|
}
|
||||||
|
|
@ -456,7 +456,7 @@ public class WMSAdjustBillController {
|
||||||
String remark = ckObj.getString("remark");//备注
|
String remark = ckObj.getString("remark");//备注
|
||||||
//调整前商品
|
//调整前商品
|
||||||
DynamicObject oGoods = null;
|
DynamicObject oGoods = null;
|
||||||
DynamicObject[] oGoodsArr = BaseDataMatchUtils.materialMatchGoods(itemCode, batchCode, true);
|
DynamicObject[] oGoodsArr = BaseDataMatchUtils.materialMatchGoods(itemCode, batchCode, productDate, expireDate, true);
|
||||||
if(oGoodsArr != null && oGoodsArr.length > 0){
|
if(oGoodsArr != null && oGoodsArr.length > 0){
|
||||||
oGoods = oGoodsArr[0];
|
oGoods = oGoodsArr[0];
|
||||||
}else{
|
}else{
|
||||||
|
|
@ -464,9 +464,13 @@ public class WMSAdjustBillController {
|
||||||
}
|
}
|
||||||
|
|
||||||
String batchCode_e = rkObj.getString("batchCode");//入库批号
|
String batchCode_e = rkObj.getString("batchCode");//入库批号
|
||||||
|
//调整后生产日期
|
||||||
|
Date productDate_e = rkObj.getDate("productDate");
|
||||||
|
//调整后有效期
|
||||||
|
Date expireDate_e = rkObj.getDate("expireDate");
|
||||||
//调整后商品
|
//调整后商品
|
||||||
DynamicObject iGoods = null;
|
DynamicObject iGoods = null;
|
||||||
DynamicObject[] iGoodsArr = BaseDataMatchUtils.materialMatchGoods(itemCode, batchCode_e, true);
|
DynamicObject[] iGoodsArr = BaseDataMatchUtils.materialMatchGoods(itemCode, batchCode_e, productDate, expireDate, true);
|
||||||
if(iGoodsArr != null && iGoodsArr.length > 0){
|
if(iGoodsArr != null && iGoodsArr.length > 0){
|
||||||
iGoods = iGoodsArr[0];
|
iGoods = iGoodsArr[0];
|
||||||
}else{
|
}else{
|
||||||
|
|
@ -486,10 +490,6 @@ public class WMSAdjustBillController {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
int quantity_e = rkObj.getInteger("quantity");
|
int quantity_e = rkObj.getInteger("quantity");
|
||||||
//调整后生产日期
|
|
||||||
Date productDate_e = rkObj.getDate("productDate");
|
|
||||||
//调整后有效期
|
|
||||||
Date expireDate_e = rkObj.getDate("expireDate");
|
|
||||||
|
|
||||||
//常量准备-查询单据类型
|
//常量准备-查询单据类型
|
||||||
QFilter f = new QFilter("number", "=", "im_Adjustbill_STD_BT_S");
|
QFilter f = new QFilter("number", "=", "im_Adjustbill_STD_BT_S");
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,74 @@
|
||||||
|
package tqq9.lc123.cloud.app.plugin.form.sys;
|
||||||
|
|
||||||
|
|
||||||
|
import kd.bos.bill.AbstractBillPlugIn;
|
||||||
|
import kd.bos.dataentity.entity.DynamicObject;
|
||||||
|
import kd.bos.entity.datamodel.events.ChangeData;
|
||||||
|
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
|
||||||
|
import tqq9.lc123.cloud.app.plugin.utils.BaseDataMatchUtils;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据物料获取商品信息
|
||||||
|
*/
|
||||||
|
public class GetGoodsByMaterialBillPlugin extends AbstractBillPlugIn {
|
||||||
|
|
||||||
|
private static Set<String> materialFieldNameSet_1;
|
||||||
|
private static Set<String> materialFieldNameSet_2;
|
||||||
|
private static Set<String> materialFieldNameSet_3;
|
||||||
|
static{
|
||||||
|
materialFieldNameSet_1 = Stream.of("im_purinbill", "sm_salorder", "sm_delivernotice", "im_saloutbill",
|
||||||
|
"im_otheroutbill", "tqq9_otherinapply", "im_otherinbill", "im_adjustbill").collect(Collectors.toSet());//material
|
||||||
|
materialFieldNameSet_2 = Stream.of("ar_busbill", "ar_finarbill", "ap_payapply", "ar_busbill", "ar_finarbill").collect(Collectors.toSet());//e_material
|
||||||
|
materialFieldNameSet_3 = Stream.of("tqq9_otheroutapply").collect(Collectors.toSet());//tqq9_materiel
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void propertyChanged(PropertyChangedArgs e) {
|
||||||
|
super.propertyChanged(e);
|
||||||
|
ChangeData[] changeSet = e.getChangeSet();
|
||||||
|
int rowIndex = changeSet[0].getRowIndex();
|
||||||
|
String name = e.getProperty().getName();
|
||||||
|
String materialFieldName = "material";
|
||||||
|
DynamicObject dataEntity = this.getModel().getDataEntity(true);
|
||||||
|
String dataEntityName = dataEntity.getDataEntityType().getName();
|
||||||
|
if(materialFieldNameSet_1.contains(dataEntityName)){
|
||||||
|
materialFieldName = "material";
|
||||||
|
}else if (materialFieldNameSet_2.contains(dataEntityName)){
|
||||||
|
materialFieldName = "e_material";
|
||||||
|
}else if (materialFieldNameSet_3.contains(dataEntityName)){
|
||||||
|
materialFieldName = "tqq9_materiel";
|
||||||
|
}
|
||||||
|
|
||||||
|
if(materialFieldName.equals(name) || "lotnumber".equals(name) || "producedate".equals(name) || "expirydate".equals(name)){
|
||||||
|
DynamicObject material = (DynamicObject) this.getModel().getValue(materialFieldName, rowIndex);
|
||||||
|
String lotnumber = (String) this.getModel().getValue("lotnumber", rowIndex);
|
||||||
|
Date producedate = (Date) this.getModel().getValue("producedate", rowIndex);
|
||||||
|
Date expirydate = (Date) this.getModel().getValue("expirydate", rowIndex);
|
||||||
|
if(material != null){
|
||||||
|
DynamicObject[] goodsArr = BaseDataMatchUtils.materialMatchGoods(material.getString("number"), lotnumber, producedate, expirydate, false);
|
||||||
|
this.getModel().setValue("tqq9_goods", goodsArr[0], rowIndex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 形态转换单子明细
|
||||||
|
if("im_adjustbill".equals(dataEntityName) ){
|
||||||
|
int parentRowIndex = changeSet[0].getParentRowIndex();
|
||||||
|
if ("material1".equals(name) || "lotnumber".equals(name) || "producedate".equals(name) || "expirydate".equals(name)){
|
||||||
|
DynamicObject material = (DynamicObject) this.getModel().getValue("material1", rowIndex);
|
||||||
|
String lotnumber = (String) this.getModel().getValue("lotnumber", rowIndex);
|
||||||
|
Date producedate = (Date) this.getModel().getValue("producedate", rowIndex);
|
||||||
|
Date expirydate = (Date) this.getModel().getValue("expirydate", rowIndex);
|
||||||
|
if(material != null){
|
||||||
|
DynamicObject[] goodsArr = BaseDataMatchUtils.materialMatchGoods(material.getString("number"), lotnumber, producedate, expirydate, false);
|
||||||
|
this.getModel().setValue("tqq9_goods", goodsArr[0], rowIndex, parentRowIndex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -7,6 +7,7 @@ import org.apache.poi.util.ArrayUtil;
|
||||||
import scala.Dynamic;
|
import scala.Dynamic;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -30,19 +31,32 @@ public class BaseDataMatchUtils {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据物料编码查找对应商品
|
*
|
||||||
* @param materialNumber 物料编码
|
* @param materialNumber
|
||||||
* @param lotNumber 批号
|
* @param lotNumber
|
||||||
* @param isauto 是否自动封装的商品
|
* @param producedate
|
||||||
|
* @param expirydate
|
||||||
|
* @param isauto
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public static DynamicObject[] materialMatchGoods(String materialNumber, String lotNumber, boolean isauto){
|
public static DynamicObject[] materialMatchGoods(String materialNumber, String lotNumber, Date producedate, Date expirydate, boolean isauto){
|
||||||
QFilter f1 = new QFilter("tqq9_mater.number", "=", materialNumber);
|
QFilter f1 = new QFilter("tqq9_mater.number", "=", materialNumber);
|
||||||
QFilter f2 = new QFilter("tqq9_entry.tqq9_lot.number", "=", lotNumber);
|
QFilter f2 = new QFilter("tqq9_entry.tqq9_lot.number", "=", lotNumber);
|
||||||
QFilter f3 = new QFilter("tqq9_isauto", "=", isauto);
|
QFilter f3 = new QFilter("tqq9_entry.producedate", "=", producedate);
|
||||||
DynamicObject[] goodsA = BusinessDataServiceHelper.load("tqq9_goodspackage",
|
QFilter f4 = new QFilter("tqq9_entry.expirydate", "=", expirydate);
|
||||||
"id,number,name,tqq9_mater.baseunit,tqq9_mater.modelnum,tqq9_isauto",
|
QFilter f5 = new QFilter("tqq9_isauto", "=", isauto);
|
||||||
new QFilter[]{f1, f2, f3});
|
DynamicObject[] goodsA = null;
|
||||||
|
if(isauto){
|
||||||
|
// 只取自动封装的商品
|
||||||
|
goodsA = BusinessDataServiceHelper.load("tqq9_goodspackage",
|
||||||
|
"id,number,name,tqq9_mater.baseunit,tqq9_mater.modelnum,tqq9_isauto",
|
||||||
|
new QFilter[]{f1, f2, f3, f4, f5});
|
||||||
|
}else{
|
||||||
|
// 取所有的商品
|
||||||
|
goodsA = BusinessDataServiceHelper.load("tqq9_goodspackage",
|
||||||
|
"id,number,name,tqq9_mater.baseunit,tqq9_mater.modelnum,tqq9_isauto",
|
||||||
|
new QFilter[]{f1, f2, f3, f4});
|
||||||
|
}
|
||||||
if(goodsA != null && goodsA.length > 0){
|
if(goodsA != null && goodsA.length > 0){
|
||||||
List<DynamicObject> goodsList = new ArrayList<>();
|
List<DynamicObject> goodsList = new ArrayList<>();
|
||||||
for (DynamicObject goods : goodsA) {
|
for (DynamicObject goods : goodsA) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue