diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/handoverTaskOrder/HandoverTaskOrderApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/handoverTaskOrder/HandoverTaskOrderApplicationService.java index e8e544bc7..c58528c1a 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/handoverTaskOrder/HandoverTaskOrderApplicationService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/handoverTaskOrder/HandoverTaskOrderApplicationService.java @@ -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()); + } } diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/repository/todo/DeliveTaskDO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/repository/todo/DeliveTaskDO.java index c880530f8..8da01aba6 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/repository/todo/DeliveTaskDO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/repository/todo/DeliveTaskDO.java @@ -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-已关闭") diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/entity/HandoverTaskOrder.java b/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/entity/HandoverTaskOrder.java index a16cbc689..383e61b5e 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/entity/HandoverTaskOrder.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/entity/HandoverTaskOrder.java @@ -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; } diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/facade/IHandoverTaskOrderService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/facade/IHandoverTaskOrderService.java index 4c6826611..74eb0284a 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/facade/IHandoverTaskOrderService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/facade/IHandoverTaskOrderService.java @@ -40,4 +40,6 @@ public interface IHandoverTaskOrderService extends IService * 查询交接作业单 */ public HandoverTaskOrderPO getInfo(Long outTaskOrderId); + + boolean taskDistribution(HandoverTaskOrderDO handoverTaskOrderDO); } diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/persistence/HandoverTaskOrderImpl.java b/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/persistence/HandoverTaskOrderImpl.java index de919fd5e..d89cf45fc 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/persistence/HandoverTaskOrderImpl.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/persistence/HandoverTaskOrderImpl.java @@ -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().lambda() + .in(HandoverTaskOrder::getHandoverTaskOrderId, handoverTaskOrderDO.getHandoverTaskOrderIds())); + return i > 0; + } + } diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/todo/HandoverTaskOrderDO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/todo/HandoverTaskOrderDO.java index 3d89bd667..8891a3fb5 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/todo/HandoverTaskOrderDO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/todo/HandoverTaskOrderDO.java @@ -131,4 +131,12 @@ public class HandoverTaskOrderDO extends BaseVOEntity { @ApiModelProperty("交接作业单id") private List handoverTaskOrderIds; + + @ApiModelProperty("作业人用户ID") + @Excel(name = "作业人用户ID") + private Long operatorsBy; + + @ApiModelProperty("作业人姓名") + @Excel(name = "作业人姓名") + private String operatorsName; } diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/service/HandoverTaskOrderDomainService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/service/HandoverTaskOrderDomainService.java index 6a708d5a4..e8b3112e6 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/service/HandoverTaskOrderDomainService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/service/HandoverTaskOrderDomainService.java @@ -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 handoverTaskOrders = handoverTaskOrderService.list(new LambdaQueryWrapper() + .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 handoverTaskOrders, HandoverTaskOrderDO handoverTaskOrderDO) { + LoginUser loginUser = SecurityUtils.getLoginUser(); + List 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 shiftManagePOList, ShiftManageDO shiftManageDO){ + LoginUser loginUser = SecurityUtils.getLoginUser(); + List 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); + } + + + } \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/handoverTaskOrder/HandoverTaskOrderDTO.java b/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/handoverTaskOrder/HandoverTaskOrderDTO.java index 0306317da..69e0fa29a 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/handoverTaskOrder/HandoverTaskOrderDTO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/handoverTaskOrder/HandoverTaskOrderDTO.java @@ -131,4 +131,12 @@ public class HandoverTaskOrderDTO extends BaseVOEntity { @ApiModelProperty("交接作业单id") private List handoverTaskOrderIds; + + @ApiModelProperty("作业人用户ID") + @Excel(name = "作业人用户ID") + private Long operatorsBy; + + @ApiModelProperty("作业人姓名") + @Excel(name = "作业人姓名") + private String operatorsName; } diff --git a/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/handoverTaskOrder/HandoverTaskOrderApi.java b/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/handoverTaskOrder/HandoverTaskOrderApi.java index b6cbe83c1..0687feb3d 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/handoverTaskOrder/HandoverTaskOrderApi.java +++ b/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/handoverTaskOrder/HandoverTaskOrderApi.java @@ -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)); + } + /** * 获取交接作业单详细信息 */