Merge remote-tracking branch 'origin/main' into main

This commit is contained in:
xiaocp2009 2025-10-29 10:46:17 +08:00
commit f10819bee8
12 changed files with 127 additions and 37 deletions

View File

@ -2,9 +2,9 @@
# if use a sub directory, it must be end with "/", like "/admin/" but not "/admin" # if use a sub directory, it must be end with "/", like "/admin/" but not "/admin"
VITE_BASE_URL=/ VITE_BASE_URL=/
VITE_APP_TITLE=全员营销计 VITE_APP_TITLE=分岗管户质效评
VITE_APP_DESC=全员营销计价系统 VITE_APP_DESC=分岗管户质效评价系统
# the prefix of the icon name # the prefix of the icon name
VITE_ICON_PREFIX=icon VITE_ICON_PREFIX=icon

View File

@ -26,7 +26,7 @@ const naiveDateLocale = computed(() => {
}); });
const watermarkProps = computed<WatermarkProps>(() => { const watermarkProps = computed<WatermarkProps>(() => {
const appTitle = import.meta.env.VITE_APP_TITLE || '全员营销计价'; const appTitle = import.meta.env.VITE_APP_TITLE || '分岗管户质效评价';
const content = const content =
themeStore.watermark.enableUserName && userInfo.user?.userName themeStore.watermark.enableUserName && userInfo.user?.userName
? `${userInfo.user?.nickName}@${appTitle} ${userInfo.user?.userName}` ? `${userInfo.user?.nickName}@${appTitle} ${userInfo.user?.userName}`

View File

@ -8,7 +8,7 @@ const local: App.I18n.Schema = {
sbkjh: '社保卡激活' sbkjh: '社保卡激活'
}, },
system: { system: {
title: '全员营销计价', title: '分岗管户质效评价',
updateTitle: '系统版本更新通知', updateTitle: '系统版本更新通知',
updateContent: '检测到系统有新版本发布,是否立即刷新页面?', updateContent: '检测到系统有新版本发布,是否立即刷新页面?',
updateConfirm: '立即刷新', updateConfirm: '立即刷新',

View File

@ -70,9 +70,9 @@ export const views: Record<LastLevelRouteKey, RouteComponent | (() => Promise<Ro
oss_oss: () => import("@/views/oss/oss/index.vue"), oss_oss: () => import("@/views/oss/oss/index.vue"),
"report_detail-entry": () => import("@/views/report/detail-entry/index.vue"), "report_detail-entry": () => import("@/views/report/detail-entry/index.vue"),
"report_payroll-records": () => import("@/views/report/payroll-records/index.vue"), "report_payroll-records": () => import("@/views/report/payroll-records/index.vue"),
"report_performance-md": () => import("@/views/report/performance-MD/index.vue"),
"report_performance-h": () => import("@/views/report/performance-h/index.vue"), "report_performance-h": () => import("@/views/report/performance-h/index.vue"),
"report_performance-m": () => import("@/views/report/performance-m/index.vue"), "report_performance-m": () => import("@/views/report/performance-m/index.vue"),
"report_performance-md": () => import("@/views/report/performance-md/index.vue"),
"report_performance-q": () => import("@/views/report/performance-q/index.vue"), "report_performance-q": () => import("@/views/report/performance-q/index.vue"),
"report_performance-y": () => import("@/views/report/performance-y/index.vue"), "report_performance-y": () => import("@/views/report/performance-y/index.vue"),
report_performance: () => import("@/views/report/performance/index.vue"), report_performance: () => import("@/views/report/performance/index.vue"),

View File

@ -82,7 +82,7 @@ export const themeSettings: App.Theme.ThemeSetting = {
}, },
watermark: { watermark: {
visible: import.meta.env.VITE_WATERMARK === 'Y', visible: import.meta.env.VITE_WATERMARK === 'Y',
text: '全员营销计价', text: '分岗管户质效评价',
enableUserName: true enableUserName: true
}, },
table: { table: {

View File

@ -42,47 +42,76 @@ declare module 'vue' {
MenuTreeSelect: typeof import('./../components/custom/menu-tree-select.vue')['default'] MenuTreeSelect: typeof import('./../components/custom/menu-tree-select.vue')['default']
MonacoEditor: typeof import('./../components/common/monaco-editor.vue')['default'] MonacoEditor: typeof import('./../components/common/monaco-editor.vue')['default']
NA: typeof import('naive-ui')['NA'] NA: typeof import('naive-ui')['NA']
NAlert: typeof import('naive-ui')['NAlert']
NAvatar: typeof import('naive-ui')['NAvatar'] NAvatar: typeof import('naive-ui')['NAvatar']
NBadge: typeof import('naive-ui')['NBadge'] NBadge: typeof import('naive-ui')['NBadge']
NBreadcrumb: typeof import('naive-ui')['NBreadcrumb'] NBreadcrumb: typeof import('naive-ui')['NBreadcrumb']
NBreadcrumbItem: typeof import('naive-ui')['NBreadcrumbItem'] NBreadcrumbItem: typeof import('naive-ui')['NBreadcrumbItem']
NButton: typeof import('naive-ui')['NButton'] NButton: typeof import('naive-ui')['NButton']
NButtonGroup: typeof import('naive-ui')['NButtonGroup']
NCard: typeof import('naive-ui')['NCard'] NCard: typeof import('naive-ui')['NCard']
NCheckbox: typeof import('naive-ui')['NCheckbox'] NCheckbox: typeof import('naive-ui')['NCheckbox']
NCheckboxGroup: typeof import('naive-ui')['NCheckboxGroup']
NCode: typeof import('naive-ui')['NCode']
NCollapse: typeof import('naive-ui')['NCollapse']
NCollapseItem: typeof import('naive-ui')['NCollapseItem']
NColorPicker: typeof import('naive-ui')['NColorPicker'] NColorPicker: typeof import('naive-ui')['NColorPicker']
NDataTable: typeof import('naive-ui')['NDataTable']
NDatePicker: typeof import('naive-ui')['NDatePicker'] NDatePicker: typeof import('naive-ui')['NDatePicker']
NDescriptions: typeof import('naive-ui')['NDescriptions']
NDescriptionsItem: typeof import('naive-ui')['NDescriptionsItem']
NDialogProvider: typeof import('naive-ui')['NDialogProvider'] NDialogProvider: typeof import('naive-ui')['NDialogProvider']
NDivider: typeof import('naive-ui')['NDivider'] NDivider: typeof import('naive-ui')['NDivider']
NDrawer: typeof import('naive-ui')['NDrawer'] NDrawer: typeof import('naive-ui')['NDrawer']
NDrawerContent: typeof import('naive-ui')['NDrawerContent'] NDrawerContent: typeof import('naive-ui')['NDrawerContent']
NDropdown: typeof import('naive-ui')['NDropdown'] NDropdown: typeof import('naive-ui')['NDropdown']
NDynamicInput: typeof import('naive-ui')['NDynamicInput']
NEllipsis: typeof import('naive-ui')['NEllipsis'] NEllipsis: typeof import('naive-ui')['NEllipsis']
NEmpty: typeof import('naive-ui')['NEmpty'] NEmpty: typeof import('naive-ui')['NEmpty']
NForm: typeof import('naive-ui')['NForm'] NForm: typeof import('naive-ui')['NForm']
NFormItem: typeof import('naive-ui')['NFormItem'] NFormItem: typeof import('naive-ui')['NFormItem']
NFormItemGi: typeof import('naive-ui')['NFormItemGi']
NGi: typeof import('naive-ui')['NGi'] NGi: typeof import('naive-ui')['NGi']
NGrid: typeof import('naive-ui')['NGrid'] NGrid: typeof import('naive-ui')['NGrid']
NGridItem: typeof import('naive-ui')['NGridItem']
NInput: typeof import('naive-ui')['NInput'] NInput: typeof import('naive-ui')['NInput']
NInputGroup: typeof import('naive-ui')['NInputGroup'] NInputGroup: typeof import('naive-ui')['NInputGroup']
NInputGroupLabel: typeof import('naive-ui')['NInputGroupLabel']
NInputNumber: typeof import('naive-ui')['NInputNumber']
NLayout: typeof import('naive-ui')['NLayout']
NLayoutContent: typeof import('naive-ui')['NLayoutContent']
NLayoutSider: typeof import('naive-ui')['NLayoutSider']
NLoadingBarProvider: typeof import('naive-ui')['NLoadingBarProvider'] NLoadingBarProvider: typeof import('naive-ui')['NLoadingBarProvider']
NMenu: typeof import('naive-ui')['NMenu'] NMenu: typeof import('naive-ui')['NMenu']
NMessageProvider: typeof import('naive-ui')['NMessageProvider'] NMessageProvider: typeof import('naive-ui')['NMessageProvider']
NModal: typeof import('naive-ui')['NModal'] NModal: typeof import('naive-ui')['NModal']
NNotificationProvider: typeof import('naive-ui')['NNotificationProvider'] NNotificationProvider: typeof import('naive-ui')['NNotificationProvider']
NP: typeof import('naive-ui')['NP']
NPopconfirm: typeof import('naive-ui')['NPopconfirm'] NPopconfirm: typeof import('naive-ui')['NPopconfirm']
NPopover: typeof import('naive-ui')['NPopover'] NPopover: typeof import('naive-ui')['NPopover']
NRadio: typeof import('naive-ui')['NRadio']
NRadioButton: typeof import('naive-ui')['NRadioButton']
NRadioGroup: typeof import('naive-ui')['NRadioGroup']
NScrollbar: typeof import('naive-ui')['NScrollbar'] NScrollbar: typeof import('naive-ui')['NScrollbar']
NSelect: typeof import('naive-ui')['NSelect'] NSelect: typeof import('naive-ui')['NSelect']
NSpace: typeof import('naive-ui')['NSpace'] NSpace: typeof import('naive-ui')['NSpace']
NSpin: typeof import('naive-ui')['NSpin'] NSpin: typeof import('naive-ui')['NSpin']
NStatistic: typeof import('naive-ui')['NStatistic']
NSwitch: typeof import('naive-ui')['NSwitch'] NSwitch: typeof import('naive-ui')['NSwitch']
NTab: typeof import('naive-ui')['NTab'] NTab: typeof import('naive-ui')['NTab']
NTable: typeof import('naive-ui')['NTable']
NTabPane: typeof import('naive-ui')['NTabPane']
NTabs: typeof import('naive-ui')['NTabs'] NTabs: typeof import('naive-ui')['NTabs']
NTag: typeof import('naive-ui')['NTag'] NTag: typeof import('naive-ui')['NTag']
NTbody: typeof import('naive-ui')['NTbody']
NTd: typeof import('naive-ui')['NTd']
NText: typeof import('naive-ui')['NText']
NTh: typeof import('naive-ui')['NTh']
NThead: typeof import('naive-ui')['NThead']
NTooltip: typeof import('naive-ui')['NTooltip'] NTooltip: typeof import('naive-ui')['NTooltip']
NTr: typeof import('naive-ui')['NTr']
NTree: typeof import('naive-ui')['NTree']
NTreeSelect: typeof import('naive-ui')['NTreeSelect'] NTreeSelect: typeof import('naive-ui')['NTreeSelect']
NUpload: typeof import('naive-ui')['NUpload']
NUploadDragger: typeof import('naive-ui')['NUploadDragger']
NWatermark: typeof import('naive-ui')['NWatermark'] NWatermark: typeof import('naive-ui')['NWatermark']
OssUpload: typeof import('./../components/custom/oss-upload.vue')['default'] OssUpload: typeof import('./../components/custom/oss-upload.vue')['default']
PinToggler: typeof import('./../components/common/pin-toggler.vue')['default'] PinToggler: typeof import('./../components/common/pin-toggler.vue')['default']

View File

@ -241,9 +241,9 @@ declare module "@elegant-router/types" {
| "oss_oss" | "oss_oss"
| "report_detail-entry" | "report_detail-entry"
| "report_payroll-records" | "report_payroll-records"
| "report_performance-md"
| "report_performance-h" | "report_performance-h"
| "report_performance-m" | "report_performance-m"
| "report_performance-md"
| "report_performance-q" | "report_performance-q"
| "report_performance-y" | "report_performance-y"
| "report_performance" | "report_performance"

View File

@ -40,28 +40,28 @@ public interface MpsDetailEntryMapper extends BaseMapperPlus<MpsDetailEntry, Mps
@DataColumn(key = "deptName", value = "m.create_dept"), @DataColumn(key = "deptName", value = "m.create_dept"),
@DataColumn(key = "userName", value = "m.create_by") @DataColumn(key = "userName", value = "m.create_by")
}) })
@Select({ // @Select({
"select " + // "select " +
"c.old_card_no as oldCardNo , c.new_card_no as newCardNo, c.replace_method as affair ," + // "c.old_card_no as oldCardNo , c.new_card_no as newCardNo, c.replace_method as affair ," +
"t.traffic_no as trafficNo ,t.traffic_amt as trafficAmt, " + // "t.traffic_no as trafficNo ,t.traffic_amt as trafficAmt, " +
//
"m.* ," + // "m.* ," +
"d.dept_name AS yxDeptName ," + // "d.dept_name AS yxDeptName ," +
"de.dept_name AS deptName ," + // "de.dept_name AS deptName ," +
" CASE " + // " CASE " +
" WHEN m.traffic_id IS NOT NULL THEN t.check_flag " + // " WHEN m.traffic_id IS NOT NULL THEN t.check_flag " +
" WHEN m.magnetic_card_id IS NOT NULL THEN c.check_flag " + // " WHEN m.magnetic_card_id IS NOT NULL THEN c.check_flag " +
" ELSE m.check_flag " + // " ELSE m.check_flag " +
" END AS checkFlag "+ // " END AS checkFlag "+
"from mps_market m " + // "from mps_market m " +
" left join mps_traffic t on m.traffic_id = t.traffic_id " + // " left join mps_traffic t on m.traffic_id = t.traffic_id " +
" left join mps_magneticcard c on m.magnetic_card_id = c.magnetic_card_id " + // " left join mps_magneticcard c on m.magnetic_card_id = c.magnetic_card_id " +
" LEFT JOIN sys_user s ON m.yx_id = s.mkt_no and m.del_flag = '0'"+ // " LEFT JOIN sys_user s ON m.yx_id = s.mkt_no and m.del_flag = '0'"+
" inner JOIN sys_dept d ON s.dept_id = d.dept_id "+ // " inner JOIN sys_dept d ON s.dept_id = d.dept_id "+
" inner JOIN sys_dept de ON m.dept_id = de.dept_id "+ // " inner JOIN sys_dept de ON m.dept_id = de.dept_id "+
"${ew.customSqlSegment}"+ // "${ew.customSqlSegment}"+
"and m.del_flag = '0' order by m.entry_date desc" // "and m.del_flag = '0' order by m.entry_date desc"
}) // })
List<MpsDetailEntryExportVo> selectMpsDetailEntryExportList(@Param(Constants.WRAPPER) Wrapper<MpsDetailEntry> queryWrapper); List<MpsDetailEntryExportVo> selectMpsDetailEntryExportList(@Param(Constants.WRAPPER) Wrapper<MpsDetailEntry> queryWrapper);
} }

View File

@ -107,7 +107,7 @@ public class MpsDetailEntryServiceImpl implements IMpsDetailEntryService {
@Override @Override
public List<MpsDetailEntryExportVo> queryList(MpsDetailEntryBo bo) { public List<MpsDetailEntryExportVo> queryList(MpsDetailEntryBo bo) {
LambdaQueryWrapper<MpsDetailEntry> lqw = buildQueryWrapper(bo); LambdaQueryWrapper<MpsDetailEntry> lqw = buildQueryWrapper(bo);
// lqw.eq(""MpsDetailEntry::getDelFlag"", '0'); lqw.eq(MpsDetailEntry::getDelFlag, '0');
return baseMapper.selectMpsDetailEntryExportList(lqw); return baseMapper.selectMpsDetailEntryExportList(lqw);
// return baseMapper.selectVoList(lqw); // return baseMapper.selectVoList(lqw);
} }
@ -115,7 +115,7 @@ public class MpsDetailEntryServiceImpl implements IMpsDetailEntryService {
private LambdaQueryWrapper<MpsDetailEntry> buildQueryWrapper(MpsDetailEntryBo bo) { private LambdaQueryWrapper<MpsDetailEntry> buildQueryWrapper(MpsDetailEntryBo bo) {
Map<String, Object> params = bo.getParams(); Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<MpsDetailEntry> lqw = Wrappers.lambdaQuery(); LambdaQueryWrapper<MpsDetailEntry> lqw = Wrappers.lambdaQuery();
// lqw.orderByAsc(MpsDetailEntry::getDataId); lqw.orderByDesc(MpsDetailEntry::getDate);
lqw.eq(StringUtils.isNotBlank(bo.getSubcategoryId()), MpsDetailEntry::getSubcategoryId, bo.getSubcategoryId()); lqw.eq(StringUtils.isNotBlank(bo.getSubcategoryId()), MpsDetailEntry::getSubcategoryId, bo.getSubcategoryId());
lqw.like(StringUtils.isNotBlank(bo.getSubcategoryName()), MpsDetailEntry::getSubcategoryName, bo.getSubcategoryName()); lqw.like(StringUtils.isNotBlank(bo.getSubcategoryName()), MpsDetailEntry::getSubcategoryName, bo.getSubcategoryName());
lqw.like(StringUtils.isNotBlank(bo.getYxName()), MpsDetailEntry::getYxName, bo.getYxName()); lqw.like(StringUtils.isNotBlank(bo.getYxName()), MpsDetailEntry::getYxName, bo.getYxName());

View File

@ -456,7 +456,7 @@ public class MpsMarketServiceImpl implements IMpsMarketService {
*/ */
String[] arr = new String[]{"62152109", "62169009", "62231909", "62232009", "62326591", "90010509"}; String[] arr = new String[]{"62152109", "62169009", "62231909", "62232009", "62326591", "90010509"};
if (!Arrays.asList(arr).contains(entity.getCustAcctNo().substring(0, 8))) { if (!Arrays.asList(arr).contains(entity.getCustAcctNo().substring(0, 8))) {
throw new ServiceException("银行卡前8位不支持"); throw new ServiceException("非本行开立银行卡!");
} }
mpsMarket.setCustAcctNo(entity.getCustAcctNo()); mpsMarket.setCustAcctNo(entity.getCustAcctNo());
mpsMarket.setSubcategoryId(entity.getSubcategoryId()); mpsMarket.setSubcategoryId(entity.getSubcategoryId());

View File

@ -46,7 +46,7 @@ public class OriginalHntSgsInfoImportVo implements Serializable {
*/ */
@ExcelProperty(value = { @ExcelProperty(value = {
"签约ID" "签约ID"
}, index = 1) })
@NotBlank(message = "签约ID不能为空") @NotBlank(message = "签约ID不能为空")
private String contractId; private String contractId;

View File

@ -3,5 +3,66 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.mps.mapper.MpsDetailEntryMapper"> <mapper namespace="org.dromara.mps.mapper.MpsDetailEntryMapper">
<resultMap id="MarketResultMap" type="org.dromara.mps.domain.vo.MpsDetailEntryExportVo">
<!-- 基本字段映射 -->
<id column="market_id" property="marketId"/>
<result column="jb_name" property="jbName"/>
<result column="jb_id" property="jbId"/>
<result column="yx_name" property="yxName"/>
<result column="yx_id" property="yxId"/>
<result column="date" property="date"/>
<result column="cust_name" property="custName"/>
<result column="cust_type" property="custType"/>
<result column="subcategory_name" property="subcategoryName"/>
<result column="cust_phone_no" property="custPhoneNo"/>
<result column="cust_id" property="custId"/>
<result column="cust_acct_no" property="custAcctNo"/>
<result column="acquiring_name" property="acquiringName"/>
<result column="acquiring_id" property="acquiringId"/>
<result column="internet_channel" property="internetChannel"/>
<result column="workplace" property="workplace"/>
<result column="surplus_account_name" property="surplusAccountName"/>
<result column="heating_no" property="heatingNo"/>
<result column="branch_name" property="branchName"/>
<result column="check_msg" property="checkMsg"/>
<result column="del_flag" property="delFlag"/>
<!-- 关联表字段映射 -->
<result column="oldCardNo" property="oldCardNo"/>
<result column="newCardNo" property="newCardNo"/>
<result column="affair" property="affair"/>
<result column="trafficNo" property="trafficNo"/>
<result column="trafficAmt" property="trafficAmt"/>
<result column="yxDeptName" property="yxDeptName"/>
<result column="deptName" property="deptName"/>
<result column="checkFlag" property="checkFlag"/>
</resultMap>
<select id="selectMpsDetailEntryExportList" resultMap="MarketResultMap" parameterType="map">
select * from (
SELECT
c.old_card_no AS oldCardNo,
c.new_card_no AS newCardNo,
c.replace_method AS affair,
t.traffic_no AS trafficNo,
t.traffic_amt AS trafficAmt,
m.*,
d.dept_name AS yxDeptName,
de.dept_name AS deptName,
CASE
WHEN m.traffic_id IS NOT NULL THEN t.check_flag
WHEN m.magnetic_card_id IS NOT NULL THEN c.check_flag
ELSE m.check_flag
END AS checkFlag
FROM mps_market m
LEFT JOIN mps_traffic t ON m.traffic_id = t.traffic_id
LEFT JOIN mps_magneticcard c ON m.magnetic_card_id = c.magnetic_card_id
LEFT JOIN sys_user s ON m.yx_id = s.mkt_no
LEFT JOIN sys_dept d ON s.dept_id = d.dept_id
LEFT JOIN sys_dept de ON m.dept_id = de.dept_id
where m.del_flag='0'
) temp ${ew.customSqlSegment}
</select>
</mapper> </mapper>