|
楼主 |
发表于 2017-10-19 16:03:11
|
显示全部楼层
import java.util.Map;
import com.justep.message.CommonMessages;
import com.justep.model.ModelUtils;
import com.justep.system.data.KSQL;
import com.justep.system.data.Table;
import com.justep.util.Utils;
public class KSQLProcedure {
public static Table query(String ksql, Map<String, Object> variables, String dataModel, String fnModel) {
Utils.check(Utils.isNotEmptyString(ksql) && Utils.isNotEmptyString(dataModel),
CommonMessages.class, CommonMessages.PARAM_NULL1, "ksql, dataModel");
return KSQL.select(ksql, variables, dataModel, Utils.isEmptyString(fnModel) ? null : ModelUtils.getModel(fnModel));
}
}
select FI_articleInfo as fArticleID,FI_articleInfo.fArticleType as fArticleType,FI_articleInfo.fArticleName as fArticleName,FI_articleInfo.fPrice as fPrice,FI_articleInfo.fUnit as fUnit,FI_WhPosition as fWhPositionID,FI_WhPosition.fMainID as fWhID,FI_WhPosition.fWhArea as fWhArea,FI_WhPosition.fWhPosition as fWhPosition,(customSub1.fInboundSum) as fInboundSum,(customSub6.fOutboundSum) as fOutboundSum,( SQL.IFNULL(customSub1.fInboundSum, 0) - SQL.IFNULL(customSub6.fOutboundSum, 0) ) as fCurrentStock
from FI_articleInfo FI_articleInfo
join FI_WhPosition FI_WhPosition on 1 = 1
join (select FI_articleMoveDetail.farticleID as farticleID, FI_articleMoveDetail.fReceiverPositionID as fReceiverPositionID, (sum(FI_articleMoveDetail.fQuantity)) as fInboundSum from FI_articleMove FI_articleMove
join FI_articleMoveDetail FI_articleMoveDetail on FI_articleMove = FI_articleMoveDetail.fMainID
where FI_articleMove.fReceiverID = :fWhID AND FI_articleMove.fType = '入库单' AND FI_articleMove.fProcState = '已完成'
group by FI_articleMoveDetail.farticleID, FI_articleMoveDetail.fReceiverPositionID) customSub1 on FI_WhPosition = customSub1.fReceiverPositionID AND FI_articleInfo = customSub1.farticleID optional
join (select FI_articleMoveDetail.farticleID as farticleID, FI_articleMoveDetail.fSendPositionID as fSendPositionID, (sum(FI_articleMoveDetail.fQuantity)) as fOutboundSum from FI_articleMove FI_articleMove
join FI_articleMoveDetail FI_articleMoveDetail on FI_articleMove = FI_articleMoveDetail.fMainID where FI_articleMove.fSendID = :fWhID AND FI_articleMove.fType = '出库单' AND ( FI_articleMove.fProcState = '已完成' OR FI_articleMove.fProcState = '进行中' )
group by FI_articleMoveDetail.farticleID, FI_articleMoveDetail.fSendPositionID) customSub6 on FI_articleInfo = customSub6.fArticleID AND FI_WhPosition = customSub6.fSendPositionID where ( SQL.IFNULL(customSub1.fInboundSum, 0) - SQL.IFNULL(customSub6.fOutboundSum, 0) ) > 0 |
|