Merge branch 'dev' into dev_WMS20260401
This commit is contained in:
+1
-1
@@ -41,7 +41,7 @@ public class ExecuteOrderApplicationService {
|
||||
/**
|
||||
* 新增【请填写功能名称】
|
||||
*/
|
||||
public Boolean insert(ExecuteOrderDO executeOrderDO) {
|
||||
public Long insert(ExecuteOrderDO executeOrderDO) {
|
||||
|
||||
return executeOrderDomainService.insert(executeOrderDO);
|
||||
}
|
||||
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
package com.mhd.oms.domain.businessDocumentCargoInfo.repository;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.mhd.oms.interfaces.assembler.businessDocumentCargoInfo.BusinessDocumentCargoInfo;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author: brb
|
||||
* @description:
|
||||
* @create: 2026-03-30 17:38
|
||||
*/
|
||||
public interface BusinessDocumentCargoInfoMapper extends BaseMapper<BusinessDocumentCargoInfo> {
|
||||
void insertBatch(@Param("list") List<BusinessDocumentCargoInfo> businessDocumentCargoInfoList);
|
||||
}
|
||||
+37
@@ -694,4 +694,41 @@ public class BusinessDocumentOrder extends BaseVOEntity{
|
||||
|
||||
@ApiModelProperty("预约单号")
|
||||
private String reservationOrderNumber;
|
||||
|
||||
|
||||
@ApiModelProperty("执行单id")
|
||||
private String executeOrderId;
|
||||
|
||||
@ApiModelProperty("执行单号")
|
||||
private String executeOrderNumber;
|
||||
|
||||
@ApiModelProperty("收款账户id")
|
||||
private String paymentAccountId;
|
||||
|
||||
@ApiModelProperty("收款账户信息")
|
||||
private String accountInformation;
|
||||
|
||||
@ApiModelProperty("业务类型")
|
||||
private Integer businessCategory;
|
||||
|
||||
@ApiModelProperty(value = "组织地址")
|
||||
private String companyAddress;
|
||||
|
||||
@ApiModelProperty(value = "组织公司名称")
|
||||
private String companyName;
|
||||
|
||||
// @ApiModelProperty(value = "组织公司名称英文")
|
||||
// private String companyNameEn;
|
||||
//
|
||||
// @ApiModelProperty(value = "负责人姓名")
|
||||
// private String contact;
|
||||
//
|
||||
// @ApiModelProperty(value = "组织负责人id")
|
||||
// private String contactPhone;
|
||||
//
|
||||
@ApiModelProperty(value = "账户名称")
|
||||
private String accountName;
|
||||
//
|
||||
// @ApiModelProperty(value = "开户银行")
|
||||
// private String accountBank;
|
||||
}
|
||||
|
||||
+50
-23
@@ -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.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
@@ -17,6 +18,7 @@ import com.mhd.system.api.model.LoginUser;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.rmi.ServerException;
|
||||
import java.util.ArrayList;
|
||||
@@ -120,36 +122,58 @@ public class BusinessDocumentOrderImpl extends ServiceImpl<BusinessDocumentOrder
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean execute(Long[] ids) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();//获取登录人
|
||||
for (Long id:ids){
|
||||
BusinessDocumentOrder businessDocumentOrder=businessDocumentOrderMapper.selectById(id);
|
||||
if (ObjectUtil.isNotNull(businessDocumentOrder)){
|
||||
businessDocumentOrder.setExecuteId(loginUser.getUserid());
|
||||
businessDocumentOrder.setExecuteStatus(2L);
|
||||
businessDocumentOrder.setExecuteTime(new Date());
|
||||
businessDocumentOrder.setExecutor(loginUser.getUsername());
|
||||
businessDocumentOrder.setOrderStatus(2L);
|
||||
businessDocumentOrderMapper.updateById(businessDocumentOrder);
|
||||
ExecuteOrderDO executeOrderDO=new ExecuteOrderDO();
|
||||
executeOrderDO.setBusinessDocumentId(id);
|
||||
executeOrderDO.setBusinessDocumentNumber(businessDocumentOrder.getGoodsNumber());
|
||||
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());
|
||||
executeOrderDomainService.insert(executeOrderDO);
|
||||
try {
|
||||
for (Long id:ids){
|
||||
BusinessDocumentOrder businessDocumentOrder=businessDocumentOrderMapper.selectById(id);
|
||||
if (businessDocumentOrder.getReviewStatus()!=1){
|
||||
throw new ServerException("业务单审核状态异常");
|
||||
}
|
||||
|
||||
if (ObjectUtil.isNotNull(businessDocumentOrder)){
|
||||
ExecuteOrder objects = executeOrderMapper.selectOne(new LambdaQueryWrapper<ExecuteOrder>().eq(ExecuteOrder::getBusinessDocumentId, id).eq(ExecuteOrder::getDelFlag,1) .last("LIMIT 1")
|
||||
);
|
||||
if (ObjectUtil.isNotNull(objects)) {
|
||||
throw new ServerException("业务单已生成执行单,请先取消执行单");
|
||||
}
|
||||
|
||||
// 先创建执行单
|
||||
ExecuteOrderDO executeOrderDO=new ExecuteOrderDO();
|
||||
executeOrderDO.setBusinessDocumentId(id);
|
||||
executeOrderDO.setBusinessDocumentNumber(businessDocumentOrder.getGoodsNumber());
|
||||
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());
|
||||
|
||||
Long executeOrderId = executeOrderDomainService.insert(executeOrderDO);
|
||||
|
||||
// 更新业务单状态和执行单信息(只保存一次)
|
||||
businessDocumentOrder.setExecuteId(loginUser.getUserid());
|
||||
businessDocumentOrder.setExecuteStatus(2L);
|
||||
businessDocumentOrder.setExecuteTime(new Date());
|
||||
businessDocumentOrder.setExecutor(loginUser.getUsername());
|
||||
businessDocumentOrder.setOrderStatus(2L);
|
||||
businessDocumentOrder.setExecuteOrderId(String.valueOf(executeOrderId));
|
||||
businessDocumentOrder.setExecuteOrderNumber(businessDocumentOrder.getGoodsNumber());
|
||||
businessDocumentOrderMapper.updateById(businessDocumentOrder);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return true;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
throw new RuntimeException("执行失败:" + e.getMessage());
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean cancelExecute(Long[] ids) throws Exception{
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();//获取登录人
|
||||
for (Long id:ids){
|
||||
@@ -170,7 +194,10 @@ public class BusinessDocumentOrderImpl extends ServiceImpl<BusinessDocumentOrder
|
||||
}else{
|
||||
executeOrder.setOrderStatus(3L);
|
||||
executeOrder.setIssueStatus(1L);
|
||||
executeOrderMapper.updateById(executeOrder);
|
||||
int i = executeOrderMapper.updateById(executeOrder);
|
||||
if (i > 0) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+36
@@ -706,4 +706,40 @@ public class BusinessDocumentOrderPO extends BaseVOEntity{
|
||||
|
||||
@ApiModelProperty("预约单号")
|
||||
private String reservationOrderNumber;
|
||||
|
||||
@ApiModelProperty("执行单id")
|
||||
private String executeOrderId;
|
||||
|
||||
@ApiModelProperty("执行单号")
|
||||
private String executeOrderNumber;
|
||||
|
||||
@ApiModelProperty("收款账户id")
|
||||
private String paymentAccountId;
|
||||
|
||||
@ApiModelProperty("收款账户信息")
|
||||
private String accountInformation;
|
||||
|
||||
@ApiModelProperty("业务类型")
|
||||
private Integer businessCategory;
|
||||
|
||||
@ApiModelProperty(value = "组织地址")
|
||||
private String companyAddress;
|
||||
|
||||
@ApiModelProperty(value = "组织公司名称")
|
||||
private String companyName;
|
||||
|
||||
@ApiModelProperty(value = "组织公司名称英文")
|
||||
private String companyNameEn;
|
||||
|
||||
@ApiModelProperty(value = "负责人姓名")
|
||||
private String contact;
|
||||
|
||||
@ApiModelProperty(value = "组织负责人id")
|
||||
private String contactPhone;
|
||||
|
||||
@ApiModelProperty(value = "账户名称")
|
||||
private String accountName;
|
||||
|
||||
@ApiModelProperty(value = "开户银行")
|
||||
private String accountBank;
|
||||
}
|
||||
|
||||
+40
@@ -2,6 +2,7 @@ package com.mhd.oms.domain.businessDocumentOrder.repository.todo;
|
||||
|
||||
import com.mhd.common.core.annotation.Excel;
|
||||
import com.mhd.oms.domain.businessDocumentCargoMulti.entity.BusinessDocumentCargoMulti;
|
||||
import com.mhd.oms.interfaces.assembler.businessDocumentCargoInfo.BusinessDocumentCargoInfo;
|
||||
import com.mhd.oms.interfaces.dto.businessDocumentAddressMulti.BusinessDocumentAddressMultiDTO;
|
||||
import com.mhd.oms.interfaces.dto.businessDocumentCargoMulti.BusinessDocumentCargoMultiDTO;
|
||||
import lombok.Data;
|
||||
@@ -728,12 +729,51 @@ public class BusinessDocumentOrderDO extends BaseVOEntity{
|
||||
@ApiModelProperty("预约单号")
|
||||
private String reservationOrderNumber;
|
||||
|
||||
@ApiModelProperty("执行单id")
|
||||
private String executeOrderId;
|
||||
|
||||
@ApiModelProperty("执行单号")
|
||||
private String executeOrderNumber;
|
||||
|
||||
@ApiModelProperty("收款账户id")
|
||||
private String paymentAccountId;
|
||||
|
||||
@ApiModelProperty("收款账户信息")
|
||||
private String accountInformation;
|
||||
|
||||
@ApiModelProperty("业务类型")
|
||||
private Integer businessCategory;
|
||||
|
||||
@ApiModelProperty(value = "组织地址")
|
||||
private String companyAddress;
|
||||
|
||||
@ApiModelProperty(value = "组织公司名称")
|
||||
private String companyName;
|
||||
|
||||
@ApiModelProperty(value = "组织公司名称英文")
|
||||
private String companyNameEn;
|
||||
|
||||
@ApiModelProperty(value = "负责人姓名")
|
||||
private String contact;
|
||||
|
||||
@ApiModelProperty(value = "组织负责人id")
|
||||
private String contactPhone;
|
||||
|
||||
@ApiModelProperty(value = "账户名称")
|
||||
private String accountName;
|
||||
|
||||
@ApiModelProperty(value = "开户银行")
|
||||
private String accountBank;
|
||||
|
||||
@ApiModelProperty("业务单地址集合")
|
||||
private List<BusinessDocumentAddressMultiDTO> businessDocumentAddressMultiDTOList;
|
||||
|
||||
@ApiModelProperty("业务单货物集合")
|
||||
private List<BusinessDocumentCargoMultiDTO> businessDocumentCargoMultiList;
|
||||
|
||||
@ApiModelProperty("业务单货物详情集合")
|
||||
private List<BusinessDocumentCargoInfo> cargoInfoList;
|
||||
|
||||
@ApiModelProperty(value = "装货地址集合")
|
||||
private List<BusinessDocumentAddressMultiDTO> loadingAddressList;
|
||||
@ApiModelProperty(value = "卸货地址集合")
|
||||
|
||||
+9
-2
@@ -15,6 +15,7 @@ import com.mhd.oms.domain.businessDocumentCargoMulti.entity.BusinessDocumentCarg
|
||||
import com.mhd.oms.domain.businessDocumentCargoMulti.repository.mapper.BusinessDocumentCargoMultiMapper;
|
||||
import com.mhd.oms.domain.businessDocumentOrder.entity.BusinessDocumentOrder;
|
||||
import com.mhd.oms.domain.businessDocumentOrder.repository.facade.IBusinessDocumentOrderService;
|
||||
import com.mhd.oms.domain.businessDocumentOrder.repository.mapper.BusinessDocumentOrderMapper;
|
||||
import com.mhd.oms.domain.businessDocumentOrder.repository.po.BusinessDocumentOrderPO;
|
||||
import com.mhd.oms.domain.businessDocumentOrder.repository.todo.BusinessDocumentOrderDO;
|
||||
import com.mhd.oms.domain.orderType.entity.OrderType;
|
||||
@@ -57,6 +58,9 @@ public class BusinessDocumentOrderDomainService {
|
||||
|
||||
@Resource
|
||||
private BusinessDocumentAddressMultiMapper businessDocumentAddressMultiMapper;
|
||||
|
||||
@Resource
|
||||
private BusinessDocumentOrderMapper businessDocumentOrderMapper;
|
||||
/**
|
||||
* 分页查询【请填写功能名称】列表
|
||||
*/
|
||||
@@ -102,7 +106,7 @@ public class BusinessDocumentOrderDomainService {
|
||||
String orderRemark = businessDocumentOrderDO.getRemarks();
|
||||
businessDocumentOrderDO.setRemarks(orderRemark);
|
||||
|
||||
businessDocumentOrderDO.setAppointShipperId(String.valueOf(userShipperPo.getUserId()));
|
||||
// businessDocumentOrderDO.setAppointShipperId(String.valueOf(userShipperPo.getUserId()));
|
||||
// 分类处理货物列表
|
||||
List<BusinessDocumentCargoMultiDTO> allCargoList = businessDocumentOrderDO.getBusinessDocumentCargoMultiList();
|
||||
businessDocumentOrderDO.setReceivableType(2L);
|
||||
@@ -210,6 +214,8 @@ public class BusinessDocumentOrderDomainService {
|
||||
tmsOrder.setFreighterName(firstAddress.getContactName());
|
||||
tmsOrder.setLoadingPhone(firstAddress.getContactPhone());
|
||||
tmsOrder.setLoadingDate(firstAddress.getLayDate());
|
||||
tmsOrder.setAppointShipper(businessDocumentOrderDO.getAppointShipper());
|
||||
tmsOrder.setAppointShipperId(businessDocumentOrderDO.getAppointShipperId());
|
||||
|
||||
tmsOrder.setUnloadAreaId(lastAddress.getAreaCode());
|
||||
tmsOrder.setUnloadName(lastAddress.getAreaCode());
|
||||
@@ -300,7 +306,8 @@ public class BusinessDocumentOrderDomainService {
|
||||
if (businessDocumentOrderDO.getTopOrganizationId() != null) {
|
||||
tmsOrder.setTopOrganizationId(businessDocumentOrderDO.getTopOrganizationId());
|
||||
}
|
||||
boolean istrue=businessDocumentOrderService.insert(businessDocumentOrderDO);
|
||||
// boolean istrue=businessDocumentOrderService.insert(businessDocumentOrderDO);
|
||||
boolean istrue = businessDocumentOrderMapper.insert(tmsOrder) > 0;
|
||||
//保存货物信息及地址信息
|
||||
|
||||
saveAddress2CargoInfo(tmsOrder.getId(), allCargoList, loadingAddressList, unloadAddressList);
|
||||
|
||||
+1
-1
@@ -23,7 +23,7 @@ public interface IExecuteOrderService extends IService<ExecuteOrder>
|
||||
/**
|
||||
* 新增【请填写功能名称】
|
||||
*/
|
||||
public Boolean insert(ExecuteOrderDO executeOrderDO);
|
||||
public Long insert(ExecuteOrderDO executeOrderDO);
|
||||
|
||||
/**
|
||||
* 修改【请填写功能名称】
|
||||
|
||||
+11
-2
@@ -67,10 +67,11 @@ public class ExecuteOrderImpl extends ServiceImpl<ExecuteOrderMapper, ExecuteOrd
|
||||
* 新增【请填写功能名称】
|
||||
*/
|
||||
@Override
|
||||
public Boolean insert(ExecuteOrderDO executeOrderDO) {
|
||||
public Long insert(ExecuteOrderDO executeOrderDO) {
|
||||
ExecuteOrder executeOrder = new ExecuteOrder();
|
||||
BeanUtils.copyProperties(executeOrderDO,executeOrder);
|
||||
return this.save(executeOrder);
|
||||
this.save(executeOrder);
|
||||
return executeOrder.getId();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -155,8 +156,16 @@ public class ExecuteOrderImpl extends ServiceImpl<ExecuteOrderMapper, ExecuteOrd
|
||||
unloadAddressList.add(tmsAddressMultiDTO);
|
||||
}
|
||||
}
|
||||
tmsOrderAddDTO.setAppointShipper(businessDocumentOrder.getAppointShipper());
|
||||
tmsOrderAddDTO.setAppointShipperId(businessDocumentOrder.getAppointShipperId());
|
||||
tmsOrderAddDTO.setCargoInfoList(cargoInfoList);
|
||||
tmsOrderAddDTO.setLoadingAddressList(loadingAddressList);
|
||||
tmsOrderAddDTO.setUnloadAddressList(unloadAddressList);
|
||||
tmsOrderAddDTO.setOrderShippingType(2);
|
||||
tmsOrderAddDTO.setPayerType(0);
|
||||
AjaxResult ajaxResult=wlhyServiceFeign.add(tmsOrderAddDTO);
|
||||
if(ajaxResult.get("code").toString().equals("200")){
|
||||
return true;
|
||||
|
||||
}else {
|
||||
throw new ServiceException(ajaxResult.get("msg").toString());
|
||||
|
||||
+17
@@ -66,6 +66,23 @@ public class ExecuteOrderPO extends BaseVOEntity{
|
||||
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
|
||||
private Long topOrganizationId;
|
||||
|
||||
@ApiModelProperty("下发状态")
|
||||
@Excel(name = "下发状态")
|
||||
private String issueStatus;
|
||||
|
||||
@ApiModelProperty("下发人")
|
||||
@Excel(name = "下发人")
|
||||
private String issueName;
|
||||
|
||||
@ApiModelProperty("下发时间")
|
||||
@Excel(name = "下发时间", width = 20, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date issueTime;
|
||||
|
||||
@ApiModelProperty("业务单状态")
|
||||
@Excel(name = "业务单状态")
|
||||
private String orderStatus;
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
+26
@@ -7,6 +7,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import java.math.BigDecimal;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import com.mhd.common.core.web.domain.BaseVOEntity;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -26,6 +27,31 @@ public class ExecuteOrderDO extends BaseVOEntity{
|
||||
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
|
||||
private Long id;
|
||||
|
||||
|
||||
@ApiModelProperty(value = "创建结束日期")
|
||||
@Excel(name = "创建结束日期", width = 20)
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||
private Date createEndTime;
|
||||
/**更新日期*/
|
||||
@ApiModelProperty(value = "创建开始日期")
|
||||
@Excel(name = "创建开始日期", width = 20)
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||
private Date createStartTime;
|
||||
|
||||
@ApiModelProperty(value = "下发结束日期")
|
||||
@Excel(name = "下发结束日期", width = 20)
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||
private Date issueEndTime;
|
||||
/**更新日期*/
|
||||
@ApiModelProperty(value = "下发开始日期")
|
||||
@Excel(name = "下发开始日期", width = 20)
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||
private Date issueStartTime;
|
||||
|
||||
@ApiModelProperty("$column.columnComment")
|
||||
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
|
||||
private String realCreateBy;
|
||||
|
||||
+7
-1
@@ -33,7 +33,7 @@ public class ExecuteOrderDomainService {
|
||||
/**
|
||||
* 新增【请填写功能名称】
|
||||
*/
|
||||
public Boolean insert(ExecuteOrderDO executeOrderDO) {
|
||||
public Long insert(ExecuteOrderDO executeOrderDO) {
|
||||
|
||||
return executeOrderService.insert(executeOrderDO);
|
||||
}
|
||||
@@ -51,6 +51,12 @@ public class ExecuteOrderDomainService {
|
||||
public Boolean delete(Long[] ids) {
|
||||
return executeOrderService.delete(ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 下发执行单
|
||||
* @param ids
|
||||
* @return
|
||||
*/
|
||||
public Boolean issueDocuments(Long[] ids) {
|
||||
return executeOrderService.issueDocuments(ids);
|
||||
}
|
||||
|
||||
+98
@@ -0,0 +1,98 @@
|
||||
package com.mhd.oms.interfaces.assembler.businessDocumentCargoInfo;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @author: brb
|
||||
* @description:
|
||||
* @create: 2026-03-30 17:15
|
||||
*/
|
||||
@Data
|
||||
public class BusinessDocumentCargoInfo {
|
||||
|
||||
@ApiModelProperty(value = "ID")
|
||||
private String id;
|
||||
@ApiModelProperty(value = "组织表ID")
|
||||
private Long organizationId;
|
||||
@ApiModelProperty(value = "组织名称")
|
||||
private String organizationName;
|
||||
@ApiModelProperty(value = "一级组织表ID")
|
||||
private Long topOrganizationId;
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
private Date createTime;
|
||||
@ApiModelProperty(value = "创建人用户ID")
|
||||
private Long createBy;
|
||||
@ApiModelProperty(value = "创建人姓名")
|
||||
private String createByName;
|
||||
@ApiModelProperty(value = "修改时间")
|
||||
private Date updateTime;
|
||||
// @ApiModelProperty(value = "修改人用户ID")
|
||||
// private Long updateBy;
|
||||
@ApiModelProperty(value = "修改人姓名")
|
||||
private String updateByName;
|
||||
@ApiModelProperty(value = "删除标记:0-无状态,1-正常,2-已删除")
|
||||
private Integer delFlag;
|
||||
@ApiModelProperty(value = "货单号")
|
||||
private String orderId;
|
||||
@ApiModelProperty(value = "货物类型ID")
|
||||
private String goodsTypeId;
|
||||
@ApiModelProperty(value = "货物类型")
|
||||
private String goodsType;
|
||||
@ApiModelProperty(value = "货物名称ID")
|
||||
private String goodsNameId;
|
||||
@ApiModelProperty(value = "货物名称")
|
||||
private String goodsName;
|
||||
@ApiModelProperty(value = "货物数量")
|
||||
private BigDecimal cargoNum;
|
||||
@ApiModelProperty(value = "货物重量")
|
||||
private BigDecimal cargoWeight;
|
||||
|
||||
@ApiModelProperty("体积")
|
||||
private BigDecimal cargoVolume;
|
||||
|
||||
@ApiModelProperty("内容")
|
||||
private String cargoContent;
|
||||
@ApiModelProperty(value = "重量单位ID")
|
||||
private String weightUnitId;
|
||||
@ApiModelProperty(value = "重量单位名称")
|
||||
private String weightUnit;
|
||||
@ApiModelProperty(value = "数量单位ID")
|
||||
private String quantityUnitId;
|
||||
@ApiModelProperty(value = "数量单位名称")
|
||||
private String quantityUnit;
|
||||
|
||||
@ApiModelProperty("货物名称")
|
||||
private String cargoName;
|
||||
|
||||
@ApiModelProperty("货物单位ID")
|
||||
private String cargoUnitId;
|
||||
|
||||
@ApiModelProperty("货物单位名字")
|
||||
private String cargoUnitName;
|
||||
|
||||
@ApiModelProperty("整机表编号")
|
||||
private String machineCode;
|
||||
|
||||
@ApiModelProperty("是否为库存")
|
||||
private boolean stockFlag;
|
||||
|
||||
@ApiModelProperty("货物重量 罐车运输专有字段")
|
||||
private BigDecimal cargoTonnage;
|
||||
|
||||
@ApiModelProperty("价格")
|
||||
private BigDecimal unitPrice;
|
||||
|
||||
@ApiModelProperty("货物类型标识:STOCK-库存,MATERIAL-物料,MANUAL-手动输入")
|
||||
private String cargoType;
|
||||
|
||||
@ApiModelProperty(value = "删除标记:0-无状态,1-正常,2-已删除")
|
||||
private Integer inventoryStatus;
|
||||
|
||||
@ApiModelProperty("货物备注")
|
||||
private String remark;
|
||||
|
||||
}
|
||||
+1
@@ -59,6 +59,7 @@ public class BusinessDocumentOrderAssembler {
|
||||
businessDocumentOrderDO.setUpdateTime(new Date());
|
||||
businessDocumentOrderDO.setDelFlag(1);
|
||||
}
|
||||
// businessDocumentOrderDO.setBusinessDocumentCargoMultiList(businessDocumentOrderDTO.getBusinessDocumentCargoMultiDTOList());
|
||||
return businessDocumentOrderDO;
|
||||
}
|
||||
|
||||
|
||||
+53
-1
@@ -5,6 +5,7 @@ import com.mhd.oms.domain.businessDocumentAddressMulti.entity.BusinessDocumentAd
|
||||
import com.mhd.oms.domain.businessDocumentAddressMulti.repository.todo.BusinessDocumentAddressMultiDO;
|
||||
import com.mhd.oms.domain.businessDocumentCargoMulti.entity.BusinessDocumentCargoMulti;
|
||||
import com.mhd.oms.interfaces.dto.businessDocumentAddressMulti.BusinessDocumentAddressMultiDTO;
|
||||
import com.mhd.oms.interfaces.dto.businessDocumentCargoMulti.BusinessDocumentCargoMultiDTO;
|
||||
import lombok.Data;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
@@ -42,6 +43,16 @@ public class BusinessDocumentOrderDTO extends BaseVOEntity{
|
||||
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
|
||||
private String createCompanyId;
|
||||
|
||||
@ApiModelProperty(value = "创建开始日期")
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||
private Date createStartTime;
|
||||
|
||||
@ApiModelProperty(value = "创建结束日期")
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||
private Date createEndTime;
|
||||
|
||||
@ApiModelProperty("$column.columnComment")
|
||||
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
|
||||
private String goodsNumber;
|
||||
@@ -706,11 +717,52 @@ public class BusinessDocumentOrderDTO extends BaseVOEntity{
|
||||
@ApiModelProperty("预约单号")
|
||||
private String reservationOrderNumber;
|
||||
|
||||
@ApiModelProperty("执行单id")
|
||||
private String executeOrderId;
|
||||
|
||||
@ApiModelProperty("执行单号")
|
||||
private String executeOrderNumber;
|
||||
|
||||
@ApiModelProperty("收款账户id")
|
||||
private String paymentAccountId;
|
||||
|
||||
@ApiModelProperty("收款账户信息")
|
||||
private String accountInformation;
|
||||
|
||||
@ApiModelProperty("业务类型")
|
||||
private Integer businessCategory;
|
||||
|
||||
@ApiModelProperty(value = "组织地址")
|
||||
private String companyAddress;
|
||||
|
||||
@ApiModelProperty(value = "组织公司名称")
|
||||
private String companyName;
|
||||
|
||||
@ApiModelProperty(value = "组织公司名称英文")
|
||||
private String companyNameEn;
|
||||
|
||||
@ApiModelProperty(value = "负责人姓名")
|
||||
private String contact;
|
||||
|
||||
@ApiModelProperty(value = "组织负责人id")
|
||||
private String contactPhone;
|
||||
|
||||
@ApiModelProperty(value = "账户名称")
|
||||
private String accountName;
|
||||
|
||||
@ApiModelProperty(value = "开户银行")
|
||||
private String accountBank;
|
||||
|
||||
@ApiModelProperty("业务单地址集合")
|
||||
private List<BusinessDocumentAddressMultiDTO> businessDocumentAddressMultiDTOList;
|
||||
|
||||
|
||||
@ApiModelProperty("业务单货物集合")
|
||||
private List<BusinessDocumentCargoMulti> businessDocumentCargoMultiList;
|
||||
private List<BusinessDocumentCargoMulti> businessDocumentCargoMultiList1;
|
||||
|
||||
@ApiModelProperty("业务单货物集合")
|
||||
private List<BusinessDocumentCargoMultiDTO> businessDocumentCargoMultiList;
|
||||
|
||||
|
||||
@ApiModelProperty(value = "装货地址集合")
|
||||
private List<BusinessDocumentAddressMultiDTO> loadingAddressList;
|
||||
|
||||
@@ -7,6 +7,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import java.math.BigDecimal;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import com.mhd.common.core.web.domain.BaseVOEntity;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -25,6 +26,30 @@ public class ExecuteOrderDTO extends BaseVOEntity{
|
||||
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty(value = "创建结束日期")
|
||||
@Excel(name = "创建结束日期", width = 20)
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||
private Date createEndTime;
|
||||
/**更新日期*/
|
||||
@ApiModelProperty(value = "创建开始日期")
|
||||
@Excel(name = "创建开始日期", width = 20)
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||
private Date createStartTime;
|
||||
|
||||
@ApiModelProperty(value = "下发结束日期")
|
||||
@Excel(name = "下发结束日期", width = 20)
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||
private Date issueEndTime;
|
||||
/**更新日期*/
|
||||
@ApiModelProperty(value = "下发开始日期")
|
||||
@Excel(name = "下发开始日期", width = 20)
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||
private Date issueStartTime;
|
||||
|
||||
@ApiModelProperty("$column.columnComment")
|
||||
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
|
||||
private String realCreateBy;
|
||||
|
||||
+6
-2
@@ -10,6 +10,7 @@ import com.mhd.oms.domain.businessDocumentOrder.repository.todo.BusinessDocument
|
||||
import com.mhd.oms.domain.businessDocumentOrder.repository.po.BusinessDocumentOrderPO;
|
||||
import com.mhd.oms.application.service.businessDocumentOrder.BusinessDocumentOrderApplicationService;
|
||||
import com.mhd.oms.interfaces.assembler.businessDocumentOrder.BusinessDocumentOrderAssembler;
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import javax.annotation.Resource;
|
||||
import com.mhd.common.core.web.controller.BaseController;
|
||||
import com.mhd.common.core.web.domain.AjaxResult;
|
||||
@@ -35,11 +36,14 @@ public class BusinessDocumentOrderApi extends BaseController{
|
||||
*/
|
||||
@ApiOperation("查询【业务单】列表")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(BusinessDocumentOrderDTO businessDocumentOrderDTO)
|
||||
public TableDataInfo list(BusinessDocumentOrderDTO businessDocumentOrderDTO,
|
||||
@RequestParam(value = "pageNo", required = false, defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(value = "pageSize", required = false, defaultValue = "20") Integer pageSize)
|
||||
{
|
||||
//转换实体
|
||||
BusinessDocumentOrderDO businessDocumentOrderDO = businessDocumentOrderAssembler.toDO(businessDocumentOrderDTO);
|
||||
startPage();
|
||||
// 使用 PageHelper 手动分页,支持 pageNo 参数
|
||||
PageHelper.startPage(pageNo, pageSize);
|
||||
List<BusinessDocumentOrderPO> list = businessDocumentOrderApplicationService.queryList(businessDocumentOrderDO);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
+2
-1
@@ -56,7 +56,8 @@ public class ExecuteOrderApi extends BaseController{
|
||||
if(executeOrderDTO.getId() != null){
|
||||
return toAjax(executeOrderApplicationService.update(executeOrderDO));
|
||||
}else {
|
||||
return toAjax(executeOrderApplicationService.insert(executeOrderDO));
|
||||
Long executeOrderId = executeOrderApplicationService.insert(executeOrderDO);
|
||||
return executeOrderId != null ? success() : error();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.mhd.oms.domain.businessDocumentCargoInfo.repository.BusinessDocumentCargoInfoMapper">
|
||||
|
||||
<insert id="insertBatch"></insert>
|
||||
</mapper>
|
||||
+2
-1
@@ -194,7 +194,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
and CREATE_TIME >= #{createStartTime}
|
||||
</if>
|
||||
<if test="createEndTime != null">
|
||||
and CREATE_TIME <= DATE_ADD(#{createEndTime}, INTERVAL 1 DAY - 1 SECOND)
|
||||
and CREATE_TIME <= #{createEndTime} + 1 - 1/86400
|
||||
</if>
|
||||
|
||||
<!-- <if test="updateTime != null ">-->
|
||||
@@ -669,6 +669,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<select id="queryList" parameterType="com.mhd.oms.domain.businessDocumentOrder.repository.todo.BusinessDocumentOrderDO" resultMap="BusinessDocumentOrderResult">
|
||||
<include refid="selectBusinessDocumentOrderPo"/>
|
||||
<include refid="selectBusinessDocumentOrderPo1"/>
|
||||
order by create_time desc
|
||||
</select>
|
||||
<select id="selectByMakerCodeNc" parameterType="java.lang.String" resultType="java.lang.String">
|
||||
select DOCUMENT_PREPARER_NC_code from NGWL_TEST_USER."USER" where USER_ID = #{salesmanCodeNc}</select>
|
||||
|
||||
@@ -25,38 +25,50 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
|
||||
|
||||
<sql id="selectExecuteOrderPo">
|
||||
select ID, REAL_CREATE_BY, REAL_CREATE_NAME, CREATE_BY, CREATE_COMPANY_ID, CREATE_TIME, UPDATE_BY, UPDATE_TIME, DEL_FLAG, GOODS_NUMBER, ORG_NAME, ORGANIZATION_ID, BUSINESS_DOCUMENT_ID, BUSINESS_DOCUMENT_NUMBER, ORGANIZATION_NAME, TOP_ORGANIZATION_ID from execute_order
|
||||
select * from execute_order
|
||||
</sql>
|
||||
|
||||
<sql id="selectExecuteOrderPo1">
|
||||
<where>
|
||||
<if test="id != null ">
|
||||
and ID = #{id}
|
||||
</if>
|
||||
<if test="realCreateBy != null and realCreateBy != ''">
|
||||
and REAL_CREATE_BY = #{realCreateBy}
|
||||
</if>
|
||||
<if test="realCreateName != null and realCreateName != ''">
|
||||
and REAL_CREATE_NAME like concat('%', #{realCreateName}, '%')
|
||||
</if>
|
||||
<if test="createBy != null and createBy != ''">
|
||||
and CREATE_BY = #{createBy}
|
||||
</if>
|
||||
<if test="createCompanyId != null and createCompanyId != ''">
|
||||
and CREATE_COMPANY_ID = #{createCompanyId}
|
||||
</if>
|
||||
<if test="createTime != null ">
|
||||
and CREATE_TIME = #{createTime}
|
||||
</if>
|
||||
<if test="updateBy != null and updateBy != ''">
|
||||
and UPDATE_BY = #{updateBy}
|
||||
</if>
|
||||
<if test="updateTime != null ">
|
||||
and UPDATE_TIME = #{updateTime}
|
||||
</if>
|
||||
<if test="delFlag != null ">
|
||||
and DEL_FLAG = #{delFlag}
|
||||
</if>
|
||||
<!-- <if test="id != null ">-->
|
||||
<!-- and ID = #{id}-->
|
||||
<!-- </if>-->
|
||||
<!-- <if test="realCreateBy != null and realCreateBy != ''">-->
|
||||
<!-- and REAL_CREATE_BY = #{realCreateBy}-->
|
||||
<!-- </if>-->
|
||||
<!-- <if test="realCreateName != null and realCreateName != ''">-->
|
||||
<!-- and REAL_CREATE_NAME like concat('%', #{realCreateName}, '%')-->
|
||||
<!-- </if>-->
|
||||
<!-- <if test="createBy != null and createBy != ''">-->
|
||||
<!-- and CREATE_BY = #{createBy}-->
|
||||
<!-- </if>-->
|
||||
<!-- <if test="createCompanyId != null and createCompanyId != ''">-->
|
||||
<!-- and CREATE_COMPANY_ID = #{createCompanyId}-->
|
||||
<!-- </if>-->
|
||||
<!-- <if test="createTime != null ">-->
|
||||
<!-- and CREATE_TIME = #{createTime}-->
|
||||
<!-- </if>-->
|
||||
<!-- <if test="updateBy != null and updateBy != ''">-->
|
||||
<!-- and UPDATE_BY = #{updateBy}-->
|
||||
<!-- </if>-->
|
||||
<!-- <if test="updateTime != null ">-->
|
||||
<!-- and UPDATE_TIME = #{updateTime}-->
|
||||
<!-- </if>-->
|
||||
<!-- <if test="delFlag != null ">-->
|
||||
<!-- and DEL_FLAG = #{delFlag}-->
|
||||
<!-- </if>-->
|
||||
<if test="createStartTime != null">
|
||||
and CREATE_TIME >= #{createStartTime}
|
||||
</if>
|
||||
<if test="createEndTime != null">
|
||||
and CREATE_TIME <= #{createEndTime} + 1 - 1/86400
|
||||
</if>
|
||||
<if test="issueStartTime != null">
|
||||
and ISSUE_TIME >= #{issueStartTime}
|
||||
</if>
|
||||
<if test="issueEndTime != null">
|
||||
and ISSUE_TIME <= #{issueEndTime} + 1 - 1/86400
|
||||
</if>
|
||||
<if test="goodsNumber != null and goodsNumber != ''">
|
||||
and GOODS_NUMBER = #{goodsNumber}
|
||||
</if>
|
||||
@@ -84,5 +96,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<select id="queryList" parameterType="com.mhd.oms.domain.executeOrder.repository.todo.ExecuteOrderDO" resultMap="ExecuteOrderResult">
|
||||
<include refid="selectExecuteOrderPo"/>
|
||||
<include refid="selectExecuteOrderPo1"/>
|
||||
order by CREATE_TIME desc
|
||||
</select>
|
||||
</mapper>
|
||||
+219
-6
@@ -1372,8 +1372,8 @@ public class StockReceiptOrderApplicationService {
|
||||
* @return Boolean
|
||||
*/
|
||||
public Boolean receivingGoods(StockReceiptOrderDO stockReceiptOrderDO){
|
||||
//收货装配参数
|
||||
StockReceiptOrderDO assembleStockReceiptOrderDO = assembleParamByReceipt(stockReceiptOrderDO);
|
||||
//收货装配参数(PC:页面全量覆盖累计已收与费用,不与历史累加)
|
||||
StockReceiptOrderDO assembleStockReceiptOrderDO = assembleParamByReceipt(stockReceiptOrderDO, true);
|
||||
assembleStockReceiptOrderDO.setFromPda(false); // PC收货完成,上架单是否下发=否
|
||||
return stockReceiptOrderDomainService.receivingGoods(assembleStockReceiptOrderDO);
|
||||
}
|
||||
@@ -1400,7 +1400,7 @@ public class StockReceiptOrderApplicationService {
|
||||
// 主项子项结构:将 children 第一条(parent_copy)赋值给主项并删除
|
||||
assignFirstChildToParentAndRemove(stockReceiptOrderDO);
|
||||
}
|
||||
StockReceiptOrderDO assembleStockReceiptOrderDO = assembleParamByReceipt(stockReceiptOrderDO);
|
||||
StockReceiptOrderDO assembleStockReceiptOrderDO = assembleParamByReceipt(stockReceiptOrderDO, false);
|
||||
if (CollectionUtils.isEmpty(assembleStockReceiptOrderDO.getMaterialDetailList())) {
|
||||
throw new ServiceException("无有效收货数据,请确认已填写收货数量(收货数量不能全部为0)");
|
||||
}
|
||||
@@ -1698,14 +1698,212 @@ public class StockReceiptOrderApplicationService {
|
||||
return totalField;
|
||||
}
|
||||
|
||||
/**
|
||||
* PC 收货确认:页面提交为「当前全量实绩」,直接取 receipt* / total* 落库,不与历史累计做差或相加。
|
||||
*/
|
||||
private static BigDecimal pickAbsoluteMetricFromPage(BigDecimal receiptField, BigDecimal totalField) {
|
||||
if (receiptField != null) {
|
||||
return receiptField;
|
||||
}
|
||||
if (totalField != null) {
|
||||
return totalField;
|
||||
}
|
||||
return BigDecimal.ZERO;
|
||||
}
|
||||
|
||||
/**
|
||||
* PC 收货:按页面全量覆盖累计已收(主行、子行毛净重体面积件数)。
|
||||
*/
|
||||
private void appendReceiptLinePcFullPageOverwrite(
|
||||
ReceiptMaterialDetailDO receiptMaterialDetailDO,
|
||||
ReceiptMaterialDetailPO receiptMaterialDetailPO,
|
||||
Map<Long, ReceiptMaterialDetailPO> receiptMaterialDetailDbMap,
|
||||
Map<Long, ReceiptMaterialDetailPO> receiptMaterialDetailDbMapByUniqueId,
|
||||
List<ReceiptMaterialDetailDO> returnReceiptMaterialDetailDOList,
|
||||
BigDecimal[] wholeOrderReceiptQtySumHolder,
|
||||
int[] materialKindsCompleteHolder) {
|
||||
BigDecimal receiptQuantity = receiptMaterialDetailDO.getReceiptQuantity();
|
||||
if (receiptQuantity == null) {
|
||||
receiptQuantity = BigDecimal.ZERO;
|
||||
}
|
||||
List<ReceiptMaterialDetailDO> children = receiptMaterialDetailDO.getChildren();
|
||||
BigDecimal childrenTotalQuantity = BigDecimal.ZERO;
|
||||
if (!CollectionUtils.isEmpty(children)) {
|
||||
childrenTotalQuantity = children.stream()
|
||||
.map(ReceiptMaterialDetailDO::getReceiptQuantity)
|
||||
.filter(Objects::nonNull)
|
||||
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
}
|
||||
boolean hasReceiptByMetrics = pickAbsoluteMetricFromPage(receiptMaterialDetailDO.getReceiptNetWeight(), receiptMaterialDetailDO.getTotalNetWeight()).compareTo(BigDecimal.ZERO) > 0
|
||||
|| pickAbsoluteMetricFromPage(receiptMaterialDetailDO.getReceiptGrossWeight(), receiptMaterialDetailDO.getTotalGrossWeight()).compareTo(BigDecimal.ZERO) > 0;
|
||||
if (!hasReceiptByMetrics && !CollectionUtils.isEmpty(children)) {
|
||||
for (ReceiptMaterialDetailDO c : children) {
|
||||
if (c == null) {
|
||||
continue;
|
||||
}
|
||||
if (pickAbsoluteMetricFromPage(c.getReceiptNetWeight(), c.getTotalNetWeight()).compareTo(BigDecimal.ZERO) > 0
|
||||
|| pickAbsoluteMetricFromPage(c.getReceiptGrossWeight(), c.getTotalGrossWeight()).compareTo(BigDecimal.ZERO) > 0) {
|
||||
hasReceiptByMetrics = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
boolean hasReceipt = receiptQuantity.compareTo(BigDecimal.ZERO) > 0 || childrenTotalQuantity.compareTo(BigDecimal.ZERO) > 0
|
||||
|| hasReceiptByMetrics;
|
||||
List<ReceiptMaterialDetailDO> returnReceiptMaterialDetailDOChildList = new ArrayList<>();
|
||||
BigDecimal planQty = receiptMaterialDetailPO.getQuantity() != null ? receiptMaterialDetailPO.getQuantity() : BigDecimal.ZERO;
|
||||
|
||||
if (hasReceipt) {
|
||||
BigDecimal poReceiptQty = receiptMaterialDetailPO.getReceiptQuantity() != null
|
||||
? receiptMaterialDetailPO.getReceiptQuantity() : BigDecimal.ZERO;
|
||||
if (poReceiptQty.compareTo(BigDecimal.ZERO) == 0) {
|
||||
receiptMaterialDetailDO.setAllowModify(2);
|
||||
setMaterialMoreDetailInfo(receiptMaterialDetailDO);
|
||||
}
|
||||
List<ReceiptMaterialDetailDO> receiptMaterialDetailDOChildList = receiptMaterialDetailDO.getChildren();
|
||||
if (!CollectionUtils.isEmpty(receiptMaterialDetailDOChildList)) {
|
||||
for (ReceiptMaterialDetailDO receiptMaterialDetailDOChild : receiptMaterialDetailDOChildList) {
|
||||
ReceiptMaterialDetailPO receiptMaterialDetailPOChildDb = receiptMaterialDetailDbMap.get(receiptMaterialDetailDOChild.getMaterialDetailId());
|
||||
if (receiptMaterialDetailPOChildDb == null && receiptMaterialDetailDOChild.getUniqueId() != null) {
|
||||
receiptMaterialDetailPOChildDb = receiptMaterialDetailDbMapByUniqueId.get(receiptMaterialDetailDOChild.getUniqueId());
|
||||
}
|
||||
BigDecimal childQty = receiptMaterialDetailDOChild.getReceiptQuantity() != null ? receiptMaterialDetailDOChild.getReceiptQuantity() : BigDecimal.ZERO;
|
||||
BigDecimal childGross = pickAbsoluteMetricFromPage(receiptMaterialDetailDOChild.getReceiptGrossWeight(), receiptMaterialDetailDOChild.getTotalGrossWeight());
|
||||
BigDecimal childNet = pickAbsoluteMetricFromPage(receiptMaterialDetailDOChild.getReceiptNetWeight(), receiptMaterialDetailDOChild.getTotalNetWeight());
|
||||
BigDecimal childVol = pickAbsoluteMetricFromPage(receiptMaterialDetailDOChild.getReceiptVolume(), receiptMaterialDetailDOChild.getTotalVolume());
|
||||
BigDecimal childArea = pickAbsoluteMetricFromPage(receiptMaterialDetailDOChild.getReceiptArea(), receiptMaterialDetailDOChild.getTotalArea());
|
||||
if (childQty.compareTo(BigDecimal.ZERO) == 0 && childNet.compareTo(BigDecimal.ZERO) > 0) {
|
||||
childQty = childNet;
|
||||
}
|
||||
if (childQty.compareTo(BigDecimal.ZERO) == 0 && childGross.compareTo(BigDecimal.ZERO) > 0) {
|
||||
childQty = childGross;
|
||||
}
|
||||
ReceiptMaterialDetailDO returnReceiptMaterialDetailDOChild = new ReceiptMaterialDetailDO();
|
||||
if (receiptMaterialDetailPOChildDb != null) {
|
||||
BeanUtils.copyProperties(receiptMaterialDetailPOChildDb, returnReceiptMaterialDetailDOChild);
|
||||
BeanUtils.copyProperties(receiptMaterialDetailDOChild, returnReceiptMaterialDetailDOChild, IgnoreNullUtil.getNullPropertyNames(receiptMaterialDetailDOChild));
|
||||
returnReceiptMaterialDetailDOChild.setAlreadyReceiptQuantity(childQty);
|
||||
returnReceiptMaterialDetailDOChild.setAlreadyReceiptGrossWeight(childGross);
|
||||
returnReceiptMaterialDetailDOChild.setAlreadyReceiptNetWeight(childNet);
|
||||
returnReceiptMaterialDetailDOChild.setAlreadyReceiptVolume(childVol);
|
||||
returnReceiptMaterialDetailDOChild.setAlreadyReceiptArea(childArea);
|
||||
returnReceiptMaterialDetailDOChild.setAllowModify(2);
|
||||
returnReceiptMaterialDetailDOChild.setLevel(2);
|
||||
returnReceiptMaterialDetailDOChild.setParentUniqueId(receiptMaterialDetailPO.getUniqueId());
|
||||
setMaterialMoreDetailInfo(returnReceiptMaterialDetailDOChild);
|
||||
} else {
|
||||
BeanUtils.copyProperties(receiptMaterialDetailPO, returnReceiptMaterialDetailDOChild, "materialDetailId", "createBy", "createByName", "createTime",
|
||||
"updateBy", "updateByName", "updateTime");
|
||||
BeanUtils.copyProperties(receiptMaterialDetailDOChild, returnReceiptMaterialDetailDOChild, IgnoreNullUtil.getNullPropertyNames(receiptMaterialDetailDOChild));
|
||||
if (ObjectUtil.isNotNull(returnReceiptMaterialDetailDOChild.getMaterialDetailId()) && returnReceiptMaterialDetailDOChild.getMaterialDetailId() == 0) {
|
||||
returnReceiptMaterialDetailDOChild.setMaterialDetailId(null);
|
||||
}
|
||||
returnReceiptMaterialDetailDOChild.setAllowModify(2);
|
||||
returnReceiptMaterialDetailDOChild.setUniqueId(idGenerator.snowflakeId(SnowFlakeConstants.wmsId));
|
||||
returnReceiptMaterialDetailDOChild.setLevel(2);
|
||||
returnReceiptMaterialDetailDOChild.setParentUniqueId(receiptMaterialDetailPO.getUniqueId());
|
||||
setMaterialMoreDetailInfo(returnReceiptMaterialDetailDOChild);
|
||||
returnReceiptMaterialDetailDOChild.setAlreadyReceiptGrossWeight(childGross);
|
||||
returnReceiptMaterialDetailDOChild.setAlreadyReceiptNetWeight(childNet);
|
||||
returnReceiptMaterialDetailDOChild.setAlreadyReceiptVolume(childVol);
|
||||
returnReceiptMaterialDetailDOChild.setAlreadyReceiptArea(childArea);
|
||||
returnReceiptMaterialDetailDOChild.setAlreadyReceiptQuantity(childQty);
|
||||
}
|
||||
returnReceiptMaterialDetailDOChild.setTotalNetWeight(returnReceiptMaterialDetailDOChild.getAlreadyReceiptNetWeight());
|
||||
returnReceiptMaterialDetailDOChild.setTotalGrossWeight(returnReceiptMaterialDetailDOChild.getAlreadyReceiptGrossWeight());
|
||||
returnReceiptMaterialDetailDOChild.setTotalVolume(returnReceiptMaterialDetailDOChild.getAlreadyReceiptVolume());
|
||||
returnReceiptMaterialDetailDOChild.setTotalArea(returnReceiptMaterialDetailDOChild.getAlreadyReceiptArea());
|
||||
if (receiptMaterialDetailPO.getSerialNumberManage() == 1) {
|
||||
if (CollectionUtils.isEmpty(receiptMaterialDetailDOChild.getMaterialDetailSerialNumberList())) {
|
||||
throw new ServiceException("物料【" + receiptMaterialDetailPO.getMaterialName() + "】开启了序列号管理的序列号不能为空");
|
||||
}
|
||||
}
|
||||
returnReceiptMaterialDetailDOChild.setMaterialDetailSerialNumberList(receiptMaterialDetailDOChild.getMaterialDetailSerialNumberList());
|
||||
returnReceiptMaterialDetailDOChild.setMaterialMoreDetailList(receiptMaterialDetailDOChild.getMaterialMoreDetailList());
|
||||
if (returnReceiptMaterialDetailDOChild.getAlreadyReceiptQuantity() != null) {
|
||||
returnReceiptMaterialDetailDOChild.setReceiptQuantity(returnReceiptMaterialDetailDOChild.getAlreadyReceiptQuantity());
|
||||
}
|
||||
returnReceiptMaterialDetailDOChild.setQuantity(null);
|
||||
returnReceiptMaterialDetailDOChildList.add(returnReceiptMaterialDetailDOChild);
|
||||
}
|
||||
}
|
||||
BigDecimal mainItemActualQuantity = receiptQuantity;
|
||||
BigDecimal parentReceiptGross = pickAbsoluteMetricFromPage(receiptMaterialDetailDO.getReceiptGrossWeight(), receiptMaterialDetailDO.getTotalGrossWeight());
|
||||
BigDecimal parentReceiptNet = pickAbsoluteMetricFromPage(receiptMaterialDetailDO.getReceiptNetWeight(), receiptMaterialDetailDO.getTotalNetWeight());
|
||||
BigDecimal parentReceiptVol = pickAbsoluteMetricFromPage(receiptMaterialDetailDO.getReceiptVolume(), receiptMaterialDetailDO.getTotalVolume());
|
||||
BigDecimal parentReceiptArea = pickAbsoluteMetricFromPage(receiptMaterialDetailDO.getReceiptArea(), receiptMaterialDetailDO.getTotalArea());
|
||||
receiptMaterialDetailDO.setAlreadyReceiptQuantity(mainItemActualQuantity);
|
||||
receiptMaterialDetailDO.setAlreadyReceiptGrossWeight(parentReceiptGross);
|
||||
receiptMaterialDetailDO.setAlreadyReceiptNetWeight(parentReceiptNet);
|
||||
receiptMaterialDetailDO.setAlreadyReceiptVolume(parentReceiptVol);
|
||||
receiptMaterialDetailDO.setAlreadyReceiptArea(parentReceiptArea);
|
||||
receiptMaterialDetailDO.setTotalNetWeight(receiptMaterialDetailDO.getAlreadyReceiptNetWeight());
|
||||
receiptMaterialDetailDO.setTotalGrossWeight(receiptMaterialDetailDO.getAlreadyReceiptGrossWeight());
|
||||
receiptMaterialDetailDO.setTotalVolume(receiptMaterialDetailDO.getAlreadyReceiptVolume());
|
||||
receiptMaterialDetailDO.setTotalArea(receiptMaterialDetailDO.getAlreadyReceiptArea());
|
||||
BigDecimal groupReceived = receiptMaterialDetailDO.getAlreadyReceiptQuantity() != null
|
||||
? receiptMaterialDetailDO.getAlreadyReceiptQuantity() : BigDecimal.ZERO;
|
||||
if (!CollectionUtils.isEmpty(returnReceiptMaterialDetailDOChildList)) {
|
||||
for (ReceiptMaterialDetailDO ch : returnReceiptMaterialDetailDOChildList) {
|
||||
BigDecimal ca = ch.getAlreadyReceiptQuantity() != null ? ch.getAlreadyReceiptQuantity() : BigDecimal.ZERO;
|
||||
groupReceived = groupReceived.add(ca);
|
||||
}
|
||||
}
|
||||
Integer receiptStatus = judgeReceiptQuantity(groupReceived, planQty);
|
||||
receiptMaterialDetailDO.setReceiptStatus(receiptStatus);
|
||||
if (!CollectionUtils.isEmpty(returnReceiptMaterialDetailDOChildList)) {
|
||||
for (ReceiptMaterialDetailDO ch : returnReceiptMaterialDetailDOChildList) {
|
||||
ch.setReceiptStatus(receiptStatus);
|
||||
}
|
||||
}
|
||||
wholeOrderReceiptQtySumHolder[0] = wholeOrderReceiptQtySumHolder[0].add(groupReceived);
|
||||
if (receiptStatus > 2) {
|
||||
materialKindsCompleteHolder[0] = materialKindsCompleteHolder[0] + 1;
|
||||
}
|
||||
} else {
|
||||
receiptMaterialDetailDO.setAlreadyReceiptQuantity(BigDecimal.ZERO);
|
||||
receiptMaterialDetailDO.setAlreadyReceiptGrossWeight(BigDecimal.ZERO);
|
||||
receiptMaterialDetailDO.setAlreadyReceiptNetWeight(BigDecimal.ZERO);
|
||||
receiptMaterialDetailDO.setAlreadyReceiptVolume(BigDecimal.ZERO);
|
||||
receiptMaterialDetailDO.setAlreadyReceiptArea(BigDecimal.ZERO);
|
||||
receiptMaterialDetailDO.setReceiptStatus(judgeReceiptQuantity(BigDecimal.ZERO, planQty));
|
||||
}
|
||||
ReceiptMaterialDetailDO returnReceiptMaterialDetailDO = new ReceiptMaterialDetailDO();
|
||||
BeanUtils.copyProperties(receiptMaterialDetailPO, returnReceiptMaterialDetailDO);
|
||||
BeanUtils.copyProperties(receiptMaterialDetailDO, returnReceiptMaterialDetailDO, IgnoreNullUtil.getNullPropertyNames(receiptMaterialDetailDO));
|
||||
returnReceiptMaterialDetailDO.setTotalNetWeight(receiptMaterialDetailDO.getTotalNetWeight());
|
||||
returnReceiptMaterialDetailDO.setTotalGrossWeight(receiptMaterialDetailDO.getTotalGrossWeight());
|
||||
returnReceiptMaterialDetailDO.setTotalVolume(receiptMaterialDetailDO.getTotalVolume());
|
||||
returnReceiptMaterialDetailDO.setTotalArea(receiptMaterialDetailDO.getTotalArea());
|
||||
BigDecimal parentRetAlreadyQty = receiptMaterialDetailDO.getAlreadyReceiptQuantity() != null
|
||||
? receiptMaterialDetailDO.getAlreadyReceiptQuantity() : BigDecimal.ZERO;
|
||||
returnReceiptMaterialDetailDO.setAlreadyReceiptQuantity(parentRetAlreadyQty);
|
||||
returnReceiptMaterialDetailDO.setReceiptQuantity(parentRetAlreadyQty);
|
||||
if (receiptMaterialDetailPO.getReceiptStatus() == 1) {
|
||||
if (receiptMaterialDetailPO.getSerialNumberManage() == 1) {
|
||||
if (CollectionUtils.isEmpty(receiptMaterialDetailDO.getMaterialDetailSerialNumberList())) {
|
||||
throw new ServiceException("物料【" + receiptMaterialDetailPO.getMaterialName() + "】开启了序列号管理的序列号不能为空");
|
||||
}
|
||||
}
|
||||
returnReceiptMaterialDetailDO.setMaterialDetailSerialNumberList(receiptMaterialDetailDO.getMaterialDetailSerialNumberList());
|
||||
returnReceiptMaterialDetailDO.setMaterialMoreDetailList(receiptMaterialDetailDO.getMaterialMoreDetailList());
|
||||
} else {
|
||||
returnReceiptMaterialDetailDO.setMaterialDetailSerialNumberList(new ArrayList<>());
|
||||
returnReceiptMaterialDetailDO.setMaterialMoreDetailList(new ArrayList<>());
|
||||
}
|
||||
returnReceiptMaterialDetailDO.setChildren(returnReceiptMaterialDetailDOChildList);
|
||||
returnReceiptMaterialDetailDOList.add(returnReceiptMaterialDetailDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 收货装配参数
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/22 9:27
|
||||
* @param stockReceiptOrderDO
|
||||
* @param pcFullPageOverwrite PC 收货确认 true=页面全量覆盖累计已收(不累加历史)
|
||||
* @return Boolean
|
||||
*/
|
||||
private StockReceiptOrderDO assembleParamByReceipt(StockReceiptOrderDO stockReceiptOrderDO) {
|
||||
private StockReceiptOrderDO assembleParamByReceipt(StockReceiptOrderDO stockReceiptOrderDO, boolean pcFullPageOverwrite) {
|
||||
StockReceiptOrderPO stockReceiptOrderPO = stockReceiptOrderDomainService.getInfo(stockReceiptOrderDO.getReceiptOrderId());
|
||||
if (stockReceiptOrderPO == null){
|
||||
throw new ServiceException("收货单不存在");
|
||||
@@ -1734,6 +1932,8 @@ public class StockReceiptOrderApplicationService {
|
||||
.collect(Collectors.toMap(ReceiptMaterialDetailPO::getUniqueId, Function.identity()));
|
||||
BigDecimal totalActualQuantity = BigDecimal.ZERO;//收货单当前作业收货数
|
||||
int totalActualReceiptMaterialQuantity = 0;//收货单收货物料种数
|
||||
BigDecimal[] wholeOrderReceiptQtySumHolder = new BigDecimal[]{BigDecimal.ZERO};
|
||||
int[] materialKindsCompleteHolder = new int[]{0};
|
||||
List<ReceiptMaterialDetailDO> returnReceiptMaterialDetailDOList = new ArrayList<>();
|
||||
for (ReceiptMaterialDetailDO receiptMaterialDetailDO : stockReceiptOrderDO.getMaterialDetailList()){
|
||||
//设置物料更多属性信息:优先用 materialDetailId 查找,若为空则用 uniqueId 查找(兼容 PDA 只传 uniqueId 的场景)
|
||||
@@ -1747,6 +1947,11 @@ public class StockReceiptOrderApplicationService {
|
||||
if (receiptMaterialDetailPO == null){
|
||||
throw new ServiceException("物料明细不存在");
|
||||
}
|
||||
if (pcFullPageOverwrite) {
|
||||
appendReceiptLinePcFullPageOverwrite(receiptMaterialDetailDO, receiptMaterialDetailPO, receiptMaterialDetailDbMap,
|
||||
receiptMaterialDetailDbMapByUniqueId, returnReceiptMaterialDetailDOList, wholeOrderReceiptQtySumHolder, materialKindsCompleteHolder);
|
||||
continue;
|
||||
}
|
||||
// receiptQuantity 空值保护,PDA 未传时按 0 处理
|
||||
BigDecimal receiptQuantity = receiptMaterialDetailDO.getReceiptQuantity();
|
||||
if (receiptQuantity == null) {
|
||||
@@ -1999,8 +2204,16 @@ public class StockReceiptOrderApplicationService {
|
||||
returnReceiptMaterialDetailDOList.add(returnReceiptMaterialDetailDO);
|
||||
}
|
||||
returnStockReceiptOrderDO.setMaterialDetailList(returnReceiptMaterialDetailDOList);
|
||||
returnStockReceiptOrderDO.setActualQuantity(totalActualQuantity);
|
||||
returnStockReceiptOrderDO.setActualReceiptMaterialQuantity(totalActualReceiptMaterialQuantity);
|
||||
if (pcFullPageOverwrite) {
|
||||
returnStockReceiptOrderDO.setReceiptSubmitOverwriteFromPage(true);
|
||||
returnStockReceiptOrderDO.setReceiptQuantity(wholeOrderReceiptQtySumHolder[0]);
|
||||
returnStockReceiptOrderDO.setReceiptMaterialQuantity(materialKindsCompleteHolder[0]);
|
||||
returnStockReceiptOrderDO.setActualQuantity(BigDecimal.ZERO);
|
||||
returnStockReceiptOrderDO.setActualReceiptMaterialQuantity(0);
|
||||
} else {
|
||||
returnStockReceiptOrderDO.setActualQuantity(totalActualQuantity);
|
||||
returnStockReceiptOrderDO.setActualReceiptMaterialQuantity(totalActualReceiptMaterialQuantity);
|
||||
}
|
||||
return returnStockReceiptOrderDO;
|
||||
}
|
||||
|
||||
|
||||
+17
-11
@@ -155,6 +155,13 @@ public class StockInOrderDomainService {
|
||||
if (stockInOrderPO == null){
|
||||
throw new ServiceException("入库单信息不存在");
|
||||
}
|
||||
if (!CollectionUtils.isEmpty(stockInOrderDO.getMaterialDetailList())) {
|
||||
stockInOrderDO.getMaterialDetailList().forEach(detail -> {
|
||||
if (detail.getInboundQuantity() != null) {
|
||||
detail.setQuantity(detail.getInboundQuantity());
|
||||
}
|
||||
});
|
||||
}
|
||||
//设置物料信息
|
||||
setMaterialDetailInfo(stockInOrderDO);
|
||||
//统计总物料种数
|
||||
@@ -568,19 +575,18 @@ public class StockInOrderDomainService {
|
||||
inMaterialDetailDO.setWeightLimit(packDetailFeignPO.getWeight());
|
||||
inMaterialDetailDO.setVolumeLimit(packDetailFeignPO.getVolume());
|
||||
|
||||
//获取仓库控制信息
|
||||
// 仓库控制信息:有则回填,无则不校验(允许未维护物料-仓库控制时编辑入库单)
|
||||
MaterialWarehouseControlPO materialWarehouseControlPO = materialWarehouseControlService.getInfoByMaterialBaseInfoIds(materialBaseInfoPO.getMaterialBaseInfoId());
|
||||
if (materialWarehouseControlPO == null){
|
||||
throw new ServiceException("物料仓库控制信息不存在");
|
||||
if (materialWarehouseControlPO != null) {
|
||||
inMaterialDetailDO.setMaterialWarehouseControlId(materialWarehouseControlPO.getMaterialWarehouseControlId());
|
||||
inMaterialDetailDO.setSerialNumberManage(materialWarehouseControlPO.getSerialNumberManage());
|
||||
inMaterialDetailDO.setQualityInspectionManage(materialWarehouseControlPO.getQualityInspectionManage());
|
||||
inMaterialDetailDO.setQualityInspectionStage(materialWarehouseControlPO.getQualityInspectionStage());
|
||||
inMaterialDetailDO.setQualityInspectionRule(materialWarehouseControlPO.getQualityInspectionRule());
|
||||
inMaterialDetailDO.setQualityInspectionTerm(materialWarehouseControlPO.getQualityInspectionTerm());
|
||||
inMaterialDetailDO.setAllowOvercharge(materialWarehouseControlPO.getAllowOvercharge());
|
||||
inMaterialDetailDO.setOverchargeRatio(materialWarehouseControlPO.getOverchargeRatio());
|
||||
}
|
||||
inMaterialDetailDO.setMaterialWarehouseControlId(materialWarehouseControlPO.getMaterialWarehouseControlId());
|
||||
inMaterialDetailDO.setSerialNumberManage(materialWarehouseControlPO.getSerialNumberManage());
|
||||
inMaterialDetailDO.setQualityInspectionManage(materialWarehouseControlPO.getQualityInspectionManage());
|
||||
inMaterialDetailDO.setQualityInspectionStage(materialWarehouseControlPO.getQualityInspectionStage());
|
||||
inMaterialDetailDO.setQualityInspectionRule(materialWarehouseControlPO.getQualityInspectionRule());
|
||||
inMaterialDetailDO.setQualityInspectionTerm(materialWarehouseControlPO.getQualityInspectionTerm());
|
||||
inMaterialDetailDO.setAllowOvercharge(materialWarehouseControlPO.getAllowOvercharge());
|
||||
inMaterialDetailDO.setOverchargeRatio(materialWarehouseControlPO.getOverchargeRatio());
|
||||
|
||||
//获取商品规则信息
|
||||
MaterialGoodsRulePO materialGoodsRulePO = materialGoodsRuleService.getInfoByMaterialBaseInfoIds(materialBaseInfoPO.getMaterialBaseInfoId());
|
||||
|
||||
+7
@@ -170,6 +170,13 @@ public class StockReceiptOrderDO extends StockInOrderBaseDO {
|
||||
|
||||
@ApiModelProperty("是否来自PDA收货:true-PDA收货完成,false-PC收货完成(用于上架单是否下发:PDA=是,PC=否)")
|
||||
private Boolean fromPda;
|
||||
|
||||
/**
|
||||
* PC 收货确认:以页面提交数据为全量实绩覆盖落库(由 Application 层根据入口设置,非前端传入)
|
||||
*/
|
||||
@ApiModelProperty(hidden = true)
|
||||
private Boolean receiptSubmitOverwriteFromPage;
|
||||
|
||||
@ApiModelProperty("费用")
|
||||
List<ReceiptOrderAccount> receiptOrderAccountList;
|
||||
}
|
||||
+20
-7
@@ -429,12 +429,14 @@ public class StockReceiptOrderDomainService {
|
||||
|
||||
private void saveAmount(StockReceiptOrderDO stockReceiptOrderDO) {
|
||||
Long receiptOrderId = stockReceiptOrderDO.getReceiptOrderId();
|
||||
List<ReceiptOrderAccount> receiptOrderAccountList = stockReceiptOrderDO.getReceiptOrderAccountList();
|
||||
for (ReceiptOrderAccount receiptOrderAccount : receiptOrderAccountList) {
|
||||
receiptOrderAccount.setOrderId(receiptOrderId);
|
||||
}
|
||||
receiptOrderAccountService.remove(new QueryWrapper<ReceiptOrderAccount>().lambda().eq(ReceiptOrderAccount::getOrderId, receiptOrderId));
|
||||
receiptOrderAccountService.saveBatch(receiptOrderAccountList);
|
||||
List<ReceiptOrderAccount> receiptOrderAccountList = stockReceiptOrderDO.getReceiptOrderAccountList();
|
||||
if (receiptOrderAccountList != null && !receiptOrderAccountList.isEmpty()) {
|
||||
for (ReceiptOrderAccount receiptOrderAccount : receiptOrderAccountList) {
|
||||
receiptOrderAccount.setOrderId(receiptOrderId);
|
||||
}
|
||||
receiptOrderAccountService.saveBatch(receiptOrderAccountList);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -694,8 +696,19 @@ public class StockReceiptOrderDomainService {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
StockReceiptOrder stockReceiptOrder = new StockReceiptOrder();
|
||||
stockReceiptOrder.setReceiptOrderId(stockReceiptOrderPO.getReceiptOrderId());
|
||||
stockReceiptOrder.setReceiptQuantity(stockReceiptOrderPO.getReceiptQuantity().add(stockReceiptOrderDO.getActualQuantity()));
|
||||
stockReceiptOrder.setReceiptMaterialQuantity(stockReceiptOrderPO.getReceiptMaterialQuantity() + stockReceiptOrderDO.getActualReceiptMaterialQuantity());
|
||||
if (Boolean.TRUE.equals(stockReceiptOrderDO.getReceiptSubmitOverwriteFromPage())) {
|
||||
BigDecimal rq = stockReceiptOrderDO.getReceiptQuantity();
|
||||
stockReceiptOrder.setReceiptQuantity(rq != null ? rq : BigDecimal.ZERO);
|
||||
Integer rmq = stockReceiptOrderDO.getReceiptMaterialQuantity();
|
||||
stockReceiptOrder.setReceiptMaterialQuantity(rmq != null ? rmq : 0);
|
||||
} else {
|
||||
BigDecimal prevRq = stockReceiptOrderPO.getReceiptQuantity() != null ? stockReceiptOrderPO.getReceiptQuantity() : BigDecimal.ZERO;
|
||||
BigDecimal addAq = stockReceiptOrderDO.getActualQuantity() != null ? stockReceiptOrderDO.getActualQuantity() : BigDecimal.ZERO;
|
||||
stockReceiptOrder.setReceiptQuantity(prevRq.add(addAq));
|
||||
int prevRmq = stockReceiptOrderPO.getReceiptMaterialQuantity() != null ? stockReceiptOrderPO.getReceiptMaterialQuantity() : 0;
|
||||
int addArm = stockReceiptOrderDO.getActualReceiptMaterialQuantity() != null ? stockReceiptOrderDO.getActualReceiptMaterialQuantity() : 0;
|
||||
stockReceiptOrder.setReceiptMaterialQuantity(prevRmq + addArm);
|
||||
}
|
||||
stockReceiptOrder.setStatus(2);
|
||||
stockReceiptOrder.setUpdateBy(loginUser.getUserid());
|
||||
stockReceiptOrder.setUpdateByName(loginUser.getUsername());
|
||||
|
||||
Reference in New Issue
Block a user