PC复核下发修改

This commit is contained in:
秦鸿展
2026-03-12 10:08:21 +08:00
parent 2c2a837ea8
commit 4433f83ea1
3 changed files with 34 additions and 7 deletions
@@ -698,23 +698,37 @@ public class StockOutOrderDomainService {
@Transactional(rollbackFor = Exception.class)
public Boolean checkTaskDistribution(StockOutOrderDO stockOutOrderDO) {
LoginUser loginUser = SecurityUtils.getLoginUser();
List<Long> outOrderIds = stockOutOrderDO.getOutOrderIds();
if (outOrderIds == null || outOrderIds.size() == 0) {
throw new ServiceException("未选择出库单,或出库单不存在");
}
StockOutOrderDO stockOutOrderDOQuery = new StockOutOrderDO();
stockOutOrderDOQuery.setOutOrderIds(stockOutOrderDO.getOutOrderIds());
stockOutOrderDOQuery.setOutOrderIds(outOrderIds);
stockOutOrderDOQuery.setCheckTaskDistribution(2);
List<StockOutOrderPO> stockOutOrderPOList = stockOutOrderService.queryList(stockOutOrderDOQuery);
if (CollectionUtils.isEmpty(stockOutOrderPOList)) {
throw new ServiceException("复合单已下发,请重新选择");
throw new ServiceException("出库单不存在或已下发,请重新选择");
}
//复核下发任务
//复核下发任务(插入 delive_taskPDA 从此表查任务)
genDeliveTask(stockOutOrderPOList, stockOutOrderDO);
//标记收货单任务已下发
//标记出库单任务已下发,并同步复核人信息到 stock_out_order(与 genDeliveTask 中逻辑一致)
Long checkOperatorsBy = stockOutOrderDO.getCheckOperatorsBy();
String checkOperatorsName = stockOutOrderDO.getCheckOperatorsName();
if (checkOperatorsBy == null || checkOperatorsBy == 0) {
checkOperatorsBy = loginUser.getUserid();
checkOperatorsName = (loginUser.getUserPo() != null && loginUser.getUserPo().getUserName() != null && !loginUser.getUserPo().getUserName().trim().isEmpty())
? loginUser.getUserPo().getUserName()
: (loginUser.getRealname() != null && !loginUser.getRealname().trim().isEmpty()) ? loginUser.getRealname() : loginUser.getUsername();
}
return stockOutOrderService.update(null, new UpdateWrapper<StockOutOrder>().lambda()
.set(StockOutOrder::getCheckTaskDistribution, 1)
.set(StockOutOrder::getCheckTaskDistributionTime, new Date())
.set(StockOutOrder::getCheckOperatorsBy, checkOperatorsBy)
.set(StockOutOrder::getCheckOperatorsName, checkOperatorsName)
.set(StockOutOrder::getUpdateBy, loginUser.getUserid())
.set(StockOutOrder::getUpdateByName, loginUser.getUsername())
.set(StockOutOrder::getUpdateTime, new Date())
.in(StockOutOrder::getOutOrderId, stockOutOrderDO.getOutOrderIds()));
.in(StockOutOrder::getOutOrderId, outOrderIds));
}
/**
@@ -1436,8 +1450,15 @@ public class StockOutOrderDomainService {
deliveTaskDO.setTaskDistributionId(loginUser.getUserid());
deliveTaskDO.setTaskDistributionName(userRealName);
deliveTaskDO.setTaskDistributionTime(new Date());
deliveTaskDO.setOperatorsBy(stockOutOrderDO.getCheckOperatorsBy());
deliveTaskDO.setOperatorsName(stockOutOrderDO.getCheckOperatorsName());
// 若未指定复核人(null 或 0),默认分配给当前操作用户;前端未选择时可能传 0,0 在 PDA 两个 tab 都查不到
Long operatorsBy = stockOutOrderDO.getCheckOperatorsBy();
String operatorsName = stockOutOrderDO.getCheckOperatorsName();
if (operatorsBy == null || operatorsBy == 0) {
operatorsBy = loginUser.getUserid();
operatorsName = (operatorsName != null && !operatorsName.isEmpty()) ? operatorsName : userRealName;
}
deliveTaskDO.setOperatorsBy(operatorsBy);
deliveTaskDO.setOperatorsName(operatorsName);
deliveTaskDO.setCreateBy(loginUser.getUserid());
deliveTaskDO.setCreateByName(userRealName);
deliveTaskDO.setCreateTime(new Date());
@@ -1,5 +1,6 @@
package com.mhd.wms.interfaces.dto.stockOutOrder;
import com.fasterxml.jackson.annotation.JsonAlias;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mhd.common.core.annotation.Excel;
import com.mhd.wms.interfaces.dto.outMaterialDetail.OutMaterialDetailDTO;
@@ -234,6 +235,7 @@ public class StockOutOrderDTO extends StockOutOrderBaseDTO {
@ApiModelProperty("复核作业人用户ID")
@Excel(name = "复核作业人用户ID")
@JsonAlias({"checkOperatorId", "operatorId"})
private Long checkOperatorsBy;
@ApiModelProperty("复核作业人姓名")
@@ -19,6 +19,7 @@ import com.mhd.wms.interfaces.assember.stockOutOrder.StockOutOrderAssembler;
import com.mhd.wms.interfaces.dto.outMaterialDetail.OutMaterialDetailDTO;
import com.mhd.wms.interfaces.dto.stockOutOrder.StockOutOrderDTO;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpRequest;
@@ -39,6 +40,7 @@ import java.util.List;
* @author gen
* @date 2024-05-28
*/
@Slf4j
@RestController
@RequestMapping("/stockOutOrderApi")
public class StockOutOrderApi extends BaseController {
@@ -281,6 +283,8 @@ public class StockOutOrderApi extends BaseController {
@ApiOperation("复核下发")
@PostMapping("/checkTaskDistribution")
public AjaxResult checkTaskDistribution(@RequestBody StockOutOrderDTO stockOutOrderDTO) {
log.debug("复核下发入参 checkOperatorsBy={}, checkOperatorsName={}, outOrderIds={}",
stockOutOrderDTO.getCheckOperatorsBy(), stockOutOrderDTO.getCheckOperatorsName(), stockOutOrderDTO.getOutOrderIds());
StockOutOrderDO stockOutOrderDO = JSONUtil.toBean(JSONUtil.toJsonStr(stockOutOrderDTO), StockOutOrderDO.class);
return AjaxResult.success(stockOutOrderApplicationService.checkTaskDistribution(stockOutOrderDO));
}