提交 98f5198e 编写于 作者: ibizdev's avatar ibizdev

chitanda 发布系统代码

上级 6541c9ca
<template> <template>
<el-select size="small" class="filter-mode" placeholder="条件逻辑" v-model="curVal" @change="onChange"> <el-select size="small" class="filter-mode" :placeholder="$t('components.filterMode.placeholder')" v-model="curVal" @change="onChange">
<el-option <el-option
v-for="mode in filterMode" v-for="mode in fieldFilterMode"
:key="mode.value" :key="mode.value"
:label="getLabel(mode)" :label="getLabel(mode)"
:value="mode.value" :value="mode.value"
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
</template> </template>
<script lang="ts"> <script lang="ts">
import { Vue, Component, Model } from "vue-property-decorator"; import { Vue, Component, Model, Prop, Watch } from "vue-property-decorator";
@Component({}) @Component({})
export default class FilterMode extends Vue { export default class FilterMode extends Vue {
...@@ -24,6 +24,19 @@ export default class FilterMode extends Vue { ...@@ -24,6 +24,19 @@ export default class FilterMode extends Vue {
*/ */
@Model('change') readonly value: any; @Model('change') readonly value: any;
/**
* 自定义逻辑集合
*
* @type {*}
* @memberof FilterMode
*/
@Prop() modes!: any[];
@Watch('modes')
onModesChange(newVal: any) {
this.setDefValue();
}
get curVal() { get curVal() {
return this.value; return this.value;
} }
...@@ -34,6 +47,21 @@ export default class FilterMode extends Vue { ...@@ -34,6 +47,21 @@ export default class FilterMode extends Vue {
this.$emit('change', val); this.$emit('change', val);
} }
get fieldFilterMode() {
if(this.modes && this.modes.length > 0) {
let index: number = this.modes.findIndex((mode: any) => Object.is(mode.mode, 'all'));
if(index < 0) {
let items: any[] = [];
this.modes.forEach((mode: any) => {
let item: any = this.filterMode.find((filter: any) => Object.is(filter['en-US'], mode.mode));
items.push(item);
})
return items;
}
}
return this.filterMode;
}
/** /**
* 过滤模式 * 过滤模式
* *
...@@ -60,13 +88,37 @@ export default class FilterMode extends Vue { ...@@ -60,13 +88,37 @@ export default class FilterMode extends Vue {
// { 'zh-CN': '', en: 'NOTEXISTS', value: '$notExists' } // { 'zh-CN': '', en: 'NOTEXISTS', value: '$notExists' }
]; ];
/**
* 生命周期
*
* @return {void}
* @memberof FilterMode
*/
public mounted() {
this.setDefValue()
}
/**
* 设置默认值
*
* @return {void}
* @memberof FilterMode
*/
public setDefValue() {
if(this.fieldFilterMode.length > 0) {
this.curVal = this.fieldFilterMode[0].value;
this.onChange();
}
}
/** /**
* 获取语言文本 * 获取语言文本
* *
* @return {string} * @return {string}
* @memberof FilterMode * @memberof FilterMode
*/ */
getLabel(mode: any): string { public getLabel(mode: any): string {
if(this.$i18n.locale) { if(this.$i18n.locale) {
return mode[this.$i18n.locale]; return mode[this.$i18n.locale];
} }
...@@ -79,7 +131,16 @@ export default class FilterMode extends Vue { ...@@ -79,7 +131,16 @@ export default class FilterMode extends Vue {
* @memberof FilterMode * @memberof FilterMode
*/ */
public onChange() { public onChange() {
this.$emit('mode-change', this.value); this.$nextTick(() => {
let item: any = this.filterMode.find((filter: any) => Object.is(filter.value, this.curVal));
if(this.modes && this.modes.length > 0) {
let mode: any = this.modes.find((mode: any) => Object.is(mode.mode, item['en-US']));
if(!mode) {
mode = this.modes.find((mode: any) => Object.is(mode.mode, 'all'));
}
this.$emit('on-change', mode);
}
})
} }
} }
......
...@@ -7,25 +7,25 @@ ...@@ -7,25 +7,25 @@
<el-option v-for="mode in relationModes" :key="mode.value" :label="getLabel(mode)" :value="mode.value"></el-option> <el-option v-for="mode in relationModes" :key="mode.value" :label="getLabel(mode)" :value="mode.value"></el-option>
</el-select> </el-select>
<div class="filter-tree-action"> <div class="filter-tree-action">
<i-button title="添加条件" @click="onAddItem(data)"><i class="fa fa-plus" aria-hidden="true"></i> 添加条件</i-button> <i-button :title="$t('components.filterTree.title1')" @click="onAddItem(data)"><i class="fa fa-plus" aria-hidden="true"></i> {{$t('components.filterTree.title1')}}</i-button>
<i-button title="添加组" @click="onAddGroup(data)"><i class="fa fa-plus" aria-hidden="true"></i> 添加组</i-button> <i-button :title="$t('components.filterTree.title2')" @click="onAddGroup(data)"><i class="fa fa-plus" aria-hidden="true"></i> {{$t('components.filterTree.title2')}}</i-button>
<icon v-if="!data.isroot" type="md-close" @click="onRemoveItem(node, data)"/> <icon v-if="!data.isroot" type="md-close" @click="onRemoveItem(node, data)"/>
</div> </div>
</div> </div>
</template> </template>
<template v-else> <template v-else>
<div class="filter-tree-item"> <div class="filter-tree-item">
<el-select size="small" class="filter-item-field" v-model="data.field" clearable placeholder="属性" @change="onFieldChange(data)"> <el-select size="small" class="filter-item-field" v-model="data.field" clearable :placeholder="$t('components.filterTree.placeholder')">
<el-option <el-option
v-for="item in fields" v-for="item in fieldItems"
:key="item.prop" :key="item.value"
:label="item.label" :label="item.label"
:value="item.name"> :value="item.value">
</el-option> </el-option>
</el-select> </el-select>
<filter-mode class="filter-item-mode" v-model="data.mode"></filter-mode> <filter-mode class="filter-item-mode" v-model="data.mode" :modes="getModes(data.field)" @on-change="onModeChange($event, data)"></filter-mode>
<div class="filter-item-value"> <div class="filter-item-value">
<i-input v-if="!data.field"></i-input> <i-input v-if="!data.editor"></i-input>
<slot v-else :data="data"></slot> <slot v-else :data="data"></slot>
</div> </div>
<div class="filter-tree-action"> <div class="filter-tree-action">
...@@ -64,6 +64,14 @@ export default class FilterTree extends Vue { ...@@ -64,6 +64,14 @@ export default class FilterTree extends Vue {
*/ */
@Prop() fields: any; @Prop() fields: any;
/**
* 属性项集合
*
* @type {*}
* @memberof FilterTree
*/
protected fieldItems: any[] = [];
/** /**
* 组条件集合 * 组条件集合
* *
...@@ -89,34 +97,81 @@ export default class FilterTree extends Vue { ...@@ -89,34 +97,81 @@ export default class FilterTree extends Vue {
}; };
if(this.datas.length == 0) { if(this.datas.length == 0) {
this.onAddItem(root); this.onAddItem(root);
this.onAddItem(root);
} }
return [root]; return [root];
} }
/** /**
* 获取语言文本 * 生命周期
* *
* @return {string} * @return {void}
* @memberof FilterTree * @memberof FilterTree
*/ */
getLabel(mode: any): string { public created() {
if(this.$i18n.locale) { if(!this.fields) {
return mode[this.$i18n.locale]; return;
} }
return mode['zh-CN']; this.fields.forEach((field: any) => {
let index: number = this.fieldItems.findIndex((item: any) => Object.is(item.value, field.prop));
if(index < 0) {
this.fieldItems.push({
label: field.label,
value: field.prop,
modes: this.getFieldModes(field.prop)
})
}
});
} }
/** /**
* 属性变化 * 获取逻辑模式集合
* *
* @return {*} * @return {void}
* @memberof FilterTree * @memberof FilterTree
*/ */
public onFieldChange(data: any) { public getModes(field: string) {
if(!data.mode) { if(this.fieldItems.length > 0) {
data.mode = '$eq'; let item: any = this.fieldItems.find((item: any) => Object.is(item.value, field));
if(item) {
return item.modes;
}
} }
return [];
}
/**
* 获取属性逻辑模式集合
*
* @return {void}
* @memberof FilterTree
*/
public getFieldModes(name: string) {
let modes: any[] = [];
for(let i = 0; i < this.fields.length; i++) {
let field: any = this.fields[i];
if(!Object.is(field.prop, name)) {
continue;
}
modes.push({
name: field.name,
mode: field.mode ? field.mode : 'all'
})
}
return modes;
}
/**
* 获取语言文本
*
* @return {string}
* @memberof FilterTree
*/
getLabel(mode: any): string {
if(this.$i18n.locale) {
return mode[this.$i18n.locale];
}
return mode['zh-CN'];
} }
/** /**
...@@ -129,7 +184,8 @@ export default class FilterTree extends Vue { ...@@ -129,7 +184,8 @@ export default class FilterTree extends Vue {
if(data && data.children) { if(data && data.children) {
data.children.push({ data.children.push({
field: null, field: null,
mode: null mode: null,
editor: null
}); });
} }
} }
...@@ -163,6 +219,18 @@ export default class FilterTree extends Vue { ...@@ -163,6 +219,18 @@ export default class FilterTree extends Vue {
} }
} }
} }
/**
* 条件逻辑变化
*
* @return {*}
* @memberof FilterTree
*/
public onModeChange(mode: any, data: any) {
if(mode && data) {
data.editor = mode.name;
}
}
} }
</script> </script>
......
...@@ -838,6 +838,36 @@ export default class QuoteServiceBase extends EntityService { ...@@ -838,6 +838,36 @@ export default class QuoteServiceBase extends EntityService {
return Http.getInstance().get(`/quotes/fetchbyparentkey`,tempData,isloading); return Http.getInstance().get(`/quotes/fetchbyparentkey`,tempData,isloading);
} }
/**
* FetchClosed接口方法
*
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof QuoteServiceBase
*/
public async FetchClosed(context: any = {},data: any = {}, isloading?: boolean): Promise<any> {
if(context.account && context.contact && context.opportunity && true){
let tempData:any = JSON.parse(JSON.stringify(data));
return Http.getInstance().get(`/accounts/${context.account}/contacts/${context.contact}/opportunities/${context.opportunity}/quotes/fetchclosed`,tempData,isloading);
}
if(context.contact && context.opportunity && true){
let tempData:any = JSON.parse(JSON.stringify(data));
return Http.getInstance().get(`/contacts/${context.contact}/opportunities/${context.opportunity}/quotes/fetchclosed`,tempData,isloading);
}
if(context.account && context.opportunity && true){
let tempData:any = JSON.parse(JSON.stringify(data));
return Http.getInstance().get(`/accounts/${context.account}/opportunities/${context.opportunity}/quotes/fetchclosed`,tempData,isloading);
}
if(context.opportunity && true){
let tempData:any = JSON.parse(JSON.stringify(data));
return Http.getInstance().get(`/opportunities/${context.opportunity}/quotes/fetchclosed`,tempData,isloading);
}
let tempData:any = JSON.parse(JSON.stringify(data));
return Http.getInstance().get(`/quotes/fetchclosed`,tempData,isloading);
}
/** /**
* FetchDefault接口方法 * FetchDefault接口方法
* *
...@@ -867,4 +897,94 @@ export default class QuoteServiceBase extends EntityService { ...@@ -867,4 +897,94 @@ export default class QuoteServiceBase extends EntityService {
let tempData:any = JSON.parse(JSON.stringify(data)); let tempData:any = JSON.parse(JSON.stringify(data));
return Http.getInstance().get(`/quotes/fetchdefault`,tempData,isloading); return Http.getInstance().get(`/quotes/fetchdefault`,tempData,isloading);
} }
/**
* FetchDraft接口方法
*
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof QuoteServiceBase
*/
public async FetchDraft(context: any = {},data: any = {}, isloading?: boolean): Promise<any> {
if(context.account && context.contact && context.opportunity && true){
let tempData:any = JSON.parse(JSON.stringify(data));
return Http.getInstance().get(`/accounts/${context.account}/contacts/${context.contact}/opportunities/${context.opportunity}/quotes/fetchdraft`,tempData,isloading);
}
if(context.contact && context.opportunity && true){
let tempData:any = JSON.parse(JSON.stringify(data));
return Http.getInstance().get(`/contacts/${context.contact}/opportunities/${context.opportunity}/quotes/fetchdraft`,tempData,isloading);
}
if(context.account && context.opportunity && true){
let tempData:any = JSON.parse(JSON.stringify(data));
return Http.getInstance().get(`/accounts/${context.account}/opportunities/${context.opportunity}/quotes/fetchdraft`,tempData,isloading);
}
if(context.opportunity && true){
let tempData:any = JSON.parse(JSON.stringify(data));
return Http.getInstance().get(`/opportunities/${context.opportunity}/quotes/fetchdraft`,tempData,isloading);
}
let tempData:any = JSON.parse(JSON.stringify(data));
return Http.getInstance().get(`/quotes/fetchdraft`,tempData,isloading);
}
/**
* FetchEffective接口方法
*
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof QuoteServiceBase
*/
public async FetchEffective(context: any = {},data: any = {}, isloading?: boolean): Promise<any> {
if(context.account && context.contact && context.opportunity && true){
let tempData:any = JSON.parse(JSON.stringify(data));
return Http.getInstance().get(`/accounts/${context.account}/contacts/${context.contact}/opportunities/${context.opportunity}/quotes/fetcheffective`,tempData,isloading);
}
if(context.contact && context.opportunity && true){
let tempData:any = JSON.parse(JSON.stringify(data));
return Http.getInstance().get(`/contacts/${context.contact}/opportunities/${context.opportunity}/quotes/fetcheffective`,tempData,isloading);
}
if(context.account && context.opportunity && true){
let tempData:any = JSON.parse(JSON.stringify(data));
return Http.getInstance().get(`/accounts/${context.account}/opportunities/${context.opportunity}/quotes/fetcheffective`,tempData,isloading);
}
if(context.opportunity && true){
let tempData:any = JSON.parse(JSON.stringify(data));
return Http.getInstance().get(`/opportunities/${context.opportunity}/quotes/fetcheffective`,tempData,isloading);
}
let tempData:any = JSON.parse(JSON.stringify(data));
return Http.getInstance().get(`/quotes/fetcheffective`,tempData,isloading);
}
/**
* FetchWin接口方法
*
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof QuoteServiceBase
*/
public async FetchWin(context: any = {},data: any = {}, isloading?: boolean): Promise<any> {
if(context.account && context.contact && context.opportunity && true){
let tempData:any = JSON.parse(JSON.stringify(data));
return Http.getInstance().get(`/accounts/${context.account}/contacts/${context.contact}/opportunities/${context.opportunity}/quotes/fetchwin`,tempData,isloading);
}
if(context.contact && context.opportunity && true){
let tempData:any = JSON.parse(JSON.stringify(data));
return Http.getInstance().get(`/contacts/${context.contact}/opportunities/${context.opportunity}/quotes/fetchwin`,tempData,isloading);
}
if(context.account && context.opportunity && true){
let tempData:any = JSON.parse(JSON.stringify(data));
return Http.getInstance().get(`/accounts/${context.account}/opportunities/${context.opportunity}/quotes/fetchwin`,tempData,isloading);
}
if(context.opportunity && true){
let tempData:any = JSON.parse(JSON.stringify(data));
return Http.getInstance().get(`/opportunities/${context.opportunity}/quotes/fetchwin`,tempData,isloading);
}
let tempData:any = JSON.parse(JSON.stringify(data));
return Http.getInstance().get(`/quotes/fetchwin`,tempData,isloading);
}
} }
\ No newline at end of file
...@@ -213,7 +213,7 @@ export class Info_AllEditFormBase extends EditFormControlBase { ...@@ -213,7 +213,7 @@ export class Info_AllEditFormBase extends EditFormControlBase {
'sic', 'sic',
'tickersymbol', 'tickersymbol',
'ownershipcode', 'ownershipcode',
] ],
, uiActionGroup: { caption: '编辑_账户信息', langbase: 'entities.account.info_all_form', extractMode: 'ITEM', details: [{ name: 'group1_uc040f39', caption: '编辑', uiactiontag: 'account_edit_accountinfo', icon: 'fa fa-pencil',isShowCaption:false,isShowIcon:true }] } }), , uiActionGroup: { caption: '编辑_账户信息', langbase: 'entities.account.info_all_form', extractMode: 'ITEM', details: [{ name: 'group1_uc040f39', caption: '编辑', uiactiontag: 'account_edit_accountinfo', icon: 'fa fa-pencil',isShowCaption:false,isShowIcon:true }] } }),
grouppanel1: new FormGroupPanelModel({ caption: '地址信息', detailType: 'GROUPPANEL', name: 'grouppanel1', visible: true, isShowCaption: true, form: this, showMoreMode: 0, uiActionGroup: { caption: '编辑_地址信息', langbase: 'entities.account.info_all_form', extractMode: 'ITEM', details: [{ name: 'grouppanel1_u2ccbfc9', caption: '编辑', uiactiontag: 'account_edit_address', icon: 'fa fa-pencil',isShowCaption:false,isShowIcon:true }] } }), grouppanel1: new FormGroupPanelModel({ caption: '地址信息', detailType: 'GROUPPANEL', name: 'grouppanel1', visible: true, isShowCaption: true, form: this, showMoreMode: 0, uiActionGroup: { caption: '编辑_地址信息', langbase: 'entities.account.info_all_form', extractMode: 'ITEM', details: [{ name: 'grouppanel1_u2ccbfc9', caption: '编辑', uiactiontag: 'account_edit_address', icon: 'fa fa-pencil',isShowCaption:false,isShowIcon:true }] } }),
......
...@@ -20,7 +20,11 @@ import com.alibaba.fastjson.JSONObject; ...@@ -20,7 +20,11 @@ import com.alibaba.fastjson.JSONObject;
public interface QuoteMapper extends BaseMapper<Quote>{ public interface QuoteMapper extends BaseMapper<Quote>{
Page<Quote> searchByParentKey(IPage page, @Param("srf") QuoteSearchContext context, @Param("ew") Wrapper<Quote> wrapper) ; Page<Quote> searchByParentKey(IPage page, @Param("srf") QuoteSearchContext context, @Param("ew") Wrapper<Quote> wrapper) ;
Page<Quote> searchClosed(IPage page, @Param("srf") QuoteSearchContext context, @Param("ew") Wrapper<Quote> wrapper) ;
Page<Quote> searchDefault(IPage page, @Param("srf") QuoteSearchContext context, @Param("ew") Wrapper<Quote> wrapper) ; Page<Quote> searchDefault(IPage page, @Param("srf") QuoteSearchContext context, @Param("ew") Wrapper<Quote> wrapper) ;
Page<Quote> searchDraft(IPage page, @Param("srf") QuoteSearchContext context, @Param("ew") Wrapper<Quote> wrapper) ;
Page<Quote> searchEffective(IPage page, @Param("srf") QuoteSearchContext context, @Param("ew") Wrapper<Quote> wrapper) ;
Page<Quote> searchWin(IPage page, @Param("srf") QuoteSearchContext context, @Param("ew") Wrapper<Quote> wrapper) ;
@Override @Override
Quote selectById(Serializable id); Quote selectById(Serializable id);
@Override @Override
......
...@@ -41,7 +41,11 @@ public interface IQuoteService extends IService<Quote>{ ...@@ -41,7 +41,11 @@ public interface IQuoteService extends IService<Quote>{
void saveBatch(List<Quote> list) ; void saveBatch(List<Quote> list) ;
Quote win(Quote et) ; Quote win(Quote et) ;
Page<Quote> searchByParentKey(QuoteSearchContext context) ; Page<Quote> searchByParentKey(QuoteSearchContext context) ;
Page<Quote> searchClosed(QuoteSearchContext context) ;
Page<Quote> searchDefault(QuoteSearchContext context) ; Page<Quote> searchDefault(QuoteSearchContext context) ;
Page<Quote> searchDraft(QuoteSearchContext context) ;
Page<Quote> searchEffective(QuoteSearchContext context) ;
Page<Quote> searchWin(QuoteSearchContext context) ;
List<Quote> selectByCampaignid(String campaignid) ; List<Quote> selectByCampaignid(String campaignid) ;
void removeByCampaignid(String campaignid) ; void removeByCampaignid(String campaignid) ;
List<Quote> selectByOpportunityid(String opportunityid) ; List<Quote> selectByOpportunityid(String opportunityid) ;
......
...@@ -272,6 +272,15 @@ public class QuoteServiceImpl extends ServiceImpl<QuoteMapper, Quote> implements ...@@ -272,6 +272,15 @@ public class QuoteServiceImpl extends ServiceImpl<QuoteMapper, Quote> implements
return new PageImpl<Quote>(pages.getRecords(), context.getPageable(), pages.getTotal()); return new PageImpl<Quote>(pages.getRecords(), context.getPageable(), pages.getTotal());
} }
/**
* 查询集合 已关闭
*/
@Override
public Page<Quote> searchClosed(QuoteSearchContext context) {
com.baomidou.mybatisplus.extension.plugins.pagination.Page<Quote> pages=baseMapper.searchClosed(context.getPages(),context,context.getSelectCond());
return new PageImpl<Quote>(pages.getRecords(), context.getPageable(), pages.getTotal());
}
/** /**
* 查询集合 DEFAULT * 查询集合 DEFAULT
*/ */
...@@ -281,6 +290,33 @@ public class QuoteServiceImpl extends ServiceImpl<QuoteMapper, Quote> implements ...@@ -281,6 +290,33 @@ public class QuoteServiceImpl extends ServiceImpl<QuoteMapper, Quote> implements
return new PageImpl<Quote>(pages.getRecords(), context.getPageable(), pages.getTotal()); return new PageImpl<Quote>(pages.getRecords(), context.getPageable(), pages.getTotal());
} }
/**
* 查询集合 草稿
*/
@Override
public Page<Quote> searchDraft(QuoteSearchContext context) {
com.baomidou.mybatisplus.extension.plugins.pagination.Page<Quote> pages=baseMapper.searchDraft(context.getPages(),context,context.getSelectCond());
return new PageImpl<Quote>(pages.getRecords(), context.getPageable(), pages.getTotal());
}
/**
* 查询集合 有效报价单
*/
@Override
public Page<Quote> searchEffective(QuoteSearchContext context) {
com.baomidou.mybatisplus.extension.plugins.pagination.Page<Quote> pages=baseMapper.searchEffective(context.getPages(),context,context.getSelectCond());
return new PageImpl<Quote>(pages.getRecords(), context.getPageable(), pages.getTotal());
}
/**
* 查询集合 赢单
*/
@Override
public Page<Quote> searchWin(QuoteSearchContext context) {
com.baomidou.mybatisplus.extension.plugins.pagination.Page<Quote> pages=baseMapper.searchWin(context.getPages(),context,context.getSelectCond());
return new PageImpl<Quote>(pages.getRecords(), context.getPageable(), pages.getTotal());
}
/** /**
......
...@@ -109,6 +109,15 @@ ...@@ -109,6 +109,15 @@
<if test="ew!=null and ew.sqlSegment!=null and ew.emptyOfWhere">${ew.sqlSegment}</if> <if test="ew!=null and ew.sqlSegment!=null and ew.emptyOfWhere">${ew.sqlSegment}</if>
</select> </select>
<!--数据集合[Closed]-->
<select id="searchClosed" parameterType="cn.ibizlab.businesscentral.core.sales.filter.QuoteSearchContext" resultMap="QuoteResultMap">
select t1.* from (
<include refid="Closed" />
)t1
<where><if test="ew!=null and ew.sqlSegment!=null and !ew.emptyOfWhere">${ew.sqlSegment}</if></where>
<if test="ew!=null and ew.sqlSegment!=null and ew.emptyOfWhere">${ew.sqlSegment}</if>
</select>
<!--数据集合[Default]--> <!--数据集合[Default]-->
<select id="searchDefault" parameterType="cn.ibizlab.businesscentral.core.sales.filter.QuoteSearchContext" resultMap="QuoteResultMap"> <select id="searchDefault" parameterType="cn.ibizlab.businesscentral.core.sales.filter.QuoteSearchContext" resultMap="QuoteResultMap">
select t1.* from ( select t1.* from (
...@@ -118,6 +127,33 @@ ...@@ -118,6 +127,33 @@
<if test="ew!=null and ew.sqlSegment!=null and ew.emptyOfWhere">${ew.sqlSegment}</if> <if test="ew!=null and ew.sqlSegment!=null and ew.emptyOfWhere">${ew.sqlSegment}</if>
</select> </select>
<!--数据集合[Draft]-->
<select id="searchDraft" parameterType="cn.ibizlab.businesscentral.core.sales.filter.QuoteSearchContext" resultMap="QuoteResultMap">
select t1.* from (
<include refid="Draft" />
)t1
<where><if test="ew!=null and ew.sqlSegment!=null and !ew.emptyOfWhere">${ew.sqlSegment}</if></where>
<if test="ew!=null and ew.sqlSegment!=null and ew.emptyOfWhere">${ew.sqlSegment}</if>
</select>
<!--数据集合[Effective]-->
<select id="searchEffective" parameterType="cn.ibizlab.businesscentral.core.sales.filter.QuoteSearchContext" resultMap="QuoteResultMap">
select t1.* from (
<include refid="Effective" />
)t1
<where><if test="ew!=null and ew.sqlSegment!=null and !ew.emptyOfWhere">${ew.sqlSegment}</if></where>
<if test="ew!=null and ew.sqlSegment!=null and ew.emptyOfWhere">${ew.sqlSegment}</if>
</select>
<!--数据集合[Win]-->
<select id="searchWin" parameterType="cn.ibizlab.businesscentral.core.sales.filter.QuoteSearchContext" resultMap="QuoteResultMap">
select t1.* from (
<include refid="Win" />
)t1
<where><if test="ew!=null and ew.sqlSegment!=null and !ew.emptyOfWhere">${ew.sqlSegment}</if></where>
<if test="ew!=null and ew.sqlSegment!=null and ew.emptyOfWhere">${ew.sqlSegment}</if>
</select>
<!--数据查询[ByParentKey]--> <!--数据查询[ByParentKey]-->
<sql id="ByParentKey" databaseId="mysql"> <sql id="ByParentKey" databaseId="mysql">
<![CDATA[ SELECT t1.`ACCOUNTIDYOMINAME`, t1.`BILLTO_ADDRESSID`, t1.`BILLTO_CITY`, t1.`BILLTO_COMPOSITE`, t1.`BILLTO_CONTACTNAME`, t1.`BILLTO_COUNTRY`, t1.`BILLTO_FAX`, t1.`BILLTO_LINE1`, t1.`BILLTO_LINE2`, t1.`BILLTO_LINE3`, t1.`BILLTO_NAME`, t1.`BILLTO_POSTALCODE`, t1.`BILLTO_STATEORPROVINCE`, t1.`BILLTO_TELEPHONE`, t1.`CAMPAIGNID`, t1.`CAMPAIGNNAME`, t1.`CLOSEDON`, t1.`CONTACTIDYOMINAME`, t1.`CREATEDATE`, t1.`CREATEMAN`, t1.`CUSTOMERID`, t1.`CUSTOMERIDTYPE`, t1.`CUSTOMERIDYOMINAME`, t1.`DESCRIPTION`, t1.`DISCOUNTAMOUNT`, t1.`DISCOUNTAMOUNT_BASE`, t1.`DISCOUNTPERCENTAGE`, t1.`EFFECTIVEFROM`, t1.`EFFECTIVETO`, t1.`EMAILADDRESS`, t1.`EXCHANGERATE`, t1.`EXPIRESON`, t1.`FREIGHTAMOUNT`, t1.`FREIGHTAMOUNT_BASE`, t1.`FREIGHTTERMSCODE`, t1.`IMPORTSEQUENCENUMBER`, t1.`LASTONHOLDTIME`, t1.`ONHOLDTIME`, t1.`OPPORTUNITYID`, t1.`OPPORTUNITYNAME`, t1.`OVERRIDDENCREATEDON`, t1.`OWNERID`, t1.`OWNERIDTYPE`, t1.`OWNERIDYOMINAME`, t1.`PAYMENTTERMSCODE`, t1.`PRICELEVELID`, t1.`PRICELEVELNAME`, t1.`PRICINGERRORCODE`, t1.`PROCESSID`, t1.`QUOTEID`, t1.`QUOTENAME`, t1.`QUOTENUMBER`, t1.`REQUESTDELIVERYBY`, t1.`REVISIONNUMBER`, t1.`SHIPPINGMETHODCODE`, t1.`SHIPTO_ADDRESSID`, t1.`SHIPTO_CITY`, t1.`SHIPTO_COMPOSITE`, t1.`SHIPTO_CONTACTNAME`, t1.`SHIPTO_COUNTRY`, t1.`SHIPTO_FAX`, t1.`SHIPTO_FREIGHTTERMSCODE`, t1.`SHIPTO_LINE1`, t1.`SHIPTO_LINE2`, t1.`SHIPTO_LINE3`, t1.`SHIPTO_NAME`, t1.`SHIPTO_POSTALCODE`, t1.`SHIPTO_STATEORPROVINCE`, t1.`SHIPTO_TELEPHONE`, t1.`SLAID`, t1.`SLANAME`, t1.`STAGEID`, t1.`STATECODE`, t1.`STATUSCODE`, t1.`TIMEZONERULEVERSIONNUMBER`, t1.`TOTALAMOUNT`, t1.`TOTALAMOUNTLESSFREIGHT`, t1.`TOTALAMOUNTLESSFREIGHT_BASE`, t1.`TOTALAMOUNT_BASE`, t1.`TOTALDISCOUNTAMOUNT`, t1.`TOTALDISCOUNTAMOUNT_BASE`, t1.`TOTALLINEITEMAMOUNT`, t1.`TOTALLINEITEMAMOUNT_BASE`, t1.`TOTALLINEITEMDISCOUNTAMOUNT`, t1.`TOTALTAX`, t1.`TOTALTAX_BASE`, t1.`TRANSACTIONCURRENCYID`, t1.`TRANSACTIONCURRENCYNAME`, t1.`TRAVERSEDPATH`, t1.`UNIQUEDSCID`, t1.`UPDATEDATE`, t1.`UPDATEMAN`, t1.`UTCCONVERSIONTIMEZONECODE`, t1.`VERSIONNUMBER`, t1.`WILLCALL` FROM `QUOTE` t1 <![CDATA[ SELECT t1.`ACCOUNTIDYOMINAME`, t1.`BILLTO_ADDRESSID`, t1.`BILLTO_CITY`, t1.`BILLTO_COMPOSITE`, t1.`BILLTO_CONTACTNAME`, t1.`BILLTO_COUNTRY`, t1.`BILLTO_FAX`, t1.`BILLTO_LINE1`, t1.`BILLTO_LINE2`, t1.`BILLTO_LINE3`, t1.`BILLTO_NAME`, t1.`BILLTO_POSTALCODE`, t1.`BILLTO_STATEORPROVINCE`, t1.`BILLTO_TELEPHONE`, t1.`CAMPAIGNID`, t1.`CAMPAIGNNAME`, t1.`CLOSEDON`, t1.`CONTACTIDYOMINAME`, t1.`CREATEDATE`, t1.`CREATEMAN`, t1.`CUSTOMERID`, t1.`CUSTOMERIDTYPE`, t1.`CUSTOMERIDYOMINAME`, t1.`DESCRIPTION`, t1.`DISCOUNTAMOUNT`, t1.`DISCOUNTAMOUNT_BASE`, t1.`DISCOUNTPERCENTAGE`, t1.`EFFECTIVEFROM`, t1.`EFFECTIVETO`, t1.`EMAILADDRESS`, t1.`EXCHANGERATE`, t1.`EXPIRESON`, t1.`FREIGHTAMOUNT`, t1.`FREIGHTAMOUNT_BASE`, t1.`FREIGHTTERMSCODE`, t1.`IMPORTSEQUENCENUMBER`, t1.`LASTONHOLDTIME`, t1.`ONHOLDTIME`, t1.`OPPORTUNITYID`, t1.`OPPORTUNITYNAME`, t1.`OVERRIDDENCREATEDON`, t1.`OWNERID`, t1.`OWNERIDTYPE`, t1.`OWNERIDYOMINAME`, t1.`PAYMENTTERMSCODE`, t1.`PRICELEVELID`, t1.`PRICELEVELNAME`, t1.`PRICINGERRORCODE`, t1.`PROCESSID`, t1.`QUOTEID`, t1.`QUOTENAME`, t1.`QUOTENUMBER`, t1.`REQUESTDELIVERYBY`, t1.`REVISIONNUMBER`, t1.`SHIPPINGMETHODCODE`, t1.`SHIPTO_ADDRESSID`, t1.`SHIPTO_CITY`, t1.`SHIPTO_COMPOSITE`, t1.`SHIPTO_CONTACTNAME`, t1.`SHIPTO_COUNTRY`, t1.`SHIPTO_FAX`, t1.`SHIPTO_FREIGHTTERMSCODE`, t1.`SHIPTO_LINE1`, t1.`SHIPTO_LINE2`, t1.`SHIPTO_LINE3`, t1.`SHIPTO_NAME`, t1.`SHIPTO_POSTALCODE`, t1.`SHIPTO_STATEORPROVINCE`, t1.`SHIPTO_TELEPHONE`, t1.`SLAID`, t1.`SLANAME`, t1.`STAGEID`, t1.`STATECODE`, t1.`STATUSCODE`, t1.`TIMEZONERULEVERSIONNUMBER`, t1.`TOTALAMOUNT`, t1.`TOTALAMOUNTLESSFREIGHT`, t1.`TOTALAMOUNTLESSFREIGHT_BASE`, t1.`TOTALAMOUNT_BASE`, t1.`TOTALDISCOUNTAMOUNT`, t1.`TOTALDISCOUNTAMOUNT_BASE`, t1.`TOTALLINEITEMAMOUNT`, t1.`TOTALLINEITEMAMOUNT_BASE`, t1.`TOTALLINEITEMDISCOUNTAMOUNT`, t1.`TOTALTAX`, t1.`TOTALTAX_BASE`, t1.`TRANSACTIONCURRENCYID`, t1.`TRANSACTIONCURRENCYNAME`, t1.`TRAVERSEDPATH`, t1.`UNIQUEDSCID`, t1.`UPDATEDATE`, t1.`UPDATEMAN`, t1.`UTCCONVERSIONTIMEZONECODE`, t1.`VERSIONNUMBER`, t1.`WILLCALL` FROM `QUOTE` t1
......
...@@ -319,7 +319,7 @@ ...@@ -319,7 +319,7 @@
"dename":"Quote", "dename":"Quote",
"delogicname":"报价单", "delogicname":"报价单",
"sysmoudle":{"id":"SALES","name":"Sales"}, "sysmoudle":{"id":"SALES","name":"Sales"},
"dedataset":[{"id":"ByParentKey" , "name":"ByParentKey"},{"id":"Default" , "name":"DEFAULT"}], "dedataset":[{"id":"ByParentKey" , "name":"ByParentKey"},{"id":"Closed" , "name":"已关闭"},{"id":"Default" , "name":"DEFAULT"},{"id":"Draft" , "name":"草稿"},{"id":"Effective" , "name":"有效报价单"},{"id":"Win" , "name":"赢单"}],
"deaction":[{"id":"Create" , "name":"Create" , "type":"BUILTIN" },{"id":"Update" , "name":"Update" , "type":"BUILTIN" },{"id":"Remove" , "name":"Remove" , "type":"BUILTIN" },{"id":"Get" , "name":"Get" , "type":"BUILTIN" },{"id":"GetDraft" , "name":"GetDraft" , "type":"BUILTIN" },{"id":"Active" , "name":"激活报价单" , "type":"DELOGIC" },{"id":"CheckKey" , "name":"CheckKey" , "type":"BUILTIN" },{"id":"Close" , "name":"结束报价单" , "type":"DELOGIC" },{"id":"GenSalesOrder" , "name":"创建订单" , "type":"USERCUSTOM" },{"id":"Save" , "name":"Save" , "type":"BUILTIN" },{"id":"Win" , "name":"赢单" , "type":"DELOGIC" }], "deaction":[{"id":"Create" , "name":"Create" , "type":"BUILTIN" },{"id":"Update" , "name":"Update" , "type":"BUILTIN" },{"id":"Remove" , "name":"Remove" , "type":"BUILTIN" },{"id":"Get" , "name":"Get" , "type":"BUILTIN" },{"id":"GetDraft" , "name":"GetDraft" , "type":"BUILTIN" },{"id":"Active" , "name":"激活报价单" , "type":"DELOGIC" },{"id":"CheckKey" , "name":"CheckKey" , "type":"BUILTIN" },{"id":"Close" , "name":"结束报价单" , "type":"DELOGIC" },{"id":"GenSalesOrder" , "name":"创建订单" , "type":"USERCUSTOM" },{"id":"Save" , "name":"Save" , "type":"BUILTIN" },{"id":"Win" , "name":"赢单" , "type":"DELOGIC" }],
"datascope":[{"id":"all","name":"全部数据"}, {"id":"createman","name":"创建人"}] "datascope":[{"id":"all","name":"全部数据"}, {"id":"createman","name":"创建人"}]
} }
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册