Merge remote-tracking branch 'origin/master'
| | |
| | | }, |
| | | methods: { |
| | | async init() { |
| | | // if (!this.$store.state.userInfo) { |
| | | // let res = await this.$u.api.login({ code: 'ShiXuHui' }) |
| | | // if (res.code === 200) { |
| | | // this.$store.commit('setUserInfo', res.data) |
| | | // } |
| | | // } |
| | | // return |
| | | // ShiXuHui GuoJiWenWu |
| | | if (!this.$store.state.userInfo) { |
| | | let res = await this.$u.api.login({ code: 'GuoJiWenWu' }) |
| | | if (res.code === 200) { |
| | | this.$store.commit('setUserInfo', res.data) |
| | | } |
| | | } |
| | | return |
| | | let code = this.getQueryVariable('code') |
| | | if (code) { |
| | | if (!uni.getStorageSync('code')) { |
| | |
| | | App.mpType = 'app' |
| | | Vue.use(uView); |
| | | |
| | | Vue.prototype.$baseUrl = 'https://dmtest.ahapp.net/lianhelihua_interface' |
| | | // Vue.prototype.$baseUrl = 'http://192.168.0.131:10040' |
| | | // Vue.prototype.$baseUrl = 'https://dmtest.ahapp.net/lianhelihua_interface' |
| | | Vue.prototype.$baseUrl = 'http://192.168.0.134:10040' |
| | | Vue.prototype.$store = store; |
| | | Vue.prototype.$ww = ww; |
| | | Vue.prototype.$vConsole= new Vconsole() |
| | |
| | | </view> |
| | | <view class="search_item" v-if="['2'].includes(this.type)" @click="$refs.pengTree._show()"> |
| | | <view class="search_item_label">位置</view> |
| | | <view class="search_item_value">{{ model.localtionName ? model.localtionName : '全部' }}</view> |
| | | <view class="search_item_value">{{ model.localtionId ? model.localtionName : '全部' }}</view> |
| | | </view> |
| | | <view class="search_item" v-if="['2'].includes(this.type)" @click="openZT"> |
| | | <view class="search_item_label">主题</view> |
| | | <view class="search_item_value">{{ model.typeName ? model.typeName : '全部' }}</view> |
| | | <view class="search_item_value">{{ model.typeId ? model.typeName : '全部' }}</view> |
| | | </view> |
| | | <view class="search_item" @click="openRQ"> |
| | | <view class="search_item_label">日期</view> |
| | |
| | | async getLocation() { |
| | | let res = await this.$u.api.categoryTree({ categoryType: 3 }) |
| | | if (res.code === 200) { |
| | | res.data.unshift({ name: '全部', id: '', childList: [] }) |
| | | this.address = res.data |
| | | } |
| | | }, |
| | |
| | | async getZhuti() { |
| | | let res = await this.$u.api.categoryList({ categoryType: 4, isRoot: 1 }) |
| | | if (res.code === 200) { |
| | | res.data.unshift({ name: '全部', id: '', childList: [] }) |
| | | this.theme = [res.data] |
| | | } |
| | | }, |
| | |
| | | <view class="dca_wt_list_item_btn" v-if="item.closeButton === 1"> |
| | | <view class="btn" @click="handle(item.id)">处理</view> |
| | | </view> |
| | | <view class="dca_wt_list_item_btn" v-else> |
| | | <view class="btn" @click="handle(item.id)">查看</view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | |
| | | <u-icon name="arrow-down-fill" color="#666666" size="13"></u-icon> |
| | | </view> |
| | | <view class="report_search_row" @click="$refs.pengTree._show()" v-if="['3'].includes(typeId)"> |
| | | <text>{{locationName ? locationName : '发生地点'}}</text> |
| | | <text>{{localtionId ? locationName : '发生地点'}}</text> |
| | | <u-icon name="arrow-down-fill" color="#666666" size="13"></u-icon> |
| | | </view> |
| | | <view class="report_search_row" @click="$refs.pengTree1._show()" v-if="['1'].includes(typeId)"> |
| | | <text>{{locationName ? locationName : '位置'}}</text> |
| | | <text>{{localtionId ? locationName : '位置'}}</text> |
| | | <u-icon name="arrow-down-fill" color="#666666" size="13"></u-icon> |
| | | </view> |
| | | </view> |
| | |
| | | this.$refs.pengTree._hide() |
| | | }, |
| | | // 位置 |
| | | selectAddress(e) { |
| | | selectAddress1(e) { |
| | | this.localtionId = e[0].id |
| | | this.locationName = e[0].name |
| | | this.search.page = 1 |
| | |
| | | async getLocation() { |
| | | let res = await this.$u.api.categoryTree({ categoryType: 2 }) |
| | | if (res.code === 200) { |
| | | res.data.unshift({ name: '全部', id: '', childList: [] }) |
| | | this.address = res.data |
| | | } |
| | | }, |
| | |
| | | async getLocation1() { |
| | | let res = await this.$u.api.categoryTree({ categoryType: 3 }) |
| | | if (res.code === 200) { |
| | | res.data.unshift({ name: '全部', id: '', childList: [] }) |
| | | this.address1 = res.data |
| | | } |
| | | }, |
| | |
| | | <u-icon name="arrow-down-fill" color="#666666" size="13"></u-icon> |
| | | </view> |
| | | <view class="report_search_row" @click="$refs.pengTree._show()" v-if="['3'].includes(typeId)"> |
| | | <text>{{locationName ? locationName : '发生地点'}}</text> |
| | | <text>{{localtionId ? locationName : '发生地点'}}</text> |
| | | <u-icon name="arrow-down-fill" color="#666666" size="13"></u-icon> |
| | | </view> |
| | | <view class="report_search_row" @click="$refs.pengTree1._show()" v-if="['1'].includes(typeId)"> |
| | | <text>{{locationName ? locationName : '位置'}}</text> |
| | | <text>{{localtionId ? locationName : '位置'}}</text> |
| | | <u-icon name="arrow-down-fill" color="#666666" size="13"></u-icon> |
| | | </view> |
| | | </view> |
| | |
| | | async getLocation() { |
| | | let res = await this.$u.api.categoryTree({ categoryType: 2 }) |
| | | if (res.code === 200) { |
| | | res.data.unshift({ name: '全部', id: '', childList: [] }) |
| | | this.address = res.data |
| | | } |
| | | }, |
| | |
| | | async getLocation1() { |
| | | let res = await this.$u.api.categoryTree({ categoryType: 3 }) |
| | | if (res.code === 200) { |
| | | res.data.unshift({ name: '全部', id: '', childList: [] }) |
| | | this.address1 = res.data |
| | | } |
| | | }, |
| | |
| | | // const privateKey = uni.getStorageSync('aes_private_key') |
| | | |
| | | export function decryptedData (msg, data) { |
| | | console.log(msg) |
| | | console.log(data) |
| | | // console.log(msg) |
| | | // console.log(data) |
| | | // 变换key:将当月位数字符串去除,然后倒序 |
| | | const monthIndex = new Date().getMonth() + 1 |
| | | const msgStr = msg.slice(0, monthIndex) + msg.slice(monthIndex + 1) |
| | | const reverseMsgStr = msgStr.split('').reverse().join('') |
| | | const str1 = data.replace(/\s/g, '') |
| | | console.log(reverseMsgStr) |
| | | console.log(str1) |
| | | // console.log(reverseMsgStr) |
| | | // console.log(str1) |
| | | // 解密并返回结果 |
| | | return ( |
| | | JSON.parse( |
| | |
| | | return config; |
| | | }) |
| | | |
| | | let login = (data = {}) => vm.$u.http.post('web/member/loginH5', data); // 登录 encryptData(data) |
| | | let login = (data = {}) => vm.$u.http.post('web/member/loginH5', encryptData(data)); // 登录 |
| | | let categoryTree = (params = {}) => vm.$u.http.get('web/category/categoryTree', { params }); // 查询树 |
| | | let workOrderCreate = (data = {}) => vm.$u.http.post('web/workOrder/create', data); // 创建工单 |
| | | let workOrderCreate = (data = {}) => vm.$u.http.post('web/workOrder/create', encryptData(data)); // 创建工单 |
| | | let upload = (data = {}) => vm.$u.http.post('web/public/upload', data); // 上传 |
| | | let uploadBatch = (data = {}) => vm.$u.http.post('web/public/uploadBatch', data); // 批量上传文件到FTP |
| | | let detail = (params = {}) => vm.$u.http.get('web/workOrder/detail', { params }); // 风险上报详情 |
| | | let managersList = (data = {}) => vm.$u.http.post('web/workOrder/managersList', data); // 上传 |
| | | let managersList = (data = {}) => vm.$u.http.post('web/workOrder/managersList', encryptData(data)); // 上传 |
| | | let categoryList = (params = {}) => vm.$u.http.get('web/category/categoryList', { params }); // 获取分类类别获取分类列表 |
| | | let page = (data = {}) => vm.$u.http.post('web/workOrder/page', data); // 分页查询 |
| | | let getWorkOrderData = (data = {}) => vm.$u.http.post('web/workOrder/getWorkOrderData', data); // 分页查询 |
| | | let passOn = (data = {}) => vm.$u.http.post('web/workOrder/passOn', data); // 工单指派 |
| | | let closeWorkOrder = (data = {}) => vm.$u.http.post('web/workOrder/closeWorkOrder', data); // 工单关闭 |
| | | let page = (data = {}) => vm.$u.http.post('web/workOrder/page', encryptData(data)); // 分页查询 |
| | | let getWorkOrderData = (data = {}) => vm.$u.http.post('web/workOrder/getWorkOrderData', encryptData(data)); // 分页查询 |
| | | let passOn = (data = {}) => vm.$u.http.post('web/workOrder/passOn', encryptData(data)); // 工单指派 |
| | | let closeWorkOrder = (data = {}) => vm.$u.http.post('web/workOrder/closeWorkOrder', encryptData(data)); // 工单关闭 |
| | | let urge = (params = {}) => vm.$u.http.get('web/workOrder/urge', { params }); // 工单催促 |
| | | let sendCopy = (data = {}) => vm.$u.http.post('web/workOrder/sendCopy', data); // 工单抄送 |
| | | let getQwSignature = (data = {}) => vm.$u.http.post('web/member/getQwSignature', data); // 获取titket |
| | | let sendCopy = (data = {}) => vm.$u.http.post('web/workOrder/sendCopy', encryptData(data)); // 工单抄送 |
| | | let getQwSignature = (data = {}) => vm.$u.http.post('web/member/getQwSignature', encryptData(data)); // 获取titket |
| | | let getCategoryVOForGCXTree = (params = {}) => vm.$u.http.get('web/category/getCategoryVOForGCXTree', { params }); // 查询树 |
| | | let getCopySendUserPage = (data = {}) => vm.$u.http.post('web/member/getCopySendUserPage', data); // 查询可被抄送人分页 |
| | | let getCopySendUserPage = (data = {}) => vm.$u.http.post('web/member/getCopySendUserPage', encryptData(data)); // 查询可被抄送人分页 |
| | | |
| | | vm.$u.api = { |
| | | login, |
| | |
| | | if (response.data.code === 5112) { |
| | | uni.showToast({ |
| | | title: '登录过期,正在重新跳转授权', |
| | | icon: 'none', |
| | | duration: 2000, |
| | | success() { |
| | | setTimeout(() => { |
| | |
| | | duration: 2000 |
| | | }); |
| | | } |
| | | // if (response.data.message) { |
| | | // const tm = response.data.message |
| | | // const list = tm.split(' ') |
| | | // let msg = list[0] |
| | | // if (list.length > 1 && response.data.data) { |
| | | // msg = decryptedData(list[1], list[0]) |
| | | // response.data.data = decryptedData(list[1], response.data.data) |
| | | // response.data.message = msg |
| | | // } |
| | | // } |
| | | if (response.data.message) { |
| | | const tm = response.data.message |
| | | const list = tm.split(' ') |
| | | let msg = list[0] |
| | | if (list.length > 1 && response.data.data) { |
| | | msg = decryptedData(list[1], list[0]) |
| | | response.data.data = decryptedData(list[1], response.data.data) |
| | | console.log(response.data.data) |
| | | response.data.message = msg |
| | | } |
| | | } |
| | | return response.data; |
| | | }, (response) => { |
| | | return Promise.reject(response) |
| | |
| | | import com.doumee.config.annotation.EncryptionReq; |
| | | import com.doumee.config.annotation.EncryptionResp; |
| | | import com.doumee.config.annotation.LoginRequired; |
| | | import com.doumee.core.constants.Constants; |
| | | import com.doumee.core.constants.ResponseStatus; |
| | | import com.doumee.core.exception.BusinessException; |
| | | import com.doumee.core.model.ApiResponse; |
| | |
| | | import com.doumee.service.business.ManagersService; |
| | | import com.doumee.service.business.MemberService; |
| | | import com.doumee.service.business.WorkorderService; |
| | | import com.github.xiaoymin.knife4j.core.util.CollectionUtils; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import lombok.extern.java.Log; |
| | |
| | | try { |
| | | Member member = jwtTokenUtil.getUserInfoByToken(token); |
| | | pageWrap.getModel().setQwId(member.getQwId()); |
| | | return ApiResponse.success(workorderService.findPage(pageWrap)); |
| | | PageData<Workorder> pageData = workorderService.findPage(pageWrap); |
| | | return ApiResponse.success(pageData); |
| | | }catch (BusinessException e){ |
| | | return ApiResponse.failed(e.getCode(),e.getMessage()); |
| | | }catch (Exception e){ |
| | |
| | | @TableField(exist = false) |
| | | private Long num; |
| | | |
| | | |
| | | @ApiModelProperty("文件路径前缀") |
| | | @TableField(exist = false) |
| | | private String path; |
| | |
| | | |
| | | Category com = new Category(); |
| | | com.setId(category.getId()); |
| | | com.setIdPath(idPath+category.getId()+"/"); |
| | | com.setIdPath(idPath+"/"+category.getId()+"/"); |
| | | categoryMapper.updateById(com); |
| | | return category.getId(); |
| | | |
| | |
| | | //处理上报日志 DCA工单 日志存储至子业务 不存在于父级 与跌绊滑 |
| | | String logTitle = Constants.equalsInteger(workorder.getType(), Constants.THREE) ? "跌绊滑风险" : "DCA"; |
| | | workorder.setCreateDate(workorder.getSubmitDate()); |
| | | this.saveLog(null,workorder,Constants.ZERO,workorder.getMemberId(),workOrderStatus.getLogTitle().replace("{title}",logTitle),null,null); |
| | | this.saveLog(null,workorder,Constants.ZERO,workorder.getMemberId(),workOrderStatus.getLogTitle().replace("{title}",logTitle),null,null,null); |
| | | } |
| | | } |
| | | |
| | |
| | | * @param memberId |
| | | * @param paramr2 转交给的处理人 |
| | | */ |
| | | public Integer saveLog(String beforeJson,Workorder afterWorkorder,Integer objType,Integer memberId,String title,String content,String paramr2){ |
| | | public Integer saveLog(String beforeJson,Workorder afterWorkorder,Integer objType,Integer memberId,String title,String content,String paramr2,String remark){ |
| | | WorkorderLog workorderLog = new WorkorderLog(); |
| | | workorderLog.setCreateDate(afterWorkorder.getEditDate()); |
| | | workorderLog.setEditDate(afterWorkorder.getEditDate()); |
| | |
| | | workorderLog.setObjType(objType); |
| | | workorderLog.setTitle(title); |
| | | workorderLog.setContent(content); |
| | | workorderLog.setRemark(remark); |
| | | workorderLogMapper.insert(workorderLog); |
| | | return workorderLog.getId(); |
| | | } |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | if(!Constants.equalsInteger(workorderLog.getObjType(),Constants.FOUR)){ |
| | | //查询附件信息 |
| | | List<Multifile> multifileList = multifileMapper.selectList(new QueryWrapper<Multifile>().lambda() |
| | | .eq(Multifile::getIsdeleted,Constants.ZERO) |
| | |
| | | multifile.setFileurlFull(path+multifile.getFileurl()); |
| | | } |
| | | workorderLog.setMultifileList(multifileList); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | .ne(org.apache.commons.lang3.StringUtils.isNotBlank(pageWrap.getQwId()),Workorder::getType,Constants.TWO) |
| | | .in(Objects.nonNull(pageWrap.getDealStatus())&& |
| | | Constants.equalsInteger(pageWrap.getDealStatus(),Constants.ZERO), |
| | | Workorder::getStatus,Constants.WorkOrderStatus.waitConfirm.getKey(),Constants.WorkOrderStatus.waitAllocation.getKey(),Constants.WorkOrderStatus.waitDeal.getKey()) |
| | | Workorder::getStatus,Constants.WorkOrderStatus.waitConfirm.getKey(), |
| | | Constants.WorkOrderStatus.waitAllocation.getKey(),Constants.WorkOrderStatus.waitDeal.getKey()) |
| | | .in(Objects.nonNull(pageWrap.getDealStatus())&& |
| | | Constants.equalsInteger(pageWrap.getDealStatus(),Constants.ONE), |
| | | Workorder::getStatus,Constants.WorkOrderStatus.sheClose.getKey(),Constants.WorkOrderStatus.close.getKey(),Constants.WorkOrderStatus.wtsClose.getKey()) |
| | |
| | | if(workorder.getQwnoticeMemberIds().indexOf(closeDTO.getMember().getQwId())<Constants.ZERO && !workorder.getManagerId().equals(closeDTO.getMember().getQwId())){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,当前工单非您的工单,无法进行处理"); |
| | | } |
| | | if(workorder.getManagerId().equals(closeDTO.getMember().getQwId())){ |
| | | workorder.setStatus(Constants.WorkOrderStatus.wtsClose.getKey()); |
| | | }else if(workorder.getQwnoticeMemberIds().indexOf(closeDTO.getMember().getQwId())>Constants.ZERO){ |
| | | workorder.setStatus(Constants.WorkOrderStatus.sheClose.getKey()); |
| | | }else{ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,当前工单非您的工单,无法进行处理"); |
| | | } |
| | | qwIds.addAll(Arrays.asList(workorder.getQwnoticeMemberIds().split(","))); |
| | | qwIds.add(workorder.getManagerId()); |
| | | qwIds.remove(closeDTO.getMember().getQwId()); |
| | |
| | | && !workorder.getDealerId().equals(closeDTO.getMember().getQwId()) ){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,当前工单非您的工单,无法进行处理"); |
| | | } |
| | | if(workorder.getManagerId().equals(closeDTO.getMember().getQwId())){ |
| | | workorder.setStatus(Constants.WorkOrderStatus.wtsClose.getKey()); |
| | | }else if(workorder.getDealerId().equals(closeDTO.getMember().getQwId())){ |
| | | workorder.setStatus(Constants.WorkOrderStatus.close.getKey()); |
| | | }else if(workorder.getQwnoticeMemberIds().indexOf(closeDTO.getMember().getQwId())>Constants.ZERO){ |
| | | workorder.setStatus(Constants.WorkOrderStatus.sheClose.getKey()); |
| | | }else{ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,当前工单非您的工单,无法进行处理"); |
| | | } |
| | | qwIds.addAll(Arrays.asList(workorder.getQwnoticeMemberIds().split(","))); |
| | | qwIds.add(workorder.getManagerId()); |
| | | qwIds.remove(closeDTO.getMember().getQwId()); |
| | |
| | | workorder.setEditDate(new Date()); |
| | | workorder.setDealTime(new Date()); |
| | | workorder.setDealInfo(closeDTO.getInfo()); |
| | | //子工单 则查询父级工单数据 是否付存在未完成的 如果不存在未完成的则进行主工单状态变化 |
| | | if(Constants.equalsInteger(workorder.getType(),Constants.TWO)&& |
| | | workorderMapper.selectCount(new QueryWrapper<Workorder>().lambda().eq(Workorder::getDcaRecordId,workorder.getDcaRecordId()).eq(Workorder::getIsdeleted,Constants.ZERO) |
| | | .ne(Workorder::getId,workorder.getId()).in(Workorder::getStatus, |
| | | Constants.WorkOrderStatus.waitConfirm.getKey(),Constants.WorkOrderStatus.waitAllocation.getKey(),Constants.WorkOrderStatus.waitDeal.getKey() |
| | | ))<=Constants.ZERO){ |
| | | Workorder parentWorkorder = new Workorder(); |
| | | parentWorkorder.setId(workorder.getDcaRecordId()); |
| | | parentWorkorder.setEditDate(new Date()); |
| | | parentWorkorder.setStatus(Constants.WorkOrderStatus.close.getKey()); |
| | | workorderMapper.updateById(parentWorkorder); |
| | | } |
| | | workorderMapper.updateById(workorder); |
| | | //处理上报日志 |
| | | Integer logId = this.saveLog(beforeJson,workorder,Constants.THREE,closeDTO.getMember().getId(),"任务已处理",closeDTO.getInfo(),null); |
| | | Integer logId = this.saveLog(beforeJson,workorder,Constants.THREE,closeDTO.getMember().getId(),"任务已处理",closeDTO.getInfo(),null,closeDTO.getInfo()); |
| | | List<Multifile> multifileList = closeDTO.getMultifileList(); |
| | | if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(multifileList)){ |
| | | for (Multifile multifile:multifileList) { |
| | |
| | | //处理上报日志 |
| | | Integer logId = this.saveLog(beforeJson,workorder, |
| | | Constants.equalsInteger(passOnDTO.getPassOnType(),Constants.ZERO)?Constants.ONE:Constants.TWO |
| | | ,passOnDTO.getMember().getId(),"任务分配",passOnDTO.getInfo(),paramr2); |
| | | ,passOnDTO.getMember().getId(),"任务分配",passOnDTO.getInfo(),paramr2,null); |
| | | List<Multifile> multifileList = passOnDTO.getMultifileList(); |
| | | if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(multifileList)){ |
| | | for (Multifile multifile:multifileList) { |
| | |
| | | |
| | | this.saveLog(null,workorder, |
| | | Constants.FOUR |
| | | ,member.getId(),"催促","已催促 "+urgeUser.getCompanyName() + "/" + urgeUser.getName(),null); |
| | | ,member.getId(),"催促","已催促 "+urgeUser.getCompanyName() + "/" + urgeUser.getName(),null,null); |
| | | //发送企微通知 |
| | | Category category = categoryMapper.selectById(workorder.getTypeId()); |
| | | if(Objects.nonNull(category)){ |
| | |
| | | |
| | | spring: |
| | | profiles: |
| | | active: dev |
| | | active: test |
| | | # JSON返回配置 |
| | | jackson: |
| | | # 默认时区 |