新增通知

liweidong
liweidong-hj 3 weeks ago
parent 2fe88484f7
commit 009c87d932
  1. 4
      blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java
  2. 5
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/common/constant/BizTypeConstant.java
  3. 3
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/PartMapper.xml
  4. 79
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsTaskingServiceImpl.java
  5. 12
      blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/controller/StationController.java
  6. 7
      blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/IStationService.java
  7. 17
      blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/StationServiceImpl.java
  8. 14
      blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/TaskExecuteRecordServiceImpl.java

@ -31,8 +31,8 @@ public interface LauncherConstant {
/**
* nacos dev 地址
*/
String NACOS_DEV_ADDR = "192.168.249.27:8848";
// String NACOS_DEV_ADDR = "127.0.0.1:8848";
// String NACOS_DEV_ADDR = "192.168.249.27:8848";
String NACOS_DEV_ADDR = "127.0.0.1:8848";
/**R
* nacos prod 地址

@ -11,4 +11,9 @@ public interface BizTypeConstant {
* 镀层物料添加量申报
*/
String GOODS_APPLY = "镀层物料添加量申报";
/**
* 工艺任务转派
*/
String CRAFT_TASK_REDEPLOY = "工艺任务转派";
}

@ -167,6 +167,9 @@
<if test="dsPart.partCode != null and dsPart.partCode != ''">
AND p.PART_CODE LIKE '%' || #{dsPart.partCode} || '%'
</if>
<if test="dsPart.partName != null and dsPart.partName != ''">
AND p.PART_NAME LIKE '%' || #{dsPart.partName} || '%'
</if>
<if test="dsPart.sinTerType != null and dsPart.sinTerType != ''">
AND p.SIN_TER_TYPE = #{dsPart.sinTerType}
</if>

@ -35,6 +35,8 @@ import org.springblade.core.tool.utils.Func;
import org.springblade.core.tool.utils.SpringUtil;
import org.springblade.desk.basic.service.ICraftAbilityService;
import org.springblade.desk.basic.service.impl.WorkCenterServiceImpl;
import org.springblade.desk.common.constant.BizTypeConstant;
import org.springblade.desk.common.service.IMesNotifyMessageService;
import org.springblade.desk.dashboard.constant.*;
import org.springblade.desk.dashboard.pojo.dto.DsTaskingDTO;
import org.springblade.desk.dashboard.pojo.entity.*;
@ -160,6 +162,9 @@ public class DsTaskingServiceImpl extends BaseServiceImpl<DsTaskingMapper, DsTas
@Autowired
IReviewSheetService reviewSheetService;
@Autowired
IMesNotifyMessageService mesNotifyMessageService;
@Override
public IPage<DsTaskingVO> selectAssignList(IPage<DsTaskingVO> page, DsTaskingVO dsTasking) {
List<DsTaskingVO> dsTaskingVOS = baseMapper.selectDsTaskingPage(page, dsTasking);
@ -614,21 +619,83 @@ public class DsTaskingServiceImpl extends BaseServiceImpl<DsTaskingMapper, DsTas
return false;
}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean taskRedeploy(DsTaskingDTO tasking) {
// 1. 参数校验
if (tasking == null || tasking.getId() == null) {
throw new ServiceException("任务ID不能为空");
}
if (StringUtils.isEmpty(tasking.getCraftMan())) {
throw new ServiceException("转派目标工艺员不能为空");
}
// 2. 查询原任务信息
DsTaskingEntity dsTaskingEntity = taskingMapper.selectById(tasking.getId());
// if(!TaskingConstant.TASK_STATUS_ALREADY.equals(dsTaskingEntity.getTaskStatus())){
// throw new ServiceException("任务状态: 非待接收 禁止转派");
if (dsTaskingEntity == null) {
throw new ServiceException("任务不存在");
}
// 3. 校验任务状态
// if (!TaskingConstant.TASK_STATUS_ALREADY.equals(dsTaskingEntity.getTaskStatus())) {
// throw new ServiceException("任务状态为非待接收状态,禁止转派");
// }
//工艺分派人
// 4. 获取当前操作人(工艺分派人
String assignMan = AuthUtil.getUser().getUserName();
//工艺员
String craftMan = userClient.userInfo(Func.toLong(tasking.getCraftMan())).getData().getUser().getName();
// 5. 校验目标工艺员是否存在
UserInfo craftUserInfo = userClient.userInfo(Func.toLong(tasking.getCraftMan())).getData();
if (craftUserInfo == null || craftUserInfo.getUser() == null) {
throw new ServiceException("目标工艺员不存在");
}
String craftMan = craftUserInfo.getUser().getName();
Long craftManId = craftUserInfo.getUser().getId();
// 6. 记录转派前的信息(便于日志记录)
String oldCraftMan = dsTaskingEntity.getCraftMan();
// 7. 更新任务信息
dsTaskingEntity.setAssignMan(assignMan);
dsTaskingEntity.setCraftMan(craftMan);
dsTaskingEntity.setAssignTime(new Date());
taskingMapper.updateById(dsTaskingEntity);
int updateResult = taskingMapper.updateById(dsTaskingEntity);
if (updateResult != 1) {
throw new ServiceException("任务转派失败,请重试");
}
// 8. 发送转派消息通知
// 建议同时通知原工艺员和现工艺员
try {
// 通知新工艺员
mesNotifyMessageService.saveMsg(
BizTypeConstant.CRAFT_TASK_REDEPLOY,
"您有新的任务转派,请及时处理",
String.valueOf(tasking.getId()),
craftManId
);
// 可选:通知原工艺员任务已被转派
if (!StringUtils.isEmpty(oldCraftMan)) {
mesNotifyMessageService.saveMsg(
BizTypeConstant.CRAFT_TASK_REDEPLOY,
"您的任务已被转派",
String.valueOf(tasking.getId()),
Long.valueOf(oldCraftMan)
);
}
// 可选:记录操作日志
log.info("任务转派成功,任务ID:{},原工艺员:{},新工艺员:{},操作人:{}",
tasking.getId(), oldCraftMan, craftMan, assignMan);
} catch (Exception e) {
log.error("发送转派消息失败,任务ID:{}", tasking.getId(), e);
// 消息发送失败不影响主流程,但需要记录日志
}
return true;
}

@ -4,11 +4,13 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
import lombok.AllArgsConstructor;
import oracle.jdbc.proxy.annotation.Post;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springblade.desk.dashboard.pojo.entity.BsCraftAbilityEntity;
import org.springblade.desk.dashboard.pojo.vo.DsTaskingVO;
import org.springblade.desk.logistics.pojo.entity.Station;
import org.springblade.desk.logistics.pojo.vo.StationVO;
@ -61,6 +63,16 @@ public class StationController {
return R.data(pages);
}
/**
* 站点 修改
*/
@PostMapping("/update")
@ApiOperationSupport(order = 1)
@Operation(summary = "修改", description = "传入station")
public R update(@Valid @RequestBody Station station) {
return R.status(stationService.updateStation(station));
}
}

@ -66,4 +66,11 @@ public interface IStationService extends BaseService<Station> {
* @return
*/
IPage<StationVO> getStationList(IPage<StationVO> page, Station station);
/**
* 设置 空闲 占用
* @param station
* @return
*/
boolean updateStation(Station station);
}

@ -28,6 +28,7 @@ package org.springblade.desk.logistics.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.tool.api.R;
import org.springblade.desk.basic.pojo.entity.WorkCenter;
@ -101,4 +102,20 @@ public class StationServiceImpl extends BaseServiceImpl<StationMapper, Station>
return page.setRecords(stationList);
}
@Override
public boolean updateStation(Station station) {
Station stationVO = this.getById(station.getId());
if(null == stationVO){
throw new ServiceException("站点不存在");
}
boolean update = this.updateById(station);
if(!update){
throw new ServiceException("站点修改失败");
}
return true;
}
}

@ -424,6 +424,20 @@ public class TaskExecuteRecordServiceImpl extends BaseServiceImpl<TaskExecuteRec
log.info("任务{}不需要送到库位,直接完成", taskCode);
log.info("终点位置为站点信息:{},直接完成", taskExecuteRecord.getEndPos());
Station station1 = stationService.getByStationCode(taskExecuteRecord.getStartPos());
// 起点位置为站点 将站点状态改为空闲
if(null != station1){
station1.setStationStatus(Station.STATUS_FREE);
boolean update = stationService.updateById(station1);
if (update) {
log.info("站点释放成功:{}", station1.getStationCode());
return true;
} else {
log.error("站点释放失败:{}", station1.getStationCode());
return false;
}
}
// 直接更新任务状态为完成
task.setTaskStatus(Task.STATUS_FINISHED);
boolean taskUpdate = taskService.updateById(task);

Loading…
Cancel
Save