Merge branch 'master' of http://139.186.142.91:10010/r/productDev/dmvisit
已添加1个文件
已修改29个文件
已重命名2个文件
| | |
| | | # å¼åç¯å¢é
ç½® |
| | | NODE_ENV = 'development' |
| | | |
| | | VUE_APP_API_URL = 'http://localhost:10010' |
| | | #VUE_APP_API_URL = 'http://localhost:10010' |
| | | # VUE_APP_API_URL = 'http://192.168.0.103:10010' |
| | | # VUE_APP_API_URL = 'http://192.168.0.173/gateway_interface' |
| | | # VUE_APP_API_URL = 'http://10.50.250.253:8088/gateway_interface' |
| | | VUE_APP_API_URL = 'http://10.50.250.253:8088/gateway_interface' |
| | | |
| | |
| | | </div> |
| | | <!-- ä¿®æ¹å¯ç --> |
| | | <GlobalAlertWindow title="ä¿®æ¹å¯ç " :visible.sync="visible.changePwd" |
| | | :showClose="!userInfo.needChangePwd || userInfo.needChangePwd == '0'" |
| | | :showCancel="!userInfo.needChangePwd || userInfo.needChangePwd == '0'" @confirm="confirmChangePwd" |
| | | :showClose="userInfo && (!userInfo.needChangePwd || userInfo.needChangePwd == '0')" |
| | | :showCancel="userInfo && (!userInfo.needChangePwd || userInfo.needChangePwd == '0')" @confirm="confirmChangePwd" |
| | | @close="visible.changePwd = false"> |
| | | <el-form :model="changePwdData.form" ref="changePwdDataForm" :rules="changePwdData.rules"> |
| | | <el-form-item label="åå§å¯ç " prop="oldPwd" required> |
| | |
| | | }, |
| | | mounted() { |
| | | // needChangePwd 0 : é»è®¤å¯ç éè¦ä¿®æ¹ï¼1 ä¸éè¦ |
| | | if (!this.userInfo.needChangePwd || this.userInfo.needChangePwd == '0') { |
| | | if (userInfo &&(!this.userInfo.needChangePwd || this.userInfo.needChangePwd == '0')) { |
| | | this.visible.changePwd = true |
| | | } |
| | | }, |
| | |
| | | <template> |
| | | <TableLayout :permissions="['business:empower:query']"> |
| | | <!-- æç´¢è¡¨å --> |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> |
| | | <el-form |
| | | ref="searchForm" |
| | | slot="search-form" |
| | | :model="searchForm" |
| | | label-width="100px" |
| | | inline |
| | | > |
| | | <el-form-item label="ç³è¯·äºº" prop="memberName"> |
| | | <el-input v-model="searchForm.memberName" placeholder="请è¾å
¥å§å/ææºå·" @keypress.enter.native="search"></el-input> |
| | | <el-input |
| | | v-model="searchForm.memberName" |
| | | placeholder="请è¾å
¥å§å/ææºå·" |
| | | @keypress.enter.native="search" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ç³è¯·äººç»ç»" prop="companyName"> |
| | | <el-input v-model="searchForm.companyName" placeholder="请è¾å
¥ç³è¯·äººç»ç»" clearable |
| | | @keypress.enter.native="search"></el-input> |
| | | <el-input |
| | | v-model="searchForm.companyName" |
| | | placeholder="请è¾å
¥ç³è¯·äººç»ç»" |
| | | clearable |
| | | @keypress.enter.native="search" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="车çå·" prop="carCode"> |
| | | <el-input v-model="searchForm.carCode" placeholder="请è¾å
¥è½¦çå·" clearable |
| | | @keypress.enter.native="search"></el-input> |
| | | <el-input |
| | | v-model="searchForm.carCode" |
| | | placeholder="请è¾å
¥è½¦çå·" |
| | | clearable |
| | | @keypress.enter.native="search" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ç¶æ" prop="status"> |
| | | <el-select v-model="searchForm.status" @change="search" clearable placeholder="ç¶æ"> |
| | | <el-select |
| | | v-model="searchForm.status" |
| | | @change="search" |
| | | clearable |
| | | placeholder="ç¶æ" |
| | | > |
| | | <el-option label="ç³è¯·ä¸" value="0"></el-option> |
| | | <el-option label="å®¡æ ¸ä¸" value="1"></el-option> |
| | | <el-option label="审æ¹éè¿" value="2"></el-option> |
| | |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="ç®çå°ç±»å" prop="type"> |
| | | <el-select v-model="searchForm.type" @change="search" clearable placeholder="ç®çå°ç±»å"> |
| | | <el-select |
| | | v-model="searchForm.type" |
| | | @change="search" |
| | | clearable |
| | | placeholder="ç®çå°ç±»å" |
| | | > |
| | | <el-option label="å¸å
ç¨è½¦" value="0"></el-option> |
| | | <el-option label="å¸å¤ç¨è½¦" value="1"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="åºåæ¶é´" prop="startTime"> |
| | | <el-date-picker @change="seleTime" v-model="time" @keypress.enter.native="search" type="datetimerange" |
| | | format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" :default-time="['00:00:00', '23:59:59']" |
| | | range-separator="è³" start-placeholder="å¼å§æ¥æ" end-placeholder="ç»ææ¥æ"> |
| | | <el-date-picker |
| | | @change="seleTime" |
| | | v-model="time" |
| | | @keypress.enter.native="search" |
| | | type="datetimerange" |
| | | format="yyyy-MM-dd HH:mm:ss" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | :default-time="['00:00:00', '23:59:59']" |
| | | range-separator="è³" |
| | | start-placeholder="å¼å§æ¥æ" |
| | | end-placeholder="ç»ææ¥æ" |
| | | > |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-radio-group v-model="searchForm.radio" size="small" @input="changeRadio"> |
| | | <el-radio-group |
| | | v-model="searchForm.radio" |
| | | size="small" |
| | | @input="changeRadio" |
| | | > |
| | | <el-radio-button label="0">å½å¤©</el-radio-button> |
| | | <el-radio-button label="1">è¿7天</el-radio-button> |
| | | <el-radio-button label="2">è¿30天</el-radio-button> |
| | |
| | | </el-form> |
| | | <!-- è¡¨æ ¼åå页 --> |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="[ |
| | | 'business:carusebook:create', |
| | | 'business:carusebook:exportExcel', |
| | | ]"> |
| | | <ul |
| | | class="toolbar" |
| | | v-permissions="[ |
| | | 'business:carusebook:create', |
| | | 'business:carusebook:exportExcel', |
| | | ]" |
| | | > |
| | | <li> |
| | | <el-button type="primary" @click="handleEdit" icon="el-icon-plus" |
| | | v-permissions="['business:carusebook:create']">æ°å»º</el-button> |
| | | <el-button |
| | | type="primary" |
| | | @click="handleEdit" |
| | | icon="el-icon-plus" |
| | | v-permissions="['business:carusebook:create']" |
| | | >æ°å»º</el-button |
| | | > |
| | | </li> |
| | | <li> |
| | | <el-button type="primary" @click="handleEx" v-permissions="['business:carusebook:exportExcel']">导åº</el-button> |
| | | <el-button |
| | | type="primary" |
| | | @click="handleEx" |
| | | v-permissions="['business:carusebook:exportExcel']" |
| | | >导åº</el-button |
| | | > |
| | | </li> |
| | | </ul> |
| | | <el-table v-loading="isWorking.search" :data="tableData.list" stripe @selection-change="handleSelectionChange"> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | | :data="tableData.list" |
| | | stripe |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column type="selection" width="55"></el-table-column> |
| | | <el-table-column prop="carCode" label="车çå·" min-width="100px"></el-table-column> |
| | | <el-table-column prop="memberName" label="ææ¥äºº" min-width="80px"></el-table-column> |
| | | <el-table-column prop="memberNames" label="ä¹è½¦äººå" min-width="170px"></el-table-column> |
| | | <el-table-column prop="companyName" label="æå±ç»ç»" min-width="150px"></el-table-column> |
| | | <el-table-column |
| | | prop="carCode" |
| | | label="车çå·" |
| | | min-width="100px" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="memberName" |
| | | label="ææ¥äºº" |
| | | min-width="80px" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="companyName" |
| | | label="æå±ç»ç»" |
| | | min-width="150px" |
| | | ></el-table-column> |
| | | <el-table-column label="ç¨è½¦æ¶é´" min-width="170px"> |
| | | <template slot-scope="{ row }"> |
| | | <span v-if="row.startTime">èµ·:{{ row.startTime.slice(0, 16) }}</span><br /> |
| | | <span v-if="row.endTime">æ¢:{{ row.endTime.slice(0, 16) }}</span> |
| | | <span v-if="row.startTime">èµ·:{{ row.startTime.slice(0,16) }}</span |
| | | ><br /> |
| | | <span v-if="row.endTime">æ¢:{{ row.endTime.slice(0,16) }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="planUseDate" label="åºåæ¶é´" min-width="150px"> |
| | | <template slot-scope="{ row }"> |
| | | <span v-if="row.planUseDate">{{ row.planUseDate.slice(0, 16) }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="memberNames" |
| | | label="ä¹è½¦äºº" |
| | | min-width="180px" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="planUseDate" |
| | | label="åºåæ¶é´" |
| | | min-width="150px" |
| | | > |
| | | <template slot-scope="{ row }"> |
| | | <span v-if="row.planUseDate">{{ row.planUseDate.slice(0,16) }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="ç®çå°" min-width="200px"> |
| | | <template slot-scope="{ row }"> |
| | | <span class="status-green" v-if="row.type === 0">ãå¸å
ã</span> |
| | |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column prop="createDate" label="ç³è¯·æ¶é´" min-width="150px"></el-table-column> |
| | | <el-table-column prop="editDate" label="æä½æ¶é´" min-width="150px"></el-table-column> |
| | | <el-table-column label="æä½" min-width="160" align="center" fixed="right"> |
| | | <el-table-column |
| | | prop="createDate" |
| | | label="ç³è¯·æ¶é´" |
| | | min-width="150px" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="editDate" |
| | | label="æä½æ¶é´" |
| | | min-width="150px" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | label="æä½" |
| | | min-width="160" |
| | | align="center" |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="{ row }"> |
| | | <el-button type="text" icon="el-icon-edit" |
| | | @click="$refs.OperaDetailsWindow.open('å
¬å¡è½¦ç³è¯·è¯¦æ
', row)">æ¥ç详æ
</el-button> |
| | | <el-button |
| | | type="text" |
| | | icon="el-icon-edit" |
| | | @click="$refs.OperaDetailsWindow.open('å
¬å¡è½¦ç³è¯·è¯¦æ
', row)" |
| | | >æ¥ç详æ
</el-button |
| | | > |
| | | <!-- <el-button v-if="(row.status === 1 || row.status === 2) && new Date().getTime() < new Date(row.startTime).getTime()" type="text" icon="el-icon-delete" @click="rowRevokeClick(row)" >æ¤é</el-button> --> |
| | | <el-button v-if=" |
| | | (row.status === 0 || row.status === 1 || row.status === 2) && |
| | | new Date().getTime() < new Date(row.startTime).getTime() |
| | | " type="text" icon="el-icon-delete" @click="rowRevokeClick(row)">æ¤é</el-button> |
| | | <el-button |
| | | v-if=" |
| | | (row.status === 0 || row.status === 1 || row.status === 2) && |
| | | new Date().getTime() < new Date(row.startTime).getTime() |
| | | " |
| | | type="text" |
| | | icon="el-icon-delete" |
| | | @click="rowRevokeClick(row)" |
| | | >æ¤é</el-button |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination"> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handlePageChange" |
| | | :pagination="tableData.pagination" |
| | | > |
| | | </pagination> |
| | | </template> |
| | | <!-- --> |
| | | <el-dialog title="ç¨è½¦æ¤é" :visible.sync="isShowBack" width="520px"> |
| | | <el-form :model="backParam" :rules="rules" ref="backForm" label-width="100px" class="demo-ruleForm"> |
| | | <el-form |
| | | :model="backParam" |
| | | :rules="rules" |
| | | ref="backForm" |
| | | label-width="100px" |
| | | class="demo-ruleForm" |
| | | > |
| | | <el-form-item label="说æ" prop="info"> |
| | | <el-input type="textarea" :rows="4" v-model="backParam.info" placeholder="请è¾å
¥æ¤é说æ"></el-input> |
| | | <el-input |
| | | type="textarea" |
| | | :rows="4" |
| | | v-model="backParam.info" |
| | | placeholder="请è¾å
¥æ¤é说æ" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <span slot="footer" class="dialog-footer"> |
| | |
| | | <el-button type="primary" @click="backSubmit">ç¡®å®</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <OperaCarUseBookWindow ref="OperaDetailsWindow" @success="handlePageChange" /> |
| | | <OperaCarUseBookWindow |
| | | ref="OperaDetailsWindow" |
| | | @success="handlePageChange" |
| | | /> |
| | | <OperaCarUseBookParamWindow ref="OperaParamWindow" @success="search" /> |
| | | </TableLayout> |
| | | </template> |
| | |
| | | name: 'Empower', |
| | | extends: BaseTable, |
| | | components: { TableLayout, Pagination, OperaCarUseBookWindow, OperaCarUseBookParamWindow }, |
| | | data() { |
| | | data () { |
| | | return { |
| | | // æç´¢ |
| | | searchForm: { |
| | |
| | | } |
| | | } |
| | | }, |
| | | created() { |
| | | created () { |
| | | this.config({ |
| | | module: 'ç¨è½¦ç³è¯·ç®¡ç', |
| | | api: '/business/carUseBook', |
| | |
| | | this.loadParams() |
| | | }, |
| | | methods: { |
| | | rowRevokeClick(row) { |
| | | rowRevokeClick (row) { |
| | | this.isShowBack = true |
| | | this.backParam = {} |
| | | this.$set(this.backParam, 'id', row.id) |
| | |
| | | this.$refs.backForm.clearValidate() |
| | | }) |
| | | }, |
| | | backSubmit() { |
| | | backSubmit () { |
| | | revokeById({ ...this.backParam }).then(res => { |
| | | this.$tip.success('æ¤éæå') |
| | | this.isShowBack = false |
| | | this.search() |
| | | }) |
| | | }, |
| | | handleEx() { |
| | | handleEx () { |
| | | this.$dialog.exportConfirm('确认导åºåï¼') |
| | | .then(() => { |
| | | this.exLoading = true |
| | |
| | | }) |
| | | }) |
| | | }, |
| | | changeRadio(e) { |
| | | changeRadio (e) { |
| | | this.searchForm.radio = e |
| | | if (e === '0') { |
| | | this.searchForm.queryStartTime = timeForMat(0)[0] |
| | |
| | | } |
| | | this.search() |
| | | }, |
| | | handleEdit() { |
| | | handleEdit () { |
| | | this.$refs.OperaParamWindow.open() |
| | | }, |
| | | loadParams() { |
| | | loadParams () { |
| | | allList({ |
| | | }) |
| | | .then(res => { |
| | |
| | | .finally(() => { |
| | | }) |
| | | }, |
| | | seleTime(e) { |
| | | seleTime (e) { |
| | | this.searchForm.queryStartTime = e[0] |
| | | this.searchForm.queryEndTime = e[1] |
| | | this.searchForm.radio = null |
| | | this.search() |
| | | }, |
| | | reset() { |
| | | reset () { |
| | | this.$refs.searchForm.resetFields() |
| | | this.searchForm.radio = '0' |
| | | this.changeRadio('0') |
| | |
| | | |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.doumee.dao.business.model.UserRel; |
| | | import com.github.yulichang.base.MPJBaseMapper; |
| | | |
| | | /** |
| | | * @author æ±è¹è¹ |
| | | * @date 2023/05/04 18:18 |
| | | */ |
| | | public interface UserRelMapper extends BaseMapper<UserRel> { |
| | | public interface UserRelMapper extends MPJBaseMapper<UserRel> { |
| | | |
| | | } |
| | |
| | | @ApiModelProperty(value = "åä¼äººååç§°") |
| | | @TableField(exist = false) |
| | | private String realName; |
| | | @ApiModelProperty(value = "åä¼äººåææºå·") |
| | | @TableField(exist = false) |
| | | private String userPhone; |
| | | |
| | | |
| | | |
| | |
| | | import com.doumee.core.model.LoginUserInfo; |
| | | import com.doumee.core.model.PageData; |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.core.utils.Constants; |
| | | import com.doumee.core.utils.DESUtil; |
| | | import com.doumee.core.utils.DateUtil; |
| | | import com.doumee.core.utils.Utils; |
| | | import com.doumee.core.utils.*; |
| | | import com.doumee.core.wx.MeetConstants; |
| | | import com.doumee.core.wx.SendWxMessage; |
| | | import com.doumee.dao.admin.request.BusinessOverDTO; |
| | | import com.doumee.dao.admin.request.QrOpenDoorDto; |
| | | import com.doumee.dao.admin.response.DevWgResponseParam; |
| | | import com.doumee.dao.business.*; |
| | | import com.doumee.dao.business.dao.SmsConfigMapper; |
| | | import com.doumee.dao.business.dao.SmsEmailMapper; |
| | | import com.doumee.dao.business.join.*; |
| | | import com.doumee.dao.business.model.*; |
| | | import com.doumee.dao.business.vo.RoomStatisticsVo; |
| | |
| | | import java.time.format.DateTimeFormatter; |
| | | import java.time.temporal.TemporalAdjusters; |
| | | import java.util.*; |
| | | import java.util.Date; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | |
| | | private String desPwd; |
| | | @Autowired |
| | | private BookingsMapper bookingsMapper; |
| | | @Autowired |
| | | private SmsConfigMapper smsConfigMapper; |
| | | @Autowired |
| | | private SystemUserMapper systemUserMapper; |
| | | @Autowired |
| | |
| | | |
| | | @Autowired |
| | | private NoticesJoinMapper noticesMapper; |
| | | @Autowired |
| | | private SmsEmailMapper smsEmailMapper; |
| | | |
| | | @Autowired |
| | | private UserRelMapper userRelMapper; |
| | |
| | | @Transactional(rollbackFor = {BusinessException.class, Exception.class}) |
| | | public Integer create(Bookings bookings) { |
| | | LoginUserInfo user = bookings.getLoginUserInfo(); |
| | | Rooms rooms = roomsMapper.selectById(bookings.getRoomId()); |
| | | if(rooms==null ){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对ä¸èµ·ï¼è¯¥ä¼è®®å®¤ææ¶æ æ³é¢çº¦"); |
| | | } |
| | | bookings.setRoomName(rooms.getName()); |
| | | isCreateParamValid(bookings, user); |
| | | bookings.setCreateDate(new Date()); |
| | | bookings.setCreator(user.getId()); |
| | |
| | | updateProjectRel(bookings, user); |
| | | handleFile(bookings, user); |
| | | //åéä¼è®®é¢çº¦æåéç¥ |
| | | this.sendNotice(bookings, MeetConstants.TWO); |
| | | if(Constants.equalsInteger(bookings.getJoinNotice(),Constants.ZERO)){ |
| | | this.sendNotice(bookings, MeetConstants.TWO); |
| | | } |
| | | //åé微信订é
éç¥ |
| | | // sendWxMessage.bookingsReservation(systemUserMapper.selectById(bookings.getCreator()), bookings, roomsMapper.selectById(bookings.getRoomId())); |
| | | |
| | |
| | | //1ãåä¸ä¼è®®ï¼åä¸ä¼è®®å³å°å¼å§ ç»æ¯ä¸ªåä¼äººååéä¼è®®éç¥å¹¶ä¸ç»ä¼è®®é¢çº¦äººåéé¢å®çä¼è®®å³å°å¼å§ 妿é¢è®¢äººä¹åä¸ä¼è®®ï¼å伿2æ¡ä¼è®®éç¥ |
| | | //2ãä¼è®®é¢å®æåï¼ç»ææåä¼äººåä¸é¢çº¦äººé½åé |
| | | //3ãä¼è®®åæ¶ ä¼è®®åæ¶ï¼ç»ææåä¼äººåé½åé |
| | | List<UserRel> userRelList = userRelMapper.selectList(new QueryWrapper<UserRel>() |
| | | .eq("OBJ_TYPE", MeetConstants.ONE) |
| | | .eq("OBJ_ID", bookings.getId()) |
| | | .eq("ISDELETED", MeetConstants.ZERO) |
| | | List<UserRel> userRelList = userRelMapper.selectJoinList(UserRel.class,new MPJLambdaWrapper<UserRel>() |
| | | .selectAll(UserRel.class) |
| | | .selectAs(SystemUser::getRealname,UserRel::getRealName) |
| | | .selectAs(SystemUser::getMobile,UserRel::getUserPhone) |
| | | .leftJoin(SystemUser.class,SystemUser::getId,UserRel::getUserId) |
| | | .eq(UserRel::getObjType, MeetConstants.ONE) |
| | | .eq(UserRel::getObjId, bookings.getId()) |
| | | .eq(UserRel::getIsdeleted, MeetConstants.ZERO) |
| | | ); |
| | | List<SmsEmail> smsEmailList = new ArrayList<>(); |
| | | List<Notices> noticeList = new ArrayList<>(); |
| | | SmsConfig smsConfig = null; |
| | | Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.MEETING_START; |
| | | if (sendType.equals(MeetConstants.THREE)){ |
| | | noticeObjectType = Constants.NoticeObjectType.MEETING_CACEL; |
| | | }else if (sendType.equals(MeetConstants.TWO)){ |
| | | noticeObjectType = Constants.NoticeObjectType.MEETING_BOOK_SUCCESS; |
| | | smsConfig = smsConfigMapper.selectOne(new QueryWrapper<SmsConfig>().lambda().eq(SmsConfig::getCode, |
| | | SmsConstants.meetingContent.meetingBookJoinUser) |
| | | .eq(SmsConfig::getIsdeleted,Constants.ZERO) |
| | | .last(" limit 1 ")); |
| | | } |
| | | if(userRelList!=null && userRelList.size()>0){ |
| | | for (UserRel i : userRelList) { |
| | | Notices notices = new Notices(noticeObjectType,i.getId(),noticeObjectType.getInfo(), i.getUserId(), Constants.ZERO); |
| | | noticeList.add(notices); |
| | | if (smsConfig!=null && Constants.equalsInteger(smsConfig.getStatus(),Constants.ZERO)){ |
| | | SmsEmail smsEmail = new SmsEmail(); |
| | | //{åä¼äººåå§å}ï¼æ¨å¥½ï¼æ¨æä¸ä¸ªæ°çä¼è®®ï¼ä¼è®®ä¸»é¢ï¼{ä¼è®®ä¸»é¢}ï¼ä¼è®®å°ç¹ï¼{ä¼è®®å®¤åç§°}ï¼ä¼è®®æ¶é´ï¼{ä¼è®®æ¶é´æ®µ}ï¼è¯·ææ¶åå |
| | | String timeInfo =DateUtil.getFomartDate( bookings.getStartTime(),"MM/dd HH:mm")+"-" |
| | | +DateUtil.getFomartDate( bookings.getEndTime(),"HH:mm"); |
| | | smsEmail.setPhone(i.getUserPhone()); |
| | | smsEmail.setRemark("çå¾
åé"); |
| | | smsEmail.setStatus(Constants.TWO);// |
| | | smsEmail.setIsdeleted(Constants.ZERO); |
| | | smsEmail.setType(Constants.ZERO); |
| | | smsEmail.setObjId(bookings.getId()); |
| | | smsEmail.setCreateDate(new Date()); |
| | | smsEmail.setTitle("ä¼è®®å®¤ç³è¯·åä¼éç¥"); |
| | | smsEmail.setContent(StringUtils.defaultString(smsConfig.getContent(),"") |
| | | .replace("{åä¼äººåå§å}",StringUtils.defaultString(i.getRealName(),"")) |
| | | .replace("{ä¼è®®ä¸»é¢}",StringUtils.defaultString(bookings.getName(),"")) |
| | | .replace("{ä¼è®®å®¤åç§°}",StringUtils.defaultString(bookings.getRoomName(),"")) |
| | | .replace("{ä¼è®®æ¶é´æ®µ}",StringUtils.defaultString(timeInfo,""))); |
| | | smsEmailList.add(smsEmail); |
| | | } |
| | | } |
| | | } |
| | | //ç»åä¼äººåæå
¥ |
| | |
| | | if(noticeList.size()>0){ |
| | | noticesMapper.insert(noticeList); |
| | | } |
| | | if(smsEmailList.size()>0){ |
| | | smsEmailMapper.insert(smsEmailList);//å¾
åçä¿¡æ°æ® |
| | | } |
| | | } |
| | | |
| | | |
| | |
| | | } |
| | | int l = s.length(); |
| | | if(Constants.equalsInteger(l,7)){ |
| | | return s.substring(0,3)+"***"+s.substring(l-1,l); |
| | | return s.substring(0,3)+"**"+s.substring(l-2,l); |
| | | } |
| | | if(l <= 8){ |
| | | return s.substring(0,3)+"****"+s.substring(l-1,l); |
| | | return s.substring(0,3)+"***"+s.substring(l-2,l); |
| | | } |
| | | return s; |
| | | } |
| | |
| | | * @return |
| | | */ |
| | | public static Date getXMinuteAfterDate(Date date, int minute) { |
| | | if(date ==null){ |
| | | date = new Date(); |
| | | } |
| | | Calendar now = Calendar.getInstance(); |
| | | now.setTime(date); |
| | | now.set(Calendar.MINUTE, now.get(Calendar.MINUTE) + minute); |
| | |
| | | //ç©æµè½¦é¢çº¦-æå°åé è¶
æ¶ï¼ç»å¸æºï¼ |
| | | String platformJobTimeOut = "platformJobTimeOut"; |
| | | } |
| | | /** |
| | | * 议室ç³è¯· |
| | | */ |
| | | public interface meetingContent{ |
| | | // meetingBookJoinUser ä¼è®®å®¤ç³è¯·ï¼éç¥åä¼äººï¼ |
| | | String meetingBookJoinUser = "meetingBookJoinUser"; |
| | | } |
| | | |
| | | |
| | | |
| ÎļþÃû´Ó server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/SmsConfigMapper.java ÐÞ¸Ä |
| | |
| | | package com.doumee.dao.business; |
| | | package com.doumee.dao.business.dao; |
| | | |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.doumee.dao.business.model.SmsConfig; |
| | |
| | | @ExcelColumn(name="é®ç®±") |
| | | private String email; |
| | | |
| | | @ApiModelProperty(value = "ç¶æ 0æªä½¿ç¨ 1已使ç¨") |
| | | @ExcelColumn(name="ç¶æ 0æªä½¿ç¨ 1已使ç¨") |
| | | @ApiModelProperty(value = "ç¶æ 0æªä½¿ç¨ 1å·²ä½¿ç¨ 2çå¾
åé") |
| | | @ExcelColumn(name="ç¶æ 0æªä½¿ç¨ 1å·²ä½¿ç¨ 2çå¾
åé") |
| | | private Integer status; |
| | | |
| | | @ApiModelProperty(value = "ç±»å 0çä¿¡ 1é®ä»¶") |
| | |
| | | private Integer objId; |
| | | |
| | | @ApiModelProperty(value = "å
³è对象类å 0=éªè¯ç ï¼1=访客ä¸å¡ï¼2=访客æ¥å¤ï¼3=鿣鿿ï¼4=ç¨è½¦ç³è¯·ï¼5=ä¼è®®å®¤ä¿¡æ¯ï¼6=ç©æµè½¦é¢çº¦ï¼7=ç©æµè½¦ä½ä¸") |
| | | @ExcelColumn(name="å
³è对象类å 0=éªè¯ç ï¼1=访客ä¸å¡ï¼2=访客æ¥å¤ï¼3=鿣鿿ï¼4=ç¨è½¦ç³è¯·ï¼5=ä¼è®®å®¤ä¿¡æ¯ï¼6=ç©æµè½¦é¢çº¦ï¼7=ç©æµè½¦ä½ä¸") |
| | | @ExcelColumn(name="å
³è对象类å 0=éªè¯ç ï¼1=访客ä¸å¡ï¼2=访客æ¥å¤ï¼3=鿣鿿ï¼4=ç¨è½¦ç³è¯·ï¼5=ä¼è®®å®¤ä¿¡æ¯ï¼6=ç©æµè½¦é¢çº¦ï¼7=ç©æµè½¦ä½ä¸;8=ä¼è®®å®¤ç³è¯·") |
| | | private String objType; |
| | | |
| | | @ApiModelProperty(value = "éä»¶éå") |
| | |
| | | @PostMapping("/create") |
| | | @CloudRequiredPermission("business:quartz:create") |
| | | public ApiResponse create(@RequestBody QuartzJob quartzJob ,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){ |
| | | quartzJob.setState(Constants.ONE); |
| | | quartzJobService.insert(quartzJob) ; |
| | | return ApiResponse.success(null); |
| | | } |
| | |
| | | ApiResponse syncEmpowerDetailData(); |
| | | @ApiOperation("ã访客系ç»ã宿¶æ¥è¯¢äººåè®¾å¤ææä¸è½½è¿åº¦") |
| | | @GetMapping("/timer/empower/syncEmpowerResultData") |
| | | ApiResponse syncEmpowerResultData() ; |
| | | ApiResponse syncEmpowerResultData(); |
| | | @ApiOperation("ã访客系ç»ã宿¶éæ°ä¸åå¤±è´¥çæææ°æ®") |
| | | @GetMapping("/timer/empower/syncEmpowerFailData") |
| | | ApiResponse syncEmpowerFailData(); |
| | |
| | | @ApiOperation("ãæ°ååæå°ãæå°çå¾
ä½ä¸è¶
æ¶ä¸å¡") |
| | | @GetMapping("/timer/platformJob/platformJobWaitTimeOut") |
| | | ApiResponse platformJobWaitTimeOut(); |
| | | @ApiOperation("ãçä¿¡éç¥ã宿¶åéçå¾
çä¿¡ä»»å¡") |
| | | @GetMapping("/timer/sms/sendWaitingSmsNotice") |
| | | ApiResponse sendWaitingSmsNotice(); |
| | | |
| | | |
| | | |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.api; |
| | | |
| | | import com.doumee.core.model.ApiResponse; |
| | | import com.doumee.service.business.SmsEmailService; |
| | | import com.doumee.service.business.impl.hksync.HkSyncDeviceServiceImpl; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.GetMapping; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | /** |
| | | * @author æ±è¹è¹ |
| | | * @date 2023/11/30 15:33 |
| | | */ |
| | | @Api(tags = "çä¿¡åé宿¶ä»»å¡") |
| | | @RestController |
| | | @RequestMapping("/timer/sms") |
| | | public class HkSmsEmailTimerController extends BaseController { |
| | | @Autowired |
| | | private SmsEmailService smsEmailService; |
| | | @ApiOperation("å¼å¯å®æ¶çä¿¡åé宿¶ä»»å¡") |
| | | @GetMapping("/sendWaitingSmsNotice") |
| | | public ApiResponse sendWaitingSmsNotice() { |
| | | smsEmailService.sendWaitingSmsNotice(); |
| | | return ApiResponse.success("å¼å¯å®æ¶çä¿¡åé宿¶ä»»å¡æå"); |
| | | } |
| | | |
| | | } |
| | |
| | | @ApiOperation("宿¶ä½ä¸æç") |
| | | @GetMapping("/workEfficiency") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "type", value = "æ¥è¯¢ç±»åï¼0=å
¥åºï¼1=åºåº", required = true), |
| | | @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "type", value = "æ¥è¯¢ç±»åï¼0=å
¥åºï¼1=åºåº,é»è®¤ 0", required = true), |
| | | }) |
| | | public ApiResponse<List<WorkEfficiencyVO>> workEfficiency(@RequestParam Integer type) { |
| | | List<WorkEfficiencyVO> workEfficiencyVOList = new ArrayList<>(); |
| | | Random random = new Random(); |
| | | Integer totalWorkNum = 0; |
| | | for (int i = 8; i <= 20; i++) { |
| | | if(i%2==0){ |
| | | WorkEfficiencyVO workEfficiencyVO = new WorkEfficiencyVO(); |
| | | workEfficiencyVO.setWorkNum(200+random.nextInt(100)); |
| | | totalWorkNum = totalWorkNum + workEfficiencyVO.getWorkNum(); |
| | | workEfficiencyVO.setTotalWorkNum(totalWorkNum); |
| | | workEfficiencyVO.setWorkTime(StringUtils.leftPad(i+"",2,"0") +":00"); |
| | | workEfficiencyVOList.add(workEfficiencyVO); |
| | | } |
| | | } |
| | | List<WorkEfficiencyVO> workEfficiencyVOList = boardService.workEfficiency(type); |
| | | return ApiResponse.success(workEfficiencyVOList); |
| | | } |
| | | |
| | |
| | | @ApiOperation("宿¶æå°ä½ä¸ä¿¡æ¯") |
| | | @GetMapping("/platformWorkData") |
| | | public ApiResponse<List<PlatformWorkDataVO>> platformWorkData() { |
| | | List<PlatformWorkDataVO> platformWorkDataVOList = new ArrayList<>(); |
| | | Random random = new Random(); |
| | | for (int i = 0; i < 3; i++) { |
| | | PlatformWorkDataVO platformDurationVO = new PlatformWorkDataVO(); |
| | | platformDurationVO.setPlatformName(i+"_æå°åç§°"); |
| | | platformDurationVO.setCarNo("çA8" + random.nextInt(9) + random.nextInt(9) + random.nextInt(9) + random.nextInt(9)); |
| | | platformDurationVO.setWorkType(random.nextInt(1)); |
| | | platformDurationVO.setWorkNum(100+random.nextInt(100)); |
| | | platformDurationVO.setFinishTime(Long.valueOf(System.currentTimeMillis()/1000 + 200+random.nextInt(100))); |
| | | platformDurationVO.setStatus(random.nextInt(2)); |
| | | platformWorkDataVOList.add(platformDurationVO); |
| | | } |
| | | List<PlatformWorkDataVO> platformWorkDataVOList = boardService.platformWorkData(); |
| | | return ApiResponse.success(platformWorkDataVOList); |
| | | |
| | | } |
| | | |
| | | |
| | |
| | | spring: |
| | | profiles: |
| | | active: dev |
| | | active: pro |
| | | application: |
| | | name: visitsAdmin |
| | | # å®å
¨é
ç½® |
| | |
| | | public class CarUseBook extends LoginUserModel { |
| | | @TableId(type = IdType.AUTO) |
| | | @ApiModelProperty(value = "主é®", example = "1") |
| | | @ExcelColumn(name="主é®") |
| | | //@ExcelColumn(name="主é®") |
| | | private Integer id; |
| | | |
| | | @ApiModelProperty(value = "å建人ç¼ç ", example = "1") |
| | | @ExcelColumn(name="å建人ç¼ç ") |
| | | //@ExcelColumn(name="å建人ç¼ç ") |
| | | private Integer creator; |
| | | |
| | | @ApiModelProperty(value = "å建æ¶é´") |
| | | @ExcelColumn(name="å建æ¶é´") |
| | | //@ExcelColumn(name="å建æ¶é´") |
| | | @ExcelColumn(name="ç³è¯·æ¶é´",index =11,width = 10) |
| | | private Date createDate; |
| | | |
| | | @ApiModelProperty(value = "æ´æ°äººç¼ç ", example = "1") |
| | | @ExcelColumn(name="æ´æ°äººç¼ç ") |
| | | //@ExcelColumn(name="æ´æ°äººç¼ç ") |
| | | private Integer editor; |
| | | |
| | | @ApiModelProperty(value = "æ´æ°æ¶é´") |
| | | @ExcelColumn(name="æ´æ°æ¶é´") |
| | | //@ExcelColumn(name="æ´æ°æ¶é´") |
| | | @ExcelColumn(name="æä½æ¶é´",index =12,width = 10) |
| | | private Date editDate; |
| | | |
| | | @ApiModelProperty(value = "æ¯å¦å é¤0å¦ 1æ¯", example = "1") |
| | | @ExcelColumn(name="æ¯å¦å é¤0å¦ 1æ¯") |
| | | //@ExcelColumn(name="æ¯å¦å é¤0å¦ 1æ¯") |
| | | private Integer isdeleted; |
| | | |
| | | @ApiModelProperty(value = "夿³¨") |
| | | @ExcelColumn(name="夿³¨") |
| | | //@ExcelColumn(name="夿³¨") |
| | | private String remark; |
| | | |
| | | @ApiModelProperty(value = "车çå·") |
| | | @ExcelColumn(name="车çå·") |
| | | @ExcelColumn(name="车çå·",index =1,width = 8) |
| | | private String carCode; |
| | | |
| | | @ApiModelProperty(value = "车è¾ç¼ç ï¼å
³ècars)", example = "1") |
| | | @ExcelColumn(name="车è¾ç¼ç ï¼å
³ècars)") |
| | | //@ExcelColumn(name="车è¾ç¼ç ï¼å
³ècars)") |
| | | private Integer carId; |
| | | |
| | | @ApiModelProperty(value = "å¼å§æ¶é´") |
| | | @ExcelColumn(name="å¼å§æ¶é´") |
| | | // |
| | | //@ExcelColumn(name="å¼å§æ¶é´") |
| | | @ExcelColumn(name="å¼å§æ¶é´",index =4,width = 10,dateFormat = "yyyy-MM-dd HH:mm:ss") |
| | | private Date startTime; |
| | | |
| | | @ApiModelProperty(value = "ç»ææ¶é´") |
| | | @ExcelColumn(name="ç»ææ¶é´") |
| | | // |
| | | //@ExcelColumn(name="ç»ææ¶é´") |
| | | @ExcelColumn(name="ç»ææ¶é´",index =5,width = 10,dateFormat = "yyyy-MM-dd HH:mm:ss") |
| | | private Date endTime; |
| | | |
| | | @ApiModelProperty(value = "é¢è®¡åºåæ¶é´") |
| | | @ExcelColumn(name="é¢è®¡åºåæ¶é´") |
| | | //@ExcelColumn(name="é¢è®¡åºåæ¶é´") |
| | | @ExcelColumn(name="åºåæ¶é´",index =7,width = 10) |
| | | private String planUseDate; |
| | | |
| | | @ApiModelProperty(value = "ç¶æ 0ç³è¯·ä¸ 1å®¡æ ¸ä¸ 2审æ¹éè¿ 3审æ¹ä¸éè¿ 4已忶", example = "1") |
| | | @ExcelColumn(name="ç¶æ 0ç³è¯·ä¸ 1å®¡æ ¸ä¸ 2审æ¹éè¿ 3审æ¹ä¸éè¿ 4已忶") |
| | | //@ExcelColumn(name="ç¶æ 0ç³è¯·ä¸ 1å®¡æ ¸ä¸ 2审æ¹éè¿ 3审æ¹ä¸éè¿ 4已忶") |
| | | @ExcelColumn(name="ç¶æ",index =10,width = 8,valueMapping = "0=ç³è¯·ä¸;1=å®¡æ ¸ä¸;2=审æ¹éè¿;3=审æ¹ä¸éè¿;4=å·²æ¤é;") |
| | | private Integer status; |
| | | |
| | | @ApiModelProperty(value = "å®¡æ¹æ¶é´(æè¿ä¸æ¬¡ï¼") |
| | | @ExcelColumn(name="å®¡æ¹æ¶é´(æè¿ä¸æ¬¡ï¼") |
| | | //@ExcelColumn(name="å®¡æ¹æ¶é´(æè¿ä¸æ¬¡ï¼") |
| | | private Date checkDate; |
| | | |
| | | @ApiModelProperty(value = "审æ¹äºº(æè¿ä¸æ¬¡ï¼", example = "1") |
| | | @ExcelColumn(name="审æ¹äºº(æè¿ä¸æ¬¡ï¼") |
| | | //@ExcelColumn(name="审æ¹äºº(æè¿ä¸æ¬¡ï¼") |
| | | private Integer checkUserId; |
| | | |
| | | @ApiModelProperty(value = "审æ¹å¤æ³¨(æè¿ä¸æ¬¡ï¼") |
| | | @ExcelColumn(name="审æ¹å¤æ³¨(æè¿ä¸æ¬¡ï¼") |
| | | //@ExcelColumn(name="审æ¹å¤æ³¨(æè¿ä¸æ¬¡ï¼") |
| | | private String checkInfo; |
| | | |
| | | @ApiModelProperty(value = "åæ¶ç±»å 0ç³è¯·äººåæ¶ 1æ´¾è½¦åæ¤é") |
| | | @ExcelColumn(name="åæ¶ç±»å 0ç³è¯·äººåæ¶ 1æ´¾è½¦åæ¤é") |
| | | //@ExcelColumn(name="åæ¶ç±»å 0ç³è¯·äººåæ¶ 1æ´¾è½¦åæ¤é") |
| | | private Integer cancelType; |
| | | |
| | | @ApiModelProperty(value = "æ¯å¦å·²åæ¶ 0æªåæ¶ 1已忶") |
| | | @ExcelColumn(name="æ¯å¦å·²åæ¶ 0æªåæ¶ 1已忶") |
| | | //@ExcelColumn(name="æ¯å¦å·²åæ¶ 0æªåæ¶ 1已忶") |
| | | private Integer cancelStatus; |
| | | |
| | | @ApiModelProperty(value = "åæ¶æ¶é´") |
| | | @ExcelColumn(name="åæ¶æ¶é´") |
| | | //@ExcelColumn(name="åæ¶æ¶é´") |
| | | private Date cancelTime; |
| | | |
| | | @ApiModelProperty(value = "åæ¶äºº", example = "1") |
| | | @ExcelColumn(name="åæ¶äºº") |
| | | //@ExcelColumn(name="åæ¶äºº") |
| | | private Integer cancelUser; |
| | | |
| | | @ApiModelProperty(value = "忶夿³¨") |
| | | @ExcelColumn(name="忶夿³¨") |
| | | //@ExcelColumn(name="忶夿³¨") |
| | | private String cancelInfo; |
| | | |
| | | @ApiModelProperty(value = "ç®çå°ç±»å 0å¸å
ç¨è½¦ 1å¸å¤ç¨è½¦", example = "1") |
| | | @ExcelColumn(name="ç®çå°ç±»å 0å¸å
ç¨è½¦ 1å¸å¤ç¨è½¦") |
| | | //@ExcelColumn(name="ç®çå°ç±»å 0å¸å
ç¨è½¦ 1å¸å¤ç¨è½¦") |
| | | @ExcelColumn(name="ç®çå°ç±»å",index =8,width = 5,valueMapping = "0=å¸å
ç¨è½¦;1=å¸å¤ç¨è½¦") |
| | | private Integer type; |
| | | |
| | | @ApiModelProperty(value = "ä¹è½¦äººç¼ç éåï¼å¤ä¸ªè±æéå·éå¼", example = "1") |
| | | @ExcelColumn(name="ä¹è½¦äººç¼ç éåï¼å¤ä¸ªè±æéå·éå¼") |
| | | //@ExcelColumn(name="ä¹è½¦äººç¼ç éåï¼å¤ä¸ªè±æéå·éå¼") |
| | | private String memberIds; |
| | | |
| | | @ApiModelProperty(value = "ä¹è½¦äººå§åéåï¼å¤ä¸ªè±æéå·éå¼") |
| | | @ExcelColumn(name="ä¹è½¦äººå§åéåï¼å¤ä¸ªè±æéå·éå¼") |
| | | //@ExcelColumn(name="ä¹è½¦äººå§åéåï¼å¤ä¸ªè±æéå·éå¼") |
| | | @ExcelColumn(name="ä¹è½¦äºº",index =6,width = 10) |
| | | private String memberNames; |
| | | |
| | | @ApiModelProperty(value = "ç¨è½¦äºç±") |
| | | @ExcelColumn(name="ç¨è½¦äºç±") |
| | | //@ExcelColumn(name="ç¨è½¦äºç±") |
| | | private String content; |
| | | |
| | | @ApiModelProperty(value = "ç®çå°") |
| | | @ExcelColumn(name="ç®çå°") |
| | | //@ExcelColumn(name="ç®çå°") |
| | | @ExcelColumn(name="ç®çå°",index =9,width = 10) |
| | | private String addr; |
| | | |
| | | @ApiModelProperty(value = "ç³è¯·äººç¼ç (å
³èmember)", example = "1") |
| | | @ExcelColumn(name="ç³è¯·äººç¼ç (å
³èmember)") |
| | | //@ExcelColumn(name="ç³è¯·äººç¼ç (å
³èmember)") |
| | | private Integer memberId; |
| | | |
| | | @ApiModelProperty(value = "叿ºç¼ç ï¼å
³èmemberIdï¼", example = "1") |
| | | @ExcelColumn(name="叿ºç¼ç ï¼å
³èmemberIdï¼") |
| | | //@ExcelColumn(name="叿ºç¼ç ï¼å
³èmemberIdï¼") |
| | | private Integer driverId; |
| | | |
| | | @ApiModelProperty(value = "叿ºå§å", example = "1") |
| | |
| | | private String driverPhone; |
| | | @ApiModelProperty(value = "ç³è¯·äººå§å", example = "1") |
| | | @TableField(exist = false) |
| | | @ExcelColumn(name="ææ¥äºº",index =2,width = 8) |
| | | private String memberName; |
| | | @ApiModelProperty(value = "ç³è¯·äººæå±ç»ç»åç§°", example = "1") |
| | | @TableField(exist = false) |
| | | @ExcelColumn(name="æå±ç»ç»",index =3,width = 20) |
| | | private String companyName; |
| | | @ApiModelProperty(value = "ç³è¯·äººææºå·", example = "1") |
| | | @TableField(exist = false) |
| | |
| | | @ApiModelProperty(value = "æåç»åç§°" ,hidden = true) |
| | | @TableField(exist = false) |
| | | private String groupName ; |
| | | @ApiModelProperty(value = "ä½ä¸å®ææ¶é´ï¼æç»æ¶é´ï¼") |
| | | @TableField(exist = false) |
| | | private Date doneDate; |
| | | } |
| | |
| | | |
| | | @ApiModelProperty(value = "æå°åç§°") |
| | | private String platformName; |
| | | @ApiModelProperty(value = "æå°ç¼ç ") |
| | | private Integer platformId; |
| | | @ApiModelProperty(value = "æå°æåº") |
| | | private Integer platformSort; |
| | | |
| | | @ApiModelProperty(value = "车çå·") |
| | | private String carNo; |
| | |
| | | private Integer workType; |
| | | |
| | | @ApiModelProperty(value = "ä½ä¸æ¶é¿ åä½ åé") |
| | | private Integer workTime; |
| | | private Long workTime; |
| | | |
| | | @ApiModelProperty(value = "é¢è®¡å®ææ¶é´ åä½ï¼æ¶é´æ³") |
| | | private Long finishTime; |
| | | @ApiModelProperty(value = "é¢è®¡å®ææ¶é´ æ ¼å¼HHï¼mm") |
| | | private String finishTimeStr; |
| | | |
| | | @ApiModelProperty(value = "æå°ç¶æï¼0=ä½ä¸ä¸ï¼1=空é²ä¸ï¼2=ä½ä¸è¶
æ¶") |
| | | @ApiModelProperty(value = "æå°ç¶æï¼0=ä½ä¸ä¸ï¼1=空é²ä¸ï¼2=ä½ä¸è¶
æ¶;3=å«å·ä¸") |
| | | private Integer status; |
| | | |
| | | } |
| | |
| | | */ |
| | | long count(SmsEmail smsEmail); |
| | | |
| | | void sendWaitingSmsNotice(); |
| | | } |
| | |
| | | import com.doumee.core.utils.Utils; |
| | | import com.doumee.dao.business.*; |
| | | import com.doumee.dao.business.dao.CompanyMapper; |
| | | import com.doumee.dao.business.dao.SmsConfigMapper; |
| | | import com.doumee.dao.business.dao.SmsEmailMapper; |
| | | import com.doumee.dao.business.dto.ApproveDTO; |
| | | import com.doumee.dao.business.join.ApproveJoinMapper; |
| | |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.core.utils.*; |
| | | import com.doumee.dao.business.*; |
| | | import com.doumee.dao.business.dao.SmsConfigMapper; |
| | | import com.doumee.dao.business.dao.SmsEmailMapper; |
| | | import com.doumee.dao.business.join.ApproveJoinMapper; |
| | | import com.doumee.dao.business.join.CarUseBookJoinMapper; |
| | |
| | | import com.doumee.core.utils.SmsConstants; |
| | | import com.doumee.core.utils.Utils; |
| | | import com.doumee.dao.business.*; |
| | | import com.doumee.dao.business.dao.SmsConfigMapper; |
| | | import com.doumee.dao.business.dao.SmsEmailMapper; |
| | | import com.doumee.dao.business.model.*; |
| | | import com.doumee.dao.system.MultifileMapper; |
| | |
| | | import com.doumee.core.utils.SmsConstants; |
| | | import com.doumee.core.utils.Utils; |
| | | import com.doumee.dao.business.*; |
| | | import com.doumee.dao.business.dao.SmsConfigMapper; |
| | | import com.doumee.dao.business.dao.SmsEmailMapper; |
| | | import com.doumee.dao.business.join.ApproveJoinMapper; |
| | | import com.doumee.dao.business.model.*; |
| | |
| | | import com.doumee.core.tms.model.response.TmsLockStatusQueryResponse; |
| | | import com.doumee.core.utils.*; |
| | | import com.doumee.dao.business.*; |
| | | import com.doumee.dao.business.dao.SmsConfigMapper; |
| | | import com.doumee.dao.business.dao.SmsEmailMapper; |
| | | import com.doumee.dao.business.join.PlatformJobJoinMapper; |
| | | import com.doumee.dao.business.join.PlatformJoinMapper; |
| | |
| | | } |
| | | } |
| | | platformJob.dealTime(); |
| | | this.getWorkTime(platformJob); |
| | | this.getWorkTime(platformJob,platformLogMapper); |
| | | this.getWmsJobData(platformJob); |
| | | return platformJob; |
| | | } |
| | |
| | | * è·åå·²ä½ä¸æ¶é´ |
| | | * @param platformJob |
| | | */ |
| | | public Long getWorkTime(PlatformJob platformJob){ |
| | | public static Long getWorkTime(PlatformJob platformJob,PlatformLogMapper platformLogMapper){ |
| | | List<PlatformLog> platformLogList = platformLogMapper.selectList(new QueryWrapper<PlatformLog>() |
| | | .lambda().eq(PlatformLog::getIsdeleted,Constants.ZERO) |
| | | .eq(PlatformLog::getJobId,platformJob.getId()) |
| | |
| | | import com.doumee.core.model.PageData; |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.core.utils.Utils; |
| | | import com.doumee.dao.business.SmsConfigMapper; |
| | | import com.doumee.dao.business.dao.SmsConfigMapper; |
| | | import com.doumee.dao.business.model.SmsConfig; |
| | | import com.doumee.service.business.SmsConfigService; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | |
| | | package com.doumee.service.business.impl; |
| | | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | |
| | | import com.doumee.biz.system.SystemDictDataBiz; |
| | | import com.doumee.core.constants.ResponseStatus; |
| | | import com.doumee.core.exception.BusinessException; |
| | | import com.doumee.core.haikang.model.HKConstants; |
| | | import com.doumee.core.haikang.model.param.BaseResponse; |
| | | import com.doumee.core.haikang.service.HKService; |
| | | import com.doumee.core.model.PageData; |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.core.utils.*; |
| | | import com.doumee.dao.business.*; |
| | | import com.doumee.dao.business.dao.SmsConfigMapper; |
| | | import com.doumee.dao.business.dao.SmsEmailMapper; |
| | | import com.doumee.dao.business.model.*; |
| | | import com.doumee.service.business.SmsEmailService; |
| | |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.util.CollectionUtils; |
| | | |
| | | import java.net.URLEncoder; |
| | | import java.util.*; |
| | | import java.util.Date; |
| | | |
| | |
| | | public long count(SmsEmail smsEmail) { |
| | | QueryWrapper<SmsEmail> wrapper = new QueryWrapper<>(smsEmail); |
| | | return smsEmailMapper.selectCount(wrapper); |
| | | } |
| | | @Override |
| | | public void sendWaitingSmsNotice(){ |
| | | LambdaQueryWrapper<SmsEmail> wrapper = new LambdaQueryWrapper<SmsEmail>() |
| | | .eq(SmsEmail::getIsdeleted,Constants.ZERO) |
| | | .eq(SmsEmail::getStatus,Constants.TWO); |
| | | List<SmsEmail> smsEmails = smsEmailMapper.selectList(wrapper); |
| | | if(smsEmails!=null && smsEmails.size()>0){ |
| | | for(SmsEmail model : smsEmails){ |
| | | if(model.getPhone() == null){ |
| | | model.setStatus(Constants.THREE);//åé失败 |
| | | model.setRemark("ææºå·ä¸ºç©ºï¼åæ¶ä»»å¡åéï¼"); |
| | | }else{ |
| | | try { |
| | | emayService.sendSmsByHk(model.getPhone(),model.getContent()); |
| | | model.setStatus(Constants.ONE);//åéæå |
| | | model.setRemark("çä¿¡ä»»å¡åéæå"); |
| | | }catch (Exception e){ |
| | | model.setStatus(Constants.THREE);//åé失败 |
| | | model.setRemark("çä¿¡ä»»å¡åé失败ï¼"+e.getMessage()); |
| | | } |
| | | } |
| | | model.setEditDate(new Date()); |
| | | smsEmailMapper.updateById(model); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | |
| | | smsEmail.setObjId(objId); |
| | | smsEmailMapper.insert(smsEmail); |
| | | emayService.sendSmsByHk(phone,content); |
| | | |
| | | |
| | | } |
| | | } |
| | | |
| | |
| | | import com.doumee.dao.admin.response.PCWorkPlatformDataVO; |
| | | import com.doumee.dao.business.*; |
| | | import com.doumee.dao.business.dao.CompanyMapper; |
| | | import com.doumee.dao.business.dao.SmsConfigMapper; |
| | | import com.doumee.dao.business.dao.SmsEmailMapper; |
| | | import com.doumee.dao.business.dto.ResetPasswordDTO; |
| | | import com.doumee.dao.business.join.DeviceJoinMapper; |
| | |
| | | import com.doumee.core.haikang.model.param.respose.PageRegionInfoResponse; |
| | | import com.doumee.core.haikang.model.param.respose.PageSensorStatusResponse; |
| | | import com.doumee.core.haikang.service.HKService; |
| | | import com.doumee.core.model.ApiResponse; |
| | | import com.doumee.core.utils.Constants; |
| | | import com.doumee.core.utils.DateUtil; |
| | | import com.doumee.core.utils.Utils; |
| | | import com.doumee.dao.business.*; |
| | | import com.doumee.dao.business.model.*; |
| | | import com.doumee.dao.web.reqeust.SavePlatformWarnEventDTO; |
| | | import com.doumee.dao.web.response.platformReport.*; |
| | | import com.doumee.service.business.impl.PlatformJobServiceImpl; |
| | | import com.doumee.service.business.third.BoardService; |
| | | import com.github.yulichang.wrapper.MPJLambdaWrapper; |
| | | import lombok.extern.slf4j.Slf4j; |
| | |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | |
| | | .in(PlatformJob::getStatus, Constants.PlatformJobStatus.DONE.getKey() |
| | | , Constants.PlatformJobStatus.AUTHED_LEAVE.getKey() |
| | | , Constants.PlatformJobStatus.LEAVED.getKey()) |
| | | .apply("to_days(t1.create_data) = to_days(now())") |
| | | .apply("to_days(t1.create_date) = to_days(now())") |
| | | .groupBy(PlatformGroup::getId) |
| | | ); |
| | | if(jobList!=null){ |
| | |
| | | ); |
| | | carWorkSituationVO.setPlatformLogList(platformLogList); |
| | | return carWorkSituationVO; |
| | | } |
| | | |
| | | @Override |
| | | public List<PlatformWorkDataVO> platformWorkData(){ |
| | | |
| | | List<PlatformWorkDataVO> platformWorkDataVOList = new ArrayList<>(); |
| | | List<Platform> platformList = platformMapper.selectJoinList(Platform.class, new MPJLambdaWrapper<Platform>() |
| | | .selectAll( Platform.class) |
| | | .eq(Platform::getIsdeleted, Constants.ZERO) |
| | | .orderByAsc(Platform::getSortnum) |
| | | ); |
| | | /** |
| | | * WAIT_CONFIRM(0, "å¾
确认","å¾
确认" ), |
| | | * WART_SIGN_IN(1, "å¾
ç¾å°","å¾
ç¾å°" ), |
| | | * WAIT_CALL(2, "å·²ç¾å°","å·²ç¾å°"), |
| | | * IN_WAIT(3, "å
¥åçå¾
","å
¥åçå¾
" ), |
| | | * CALLED(4, "å·²å«å·","å·²å«å·" ), |
| | | * WORKING(5, "ä½ä¸ä¸","ä½ä¸ä¸" ), |
| | | * DONE(6, "ä½ä¸å®æ ","ä½ä¸å®æ" ), |
| | | * TRANSFERING(7, "转移ä¸","转移ä¸" ), |
| | | * EXCEPTION(8, "å¼å¸¸æèµ·","å¼å¸¸æèµ·" ), |
| | | * AUTHED_LEAVE(9, "å·²ææç¦»å","å·²ææç¦»å" ), |
| | | * LEAVED(10, "已离å ","已离å " ), |
| | | * OVER_NUMBER(11, "å·²è¿å·","å·²è¿å·" ), |
| | | * CANCEL(12, "已忶","已忶" ), |
| | | */ |
| | | |
| | | if(platformList!=null && platformList.size()>0){ |
| | | List<PlatformJob> jobList = platformJobMapper.selectJoinList(PlatformJob.class, new MPJLambdaWrapper<PlatformJob>() |
| | | .selectAll( PlatformJob.class) |
| | | .select("( select pl.CREATE_DATE from platform_log pl where t.id = pl.obj_id and pl.OBJ_TYPE = "+Constants.PlatformJobLogType.WORKING.getKey()+" order by pl.CREATE_DATE desc limit 1 ) as newStartDate") |
| | | .select(" (select sum(ifnull(pl.IO_QTY , 0 )) from platform_wms_detail pl where pl.job_id = t.id and pl.isdeleted=0 )",PlatformJob::getWorkNum) |
| | | .apply("to_days(t.create_date) = to_days(now())") |
| | | .eq(Platform::getIsdeleted, Constants.ZERO) |
| | | .in(PlatformJob ::getStatus,new Integer[]{Constants.PlatformJobStatus.WORKING.getKey(),Constants.PlatformJobStatus.CALLED.getKey() }) |
| | | .orderByDesc(PlatformJob::getStatus )); |
| | | //æå°ç¶æï¼0=ä½ä¸ä¸ï¼1=空é²ä¸ï¼2=ä½ä¸è¶
æ¶;3=å«å· |
| | | for(Platform model : platformList){ |
| | | PlatformWorkDataVO platformDurationVO = new PlatformWorkDataVO(); |
| | | platformDurationVO.setPlatformName(model.getName()); |
| | | platformDurationVO.setPlatformId(model.getId()); |
| | | platformDurationVO.setPlatformSort(model.getSortnum()); |
| | | PlatformJob job = getJobFromListById(model.getId(),jobList); |
| | | if(job != null){ |
| | | if(Constants.equalsInteger(job.getType(),Constants.ONE) || Constants.equalsInteger(job.getType(),Constants.THREE)){ |
| | | platformDurationVO.setWorkType(Constants.ONE);//妿æ¯è£
è´§ |
| | | }else{ |
| | | platformDurationVO.setWorkType(Constants.ZERO);//妿æ¯å¸è´§ |
| | | } |
| | | Integer workMinute = job.getWorkNum().multiply(new BigDecimal(60)).divide(model.getWorkRate(),0,BigDecimal.ROUND_HALF_UP).intValue(); |
| | | Date overDate = DateUtil.getXMinuteAfterDate(job.getNewStartDate(),workMinute + model.getWorkTimeoutAlarmTime());//é¢è®¡å®ææ¶é´ |
| | | platformDurationVO.setFinishTimeStr(DateUtil.DateToStr(overDate,"HH:mm")); |
| | | |
| | | platformDurationVO.setWorkNum(Constants.formatBigdecimal(job.getWorkNum()).intValue()); |
| | | platformDurationVO.setCarNo(job.getCarCodeFront());//车çå· |
| | | if(Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.CALLED.getKey() )){ |
| | | platformDurationVO.setStatus(Constants.THREE); //å«å·ä¸ |
| | | }else{ |
| | | platformDurationVO.setStatus(Constants.ZERO); //ä½ä¸ä¸ |
| | | platformDurationVO.setWorkTime(PlatformJobServiceImpl.getWorkTime(job,platformLogMapper));//已工使¶é´ |
| | | if(overDate.getTime() < System.currentTimeMillis() ){ |
| | | model.setStatus(Constants.TWO); //ä½ä¸å·²è¶
æ¶ |
| | | } |
| | | } |
| | | }else{ |
| | | platformDurationVO.setStatus(Constants.ONE);//空é²ä¸ |
| | | } |
| | | platformWorkDataVOList.add(platformDurationVO); |
| | | } |
| | | } |
| | | return platformWorkDataVOList; |
| | | } |
| | | |
| | | private PlatformJob getJobFromListById(Integer id, List<PlatformJob> jobList) { |
| | | if(jobList!=null){ |
| | | for(PlatformJob job :jobList){ |
| | | if(Constants.equalsInteger(job.getPlatformId(),id)){ |
| | | return job; |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | return null; |
| | | } |
| | | |
| | | /** |
| | | * |
| | | * @param type æ¥è¯¢ç±»åï¼0=å
¥åºï¼1=åºåº |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<WorkEfficiencyVO> workEfficiency(Integer type){ |
| | | //ä½ä¸ç±»å 0èªæè½¦å¸è´§ 1èªæè½¦è£
è´§ 2å¤å车å¸è´§ 3å¤å车è£
è´§ 4å¸å
¬å¸å¤å车å¸è´§ |
| | | List<WorkEfficiencyVO> workEfficiencyVOList = new ArrayList<>(); |
| | | List<PlatformWmsDetail> jobList = platformWmsDetailMapper.selectJoinList(PlatformWmsDetail.class, new MPJLambdaWrapper<PlatformWmsDetail>() |
| | | .selectAll( PlatformWmsDetail.class) |
| | | .selectAs( PlatformJob::getDoneDate,PlatformWmsDetail::getDoneDate) |
| | | .leftJoin(PlatformJob.class,PlatformJob::getId,PlatformWmsDetail::getJobId) |
| | | .eq(PlatformWmsDetail::getIsdeleted, Constants.ZERO) |
| | | .eq(PlatformJob::getIsdeleted, Constants.ZERO) |
| | | .in(Constants.equalsInteger(type,Constants.ZERO),PlatformJob::getType,new Integer[]{0,2,4}) |
| | | .in(Constants.equalsInteger(type,Constants.ONE),PlatformJob::getType,new Integer[]{1,3}) |
| | | .in(PlatformJob::getStatus, Constants.PlatformJobStatus.DONE.getKey() |
| | | , Constants.PlatformJobStatus.AUTHED_LEAVE.getKey() |
| | | , Constants.PlatformJobStatus.LEAVED.getKey()) |
| | | .apply("to_days(t1.create_date) = to_days(now())") |
| | | ); |
| | | int curtotalNum = 0; |
| | | Date today = Utils.Date.getStart(new Date()); |
| | | long curTime=0, lastTime=0; |
| | | for (int i = 0; i < 8; i++) { |
| | | lastTime = curTime;//䏿¬¡çæ¶é´ |
| | | int curHour = 8+(i*2); |
| | | long time = curHour*60*60*1000 + today.getTime(); |
| | | WorkEfficiencyVO workEfficiencyVO = new WorkEfficiencyVO(); |
| | | workEfficiencyVO.setWorkTime(curHour+":00"); |
| | | if(jobList!=null && jobList.size()>0){ |
| | | for(PlatformWmsDetail detail : jobList){ |
| | | if(detail.getDoneDate()!=null && detail.getDoneDate().getTime()<= time){ |
| | | //å½åé |
| | | if(detail.getDoneDate()!=null && detail.getDoneDate().getTime() > lastTime){ |
| | | //åºé´å¼ åå®è¿2å°æ¶å
çç´¯è®¡å¼ |
| | | workEfficiencyVO.setWorkNum(Constants.formatIntegerNum(workEfficiencyVO.getWorkNum())+Constants.formatBigdecimal(detail.getIoQty()).intValue()); |
| | | } |
| | | //累积é |
| | | curtotalNum += Constants.formatBigdecimal(detail.getIoQty()).intValue(); |
| | | } |
| | | } |
| | | } |
| | | workEfficiencyVO.setTotalWorkNum(curtotalNum);//ç´¯è®¡å¼ |
| | | workEfficiencyVOList.add(workEfficiencyVO); |
| | | } |
| | | return workEfficiencyVOList; |
| | | } |
| | | @Override |
| | | public List<PlatformDurationVO> platformDuration(){ |
| | |
| | | .selectAll(PlatformJob.class) |
| | | .select("count(id)" ,PlatformJob::getCountum) |
| | | .eq(PlatformJob::getIsdeleted,Constants.ZERO) |
| | | .apply("to_days(create_data) = to_days(now())" ) |
| | | .apply("to_days(create_date) = to_days(now())" ) |
| | | .groupBy(PlatformJob::getStatus ) |
| | | ); |
| | | if(jobList!=null){ |
| | |
| | | import com.doumee.core.wms.model.response.WmsBaseResponse; |
| | | import com.doumee.core.wms.model.response.WmsInventoryDataResponse; |
| | | import com.doumee.dao.business.*; |
| | | import com.doumee.dao.business.dao.SmsConfigMapper; |
| | | import com.doumee.dao.business.dao.SmsEmailMapper; |
| | | import com.doumee.dao.business.model.*; |
| | | |
| | |
| | | import com.doumee.service.business.third.EmayService; |
| | | import com.doumee.service.business.third.WmsService; |
| | | import com.github.yulichang.wrapper.MPJLambdaWrapper; |
| | | import io.swagger.models.auth.In; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | List<PlatformWarnEvent> warningList(int limit); |
| | | |
| | | List<PlatformDurationVO> platformDuration(); |
| | | |
| | | List<WorkEfficiencyVO> workEfficiency(Integer type); |
| | | |
| | | List<PlatformWorkDataVO> platformWorkData(); |
| | | } |