1.报表处理
2.订舱通知单增加效验

(cherry picked from commit c62ff30599)
This commit is contained in:
ljw 2024-11-14 18:50:08 +08:00
parent d0ea675721
commit 94b7b9fa8a
2 changed files with 39 additions and 19 deletions

View File

@ -5,6 +5,7 @@ import com.yem.wm.utils.RptUtil;
import com.yem.wm.utils.YEM;
import com.yem.wm.utils.groupfunc.GroupConcatFunction;
import com.yem.wm.utils.groupfunc.GroupConcatFunctionByComma;
import com.yem.wm.utils.groupfunc.GroupTopOneFunction;
import kd.bos.algo.*;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.entity.report.AbstractReportListDataPlugin;
@ -28,6 +29,7 @@ import static com.yem.rf.utils.RFUtils.getBaseQFilter;
*/
public class ShipmentsChedulePlugin extends AbstractReportListDataPlugin {
private static final String algoKey = SalesCommissionReportPlugin.class.getName();
@Override
public DataSet query(ReportQueryParam reportQueryParam, Object o) throws Throwable {
DataSet resDataSet;
@ -35,6 +37,7 @@ public class ShipmentsChedulePlugin extends AbstractReportListDataPlugin {
DataSet yemImTradeapp = yem_im_tradeapp(reportQueryParam);
DataSet yemsDeclaredocx = yemsDeclaredocx(reportQueryParam);
DataSet yemContainer = yemContainer();
DataSet delivernotices = delivernotice();
DataSet yem_es_delivernotice = yem_es_delivernotice(reportQueryParam);
resDataSet = yemsDeclaredocx.leftJoin(yemContainer)
.on("declaredocxyem_sourcebillid", "storagetransid")
@ -50,6 +53,10 @@ public class ShipmentsChedulePlugin extends AbstractReportListDataPlugin {
.on("shippingdetailsid", "delivernoticeyem_sourcebillid")//单据id 来源单据id
.select(RptUtil.getDataSetFiledAlias(resDataSet), RptUtil.getDataSetFiledAlias(yem_es_delivernotice))
.finish();
resDataSet = resDataSet.leftJoin(delivernotices)
.on("shippingdetailsid","delivernoticebillid")
.select(RptUtil.getDataSetFiledAlias(resDataSet), RptUtil.getDataSetFiledAlias(delivernotices))
.finish();
//整机配件货款延付申请单
resDataSet = resDataSet.leftJoin(yemImTradeapp)
.on("shippingdetailsid", "tradeappyem_sourcebillid")//单据id 来源单据id
@ -57,8 +64,6 @@ public class ShipmentsChedulePlugin extends AbstractReportListDataPlugin {
.finish();
DataSet selected = resDataSet.select(String.join(",", RptUtil.getDataSetFiledAlias(resDataSet)) +
",CASE WHEN DATEDIF(yem_lookoutdate,yem_datearrival,D) != -1 THEN DATEDIF(yem_lookoutdate,yem_datearrival,D) ELSE null END yem_flightnumberdays");
FilterInfo filter = reportQueryParam.getFilter();
String yemLading = filter.getString("yem_lading");
String yemContract = filter.getString("yem_contract");
@ -74,7 +79,7 @@ public class ShipmentsChedulePlugin extends AbstractReportListDataPlugin {
sb.append(" AND yem_ladingnumber like '").append("%").append(yemLading).append("%").append("'");
}
if (YEM.isNotEmpty(yemClient)) {
sb.append(" AND yem_customername = ").append("'"+yemClient.getString("name")+"'");
sb.append(" AND yem_customername = ").append("'" + yemClient.getString("name") + "'");
}
if (YEM.isNotEmpty(yemShipping)) {
sb.append(" AND yem_shipment like '").append("%").append(yemShipping).append("%").append("'");
@ -94,15 +99,15 @@ public class ShipmentsChedulePlugin extends AbstractReportListDataPlugin {
QFilter qFilter = getBaseQFilter();
Date start = filter.getDate("yem_Billofladingday");//提单日期-开始
Date end = filter.getDate("yem_Lookoutdateawbday");//提单日期-结束
qFilter.and("yem_sumopbill",QCP.equals,"B");
qFilter.and("yem_sumopbill", QCP.equals, "B");
if (YEM.isNotEmpty(start)) {
qFilter.and("yem_tddate", ">=", start);
}
if (YEM.isNotEmpty(end)) {
qFilter.and("yem_tddate", "<=", end);
}
qFilter.and("yem_customsdeclaration1",QCP.equals,"B");
qFilter.and("yem_corebillid",QCP.not_equals,0);
qFilter.and("yem_customsdeclaration1", QCP.equals, "B");
qFilter.and("yem_corebillid", QCP.not_equals, 0);
List<String> selectfields = new ArrayList<>();
selectfields.add("id yem_es_materialinfoid");
selectfields.add("billno billno");
@ -112,8 +117,6 @@ public class ShipmentsChedulePlugin extends AbstractReportListDataPlugin {
.groupBy(new String[]{"yem_splitopbill", "yem_es_materialinfoid"})
.finish();
DataSet rows = yemEsDeclaredocx(reportQueryParam);
//获取值
rows = rows.select(String.join(",", RptUtil.getDataSetFiledAlias(rows)) +
",case when yem_bringbillno != '' THEN yem_bringbillno else yem_realbringbillno end yem_ladingnumber");
@ -133,14 +136,14 @@ public class ShipmentsChedulePlugin extends AbstractReportListDataPlugin {
QFilter qFilter = getBaseQFilter();
Date start = filter.getDate("yem_Billofladingday");//提单日期-开始
Date end = filter.getDate("yem_Lookoutdateawbday");//提单日期-结束
qFilter.and("yem_sumopbill",QCP.equals,"B");
qFilter.and("yem_sumopbill", QCP.equals, "B");
if (YEM.isNotEmpty(start)) {
qFilter.and("yem_tddate", ">=", start);
}
if (YEM.isNotEmpty(end)) {
qFilter.and("yem_tddate", "<=", end);
}
qFilter.and("yem_customsdeclaration1",QCP.equals,"B");
qFilter.and("yem_customsdeclaration1", QCP.equals, "B");
List<String> selectfields = new ArrayList<>();
selectfields.add("yem_customsdeclaration1");
selectfields.add("id yem_es_declare_ecid");
@ -150,6 +153,7 @@ public class ShipmentsChedulePlugin extends AbstractReportListDataPlugin {
selectfields.add("yem_realbringbillno yem_realbringbillno");//提单号
selectfields.add("TO_CHAR(yem_ddpdate, 'yyyy-MM-dd') yem_customsclearance");//清关提货日
selectfields.add("yem_sourcebillid declaredocxyem_sourcebillid");
selectfields.add("yem_totalcontractno yem_contractnumber");
DataSet yemShippingdetails = ORM.create().queryDataSet(algoKey, "yem_es_declaredocx", String.join(",", selectfields)
, qFilter.toArray()).orderBy(new String[]{"yem_bizdate DESC"});
@ -176,17 +180,17 @@ public class ShipmentsChedulePlugin extends AbstractReportListDataPlugin {
selectfields.add("TO_CHAR(yem_arrivaldate, 'yyyy-MM-dd') yem_datearrival");//到港日
selectfields.add("yem_sourcebillid storagetransyemSourcebillid");
DataSet yemShippingdetails = ORM.create().queryDataSet(algoKey, "yem_es_storagetrans", String.join(",", selectfields), qFilter.toArray());
yemShippingdetails =yemShippingdetails.distinct();
yemShippingdetails = yemShippingdetails.distinct();
//获取集装箱号
List<String> selectfield = new ArrayList<>();
selectfield.add("yem_mainladingno yem_mainladingno");//提单号/运单号
selectfield.add("yem_im_encasement_ci.yem_encasenum yem_containernumbers");
DataSet yemImEncasement = ORM.create().queryDataSet(algoKey, "yem_im_encasement", String.join(",", selectfield), qFilter.toArray());
yemImEncasement = yemImEncasement.groupBy(new String[]{"yem_mainladingno"}).agg(new GroupConcatFunction(),"yem_containernumbers","yem_containernumber").finish();
yemImEncasement = yemImEncasement.groupBy(new String[]{"yem_mainladingno"}).agg(new GroupConcatFunction(), "yem_containernumbers", "yem_containernumber").finish();
//订舱通知单左连接装箱单
yemShippingdetails = yemShippingdetails.leftJoin(yemImEncasement)
.on("yem_noticeno","yem_mainladingno")
.select(RptUtil.getDataSetFiledAlias(yemShippingdetails),RptUtil.getDataSetFiledAlias(yemImEncasement))
.on("yem_noticeno", "yem_mainladingno")
.select(RptUtil.getDataSetFiledAlias(yemShippingdetails), RptUtil.getDataSetFiledAlias(yemImEncasement))
.finish();
yemShippingdetails = yemShippingdetails.select(String.join(",", RptUtil.getDataSetFiledAlias(yemShippingdetails)) +
",case when yem_noticeno != '' THEN yem_noticeno else yem_housebillofladnum end yem_ladingnumbers");
@ -194,7 +198,7 @@ public class ShipmentsChedulePlugin extends AbstractReportListDataPlugin {
}
/**
* @return
* @return 订舱通知单
*/
private DataSet yemContainer() {
QFilter qFilter = getBaseQFilter();
@ -203,7 +207,7 @@ public class ShipmentsChedulePlugin extends AbstractReportListDataPlugin {
selectfields.add("yem_es_materialinfo.yem_sourcebillno_d yem_sourcebillno_d");//提单号/运单号
DataSet yemShippingdetails = ORM.create().queryDataSet(algoKey, "yem_es_storagetrans", String.join(",", selectfields), qFilter.toArray());
yemShippingdetails = yemShippingdetails
.groupBy(new String[]{"storagetransids"}).agg(new GroupConcatFunctionByComma(),"yem_sourcebillno_d","yem_shipment")
.groupBy(new String[]{"storagetransids"}).agg(new GroupConcatFunctionByComma(), "yem_sourcebillno_d", "yem_shipment")
.finish();
DataSet yemContainernumber = yemContainernumber();
yemShippingdetails = yemShippingdetails.leftJoin(yemContainernumber)
@ -223,7 +227,7 @@ public class ShipmentsChedulePlugin extends AbstractReportListDataPlugin {
QFilter qFilter = getBaseQFilter();
List<String> selectfields = new ArrayList<>();
selectfields.add("id shippingdetailsid");
selectfields.add("yem_saleorderno yem_contractnumber");//外销合同号
// selectfields.add("yem_saleorderno yem_contractnumbers");//外销合同号
selectfields.add("yem_issinosurecon yem_insurancecontract");//是否信保合同
selectfields.add("yem_operator.name yem_salesman");//销售员
selectfields.add("yem_customer.name yem_customername");//客户名称
@ -233,6 +237,7 @@ public class ShipmentsChedulePlugin extends AbstractReportListDataPlugin {
return ORM.create().queryDataSet(algoKey, "yem_shippingdetails", String.join(",", selectfields), qFilter.toArray());
}
/**
* 整机配件货款延付申请单
*
@ -256,10 +261,21 @@ public class ShipmentsChedulePlugin extends AbstractReportListDataPlugin {
QFilter qFilter = getBaseQFilter();
List<String> selectfields = new ArrayList<>();
selectfields.add("id delivernoticeid");
selectfields.add("TO_CHAR(yem_bizdate, 'yyyy-MM-dd') yem_datebusiness");//发货日期
selectfields.add("yem_bizdate yem_annual");//发货日期
selectfields.add("yem_sourcebillid delivernoticeyem_sourcebillid");
DataSet yemShippingdetails = ORM.create().queryDataSet(algoKey, "yem_es_delivernotice", String.join(",", selectfields), qFilter.toArray());
return yemShippingdetails;
} /**
* 销售出库
*/
private DataSet delivernotice() {
QFilter qFilter = getBaseQFilter();
List<String> selectfields = new ArrayList<>();
selectfields.add("TO_CHAR(yem_bizdate, 'yyyy-MM-dd') yem_datebus");//发货日期
selectfields.add("yem_sourcebillid delivernoticebillid");
DataSet yemShippingdetails = ORM.create().queryDataSet(algoKey, "yem_es_delivernotice", String.join(",", selectfields), qFilter.toArray());
yemShippingdetails = yemShippingdetails.groupBy(new String[]{"delivernoticebillid"}).agg(new GroupTopOneFunction(),"yem_datebus","yem_datebusiness").finish();
return yemShippingdetails;
}
}

View File

@ -17,6 +17,7 @@ import kd.bos.servicehelper.operation.SaveServiceHelper;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Date;
/**
* @Description: 订舱通知单_信保回填
@ -96,7 +97,10 @@ public class StorageTransEdit_xbs extends AbstractBillPlugIn {
if ("statusconvert_s".equals(operateKey)) {
DynamicObjectCollection collection = dataEntity.getDynamicObjectCollection("yem_creditdetail");
for (DynamicObject dynamicObject : collection) {
dynamicObject.set("yem_creditstatus_e", "A");
Date yemYearE = dynamicObject.getDate("yem_year_e");
if (yemYearE!=null) {
dynamicObject.set("yem_creditstatus_e", "A");
}
}
SaveServiceHelper.update(dataEntity);
view.invokeOperation("refresh");