lc/lc123/cloud/app/plugin/form/im/OtherOutApplyCopyBillPlugin...

92 lines
5.0 KiB
Java

package tqq9.lc123.cloud.app.plugin.form.im;
import com.alibaba.nacos.common.utils.StringUtils;
import kd.bos.algo.DataSet;
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.form.plugin.AbstractFormPlugin;
import kd.bos.orm.ORM;
import kd.sdk.plugin.Plugin;
import java.math.BigDecimal;
import java.util.EventObject;
/**
* 其他出库申请复制实时查询批次可用量
*/
public class OtherOutApplyCopyBillPlugin extends AbstractFormPlugin implements Plugin {
@Override
public void afterCopyData(EventObject e) {
super.afterCopyData(e);
DynamicObjectCollection entryentity = this.getModel().getDataEntity(true).getDynamicObjectCollection("entryentity");
for (DynamicObject dynamicObject : entryentity) {
DynamicObject materiel = dynamicObject.getDynamicObject("tqq9_materiel");//物料
DynamicObject dcck = dynamicObject.getDynamicObject("tqq9_dcck");//仓库
String lotNumber = dynamicObject.getString("tqq9_lotnumber");//批号
int seq = dynamicObject.getInt("seq");//批号
if (materiel != null && dcck != null && StringUtils.isNotBlank(lotNumber)) {
String sql = "/*dialect*/SELECT \n" +
" t1.fmaterialid, \n" +
" t1.fwarehouseid,\n" +
" t1.flotnum,\n" +
" SUM(t1.fqty) - COALESCE(SUM(t2.f_qty), 0) AS qty_difference\n" +
"FROM \n" +
" (SELECT fmaterialid, fwarehouseid, flotnum, SUM(fqty) AS fqty\n" +
" FROM t_im_inv_realbalance\n" +
" GROUP BY fmaterialid, fwarehouseid, flotnum) t1\n" +
"LEFT JOIN \n" +
" (SELECT f_s_materiel, f_s_warehouse, f_s_lotnum, SUM(f_qty) AS f_qty\n" +
" FROM t_msmod_reserverecord\n" +
" GROUP BY f_s_materiel, f_s_warehouse, f_s_lotnum) t2\n" +
"ON t1.fmaterialid = t2.f_s_materiel \n" +
" AND t1.fwarehouseid = t2.f_s_warehouse\n" +
" AND t1.flotnum = t2.f_s_lotnum\n" +
" WHERE \n" +
" t1.fmaterialid = " + materiel.getDynamicObject("masterid").getString("id") + "\n" +
" AND t1.fwarehouseid = " + dcck.getString("id") + " \n" +
" AND t1.flotnum = '" + lotNumber + "' \n" +
"GROUP BY t1.fmaterialid, t1.fwarehouseid, t1.flotnum;\n";
DataSet materialDataSet = DB.queryDataSet(this.getClass().getName(), DBRoute.of("scm"), sql);
DataSet copy1 = materialDataSet.copy();
DynamicObjectCollection dynamicObjects = ORM.create().toPlainDynamicObjectCollection(copy1);
if (dynamicObjects.size() > 0) {
BigDecimal total_qty = dynamicObjects.get(0).getBigDecimal("qty_difference");
this.getModel().setValue("tqq9_pckyamount", total_qty, seq-1);
}
}else if (materiel != null && dcck != null && StringUtils.isBlank(lotNumber)) {
String sql = "/*dialect*/SELECT \n" +
" t1.fmaterialid, \n" +
" t1.fwarehouseid,\n" +
" SUM(t1.fqty) - COALESCE(SUM(t2.f_qty), 0) AS qty_difference\n" +
"FROM \n" +
" (SELECT fmaterialid, fwarehouseid, SUM(fqty) AS fqty\n" +
" FROM t_im_inv_realbalance\n" +
" GROUP BY fmaterialid, fwarehouseid) t1\n" +
"LEFT JOIN \n" +
" (SELECT f_s_materiel, f_s_warehouse, SUM(f_qty) AS f_qty\n" +
" FROM t_msmod_reserverecord\n" +
" GROUP BY f_s_materiel, f_s_warehouse) t2\n" +
"ON t1.fmaterialid = t2.f_s_materiel \n" +
" AND t1.fwarehouseid = t2.f_s_warehouse\n" +
" WHERE \n" +
" t1.fmaterialid = " + materiel.getDynamicObject("masterid").getString("id") + "\n" +
" AND t1.fwarehouseid = " + dcck.getString("id") + " \n" +
"GROUP BY t1.fmaterialid, t1.fwarehouseid;\n";
DataSet materialDataSet = DB.queryDataSet(this.getClass().getName(), DBRoute.of("scm"), sql);
DataSet copy1 = materialDataSet.copy();
DynamicObjectCollection dynamicObjects = ORM.create().toPlainDynamicObjectCollection(copy1);
if (dynamicObjects.size() > 0) {
BigDecimal total_qty = dynamicObjects.get(0).getBigDecimal("qty_difference");
this.getModel().setValue("tqq9_pckyamount", total_qty, seq-1);
}
}
}
}
}