|
|
@@ -2904,82 +2904,94 @@ func (r *WrDeliveryAvalidHoldLB) calc() {
|
|
|
}
|
|
|
|
|
|
func (r *WrDeliveryAvalidHoldLB) buildSql() string {
|
|
|
- var sqlId utils.SQLVal = "with tmp as(" +
|
|
|
- "select k.wrfactortypeid, k.goodsid, sum(k.pricemove) pricemove" +
|
|
|
- " from (select to_char(t.wrfactortypeid) wrfactortypeid," +
|
|
|
- " b.dgfactoryitemtypeid," +
|
|
|
- " b.itemtypename," +
|
|
|
- " c.dgfactoryitemvalue," +
|
|
|
- " t.optioncompare," +
|
|
|
- " t.warehouseid," +
|
|
|
- " t.wrstandardid," +
|
|
|
- " c.dgfactoryitemid," +
|
|
|
- " t.wrfactortypename," +
|
|
|
- " t.wrfactortypename2," +
|
|
|
- " r.goodsid," +
|
|
|
- " nvl(r.premiumvalue, 0) pricemove" +
|
|
|
- " from wrfactortype t" +
|
|
|
- " inner join wrfactortypeitem a" +
|
|
|
- " on t.wrfactortypeid = a.wrfactortypeid" +
|
|
|
- " inner join dgfactoryitemtype b" +
|
|
|
- " on t.deliverygoodsid = b.deliverygoodsid" +
|
|
|
- " and a.dgfactoryitemtypeid = b.dgfactoryitemtypeid" +
|
|
|
- " left join dgfactoryitem c" +
|
|
|
- " on a.dgfactoryitemid = c.dgfactoryitemid" +
|
|
|
- " and b.deliverygoodsid = c.deliverygoodsid" +
|
|
|
- " left join deliveryrelationdetail r" +
|
|
|
- " on c.dgfactoryitemid = r.dgfactoryitemid" +
|
|
|
- " and b.dgfactoryitemtypeid = r.dgfactoryitemtypeid" +
|
|
|
- " where 1 = 1) k" +
|
|
|
- " group by k.wrfactortypeid, k.goodsid" +
|
|
|
- " )" +
|
|
|
- "select a.*," +
|
|
|
- " case" +
|
|
|
- " when a.uqty < a.qty then" +
|
|
|
- " a.uqty" +
|
|
|
- " else" +
|
|
|
- " a.qty" +
|
|
|
- " end as avalidqty," +
|
|
|
- " wd.wrstandardname," +
|
|
|
- " wd.wrstandardcode," +
|
|
|
- " wd.unitid," +
|
|
|
- " h.warehousecode," +
|
|
|
- " h.warehousename," +
|
|
|
- " g1.goodscode xgoodscode," +
|
|
|
- " g1.goodsname xgoodsname," +
|
|
|
- " r.pgoodsid," +
|
|
|
- " g2.goodscode pgoodscode," +
|
|
|
- " g2.goodsname pgoodsname," +
|
|
|
- " u.accountname username," +
|
|
|
- " tmp.pricemove" +
|
|
|
- " from (select t.accountid," +
|
|
|
- " t.goodsid," +
|
|
|
- " t.wrstandardid," +
|
|
|
- " t.inqty - t.cancelqty - t.deliveryqty - t.curpresaleqty as uqty," +
|
|
|
- " hl.qty - hl.freezerqty qty," +
|
|
|
- " to_char(hl.wrfactortypeid) wrfactortypeid," +
|
|
|
- " to_char(hl.ladingbillid) ladingbillid," +
|
|
|
- " hl.subnum," +
|
|
|
- " hl.deliverygoodsid," +
|
|
|
- " hl.userid," +
|
|
|
- " w.wrfactortypename2," +
|
|
|
- " w.warehouseid" +
|
|
|
- " from cptrade_usergoodsdata t" +
|
|
|
- " inner join wrholdlb hl" +
|
|
|
- " on t.accountid = hl.accountid" +
|
|
|
- " inner join wrfactortype w" +
|
|
|
- " on t.wrstandardid = w.wrstandardid and hl.wrfactortypeid=w.wrfactortypeid) a" +
|
|
|
- " left join wrstandard wd" +
|
|
|
- " on a.wrstandardid = wd.wrstandardid" +
|
|
|
- " left join warehouseinfo h" +
|
|
|
- " on a.warehouseid = h.autoid" +
|
|
|
- " inner join deliveryrelation r on a.goodsid=r.goodsid and a.wrstandardid=r.wrstandardid" +
|
|
|
- " left join goods g1 on a.goodsid=g1.goodsid" +
|
|
|
- " left join goods g2 on r.pgoodsid=g2.goodsid" +
|
|
|
- " left join useraccount u on a.userid=u.userid" +
|
|
|
- " left join tmp on a.wrfactortypeid=tmp.wrfactortypeid and a.goodsid=tmp.goodsid" +
|
|
|
- " where a.uqty > 0" +
|
|
|
- " and a.qty > 0"
|
|
|
+ var sqlId utils.SQLVal = `
|
|
|
+with tmp as
|
|
|
+ (select k.wrfactortypeid, k.goodsid, sum(k.pricemove) pricemove
|
|
|
+ from (select to_char(t.wrfactortypeid) wrfactortypeid,
|
|
|
+ b.dgfactoryitemtypeid,
|
|
|
+ b.itemtypename,
|
|
|
+ c.dgfactoryitemvalue,
|
|
|
+ t.optioncompare,
|
|
|
+ t.warehouseid,
|
|
|
+ t.wrstandardid,
|
|
|
+ c.dgfactoryitemid,
|
|
|
+ t.wrfactortypename,
|
|
|
+ t.wrfactortypename2,
|
|
|
+ r.goodsid,
|
|
|
+ nvl(r.premiumvalue, 0) pricemove
|
|
|
+ from wrfactortype t
|
|
|
+ inner join wrfactortypeitem a
|
|
|
+ on t.wrfactortypeid = a.wrfactortypeid
|
|
|
+ inner join dgfactoryitemtype b
|
|
|
+ on t.deliverygoodsid = b.deliverygoodsid
|
|
|
+ and a.dgfactoryitemtypeid = b.dgfactoryitemtypeid
|
|
|
+ left join dgfactoryitem c
|
|
|
+ on a.dgfactoryitemid = c.dgfactoryitemid
|
|
|
+ and b.deliverygoodsid = c.deliverygoodsid
|
|
|
+ left join deliveryrelationdetail r
|
|
|
+ on c.dgfactoryitemid = r.dgfactoryitemid
|
|
|
+ and b.dgfactoryitemtypeid = r.dgfactoryitemtypeid
|
|
|
+ where 1 = 1) k
|
|
|
+ group by k.wrfactortypeid, k.goodsid)
|
|
|
+select a.*,
|
|
|
+ case
|
|
|
+ when a.uqty * g1.agreeunit * r.mindeliveryqty * (r.rratio1/nvl(r.rratio2,1)) < a.qty then
|
|
|
+ a.uqty * g1.agreeunit * r.mindeliveryqty * (r.rratio1/nvl(r.rratio2,1))
|
|
|
+ else
|
|
|
+ a.qty
|
|
|
+ end as avalidqty,
|
|
|
+ wd.wrstandardname,
|
|
|
+ wd.wrstandardcode,
|
|
|
+ wd.unitid,
|
|
|
+ h.warehousecode,
|
|
|
+ h.warehousename,
|
|
|
+ g1.goodscode xgoodscode,
|
|
|
+ g1.goodsname xgoodsname,
|
|
|
+ r.pgoodsid,
|
|
|
+ g2.goodscode pgoodscode,
|
|
|
+ g2.goodsname pgoodsname,
|
|
|
+ u.accountname username,
|
|
|
+ tmp.pricemove
|
|
|
+ from (select t.accountid,
|
|
|
+ t.goodsid,
|
|
|
+ t.wrstandardid,
|
|
|
+ t.inqty - t.cancelqty - t.deliveryqty - (p.buycurpositionqty - p.buyfrozenqty) as uqty,
|
|
|
+ hl.qty - hl.freezerqty qty,
|
|
|
+ to_char(hl.wrfactortypeid) wrfactortypeid,
|
|
|
+ to_char(hl.ladingbillid) ladingbillid,
|
|
|
+ hl.subnum,
|
|
|
+ hl.deliverygoodsid,
|
|
|
+ hl.userid,
|
|
|
+ w.wrfactortypename2,
|
|
|
+ w.warehouseid
|
|
|
+ from cptrade_usergoodsdata t
|
|
|
+ inner join wrholdlb hl
|
|
|
+ on t.accountid = hl.accountid
|
|
|
+ inner join wrfactortype w
|
|
|
+ on t.wrstandardid = w.wrstandardid
|
|
|
+ and hl.wrfactortypeid = w.wrfactortypeid
|
|
|
+ left join tradeposition p on t.accountid=p.accountid and t.goodsid=p.goodsid
|
|
|
+ ) a
|
|
|
+ left join wrstandard wd
|
|
|
+ on a.wrstandardid = wd.wrstandardid
|
|
|
+ left join warehouseinfo h
|
|
|
+ on a.warehouseid = h.autoid
|
|
|
+ inner join deliveryrelation r
|
|
|
+ on a.goodsid = r.goodsid
|
|
|
+ and a.wrstandardid = r.wrstandardid
|
|
|
+ left join goods g1
|
|
|
+ on a.goodsid = g1.goodsid
|
|
|
+ left join goods g2
|
|
|
+ on r.pgoodsid = g2.goodsid
|
|
|
+ left join useraccount u
|
|
|
+ on a.userid = u.userid
|
|
|
+ left join tmp
|
|
|
+ on a.wrfactortypeid = tmp.wrfactortypeid
|
|
|
+ and a.goodsid = tmp.goodsid
|
|
|
+ where a.uqty > 0
|
|
|
+ and a.qty > 0
|
|
|
+`
|
|
|
+ // 过滤掉自己的仓单 and a.accountid !=
|
|
|
sqlId.Join(fmt.Sprintf(" and a.accountid != %v", r.ACCOUNTID))
|
|
|
sqlId.And("a.goodsid", r.GOODSID)
|
|
|
return sqlId.String()
|