推送按钮逻辑

This commit is contained in:
z 2025-06-10 21:13:28 +08:00
parent 88ce02275f
commit d331c4675b
13 changed files with 201 additions and 13 deletions

View File

@ -2,6 +2,7 @@ package com.chanko.yunxi.mes.module.heli.controller.admin.bdgzsomthing;
import com.chanko.yunxi.mes.module.heli.controller.admin.attentiontodo.vo.AttentiontodoPageReqVO;
import com.chanko.yunxi.mes.module.heli.controller.admin.attentiontodo.vo.AttentiontodoRespVO;
import com.chanko.yunxi.mes.module.heli.controller.admin.fpuser.vo.FpUserRespVO;
import com.chanko.yunxi.mes.module.heli.controller.admin.storagelog.vo.StorageLogPageReqVO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.attentiontodo.AttentiontodoDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.processbom.ProcessBomDO;
@ -168,5 +169,26 @@ public class bdgzsomthingController {
@Scheduled(cron = "0 0 0 * * ?")
public void selectSafeStorageAndDeliverOneYear(){bdgzsomthingService.selectSafeStorageAndDeliverOneYear();}
@PostMapping("/getMessage")
@Operation(summary = "小程序消息")
@PreAuthorize("@ss.hasPermission('heli:bdgzsomthing:query')")
public CommonResult<PageResult<bdgzsomthingDO>> getMessage(@Valid bdgzsomthingPageReqVO pageReqVO) {
PageResult<bdgzsomthingDO>pageResult = bdgzsomthingService.getMessage(pageReqVO);
return success(BeanUtils.toBean(pageResult, bdgzsomthingDO.class));
}
@GetMapping("/read")
@Operation(summary = "已读")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('heli:bdgzsomthing:query')")
public CommonResult<Boolean> read(@RequestParam("id") Long id) {
bdgzsomthingService.read(id);
return success(true);
}
@GetMapping("/unreadMessage")
@Operation(summary = "未读")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('heli:bdgzsomthing:query')")
public CommonResult<Long> unreadMessage() {
return success(bdgzsomthingService.unreadMessage());
}
}

View File

@ -1,5 +1,6 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.bdgzsomthing.vo;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
@ -67,13 +68,13 @@ public class bdgzsomthingPageReqVO extends PageParam {
private LocalDateTime[] nowtime;
@Schema(description = "备注6")
private LocalDateTime attr6;
private String attr6;
@Schema(description = "备注7")
private LocalDateTime attr7;
private String attr7;
@Schema(description = "备注8")
private LocalDateTime attr8;
private String attr8;
@Schema(description = "备注9")
private String attr9;
@ -95,5 +96,6 @@ public class bdgzsomthingPageReqVO extends PageParam {
@Schema(description = "备注15")
private String attr15;
private String status;
}

View File

@ -137,5 +137,10 @@ public class ProcessDesignController {
public CommonResult<WarningMessageVO> getWarnings() {
return success(processDesignService.getWarnings());
}
@PostMapping("/send")
@Operation(summary = "推送")
@PreAuthorize("@ss.hasPermission('heli:process-design:create')")
public void send(@Valid @RequestBody ProcessDesignSaveReqVO createReqVO) {
processDesignService.send(createReqVO);
}
}

View File

@ -96,15 +96,15 @@ public class bdgzsomthingDO extends BaseDO {
/**
* 备注6
*/
private LocalDateTime attr6;
private String attr6;
/**
* 备注7
*/
private LocalDateTime attr7;
private String attr7;
/**
* 备注8
*/
private LocalDateTime attr8;
private String attr8;
/**
* 备注9
*/

View File

@ -1,14 +1,18 @@
package com.chanko.yunxi.mes.module.heli.dal.mysql.bdgzsomthing;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX;
import com.chanko.yunxi.mes.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.chanko.yunxi.mes.module.heli.controller.admin.bdgzsomthing.vo.bdgzsomthingPageReqVO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.bdgzsomthing.bdgzsomthingDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.plantask.PlanTaskDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagelogNow.StorageLogNowDO;
import com.github.yulichang.query.MPJLambdaQueryWrapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.util.StringUtils;
import java.util.List;
@ -121,4 +125,24 @@ public interface bdgzsomthingMapper extends BaseMapperX<bdgzsomthingDO> {
void deleteOrder(bdgzsomthingDO BdgzsomthingDO);
List<bdgzsomthingDO> selectSafeStorage(@Param("attr3List") List<String> attr3List);
default PageResult<bdgzsomthingDO> getMessage(bdgzsomthingPageReqVO pageReqVO){
LambdaQueryWrapper<bdgzsomthingDO> query = new LambdaQueryWrapper<>();
query.eq(!StringUtils.isEmpty(pageReqVO.getStatus()),bdgzsomthingDO::getDeleted, pageReqVO.getStatus());
query.eq(bdgzsomthingDO::getClick, pageReqVO.getClick());
query.isNotNull(bdgzsomthingDO::getAttr6);
Page<bdgzsomthingDO> page = new Page<>(pageReqVO.getPageNo(), pageReqVO.getPageSize());
Page<bdgzsomthingDO> result = this.selectPage(page, query);
return new PageResult<>(result.getRecords(), result.getTotal());
}
default Long unreadMessage(String name){
LambdaQueryWrapper<bdgzsomthingDO> query = new LambdaQueryWrapper<>();
query.eq(bdgzsomthingDO::getClick, name);
query.isNotNull(bdgzsomthingDO::getAttr6);
query.eq(bdgzsomthingDO::getDeleted,0);
return this.selectCount(query);
}
}

View File

@ -65,4 +65,10 @@ public interface bdgzsomthingService {
public void selectSafeStorageAndDeliverOneYear();
public List<bdgzsomthingDO> selectSafeStorage(List<String> attr3List);
public int updateById(bdgzsomthingDO entity);
PageResult<bdgzsomthingDO> getMessage(bdgzsomthingPageReqVO pageReqVO);
void read(Long id);
Long unreadMessage();
}

View File

@ -7,7 +7,9 @@ import cn.hutool.system.SystemUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.chanko.yunxi.mes.framework.security.core.util.SecurityFrameworkUtils;
import com.chanko.yunxi.mes.framework.web.core.util.WebFrameworkUtils;
import com.chanko.yunxi.mes.module.heli.controller.admin.taskdispatch.vo.TaskDispatchPageReqVO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.attentiontodo.AttentiontodoDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.deliverorder.DeliverOrderDO;
@ -929,6 +931,30 @@ public class bdgzsomthingServiceImpl implements bdgzsomthingService {
return bdgzsomthingMapper.updateById(entity);
}
@Override
public PageResult<bdgzsomthingDO> getMessage(bdgzsomthingPageReqVO pageReqVO) {
Long userId = WebFrameworkUtils.getLoginUserId();
AdminUserDO user = adminUserService.getUser(userId);
pageReqVO.setClick(user.getNickname());
return bdgzsomthingMapper.getMessage(pageReqVO);
}
@Override
public void read(Long id) {
// 校验存在
LambdaUpdateWrapper<bdgzsomthingDO> wrapper = new LambdaUpdateWrapper<>();
wrapper.eq(bdgzsomthingDO::getId,id);
wrapper.set(bdgzsomthingDO::getDeleted,"1");
bdgzsomthingMapper.update(wrapper);
}
@Override
public Long unreadMessage() {
Long userId = WebFrameworkUtils.getLoginUserId();
AdminUserDO user = adminUserService.getUser(userId);
return bdgzsomthingMapper.unreadMessage(user.getNickname());
}
public List<bdgzsomthingDO> selectSafeStorage(List<String> attr3List){
return bdgzsomthingMapper.selectSafeStorage(attr3List);
}

View File

@ -81,4 +81,6 @@ public interface ProcessDesignService {
* @return
*/
WarningMessageVO getWarnings();
void send(ProcessDesignSaveReqVO createReqVO);
}

View File

@ -2,6 +2,7 @@ package com.chanko.yunxi.mes.module.heli.service.processdesign;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.generator.IFill;
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils;
@ -13,10 +14,12 @@ import com.chanko.yunxi.mes.module.heli.controller.admin.processdesign.vo.Proces
import com.chanko.yunxi.mes.module.heli.controller.admin.processdesign.vo.ProcessDesignSaveReqSubVO;
import com.chanko.yunxi.mes.module.heli.controller.admin.processdesign.vo.ProcessDesignSaveReqVO;
import com.chanko.yunxi.mes.module.heli.controller.admin.zjbgmasterline.vo.ZjBgMasterLinePageReqVO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.attentiontodo.AttentiontodoDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.bdgzsomthing.bdgzsomthingDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.processdesign.ProcessDesignDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.processdesignprogress.ProcessDesignProgressDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.zjbgmasterline.ZjBgMasterLineDO;
import com.chanko.yunxi.mes.module.heli.dal.mysql.attentiontodo.AttentiontodoMapper;
import com.chanko.yunxi.mes.module.heli.dal.mysql.bdgzsomthing.bdgzsomthingMapper;
import com.chanko.yunxi.mes.module.heli.dal.mysql.processdesign.ProcessDesignMapper;
import com.chanko.yunxi.mes.module.heli.dal.mysql.processdesign.ProcessDesignProgressMapper;
@ -34,6 +37,7 @@ import java.time.Duration;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Date;
import java.util.List;
import static com.chanko.yunxi.mes.framework.common.exception.util.ServiceExceptionUtil.exception;
@ -53,6 +57,8 @@ public class ProcessDesignServiceImpl implements ProcessDesignService {
private ProcessDesignProgressMapper processDesignProgressMapper;
@Resource
private bdgzsomthingMapper bdgzsomthingMapper;
@Resource
private AttentiontodoMapper attentiontodoMapper;
@Override
public PageResult<ProcessDesignProgressDO> getProcessPage(ProcessDesignProgressPageReqVO pageReqVO) {
return processDesignProgressMapper.selectPage(pageReqVO);
@ -357,6 +363,41 @@ public class ProcessDesignServiceImpl implements ProcessDesignService {
return warningMessageVO;
}
@Override
public void send(ProcessDesignSaveReqVO createReqVO) {
ProcessDesignDO processDesignDO = processDesignMapper.selectById(createReqVO.getId());
LambdaQueryWrapper<ProcessDesignProgressDO> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ProcessDesignProgressDO::getProcessDesignId, processDesignDO.getId());
wrapper.eq(ProcessDesignProgressDO::getDeleted,0);
wrapper.orderByDesc(ProcessDesignProgressDO::getCreateTime);
wrapper.last("limit 1");
ProcessDesignProgressDO processDesignProgressDO = processDesignProgressMapper.selectOne(wrapper);
List<AttentiontodoDO> attentiontodookddfh = attentiontodoMapper.selectByIdlist(16);//查找该类型的待办和关注人
String thingname = "";
if ("BLUEPRINT_FOUNDRY_TECHNOLOGY".equals(processDesignDO.getProcessDesignType())){
thingname="铸造设计任务提醒";
}else if ("BLUEPRINT_3D".equals(processDesignDO.getProcessDesignType())){
thingname="3D设计任务提醒";
}else if ("BLUEPRINT_2D".equals(processDesignDO.getProcessDesignType())){
thingname="2D设计任务提醒";
}else if ("BLUEPRINT_WORKBLANK".equals(processDesignDO.getProcessDesignType())){
thingname="毛坯设计任务提醒";
}
// String things = processDesignDO.getCustomerName()+processDesignDO.getProjectName()+processDesignDO.getProjectSubName()+processDesignProgressDO.getRemark();
for (AttentiontodoDO attentiontodoDO : attentiontodookddfh) {
bdgzsomthingDO BdgzsomthingDO = new bdgzsomthingDO();
BdgzsomthingDO.setClick(attentiontodoDO.getAttr4());
BdgzsomthingDO.setThingname(thingname);
// BdgzsomthingDO.setThings(things);
BdgzsomthingDO.setAttr4("1");
BdgzsomthingDO.setAttr6(processDesignDO.getCustomerName());
BdgzsomthingDO.setAttr7(processDesignDO.getProjectName());
BdgzsomthingDO.setAttr8(processDesignDO.getProjectSubName());
BdgzsomthingDO.setAttr9(processDesignProgressDO.getRemark());
bdgzsomthingMapper.insert(BdgzsomthingDO);
}
}
private void createProcessDesignProgressList(Long processDesignId, List<ProcessDesignProgressDO> list) {
list.forEach(o -> o.setProcessDesignId(processDesignId));
// 按创建时间排序

View File

@ -17,9 +17,9 @@ export interface bdgzsomthingVO {
attr5: string
clicktime: string
nowtime: Date
attr6: Date
attr7: Date
attr8: Date
attr6: string
attr7: string
attr8: string
attr9: string
attr10: Date
attr11: string
@ -27,6 +27,7 @@ export interface bdgzsomthingVO {
attr13: string
attr14: string
attr15: string
status:string
}
// 查询待办关注分页
@ -77,3 +78,13 @@ export const updatebdgzsomthingbyidoneandok = async (id: number) => {
export const exportbdgzsomthing = async (params) => {
return await request.download({ url: `/heli/bdgzsomthing/export-excel`, params })
}
// 新增待办关注
export const getMessage =async (params) => {
return await request.post({ url: `/heli/bdgzsomthing/getMessage`, params })
}
export const read = async (id: number) => {
return await request.get({ url: `/heli/bdgzsomthing/read?id=` + id })
}
export const unreadMessage = async () => {
return await request.get({ url: `/heli/bdgzsomthing/unreadMessage` })
}

View File

@ -54,3 +54,7 @@ export const getProcessDesignProgressListByProcessDesignId = async (processDesig
export const getProcessDesignDeferredWarning = async () => {
return await request.get({ url: `/heli/process-design/warnings`})
}
// 推送消息
export const send = async (data: ProcessDesignVO) => {
return await request.post({ url: `/heli/process-design/send`, data })
}

View File

@ -208,7 +208,7 @@ v-for="dict in getIntDictOptions(DICT_TYPE.HELI_PROJECT_PLAN_STATUS)" :key="dict
:rows="2"
:disabled="!(formData.isOverProcess == null || formData.isOverProcess == 0)"
type="textarea"
/>
</el-form-item>
</el-col>
@ -345,6 +345,8 @@ import {useCommonStore} from "@/store/modules/common";
import {verify} from "node:crypto";
import { delay, fromPairs, now } from 'lodash-es';
import { FolderOpened } from '@element-plus/icons-vue/dist/types';
import * as bdgzsomthingApi from "@/api/heli/bdgzsomthing";
import {getMessage} from "@/api/heli/bdgzsomthing";
defineOptions({ name: 'ProcessDesignDetail' })
@ -379,6 +381,38 @@ const formRef = ref() // 表单 Ref
const processDesignProgressFormRef = ref()
const overbuttonName = ref('')
/** 重置表单 */
const queryParamsallin = reactive({
pageNo: 1,
pageSize: 20,
createTime: [],
click: undefined,
clickid: undefined,
thingname: undefined,
things: undefined,
level: undefined,
showname: undefined,
showname: [],
dborgz: undefined,
yesorno: undefined,
attr1: undefined,
attr2: undefined,
attr3: undefined,
attr4: undefined,
attr5: undefined,
clicktime: [],
nowtime: [],
attr6: undefined,
attr7: undefined,
attr8: undefined,
attr9: undefined,
attr10: undefined,
attr11: undefined,
attr12: undefined,
attr13: undefined,
attr14: undefined,
attr15: undefined,
status:"0"
})
const resetForm = () => {
formData.value = {
id: undefined,
@ -529,7 +563,7 @@ const openDelay = async() =>{
if(formData.value.blankDate != null ){
var dateT = new Date(formData.value.blankDate)
dateT.setHours(23,59,59,999)
if( dateT.getTime() > date.getTime()){
message.error("当前日期为正常生产周期,未达到延期条件,请确认!")
return
@ -677,6 +711,9 @@ const sendItem = async() =>{
//
await submitForm('SAVE');
//
const data = formData.value as unknown as ProcessDesignApi.ProcessDesignVO
await ProcessDesignApi.send(data)
}else{
message.error("至少添加一条数据后才能推送!请确认!")
}

View File

@ -1207,7 +1207,15 @@ onMounted(async () => {
dialogTitle.value = query.type === 'review' ? '查看' : t('action.' + query.type)
//-
whList.value = await WarehouseApi.getWarehouseSimpList()
if (whList.value.length==1){
formData.value.whId = whList.value[0].id;
const dataRgList = await RgApi.getSimpList()
rgList.value = dataRgList.filter((rg) => rg.wh_id == formData.value.whId)
//
const dataPnList = await PnApi.getSimpList()
pnList.value = dataPnList.filter((pn) => pn.wh_id == formData.value.whId)
}
// formData.value.whId = Math.min.apply(Math, whList.value.map(function(i) {return i.id}));
// handleWh(formData.value.whId)
//