执行单下发

This commit is contained in:
hjx
2026-01-28 17:58:51 +08:00
parent e5476beb07
commit 126a826513
14 changed files with 791 additions and 27 deletions
@@ -70,12 +70,15 @@ public class BusinessDocumentOrderApplicationService {
return businessDocumentOrderDomainService.getInfo(id);
}
public BusinessDocumentOrderPO audit( Long id, Long reviewStatus)
public Boolean audit( Long[] ids, Long reviewStatus)
{
return businessDocumentOrderDomainService.audit(id,reviewStatus);
return businessDocumentOrderDomainService.audit(ids,reviewStatus);
}
public boolean execute(Long[] ids) {
return businessDocumentOrderDomainService.execute(ids);
}
public boolean cancelExecute(Long[] ids) {
return businessDocumentOrderDomainService.cancelExecute(ids);
}
}
@@ -675,7 +675,7 @@ public class BusinessDocumentOrder extends BaseVOEntity{
@ApiModelProperty( "执行状态 0-无状态 1-未执行 2-已执行 3-已下发")
@ApiModelProperty( "执行状态 0-无状态 1-未执行 2-已执行 3-已下发 4-已取消")
private Long executeStatus;
@ApiModelProperty("执行时间")
@@ -37,13 +37,15 @@ public interface IBusinessDocumentOrderService extends IService<BusinessDocument
public Boolean execute(Long[] ids);
public Boolean cancelExecute(Long[] ids) throws Exception;
/**
* 查询【请填写功能名称】
*/
public BusinessDocumentOrderPO getInfo(Long id);
public BusinessDocumentOrderPO audit( Long id, Long reviewStatus);
public Boolean audit( Long [] ids, Long reviewStatus);
String selectByMakerCodeNc(String salesmanCodeNc);
@@ -1,6 +1,7 @@
package com.mhd.oms.domain.businessDocumentOrder.repository.persistence;
import cn.hutool.core.util.ObjectUtil;
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.oms.domain.businessDocumentOrder.entity.BusinessDocumentOrder;
@@ -9,6 +10,7 @@ import com.mhd.oms.domain.businessDocumentOrder.repository.mapper.BusinessDocume
import com.mhd.oms.domain.businessDocumentOrder.repository.po.BusinessDocumentOrderPO;
import com.mhd.oms.domain.businessDocumentOrder.repository.todo.BusinessDocumentOrderDO;
import com.mhd.oms.domain.executeOrder.entity.ExecuteOrder;
import com.mhd.oms.domain.executeOrder.repository.mapper.ExecuteOrderMapper;
import com.mhd.oms.domain.executeOrder.repository.todo.ExecuteOrderDO;
import com.mhd.oms.domain.executeOrder.service.ExecuteOrderDomainService;
import com.mhd.system.api.model.LoginUser;
@@ -16,6 +18,7 @@ import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.rmi.ServerException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -34,6 +37,10 @@ public class BusinessDocumentOrderImpl extends ServiceImpl<BusinessDocumentOrder
@Autowired
private ExecuteOrderDomainService executeOrderDomainService;
@Autowired
private ExecuteOrderMapper executeOrderMapper;
/**
* 查询【请填写功能名称】列表
*/
@@ -90,25 +97,24 @@ public class BusinessDocumentOrderImpl extends ServiceImpl<BusinessDocumentOrder
}
@Override
public BusinessDocumentOrderPO audit(Long id, Long reviewStatus) {
public Boolean audit(Long[] ids, Long reviewStatus) {
LoginUser loginUser = SecurityUtils.getLoginUser();//获取登录人
BusinessDocumentOrder businessDocumentOrder=businessDocumentOrderMapper.selectById(id);
if (ObjectUtil.isNotNull(businessDocumentOrder)){
businessDocumentOrder.setReviewStatus(reviewStatus);
businessDocumentOrder.setReviewId(loginUser.getUserid());
businessDocumentOrder.setReview(loginUser.getUsername());
businessDocumentOrder.setReviewTime(new Date());
if(reviewStatus==1){
businessDocumentOrder.setOrderStatus(1L);
businessDocumentOrder.setExecuteStatus(1L);
}else{
businessDocumentOrder.setOrderStatus(0L);
for (Long id:ids){
BusinessDocumentOrder businessDocumentOrder=businessDocumentOrderMapper.selectById(id);
if (ObjectUtil.isNotNull(businessDocumentOrder)){
businessDocumentOrder.setReviewStatus(reviewStatus);
businessDocumentOrder.setReviewId(loginUser.getUserid());
businessDocumentOrder.setReview(loginUser.getUsername());
businessDocumentOrder.setReviewTime(new Date());
if(reviewStatus==1){
businessDocumentOrder.setOrderStatus(1L);
businessDocumentOrder.setExecuteStatus(1L);
}else{
businessDocumentOrder.setOrderStatus(0L);
}
businessDocumentOrderMapper.updateById(businessDocumentOrder);
}
businessDocumentOrderMapper.updateById(businessDocumentOrder);
BusinessDocumentOrder businessDocumentOrder1 = this.getById(id);
BusinessDocumentOrderPO businessDocumentOrderPO = new BusinessDocumentOrderPO();
BeanUtils.copyProperties(businessDocumentOrder1,businessDocumentOrderPO);
return businessDocumentOrderPO;
}
return null;
}
@@ -131,6 +137,7 @@ public class BusinessDocumentOrderImpl extends ServiceImpl<BusinessDocumentOrder
executeOrderDO.setGoodsNumber(businessDocumentOrder.getGoodsNumber());
executeOrderDO.setCreateBy(loginUser.getUserid());
executeOrderDO.setCreateTime(new Date());
executeOrderDO.setDelFlag(1);
executeOrderDO.setOrganizationId(businessDocumentOrder.getOrganizationId());
executeOrderDO.setOrgName(businessDocumentOrder.getOrgName());
executeOrderDO.setTopOrganizationId(businessDocumentOrder.getTopOrganizationId());
@@ -142,6 +149,38 @@ public class BusinessDocumentOrderImpl extends ServiceImpl<BusinessDocumentOrder
return null;
}
@Override
public Boolean cancelExecute(Long[] ids) throws Exception{
LoginUser loginUser = SecurityUtils.getLoginUser();//获取登录人
for (Long id:ids){
BusinessDocumentOrder businessDocumentOrder=businessDocumentOrderMapper.selectById(id);
if (ObjectUtil.isNotNull(businessDocumentOrder)){
//businessDocumentOrder.setExecuteId(loginUser.getUserid());
businessDocumentOrder.setExecuteStatus(4L);
//businessDocumentOrder.setExecuteTime(new Date());
//businessDocumentOrder.setExecutor(loginUser.getUsername());
businessDocumentOrder.setOrderStatus(4L);
businessDocumentOrderMapper.updateById(businessDocumentOrder);
List<ExecuteOrder> list=executeOrderMapper.selectList(new QueryWrapper<ExecuteOrder>().lambda()
.eq(ExecuteOrder::getBusinessDocumentId,id).eq(ExecuteOrder::getDelFlag,1));
if(ObjectUtil.isNotNull(list)&&list.size()>0){
for (ExecuteOrder executeOrder:list){
if(executeOrder.getIssueStatus()==2){
throw new ServerException("业务单已生成执行单,请先确认执行单{执行单号}是否可取消");
}else{
executeOrder.setOrderStatus(3L);
executeOrder.setIssueStatus(1L);
executeOrderMapper.updateById(executeOrder);
}
}
}
}
}
return null;
}
@Override
public String selectByMakerCodeNc(String salesmanCodeNc) {
String makerCodeNc = businessDocumentOrderMapper.selectByMakerCodeNc(salesmanCodeNc);
@@ -647,14 +647,17 @@ public class BusinessDocumentOrderDomainService {
return businessDocumentOrderService.getInfo(id);
}
public BusinessDocumentOrderPO audit( Long id, Long reviewStatus)
public Boolean audit( Long[] ids, Long reviewStatus)
{
return businessDocumentOrderService.audit(id,reviewStatus);
return businessDocumentOrderService.audit(ids,reviewStatus);
}
public Boolean execute(Long[] ids) {
return businessDocumentOrderService.execute(ids);
}
public Boolean cancelExecute(Long[] ids) {
return businessDocumentOrderService.cancelExecute(ids);
}
/**
* 查询编码对应名称
@@ -68,7 +68,7 @@ public class ExecuteOrder extends BaseVOEntity{
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long topOrganizationId;
@ApiModelProperty( "下发状态 0-无状态 1-未下发 2-已下发")
@ApiModelProperty( "下发状态 0-无状态 1-未下发 2-已下发 ")
private Long issueStatus;
@ApiModelProperty("下发时间")
@@ -82,4 +82,7 @@ public class ExecuteOrder extends BaseVOEntity{
@ApiModelProperty("下发人")
private String issueName;
@ApiModelProperty("业务单状态 0-未下发 1-已下发 2-已完成 3-已取消 4-已拦截")
private Long orderStatus;
}
@@ -1,17 +1,35 @@
package com.mhd.oms.domain.executeOrder.repository.persistence;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mhd.common.core.domain.dto.wlhy.TmsAddressMultiDTO;
import com.mhd.common.core.domain.dto.wlhy.TmsCargoInfoDTO;
import com.mhd.common.core.domain.dto.wlhy.TmsOrderAddDTO;
import com.mhd.common.core.domain.entity.TmsOrder;
import com.mhd.common.core.exception.ServiceException;
import com.mhd.common.core.web.domain.AjaxResult;
import com.mhd.common.security.utils.SecurityUtils;
import com.mhd.oms.domain.businessDocumentAddressMulti.entity.BusinessDocumentAddressMulti;
import com.mhd.oms.domain.businessDocumentAddressMulti.repository.mapper.BusinessDocumentAddressMultiMapper;
import com.mhd.oms.domain.businessDocumentCargoMulti.entity.BusinessDocumentCargoMulti;
import com.mhd.oms.domain.businessDocumentCargoMulti.repository.mapper.BusinessDocumentCargoMultiMapper;
import com.mhd.oms.domain.businessDocumentOrder.entity.BusinessDocumentOrder;
import com.mhd.oms.domain.businessDocumentOrder.repository.mapper.BusinessDocumentOrderMapper;
import com.mhd.oms.domain.executeOrder.entity.ExecuteOrder;
import com.mhd.oms.domain.executeOrder.repository.facade.IExecuteOrderService;
import com.mhd.oms.domain.executeOrder.repository.mapper.ExecuteOrderMapper;
import com.mhd.oms.domain.executeOrder.repository.po.ExecuteOrderPO;
import com.mhd.oms.domain.executeOrder.repository.todo.ExecuteOrderDO;
import com.mhd.system.api.WlhyServiceFeign;
import com.mhd.system.api.model.LoginUser;
import io.swagger.annotations.ApiModelProperty;
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;
/**
@@ -24,6 +42,16 @@ import java.util.List;
public class ExecuteOrderImpl extends ServiceImpl<ExecuteOrderMapper, ExecuteOrder> implements IExecuteOrderService{
@Autowired
private ExecuteOrderMapper executeOrderMapper;
@Autowired
private BusinessDocumentOrderMapper businessDocumentOrderMapper;
@Autowired
private BusinessDocumentCargoMultiMapper businessDocumentCargoMultiMapper;
@Autowired
private BusinessDocumentAddressMultiMapper businessDocumentAddressMultiMapper;
@Autowired
private WlhyServiceFeign wlhyServiceFeign;
/**
* 查询【请填写功能名称】列表
@@ -71,11 +99,68 @@ public class ExecuteOrderImpl extends ServiceImpl<ExecuteOrderMapper, ExecuteOrd
@Override
public Boolean issueDocuments(Long[] ids) {
LoginUser loginUser = SecurityUtils.getLoginUser();//获取登录人
for (Long id:ids){
ExecuteOrder executeOrder=executeOrderMapper.selectById(id);
if (ObjectUtil.isNotNull(executeOrder)){
executeOrder.setIssueStatus(2L);
executeOrder.setIssueTime(new Date());
executeOrder.setIssueId(loginUser.getUserid());
executeOrder.setIssueName(loginUser.getUsername());
executeOrder.setOrderStatus(1L);
executeOrderMapper.updateById(executeOrder);
//下发到tms
TmsOrderAddDTO tmsOrderAddDTO=new TmsOrderAddDTO();
List<TmsCargoInfoDTO> cargoInfoList=new ArrayList<TmsCargoInfoDTO>();
List<TmsAddressMultiDTO> loadingAddressList=new ArrayList<TmsAddressMultiDTO>();
List<TmsAddressMultiDTO> unloadAddressList=new ArrayList<TmsAddressMultiDTO>();
BusinessDocumentOrder businessDocumentOrder=businessDocumentOrderMapper.selectById(executeOrder.getBusinessDocumentId());
if(ObjectUtil.isNotNull(businessDocumentOrder)){
BeanUtils.copyProperties(businessDocumentOrder,tmsOrderAddDTO);
tmsOrderAddDTO.setExecuteOrderId(String.valueOf(id));
tmsOrderAddDTO.setExecuteOrderNumber(executeOrder.getGoodsNumber());
//货物信息
List<BusinessDocumentCargoMulti> businessDocumentCargoMultiList=businessDocumentCargoMultiMapper.selectList(new QueryWrapper<BusinessDocumentCargoMulti>().lambda()
.eq(BusinessDocumentCargoMulti::getOrderId,businessDocumentOrder.getId())
.eq(BusinessDocumentCargoMulti::getDelFlag,1));
if(ObjectUtil.isNotNull(businessDocumentCargoMultiList)&&businessDocumentCargoMultiList.size()>0){
for (BusinessDocumentCargoMulti businessDocumentCargoMulti:businessDocumentCargoMultiList){
TmsCargoInfoDTO tmsCargoInfoDTO=new TmsCargoInfoDTO();
BeanUtils.copyProperties(businessDocumentCargoMulti,tmsCargoInfoDTO);
cargoInfoList.add(tmsCargoInfoDTO);
}
}
//装货地址信息
List<BusinessDocumentAddressMulti> businessDocumentAddressMultiList=businessDocumentAddressMultiMapper.selectList(new QueryWrapper<BusinessDocumentAddressMulti>().lambda()
.eq(BusinessDocumentAddressMulti::getOrderId,businessDocumentOrder.getId())
.eq(BusinessDocumentAddressMulti::getDelFlag,1)
.eq(BusinessDocumentAddressMulti::getLayType,1));
if(ObjectUtil.isNotNull(businessDocumentAddressMultiList)&&businessDocumentAddressMultiList.size()>0){
for (BusinessDocumentAddressMulti businessDocumentAddressMulti:businessDocumentAddressMultiList){
TmsAddressMultiDTO tmsAddressMultiDTO=new TmsAddressMultiDTO();
BeanUtils.copyProperties(businessDocumentAddressMulti,tmsAddressMultiDTO);
loadingAddressList.add(tmsAddressMultiDTO);
}
}
//卸货货地址信息
List<BusinessDocumentAddressMulti> businessDocumentAddressMultiUnloadList=businessDocumentAddressMultiMapper.selectList(new QueryWrapper<BusinessDocumentAddressMulti>().lambda()
.eq(BusinessDocumentAddressMulti::getOrderId,businessDocumentOrder.getId())
.eq(BusinessDocumentAddressMulti::getDelFlag,1)
.eq(BusinessDocumentAddressMulti::getLayType,2));
if(ObjectUtil.isNotNull(businessDocumentAddressMultiUnloadList)&&businessDocumentAddressMultiUnloadList.size()>0){
for (BusinessDocumentAddressMulti businessDocumentAddressMulti:businessDocumentAddressMultiUnloadList){
TmsAddressMultiDTO tmsAddressMultiDTO=new TmsAddressMultiDTO();
BeanUtils.copyProperties(businessDocumentAddressMulti,tmsAddressMultiDTO);
unloadAddressList.add(tmsAddressMultiDTO);
}
}
AjaxResult ajaxResult=wlhyServiceFeign.add(tmsOrderAddDTO);
if(ajaxResult.get("code").toString().equals("200")){
}else {
throw new ServiceException(ajaxResult.get("msg").toString());
}
}
}
}
return null;
@@ -85,9 +85,9 @@ public class BusinessDocumentOrderApi extends BaseController{
*/
@ApiOperation("业务单审核")
@GetMapping(value = "/audit")
public AjaxResult audit(@RequestParam("id") Long id,@RequestParam("reviewStatus") Long reviewStatus)
public AjaxResult audit(@RequestParam("ids") Long[] ids,@RequestParam("reviewStatus") Long reviewStatus)
{
return AjaxResult.success(businessDocumentOrderApplicationService.audit(id,reviewStatus));
return AjaxResult.success(businessDocumentOrderApplicationService.audit(ids,reviewStatus));
}
/**
@@ -102,6 +102,15 @@ public class BusinessDocumentOrderApi extends BaseController{
/**
* 批量取消执行【业务单】
*/
@ApiOperation("批量取消执行【业务单】")
@PostMapping("/cancelExecute")
public AjaxResult cancelExecute(@RequestParam("ids") Long[] ids)
{
return toAjax(businessDocumentOrderApplicationService.cancelExecute(ids));
}