交接作业单任务下发

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
@@ -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);
}
}