jiangping
2023-09-14 21889b32ae2f342cf1cb78c37734370d0466e978
组织bug
已修改39个文件
403 ■■■■■ 文件已修改
h5_standard/.env 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5_standard/.env.development 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5_standard/.env.production 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5_standard/public/redirect.html 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5_standard/src/views/tabPage/my.vue 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5_standard/src/views/tabPage/toBeHandled.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/common/config.js 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/components/InOutInfo.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/components/LabelSelection.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/components/SelectTraMultipleMaterial.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/components/myTabber.vue 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/components/workOrderInfo.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages/changePassword/changePassword.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages/index/index.vue 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages/plannedDistribution/plannedDistribution.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages/plannedProgress/plannedProgress.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages_adjust/components/multipleMaterial.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages_adjust/pages/OrderDetail/OrderDetail.vue 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages_adjust/pages/reportingForWork/reportingForWork.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages_adjust/pages/warehousingDetails/warehousingDetails.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages_adjust/pages/workOrderReporting/workOrderReporting.vue 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages_inspect/pages/InOperation/InOperation.vue 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages_inspect/pages/OutOperation/OutOperation.vue 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages_inspect/pages/equipmentInspection/equipmentInspection.vue 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform_web/.env.development 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform_web/src/views/business/companyLoginLog.vue 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform_web/src/views/business/workbench.vue 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform_web/src/views/system/loginLog.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/core/utils/Constants.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/core/utils/DateUtil.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/service/ext/impl/DepartmentExtServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/service/system/impl/SystemLoginServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/service/system/impl/SystemUserServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/service/system/impl/WxLoginServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/resources/mappers/SystemUserMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
web_standard/.env.development 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
web_standard/src/components/common/ShowImage.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web_standard/src/views/ext/wInboundExt.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5_standard/.env
@@ -1,5 +1,5 @@
# 接口前缀  _api_api_test
VUE_APP_API_PREFIX = '/doumeeplant'
VUE_APP_API_PREFIX = '/api'
# 上下文路径 --> 默认./(可以部署在服务器任意路径)
VUE_APP_CONTEXT = './'
h5_standard/.env.development
@@ -20,7 +20,7 @@
# VUE_APP_API = 'http://192.168.0.13:10012/'
VUE_APP_API = 'http://192.168.0.15:10021/'
# VUE_APP_API = 'http://192.168.0.15:10021/'
# 刘磊磊
# VUE_APP_API = 'http://192.168.0.18:10012/'
h5_standard/.env.production
@@ -20,7 +20,7 @@
# 测试
# VUE_APP_API = 'https://dmtest.ahapp.net/doumeeplant_api_test/'
VUE_APP_API = 'https://127.0.0.1/doumeeplant/'
#VUE_APP_API = 'https://127.0.0.1/doumeeplant/'
# 演示
#VUE_APP_API = 'https://www.mes.red/doumeeplant/'
VUE_APP_API = 'https://www.mes.red/api/'
h5_standard/public/redirect.html
@@ -9,15 +9,16 @@
  var url = window.location.href
  if (url.indexOf('?code') === -1) {
    let query = url.split('?')[1]
    // let tempUrl = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx6ea339a336f26380&redirect_url=https://www.mes.red/h5/redirect.html&response_type=code&scope=snsapi_base&state=#wechat_redirect`
    // let tempUrl = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx6ea339a336f26380&redirect_url=https://dmtest.ahapp.net/doumeeplant_h5/redirect.html&response_type=code&scope=snsapi_base&state=#wechat_redirect`
    let tempUrl = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx6ea339a336f26380&redirect_url=https://lingyang.mes.show:1801/h5/redirect.html&response_type=code&scope=snsapi_base&state=#wechat_redirect`
    let tempUrl = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx6ea339a336f26380&redirect_uri=https://www.mes.red/h5/redirect.html&response_type=code&scope=snsapi_base&state=#wechat_redirect`
    // let tempUrl = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx6ea339a336f26380&redirect_uri=https://dmtest.ahapp.net/doumeeplant_h5/redirect.html&response_type=code&scope=snsapi_base&state=#wechat_redirect`
    // let tempUrl = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx6ea339a336f26380&redirect_uri=https://lingyang.mes.show:1801/h5/redirect.html&response_type=code&scope=snsapi_base&state=#wechat_redirect`
    // let tempUrl = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx6ea339a336f26380&redirect_uri=https://www.mes.red/lingyangh5/redirect.html&response_type=code&scope=snsapi_base&state=#wechat_redirect`
    window.location.replace(tempUrl)
  } else {
    var code = url.substring(url.indexOf('?') + 6, url.indexOf('&'))
    // let href1 = `https://www.mes.red/h5/#/wxLogin?code=${code}`
    // let href1 = `https://dmtest.ahapp.net/doumeeplant_h5/#/wxLogin?code=${code}`
    let href1 = `https://lingyang.mes.show:1801/h5/#/wxLogin?code=${code}`
    let href1 = `https://www.mes.red/lingyangh5/#/wxLogin?code=${code}`
    window.location.replace(href1)
  }
</script>
h5_standard/src/views/tabPage/my.vue
@@ -22,7 +22,7 @@
                </div>
            </div>
        </div>
        <div class="box_out" v-if="store.state.env && (store.state.env == 'WX' || store.state.env == 'XCX')" @click="loginOut"><span>退出登录</span></div>
        <div class="box_out" @click="loginOut"><span>退出登录</span></div>
    </div>
    <van-popup v-model:show="show" position="bottom" round :style="{ height: '50%' }">
        <van-picker
@@ -78,11 +78,12 @@
        }).then(res => {
            if (res.code === 200) {
                // window.parent.postMessage('阿康', '*')
                // let href = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx6ea339a336f26380&redirect_url=https://www.mes.red/h5/redirect.html&response_type=code&scope=snsapi_base&state=#wechat_redirect'
               //  let href = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx6ea339a336f26380&redirect_url=https://www.mes.red/lingyangh5/redirect.html&response_type=code&scope=snsapi_base&state=#wechat_redirect'
                // let href = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx6ea339a336f26380&redirect_url=https://dmtest.ahapp.net/doumeeplant_h5/redirect.html&response_type=code&scope=snsapi_base&state=#wechat_redirect'
                let href = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx6ea339a336f26380&redirect_url=https://lingyang.mes.show:1801/h5/redirect.html&response_type=code&scope=snsapi_base&state=#wechat_redirect'
                let href = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx6ea339a336f26380&redirect_uri=https://www.mes.red/h5/redirect.html&response_type=code&scope=snsapi_base&state=#wechat_redirect'
                // let href = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx6ea339a336f26380&redirect_uri=https://dmtest.ahapp.net/doumeeplant_h5/redirect.html&response_type=code&scope=snsapi_base&state=#wechat_redirect'
                // let href = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx6ea339a336f26380&redirect_uri=https://lingyang.mes.show:1801/h5/redirect.html&response_type=code&scope=snsapi_base&state=#wechat_redirect'
                // let href = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx6ea339a336f26380&redirect_uri=https://www.mes.red/lingyangh5/redirect.html&response_type=code&scope=snsapi_base&state=#wechat_redirect'
                window.open(href)
                // window.location.replace(href)
            }
        })
    }
h5_standard/src/views/tabPage/toBeHandled.vue
@@ -270,6 +270,7 @@
                    list.value.push(...res.data.records)
                } else {
                    finished.value = true
                    loading.value = false
                }
            }).catch(err => {
                refreshing.value = false
minipro_standard/common/config.js
@@ -2,7 +2,8 @@
    // baseUrl: 'http://106.14.20.42/test_hfznzz/',
    // baseUrl: 'https://hefei.dtkey.cn/test_hfznzz/',
    // baseUrl: '/doumeeplant_api',
    baseUrl: 'https://dmtest.ahapp.net/doumeeplant_api',
    baseUrl: 'https://dmtest.ahapp.net/doumeeplant_api',
    // baseUrl: 'http://192.168.0.15:10021',
    phoneRegular: /^1[3456789]\d{9}$/,
    mailboxRegular: /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/,
    positiveInteger: /^[0-9]*[1-9][0-9]*$/,
minipro_standard/components/InOutInfo.vue
@@ -16,7 +16,7 @@
        </view>
        <view v-if="isOut" class="c2 mt25">
            <text class="c6">入库接收人:</text>
            {{ info.originCode || '-' }}
            {{ info.inUserName || '-' }}
        </view>
        <view class="c2 mt25">
            <text class="c6">申请时间:</text>
minipro_standard/components/LabelSelection.vue
@@ -71,7 +71,7 @@
            }
            .tag_item {
                min-width: 120rpx;
                padding: 14rpx 24rpx;
                padding: 14rpx;
                border-radius: 26rpx;
                text-align: center;
                flex-shrink: 0;
minipro_standard/components/SelectTraMultipleMaterial.vue
@@ -249,7 +249,7 @@
    .bottom {
        height: 98rpx;
        // bottom: calc(env(safe-area-inset-bottom) + 20rpx);
        .submit {
            width: 272rpx;
            height: 98rpx;
minipro_standard/components/myTabber.vue
@@ -7,8 +7,8 @@
            activeColor="#222"
            inactiveColor="#666"
            :safeAreaInsetBottom="true">
            <u-tabbar-item text="待办">
                <view class="" slot="active-icon">
            <u-tabbar-item text="待办" :badge="upcomingNum.d">
                <view class="" slot="active-icon">
                    <image src="@/static/nav_daiban_sel@2x.png" class="icon-style" mode=""></image>
                </view>
                <view class="" slot="inactive-icon"> 
@@ -36,6 +36,8 @@
</template>
<script>
    import { mapState } from 'vuex'
    export default {
        name:"myTabbar",
        props: {
@@ -46,6 +48,9 @@
                value: 0
            };
        },
        computed: {
            ...mapState(['upcomingNum'])
        },
        methods: {
            click(index) {
                // console.log('click', index);
minipro_standard/components/workOrderInfo.vue
@@ -79,7 +79,7 @@
    color: #666666;
    line-height: 26rpx;
}
.order-info {
    border-bottom: 20rpx #f7f7f7 solid;
}
// .order-info {
//     border-bottom: 20rpx #f7f7f7 solid;
// }
</style>
minipro_standard/pages/changePassword/changePassword.vue
@@ -58,7 +58,7 @@
                    uni.showToast({ title: '原密码不能为空', icon: 'none', duration: 2000 });
                } else if (!this.form.newPassword) {
                    uni.showToast({ title: '新密码不能为空', icon: 'none', duration: 2000 });
                } else if (!/^(?=.*[A-Za-z])(?=.*\d)(?=.*[$@$!%*#?&])[A-Za-z\d$@$!%*#?&]{6,}$/.test(this.form.newPassword)) {
                } else if (!/^([a-z0-9\.\@\!\#\(/)/$\%\^\&\*\(\)]){6,20}$/i.test(this.form.newPassword)) {
                    uni.showToast({ title: '密码格式不正确', icon: 'none', duration: 2000 });
                } else if (!this.form.confirmPassword) {
                    uni.showToast({ title: '确认密码不能为空', icon: 'none', duration: 2000 });
minipro_standard/pages/index/index.vue
@@ -9,8 +9,25 @@
                    :style="{background: '#fff', zIndex: '999', paddingTop: `${statusbarHeight}px`, height: `${navHeight}px`, lineHeight:`${navHeight}px`, textAlign: 'center'}">
                    待办</view>
                <div class="content_search">
                    <v-Search @searchInput="searchInput" @submit="search" @reset="reset" :isShow="true"
                    <v-Search @searchInput="searchInput" @submit="confirm" @reset="resetType" :isShow="true"
                        placeholder="搜索关键字">
                        <template v-slot:content>
                            <view class="rp contanir">
                                <view class="c2 b">类型</view>
                                <view class="content">
                                    <u-grid col="2" :border="false">
                                        <u-grid-item v-for="item in types" :key="item.id">
                                            <view class="ptb20 f26 c9 type-style tc rd10" :class="type===item.id?'sbtn_green':'sbtn_gray'"
                                                @click="type=item.id">{{ item.name }}</view>
                                        </u-grid-item>
                                    </u-grid>
                                </view>
                                <!-- <view class="flex ap tc bottom-view">
                                    <view class="fx1 ptb20 sbtn_gray c9" @click="resetType">重置</view>
                                    <view class="fx1 ml20 ptb20 sbtn_green" @click="confirm">确定</view>
                                </view> -->
                            </view>
                        </template>
                    </v-Search>
                    <div class="content_search_x"></div>
                    <LabelSelection :TagList="tagList" :isShow="true" @change="clickTag"></LabelSelection>
@@ -166,7 +183,6 @@
                    .in(this)
                    .select('.content_search')
                    .boundingClientRect((rect) => {
                        console.log('-----',rect);
                        that.height = `calc(100vh - ${rect.height + 80}px)`
                        that.top = `${rect.height}px`
                    })
@@ -178,6 +194,9 @@
                success: res => {
                    this.windowHeight = res.windowHeight
                }
            })
            uni.$on('success', () => {
                this.search();
            })
            this.loadData()
        },
@@ -186,7 +205,6 @@
            searchInput(val) {
                this.searchForm.mixParam = val;
                this.search();
                this.getPageCount()
            },
            getPageCount() {
                pageCount({mixParam: this.searchForm.mixParam})
@@ -220,8 +238,10 @@
            refresh() {
                if (this.triggered) return
                this.triggered = true;
                this.page.page = 1
                this.loadData()
                this.search()
                // this.page.page = 1
                // this.loadData()
                // this.getPageCount()
            },
            loadMore() {
                this.page.page += 1
@@ -233,6 +253,7 @@
                this.search()
            },
            jump(item) {
                console.log(item.type);
                switch(item.type) {
                    case 0: case 2: case 5: {
                        if (item.status === 0) {
@@ -240,6 +261,7 @@
                                url: `/pages_inspect/pages/OutOperation/OutOperation?id=${item.objId}&dbid=${item.id}&type=7`
                            })
                        } else {
                            debugger
                            uni.navigateTo({
                                url: `/pages_adjust/pages/warehousingDetails/warehousingDetails?id=${item.objId}&status=${item.status}&type=${item.type}&dbid=${item.id}`
                            })
@@ -388,7 +410,8 @@
            resetType() {
                this.type = ''
                this.searchForm.type = ''
                this.confirm()
                this.confirm()
            },
            confirm() {
                this.searchForm.type = this.type
@@ -398,6 +421,7 @@
            search() {
                this.page.page = 1
                this.loadData()
                this.getPageCount()
            }
        }
    }
minipro_standard/pages/plannedDistribution/plannedDistribution.vue
@@ -119,7 +119,11 @@
            // 点击当前项
            clickItem(i) {
                this.list.forEach((item, index) => {
                    item.isActive = i === index
                    if (i === index) {
                        item.isActive = !item.isActive
                    } else {
                        item.isActive = false
                    }
                })
            },
            // 搜索
minipro_standard/pages/plannedProgress/plannedProgress.vue
@@ -333,8 +333,8 @@
                        capacity: this.listData.capacity,
                        model: {
                            mixParam: this.listData.mixParam,
                            startDate: this.listData.startDate,
                            endDate: this.listData.endDate,
                            planDateStartDate: this.listData.startDate,
                            planDateEndDate: this.listData.endDate,
                            procedureIdList: this.listData.procedureIds ? this.listData.procedureIds : [],
                            factoryId: this.listData.departIds,
                            statusList: this.listData.cateIds
minipro_standard/pages_adjust/components/multipleMaterial.vue
@@ -9,7 +9,7 @@
                scroll-y="true"
                @scrolltolower="loadMore">
                    <view v-for="(item1, index) in list" :key="index" class="flex mb20" @click="jump(index)">
                        <view class="img36 mr20 pt10">
                        <view class="img36 mr20 pt10" style="position: relative;">
                            <u-checkbox-group style="display: block;" name="" @change="jump(index)">
                                <u-checkbox :checked="item1.isActive"></u-checkbox>
                            </u-checkbox-group>
minipro_standard/pages_adjust/pages/OrderDetail/OrderDetail.vue
@@ -1,10 +1,6 @@
<template>
    <view>
        <workOrderInfo :orederMessage="info" />
        <!-- <view class="bg_cate">
            <view @click="clickIten(index)" :class="typeView == index ? 'bg_cate_item active' : 'bg_cate_item'"
                v-for="(item, index) in cate" :key="index">{{ item.name }}</view>
        </view> -->
        <div class="bg_list">
            <div class="bg_list_item">
                <div class="bg_list_item_top">
@@ -113,6 +109,49 @@
                    </div>
                </template>
            </div>
            <div class="bg_list_item">
                <div class="bg_list_item_top">
                    <div class="bg_list_item_top_left">
                        <div class="bg_list_item_top_left_x bg_m"></div>
                        <span>工资绩效</span>
                    </div>
                </div>
                <div class="bg_list_item_h">
                    <div class="bg_list_item_num">
                        <div class="bg_list_item_num_item">
                            <span>计件方式</span>
                            <div class="bg_list_item_num_item_list">
                                {{ performance.salaryType == 0 ? '计件' : '计时' }}
                            </div>
                        </div>
                    </div>
                    <div class="bg_list_item_num">
                        <div class="bg_list_item_num_item">
                            <span>工资单价</span>
                            <div class="bg_list_item_num_item_sr">
                                <span class="color1">{{ (performance.salaryPrice / 10 / 10).toFixed(2) }}元/{{ performance.salaryType ==
                            0 ? '件' : '时' }}</span>
                            </div>
                        </div>
                    </div>
                    <div class="bg_list_item_num">
                        <div class="bg_list_item_num_item">
                            <span>预计工资</span>
                            <div class="bg_list_item_num_item_sr">
                                <span class="color1">{{ (performance.salary / 10 / 10).toFixed(2) }}元</span>
                            </div>
                        </div>
                    </div>
                    <div class="bg_list_item_num">
                        <div class="bg_list_item_num_item">
                            <span>达标率</span>
                            <div class="bg_list_item_num_item_sr">
                                <span class="color1">{{ complianceRate }}%</span>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
        
    </view>
@@ -152,13 +191,6 @@
        data() {
            return {
                workorderId: '',
                cate: [{
                        name: '生产'
                    },
                    {
                        name: '点检'
                    }
                ],
                form: {
                    time: '',
                    efective: [],
@@ -186,17 +218,24 @@
                    qualified: '', // 合格
                    undesirableId: '',
                    undesirable: 5 // 不良
                },
                pages: {
                    capacity: 10,
                    page: 1,
                    total: 0
                },
                djData: [],
                cateList: [],
                finished: true,
                finished: true,
                performance: {}
            };
        },
        onLoad(obj) {
            this.workorderId = obj.id
            this.queryByIds()
            this.getOrocessRecords()
            this.getData()
            this.getData()
            this.pageDJs()
            this.getOrocessRecordCC()
            uni.$on('spotAdd', () => {
                if (this.typeView == 1) {
@@ -206,43 +245,23 @@
            })
        },
        computed: {
            expectedSalary() {
                if (this.arrType.length === 0) return 0;
                // 按件计算
                if (this.arrType[this.form.index].type == 0) {
                    if (!this.produceFrom.qualified) return 0
                    if (this.arrType[this.form.index].unqualified == 1) { // 是否计入不良品
                        let total = Number(this.produceFrom.qualified) + Number(this.produceFrom.undesirable)
                        return (total * (this.arrType[this.form.index].salary / 100)).toFixed(2) || 0
                    } else {
                        return (Number(this.produceFrom.qualified) * (this.arrType[this.form.index].salary / 100)).toFixed(
                            2) || 0
                    }
                } else {
                    if (!this.form.duration) return 0;
                    let h = (this.form.duration / 60 / 60).toFixed(2)
                    return (Number(h) * (this.arrType[this.form.index].salary / 10 / 10)).toFixed(2) || 0
                }
            },
            complianceRate() {
                if (this.arrType.length === 0) return 0;
                if (!this.produceFrom.qualified && !this.produceFrom.undesirable) return 0;
                if (!this.form.duration) return 0;
                if (!this.arrType[this.form.index].num) return 0;
                // 按件计算
                // if (infoBox.value.type == 0) {
                if (this.arrType[this.form.index].unqualified == 1) { // 是否计入不良品
                    let a = ((Number(this.produceFrom.qualified) + Number(this.produceFrom.undesirable)) / (this.form
                if (!this.performance) return 0;
                if (!this.performance.duration) return 0;
                if (!this.performance.qualifiedNum && !this.performance.unqualifiedNum) return 0;
                if (this.performance.salaryUnqualified == 1) { // 是否计入不良品
                    let a = ((Number(this.performance.qualifiedNum) + Number(this.performance.unqualifiedNum)) / (this.performance
                        .duration / 3600)).toFixed(2)
                    let b = (this.arrType[this.form.index].num / (this.arrType[form.index].times / 3600)).toFixed(2)
                    let b = (this.performance.salaryNum / (this.performance.salaryTimes / 3600)).toFixed(2)
                    return ((Number(a) / Number(b)) * 100).toFixed(2)
                    // let total = (Number(from.qualified) + Number(from.undesirable)) / ((from.duration * 60 * 60) * infoBox.value.num / )
                    // return total * infoBox.value.salary;
                } else {
                    let a = (this.produceFrom.qualified / (this.form.duration / 3600)).toFixed(2)
                    let b = (this.arrType[this.form.index].num / (this.arrType[this.form.index].times / 3600)).toFixed(2)
                } else {
                    let a = (this.performance.qualifiedNum / (this.performance.duration / 3600)).toFixed(2)
                    // let b = (this.arrType[this.form.index].num / (this.arrType[this.form.index].times / 3600)).toFixed(2)
                    let b = (this.performance.salaryNum / (this.performance.salaryTimes / 3600)).toFixed(2)
                    return ((Number(a) / Number(b)) * 100).toFixed(2)
                    // return Number(from.qualified) * infoBox.value.salary;
                }
            }
        },
@@ -268,7 +287,7 @@
                    this.pageDJs()
                }
            },
            getLists() {
            getLists() {
                if (!this.finished) {
                    return
                }
@@ -343,7 +362,7 @@
                    url: `/pages_inspect/pages/InspectionRecords/InspectionRecords?id=${this.workorderId}`
                })
            },
            pageDJs() {
            pageDJs() {
                pageDJ({
                        capacity: this.pages.capacity,
                        page: this.pages.page,
@@ -427,7 +446,7 @@
            },
            queryByIds() {
                queryById(this.workorderId)
                    .then(res => {
                    .then(res => {
                        this.info = res.data
                        queryList({
                            deleted: 0,
@@ -464,10 +483,13 @@
            getOrocessRecordCC() {
                getWorkorderRecordListStandard({
                    workorderId: this.workorderId
                }).then(res => {
                }).then(res => {
                    console.log(res.data[0]);
                    debugger
                    if (res.data.length > 0) {
                        this.produceFrom.qualified = res.data[0].qualifiedNum
                        this.produceFrom.undesirable = res.data[0].unqualifiedNum
                        this.performance = res.data[0]
                    }
                })
            },
@@ -512,13 +534,13 @@
        width: 100%;
        display: flex;
        flex-direction: column;
        margin-top: 30rpx;
        // margin-top: 30rpx;
        .bg_list_item {
            display: flex;
            flex-direction: column;
            // margin-bottom: 40rpx;
            border-bottom: 40rpx #f7f7f7 solid;
            // border-bottom: 40rpx #f7f7f7 solid;
            .kong {
                text-align: center;
@@ -535,9 +557,8 @@
                display: flex;
                align-items: center;
                justify-content: space-between;
                padding-left: 30rpx;
                padding-right: 30rpx;
                margin-bottom: 30rpx;
                padding: 30rpx;
                background-color: #f7f7f7;
                .bg_list_item_top_left {
                    display: flex;
minipro_standard/pages_adjust/pages/reportingForWork/reportingForWork.vue
@@ -1218,7 +1218,7 @@
        .bottom-view {
            left: 40rpx;
            right: 40rpx;
            bottom: 0
            bottom: 20rpx
        }
    }
</style>
minipro_standard/pages_adjust/pages/warehousingDetails/warehousingDetails.vue
@@ -269,10 +269,9 @@
            // 跳转出库入库
            submit() {
                if (this.data.status === 0) { // 出库
                    console.log('出库')
                    // router.push({ name: 'issueOperation', query: { id: route.query.id, type: 7 } })
                    uni.navigateTo({
                        url: `/pages/OutOperation/OutOperation?id=${this.id}&type=7`
                        url: `/pages_inspect/pages/OutOperation/OutOperation?id=${this.id}&type=7`
                    });
                } else if (this.data.status === 1) { // 入库
                    if (this.data.type === 3) { // 备料确认
@@ -280,9 +279,8 @@
                        // router.push({ name: 'orderStock', query: { id: route.query.id, status: data.value.status, next: 1 } })
                        return
                    }
                    console.log('入库')
                    uni.navigateTo({
                        url: `/pages/InOperation/InOperation?id=${this.id}&type=7`
                        url: `/pages_inspect/pages/InOperation/InOperation?id=${this.id}&type=7`
                    });
                    // router.push({ name: 'warehousing', query: { id: route.query.id, type: 7 } })
                }
minipro_standard/pages_adjust/pages/workOrderReporting/workOrderReporting.vue
@@ -252,7 +252,7 @@
                <div class="tg_footer">
                    <!-- proxy.$auth('h5:workorderoutput:confirm') &&  -->
                    <button class="tg_footer_qr" @click="submitBG" v-if="isSubmit">确认报工</button>
                    <div class="tg_footer_fh" @click="gofh" v-else-if="!isSubmit">返回修改</div>
                    <div class="tg_footer_fh" @click="statistics = false" v-else-if="!isSubmit">返回修改</div>
                </div>
            </div>
        </u-popup>
@@ -344,7 +344,8 @@
            this.workorderId = obj.id
            this.queryByIds()
            this.getOrocessRecords()
            this.getData()
            this.getData()
            this.pageDJs()
            uni.$on('spotAdd', () => {
                if (this.typeView == 1) {
                    this.pages.page = 1
@@ -414,7 +415,8 @@
                                        item.id = item.type
                                        item.active = index == 0
                                    })
                                    this.arrType = result.data
                                    this.arrType = result.data
                                } else {
                                    this.arrType = []
                                }
@@ -641,8 +643,11 @@
                            num: this.produceFrom.undesirable
                        })
                        this.isSubmit = Number(this.produceFrom.qualified) + Number(this.produceFrom.undesirable) <= this
                            .info.planNum;
                    }
                            .info.planNum;
                        console.log(this.isSubmit);
                        debugger
                    }
                } else {
                    console.log('推式')
                    if (this.feedingData.length === 0) {
@@ -652,7 +657,6 @@
                    }
                    if (this.produceFrom.qualified <= 0 && this.produceFrom.undesirable <= 0) {
                        uni.$u.toast('产出明细不能为空')
                        return
                    }
                    this.statisticsData = []
@@ -953,14 +957,14 @@
        width: 100%;
        display: flex;
        flex-direction: column;
        margin-top: 30rpx;
        // margin-top: 30rpx;
        .bg_list_item {
            display: flex;
            flex-direction: column;
            // margin-bottom: 40rpx;
            border-bottom: 40rpx #f7f7f7 solid;
            // border-bottom: 40rpx #f7f7f7 solid;
            //
            .kong {
                text-align: center;
                padding: 30rpx 0;
@@ -975,10 +979,10 @@
            .bg_list_item_top {
                display: flex;
                align-items: center;
                justify-content: space-between;
                padding-left: 30rpx;
                padding-right: 30rpx;
                margin-bottom: 30rpx;
                justify-content: space-between;
                background-color: #f7f7f7;
                padding: 30rpx;
                // padding-right: 30rpx;
                .bg_list_item_top_left {
                    display: flex;
@@ -1223,7 +1227,8 @@
    }
    .bg_plan {
        width: 100%;
        width: 100%;
        border-top: 20rpx #f7f7f7 solid;
        // height: 98px;
        padding: 30rpx;
        box-sizing: border-box;
@@ -1409,7 +1414,7 @@
    .bottom-view {
        left: 40rpx;
        right: 40rpx;
        bottom: 0
        bottom: 20rpx
    }
    .bl_list {
minipro_standard/pages_inspect/pages/InOperation/InOperation.vue
@@ -1,12 +1,12 @@
<template>
    <view>
        <InOutInfo :info="info" />
        <InOutInfo :info="info" :isOut="false" />
        <uni-collapse @change="change" @close="close" @open="open">
            <uni-collapse-item v-if="type==7" v-for="(item1, index) in wtransferWarehouseList" :key="index"
                :open="item1.wtransferDetailList.length">
                <view class="p30 cY" style="border-bottom: 4rpx solid #f7f7f7;" slot="title">
                    <image src="../../static/chuku_ic_cangku@2x.png" class="img36 mr10" mode=""></image>
                    <image src="../../../static/chuku_ic_cangku@2x.png" class="img36 mr10" mode=""></image>
                    <view>{{ item1.warehouseName }}</view>
                </view>
                <view class="p30">
@@ -16,7 +16,7 @@
                            <span>待入库物料</span>
                        </div>
                    </div>
                    <div class="page_content" v-for="(item, index) in item1.wtransferDetailList" :key="index"
                    <div class="page_content" v-for="(item, index) in item1.wtransferDetailList" v-if="item.outActnum" :key="index"
                        :name="index">
                        <div class="page_content_title">
                            <div class="page_content_title_top">
@@ -59,7 +59,7 @@
                </div>
                <div class="right" v-if="isZKD" @click="openxz">
                    <image src="../../static/gongdan_ic_shoudong@2x.png" class="img36" mode=""></image><span>手动入库</span>
                    <image src="../../../static/gongdan_ic_shoudong@2x.png" class="img36" mode=""></image><span>手动入库</span>
                    <!-- <img src="@/assets/icon/gongdan_ic_shoudong@2x.png" alt=""> -->
                </div>
            </div>
@@ -68,7 +68,6 @@
                <div class="page_yxwl_list">
                    <div class="page_yxwl_list_item" v-for="(item, index) in woScanMaterialBeanList" :key="index">
                        <div class="page_yxwl_list_item_top">
                            <!--                            <div class="page_yxwl_list_item_top_left" v-if="item.batch">{{item.materialName}} | {{item.materialCode}}|{{item.batch}}</div>-->
                            <div class="page_yxwl_list_item_top_left">{{item.materialName}} | {{item.materialCode}}
                            </div>
                        </div>
@@ -99,7 +98,7 @@
                                <div class="label">工装{{item1.scanCode}}:</div>
                                <div class="nr">{{item1.num}}{{item1.unitName}}</div>
                                <div class="dele" @click="dele(item1)">
                                    <image src="../../static/chuku_ic_delete@2x.png" class="img36" mode=""></image>
                                    <image src="../../../static/chuku_ic_delete@2x.png" class="img36" mode=""></image>
                                </div>
                            </div>
                        </div>
@@ -112,7 +111,6 @@
                <div class="page_yxwl_list">
                    <div class="page_yxwl_list_item" v-for="(item1, idx) in seleMateriaList" :key="idx">
                        <div class="page_yxwl_list_item_top">
                            <!--                                <div class="page_yxwl_list_item_top_left" v-if="item1.batch">{{item1.materialName}} | {{item1.materialCode}}|{{item1.batch}}</div>-->
                            <div class="page_yxwl_list_item_top_left">{{item1.materialName}} | {{item1.materialCode}}
                            </div>
                        </div>
@@ -141,7 +139,7 @@
                                </div>
                                <!-- @click="dele()" -->
                                <div class="dele" @click="dele(idx)">
                                    <image src="../../static/chuku_ic_delete@2x.png" class="img36" mode=""></image>
                                    <image src="../../../static/chuku_ic_delete@2x.png" class="img36" mode=""></image>
                                </div>
                            </div>
                        </div>
@@ -385,6 +383,7 @@
                    }).then(res => {
                        if (res.code === 200) {
                            this.$store.dispatch('getUpcomingNum')
                            uni.$emit('success')
                            uni.$u.toast('操作成功')
                            if (this.type == '4') { // 跳转完工入库详情
                                // uni.navigateTo({
@@ -402,9 +401,9 @@
                                return
                            }
                            uni.redirectTo({
                                url: `/pages_adjust/pages/outboundDetails/outboundDetails?id=${this.id}`
                                url: `/pages_adjust/pages/warehousingDetails/warehousingDetails?id=${this.id}`
                                // pages_adjust/pages/warehousingDetails/warehousingDetails
                            })
                            // setTimeout(() => {
                                // if (route.query.Type == '4') { // 跳转完工入库详情
                                //     router.push({
@@ -436,6 +435,7 @@
                        if (res.code === 200) {
                            this.$store.dispatch('getUpcomingNum')
                            uni.$u.toast('操作成功')
                            uni.$emit('success')
                            uni.redirectTo({
                                url: `/pages_adjust/pages/warehousingDetails1/warehousingDetails1?id=${this.id}`
                            })
minipro_standard/pages_inspect/pages/OutOperation/OutOperation.vue
@@ -4,7 +4,7 @@
        <uni-collapse @change="change" @close="close" @open="open">
            <uni-collapse-item :open="item1.wtransferDetailList.length" v-if="type==7" v-for="(item1, index) in warehouseList" :key="index">
                <view class="p30 cY" style="border-bottom: 4rpx solid #f7f7f7;" slot="title">
                    <image src="../../static/chuku_ic_cangku@2x.png" class="img36 mr10" mode=""></image>
                    <image src="../../../static/chuku_ic_cangku@2x.png" class="img36 mr10" mode=""></image>
                    <view>{{ item1.warehouseName }}</view>
                </view>
                <view class="p30">
@@ -33,7 +33,7 @@
                                <span>{{item.batch ? item.batch : '-'}}</span>
                            </div>
                        </div>
                        <div class="page_content_list" v-for="(childer, idxs) in item.wstockExtListVOList" :key="idxs">
                        <div class="page_content_list" v-for="(childer, idxs) in item.wstockExtListVOList"  v-if="childer.batch == item.batch"  :key="idxs">
                            <div class="page_content_list_item">
                                <div class="page_content_list_item_label">出库货位:</div>
                                <div class="page_content_list_item_nr">{{ childer.locationName }}</div>
@@ -52,7 +52,7 @@
            </uni-collapse-item>
            <uni-collapse-item v-if="type==8">
                <view class="p30 cY" style="border-bottom: 4rpx solid #f7f7f7;" slot="title">
                    <image src="../../static/chuku_ic_cangku@2x.png" class="img36 mr10" mode=""></image>
                    <image src="../../../static/chuku_ic_cangku@2x.png" class="img36 mr10" mode=""></image>
                    <view>{{ info.warehouseName }}</view>
                </view>
                <view class="p30">
@@ -80,9 +80,9 @@
                                <span>{{item.batch ? item.batch : '-'}}</span>
                            </div>
                        </div>
                        <div class="page_content_list" v-for="(items, ind) in item.wstockExtListVOList" :key="ind">
                        <div class="page_content_list" v-for="(items, ind) in item.wstockExtListVOList" v-if="items.batch == item.batch" :key="ind">
                            <div class="page_content_list_item">
                                <div class="page_content_list_item_label">批次号:</div>
                                <div class="page_content_list_item_label">批次号1:</div>
                                <div class="page_content_list_item_nr">{{ items.batch ? items.batch : '-' }}</div>
                            </div>
                            <div class="page_content_list_items">
@@ -108,7 +108,7 @@
                </div>
                <div class="right" v-if="isZKD" @click="openxz">
                    <image src="../../static/gongdan_ic_shoudong@2x.png" class="img36" mode=""></image><span>手动出库</span>
                    <image src="../../../static/gongdan_ic_shoudong@2x.png" class="img36" mode=""></image><span>手动出库</span>
                </div>
            </div>
            <div class="page_yxwl_list" v-if="outboundList.length > 0">
@@ -143,7 +143,7 @@
                        </div>
                        <div class="dele" @click="dele(index)">
                            <!-- <img src="@/assets/icon/chuku_ic_delete@2x.png" alt="" /> -->
                            <image src="../../static/chuku_ic_delete@2x.png" class="img24" mode=""></image>
                            <image src="../../../static/chuku_ic_delete@2x.png" class="img24" mode=""></image>
                        </div>
                    </div>
                </div>
@@ -280,13 +280,13 @@
                                hw.batch) {
                                let isExist = false
                                this.outboundList.forEach(selected => {
                                    if (selected.newId == materail.id) {
                                    if (selected.newId == item.id) {
                                        isExist = true
                                        return
                                    }
                                })
                                if (isExist) {
                                    uni.$u.toast('该物料批次已存在')
                                    uni.$u.toast('该物料已存在')
                                    return
                                }
                                let obj = JSON.parse(JSON.stringify(materail))
@@ -313,7 +313,6 @@
                            return a;
                        }, {});
                        let tempList = this.warehouseList[0].wtransferDetailList
                        for (let i = 0; i < tempList.length; i++) {
                            let item = tempList[i]
                            for (let a in result) {
@@ -353,12 +352,10 @@
                            if (res.code === 200) {
                                this.$store.dispatch('getUpcomingNum')
                                uni.$u.toast('操作成功')
                                uni.$emit('success')
                                uni.redirectTo({
                                    url: `/pages/warehousingDetails/warehousingDetails?id=${this.id}&dbid=${this.dbid}`
                                    url: `/pages_adjust/pages/warehousingDetails/warehousingDetails?id=${this.id}&dbid=${this.dbid}`
                                })
                                // uni.redirectTo({
                                //     url: `/pages_adjust/pages/outboundDetails/outboundDetails?id=${this.info.id}&dbid=${this.dbid}`
                                // })
                                // setTimeout(() => {
                                //   router.replace({ name: 'wTransferDetail', query: { id: info.value.wtransfer.id, dbid: route.query.dbid } })
                                // }, 2000)
@@ -375,6 +372,7 @@
                        if (res.code === 200) {
                            this.$store.dispatch('getUpcomingNum')
                            uni.$u.toast('操作成功')
                            uni.$emit('success')
                            uni.redirectTo({
                                url: `/pages_adjust/pages/outboundDetails/outboundDetails?id=${this.id}`
                            })
minipro_standard/pages_inspect/pages/equipmentInspection/equipmentInspection.vue
@@ -50,9 +50,9 @@
                    <view class="box_list1_club_list_item" v-for="(item, index) in form.files" :key="index"
                        @click="seeBigFile(index)">
                        <image class="close" src="@/static/ic_delete@2x.png" @click.stop="dele(index)" />
                        <image class="play" src="@/static/ic_play@2x.png" v-if="item.type === 1" />
                        <image class="play" src="@/static/ic_play@2x.png" v-if="item.typec === 1" />
                        <view class="type">
                            <video :src="item.url" v-if="item.type === 1"></video>
                            <video :src="item.url" v-if="item.typec === 1"></video>
                            <image v-else class="type_img" :src="item.url" mode="widthFix" />
                        </view>
                    </view>
@@ -63,8 +63,7 @@
        </view>
        <view class="box_list2">
            <view class="box_list2_label">备注</view>
            <textarea name="" id="" v-model="form.remarks" cols="20" rows="5" maxlength="300"
                placeholder="请详细描述巡检情况"></textarea>
            <textarea v-model="form.remarks" cols="20" rows="5" maxlength="300" placeholder="请详细描述巡检情况"></textarea>
        </view>
        <view class="box_footer">
            <button class="box_footer_submit" v-preventReClick @click="submit">提交</button>
@@ -260,8 +259,8 @@
                    mediaType: ['image', 'video'],
                    sourceType: ['album', 'camera'],
                    success: (chooseImageRes) => {
                        uni.showLoading({ title: '上传中' });
                        const tempFilePaths = chooseImageRes.tempFiles;
                        console.log(tempFilePaths)
                        for (let i = 0; i < tempFilePaths.length; i++) {
                            uni.uploadFile({
                                url: baseUrl + '/ext/routeCardExt/upload',
@@ -275,18 +274,19 @@
                                },
                                success: (uploadFileRes) => {
                                    let res = JSON.parse(uploadFileRes.data)
                                    let type = ''
                                    let typec = ''
                                    for (let s = 0; s < fileType.length; s++) {
                                        if (tempFilePaths[i].tempFilePath.indexOf(fileType[s].name) !== -1) {
                                            type = fileType[s].type
                                            typec = fileType[s].type
                                        }
                                    }
                                    that.form.files.push({
                                        fileUrl: res.data.imgaddr,
                                        filename: res.data.imgname,
                                        type,
                                        typec,
                                        url: res.data.url
                                    })
                                    uni.hideLoading();
                                }
                            });
                        }
platform_web/.env.development
@@ -21,7 +21,6 @@
#焦松
#VUE_APP_BASE_URL = 'http://192.168.0.36:10021/'
#任康
本地
#任康本地
VUE_APP_BASE_URL = 'http://192.168.0.15:10021/'
# VUE_APP_BASE_URL = 'https://dmtest.ahapp.net/doumeeplant_api/'
platform_web/src/views/business/companyLoginLog.vue
@@ -99,7 +99,10 @@
       return '羚羊平台'
      }else  if (value == 3) {
       return 'EDGP平台'
      }else{
      }else  if (value == 4) {
       return '微信小程序'
      }
      else{
        return 'pc-平台';
      }
    }
platform_web/src/views/business/workbench.vue
@@ -18,7 +18,9 @@
            type="daterange"
            start-placeholder="开始日期"
            end-placeholder="结束日期"
            :default-time="['00:00:00', '23:59:59']">
            value-format="yyyy-MM-dd"
            @change="dataChange"
            >
          </el-date-picker>
          <div style="width: 5px;"></div>
          <el-select v-model="searchForm.orgin" placeholder="请选择登录来源" clearable @change="getList">
@@ -90,6 +92,12 @@
      })
  },
  methods: {
    dataChange(v) {
      console.log(v);
      this.searchForm.startDate = v[0]
      this.searchForm.endDate = v[1]
      this.getList()
    },
    getList() {
      getActivityLoginVOList(this.searchForm)
        .then(res => {
@@ -122,7 +130,7 @@
        yAxis: {},
        series: [
          {
            name: '销量',
            name: '登录次数',
            type: 'line',
            data: num
          }
platform_web/src/views/system/loginLog.vue
@@ -137,6 +137,8 @@
       return '羚羊平台'
      }else  if (value == 3) {
       return 'EDGP平台'
      }else  if (value == 4) {
       return '微信小程序'
      }else{
        return 'pc-平台';
      }
server/src/main/java/doumeemes/core/utils/Constants.java
@@ -109,6 +109,7 @@
        int dingding = 1;
        int lingyang = 2;
        int edgp = 3;
        int wx = 4;
    }
    /**
server/src/main/java/doumeemes/core/utils/DateUtil.java
@@ -983,6 +983,17 @@
        return dt1;
    }
    public static Date StringToDateShort(String DATE) {
        DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
        Date dt1 = null;
        try {
            dt1 = df.parse(DATE);
        } catch (Exception exception) {
            exception.printStackTrace();
        }
        return dt1;
    }
    /**
     * 获取输入格式的日期字符串,字符串遵循Oracle格式
     *
@@ -3025,4 +3036,19 @@
        return from;
    }
    public static String afterDate(String date,int num){
        Date today = DateUtil.StringToDateShort(date);   //当前时间
        Calendar calendar = Calendar.getInstance(); //得到日历
        calendar.setTime(today);//把当前时间赋给日历
        calendar.add(Calendar.DAY_OF_MONTH, num);  //设置为前一天
        Date yesterday = calendar.getTime();   //得到前一天的时间
        calendar.setTime(today);
        calendar.add(Calendar.DAY_OF_MONTH, 1);  //设置为后一天
        Date tomorrow = calendar.getTime();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); //设置时间格式
        return sdf.format(calendar.getTime());
    }
}
server/src/main/java/doumeemes/service/ext/impl/DepartmentExtServiceImpl.java
@@ -299,7 +299,7 @@
            // 校验用户名和密码
            Subject subject = SecurityUtils.getSubject();
            // 钉钉登录
            ShiroToken token = new ShiroToken(user.getId(),user.getUsername(), null,true,false);
            ShiroToken token = new ShiroToken(user,1);
            subject.login(token);
        }
    }
server/src/main/java/doumeemes/service/system/impl/SystemLoginServiceImpl.java
@@ -101,6 +101,7 @@
            loginLog.setCompanyId(loginUser.getCompany()!=null?loginUser.getCompany().getId():null);
            loginLog.setCompanyUserId(loginUser.getCompanyUser()!=null?loginUser.getCompanyUser().getId():null);
            loginLog.setSuccess(Boolean.TRUE);
            loginLog.setOrgin(Constants.USER_LOGIN_ORIGIN.pc);
            systemLoginLogService.create(loginLog);
            return (String)subject.getSession().getId();
        }catch (AuthenticationException e) {
server/src/main/java/doumeemes/service/system/impl/SystemUserServiceImpl.java
@@ -4,6 +4,7 @@
import com.github.pagehelper.PageInfo;
import doumeemes.core.model.PageData;
import doumeemes.core.model.PageWrap;
import doumeemes.core.utils.DateUtil;
import doumeemes.dao.ext.dto.ActivityLoginDTO;
import doumeemes.dao.ext.dto.CompanyLoginDTO;
import doumeemes.dao.ext.vo.ActivityLoginVO;
@@ -20,11 +21,11 @@
import doumeemes.service.aware.DepartmentDataPermissionAware;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.util.ArrayList;
import java.util.List;
@@ -197,6 +198,9 @@
    @Override
    public List<ActivityLoginVO> activityLoginVOList(ActivityLoginDTO activityLoginDTO) {
        if(StringUtils.isNotBlank(activityLoginDTO.getEndDate())){
            activityLoginDTO.setEndDate(DateUtil.afterDate(activityLoginDTO.getEndDate(),1));
        }
        return systemUserMapper.activityLoginVOList(activityLoginDTO);
    }
server/src/main/java/doumeemes/service/system/impl/WxLoginServiceImpl.java
@@ -164,6 +164,7 @@
            loginLog.setCompanyId(loginUser.getCompany()!=null?loginUser.getCompany().getId():null);
            loginLog.setCompanyUserId(loginUser.getCompanyUser()!=null?loginUser.getCompanyUser().getId():null);
            loginLog.setSuccess(Boolean.TRUE);
            loginLog.setOrgin(Constants.USER_LOGIN_ORIGIN.wx);
            systemLoginLogService.create(loginLog);
            String session = (String)subject.getSession().getId();
            wxLoginVO.setLoginStatus(Constants.ZERO);
server/src/main/resources/application.yml
@@ -9,7 +9,7 @@
#  application:
#  name: doumeemes
  profiles:
    active: standardTest
    active: standard
  # JSON返回配置
  jackson:
    # 默认时区
server/src/main/resources/mappers/SystemUserMapper.xml
@@ -72,7 +72,7 @@
  </resultMap>
  <select id="activityLoginVOList" parameterType="doumeemes.dao.ext.dto.ActivityLoginDTO" resultMap="ActivityLoginVO">
    select a.DATA_DATE , count(1)  as dayActiveUserNum from ( SELECT DATE_FORMAT( DATE_ADD(CONCAT(#{dto.startDate}), INTERVAL(help_topic_id) DAY),'%Y-%m-%d')  DATA_DATE
    select a.DATA_DATE , count(b.id)  as dayActiveUserNum from ( SELECT DATE_FORMAT( DATE_ADD(CONCAT(#{dto.startDate}), INTERVAL(help_topic_id) DAY),'%Y-%m-%d')  DATA_DATE
    FROM mysql.help_topic
    WHERE  TIMESTAMPDIFF(DAY,CONCAT(#{dto.startDate}),CONCAT(#{dto.endDate})) > help_topic_id )  a
    left join
web_standard/.env.development
@@ -24,5 +24,5 @@
# VUE_APP_BASE_URL = 'http://192.168.0.35:10021/'
# 测试服务器
# VUE_APP_BASE_URL = 'https://dmtest.ahapp.net/doumeeplant_api/'
VUE_APP_BASE_URL = 'https://dmtest.ahapp.net/doumeeplant_api/'
web_standard/src/components/common/ShowImage.vue
@@ -47,6 +47,7 @@
      this.multiFilesList = multiFilesList
      this.temp = multiFilesList[index]
      this.resourcePath = resourcePath
      console.log(this.resourcePath);
      this.index = index
    },
    cancel () {
web_standard/src/views/ext/wInboundExt.vue
@@ -332,7 +332,7 @@
        case 1: str += ' | 不良'; break
        case 2: str += ' | 报废'; break
      }
      str += ` X ${item.num}`
      str += ` X ${item.doneNum}`
      return str
    },
    applyStr (row) {