594 lines
		
	
	
		
			53 KiB
		
	
	
	
		
			Java
		
	
	
	
			
		
		
	
	
			594 lines
		
	
	
		
			53 KiB
		
	
	
	
		
			Java
		
	
	
	
 | 
						|
package tqq9.lc123.cloud.app.plugin.form.pm;
 | 
						|
 | 
						|
import kd.bos.algo.DataSet;
 | 
						|
import kd.bos.bill.BillShowParameter;
 | 
						|
import kd.bos.coderule.api.CodeRuleInfo;
 | 
						|
import kd.bos.dataentity.entity.DynamicObject;
 | 
						|
import kd.bos.dataentity.entity.DynamicObjectCollection;
 | 
						|
import kd.bos.dataentity.utils.StringUtils;
 | 
						|
import kd.bos.db.DB;
 | 
						|
import kd.bos.db.DBRoute;
 | 
						|
import kd.bos.entity.datamodel.IDataModel;
 | 
						|
import kd.bos.form.CloseCallBack;
 | 
						|
import kd.bos.form.ShowType;
 | 
						|
import kd.bos.form.control.events.ItemClickEvent;
 | 
						|
import kd.bos.form.plugin.AbstractFormPlugin;
 | 
						|
import kd.bos.logging.Log;
 | 
						|
import kd.bos.logging.LogFactory;
 | 
						|
import kd.bos.orm.ORM;
 | 
						|
import kd.bos.orm.query.QCP;
 | 
						|
import kd.bos.orm.query.QFilter;
 | 
						|
import kd.bos.servicehelper.BusinessDataServiceHelper;
 | 
						|
import kd.bos.servicehelper.QueryServiceHelper;
 | 
						|
import kd.bos.servicehelper.coderule.CodeRuleServiceHelper;
 | 
						|
import kd.bos.servicehelper.operation.SaveServiceHelper;
 | 
						|
import kd.bos.servicehelper.user.UserServiceHelper;
 | 
						|
import kd.sdk.plugin.Plugin;
 | 
						|
 | 
						|
import java.math.BigDecimal;
 | 
						|
import java.util.*;
 | 
						|
 | 
						|
/**
 | 
						|
 * 采购建议报表
 | 
						|
 */
 | 
						|
public class PurSuggestRptFromPlugin extends AbstractFormPlugin implements Plugin {
 | 
						|
    private final static Log logger = LogFactory.getLog(PurSuggestRptFromPlugin.class);
 | 
						|
    private static DynamicObject BILLTYPE;
 | 
						|
    private static DynamicObject BILLTYPE1;
 | 
						|
    private static DynamicObject BIZTYPE;
 | 
						|
    private static DynamicObject LINETYPE;
 | 
						|
 | 
						|
    static {
 | 
						|
        // 申请单
 | 
						|
        DynamicObject billtype = BusinessDataServiceHelper.loadSingle("bos_billtype", new QFilter[]{new QFilter("number", QCP.equals, "pm_PurApplyBill_STD_BT_S")});
 | 
						|
        BILLTYPE = billtype;
 | 
						|
        //订单
 | 
						|
        DynamicObject billtype1 = BusinessDataServiceHelper.loadSingle("bos_billtype", new QFilter[]{new QFilter("number", QCP.equals, "pm_PurOrderBill_STD_BT_S")});
 | 
						|
        BILLTYPE1 = billtype1;
 | 
						|
 | 
						|
        DynamicObject biztype = BusinessDataServiceHelper.loadSingle("bd_biztype", new QFilter[]{new QFilter("number", QCP.equals, "110")});
 | 
						|
        BIZTYPE = biztype;
 | 
						|
        DynamicObject linetype = BusinessDataServiceHelper.loadSingle("bd_linetype", new QFilter[]{new QFilter("number", QCP.equals, "010")});
 | 
						|
        LINETYPE = linetype;
 | 
						|
    }
 | 
						|
 | 
						|
 | 
						|
    @Override
 | 
						|
    public void registerListener(EventObject e) {
 | 
						|
        super.registerListener(e);
 | 
						|
        this.addItemClickListeners("tbmain");
 | 
						|
    }
 | 
						|
 | 
						|
    @Override
 | 
						|
    public void itemClick(ItemClickEvent evt) {
 | 
						|
        super.itemClick(evt);
 | 
						|
        String itemKey = evt.getItemKey();
 | 
						|
        IDataModel model = this.getModel();
 | 
						|
        DynamicObject dataEntity = model.getDataEntity(true);
 | 
						|
        if ("tqq9_query".equals(itemKey)) {
 | 
						|
            //清除分录数据
 | 
						|
            DynamicObjectCollection entryentity = dataEntity.getDynamicObjectCollection("tqq9_pursuggestrptentry");
 | 
						|
            if (entryentity.size() != 0) {
 | 
						|
                entryentity.clear();
 | 
						|
            }
 | 
						|
            //业务归属查询
 | 
						|
            QFilter qFilter = new QFilter("number", QCP.in, new String[]{"SHLC", "BJLC", "GZLC", "CDLC"});
 | 
						|
            DynamicObject[] load = BusinessDataServiceHelper.load("bos_org", "id,number", qFilter.toArray());
 | 
						|
            Long sh = 0L;
 | 
						|
            Long bj = 0L;
 | 
						|
            Long gz = 0L;
 | 
						|
            Long cd = 0L;
 | 
						|
            for (int i = 0; load != null && i < load.length; i++) {
 | 
						|
                DynamicObject dynamicObject = load[i];
 | 
						|
                String number = dynamicObject.getString("number");
 | 
						|
                switch (number) {
 | 
						|
                    case "SHLC":
 | 
						|
                        sh = dynamicObject.getLong("id");
 | 
						|
                        break;
 | 
						|
                    case "BJLC":
 | 
						|
                        bj = dynamicObject.getLong("id");
 | 
						|
                        break;
 | 
						|
                    case "GZLC":
 | 
						|
                        gz = dynamicObject.getLong("id");
 | 
						|
                        break;
 | 
						|
                    case "CDLC":
 | 
						|
                        cd = dynamicObject.getLong("id");
 | 
						|
                        break;
 | 
						|
                }
 | 
						|
            }
 | 
						|
            DynamicObjectCollection tqq9_queryorg = dataEntity.getDynamicObjectCollection("tqq9_queryorg");
 | 
						|
            DynamicObjectCollection tqq9_querysku = dataEntity.getDynamicObjectCollection("tqq9_querysku");
 | 
						|
            List<String> org = new ArrayList<>();
 | 
						|
            List<String> sku = new ArrayList<>();
 | 
						|
            StringBuilder orgBuilder = new StringBuilder();
 | 
						|
            StringBuilder skuBuilder = new StringBuilder();
 | 
						|
            for (DynamicObject dynamicObject : tqq9_queryorg) {
 | 
						|
                String id = dynamicObject.getString("fbasedataid.id");
 | 
						|
                org.add(id);
 | 
						|
                orgBuilder.append(",").append(id);
 | 
						|
            }
 | 
						|
            for (DynamicObject dynamicObject : tqq9_querysku) {
 | 
						|
                String id = dynamicObject.getString("fbasedataid.id");
 | 
						|
                sku.add(id);
 | 
						|
                skuBuilder.append(",").append(id);
 | 
						|
            }
 | 
						|
            //物料Map
 | 
						|
            DynamicObject[] materials = BusinessDataServiceHelper.load("bd_material", "id,number,name,tqq9_brand,baseunit", null);
 | 
						|
            HashMap<Long, DynamicObject> materialMap = new HashMap<Long, DynamicObject>();
 | 
						|
            for (DynamicObject dynamicObject : materials) {
 | 
						|
                materialMap.put(dynamicObject.getLong("id"), dynamicObject);
 | 
						|
            }
 | 
						|
            //商城商品
 | 
						|
            DynamicObject[] goods = BusinessDataServiceHelper.load("tqq9_goodspackage", "id,number,name,tqq9_brand", null);
 | 
						|
            HashMap<Long, DynamicObject> goodMap = new HashMap<Long, DynamicObject>();
 | 
						|
            for (DynamicObject dynamicObject : goods) {
 | 
						|
                goodMap.put(dynamicObject.getLong("id"), dynamicObject);
 | 
						|
            }
 | 
						|
            //执行采购Map
 | 
						|
            DynamicObject[] operators = BusinessDataServiceHelper.load("bd_operator", "id,operatornumber,operatorname", null);
 | 
						|
            HashMap<Long, DynamicObject> operatorMap = new HashMap<Long, DynamicObject>();
 | 
						|
            for (DynamicObject dynamicObject : operators) {
 | 
						|
                operatorMap.put(dynamicObject.getLong("id"), dynamicObject);
 | 
						|
            }
 | 
						|
            //组织Map
 | 
						|
            DynamicObject[] adminorgs = BusinessDataServiceHelper.load("bos_adminorg", "id,number", null);
 | 
						|
            HashMap<Long, DynamicObject> adminorgMap = new HashMap<Long, DynamicObject>();
 | 
						|
            for (DynamicObject dynamicObject : adminorgs) {
 | 
						|
                adminorgMap.put(dynamicObject.getLong("id"), dynamicObject);
 | 
						|
            }
 | 
						|
 | 
						|
            QFilter warehouseF = new QFilter("number", QCP.in, new String[]{"001", "006"});
 | 
						|
            DynamicObject[] warehouses = BusinessDataServiceHelper.load("bd_warehouse", "id,number", warehouseF.toArray());
 | 
						|
            StringBuilder warehouseSb = new StringBuilder();
 | 
						|
            for (DynamicObject warehouse : warehouses) {
 | 
						|
                String id = warehouse.getString("id");
 | 
						|
                warehouseSb.append(",'").append(id).append("'");
 | 
						|
            }
 | 
						|
 | 
						|
            DataSet materialpurchaseinfoDataSet = QueryServiceHelper.queryDataSet(this.getClass().getName(),
 | 
						|
                    "bd_materialpurchaseinfo",
 | 
						|
                    "id as tqq9_purordermaterial,masterid as tqq9_material ",
 | 
						|
                    new QFilter[]{},
 | 
						|
                    null);
 | 
						|
 | 
						|
            //商城商品
 | 
						|
            String goodspackagesql = "/*dialect*/select t1.fid tqq9_sku,t1.fk_tqq9_isauto tqq9_isauto,t1.fk_tqq9_mater tqq9_material,t1.fk_tqq9_skuno tqq9_sku_lc,t1.fcreateorgid tqq9_org,\n" +
 | 
						|
                    "t1.fk_tqq9_purchaser tqq9_purchaser,t1.fk_tqq9_onsale tqq9_onsale ,t1.fk_tqq9_totalupstock tqq9_totalupstock from tk_tqq9_goodspackage t1 where fstatus ='C' \n";
 | 
						|
            //即时库存表
 | 
						|
            String realbalancesql = "/*dialect*//*dialect*/select '1' tqq9_isauto,fmaterialid tqq9_material,forgid tqq9_org,sum(case when forgid=" + sh + " then fqty else 0 end) tqq9_shinventory, \n" +
 | 
						|
                    "sum(case when forgid=" + bj + " then fqty else 0 end) tqq9_bjinventory,sum(case when forgid=" + gz + " then fqty else 0 end) tqq9_gzinventory,\n" +
 | 
						|
                    "sum(case when forgid=" + cd + " then fqty else 0 end) tqq9_cdinventory\n" +
 | 
						|
                    "from t_im_inv_realbalance  group by fmaterialid,forgid";
 | 
						|
 | 
						|
//            //即时库存表
 | 
						|
//            String realbalancesql = "/*dialect*//*dialect*/select '1' tqq9_isauto,fmaterialid tqq9_material,forgid tqq9_org,sum(case when forgid='"+sh+"' then fqty else 0 end) tqq9_shinventory, \n" +
 | 
						|
//                    "sum(case when forgid='"+bj+"' then fqty else 0 end) tqq9_bjinventory,sum(case when forgid='"+gz+"' then fqty else 0 end) tqq9_gzinventory,\n" +
 | 
						|
//                    "sum(case when forgid='"+cd+"' then fqty else 0 end) tqq9_cdinventory\n" +
 | 
						|
//                    "from t_im_inv_realbalance  group by fmaterialid,forgid";
 | 
						|
 | 
						|
            //销售出库
 | 
						|
            String saloutbillsql = "/*dialect*/ SELECT sum(case when t1.fbiztime>= CURRENT_DATE - INTERVAL '90 days' and forgid=" + sh + " then t2.fqty else 0 end)/3 tqq9_permonthsales_sh,\n" +
 | 
						|
                    "sum(case when t1.fbiztime>= CURRENT_DATE - INTERVAL '90 days' and forgid=" + bj + " then t2.fqty else 0 end)/3 tqq9_permonthsales_bj,\n" +
 | 
						|
                    "sum(case when t1.fbiztime>= CURRENT_DATE - INTERVAL '90 days' and forgid=" + gz + " then t2.fqty else 0 end)/3 tqq9_permonthsales_gz,\n" +
 | 
						|
                    "sum(case when t1.fbiztime>= CURRENT_DATE - INTERVAL '90 days' and forgid=" + cd + " then t2.fqty else 0 end)/3 tqq9_permonthsales_cd,\n" +
 | 
						|
                    "sum(case when t1.fbiztime>= CURRENT_DATE - INTERVAL '90 days' and forgid=" + sh + " then t2.fqty else 0 end) tqq9_totalqty_sh,\n" +
 | 
						|
                    "sum(case when t1.fbiztime>= CURRENT_DATE - INTERVAL '90 days' and forgid=" + bj + " then t2.fqty else 0 end) tqq9_totalqty_bj,\n" +
 | 
						|
                    "sum(case when t1.fbiztime>= CURRENT_DATE - INTERVAL '90 days' and forgid=" + gz + " then t2.fqty else 0 end) tqq9_totalqty_gz,\n" +
 | 
						|
                    "sum(case when t1.fbiztime>= CURRENT_DATE - INTERVAL '90 days' and forgid=" + cd + " then t2.fqty else 0 end) tqq9_totalqty_cd,\n" +
 | 
						|
                    "t2.fk_tqq9_goodspackage tqq9_sku,t1.forgid tqq9_org\n" +
 | 
						|
                    "FROM t_im_saloutbill t1,t_im_saloutbillentry t2 WHERE t1.fid = t2.fid AND t1.fbillstatus = 'C'GROUP BY t2.fk_tqq9_goodspackage,t1.forgid";
 | 
						|
 | 
						|
            //采购订单
 | 
						|
            String purorderbillsql = "/*dialect*/select '1' tqq9_isauto,t2.fmaterialid tqq9_purordermaterial,t1.forgid tqq9_org,\n" +
 | 
						|
                    "sum(CASE WHEN t1.fclosestatus='A' and forgid=" + sh + " then t2.fqty-t3.finvqty ELSE 0 END) tqq9_inventory_sh,\n" +
 | 
						|
                    "sum(CASE WHEN t1.fclosestatus='A' and forgid=" + bj + " then t2.fqty-t3.finvqty ELSE 0 END) tqq9_inventory_bj,\n" +
 | 
						|
                    "sum(CASE WHEN t1.fclosestatus='A' and forgid=" + gz + " then t2.fqty-t3.finvqty ELSE 0 END) tqq9_inventory_gz,\n" +
 | 
						|
                    "sum(CASE WHEN t1.fclosestatus='A' and forgid=" + cd + " then t2.fqty-t3.finvqty ELSE 0 END) tqq9_inventory_cd \n" +
 | 
						|
                    "from t_pm_purorderbill t1,t_pm_purorderbillentry t2,t_pm_purorderbillentry_r t3 where t1.fid=t2.fid and t2.fid=t3.fid and t1.fbillstatus='C' GROUP BY t2.fmaterialid,t1.forgid";
 | 
						|
 | 
						|
            //占单库存-上海
 | 
						|
            String onordersql_sh = "/*dialect*/SELECT cInvCode as tqq9_sku_lc,SUM(iQuantity) as tqq9_onorderinventory_SH from SA_SalesOrderMaster_SH ma(nolock) \n" +
 | 
						|
                    "left join SA_SalesOrderDetail_SH de(nolock) on ma.somid =de.somid  where Status in('新增','已审核') and cInvoiceTitle not like '%上海励齿%' \n" +
 | 
						|
                    "and cInvoiceTitle not like '%北京励齿%' and cInvoiceTitle not like '%广州励齿%' and cinvcode is not null GROUP BY cInvCode";
 | 
						|
 | 
						|
            //占单库存-北京
 | 
						|
            String onordersql_bj = "/*dialect*/SELECT cInvCode as tqq9_sku_lc,SUM(iQuantity) as tqq9_onorderinventory_BJ from SA_SalesOrderMaster_BJ ma(nolock) \n" +
 | 
						|
                    "left join SA_SalesOrderDetail_BJ de(nolock) on ma.somid =de.somid  where Status in('新增','已审核') and cInvoiceTitle not like '%上海励齿%' \n" +
 | 
						|
                    "and cInvoiceTitle not like '%北京励齿%' and cInvoiceTitle not like '%广州励齿%' and cinvcode is not null GROUP BY cInvCode";
 | 
						|
 | 
						|
            //占单库存-广州
 | 
						|
            String onordersql_gz = "/*dialect*/SELECT cInvCode as tqq9_sku_lc,SUM(iQuantity) as tqq9_onorderinventory_GZ from SA_SalesOrderMaster_GZ ma(nolock) \n" +
 | 
						|
                    "left join SA_SalesOrderDetail_GZ de(nolock) on ma.somid =de.somid  where Status in('新增','已审核') and cInvoiceTitle not like '%上海励齿%' \n" +
 | 
						|
                    "and cInvoiceTitle not like '%北京励齿%' and cInvoiceTitle not like '%广州励齿%' and cinvcode is not null GROUP BY cInvCode";
 | 
						|
 | 
						|
//            //排名-上海
 | 
						|
//            String range_sh="/*dialect*/SELECT cInvCode as tqq9_sku_lc, CASE WHEN SUM(RowNum) = 0 THEN '其他' WHEN SUM(RowNum) <= 100 THEN '前一百' WHEN SUM(RowNum) <= 500 THEN '前五百' \n" +
 | 
						|
//                    "WHEN SUM(RowNum) <= 1000 THEN '前一千' WHEN SUM(RowNum) <= 2000 THEN '前两千' END as tqq9_ranking FROM ( SELECT cInvCode, ROW_NUMBER() OVER (ORDER BY SUM(isum) DESC) as RowNum \n" +
 | 
						|
//                    "FROM SA_SalesOrderMaster_SH ma(nolock) INNER JOIN SA_SalesOrderDetail_SH de(nolock) ON ma.somid = de.somid WHERE DATEDIFF(month, dInputDate,\n" +
 | 
						|
//                    "GETDATE()) BETWEEN 1 AND 3 AND cInvoiceTitle NOT LIKE '%上海励齿%' AND cInvoiceTitle NOT LIKE '%北京励齿%' AND cInvoiceTitle NOT LIKE '%广州励齿%' AND Status != '草稿' \n" +
 | 
						|
//                    "AND cInvCode NOT LIKE 'ZF%' GROUP BY  cInvCode ) AS a WHERE a.RowNum <= 2000 GROUP BY cInvCode";
 | 
						|
//
 | 
						|
//            //排名-北京
 | 
						|
//            String range_bj="/*dialect*/SELECT cInvCode as tqq9_sku_lc, CASE WHEN SUM(RowNum) = 0 THEN '其他' WHEN SUM(RowNum) <= 100 THEN '前一百' WHEN SUM(RowNum) <= 500 THEN '前五百' \n" +
 | 
						|
//                    "WHEN SUM(RowNum) <= 1000 THEN '前一千' WHEN SUM(RowNum) <= 2000 THEN '前两千' END as tqq9_ranking FROM ( SELECT cInvCode, ROW_NUMBER() OVER (ORDER BY SUM(isum) DESC) as RowNum \n" +
 | 
						|
//                    "FROM SA_SalesOrderMaster_SH ma(nolock) INNER JOIN SA_SalesOrderDetail_SH de(nolock) ON ma.somid = de.somid WHERE DATEDIFF(month, dInputDate,\n" +
 | 
						|
//                    "GETDATE()) BETWEEN 1 AND 3 AND cInvoiceTitle NOT LIKE '%上海励齿%' AND cInvoiceTitle NOT LIKE '%北京励齿%' AND cInvoiceTitle NOT LIKE '%广州励齿%' AND Status != '草稿' \n" +
 | 
						|
//                    "AND cInvCode NOT LIKE 'ZF%' GROUP BY  cInvCode ) AS a WHERE a.RowNum <= 2000 GROUP BY cInvCode";
 | 
						|
//
 | 
						|
//            //排名-广州
 | 
						|
//            String range_gz="/*dialect*/SELECT cInvCode as tqq9_sku_lc, CASE WHEN SUM(RowNum) = 0 THEN '其他' WHEN SUM(RowNum) <= 100 THEN '前一百' WHEN SUM(RowNum) <= 500 THEN '前五百' \n" +
 | 
						|
//                    "WHEN SUM(RowNum) <= 1000 THEN '前一千' WHEN SUM(RowNum) <= 2000 THEN '前两千' END as tqq9_ranking FROM ( SELECT cInvCode, ROW_NUMBER() OVER (ORDER BY SUM(isum) DESC) as RowNum \n" +
 | 
						|
//                    "FROM SA_SalesOrderMaster_SH ma(nolock) INNER JOIN SA_SalesOrderDetail_SH de(nolock) ON ma.somid = de.somid WHERE DATEDIFF(month, dInputDate,\n" +
 | 
						|
//                    "GETDATE()) BETWEEN 1 AND 3 AND cInvoiceTitle NOT LIKE '%上海励齿%' AND cInvoiceTitle NOT LIKE '%北京励齿%' AND cInvoiceTitle NOT LIKE '%广州励齿%' AND Status != '草稿' \n" +
 | 
						|
//                    "AND cInvCode NOT LIKE 'ZF%' GROUP BY  cInvCode ) AS a WHERE a.RowNum <= 2000 GROUP BY cInvCode";
 | 
						|
            //排名
 | 
						|
            String rangesql = "/*dialect*/SELECT cInvCode AS tqq9_sku_lc,CASE WHEN RowNum <= 100 THEN '前一百'WHEN RowNum <= 500 THEN '前五百'WHEN RowNum <= 1000 THEN '前一千'WHEN RowNum <= 2000 THEN '前两千'ELSE '其他'END AS tqq9_ranking\n" +
 | 
						|
                    "FROM (SELECT cInvCode,ROW_NUMBER() OVER (ORDER BY SUM(isum) DESC) AS RowNum FROM (SELECT cInvCode, isum FROM SA_SalesOrderMaster_SH ma (nolock)INNER JOIN SA_SalesOrderDetail_SH de (nolock) ON ma.somid = de.somid\n" +
 | 
						|
                    "WHERE DATEDIFF(MONTH, dInputDate, GETDATE()) BETWEEN 1 AND 3 AND cInvoiceTitle NOT LIKE '%上海励齿%'AND Status != '草稿'AND cInvCode NOT LIKE 'ZF%'UNION ALL SELECT cInvCode, isum FROM SA_SalesOrderMaster_BJ ma (nolock)\n" +
 | 
						|
                    "INNER JOIN SA_SalesOrderDetail_BJ de (nolock) ON ma.somid = de.somid WHERE DATEDIFF(MONTH, dInputDate, GETDATE()) BETWEEN 1 AND 3 AND cInvoiceTitle NOT LIKE '%北京励齿%' AND Status != '草稿' AND cInvCode NOT LIKE 'ZF%'\n" +
 | 
						|
                    "UNION ALL SELECT cInvCode, isum FROM SA_SalesOrderMaster_GZ ma (nolock) INNER JOIN SA_SalesOrderDetail_GZ de (nolock) ON ma.somid = de.somid WHERE DATEDIFF(MONTH, dInputDate, GETDATE()) BETWEEN 1 AND 3\n" +
 | 
						|
                    "AND cInvoiceTitle NOT LIKE '%广州励齿%'AND Status != '草稿' AND cInvCode NOT LIKE 'ZF%') AS combined GROUP BY cInvCode) AS a WHERE a.RowNum <= 2000 ORDER BY a.RowNum;";
 | 
						|
 | 
						|
            //已收货未上架数量
 | 
						|
            String pendingsql = "/*dialect*/select '1' tqq9_isauto,t2.fmaterialid tqq9_purordermaterial,t1.forgid tqq9_org,sum(t2.fk_tqq9_dhsl) tqq9_pendingqty \n" +
 | 
						|
                    "from t_pm_receiptnotice t1,t_pm_receiptnoticeentry t2 where t1.fid=t2.fid and fbillstatus='C' GROUP BY t2.fmaterialid,t1.forgid";
 | 
						|
 | 
						|
 | 
						|
            DataSet goodspackagDataSet = DB.queryDataSet(this.getClass().getName(), DBRoute.of("sys"), goodspackagesql);
 | 
						|
            DataSet realbalanceDataSet = DB.queryDataSet(this.getClass().getName(), DBRoute.of("scm"), realbalancesql);
 | 
						|
            DataSet saloutbillDataSet = DB.queryDataSet(this.getClass().getName(), DBRoute.of("scm"), saloutbillsql);
 | 
						|
            DataSet purorderbillDataSet = DB.queryDataSet(this.getClass().getName(), DBRoute.of("scm"), purorderbillsql);
 | 
						|
            DataSet onorder_shDataSet = DB.queryDataSet(this.getClass().getName(), DBRoute.of("lc"), onordersql_sh);
 | 
						|
            DataSet onorder_bjDataSet = DB.queryDataSet(this.getClass().getName(), DBRoute.of("lc"), onordersql_bj);
 | 
						|
            DataSet onorder_gzDataSet = DB.queryDataSet(this.getClass().getName(), DBRoute.of("lc"), onordersql_gz);
 | 
						|
//            DataSet range_shDataSet = DB.queryDataSet(this.getClass().getName(), DBRoute.of("lc"), range_sh);
 | 
						|
//            DataSet range_bjDataSet = DB.queryDataSet(this.getClass().getName(), DBRoute.of("lc"), range_bj);
 | 
						|
//            DataSet range_gzDataSet = DB.queryDataSet(this.getClass().getName(), DBRoute.of("lc"), range_gz);
 | 
						|
            DataSet rangeDataSet = DB.queryDataSet(this.getClass().getName(), DBRoute.of("lc"), rangesql);
 | 
						|
            DataSet pendingSet = DB.queryDataSet(this.getClass().getName(), DBRoute.of("scm"), pendingsql);
 | 
						|
            goodspackagDataSet = goodspackagDataSet.leftJoin(realbalanceDataSet).on("tqq9_material", "tqq9_material").on("tqq9_isauto", "tqq9_isauto").on("tqq9_org", "tqq9_org").select("tqq9_sku", "tqq9_org", "tqq9_isauto", "tqq9_material", "tqq9_sku_lc", "tqq9_purchaser", "tqq9_onsale", "tqq9_totalupstock",
 | 
						|
                    "tqq9_shinventory", "tqq9_bjinventory", "tqq9_gzinventory", "tqq9_cdinventory", "case  when tqq9_org= " + sh + " then tqq9_shinventory when tqq9_org= " + bj + " then tqq9_bjinventory when tqq9_org= " + gz + " then tqq9_gzinventory when tqq9_org= " + cd + " then tqq9_cdinventory else 0 end tqq9_totalinventory").finish();
 | 
						|
            goodspackagDataSet = goodspackagDataSet.leftJoin(saloutbillDataSet).on("tqq9_sku", "tqq9_sku").on("tqq9_org", "tqq9_org").select("tqq9_sku", "tqq9_org", "tqq9_isauto", "tqq9_material", "tqq9_sku_lc", "tqq9_purchaser", "tqq9_onsale", "tqq9_totalupstock", "tqq9_shinventory", "tqq9_bjinventory",
 | 
						|
                    "tqq9_gzinventory", "tqq9_cdinventory", "tqq9_totalinventory", "tqq9_permonthsales_sh", "tqq9_permonthsales_bj", "tqq9_permonthsales_gz", "tqq9_permonthsales_cd",
 | 
						|
                    "tqq9_totalqty_sh", "tqq9_totalqty_bj", "tqq9_totalqty_gz", "tqq9_totalqty_cd").finish().addField("case  when tqq9_org= " + sh + " then tqq9_totalqty_sh when tqq9_org= " + bj + " then tqq9_totalqty_bj when tqq9_org= " + gz + " then tqq9_totalqty_gz when tqq9_org= " + cd + " then tqq9_totalqty_cd else 0 end", "tqq9_totalqty").addField("case  when tqq9_org= " + sh + " then tqq9_permonthsales_sh when tqq9_org= " + bj + " then tqq9_permonthsales_bj when tqq9_org= " + gz + " then tqq9_permonthsales_gz when tqq9_org= " + cd + " then tqq9_permonthsales_cd else 0 end", "tqq9_permonthsales");
 | 
						|
            purorderbillDataSet = purorderbillDataSet.leftJoin(materialpurchaseinfoDataSet).on("tqq9_purordermaterial", "tqq9_purordermaterial").select("tqq9_isauto", "tqq9_org", "tqq9_material", "tqq9_inventory_sh", "tqq9_inventory_bj", "tqq9_inventory_gz", "tqq9_inventory_cd").finish();
 | 
						|
            pendingSet = pendingSet.leftJoin(materialpurchaseinfoDataSet).on("tqq9_purordermaterial", "tqq9_purordermaterial").select("tqq9_isauto", "tqq9_org", "tqq9_material", "tqq9_pendingqty").finish();
 | 
						|
 | 
						|
            goodspackagDataSet = goodspackagDataSet.leftJoin(purorderbillDataSet).on("tqq9_isauto", "tqq9_isauto").on("tqq9_org", "tqq9_org").on("tqq9_material", "tqq9_material").select("tqq9_sku", "tqq9_org", "tqq9_isauto", "tqq9_material", "tqq9_sku_lc", "tqq9_purchaser", "tqq9_onsale", "tqq9_totalupstock", "tqq9_shinventory", "tqq9_bjinventory",
 | 
						|
                    "tqq9_gzinventory", "tqq9_cdinventory", "tqq9_totalinventory", "tqq9_permonthsales_sh", "tqq9_permonthsales_bj", "tqq9_permonthsales_gz", "tqq9_permonthsales_cd", "tqq9_permonthsales", "tqq9_totalqty_sh", "tqq9_totalqty_bj", "tqq9_totalqty_gz", "tqq9_totalqty_cd", "tqq9_totalqty", "tqq9_inventory_sh", "tqq9_inventory_bj", "tqq9_inventory_gz", "tqq9_inventory_cd",
 | 
						|
                    "case when tqq9_org= " + sh + " and tqq9_shinventory <> 0 and tqq9_permonthsales_sh <> 0  then tqq9_shinventory/tqq9_permonthsales_sh else -1 end tqq9_shsaledates", "case when tqq9_org= " + bj + " and tqq9_bjinventory <> 0 and tqq9_permonthsales_bj <> 0  then tqq9_bjinventory/tqq9_permonthsales_bj else -1 end tqq9_bjsaledates",
 | 
						|
                    "case when tqq9_org= " + gz + " and tqq9_gzinventory <> 0 and tqq9_permonthsales_gz <> 0  then tqq9_gzinventory/tqq9_permonthsales_gz else -1 end tqq9_gzsaledates", "case when tqq9_org= " + cd + " and tqq9_cdinventory <> 0 and tqq9_permonthsales_cd <> 0  then tqq9_cdinventory/tqq9_permonthsales_cd else -1 end tqq9_cdsaledates",
 | 
						|
                    "tqq9_permonthsales*0.5 tqq9_safeinventory").finish().addField("case  when tqq9_org= " + sh + " then tqq9_shsaledates when tqq9_org= " + bj + " then tqq9_bjsaledates when tqq9_org= " + gz + " then tqq9_gzsaledates when tqq9_org= " + cd + " then tqq9_cdsaledates else 0 end", "tqq9_saledates").addField("case  when tqq9_org= " + sh + " then tqq9_inventory_sh when tqq9_org= " + bj + " then tqq9_inventory_bj when tqq9_org= " + gz + " then tqq9_inventory_gz when tqq9_org= " + cd + " then tqq9_inventory_cd else 0 end", "tqq9_oninventory");
 | 
						|
            goodspackagDataSet = goodspackagDataSet.leftJoin(onorder_shDataSet).on("tqq9_sku_lc", "tqq9_sku_lc").select("tqq9_sku", "tqq9_org", "tqq9_isauto", "tqq9_material", "tqq9_sku_lc", "tqq9_purchaser", "tqq9_onsale", "tqq9_totalupstock", "tqq9_shinventory", "tqq9_bjinventory",
 | 
						|
                            "tqq9_gzinventory", "tqq9_cdinventory", "tqq9_totalinventory", "tqq9_permonthsales_sh", "tqq9_permonthsales_bj", "tqq9_permonthsales_gz", "tqq9_permonthsales_cd", "tqq9_permonthsales", "tqq9_totalqty_sh", "tqq9_totalqty_bj", "tqq9_totalqty_gz", "tqq9_totalqty_cd", "tqq9_totalqty", "tqq9_inventory_sh", "tqq9_inventory_bj", "tqq9_inventory_gz", "tqq9_inventory_cd", "tqq9_oninventory",
 | 
						|
                            "tqq9_shsaledates", "tqq9_bjsaledates", "tqq9_gzsaledates", "tqq9_cdsaledates", "tqq9_saledates", "tqq9_safeinventory", "tqq9_onorderinventory_SH").finish().addField("CASE WHEN tqq9_saledates = -1 THEN CASE WHEN tqq9_saledates = 0 AND tqq9_totalqty = 0 THEN '需关注' WHEN tqq9_saledates <> 0 AND tqq9_totalqty = 0 THEN '滞销'\n" +
 | 
						|
                            "WHEN tqq9_totalqty <> 0 AND tqq9_saledates = 0 THEN '急需备货' END ELSE CASE WHEN tqq9_saledates <= 0.5 THEN '急需备货'  WHEN tqq9_saledates > 0.5 AND tqq9_saledates <= 2 THEN '需备货'\n" +
 | 
						|
                            "WHEN tqq9_saledates > 2 AND tqq9_saledates <= 4.5 THEN '不需备货' WHEN tqq9_saledates > 4.5 THEN '滞销' END END", "tqq9_remark").
 | 
						|
                    leftJoin(onorder_bjDataSet).on("tqq9_sku_lc", "tqq9_sku_lc").select("tqq9_sku", "tqq9_org", "tqq9_isauto", "tqq9_material", "tqq9_sku_lc", "tqq9_purchaser", "tqq9_onsale", "tqq9_totalupstock", "tqq9_shinventory", "tqq9_bjinventory",
 | 
						|
                            "tqq9_gzinventory", "tqq9_cdinventory", "tqq9_totalinventory", "tqq9_permonthsales_sh", "tqq9_permonthsales_bj", "tqq9_permonthsales_gz", "tqq9_permonthsales_cd", "tqq9_permonthsales", "tqq9_totalqty_sh", "tqq9_totalqty_bj", "tqq9_totalqty_gz", "tqq9_totalqty_cd", "tqq9_totalqty", "tqq9_inventory_sh", "tqq9_inventory_bj", "tqq9_inventory_gz", "tqq9_inventory_cd", "tqq9_oninventory",
 | 
						|
                            "tqq9_shsaledates", "tqq9_bjsaledates", "tqq9_gzsaledates", "tqq9_cdsaledates", "tqq9_saledates", "tqq9_safeinventory", "case when tqq9_remark='急需备货' then tqq9_permonthsales*2-tqq9_oninventory-tqq9_totalinventory else null end tqq9_suppleinventory", "tqq9_onorderinventory_SH", "tqq9_onorderinventory_BJ", "tqq9_remark").finish().
 | 
						|
                    leftJoin(onorder_gzDataSet).on("tqq9_sku_lc", "tqq9_sku_lc").select("tqq9_sku", "tqq9_org", "tqq9_isauto", "tqq9_material", "tqq9_sku_lc", "tqq9_purchaser", "tqq9_onsale", "tqq9_totalupstock", "tqq9_shinventory", "tqq9_bjinventory",
 | 
						|
                            "tqq9_gzinventory", "tqq9_cdinventory", "tqq9_totalinventory", "tqq9_permonthsales_sh", "tqq9_permonthsales_bj", "tqq9_permonthsales_gz", "tqq9_permonthsales_cd", "tqq9_permonthsales", "tqq9_totalqty_sh", "tqq9_totalqty_bj", "tqq9_totalqty_gz", "tqq9_totalqty_cd", "tqq9_totalqty", "tqq9_inventory_sh", "tqq9_inventory_bj", "tqq9_inventory_gz", "tqq9_inventory_cd", "tqq9_oninventory",
 | 
						|
                            "tqq9_shsaledates", "tqq9_bjsaledates", "tqq9_gzsaledates", "tqq9_cdsaledates", "tqq9_saledates", "tqq9_safeinventory", "tqq9_suppleinventory", "tqq9_onorderinventory_SH", "tqq9_onorderinventory_BJ", "tqq9_onorderinventory_GZ", "tqq9_remark").finish();
 | 
						|
            goodspackagDataSet = goodspackagDataSet.leftJoin(rangeDataSet).on("tqq9_sku_lc", "tqq9_sku_lc").select("tqq9_sku", "tqq9_org", "tqq9_isauto", "tqq9_material", "tqq9_sku_lc", "tqq9_purchaser", "tqq9_onsale", "tqq9_totalupstock", "tqq9_shinventory", "tqq9_bjinventory",
 | 
						|
                    "tqq9_gzinventory", "tqq9_cdinventory", "tqq9_totalinventory", "tqq9_permonthsales_sh", "tqq9_permonthsales_bj", "tqq9_permonthsales_gz", "tqq9_permonthsales_cd", "tqq9_permonthsales", "tqq9_totalqty_sh", "tqq9_totalqty_bj", "tqq9_totalqty_gz", "tqq9_totalqty_cd", "tqq9_totalqty", "tqq9_inventory_sh", "tqq9_inventory_bj", "tqq9_inventory_gz", "tqq9_inventory_cd", "tqq9_oninventory",
 | 
						|
                    "tqq9_shsaledates", "tqq9_bjsaledates", "tqq9_gzsaledates", "tqq9_cdsaledates", "tqq9_saledates", "tqq9_remark", "tqq9_safeinventory", "tqq9_suppleinventory", "tqq9_onorderinventory_SH", "tqq9_onorderinventory_BJ", "tqq9_onorderinventory_GZ", "case  when tqq9_org= " + sh + " then tqq9_onorderinventory_SH when tqq9_org= " + bj + " then tqq9_onorderinventory_BJ when tqq9_org= " + gz + " then tqq9_onorderinventory_GZ  else 0 end tqq9_onorderinventory",
 | 
						|
                    "case when tqq9_shsaledates > 4.5 or tqq9_shsaledates = -1 then tqq9_shinventory else 0 end tqq9_slowinv_sh", "case when tqq9_bjsaledates > 4.5 or tqq9_bjsaledates = -1 then tqq9_bjinventory else 0 end tqq9_slowinv_bj",
 | 
						|
                    "case when tqq9_gzsaledates > 4.5 or tqq9_gzsaledates = -1 then tqq9_gzinventory else 0 end tqq9_slowinv_gz", "case when tqq9_cdsaledates > 4.5 or tqq9_cdsaledates = -1 then tqq9_cdinventory else 0 end tqq9_slowinv_cd", "tqq9_ranking").finish().addField("case when tqq9_onorderinventory <> 0 and tqq9_totalinventory <> 0 and tqq9_onorderinventory/tqq9_totalinventory>=0.8 then '需注意' else null end", "tqq9_onorderemark");
 | 
						|
            goodspackagDataSet = goodspackagDataSet.leftJoin(pendingSet).on("tqq9_isauto", "tqq9_isauto").on("tqq9_org", "tqq9_org").on("tqq9_material", "tqq9_material").select("tqq9_sku", "tqq9_org", "tqq9_isauto", "tqq9_material", "tqq9_sku_lc", "tqq9_purchaser", "tqq9_onsale", "tqq9_totalupstock", "tqq9_shinventory", "tqq9_bjinventory",
 | 
						|
                    "tqq9_gzinventory", "tqq9_cdinventory", "tqq9_totalinventory", "tqq9_permonthsales_sh", "tqq9_permonthsales_bj", "tqq9_permonthsales_gz", "tqq9_permonthsales_cd", "tqq9_permonthsales", "tqq9_totalqty_sh", "tqq9_totalqty_bj", "tqq9_totalqty_gz", "tqq9_totalqty_cd", "tqq9_totalqty", "tqq9_inventory_sh", "tqq9_inventory_bj", "tqq9_inventory_gz", "tqq9_inventory_cd", "tqq9_oninventory",
 | 
						|
                    "tqq9_shsaledates", "tqq9_bjsaledates", "tqq9_gzsaledates", "tqq9_cdsaledates", "tqq9_saledates", "tqq9_remark", "tqq9_safeinventory", "tqq9_suppleinventory", "tqq9_onorderinventory_SH", "tqq9_onorderinventory_BJ", "tqq9_onorderinventory_GZ", "case  when tqq9_org= " + sh + " then tqq9_onorderinventory_SH when tqq9_org= " + bj + " then tqq9_onorderinventory_BJ when tqq9_org= " + gz + " then tqq9_onorderinventory_GZ  else 0 end tqq9_onorderinventory",
 | 
						|
                    "case when tqq9_shsaledates > 4.5 or tqq9_shsaledates = -1 then tqq9_shinventory else 0 end tqq9_slowinv_sh", "case when tqq9_bjsaledates > 4.5 or tqq9_bjsaledates = -1 then tqq9_bjinventory else 0 end tqq9_slowinv_bj",
 | 
						|
                    "case when tqq9_gzsaledates > 4.5 or tqq9_gzsaledates = -1 then tqq9_gzinventory else 0 end tqq9_slowinv_gz", "case when tqq9_cdsaledates > 4.5 or tqq9_cdsaledates = -1 then tqq9_cdinventory else 0 end tqq9_slowinv_cd", "tqq9_ranking", "tqq9_onorderemark", "tqq9_pendingqty").finish();
 | 
						|
 | 
						|
            goodspackagDataSet = goodspackagDataSet.where("1=1" + ((!tqq9_queryorg.isEmpty()) ? " and tqq9_org in(" + orgBuilder.substring(1) + ")" : "") + ((!tqq9_querysku.isEmpty()) ? " and tqq9_sku in(" + skuBuilder.substring(1) + ")" : ""));
 | 
						|
 | 
						|
            DataSet copy1 = goodspackagDataSet.copy();
 | 
						|
            DynamicObjectCollection dynamicObjects = ORM.create().toPlainDynamicObjectCollection(copy1);
 | 
						|
            Iterator<DynamicObject> iterator = dynamicObjects.iterator();
 | 
						|
 | 
						|
            while (iterator.hasNext()) {
 | 
						|
                DynamicObject next = iterator.next();
 | 
						|
                DynamicObject entry = new DynamicObject(entryentity.getDynamicObjectType());
 | 
						|
                DynamicObject tqq9_sku = goodMap.get(next.getLong("tqq9_sku"));
 | 
						|
                DynamicObject tqq9_material = materialMap.get(next.getLong("tqq9_material"));
 | 
						|
                DynamicObject tqq9_org = adminorgMap.get(next.getLong("tqq9_org"));
 | 
						|
                entry.set("tqq9_sku", tqq9_sku);//tqq9_sku
 | 
						|
                entry.set("tqq9_material", tqq9_material);//物料
 | 
						|
                entry.set("tqq9_skuname", tqq9_sku.getString("name"));//名称
 | 
						|
                entry.set("tqq9_skubrand", tqq9_sku.getDynamicObject("tqq9_brand"));//品牌
 | 
						|
                entry.set("tqq9_unit", tqq9_material.getDynamicObject("baseunit"));//基本单位
 | 
						|
                entry.set("tqq9_org", tqq9_org);//业务归属(组织)
 | 
						|
                entry.set("tqq9_purchaser", operatorMap.get(next.getLong("tqq9_purchaser")));//执行采购
 | 
						|
                entry.set("tqq9_onsale", next.get("tqq9_onsale"));//上下架
 | 
						|
                entry.set("tqq9_totalupstock", next.get("tqq9_totalupstock"));//需上传总库存
 | 
						|
                entry.set("tqq9_shinventory", next.get("tqq9_shinventory"));//上海库存
 | 
						|
                entry.set("tqq9_bjinventory", next.get("tqq9_bjinventory"));//北京库存
 | 
						|
                entry.set("tqq9_gzinventory", next.get("tqq9_gzinventory"));//广州库存
 | 
						|
                entry.set("tqq9_cdinventory", next.get("tqq9_cdinventory"));//成都库存
 | 
						|
                if (StringUtils.equals("SHLC", tqq9_org.getString("number"))) {
 | 
						|
                    entry.set("tqq9_warename", "上海仓库");//仓库名称
 | 
						|
                } else if (StringUtils.equals("BJLC", tqq9_org.getString("number"))) {
 | 
						|
                    entry.set("tqq9_warename", "北京仓库");//仓库名称
 | 
						|
                } else if (StringUtils.equals("GZLC", tqq9_org.getString("number"))) {
 | 
						|
                    entry.set("tqq9_warename", "广州仓库");//仓库名称
 | 
						|
                } else if (StringUtils.equals("CDLC", tqq9_org.getString("number"))) {
 | 
						|
                    entry.set("tqq9_warename", "成都仓库");//仓库名称
 | 
						|
                }
 | 
						|
                entry.set("tqq9_totalinventory", next.get("tqq9_totalinventory"));//总仓库存
 | 
						|
                entry.set("tqq9_permonthsales_sh", next.get("tqq9_permonthsales_sh"));//上海月平均销量
 | 
						|
                entry.set("tqq9_permonthsales_bj", next.get("tqq9_permonthsales_bj"));//北京月平均销量
 | 
						|
                entry.set("tqq9_permonthsales_gz", next.get("tqq9_permonthsales_gz"));//广州月平均销量
 | 
						|
                entry.set("tqq9_permonthsales_cd", next.get("tqq9_permonthsales_cd"));//成都月平均销量
 | 
						|
                entry.set("tqq9_permonthsales", next.get("tqq9_permonthsales"));//月平均销量
 | 
						|
                entry.set("tqq9_totalqty_sh", next.get("tqq9_totalqty_sh"));//上海合计销量
 | 
						|
                entry.set("tqq9_totalqty_bj", next.get("tqq9_totalqty_bj"));//北京合计销量
 | 
						|
                entry.set("tqq9_totalqty_gz", next.get("tqq9_totalqty_gz"));//广州合计销量
 | 
						|
                entry.set("tqq9_totalqty_cd", next.get("tqq9_totalqty_cd"));//成都合计销量
 | 
						|
                entry.set("tqq9_totalqty", next.get("tqq9_totalqty"));//合计销量
 | 
						|
                entry.set("tqq9_shsaledates", next.get("tqq9_shsaledates"));//预计销售时间(上海)
 | 
						|
                entry.set("tqq9_bjsaledates", next.get("tqq9_bjsaledates"));//预计销售时间(北京)
 | 
						|
                entry.set("tqq9_gzsaledates", next.get("tqq9_gzsaledates"));//预计销售时间(广州)
 | 
						|
                entry.set("tqq9_cdsaledates", next.get("tqq9_cdsaledates"));//预计销售时间(成都)
 | 
						|
                entry.set("tqq9_saledates", next.get("tqq9_saledates"));//预计销售时间
 | 
						|
                entry.set("tqq9_remark", next.get("tqq9_remark"));//备货状态
 | 
						|
                entry.set("tqq9_safeinventory", next.get("tqq9_safeinventory"));//安全库存
 | 
						|
                entry.set("tqq9_inventory_sh", next.get("tqq9_inventory_sh"));//上海在途库存
 | 
						|
                entry.set("tqq9_inventory_bj", next.get("tqq9_inventory_bj"));//北京在途库存
 | 
						|
                entry.set("tqq9_inventory_gz", next.get("tqq9_inventory_gz"));//广州在途库存
 | 
						|
                entry.set("tqq9_inventory_cd", next.get("tqq9_inventory_cd"));//成都在途库存
 | 
						|
                entry.set("tqq9_oninventory", next.get("tqq9_oninventory"));//在途库存
 | 
						|
                entry.set("tqq9_suppleinventory", next.get("tqq9_suppleinventory"));//待补库存
 | 
						|
                entry.set("tqq9_pendingqty", next.get("tqq9_pendingqty"));//待补库存
 | 
						|
                entry.set("tqq9_onorderinventory_SH", next.get("tqq9_onorderinventory_SH"));//上海占单库存
 | 
						|
                entry.set("tqq9_onorderinventory_BJ", next.get("tqq9_onorderinventory_BJ"));//北京占单库存
 | 
						|
                entry.set("tqq9_onorderinventory_GZ", next.get("tqq9_onorderinventory_GZ"));//广州占单库存
 | 
						|
                entry.set("tqq9_onorderemark", next.get("tqq9_onorderemark"));//占单库存备注
 | 
						|
                entry.set("tqq9_slowinv_sh", next.get("tqq9_slowinv_sh"));//上海滞销库存
 | 
						|
                entry.set("tqq9_slowinv_bj", next.get("tqq9_slowinv_bj"));//北京滞销库存
 | 
						|
                entry.set("tqq9_slowinv_gz", next.get("tqq9_slowinv_gz"));//广州滞销库存
 | 
						|
                entry.set("tqq9_slowinv_cd", next.get("tqq9_slowinv_cd"));//成都滞销库存
 | 
						|
                entry.set("tqq9_ranking", next.get("tqq9_ranking"));// 排名
 | 
						|
                entryentity.add(entry);
 | 
						|
            }
 | 
						|
            dataEntity.set("tqq9_pursuggestrptentry", entryentity);
 | 
						|
            this.getView().updateView();
 | 
						|
        } else if (StringUtils.equals("tqq9_purapply", itemKey)) {
 | 
						|
            DynamicObjectCollection tqq9_pursuggestrptentry = dataEntity.getDynamicObjectCollection("tqq9_pursuggestrptentry");
 | 
						|
            DynamicObject dynamicObject = tqq9_pursuggestrptentry.get(0);
 | 
						|
            DynamicObject tqq9_org = dynamicObject.getDynamicObject("tqq9_org");
 | 
						|
            if(tqq9_org==null){
 | 
						|
                this.getView().showMessage("请先进行查询操作");
 | 
						|
                return;
 | 
						|
            }
 | 
						|
 | 
						|
            BillShowParameter param = new BillShowParameter();
 | 
						|
            param.setFormId("pm_purapplybill");
 | 
						|
            param.setCustomParam("pm_purapplybill", dataEntity);//采购建议报表单号
 | 
						|
            param.setCloseCallBack(new CloseCallBack(this, "pm_purapplybill"));
 | 
						|
            param.getOpenStyle().setShowType(ShowType.Modal);
 | 
						|
            this.getView().showForm(param);
 | 
						|
            //-------------------------
 | 
						|
//            DynamicObject purapplybill = BusinessDataServiceHelper.newDynamicObject("pm_purapplybill");
 | 
						|
//            DynamicObjectCollection dynamicObjectCollection = purapplybill.getDynamicObjectCollection("billentry");
 | 
						|
//
 | 
						|
//            long currentUserId = UserServiceHelper.getCurrentUserId();
 | 
						|
//            DynamicObject user = BusinessDataServiceHelper.loadSingle("bos_user", new QFilter[]{new QFilter("id", QCP.equals, currentUserId)});
 | 
						|
//            DynamicObjectCollection entryentity = user.getDynamicObjectCollection("entryentity");
 | 
						|
//            DynamicObject dept = null;
 | 
						|
//            for (DynamicObject dynamicObject : entryentity) {
 | 
						|
//                boolean ispartjob = dynamicObject.getBoolean("ispartjob");
 | 
						|
//                if (!ispartjob) {
 | 
						|
//                    dept = dynamicObject.getDynamicObject("dpt");
 | 
						|
//                }
 | 
						|
//            }
 | 
						|
//            DynamicObject org = BusinessDataServiceHelper.loadSingle("bos_org", new QFilter[]{new QFilter("name", QCP.equals, "励齿集团")});
 | 
						|
//            CodeRuleInfo vouCodeRule = CodeRuleServiceHelper.getCodeRule("pm_purapplybill",
 | 
						|
//                    purapplybill, org.getString("id"));
 | 
						|
//            String billno = CodeRuleServiceHelper.getNumber(vouCodeRule, purapplybill);//采购申请单编号
 | 
						|
//            DynamicObject currency = BusinessDataServiceHelper.loadSingle("bd_currency",
 | 
						|
//                    new QFilter[]{new QFilter("number", QCP.equals, "CNY")});//币别
 | 
						|
//            DynamicObject taxrate = BusinessDataServiceHelper.loadSingle("bd_taxrate",
 | 
						|
//                    new QFilter[]{new QFilter("number", QCP.equals, "V13")});//税率
 | 
						|
//            Date date = new Date();
 | 
						|
//            int i = 0;
 | 
						|
//            for (DynamicObject dynamicObject : tqq9_pursuggestrptentry) {
 | 
						|
//                if (dynamicObject.getBoolean("tqq9_ischange")) {
 | 
						|
//                    if (i == 0) {
 | 
						|
//                        purapplybill.set("org", org);//申请组织
 | 
						|
//                        purapplybill.set("dept", dept);//申请部门
 | 
						|
//                        purapplybill.set("bizuser", user);//申请人
 | 
						|
//                        purapplybill.set("currency", currency);//币别
 | 
						|
//                        purapplybill.set("creator", user);//创建人
 | 
						|
//                        purapplybill.set("lastupdateuser", user);//修改人
 | 
						|
//                        purapplybill.set("lastupdatetime", date);//修改时间
 | 
						|
//                        purapplybill.set("billno", billno);//采购申请单编号
 | 
						|
//                        purapplybill.set("billtype", BILLTYPE);//单据类型
 | 
						|
//                        purapplybill.set("biztype", BIZTYPE);//业务类型
 | 
						|
//                        purapplybill.set("biztime", date);//申请日期
 | 
						|
//                        purapplybill.set("billstatus", "A");//单据状态
 | 
						|
//                        purapplybill.set("closestatus", "A");//关闭状态
 | 
						|
//                        purapplybill.set("cancelstatus", "A");//作废状态
 | 
						|
//                        purapplybill.set("changestatus", "A");//变更状态
 | 
						|
//                        purapplybill.set("subversion", "1");//子版本号
 | 
						|
//                        purapplybill.set("version", "1");//版本号
 | 
						|
//                        purapplybill.set("tqq9_sfsyhf_sh", "false");//是否使用货返
 | 
						|
//                        purapplybill.set("tqq9_hshfsysl_sh", taxrate);//含税货返使用税率
 | 
						|
//                        purapplybill.set("tqq9_sfsyxf_sh", "false");//是否使用现返
 | 
						|
//                        purapplybill.set("tqq9_hsxfsysl_sh", taxrate);//含税现返使用税率
 | 
						|
//                        purapplybill.set("tqq9_sfsyhf_bj", "false");//是否使用货返
 | 
						|
//                        purapplybill.set("tqq9_hshfsysl_bj", taxrate);//含税货返使用税率
 | 
						|
//                        purapplybill.set("tqq9_sfsyxf_bj", "false");//是否使用现返
 | 
						|
//                        purapplybill.set("tqq9_hsxfsysl_bj", taxrate);//含税现返使用税率
 | 
						|
//                        purapplybill.set("tqq9_sfsyhf_gz", "false");//是否使用货返
 | 
						|
//                        purapplybill.set("tqq9_hshfsysl_gz", taxrate);//含税货返使用税率
 | 
						|
//                        purapplybill.set("tqq9_sfsyxf_gz", "false");//是否使用现返
 | 
						|
//                        purapplybill.set("tqq9_hsxfsysl_gz", taxrate);//含税现返使用税率
 | 
						|
//                    }
 | 
						|
//                    DynamicObject tqq9_org = dynamicObject.getDynamicObject("tqq9_org");//组织
 | 
						|
//                    DynamicObject tqq9_material = dynamicObject.getDynamicObject("tqq9_material");//物料
 | 
						|
//                    DynamicObject materialpurchaseinfo = BusinessDataServiceHelper.loadSingle("bd_materialpurchaseinfo",
 | 
						|
//                            new QFilter[]{new QFilter("masterid", QCP.equals, tqq9_material.getLong("id"))});//物料采购信息
 | 
						|
//                    BigDecimal tqq9_saledates = dynamicObject.getBigDecimal("tqq9_saledates");
 | 
						|
//                    DynamicObject dynamicObject1 = dynamicObjectCollection.addNew();
 | 
						|
//                    dynamicObject1.set("seq", i + 1);//分录号
 | 
						|
//                    dynamicObject1.set("material", materialpurchaseinfo);//物料
 | 
						|
//                    dynamicObject1.set("materialname", tqq9_material.getString("name"));//物料名称
 | 
						|
//                    dynamicObject1.set("unit", tqq9_material.getDynamicObject("baseunit"));//计量单位
 | 
						|
//                    dynamicObject1.set("baseunit", tqq9_material.getDynamicObject("baseunit"));//基本单位
 | 
						|
//                    dynamicObject1.set("rowclosestatus", "A");//行关闭状态
 | 
						|
//                    dynamicObject1.set("rowterminatestatus", "A");//行终止状态
 | 
						|
//                    dynamicObject1.set("entryrecorg", tqq9_org);//收货组织
 | 
						|
//                    dynamicObject1.set("entryreqorg", tqq9_org);//需求组织
 | 
						|
//                    dynamicObject1.set("entryreqdept", dept);//需求部门
 | 
						|
//                    dynamicObject1.set("reqdate", date);//需求日期
 | 
						|
//                    dynamicObject1.set("purdate", date);//建议采购日期
 | 
						|
//                    dynamicObject1.set("deliverdate", date);//交货日期
 | 
						|
//                    dynamicObject1.set("bomtime", date);//展BOM时间
 | 
						|
//                    dynamicObject1.set("entrychangetype", "B");//变更方式
 | 
						|
//                    dynamicObject1.set("linetype", LINETYPE);//行类型
 | 
						|
//                    dynamicObject1.set("linetype", LINETYPE);//行类型
 | 
						|
//                    dynamicObject1.set("entrycreator", user);//创建人
 | 
						|
//                    dynamicObject1.set("entryrecdept", tqq9_org);//收货部门
 | 
						|
//                    dynamicObject1.set("entrypurdept", tqq9_org);//采购部门
 | 
						|
//                    dynamicObject1.set("entryoperatorgroup", tqq9_org);//采购组
 | 
						|
//                    dynamicObject1.set("tqq9_expectsaletime", tqq9_saledates);//预计销售时间(月)
 | 
						|
//                    if (StringUtils.equals(tqq9_org.getString("number"), "SHLC")) {
 | 
						|
//                        dynamicObject1.set("tqq9_zgcgxj", tqq9_material.getBigDecimal("tqq9_maxprice_sh"));//最高采购限价
 | 
						|
//                        dynamicObject1.set("priceandtax", tqq9_material.getBigDecimal("tqq9_maxprice_sh"));//含税单价
 | 
						|
//                    } else if (StringUtils.equals(tqq9_org.getString("number"), "BJLC")) {
 | 
						|
//                        dynamicObject1.set("tqq9_zgcgxj", tqq9_material.getBigDecimal("tqq9_maxprice_bj"));//最高采购限价
 | 
						|
//                        dynamicObject1.set("priceandtax", tqq9_material.getBigDecimal("tqq9_maxprice_bj"));//含税单价
 | 
						|
//                    } else if (StringUtils.equals(tqq9_org.getString("number"), "GZLC")) {
 | 
						|
//                        dynamicObject1.set("tqq9_zgcgxj", tqq9_material.getBigDecimal("tqq9_maxprice_gz"));//最高采购限价
 | 
						|
//                        dynamicObject1.set("priceandtax", tqq9_material.getBigDecimal("tqq9_maxprice_gz"));//含税单价
 | 
						|
//                    }
 | 
						|
//                    dynamicObjectCollection.set(i, dynamicObject1);
 | 
						|
//                    i++;
 | 
						|
//                }
 | 
						|
//            }
 | 
						|
//            purapplybill.set("billentry", dynamicObjectCollection);
 | 
						|
//            SaveServiceHelper.save(new DynamicObject[]{purapplybill});
 | 
						|
//            BillShowParameter billShowParameter = new BillShowParameter();
 | 
						|
//            billShowParameter.getOpenStyle().setShowType(ShowType.Modal);
 | 
						|
//            billShowParameter.setFormId("pm_purapplybill");
 | 
						|
//            DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(purapplybill.getLong("id"), "pm_purapplybill");
 | 
						|
//            billShowParameter.setPkId(dynamicObject.get("id"));
 | 
						|
//            this.getView().showForm(billShowParameter);
 | 
						|
        } else if (StringUtils.equals("tqq9_pushcgdd", itemKey)) {
 | 
						|
            DynamicObjectCollection tqq9_pursuggestrptentry = dataEntity.getDynamicObjectCollection("tqq9_pursuggestrptentry");
 | 
						|
            DynamicObject dynamicObject = tqq9_pursuggestrptentry.get(0);
 | 
						|
            DynamicObject tqq9_org = dynamicObject.getDynamicObject("tqq9_org");
 | 
						|
            if(tqq9_org==null){
 | 
						|
                this.getView().showMessage("请先进行查询操作");
 | 
						|
                return;
 | 
						|
            }
 | 
						|
            BillShowParameter param = new BillShowParameter();
 | 
						|
            param.setFormId("pm_purorderbill");
 | 
						|
            param.setCustomParam("pm_purorderbill", dataEntity);//采购订单号
 | 
						|
            param.setCloseCallBack(new CloseCallBack(this, "pm_purorderbill"));
 | 
						|
            param.getOpenStyle().setShowType(ShowType.Modal);
 | 
						|
            this.getView().showForm(param);
 | 
						|
 | 
						|
            //----------------------------
 | 
						|
//            DynamicObject pm_purorderbill = BusinessDataServiceHelper.newDynamicObject("pm_purorderbill");
 | 
						|
//            DynamicObjectCollection dynamicObjectCollection = pm_purorderbill.getDynamicObjectCollection("billentry");
 | 
						|
//
 | 
						|
//            long currentUserId = UserServiceHelper.getCurrentUserId();
 | 
						|
//            DynamicObject user = BusinessDataServiceHelper.loadSingle("bos_user", new QFilter[]{new QFilter("id", QCP.equals, currentUserId)});
 | 
						|
//            DynamicObjectCollection entryentity = user.getDynamicObjectCollection("entryentity");
 | 
						|
//            DynamicObject dept = null;
 | 
						|
//            for (DynamicObject dynamicObject : entryentity) {
 | 
						|
//                boolean ispartjob = dynamicObject.getBoolean("ispartjob");
 | 
						|
//                if (!ispartjob) {
 | 
						|
//                    dept = dynamicObject.getDynamicObject("dpt");
 | 
						|
//                }
 | 
						|
//            }
 | 
						|
//            DynamicObject dynamicObject2 = tqq9_pursuggestrptentry.get(0);
 | 
						|
//            DynamicObject org = dynamicObject2.getDynamicObject("tqq9_org");//组织
 | 
						|
//            CodeRuleInfo vouCodeRule = CodeRuleServiceHelper.getCodeRule("pm_purorderbill",
 | 
						|
//                    pm_purorderbill, org.getString("id"));
 | 
						|
//            String billno = String.valueOf(new Date().getTime());//采购申请单编号
 | 
						|
////            String billno = CodeRuleServiceHelper.getNumber(vouCodeRule, pm_purorderbill);//采购申请单编号
 | 
						|
//            DynamicObject currency = BusinessDataServiceHelper.loadSingle("bd_currency",
 | 
						|
//                    new QFilter[]{new QFilter("number", QCP.equals, "CNY")});//币别
 | 
						|
//            DynamicObject taxrate = BusinessDataServiceHelper.loadSingle("bd_taxrate",
 | 
						|
//                    new QFilter[]{new QFilter("number", QCP.equals, "V13")});//税率
 | 
						|
//            Date date = new Date();
 | 
						|
//            int i = 0;
 | 
						|
//            for (DynamicObject dynamicObject : tqq9_pursuggestrptentry) {
 | 
						|
//                org = dynamicObject2.getDynamicObject("tqq9_org");//组织
 | 
						|
//                if (dynamicObject.getBoolean("tqq9_ischange")) {
 | 
						|
//                    if (i == 0) {
 | 
						|
//                        pm_purorderbill.set("org", org);//申请组织
 | 
						|
//                        pm_purorderbill.set("dept", dept);//申请部门
 | 
						|
//                        pm_purorderbill.set("currency", currency);//币别
 | 
						|
//                        pm_purorderbill.set("creator", user);//创建人
 | 
						|
//                        pm_purorderbill.set("lastupdateuser", user);//修改人
 | 
						|
//                        pm_purorderbill.set("lastupdatetime", date);//修改时间
 | 
						|
//                        pm_purorderbill.set("billno", billno);//采购订单编号
 | 
						|
//                        pm_purorderbill.set("billtype", BILLTYPE1);//单据类型
 | 
						|
//                        pm_purorderbill.set("biztype", BIZTYPE);//业务类型
 | 
						|
//                        pm_purorderbill.set("biztime", date);//申请日期
 | 
						|
//                        pm_purorderbill.set("billstatus", "A");//单据状态
 | 
						|
//                        pm_purorderbill.set("closestatus", "A");//关闭状态
 | 
						|
//                        pm_purorderbill.set("cancelstatus", "A");//作废状态
 | 
						|
//                        pm_purorderbill.set("changestatus", "A");//变更状态
 | 
						|
//                        pm_purorderbill.set("subversion", "1");//子版本号
 | 
						|
//                        pm_purorderbill.set("version", "1");//版本号
 | 
						|
//                        pm_purorderbill.set("tqq9_sfsyhf", "false");//是否使用货返
 | 
						|
//                        pm_purorderbill.set("tqq9_hshfsysl", taxrate);//含税货返使用税率
 | 
						|
//                        pm_purorderbill.set("tqq9_sfsyxf", "false");//是否使用现返
 | 
						|
//                        pm_purorderbill.set("tqq9_hsxfsysl", taxrate);//含税现返使用税率
 | 
						|
//                    }
 | 
						|
//                    DynamicObject tqq9_material = dynamicObject.getDynamicObject("tqq9_material");//物料
 | 
						|
//                    DynamicObject materialpurchaseinfo = BusinessDataServiceHelper.loadSingle("bd_materialpurchaseinfo",
 | 
						|
//                            new QFilter[]{new QFilter("masterid", QCP.equals, tqq9_material.getLong("id"))});//物料采购信息
 | 
						|
//                    BigDecimal tqq9_saledates = dynamicObject.getBigDecimal("tqq9_saledates");
 | 
						|
//                    DynamicObject dynamicObject1 = dynamicObjectCollection.addNew();
 | 
						|
//                    dynamicObject1.set("seq", i + 1);//分录号
 | 
						|
//                    dynamicObject1.set("material", materialpurchaseinfo);//物料
 | 
						|
//                    dynamicObject1.set("materialname", tqq9_material.getString("name"));//物料名称
 | 
						|
//                    dynamicObject1.set("unit", tqq9_material.getDynamicObject("baseunit"));//计量单位
 | 
						|
//                    dynamicObject1.set("baseunit", tqq9_material.getDynamicObject("baseunit"));//基本单位
 | 
						|
//                    dynamicObject1.set("tqq9_brand", tqq9_material.getDynamicObject("tqq9_brand"));//品牌
 | 
						|
//                    dynamicObject1.set("rowclosestatus", "A");//行关闭状态
 | 
						|
//                    dynamicObject1.set("rowterminatestatus", "A");//行终止状态
 | 
						|
//                    dynamicObject1.set("entryrecorg", org);//收货组织
 | 
						|
//                    dynamicObject1.set("entryreqorg", org);//需求组织
 | 
						|
//                    dynamicObject1.set("entryreqdept", dept);//需求部门
 | 
						|
//                    dynamicObject1.set("deliverdate", date);//交货日期
 | 
						|
//                    dynamicObject1.set("entrychangetype", "B");//变更方式
 | 
						|
//                    dynamicObject1.set("linetype", LINETYPE);//行类型
 | 
						|
//                    dynamicObject1.set("entrycreator", user);//创建人
 | 
						|
//                    dynamicObject1.set("entryrecdept", org);//收货部门
 | 
						|
//                    dynamicObject1.set("discounttype", "C");//折扣方式
 | 
						|
//                    dynamicObject1.set("tqq9_expectsaletime", tqq9_saledates);//预计销售时间(月)
 | 
						|
//                    if (StringUtils.equals(org.getString("number"), "SHLC")) {
 | 
						|
//                        dynamicObject1.set("tqq9_zgcgxj", tqq9_material.getBigDecimal("tqq9_maxprice_sh"));//最高采购限价
 | 
						|
//                        dynamicObject1.set("priceandtax", tqq9_material.getBigDecimal("tqq9_maxprice_sh"));//含税单价
 | 
						|
//                    } else if (StringUtils.equals(org.getString("number"), "BJLC")) {
 | 
						|
//                        dynamicObject1.set("tqq9_zgcgxj", tqq9_material.getBigDecimal("tqq9_maxprice_bj"));//最高采购限价
 | 
						|
//                        dynamicObject1.set("priceandtax", tqq9_material.getBigDecimal("tqq9_maxprice_bj"));//含税单价
 | 
						|
//                    } else if (StringUtils.equals(org.getString("number"), "GZLC")) {
 | 
						|
//                        dynamicObject1.set("tqq9_zgcgxj", tqq9_material.getBigDecimal("tqq9_maxprice_gz"));//最高采购限价
 | 
						|
//                        dynamicObject1.set("priceandtax", tqq9_material.getBigDecimal("tqq9_maxprice_gz"));//含税单价
 | 
						|
//                    }
 | 
						|
//                    dynamicObjectCollection.set(i, dynamicObject1);
 | 
						|
//                    i++;
 | 
						|
//                }
 | 
						|
//            }
 | 
						|
//            pm_purorderbill.set("billentry", dynamicObjectCollection);
 | 
						|
//            SaveServiceHelper.save(new DynamicObject[]{pm_purorderbill});
 | 
						|
//            BillShowParameter billShowParameter = new BillShowParameter();
 | 
						|
//            billShowParameter.getOpenStyle().setShowType(ShowType.Modal);
 | 
						|
//            billShowParameter.setFormId("pm_purorderbill");
 | 
						|
//            DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(pm_purorderbill.getLong("id"), "pm_purorderbill");
 | 
						|
//            billShowParameter.setPkId(dynamicObject.get("id"));
 | 
						|
//            this.getView().showForm(billShowParameter);
 | 
						|
        }
 | 
						|
 | 
						|
 | 
						|
    }
 | 
						|
} |