交接作业单任务下发

This commit is contained in:
zhou-hongcheng
2026-01-30 17:51:44 +08:00
parent 7644dc8fc5
commit caf926f503
9 changed files with 182 additions and 2 deletions
@@ -2,11 +2,13 @@ package com.mhd.wms.application.service.handoverTaskOrder;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.mhd.common.core.domain.po.UserPo;
import com.mhd.common.core.exception.ServiceException;
import com.mhd.common.core.utils.DateUtils;
import com.mhd.common.core.web.domain.AjaxResult;
import com.mhd.common.security.utils.SecurityUtils;
import com.mhd.system.api.SystemServiceFeign;
import com.mhd.system.api.UserServiceFeign;
import com.mhd.system.api.domain.PlatformFeignPO;
import com.mhd.system.api.domain.PlatformUseTimeFeignPO;
import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO;
@@ -15,6 +17,7 @@ import com.mhd.system.api.model.LoginUser;
import com.mhd.wms.domain.handoverTaskOrder.repository.po.HandoverTaskOrderPO;
import com.mhd.wms.domain.handoverTaskOrder.repository.todo.HandoverTaskOrderDO;
import com.mhd.wms.domain.handoverTaskOrder.service.HandoverTaskOrderDomainService;
import com.mhd.wms.domain.shiftManage.repository.todo.ShiftManageDO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -36,6 +39,9 @@ public class HandoverTaskOrderApplicationService {
@Autowired
private SystemServiceFeign systemServiceFeign;
@Autowired
private UserServiceFeign userServiceFeign;
/**
* 分页查询交接作业单列表
@@ -148,4 +154,23 @@ public class HandoverTaskOrderApplicationService {
}
}
public boolean taskDistribution(HandoverTaskOrderDO handoverTaskOrderDO) {
// 设置作业员信息
operatorsParam(handoverTaskOrderDO);
return handoverTaskOrderDomainService.taskDistribution(handoverTaskOrderDO);
}
/**
* @description 封装作业人员信息
* @param handoverTaskOrderDO
*/
private void operatorsParam(HandoverTaskOrderDO handoverTaskOrderDO){
AjaxResult ajaxResult = userServiceFeign.getInfo(handoverTaskOrderDO.getOperatorsBy());
if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
throw new ServiceException("获取作业人员信息失败");
}
UserPo userPo = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), UserPo.class);
handoverTaskOrderDO.setOperatorsName(userPo.getUserName());
}
}
@@ -56,8 +56,8 @@ public class DeliveTaskDO extends BaseVOEntity {
@Excel(name = "仓库名称")
private String warehouseName;
@ApiModelProperty("任务类型 0-无 1-收货 2-上架 3-拣货 4-复核 5-移位 6-盘点")
@Excel(name = "任务类型 0-无 1-收货 2-上架 3-拣货 4-复核 5-移位 6-盘点")
@ApiModelProperty("任务类型 0-无 1-收货 2-上架 3-拣货 4-复核 5-移位 6-盘点 7-交接作业单")
@Excel(name = "任务类型 0-无 1-收货 2-上架 3-拣货 4-复核 5-移位 6-盘点 7-交接作业单")
private Integer taskType;
@ApiModelProperty("任务状态 0-未接收 1-已接收 2-已拒绝 3-已完成 4-已关闭")
@@ -125,5 +125,13 @@ public class HandoverTaskOrder extends BaseVOEntity {
@Excel(name = "备注")
private String remark;
@ApiModelProperty("任务是否下发: 1-是 2-否")
@Excel(name = "任务是否下发: 1-是 2-否")
private Integer taskDistribution;
@ApiModelProperty("任务下发时间")
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "任务下发时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date taskDistributionTime;
}
@@ -40,4 +40,6 @@ public interface IHandoverTaskOrderService extends IService<HandoverTaskOrder>
* 查询交接作业单
*/
public HandoverTaskOrderPO getInfo(Long outTaskOrderId);
boolean taskDistribution(HandoverTaskOrderDO handoverTaskOrderDO);
}
@@ -1,16 +1,22 @@
package com.mhd.wms.domain.handoverTaskOrder.repository.persistence;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mhd.common.security.utils.SecurityUtils;
import com.mhd.system.api.model.LoginUser;
import com.mhd.wms.domain.handoverTaskOrder.entity.HandoverTaskOrder;
import com.mhd.wms.domain.handoverTaskOrder.repository.facade.IHandoverTaskOrderService;
import com.mhd.wms.domain.handoverTaskOrder.repository.mapper.HandoverTaskOrderMapper;
import com.mhd.wms.domain.handoverTaskOrder.repository.po.HandoverTaskOrderPO;
import com.mhd.wms.domain.handoverTaskOrder.repository.todo.HandoverTaskOrderDO;
import com.mhd.wms.domain.shiftManage.entity.ShiftManage;
import com.mhd.wms.domain.shiftManage.repository.todo.ShiftManageDO;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
@@ -78,4 +84,19 @@ public class HandoverTaskOrderImpl extends ServiceImpl<HandoverTaskOrderMapper,
BeanUtils.copyProperties(handoverTaskOrder,handoverTaskOrderPO);
return handoverTaskOrderPO;
}
@Override
public boolean taskDistribution(HandoverTaskOrderDO handoverTaskOrderDO) {
LoginUser loginUser = SecurityUtils.getLoginUser();
HandoverTaskOrder handoverTaskOrder = new HandoverTaskOrder();
handoverTaskOrder.setTaskDistribution(1);
handoverTaskOrder.setTaskDistributionTime(new Date());
handoverTaskOrder.setUpdateBy(loginUser.getUserid());
handoverTaskOrder.setUpdateByName(loginUser.getUsername());
handoverTaskOrder.setUpdateTime(new Date());
int i = handoverTaskOrderMapper.update(handoverTaskOrder, new QueryWrapper<HandoverTaskOrder>().lambda()
.in(HandoverTaskOrder::getHandoverTaskOrderId, handoverTaskOrderDO.getHandoverTaskOrderIds()));
return i > 0;
}
}
@@ -131,4 +131,12 @@ public class HandoverTaskOrderDO extends BaseVOEntity {
@ApiModelProperty("交接作业单id")
private List<Long> handoverTaskOrderIds;
@ApiModelProperty("作业人用户ID")
@Excel(name = "作业人用户ID")
private Long operatorsBy;
@ApiModelProperty("作业人姓名")
@Excel(name = "作业人姓名")
private String operatorsName;
}
@@ -1,10 +1,15 @@
package com.mhd.wms.domain.handoverTaskOrder.service;
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.mhd.common.core.exception.ServiceException;
import com.mhd.common.core.utils.OrderSequence;
import com.mhd.common.core.utils.bean.BeanUtils;
import com.mhd.common.security.utils.SecurityUtils;
import com.mhd.system.api.model.LoginUser;
import com.mhd.wms.domain.deliveTask.repository.facade.IDeliveTaskService;
import com.mhd.wms.domain.deliveTask.repository.todo.DeliveTaskDO;
import com.mhd.wms.domain.handoverTaskOrder.entity.HandoverTaskOrder;
import com.mhd.wms.domain.handoverTaskOrder.repository.facade.IHandoverTaskOrderService;
import com.mhd.wms.domain.handoverTaskOrder.repository.po.HandoverTaskOrderPO;
@@ -15,14 +20,19 @@ import com.mhd.wms.domain.materialInventory.entity.MaterialInventory;
import com.mhd.wms.domain.materialInventory.repository.mapper.MaterialInventoryMapper;
import com.mhd.wms.domain.outMaterialDetail.entity.OutMaterialDetail;
import com.mhd.wms.domain.outMaterialDetail.repository.mapper.OutMaterialDetailMapper;
import com.mhd.wms.domain.shiftManage.repository.po.ShiftManagePO;
import com.mhd.wms.domain.shiftManage.repository.todo.ShiftManageDO;
import com.mhd.wms.domain.stockOutOrder.entity.StockOutOrder;
import com.mhd.wms.domain.stockOutOrder.repository.mapper.StockOutOrderMapper;
import com.mhd.wms.domain.stockOutOrder.repository.po.StockOutOrderPO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -46,6 +56,8 @@ public class HandoverTaskOrderDomainService {
private InventoryAdjustmentRecordMapper inventoryAdjustmentRecordMapper;
@Autowired
private StockOutOrderMapper stockOutOrderMapper;
@Autowired
private IDeliveTaskService deliveTaskService;
/**
@@ -225,4 +237,88 @@ public class HandoverTaskOrderDomainService {
}
}
}
/**
* @description 任务下发
*/
@Transactional(rollbackFor = Exception.class)
public boolean taskDistribution(HandoverTaskOrderDO handoverTaskOrderDO) {
List<HandoverTaskOrder> handoverTaskOrders = handoverTaskOrderService.list(new LambdaQueryWrapper<HandoverTaskOrder>()
.in(HandoverTaskOrder::getHandoverTaskOrderId, handoverTaskOrderDO.getHandoverTaskOrderIds())
.eq(HandoverTaskOrder::getTaskDistribution, 2)
);
if (CollectionUtils.isEmpty(handoverTaskOrders)) {
throw new ServiceException("作业单不存在或已下发,请重新选择");
}
//移位生成下发任务
genDeliveTask(handoverTaskOrders, handoverTaskOrderDO);
return handoverTaskOrderService.taskDistribution(handoverTaskOrderDO);
}
private void genDeliveTask(List<HandoverTaskOrder> handoverTaskOrders, HandoverTaskOrderDO handoverTaskOrderDO) {
LoginUser loginUser = SecurityUtils.getLoginUser();
List<DeliveTaskDO> deliveTaskDOList = new ArrayList<>();
for (HandoverTaskOrder handoverTaskOrder : handoverTaskOrders) {
DeliveTaskDO deliveTaskDO = new DeliveTaskDO();
deliveTaskDO.setOrganizationId(loginUser.getUserPo().getOrganizationId());
deliveTaskDO.setOrganizationName(loginUser.getUserPo().getOrganizationName());
deliveTaskDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
deliveTaskDO.setTaskNumber(OrderSequence.getOrderCode("RW"));
deliveTaskDO.setTrackingNumber(handoverTaskOrder.getTaskNumber());
deliveTaskDO.setWarehouseId(handoverTaskOrder.getWarehouseId());
deliveTaskDO.setWarehouseCode(handoverTaskOrder.getWarehouseCode());
deliveTaskDO.setWarehouseName(handoverTaskOrder.getWarehouseName());
deliveTaskDO.setTaskType(7);
deliveTaskDO.setTaskDistribution(1);
deliveTaskDO.setTaskDistributionId(loginUser.getUserid());
deliveTaskDO.setTaskDistributionName(loginUser.getUsername());
deliveTaskDO.setTaskDistributionTime(new Date());
deliveTaskDO.setOperatorsBy(handoverTaskOrderDO.getOperatorsBy());
deliveTaskDO.setOperatorsName(handoverTaskOrderDO.getOperatorsName());
deliveTaskDO.setCreateBy(loginUser.getUserid());
deliveTaskDO.setCreateByName(loginUser.getUsername());
deliveTaskDO.setCreateTime(new Date());
deliveTaskDOList.add(deliveTaskDO);
}
}
/**
* @description 移位生成任务下发
* @author ZhouGY
* @date 2024/7/27 15:23
* @param shiftManagePOList
* @param shiftManageDO
*/
@Transactional(rollbackFor = Exception.class)
public void genDeliveTask(List<ShiftManagePO> shiftManagePOList, ShiftManageDO shiftManageDO){
LoginUser loginUser = SecurityUtils.getLoginUser();
List<DeliveTaskDO> deliveTaskDOList = new ArrayList<>();
for (ShiftManagePO shiftManagePO : shiftManagePOList){
DeliveTaskDO deliveTaskDO = new DeliveTaskDO();
deliveTaskDO.setOrganizationId(loginUser.getUserPo().getOrganizationId());
deliveTaskDO.setOrganizationName(loginUser.getUserPo().getOrganizationName());
deliveTaskDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
deliveTaskDO.setTaskNumber(OrderSequence.getOrderCode("RW"));
deliveTaskDO.setTrackingNumber(shiftManagePO.getShiftNumber());
deliveTaskDO.setWarehouseId(shiftManagePO.getWarehouseId());
deliveTaskDO.setWarehouseCode(shiftManagePO.getWarehouseCode());
deliveTaskDO.setWarehouseName(shiftManagePO.getWarehouseName());
deliveTaskDO.setTaskType(5);
deliveTaskDO.setTaskDistribution(1);
deliveTaskDO.setTaskDistributionId(loginUser.getUserid());
deliveTaskDO.setTaskDistributionName(loginUser.getUsername());
deliveTaskDO.setTaskDistributionTime(new Date());
deliveTaskDO.setOperatorsBy(shiftManageDO.getOperatorsBy());
deliveTaskDO.setOperatorsName(shiftManageDO.getOperatorsName());
deliveTaskDO.setCreateBy(loginUser.getUserid());
deliveTaskDO.setCreateByName(loginUser.getUsername());
deliveTaskDO.setCreateTime(new Date());
deliveTaskDOList.add(deliveTaskDO);
}
deliveTaskService.batchInsert(deliveTaskDOList);
}
}
@@ -131,4 +131,12 @@ public class HandoverTaskOrderDTO extends BaseVOEntity {
@ApiModelProperty("交接作业单id")
private List<Long> handoverTaskOrderIds;
@ApiModelProperty("作业人用户ID")
@Excel(name = "作业人用户ID")
private Long operatorsBy;
@ApiModelProperty("作业人姓名")
@Excel(name = "作业人姓名")
private String operatorsName;
}
@@ -6,8 +6,10 @@ import com.mhd.common.core.web.page.TableDataInfo;
import com.mhd.wms.application.service.handoverTaskOrder.HandoverTaskOrderApplicationService;
import com.mhd.wms.domain.handoverTaskOrder.repository.po.HandoverTaskOrderPO;
import com.mhd.wms.domain.handoverTaskOrder.repository.todo.HandoverTaskOrderDO;
import com.mhd.wms.domain.shiftManage.repository.todo.ShiftManageDO;
import com.mhd.wms.interfaces.assember.handoverTaskOrder.HandoverTaskOrderAssembler;
import com.mhd.wms.interfaces.dto.handoverTaskOrder.HandoverTaskOrderDTO;
import com.mhd.wms.interfaces.dto.shiftManage.ShiftManageDTO;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -70,6 +72,16 @@ public class HandoverTaskOrderApi extends BaseController {
return toAjax(handoverTaskOrderApplicationService.delete(outTaskOrderIds));
}
/**
* 任务下发
*/
@ApiOperation("任务下发")
@PostMapping(value = "/taskDistribution")
public AjaxResult taskDistribution(@RequestBody HandoverTaskOrderDTO handoverTaskOrderDTO) {
HandoverTaskOrderDO handoverTaskOrderDO = handoverTaskOrderAssembler.toDO(handoverTaskOrderDTO);
return AjaxResult.success(handoverTaskOrderApplicationService.taskDistribution(handoverTaskOrderDO));
}
/**
* 获取交接作业单详细信息
*/