Merge remote-tracking branch 'origin/dev-ty1.2' into dev-ty1.2
This commit is contained in:
+6
@@ -244,4 +244,10 @@ public class MaterialBaseInfoFeign extends BaseVOEntity{
|
|||||||
|
|
||||||
@ApiModelProperty(name = "单位")
|
@ApiModelProperty(name = "单位")
|
||||||
private String unit;
|
private String unit;
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "组织(多个用,分开)")
|
||||||
|
private String orgId;
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "是否正常物料: 0-是 1-否")
|
||||||
|
private Integer isNormalMaterial;
|
||||||
}
|
}
|
||||||
@@ -15,7 +15,7 @@ spring:
|
|||||||
# server-addr: 127.0.0.1:8848
|
# server-addr: 127.0.0.1:8848
|
||||||
# 线上测试环境配置 容器名+端口号
|
# 线上测试环境配置 容器名+端口号
|
||||||
# server-addr: 10.33.0.129:6010
|
# server-addr: 10.33.0.129:6010
|
||||||
server-addr: 10.102.192.31:6848
|
server-addr: 10.102.192.30:6848
|
||||||
username: nacos
|
username: nacos
|
||||||
password: manhuoda@2023
|
password: manhuoda@2023
|
||||||
#线上正式环境
|
#线上正式环境
|
||||||
@@ -24,7 +24,7 @@ spring:
|
|||||||
# password: manhuoda@2023
|
# password: manhuoda@2023
|
||||||
config:
|
config:
|
||||||
# server-addr: 127.0.0.1:8848
|
# server-addr: 127.0.0.1:8848
|
||||||
server-addr: 10.102.192.31:6848
|
server-addr: 10.102.192.30:6848
|
||||||
# 测试环境配置 容器名+端口号
|
# 测试环境配置 容器名+端口号
|
||||||
# server-addr: 10.33.0.129:6010
|
# server-addr: 10.33.0.129:6010
|
||||||
# 线上测试环境配置 容器名+端口号
|
# 线上测试环境配置 容器名+端口号
|
||||||
@@ -52,4 +52,4 @@ sso:
|
|||||||
AwIDAQAB
|
AwIDAQAB
|
||||||
-----END PUBLIC KEY-----
|
-----END PUBLIC KEY-----
|
||||||
# SSO登录成功后跳转的前端页面地址
|
# SSO登录成功后跳转的前端页面地址
|
||||||
redirect-url: "https://diglog.namkwong.com.mo/main_app/sso"
|
redirect-url: "https://diglog.namkwong.com.mo/main_app/sso"
|
||||||
+13
-10
@@ -157,15 +157,18 @@ public class MaterialBaseInfoApplicationService {
|
|||||||
* @param materialBaseInfoDO
|
* @param materialBaseInfoDO
|
||||||
*/
|
*/
|
||||||
private void shipperParam(MaterialBaseInfoDO materialBaseInfoDO){
|
private void shipperParam(MaterialBaseInfoDO materialBaseInfoDO){
|
||||||
AjaxResult ajaxResult = userServiceFeign.getInfo(materialBaseInfoDO.getShipperId());
|
Long shipperId = materialBaseInfoDO.getShipperId();
|
||||||
if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
|
if (shipperId != null && shipperId != 0l) {
|
||||||
throw new ServiceException("获取货主信息失败");
|
AjaxResult ajaxResult = userServiceFeign.getInfo(materialBaseInfoDO.getShipperId());
|
||||||
}
|
if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
|
||||||
UserPo userPo = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), UserPo.class);
|
throw new ServiceException("获取货主信息失败");
|
||||||
// 如果原始shipperName不为空,保留原始值(导入或手动输入时应该保留完整名称)
|
}
|
||||||
// 只有在原始shipperName为空时,才使用查询到的userName
|
UserPo userPo = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), UserPo.class);
|
||||||
if (materialBaseInfoDO.getShipperName() == null || materialBaseInfoDO.getShipperName().trim().isEmpty()) {
|
// 如果原始shipperName不为空,保留原始值(导入或手动输入时应该保留完整名称)
|
||||||
materialBaseInfoDO.setShipperName(userPo.getUserName());
|
// 只有在原始shipperName为空时,才使用查询到的userName
|
||||||
|
if (materialBaseInfoDO.getShipperName() == null || materialBaseInfoDO.getShipperName().trim().isEmpty()) {
|
||||||
|
materialBaseInfoDO.setShipperName(userPo.getUserName());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -182,4 +185,4 @@ public class MaterialBaseInfoApplicationService {
|
|||||||
//return materialBaseInfoDomainService.getMaterialStockList(shipperName,materialName,machineCode,topOrganizationId,pageNum,pageSize);/**/
|
//return materialBaseInfoDomainService.getMaterialStockList(shipperName,materialName,machineCode,topOrganizationId,pageNum,pageSize);/**/
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+9
@@ -1,5 +1,6 @@
|
|||||||
package com.mhd.basic.domain.materialBaseInfo.entity;
|
package com.mhd.basic.domain.materialBaseInfo.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.FieldStrategy;
|
||||||
import com.baomidou.mybatisplus.annotation.IdType;
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
@@ -44,14 +45,17 @@ public class MaterialBaseInfo extends BaseVOEntity{
|
|||||||
|
|
||||||
@ApiModelProperty("货主id")
|
@ApiModelProperty("货主id")
|
||||||
@Excel(name = "货主id")
|
@Excel(name = "货主id")
|
||||||
|
@TableField(updateStrategy = FieldStrategy.IGNORED)
|
||||||
private Long shipperId;
|
private Long shipperId;
|
||||||
|
|
||||||
@ApiModelProperty("货主名称")
|
@ApiModelProperty("货主名称")
|
||||||
@Excel(name = "货主名称")
|
@Excel(name = "货主名称")
|
||||||
|
@TableField(updateStrategy = FieldStrategy.IGNORED)
|
||||||
private String shipperName;
|
private String shipperName;
|
||||||
|
|
||||||
@ApiModelProperty("物料编码")
|
@ApiModelProperty("物料编码")
|
||||||
@Excel(name = "物料编码")
|
@Excel(name = "物料编码")
|
||||||
|
@TableField(updateStrategy = FieldStrategy.IGNORED)
|
||||||
private String materialCode;
|
private String materialCode;
|
||||||
|
|
||||||
@ApiModelProperty("物料名称")
|
@ApiModelProperty("物料名称")
|
||||||
@@ -404,4 +408,9 @@ public class MaterialBaseInfo extends BaseVOEntity{
|
|||||||
@ApiModelProperty(name = "收费标准")
|
@ApiModelProperty(name = "收费标准")
|
||||||
private BigDecimal chargeStandard;
|
private BigDecimal chargeStandard;
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "组织(多个用,分开)")
|
||||||
|
private String orgId;
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "是否正常物料: 0-是 1-否")
|
||||||
|
private Integer isNormalMaterial;
|
||||||
}
|
}
|
||||||
+6
@@ -393,4 +393,10 @@ public class MaterialBaseInfoPO extends BaseVOEntity{
|
|||||||
|
|
||||||
@ApiModelProperty(name = "收费标准")
|
@ApiModelProperty(name = "收费标准")
|
||||||
private BigDecimal chargeStandard;
|
private BigDecimal chargeStandard;
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "组织(多个用,分开)")
|
||||||
|
private String orgId;
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "是否正常物料: 0-是 1-否")
|
||||||
|
private Integer isNormalMaterial;
|
||||||
}
|
}
|
||||||
+6
@@ -399,4 +399,10 @@ public class MaterialBaseInfoDO extends BaseVOEntity{
|
|||||||
|
|
||||||
@ApiModelProperty(name = "收费标准")
|
@ApiModelProperty(name = "收费标准")
|
||||||
private BigDecimal chargeStandard;
|
private BigDecimal chargeStandard;
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "组织(多个用,分开)")
|
||||||
|
private String orgId;
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "是否正常物料: 0-是 1-否")
|
||||||
|
private Integer isNormalMaterial;
|
||||||
}
|
}
|
||||||
+6
@@ -379,4 +379,10 @@ public class MaterialBaseInfoDTO extends BaseVOEntity{
|
|||||||
@ApiModelProperty(name = "收费标准")
|
@ApiModelProperty(name = "收费标准")
|
||||||
private BigDecimal chargeStandard;
|
private BigDecimal chargeStandard;
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "组织(多个用,分开)")
|
||||||
|
private String orgId;
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "是否正常物料: 0-是 1-否")
|
||||||
|
private Integer isNormalMaterial;
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -15,7 +15,6 @@ spring:
|
|||||||
discovery:
|
discovery:
|
||||||
# server-addr: 127.0.0.1:8848
|
# server-addr: 127.0.0.1:8848
|
||||||
# server-addr: 10.33.0.129:6010
|
# server-addr: 10.33.0.129:6010
|
||||||
# 线上测试环境配置 容器名+端口号
|
|
||||||
server-addr: 10.102.192.30:6848
|
server-addr: 10.102.192.30:6848
|
||||||
username: nacos
|
username: nacos
|
||||||
password: manhuoda@2023
|
password: manhuoda@2023
|
||||||
@@ -24,7 +23,6 @@ spring:
|
|||||||
config:
|
config:
|
||||||
# server-addr: 127.0.0.1:8848
|
# server-addr: 127.0.0.1:8848
|
||||||
# server-addr: 10.33.0.129:6010
|
# server-addr: 10.33.0.129:6010
|
||||||
# 线上测试环境配置 容器名+端口号
|
|
||||||
server-addr: 10.102.192.30:6848
|
server-addr: 10.102.192.30:6848
|
||||||
username: nacos
|
username: nacos
|
||||||
password: manhuoda@2023
|
password: manhuoda@2023
|
||||||
|
|||||||
+8
@@ -495,4 +495,12 @@ public class ExecutionInMaterialDetailPO extends ExecutionStockInOrderBasePO {
|
|||||||
//申报总价
|
//申报总价
|
||||||
private BigDecimal amountGw;
|
private BigDecimal amountGw;
|
||||||
private String khdm;
|
private String khdm;
|
||||||
|
|
||||||
|
@ApiModelProperty("保额")
|
||||||
|
@Excel(name = "保额")
|
||||||
|
private BigDecimal insureAmount;
|
||||||
|
|
||||||
|
@ApiModelProperty("货物类型:0-物料 1-半成品 2-成品")
|
||||||
|
@Excel(name = "货物类型")
|
||||||
|
private Integer goodsType;
|
||||||
}
|
}
|
||||||
+5
@@ -3,6 +3,8 @@ package com.mhd.oms.domain.executionInMaterialDetail.repository.po;
|
|||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 入库明细查询结果(关联入库执行单)
|
* 入库明细查询结果(关联入库执行单)
|
||||||
*
|
*
|
||||||
@@ -27,4 +29,7 @@ public class ExecutionInMaterialDetailWithOrderPO extends ExecutionInMaterialDet
|
|||||||
|
|
||||||
@ApiModelProperty("货主名称")
|
@ApiModelProperty("货主名称")
|
||||||
private String orderShipperName;
|
private String orderShipperName;
|
||||||
|
|
||||||
|
@ApiModelProperty("入库日期")
|
||||||
|
private Date warehouseDate;
|
||||||
}
|
}
|
||||||
|
|||||||
+24
-4
@@ -1127,6 +1127,10 @@ public class ReservationStockOutOrderDomainService {
|
|||||||
reservationStockInOrderMapper.updateByTransportationNumber(transportationNumber);
|
reservationStockInOrderMapper.updateByTransportationNumber(transportationNumber);
|
||||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||||
BusinessDeliveryDetailsLink businessDeliveryDetailsLink = businessDeliveryDetailsLinkService.getOne(new QueryWrapper<BusinessDeliveryDetailsLink>().lambda().eq(BusinessDeliveryDetailsLink::getInvoiceNumber, invoiceNumber), false);
|
BusinessDeliveryDetailsLink businessDeliveryDetailsLink = businessDeliveryDetailsLinkService.getOne(new QueryWrapper<BusinessDeliveryDetailsLink>().lambda().eq(BusinessDeliveryDetailsLink::getInvoiceNumber, invoiceNumber), false);
|
||||||
|
List<BusinessDeliveryDetailsLink> businessDeliveryDetailsLinks = businessDeliveryDetailsLinkService.list(new QueryWrapper<BusinessDeliveryDetailsLink>().lambda().eq(BusinessDeliveryDetailsLink::getInvoiceNumber, invoiceNumber));
|
||||||
|
if (businessDeliveryDetailsLinks!=null&&businessDeliveryDetailsLinks.size()>1) {
|
||||||
|
throw new ServiceException("存在发票号重复情况,请检查!");
|
||||||
|
}
|
||||||
if (businessDeliveryDetailsLink != null) {
|
if (businessDeliveryDetailsLink != null) {
|
||||||
businessDeliveryDetailsLink.setIsReturn(1); // 1表示已退货
|
businessDeliveryDetailsLink.setIsReturn(1); // 1表示已退货
|
||||||
businessDeliveryDetailsLink.setUpdateBy(loginUser.getUserPo().getUserId());
|
businessDeliveryDetailsLink.setUpdateBy(loginUser.getUserPo().getUserId());
|
||||||
@@ -1135,6 +1139,9 @@ public class ReservationStockOutOrderDomainService {
|
|||||||
businessDeliveryDetailsLinkService.updateById(businessDeliveryDetailsLink);
|
businessDeliveryDetailsLinkService.updateById(businessDeliveryDetailsLink);
|
||||||
// String invoiceNumber1 = businessDeliveryDetailsLink.getInvoiceNumber();
|
// String invoiceNumber1 = businessDeliveryDetailsLink.getInvoiceNumber();
|
||||||
List<ReservationDeliveryDetailsLink> list = reservationDeliveryDetailsLinkService.list(new QueryWrapper<ReservationDeliveryDetailsLink>().lambda().eq(ReservationDeliveryDetailsLink::getInvoiceNumber, invoiceNumber));
|
List<ReservationDeliveryDetailsLink> list = reservationDeliveryDetailsLinkService.list(new QueryWrapper<ReservationDeliveryDetailsLink>().lambda().eq(ReservationDeliveryDetailsLink::getInvoiceNumber, invoiceNumber));
|
||||||
|
if (list != null && !list.isEmpty() && list.size()>1) {
|
||||||
|
throw new ServiceException("存在发票号重复情况,请检查!");
|
||||||
|
}
|
||||||
if (list != null && !list.isEmpty() && list.size()>0) {
|
if (list != null && !list.isEmpty() && list.size()>0) {
|
||||||
ReservationDeliveryDetailsLink reservationDeliveryDetailsLink = list.get(0);
|
ReservationDeliveryDetailsLink reservationDeliveryDetailsLink = list.get(0);
|
||||||
String orderNumber = reservationDeliveryDetailsLink.getOrderNumber();
|
String orderNumber = reservationDeliveryDetailsLink.getOrderNumber();
|
||||||
@@ -1163,8 +1170,7 @@ public class ReservationStockOutOrderDomainService {
|
|||||||
reservationStockInOrder.setOrderTypeCode("tui_huo_ru_ku");
|
reservationStockInOrder.setOrderTypeCode("tui_huo_ru_ku");
|
||||||
reservationStockInOrder.setBusinessType("tui_huo_ru_ku");
|
reservationStockInOrder.setBusinessType("tui_huo_ru_ku");
|
||||||
reservationStockInOrder.setReservationOrderSource("系统生成");
|
reservationStockInOrder.setReservationOrderSource("系统生成");
|
||||||
reservationStockInOrder.setQuantity(new BigDecimal(bag));
|
// reservationStockInOrder.setQuantity(new BigDecimal(bag));
|
||||||
// reservationStockInOrder.setInQuantity(new BigDecimal(bag));
|
|
||||||
reservationStockInOrder.setRemark("发票号: "+invoiceNumber);
|
reservationStockInOrder.setRemark("发票号: "+invoiceNumber);
|
||||||
reservationStockInOrder.setDirectWarehouse(1);
|
reservationStockInOrder.setDirectWarehouse(1);
|
||||||
reservationStockInOrder.setCloseOrder(2);
|
reservationStockInOrder.setCloseOrder(2);
|
||||||
@@ -1246,14 +1252,28 @@ public class ReservationStockOutOrderDomainService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 生成出库预约单号:
|
* 生成出库预约单号:
|
||||||
|
* 生成后校验数据库中是否已存在,存在则序号加一,直至不重复为止
|
||||||
*/
|
*/
|
||||||
public String generateReserveOrderNumber() {
|
public String generateReserveOrderNumber() {
|
||||||
SimpleDateFormat sdf = new SimpleDateFormat("yyMMdd");
|
SimpleDateFormat sdf = new SimpleDateFormat("yyMMdd");
|
||||||
String datePart = sdf.format(new Date());
|
String datePart = sdf.format(new Date());
|
||||||
String prefix = "C" + datePart;
|
String prefix = "C" + datePart;
|
||||||
int todayCount = reservationStockOutOrderMapper.countByOrderNumberPrefix(prefix);
|
int todayCount = reservationStockOutOrderMapper.countByOrderNumberPrefix(prefix);
|
||||||
String seq = String.format("%03d", todayCount + 1);
|
int seq = todayCount + 1;
|
||||||
return prefix + seq;
|
String orderNumber;
|
||||||
|
do {
|
||||||
|
orderNumber = prefix + String.format("%03d", seq);
|
||||||
|
Integer count = reservationStockOutOrderMapper.selectCount(
|
||||||
|
new LambdaQueryWrapper<ReservationStockOutOrder>()
|
||||||
|
.eq(ReservationStockOutOrder::getOutOrderNumber, orderNumber)
|
||||||
|
);
|
||||||
|
if (count != null && count > 0) {
|
||||||
|
seq++;
|
||||||
|
} else {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} while (true);
|
||||||
|
return orderNumber;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String generateReserveOrderNumber1() {
|
public String generateReserveOrderNumber1() {
|
||||||
|
|||||||
+7
@@ -1,5 +1,6 @@
|
|||||||
package com.mhd.oms.domain.reserveStockInOrder.repository.vo;
|
package com.mhd.oms.domain.reserveStockInOrder.repository.vo;
|
||||||
|
|
||||||
|
import com.alibaba.excel.annotation.ExcelIgnore;
|
||||||
import com.alibaba.excel.annotation.ExcelProperty;
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
import com.alibaba.excel.annotation.format.DateTimeFormat;
|
import com.alibaba.excel.annotation.format.DateTimeFormat;
|
||||||
import com.mhd.oms.domain.reserveStockInOrder.repository.util.StringToBigDecimalConverter;
|
import com.mhd.oms.domain.reserveStockInOrder.repository.util.StringToBigDecimalConverter;
|
||||||
@@ -68,4 +69,10 @@ public class ReservedInventory {
|
|||||||
* 验证结果(导入后自动填充,不映射Excel)
|
* 验证结果(导入后自动填充,不映射Excel)
|
||||||
*/
|
*/
|
||||||
private String validationResult;
|
private String validationResult;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* WMS物料id(解析预览接口根据货物名称匹配后自动填充,匹配不到为空,不映射Excel)
|
||||||
|
*/
|
||||||
|
@ExcelIgnore
|
||||||
|
private Long materialBaseInfoId;
|
||||||
}
|
}
|
||||||
+29
@@ -1981,6 +1981,35 @@ public class ReserveStockInOrderApplicationService {
|
|||||||
return stockInOrderDomainService.queryNoticePrintDetail(stockInOrderDO);
|
return stockInOrderDomainService.queryNoticePrintDetail(stockInOrderDO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Excel解析预览:根据货物名称匹配WMS对应物料并填充物料id,
|
||||||
|
* 匹配不到物料id保持为空,不阻断解析
|
||||||
|
*/
|
||||||
|
public void fillMaterialBaseInfoId(List<ReservedInventory> dataList) {
|
||||||
|
if (dataList == null || dataList.isEmpty()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// 物料名称匹配结果缓存,避免同名重复查库
|
||||||
|
Map<String, MaterialBaseInfoPO> materialCache = new HashMap<>();
|
||||||
|
for (ReservedInventory reservedInventory : dataList) {
|
||||||
|
String goodsName = reservedInventory.getGoodsName();
|
||||||
|
if (StringUtils.isBlank(goodsName)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
MaterialBaseInfoPO materialBaseInfoPO = materialCache.get(goodsName);
|
||||||
|
if (materialBaseInfoPO == null && !materialCache.containsKey(goodsName)) {
|
||||||
|
List<MaterialBaseInfoPO> materialBaseInfoPOS = reserveStockInOrderMapper.getByName(goodsName);
|
||||||
|
if (materialBaseInfoPOS != null && !materialBaseInfoPOS.isEmpty()) {
|
||||||
|
materialBaseInfoPO = materialBaseInfoPOS.get(0);
|
||||||
|
}
|
||||||
|
materialCache.put(goodsName, materialBaseInfoPO);
|
||||||
|
}
|
||||||
|
if (materialBaseInfoPO != null) {
|
||||||
|
reservedInventory.setMaterialBaseInfoId(materialBaseInfoPO.getMaterialBaseInfoId());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void importInData(List<ReservedInventory> dataList) {
|
public void importInData(List<ReservedInventory> dataList) {
|
||||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||||
ReserveStockInOrderDO reserveStockInOrder = new ReserveStockInOrderDO();
|
ReserveStockInOrderDO reserveStockInOrder = new ReserveStockInOrderDO();
|
||||||
|
|||||||
+5
@@ -444,4 +444,9 @@ public class ReserveStockOutOrder extends BaseVOEntity {
|
|||||||
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||||
private Date outboundTime;
|
private Date outboundTime;
|
||||||
|
|
||||||
|
@ApiModelProperty("预约业务类型")
|
||||||
|
private String reserveBusinessType;
|
||||||
|
@ApiModelProperty("预约业务类型名称")
|
||||||
|
private String reserveBusinessTypeName;
|
||||||
|
|
||||||
}
|
}
|
||||||
+4
@@ -452,4 +452,8 @@ public class ReserveStockOutOrderPO extends BaseVOEntity {
|
|||||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
|
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||||
private Date outboundTime;
|
private Date outboundTime;
|
||||||
|
@ApiModelProperty("预约业务类型")
|
||||||
|
private String reserveBusinessType;
|
||||||
|
@ApiModelProperty("预约业务类型名称")
|
||||||
|
private String reserveBusinessTypeName;
|
||||||
}
|
}
|
||||||
+4
@@ -490,4 +490,8 @@ public class ReserveStockOutOrderDO extends BaseVOEntity {
|
|||||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
|
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||||
private Date outboundTime;
|
private Date outboundTime;
|
||||||
|
@ApiModelProperty("预约业务类型")
|
||||||
|
private String reserveBusinessType;
|
||||||
|
@ApiModelProperty("预约业务类型名称")
|
||||||
|
private String reserveBusinessTypeName;
|
||||||
}
|
}
|
||||||
+4
@@ -479,4 +479,8 @@ public class ReserveStockOutOrderDTO extends ReserveStockOutOrderBaseDTO {
|
|||||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
|
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||||
private Date outboundTime;
|
private Date outboundTime;
|
||||||
|
@ApiModelProperty("预约业务类型")
|
||||||
|
private String reserveBusinessType;
|
||||||
|
@ApiModelProperty("预约业务类型名称")
|
||||||
|
private String reserveBusinessTypeName;
|
||||||
}
|
}
|
||||||
+14
@@ -1,5 +1,6 @@
|
|||||||
package com.mhd.oms.domain.reserveStockOutOrder.repository.vo;
|
package com.mhd.oms.domain.reserveStockOutOrder.repository.vo;
|
||||||
|
|
||||||
|
import com.alibaba.excel.annotation.ExcelIgnore;
|
||||||
import com.alibaba.excel.annotation.ExcelProperty;
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
import com.mhd.oms.domain.reserveStockInOrder.repository.util.StringToBigDecimalConverter;
|
import com.mhd.oms.domain.reserveStockInOrder.repository.util.StringToBigDecimalConverter;
|
||||||
import com.mhd.oms.domain.reserveStockInOrder.repository.util.StringToDateConverter;
|
import com.mhd.oms.domain.reserveStockInOrder.repository.util.StringToDateConverter;
|
||||||
@@ -35,6 +36,19 @@ public class ReservedInventoryOut {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 验证结果(导入后自动填充,不映射Excel)
|
* 验证结果(导入后自动填充,不映射Excel)
|
||||||
|
* @ExcelIgnore:排除在Excel列映射之外,避免被自动分配列索引
|
||||||
*/
|
*/
|
||||||
|
@ExcelIgnore
|
||||||
private String validationResult;
|
private String validationResult;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* WMS库存id(解析预览接口根据货物名称查询可用库存后自动填充,不映射Excel)
|
||||||
|
* @ExcelIgnore:Long类型字段若被自动映射到非数字列,会抛出ExcelDataConvertException
|
||||||
|
*/
|
||||||
|
@ExcelIgnore
|
||||||
|
private Long materialInventoryId;
|
||||||
|
|
||||||
|
|
||||||
|
@ExcelIgnore
|
||||||
|
private Long materialBaseInfoId;
|
||||||
}
|
}
|
||||||
+40
-3
@@ -847,7 +847,7 @@ public class ReserveStockOutOrderApplicationService {
|
|||||||
* @description 审核入库单
|
* @description 审核入库单
|
||||||
* @author ZhouGY
|
* @author ZhouGY
|
||||||
* @date 2024/5/21 13:53
|
* @date 2024/5/21 13:53
|
||||||
* @param stockInOrderDO
|
* @param stockOutOrderDO
|
||||||
* @return Boolean
|
* @return Boolean
|
||||||
*/
|
*/
|
||||||
public Boolean auditState(ReserveStockOutOrderDO stockOutOrderDO){
|
public Boolean auditState(ReserveStockOutOrderDO stockOutOrderDO){
|
||||||
@@ -858,7 +858,7 @@ public class ReserveStockOutOrderApplicationService {
|
|||||||
* @description 下发入库单
|
* @description 下发入库单
|
||||||
* @author ZhouGY
|
* @author ZhouGY
|
||||||
* @date 2024/5/21 13:53
|
* @date 2024/5/21 13:53
|
||||||
* @param stockInOrderDO
|
* @param stockOutOrderDO
|
||||||
* @return Boolean
|
* @return Boolean
|
||||||
*/
|
*/
|
||||||
public Boolean issueOrder(ReserveStockOutOrderDO stockOutOrderDO){
|
public Boolean issueOrder(ReserveStockOutOrderDO stockOutOrderDO){
|
||||||
@@ -868,7 +868,7 @@ public class ReserveStockOutOrderApplicationService {
|
|||||||
* @description 审核入库单
|
* @description 审核入库单
|
||||||
* @author ZhouGY
|
* @author ZhouGY
|
||||||
* @date 2024/5/21 13:53
|
* @date 2024/5/21 13:53
|
||||||
* @param stockInOrderDO
|
* @param stockOutOrderDO
|
||||||
* @return Boolean
|
* @return Boolean
|
||||||
*/
|
*/
|
||||||
public Boolean orderReject(ReserveStockOutOrderDO stockOutOrderDO){
|
public Boolean orderReject(ReserveStockOutOrderDO stockOutOrderDO){
|
||||||
@@ -1361,6 +1361,43 @@ public class ReserveStockOutOrderApplicationService {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Excel解析预览:根据货物名称查询WMS对应物料的库存信息,
|
||||||
|
* 可用数量大于导入数据件数的填充库存id;
|
||||||
|
* 物料不存在、无库存或可用数量不足时库存id保持为空,不抛异常
|
||||||
|
*/
|
||||||
|
public void fillMaterialInventoryId(List<ReservedInventoryOut> dataList) {
|
||||||
|
if (CollectionUtils.isEmpty(dataList)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
for (ReservedInventoryOut reservedInventory : dataList) {
|
||||||
|
String goodsName = reservedInventory.getGoodsName();
|
||||||
|
BigDecimal importQuantity = reservedInventory.getQuantity() == null ? BigDecimal.ZERO : reservedInventory.getQuantity();
|
||||||
|
// 根据货物名称查询对应物料,匹配不到则库存id为空
|
||||||
|
List<MaterialBaseInfoPO> materialBaseInfoPOS = reserveStockInOrderMapper.getByName(goodsName);
|
||||||
|
if (materialBaseInfoPOS == null || materialBaseInfoPOS.isEmpty()) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
Long materialBaseInfoId = materialBaseInfoPOS.get(0).getMaterialBaseInfoId();
|
||||||
|
// 根据物料id查询对应库存,无库存则库存id为空
|
||||||
|
List<ReservationMaterialInventory> reservationMaterialInventories = reservationMaterialInventoryMapper.selectList(
|
||||||
|
new LambdaQueryWrapper<ReservationMaterialInventory>()
|
||||||
|
.eq(ReservationMaterialInventory::getMaterialBaseInfoId, materialBaseInfoId));
|
||||||
|
if (reservationMaterialInventories == null || reservationMaterialInventories.isEmpty()) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
// 取可用数量大于导入数据件数的库存,填充库存id;都不满足则库存id为空
|
||||||
|
for (ReservationMaterialInventory inventory : reservationMaterialInventories) {
|
||||||
|
BigDecimal allocationQuantity = inventory.getAllocationQuantity() == null ? BigDecimal.ZERO : inventory.getAllocationQuantity();
|
||||||
|
if (allocationQuantity.compareTo(importQuantity) > 0) {
|
||||||
|
reservedInventory.setMaterialInventoryId(inventory.getMaterialInventoryId());
|
||||||
|
reservedInventory.setMaterialBaseInfoId(inventory.getMaterialBaseInfoId());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void importInData(List<ReservedInventoryOut> dataList) {
|
public void importInData(List<ReservedInventoryOut> dataList) {
|
||||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||||
ReserveStockOutOrderDO reserveStockOutOrder = new ReserveStockOutOrderDO();
|
ReserveStockOutOrderDO reserveStockOutOrder = new ReserveStockOutOrderDO();
|
||||||
|
|||||||
+25
@@ -296,6 +296,31 @@ public class ReserveStockOutOrderApi extends BaseController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 仅解析Excel文件内容并返回,不执行入库
|
||||||
|
* 同时根据货物名称查询WMS对应物料库存,可用数量大于件数的返回库存id,匹配不到库存id返回空
|
||||||
|
*/
|
||||||
|
@ApiOperation("解析导入Excel(仅解析不入库)")
|
||||||
|
@PostMapping("/parseExcel")
|
||||||
|
public ResponseEntity<Map<String, Object>> parseExcel(@RequestParam("file") MultipartFile file) {
|
||||||
|
List<ReservedInventoryOut> dataList = null;
|
||||||
|
try {
|
||||||
|
dataList = ExcelParseUtil.parseExcel(file);
|
||||||
|
} catch (IOException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 根据货物名称查询WMS库存并填充库存id,匹配不到库存id返回空
|
||||||
|
stockOutOrderApplicationService.fillMaterialInventoryId(dataList);
|
||||||
|
|
||||||
|
Map<String, Object> successResponse = new HashMap<>();
|
||||||
|
successResponse.put("code", 200);
|
||||||
|
successResponse.put("message", "Excel解析成功");
|
||||||
|
successResponse.put("dataCount", dataList.size());
|
||||||
|
successResponse.put("details", dataList);
|
||||||
|
return ResponseEntity.ok(successResponse);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 生成出库预约单号
|
* 生成出库预约单号
|
||||||
*/
|
*/
|
||||||
|
|||||||
+46
@@ -260,6 +260,52 @@ public class ReserveStockInOrderApi extends BaseController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 仅解析Excel文件内容并返回,不执行入库
|
||||||
|
* 同时根据货物名称匹配WMS物料并返回物料id,匹配不到返回空
|
||||||
|
*/
|
||||||
|
@ApiOperation("解析导入Excel(仅解析不入库)")
|
||||||
|
@PostMapping("/parseExcel")
|
||||||
|
public ResponseEntity<Map<String, Object>> parseExcel(@RequestParam("file") MultipartFile file) {
|
||||||
|
try {
|
||||||
|
List<ReservedInventory> dataList = ExcelParseUtil.parseExcel(file);
|
||||||
|
|
||||||
|
// 根据货物名称匹配WMS物料并填充物料id,匹配不到返回空
|
||||||
|
stockInOrderApplicationService.fillMaterialBaseInfoId(dataList);
|
||||||
|
|
||||||
|
Map<String, Object> successResponse = new HashMap<>();
|
||||||
|
successResponse.put("code", 200);
|
||||||
|
successResponse.put("message", "Excel解析成功");
|
||||||
|
successResponse.put("dataCount", dataList.size());
|
||||||
|
successResponse.put("details", dataList);
|
||||||
|
return ResponseEntity.ok(successResponse);
|
||||||
|
|
||||||
|
} catch (ValidationException e) {
|
||||||
|
// 数据验证失败响应
|
||||||
|
Map<String, Object> errorResponse = new HashMap<>();
|
||||||
|
errorResponse.put("code", 400);
|
||||||
|
errorResponse.put("message", "数据验证失败");
|
||||||
|
errorResponse.put("errorDetails", e.getMessage());
|
||||||
|
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(errorResponse);
|
||||||
|
|
||||||
|
} catch (IOException e) {
|
||||||
|
// 文件处理失败响应
|
||||||
|
Map<String, Object> errorResponse = new HashMap<>();
|
||||||
|
errorResponse.put("code", 500);
|
||||||
|
errorResponse.put("message", "文件处理失败");
|
||||||
|
errorResponse.put("errorDetails", e.getMessage());
|
||||||
|
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(errorResponse);
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
// 其他未知错误响应
|
||||||
|
Map<String, Object> errorResponse = new HashMap<>();
|
||||||
|
errorResponse.put("code", 500);
|
||||||
|
errorResponse.put("message", e.getMessage());
|
||||||
|
errorResponse.put("errorDetails", e.getMessage());
|
||||||
|
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(errorResponse);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 老系统入库预约单数据导入(主表+明细两个Excel文件批量导入,按名称匹配基础数据)
|
* 老系统入库预约单数据导入(主表+明细两个Excel文件批量导入,按名称匹配基础数据)
|
||||||
*/
|
*/
|
||||||
|
|||||||
+7
-1
@@ -97,6 +97,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<result property="erpCurrGw" column="erp_curr_gw" />
|
<result property="erpCurrGw" column="erp_curr_gw" />
|
||||||
<result property="erpPriceGw" column="erp_price_gw" />
|
<result property="erpPriceGw" column="erp_price_gw" />
|
||||||
<result property="amountGw" column="amount_gw" />
|
<result property="amountGw" column="amount_gw" />
|
||||||
|
<result property="insureAmount" column="insure_amount" />
|
||||||
|
<result property="goodsType" column="goods_type" />
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
|
|
||||||
@@ -366,6 +368,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<result property="orderShipperId" column="order_shipper_id" />
|
<result property="orderShipperId" column="order_shipper_id" />
|
||||||
<result property="orderShipperCode" column="order_shipper_code" />
|
<result property="orderShipperCode" column="order_shipper_code" />
|
||||||
<result property="orderShipperName" column="order_shipper_name" />
|
<result property="orderShipperName" column="order_shipper_name" />
|
||||||
|
<result property="warehouseDate" column="warehouse_date" />
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
<select id="queryInOrderDetailList" parameterType="com.mhd.oms.domain.executionInMaterialDetail.repository.todo.QueryOrderOverStockDO"
|
<select id="queryInOrderDetailList" parameterType="com.mhd.oms.domain.executionInMaterialDetail.repository.todo.QueryOrderOverStockDO"
|
||||||
@@ -400,13 +403,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
a.single_volume, a.single_gross_weight, a.lot_no,
|
a.single_volume, a.single_gross_weight, a.lot_no,
|
||||||
a.drink_date, a.fire_insure_fee, a.unit_price,
|
a.drink_date, a.fire_insure_fee, a.unit_price,
|
||||||
a.line_num_gw, a.spec_gw, a.unit_gw, a.qty_gw, a.erp_curr_gw, a.erp_price_gw, a.amount_gw,
|
a.line_num_gw, a.spec_gw, a.unit_gw, a.qty_gw, a.erp_curr_gw, a.erp_price_gw, a.amount_gw,
|
||||||
|
c.insure_amount, c.goods_type,
|
||||||
b.shipper_id as order_shipper_id,
|
b.shipper_id as order_shipper_id,
|
||||||
b.shipper_code as order_shipper_code,
|
b.shipper_code as order_shipper_code,
|
||||||
b.shipper_name as order_shipper_name,
|
b.shipper_name as order_shipper_name,
|
||||||
b.status as in_order_status,
|
b.status as in_order_status,
|
||||||
b.audit_status as in_order_audit_status
|
b.audit_status as in_order_audit_status,
|
||||||
|
b.warehouse_date
|
||||||
from execution_in_material_detail a
|
from execution_in_material_detail a
|
||||||
left join execution_stock_in_order b on a.in_order_number = b.in_order_number
|
left join execution_stock_in_order b on a.in_order_number = b.in_order_number
|
||||||
|
left join material_base_info c on a.material_base_info_id = c.material_base_info_id
|
||||||
<where>
|
<where>
|
||||||
<if test="organizationId != null ">
|
<if test="organizationId != null ">
|
||||||
and a.organization_id = #{organizationId}
|
and a.organization_id = #{organizationId}
|
||||||
|
|||||||
@@ -835,7 +835,7 @@
|
|||||||
<select id="getMaxStockInOrderByPrefixAndOrgAndWarehouse" resultType="java.lang.String">
|
<select id="getMaxStockInOrderByPrefixAndOrgAndWarehouse" resultType="java.lang.String">
|
||||||
SELECT in_order_number FROM reserve_stock_in_order
|
SELECT in_order_number FROM reserve_stock_in_order
|
||||||
WHERE in_order_number LIKE concat(#{prefix}, '%')
|
WHERE in_order_number LIKE concat(#{prefix}, '%')
|
||||||
AND del_flag = 1
|
|
||||||
<if test="organizationId != null">
|
<if test="organizationId != null">
|
||||||
AND organization_id = #{organizationId}
|
AND organization_id = #{organizationId}
|
||||||
</if>
|
</if>
|
||||||
@@ -847,7 +847,7 @@
|
|||||||
|
|
||||||
SELECT in_order_number FROM reservation_stock_in_order
|
SELECT in_order_number FROM reservation_stock_in_order
|
||||||
WHERE in_order_number LIKE concat(#{prefix}, '%')
|
WHERE in_order_number LIKE concat(#{prefix}, '%')
|
||||||
AND del_flag = 1
|
|
||||||
<if test="organizationId != null">
|
<if test="organizationId != null">
|
||||||
AND organization_id = #{organizationId}
|
AND organization_id = #{organizationId}
|
||||||
</if>
|
</if>
|
||||||
@@ -859,7 +859,7 @@
|
|||||||
|
|
||||||
SELECT in_order_number FROM execution_stock_in_order
|
SELECT in_order_number FROM execution_stock_in_order
|
||||||
WHERE in_order_number LIKE concat(#{prefix}, '%')
|
WHERE in_order_number LIKE concat(#{prefix}, '%')
|
||||||
AND del_flag = 1
|
|
||||||
<if test="organizationId != null">
|
<if test="organizationId != null">
|
||||||
AND organization_id = #{organizationId}
|
AND organization_id = #{organizationId}
|
||||||
</if>
|
</if>
|
||||||
@@ -871,7 +871,7 @@
|
|||||||
|
|
||||||
SELECT in_order_number FROM NGWL_TEST_WMS.stock_in_order
|
SELECT in_order_number FROM NGWL_TEST_WMS.stock_in_order
|
||||||
WHERE in_order_number LIKE concat(#{prefix}, '%')
|
WHERE in_order_number LIKE concat(#{prefix}, '%')
|
||||||
AND del_flag = 1
|
|
||||||
<if test="organizationId != null">
|
<if test="organizationId != null">
|
||||||
AND organization_id = #{organizationId}
|
AND organization_id = #{organizationId}
|
||||||
</if>
|
</if>
|
||||||
|
|||||||
+10
-5
@@ -95,6 +95,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<result property="reservationOrderSource" column="RESERVATION_ORDER_SOURCE" />
|
<result property="reservationOrderSource" column="RESERVATION_ORDER_SOURCE" />
|
||||||
<result property="outboundTime" column="OUTBOUND_TIME" />
|
<result property="outboundTime" column="OUTBOUND_TIME" />
|
||||||
<result property="businessOrderNo" column="BUSINESS_ORDER_NO" />
|
<result property="businessOrderNo" column="BUSINESS_ORDER_NO" />
|
||||||
|
<result property="reserveBusinessType" column="RESERVE_BUSINESS_TYPE" />
|
||||||
|
<result property="reserveBusinessTypeName" column="RESERVE_BUSINESS_TYPE_NAME" />
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
|
|
||||||
@@ -112,7 +114,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
a.COMPLETE_TIME,a.ORDER_DATE,a.TRANSPORT_MODE_CODE,a.TRANSPORT_MODE_NAME,a.SUPERVISION_MODE_CODE,a.SUPERVISION_MODE_NAME,
|
a.COMPLETE_TIME,a.ORDER_DATE,a.TRANSPORT_MODE_CODE,a.TRANSPORT_MODE_NAME,a.SUPERVISION_MODE_CODE,a.SUPERVISION_MODE_NAME,
|
||||||
a.CUSTOMS_INSPECTION_FLAG,a.NEED_DECLARE_FLAG,a.NEED_TRANSPORT_FLAG,a.picture_app,a.reservation_audit_time,a.reservation_audit_name
|
a.CUSTOMS_INSPECTION_FLAG,a.NEED_DECLARE_FLAG,a.NEED_TRANSPORT_FLAG,a.picture_app,a.reservation_audit_time,a.reservation_audit_name
|
||||||
,a.reservation_audit_id,a.issue_name,a.issue_id,a.issue_time,a.issue_status,a.tms_order_number,
|
,a.reservation_audit_id,a.issue_name,a.issue_id,a.issue_time,a.issue_status,a.tms_order_number,
|
||||||
a.DIRECTOR_NAME ,a.DIRECTOR_PHONE,a.DIRECTOR_ID,a.RESERVATION_ORDER_SOURCE,a.OUTBOUND_TIME
|
a.DIRECTOR_NAME ,a.DIRECTOR_PHONE,a.DIRECTOR_ID,a.RESERVATION_ORDER_SOURCE,a.OUTBOUND_TIME,a.RESERVE_BUSINESS_TYPE,a.RESERVE_BUSINESS_TYPE_NAME
|
||||||
</sql>
|
</sql>
|
||||||
|
|
||||||
|
|
||||||
@@ -132,6 +134,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<if test="outOrderId != null ">
|
<if test="outOrderId != null ">
|
||||||
and a.out_order_id = #{outOrderId}
|
and a.out_order_id = #{outOrderId}
|
||||||
</if>
|
</if>
|
||||||
|
<if test="reserveBusinessType != null ">
|
||||||
|
and a.reserve_business_type = #{reserveBusinessType}
|
||||||
|
</if>
|
||||||
<if test="organizationId != null ">
|
<if test="organizationId != null ">
|
||||||
and a.organization_id = #{organizationId}
|
and a.organization_id = #{organizationId}
|
||||||
</if>
|
</if>
|
||||||
@@ -553,7 +558,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<select id="getMaxStockOutOrderByPrefixAndOrgAndWarehouse" resultType="java.lang.String">
|
<select id="getMaxStockOutOrderByPrefixAndOrgAndWarehouse" resultType="java.lang.String">
|
||||||
SELECT out_order_number FROM reserve_stock_out_order
|
SELECT out_order_number FROM reserve_stock_out_order
|
||||||
WHERE out_order_number LIKE concat(#{prefix}, '%')
|
WHERE out_order_number LIKE concat(#{prefix}, '%')
|
||||||
AND del_flag = 1
|
|
||||||
<if test="organizationId != null">
|
<if test="organizationId != null">
|
||||||
AND organization_id = #{organizationId}
|
AND organization_id = #{organizationId}
|
||||||
</if>
|
</if>
|
||||||
@@ -565,7 +570,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
|
|
||||||
SELECT out_order_number FROM reservation_stock_out_order
|
SELECT out_order_number FROM reservation_stock_out_order
|
||||||
WHERE out_order_number LIKE concat(#{prefix}, '%')
|
WHERE out_order_number LIKE concat(#{prefix}, '%')
|
||||||
AND del_flag = 1
|
|
||||||
<if test="organizationId != null">
|
<if test="organizationId != null">
|
||||||
AND organization_id = #{organizationId}
|
AND organization_id = #{organizationId}
|
||||||
</if>
|
</if>
|
||||||
@@ -577,7 +582,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
|
|
||||||
SELECT out_order_number FROM execution_stock_out_order
|
SELECT out_order_number FROM execution_stock_out_order
|
||||||
WHERE out_order_number LIKE concat(#{prefix}, '%')
|
WHERE out_order_number LIKE concat(#{prefix}, '%')
|
||||||
AND del_flag = 1
|
|
||||||
<if test="organizationId != null">
|
<if test="organizationId != null">
|
||||||
AND organization_id = #{organizationId}
|
AND organization_id = #{organizationId}
|
||||||
</if>
|
</if>
|
||||||
@@ -589,7 +594,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
|
|
||||||
SELECT out_order_number FROM NGWL_TEST_WMS.stock_out_order
|
SELECT out_order_number FROM NGWL_TEST_WMS.stock_out_order
|
||||||
WHERE out_order_number LIKE concat(#{prefix}, '%')
|
WHERE out_order_number LIKE concat(#{prefix}, '%')
|
||||||
AND del_flag = 1
|
|
||||||
<if test="organizationId != null">
|
<if test="organizationId != null">
|
||||||
AND organization_id = #{organizationId}
|
AND organization_id = #{organizationId}
|
||||||
</if>
|
</if>
|
||||||
|
|||||||
+1
-1
@@ -294,7 +294,7 @@ public class HandoverTaskOrderApplicationService {
|
|||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
if (!handoverTaskOrderIds.isEmpty()) {
|
if (!handoverTaskOrderIds.isEmpty()) {
|
||||||
HandoverTaskOrderDO completeDO = new HandoverTaskOrderDO();
|
HandoverTaskOrderDO completeDO = new HandoverTaskOrderDO();
|
||||||
completeDO.setHandoverTaskOrderIds(handoverTaskOrderIds);
|
completeDO.setHandoverTaskOrderIds(handoverTaskOrderIds.stream().map(String::valueOf).collect(Collectors.toList()));
|
||||||
completeDO.setBillingJson(handoverTaskOrderDO.getBillingJson());
|
completeDO.setBillingJson(handoverTaskOrderDO.getBillingJson());
|
||||||
handoverTaskOrderDomainService.completeHandover(completeDO);
|
handoverTaskOrderDomainService.completeHandover(completeDO);
|
||||||
}
|
}
|
||||||
|
|||||||
+74
-45
@@ -257,31 +257,33 @@ public class MaterialBaseInfoApplicationService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
Long shipperId = materialBaseInfoDO.getShipperId();
|
Long shipperId = materialBaseInfoDO.getShipperId();
|
||||||
String customerCodeNcJson = null;
|
if (shipperId != null&&shipperId != 0L) {
|
||||||
if (shipperId != null) {
|
String customerCodeNcJson = null;
|
||||||
customerCodeNcJson = materialBaseInfoMapper.getCustomerCodeNcJson(shipperId.toString());
|
if (shipperId != null) {
|
||||||
}
|
customerCodeNcJson = materialBaseInfoMapper.getCustomerCodeNcJson(shipperId.toString());
|
||||||
if (customerCodeNcJson != null && !customerCodeNcJson.isEmpty()) {
|
}
|
||||||
ObjectMapper objectMapper = new ObjectMapper();
|
if (customerCodeNcJson != null && !customerCodeNcJson.isEmpty()) {
|
||||||
List<Map<String, Object>> listNc = null;
|
ObjectMapper objectMapper = new ObjectMapper();
|
||||||
try {
|
List<Map<String, Object>> listNc = null;
|
||||||
listNc = objectMapper.readValue(
|
try {
|
||||||
customerCodeNcJson,
|
listNc = objectMapper.readValue(
|
||||||
new com.fasterxml.jackson.core.type.TypeReference<List<Map<String, Object>>>() {}
|
customerCodeNcJson,
|
||||||
);
|
new com.fasterxml.jackson.core.type.TypeReference<List<Map<String, Object>>>() {}
|
||||||
String codeStr = "";
|
);
|
||||||
if (listNc != null && listNc.size() > 0) {
|
String codeStr = "";
|
||||||
// 方式1:Stream拼接,逗号分隔
|
if (listNc != null && listNc.size() > 0) {
|
||||||
codeStr = listNc.stream()
|
// 方式1:Stream拼接,逗号分隔
|
||||||
.map(map -> map.get("code"))
|
codeStr = listNc.stream()
|
||||||
.filter(Objects::nonNull) // 过滤code为空
|
.map(map -> map.get("code"))
|
||||||
.map(Object::toString)
|
.filter(Objects::nonNull) // 过滤code为空
|
||||||
.collect(Collectors.joining(","));
|
.map(Object::toString)
|
||||||
materialBaseInfoDO.setOrgId(codeStr);
|
.collect(Collectors.joining(","));
|
||||||
|
materialBaseInfoDO.setOrgId(codeStr);
|
||||||
|
}
|
||||||
|
// codeStr 就是拼接好的字符串
|
||||||
|
} catch (JsonProcessingException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
// codeStr 就是拼接好的字符串
|
|
||||||
} catch (JsonProcessingException e) {
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Long materialBaseInfoId = materialBaseInfoDomainService.insert(materialBaseInfoDO);
|
Long materialBaseInfoId = materialBaseInfoDomainService.insert(materialBaseInfoDO);
|
||||||
@@ -316,30 +318,35 @@ public class MaterialBaseInfoApplicationService {
|
|||||||
*/
|
*/
|
||||||
public Boolean update(MaterialBaseInfoDO materialBaseInfoDO) {
|
public Boolean update(MaterialBaseInfoDO materialBaseInfoDO) {
|
||||||
Long shipperId = materialBaseInfoDO.getShipperId();
|
Long shipperId = materialBaseInfoDO.getShipperId();
|
||||||
String customerCodeNcJson = materialBaseInfoMapper.getCustomerCodeNcJson(shipperId.toString());
|
//设置货主信息
|
||||||
if (customerCodeNcJson != null && !customerCodeNcJson.isEmpty()) {
|
shipperParam(materialBaseInfoDO);
|
||||||
ObjectMapper objectMapper = new ObjectMapper();
|
if (shipperId != null&&shipperId!=0l) {
|
||||||
List<Map<String, Object>> listNc = null;
|
String customerCodeNcJson = materialBaseInfoMapper.getCustomerCodeNcJson(shipperId.toString());
|
||||||
try {
|
if (customerCodeNcJson != null && !customerCodeNcJson.isEmpty()) {
|
||||||
listNc = objectMapper.readValue(
|
ObjectMapper objectMapper = new ObjectMapper();
|
||||||
customerCodeNcJson,
|
List<Map<String, Object>> listNc = null;
|
||||||
new com.fasterxml.jackson.core.type.TypeReference<List<Map<String, Object>>>() {}
|
try {
|
||||||
);
|
listNc = objectMapper.readValue(
|
||||||
String codeStr = "";
|
customerCodeNcJson,
|
||||||
if (listNc != null && listNc.size() > 0) {
|
new com.fasterxml.jackson.core.type.TypeReference<List<Map<String, Object>>>() {}
|
||||||
// 方式1:Stream拼接,逗号分隔
|
);
|
||||||
codeStr = listNc.stream()
|
String codeStr = "";
|
||||||
.map(map -> map.get("code"))
|
if (listNc != null && listNc.size() > 0) {
|
||||||
.filter(Objects::nonNull) // 过滤code为空
|
// 方式1:Stream拼接,逗号分隔
|
||||||
.map(Object::toString)
|
codeStr = listNc.stream()
|
||||||
.collect(Collectors.joining(","));
|
.map(map -> map.get("code"))
|
||||||
materialBaseInfoDO.setOrgId(codeStr);
|
.filter(Objects::nonNull) // 过滤code为空
|
||||||
|
.map(Object::toString)
|
||||||
|
.collect(Collectors.joining(","));
|
||||||
|
materialBaseInfoDO.setOrgId(codeStr);
|
||||||
|
}
|
||||||
|
// codeStr 就是拼接好的字符串
|
||||||
|
} catch (JsonProcessingException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
// codeStr 就是拼接好的字符串
|
|
||||||
} catch (JsonProcessingException e) {
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
materialBaseInfoDomainService.update(materialBaseInfoDO);
|
materialBaseInfoDomainService.update(materialBaseInfoDO);
|
||||||
Long materialBaseInfoId = materialBaseInfoDO.getMaterialBaseInfoId();
|
Long materialBaseInfoId = materialBaseInfoDO.getMaterialBaseInfoId();
|
||||||
// 商品/公共/仓控 子表:Feign/前端常只带业务字段、未带子表主键,需按 material_base_info_id 补全后再 update,否则 WHERE xxx_id=? 为 null 导致 Updates: 0
|
// 商品/公共/仓控 子表:Feign/前端常只带业务字段、未带子表主键,需按 material_base_info_id 补全后再 update,否则 WHERE xxx_id=? 为 null 导致 Updates: 0
|
||||||
@@ -381,6 +388,28 @@ public class MaterialBaseInfoApplicationService {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description 封装货主信息
|
||||||
|
* @author ZhouGY
|
||||||
|
* @date 2024/5/9 20:43
|
||||||
|
* @param materialBaseInfoDO
|
||||||
|
*/
|
||||||
|
private void shipperParam(MaterialBaseInfoDO materialBaseInfoDO){
|
||||||
|
Long shipperId = materialBaseInfoDO.getShipperId();
|
||||||
|
if (shipperId != null && shipperId != 0l) {
|
||||||
|
AjaxResult ajaxResult = userServiceFeign.getInfo(materialBaseInfoDO.getShipperId());
|
||||||
|
if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
|
||||||
|
throw new ServiceException("获取货主信息失败");
|
||||||
|
}
|
||||||
|
UserPo userPo = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), UserPo.class);
|
||||||
|
// 如果原始shipperName不为空,保留原始值(导入或手动输入时应该保留完整名称)
|
||||||
|
// 只有在原始shipperName为空时,才使用查询到的userName
|
||||||
|
if (materialBaseInfoDO.getShipperName() == null || materialBaseInfoDO.getShipperName().trim().isEmpty()) {
|
||||||
|
materialBaseInfoDO.setShipperName(userPo.getUserName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 编辑物料时从库中反查子表主键,避免仅传 batchId 等字段时子表主键为 null 无法 UPDATE。
|
* 编辑物料时从库中反查子表主键,避免仅传 batchId 等字段时子表主键为 null 无法 UPDATE。
|
||||||
*/
|
*/
|
||||||
|
|||||||
+8
-1
@@ -112,7 +112,14 @@ public class HandoverTaskOrderImpl extends ServiceImpl<HandoverTaskOrderMapper,
|
|||||||
@Override
|
@Override
|
||||||
public boolean taskDistribution(HandoverTaskOrderDO handoverTaskOrderDO) {
|
public boolean taskDistribution(HandoverTaskOrderDO handoverTaskOrderDO) {
|
||||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||||
List<Long> handoverTaskOrderIds = handoverTaskOrderDO.getHandoverTaskOrderIds();
|
List<String> handoverTaskOrderIdsStr = handoverTaskOrderDO.getHandoverTaskOrderIds();
|
||||||
|
List<Long> handoverTaskOrderIds = null;
|
||||||
|
if (handoverTaskOrderIdsStr != null && !handoverTaskOrderIdsStr.isEmpty()) {
|
||||||
|
handoverTaskOrderIds = handoverTaskOrderIdsStr.stream()
|
||||||
|
.filter(str -> str != null && !str.trim().isEmpty())
|
||||||
|
.map(Long::valueOf)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
}
|
||||||
if (handoverTaskOrderIds == null || handoverTaskOrderIds.isEmpty()) {
|
if (handoverTaskOrderIds == null || handoverTaskOrderIds.isEmpty()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
+3
@@ -1,6 +1,8 @@
|
|||||||
package com.mhd.wms.domain.handoverTaskOrder.repository.po;
|
package com.mhd.wms.domain.handoverTaskOrder.repository.po;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||||
|
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||||
import com.mhd.common.core.annotation.Excel;
|
import com.mhd.common.core.annotation.Excel;
|
||||||
import com.mhd.common.core.web.domain.BaseVOEntity;
|
import com.mhd.common.core.web.domain.BaseVOEntity;
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
@@ -25,6 +27,7 @@ import java.util.List;
|
|||||||
public class HandoverTaskOrderPO extends BaseVOEntity {
|
public class HandoverTaskOrderPO extends BaseVOEntity {
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
@ApiModelProperty("交接作业单id")
|
@ApiModelProperty("交接作业单id")
|
||||||
private Long handoverTaskOrderId;
|
private Long handoverTaskOrderId;
|
||||||
|
|
||||||
|
|||||||
+3
-1
@@ -130,7 +130,9 @@ public class HandoverTaskOrderDO extends BaseVOEntity {
|
|||||||
private Long permissionMenuId;
|
private Long permissionMenuId;
|
||||||
|
|
||||||
@ApiModelProperty("交接作业单id")
|
@ApiModelProperty("交接作业单id")
|
||||||
private List<Long> handoverTaskOrderIds;
|
private List<String> handoverTaskOrderIds;
|
||||||
|
@ApiModelProperty("交接作业单id")
|
||||||
|
private List<String> handoverTaskOrderIdsStr;
|
||||||
|
|
||||||
@ApiModelProperty("作业人用户ID")
|
@ApiModelProperty("作业人用户ID")
|
||||||
@Excel(name = "作业人用户ID")
|
@Excel(name = "作业人用户ID")
|
||||||
|
|||||||
+36
-6
@@ -61,6 +61,7 @@ import org.springframework.stereotype.Service;
|
|||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
@@ -97,7 +98,7 @@ public class HandoverTaskOrderDomainService {
|
|||||||
private IStockOutOrderService stockOutOrderService;
|
private IStockOutOrderService stockOutOrderService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private CopyCodeReferenceDomainService copyCodeReferenceDomainService;
|
private CopyCodeReferenceDomainService copyCodeReferenceDomainService;
|
||||||
@Autowired
|
@Resource
|
||||||
private OmsServiceFeign omsServiceFeign;
|
private OmsServiceFeign omsServiceFeign;
|
||||||
// @Autowired
|
// @Autowired
|
||||||
// private ICustomsDeclarationDetailService customsDeclarationDetailService;
|
// private ICustomsDeclarationDetailService customsDeclarationDetailService;
|
||||||
@@ -250,7 +251,14 @@ public class HandoverTaskOrderDomainService {
|
|||||||
* @return Boolean
|
* @return Boolean
|
||||||
*/
|
*/
|
||||||
public Boolean allocationPlatform(HandoverTaskOrderDO handoverTaskOrderDO){
|
public Boolean allocationPlatform(HandoverTaskOrderDO handoverTaskOrderDO){
|
||||||
List<Long> handoverTaskOrderIds = handoverTaskOrderDO.getHandoverTaskOrderIds();
|
List<String> handoverTaskOrderIdsStr = handoverTaskOrderDO.getHandoverTaskOrderIds();
|
||||||
|
List<Long> handoverTaskOrderIds = null;
|
||||||
|
if (handoverTaskOrderIdsStr != null && !handoverTaskOrderIdsStr.isEmpty()) {
|
||||||
|
handoverTaskOrderIds = handoverTaskOrderIdsStr.stream()
|
||||||
|
.filter(str -> str != null && !str.trim().isEmpty())
|
||||||
|
.map(Long::valueOf)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
}
|
||||||
if (handoverTaskOrderIds == null || handoverTaskOrderIds.isEmpty()) {
|
if (handoverTaskOrderIds == null || handoverTaskOrderIds.isEmpty()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -285,7 +293,14 @@ public class HandoverTaskOrderDomainService {
|
|||||||
* @return Boolean
|
* @return Boolean
|
||||||
*/
|
*/
|
||||||
public Boolean releasePlatform(HandoverTaskOrderDO handoverTaskOrderDO){
|
public Boolean releasePlatform(HandoverTaskOrderDO handoverTaskOrderDO){
|
||||||
List<Long> handoverTaskOrderIds = handoverTaskOrderDO.getHandoverTaskOrderIds();
|
List<String> handoverTaskOrderIdsStr = handoverTaskOrderDO.getHandoverTaskOrderIds();
|
||||||
|
List<Long> handoverTaskOrderIds = null;
|
||||||
|
if (handoverTaskOrderIdsStr != null && !handoverTaskOrderIdsStr.isEmpty()) {
|
||||||
|
handoverTaskOrderIds = handoverTaskOrderIdsStr.stream()
|
||||||
|
.filter(str -> str != null && !str.trim().isEmpty())
|
||||||
|
.map(Long::valueOf)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
}
|
||||||
if (handoverTaskOrderIds == null || handoverTaskOrderIds.isEmpty()) {
|
if (handoverTaskOrderIds == null || handoverTaskOrderIds.isEmpty()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -315,7 +330,15 @@ public class HandoverTaskOrderDomainService {
|
|||||||
* @return Boolean
|
* @return Boolean
|
||||||
*/
|
*/
|
||||||
public Boolean completeHandover(HandoverTaskOrderDO handoverTaskOrderDO) {
|
public Boolean completeHandover(HandoverTaskOrderDO handoverTaskOrderDO) {
|
||||||
List<Long> handoverTaskOrderIds = handoverTaskOrderDO.getHandoverTaskOrderIds();
|
List<String> handoverTaskOrderIdsStr = handoverTaskOrderDO.getHandoverTaskOrderIds();
|
||||||
|
List<Long> handoverTaskOrderIds = null;
|
||||||
|
if (handoverTaskOrderIdsStr != null && !handoverTaskOrderIdsStr.isEmpty()) {
|
||||||
|
handoverTaskOrderIds = handoverTaskOrderIdsStr.stream()
|
||||||
|
.filter(str -> str != null && !str.trim().isEmpty())
|
||||||
|
.map(Long::valueOf)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
System.out.println("handoverTaskOrderIds: " + handoverTaskOrderIds);
|
||||||
if (handoverTaskOrderIds == null || handoverTaskOrderIds.isEmpty()) {
|
if (handoverTaskOrderIds == null || handoverTaskOrderIds.isEmpty()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -698,7 +721,14 @@ public class HandoverTaskOrderDomainService {
|
|||||||
*/
|
*/
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public boolean taskDistribution(HandoverTaskOrderDO handoverTaskOrderDO) {
|
public boolean taskDistribution(HandoverTaskOrderDO handoverTaskOrderDO) {
|
||||||
List<Long> handoverTaskOrderIds = handoverTaskOrderDO.getHandoverTaskOrderIds();
|
List<String> handoverTaskOrderIdsStr = handoverTaskOrderDO.getHandoverTaskOrderIds();
|
||||||
|
List<Long> handoverTaskOrderIds = null;
|
||||||
|
if (handoverTaskOrderIdsStr != null && !handoverTaskOrderIdsStr.isEmpty()) {
|
||||||
|
handoverTaskOrderIds = handoverTaskOrderIdsStr.stream()
|
||||||
|
.filter(str -> str != null && !str.trim().isEmpty())
|
||||||
|
.map(Long::valueOf)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
}
|
||||||
if (handoverTaskOrderIds == null || handoverTaskOrderIds.isEmpty()) {
|
if (handoverTaskOrderIds == null || handoverTaskOrderIds.isEmpty()) {
|
||||||
throw new ServiceException("未选择交接作业单,请重新选择");
|
throw new ServiceException("未选择交接作业单,请重新选择");
|
||||||
}
|
}
|
||||||
@@ -710,7 +740,7 @@ public class HandoverTaskOrderDomainService {
|
|||||||
throw new ServiceException("交接作业单ID不能为空,请重新选择");
|
throw new ServiceException("交接作业单ID不能为空,请重新选择");
|
||||||
}
|
}
|
||||||
// 更新 DO 对象中的列表,确保后续调用使用过滤后的列表
|
// 更新 DO 对象中的列表,确保后续调用使用过滤后的列表
|
||||||
handoverTaskOrderDO.setHandoverTaskOrderIds(handoverTaskOrderIds);
|
handoverTaskOrderDO.setHandoverTaskOrderIds(handoverTaskOrderIdsStr);
|
||||||
List<HandoverTaskOrder> handoverTaskOrders = handoverTaskOrderService.list(new LambdaQueryWrapper<HandoverTaskOrder>()
|
List<HandoverTaskOrder> handoverTaskOrders = handoverTaskOrderService.list(new LambdaQueryWrapper<HandoverTaskOrder>()
|
||||||
.in(HandoverTaskOrder::getHandoverTaskOrderId, handoverTaskOrderIds)
|
.in(HandoverTaskOrder::getHandoverTaskOrderId, handoverTaskOrderIds)
|
||||||
.eq(HandoverTaskOrder::getTaskDistribution, 2)
|
.eq(HandoverTaskOrder::getTaskDistribution, 2)
|
||||||
|
|||||||
+7
-4
@@ -1,9 +1,6 @@
|
|||||||
package com.mhd.wms.domain.materialBaseInfo.entity;
|
package com.mhd.wms.domain.materialBaseInfo.entity;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.IdType;
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import com.mhd.common.core.annotation.Excel;
|
import com.mhd.common.core.annotation.Excel;
|
||||||
import com.mhd.common.core.handler.ListTypeHandler;
|
import com.mhd.common.core.handler.ListTypeHandler;
|
||||||
@@ -47,14 +44,17 @@ public class MaterialBaseInfo extends BaseVOEntity {
|
|||||||
|
|
||||||
@ApiModelProperty("货主id")
|
@ApiModelProperty("货主id")
|
||||||
@Excel(name = "货主id")
|
@Excel(name = "货主id")
|
||||||
|
@TableField(updateStrategy = FieldStrategy.IGNORED)
|
||||||
private Long shipperId;
|
private Long shipperId;
|
||||||
|
|
||||||
@ApiModelProperty("货主编码")
|
@ApiModelProperty("货主编码")
|
||||||
@Excel(name = "货主编码")
|
@Excel(name = "货主编码")
|
||||||
|
@TableField(updateStrategy = FieldStrategy.IGNORED)
|
||||||
private String shipperCode;
|
private String shipperCode;
|
||||||
|
|
||||||
@ApiModelProperty("货主名称")
|
@ApiModelProperty("货主名称")
|
||||||
@Excel(name = "货主名称")
|
@Excel(name = "货主名称")
|
||||||
|
@TableField(updateStrategy = FieldStrategy.IGNORED)
|
||||||
private String shipperName;
|
private String shipperName;
|
||||||
|
|
||||||
@ApiModelProperty("物料编码")
|
@ApiModelProperty("物料编码")
|
||||||
@@ -240,4 +240,7 @@ public class MaterialBaseInfo extends BaseVOEntity {
|
|||||||
@ApiModelProperty(name = "组织(多个用,分开)")
|
@ApiModelProperty(name = "组织(多个用,分开)")
|
||||||
private String orgId;
|
private String orgId;
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "是否正常物料: 0-是 1-否")
|
||||||
|
private Integer isNormalMaterial;
|
||||||
|
|
||||||
}
|
}
|
||||||
+3
@@ -289,4 +289,7 @@ public class MaterialBaseInfoPO extends BaseVOEntity {
|
|||||||
|
|
||||||
@ApiModelProperty(name = "组织(多个用,分开)")
|
@ApiModelProperty(name = "组织(多个用,分开)")
|
||||||
private String orgId;
|
private String orgId;
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "是否正常物料: 0-是 1-否")
|
||||||
|
private Integer isNormalMaterial;
|
||||||
}
|
}
|
||||||
+3
@@ -262,4 +262,7 @@ public class MaterialBaseInfoDO extends BaseVOEntity {
|
|||||||
|
|
||||||
@ApiModelProperty(name = "组织(多个用,分开)")
|
@ApiModelProperty(name = "组织(多个用,分开)")
|
||||||
private String orgId;
|
private String orgId;
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "是否正常物料: 0-是 1-否")
|
||||||
|
private Integer isNormalMaterial;
|
||||||
}
|
}
|
||||||
+2
-2
@@ -1397,7 +1397,7 @@ public class StockOutOrderDomainService {
|
|||||||
handoverTaskOrderDO1.setOperatorsBy(stockOutOrder.getWorkUserId());
|
handoverTaskOrderDO1.setOperatorsBy(stockOutOrder.getWorkUserId());
|
||||||
List<Long> ids = new ArrayList<>();
|
List<Long> ids = new ArrayList<>();
|
||||||
ids.add(handoverTaskOrder.getHandoverTaskOrderId());
|
ids.add(handoverTaskOrder.getHandoverTaskOrderId());
|
||||||
handoverTaskOrderDO1.setHandoverTaskOrderIds(ids);
|
handoverTaskOrderDO1.setHandoverTaskOrderIds(ids.stream().map(String::valueOf).collect(Collectors.toList()));
|
||||||
DeliveTask deliveTask = deliveTaskService.getOne(new LambdaQueryWrapper<DeliveTask>()
|
DeliveTask deliveTask = deliveTaskService.getOne(new LambdaQueryWrapper<DeliveTask>()
|
||||||
.eq(DeliveTask::getTrackingNumber, handoverTaskOrder.getTaskNumber())
|
.eq(DeliveTask::getTrackingNumber, handoverTaskOrder.getTaskNumber())
|
||||||
.eq(DeliveTask::getDelFlag, 1));
|
.eq(DeliveTask::getDelFlag, 1));
|
||||||
@@ -1412,7 +1412,7 @@ public class StockOutOrderDomainService {
|
|||||||
HandoverTaskOrderDO handoverTaskOrderDO = new HandoverTaskOrderDO();
|
HandoverTaskOrderDO handoverTaskOrderDO = new HandoverTaskOrderDO();
|
||||||
List<Long> handoverTaskOrderId = new ArrayList<>();
|
List<Long> handoverTaskOrderId = new ArrayList<>();
|
||||||
handoverTaskOrderId.add(handoverTaskOrder.getHandoverTaskOrderId());
|
handoverTaskOrderId.add(handoverTaskOrder.getHandoverTaskOrderId());
|
||||||
handoverTaskOrderDO.setHandoverTaskOrderIds(handoverTaskOrderId);
|
handoverTaskOrderDO.setHandoverTaskOrderIds(handoverTaskOrderId.stream().map(String::valueOf).collect(Collectors.toList()));
|
||||||
handoverTaskOrderDomainService.completeHandover(handoverTaskOrderDO);
|
handoverTaskOrderDomainService.completeHandover(handoverTaskOrderDO);
|
||||||
}
|
}
|
||||||
//出库交接后生成电子签名记录
|
//出库交接后生成电子签名记录
|
||||||
|
|||||||
+26
-26
@@ -131,36 +131,36 @@ public class HandoverTaskOrderDTO extends BaseVOEntity {
|
|||||||
private Long permissionMenuId;
|
private Long permissionMenuId;
|
||||||
|
|
||||||
@ApiModelProperty("交接作业单id")
|
@ApiModelProperty("交接作业单id")
|
||||||
private List<Long> handoverTaskOrderIds;
|
private List<String> handoverTaskOrderIds;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 自定义setter方法,支持单个整数和数组两种格式
|
* 自定义setter方法,支持单个整数和数组两种格式
|
||||||
*/
|
*/
|
||||||
public void setHandoverTaskOrderIds(Object value) {
|
// public void setHandoverTaskOrderIds(Object value) {
|
||||||
if (value == null) {
|
// if (value == null) {
|
||||||
this.handoverTaskOrderIds = null;
|
// this.handoverTaskOrderIds = null;
|
||||||
return;
|
// return;
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
List<Long> result = new ArrayList<>();
|
// List<Long> result = new ArrayList<>();
|
||||||
|
//
|
||||||
if (value instanceof List) {
|
// if (value instanceof List) {
|
||||||
// 如果是列表,遍历并转换
|
// // 如果是列表,遍历并转换
|
||||||
List<?> list = (List<?>) value;
|
// List<?> list = (List<?>) value;
|
||||||
for (Object item : list) {
|
// for (Object item : list) {
|
||||||
if (item != null) {
|
// if (item != null) {
|
||||||
if (item instanceof Number) {
|
// if (item instanceof Number) {
|
||||||
result.add(((Number) item).longValue());
|
// result.add(((Number) item).longValue());
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
} else if (value instanceof Number) {
|
// } else if (value instanceof Number) {
|
||||||
// 如果是单个数字,转换为列表
|
// // 如果是单个数字,转换为列表
|
||||||
result.add(((Number) value).longValue());
|
// result.add(((Number) value).longValue());
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
this.handoverTaskOrderIds = result.isEmpty() ? null : result;
|
// this.handoverTaskOrderIds = result.isEmpty() ? null : result;
|
||||||
}
|
// }
|
||||||
|
|
||||||
@ApiModelProperty("作业人用户ID")
|
@ApiModelProperty("作业人用户ID")
|
||||||
@Excel(name = "作业人用户ID")
|
@Excel(name = "作业人用户ID")
|
||||||
|
|||||||
+2
@@ -314,4 +314,6 @@ public class MaterialBaseInfoDTO extends BaseVOEntity {
|
|||||||
|
|
||||||
@ApiModelProperty(name = "组织(多个用,分开)")
|
@ApiModelProperty(name = "组织(多个用,分开)")
|
||||||
private String orgId;
|
private String orgId;
|
||||||
|
@ApiModelProperty(name = "是否正常物料: 0-是 1-否")
|
||||||
|
private Integer isNormalMaterial;
|
||||||
}
|
}
|
||||||
+2
-1
@@ -111,6 +111,7 @@ public class HandoverTaskOrderApi extends BaseController {
|
|||||||
@ApiOperation("完成交接")
|
@ApiOperation("完成交接")
|
||||||
@PostMapping("/completeHandover")
|
@PostMapping("/completeHandover")
|
||||||
public AjaxResult completeHandover(@RequestBody HandoverTaskOrderDTO handoverTaskOrderDTO) {
|
public AjaxResult completeHandover(@RequestBody HandoverTaskOrderDTO handoverTaskOrderDTO) {
|
||||||
|
System.out.println("completeHandover"+handoverTaskOrderDTO.getHandoverTaskOrderIds());
|
||||||
HandoverTaskOrderDO handoverTaskOrderDO = handoverTaskOrderAssembler.toDO(handoverTaskOrderDTO);
|
HandoverTaskOrderDO handoverTaskOrderDO = handoverTaskOrderAssembler.toDO(handoverTaskOrderDTO);
|
||||||
return toAjax(handoverTaskOrderApplicationService.completeHandover(handoverTaskOrderDO));
|
return toAjax(handoverTaskOrderApplicationService.completeHandover(handoverTaskOrderDO));
|
||||||
}
|
}
|
||||||
@@ -125,4 +126,4 @@ public class HandoverTaskOrderApi extends BaseController {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -14,18 +14,18 @@ spring:
|
|||||||
nacos:
|
nacos:
|
||||||
discovery:
|
discovery:
|
||||||
# server-addr: 127.0.0.1:8848
|
# server-addr: 127.0.0.1:8848
|
||||||
server-addr: 10.33.0.129:6010
|
# server-addr: 10.33.0.129:6010
|
||||||
# 线上测试环境配置 容器名+端口号
|
# 线上测试环境配置 容器名+端口号
|
||||||
# server-addr: 10.102.192.30:6848
|
server-addr: 10.102.192.30:6848
|
||||||
username: nacos
|
username: nacos
|
||||||
password: manhuoda@2023
|
password: manhuoda@2023
|
||||||
#线上正式环境
|
#线上正式环境
|
||||||
# server-addr: 10.102.192.105:6848
|
# server-addr: 10.102.192.105:6848
|
||||||
config:
|
config:
|
||||||
# server-addr: 127.0.0.1:8848
|
# server-addr: 127.0.0.1:8848
|
||||||
server-addr: 10.33.0.129:6010
|
# server-addr: 10.33.0.129:6010
|
||||||
# 线上测试环境配置 容器名+端口号
|
# 线上测试环境配置 容器名+端口号
|
||||||
# server-addr: 10.102.192.30:6848
|
server-addr: 10.102.192.30:6848
|
||||||
username: nacos
|
username: nacos
|
||||||
password: manhuoda@2023
|
password: manhuoda@2023
|
||||||
#线上正式环境
|
#线上正式环境
|
||||||
|
|||||||
@@ -68,6 +68,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<result property="insureAmount" column="insure_amount" />
|
<result property="insureAmount" column="insure_amount" />
|
||||||
<result property="chargeStandard" column="charge_standard" />
|
<result property="chargeStandard" column="charge_standard" />
|
||||||
<result property="chargeStandardClass" column="charge_standard_class" />
|
<result property="chargeStandardClass" column="charge_standard_class" />
|
||||||
|
<result property="isNormalMaterial" column="is_normal_material" />
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
|
|
||||||
@@ -77,7 +78,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
material_shape_name, a.material_size, a.material_length, a.material_width, a.material_height, a.remark, a.nullify, a.create_time, a.create_by, a.create_by_name, a.update_time, a.update_by, a.update_by_name, a.del_flag, a.common,
|
material_shape_name, a.material_size, a.material_length, a.material_width, a.material_height, a.remark, a.nullify, a.create_time, a.create_by, a.create_by_name, a.update_time, a.update_by, a.update_by_name, a.del_flag, a.common,
|
||||||
sku_code, a.unit_price, a.currency, a.origin_country, a.hs_code, a.declaration_unit, a.statutory_unit, a.statutory_second_unit, a.copy_code,
|
sku_code, a.unit_price, a.currency, a.origin_country, a.hs_code, a.declaration_unit, a.statutory_unit, a.statutory_second_unit, a.copy_code,
|
||||||
a.push_status,a.push_time,a.push_by,a.goods_type,a.gross_weight,a.push_by_name,a.unit,a.INSURE_AMOUNT,a.CHARGE_STANDARD,
|
a.push_status,a.push_time,a.push_by,a.goods_type,a.gross_weight,a.push_by_name,a.unit,a.INSURE_AMOUNT,a.CHARGE_STANDARD,
|
||||||
specification_model as specification_model,nvl(b.stock_qty,0) as stock_quantity,c.charge_standard as charge_standard_class
|
specification_model as specification_model,nvl(b.stock_qty,0) as stock_quantity,c.charge_standard as charge_standard_class,a.is_normal_material
|
||||||
|
|
||||||
from material_base_info a left join (
|
from material_base_info a left join (
|
||||||
select material_base_info_id, sum(INVENTORY_QUANTITY) as stock_qty from MATERIAL_INVENTORY group by material_base_info_id
|
select material_base_info_id, sum(INVENTORY_QUANTITY) as stock_qty from MATERIAL_INVENTORY group by material_base_info_id
|
||||||
@@ -121,7 +122,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
and a.top_organization_id = #{topOrganizationId}
|
and a.top_organization_id = #{topOrganizationId}
|
||||||
</if>
|
</if>
|
||||||
<if test="shipperId != null ">
|
<if test="shipperId != null ">
|
||||||
and a.shipper_id = #{shipperId}
|
and (a.shipper_id = #{shipperId} or a.shipper_id is null or a.shipper_id = 0)
|
||||||
</if>
|
</if>
|
||||||
<if test="shipperCode != null and shipperCode != ''">
|
<if test="shipperCode != null and shipperCode != ''">
|
||||||
and a.shipper_code like concat('%', #{shipperCode}, '%')
|
and a.shipper_code like concat('%', #{shipperCode}, '%')
|
||||||
@@ -267,7 +268,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
FROM ... LEFT JOIN material_base_info b ON ...
|
FROM ... LEFT JOIN material_base_info b ON ...
|
||||||
因此这里所有列名都加上 b. 前缀以避免和主表列名歧义 -->
|
因此这里所有列名都加上 b. 前缀以避免和主表列名歧义 -->
|
||||||
<if test="shipperId != null ">
|
<if test="shipperId != null ">
|
||||||
and b.shipper_id = #{shipperId}
|
and (b.shipper_id = #{shipperId} or b.shipper_id is null or b.shipper_id = 0)
|
||||||
</if>
|
</if>
|
||||||
<if test="shipperCode != null and shipperCode != ''">
|
<if test="shipperCode != null and shipperCode != ''">
|
||||||
and b.shipper_code like concat('%', #{shipperCode}, '%')
|
and b.shipper_code like concat('%', #{shipperCode}, '%')
|
||||||
|
|||||||
@@ -624,7 +624,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<select id="getMaxStockInOrderByPrefixAndOrgAndWarehouse" resultType="java.lang.String">
|
<select id="getMaxStockInOrderByPrefixAndOrgAndWarehouse" resultType="java.lang.String">
|
||||||
SELECT in_order_number FROM NGWL_TEST_OMS.reserve_stock_in_order
|
SELECT in_order_number FROM NGWL_TEST_OMS.reserve_stock_in_order
|
||||||
WHERE in_order_number LIKE concat(#{prefix}, '%')
|
WHERE in_order_number LIKE concat(#{prefix}, '%')
|
||||||
AND del_flag = 1
|
|
||||||
<if test="organizationId != null">
|
<if test="organizationId != null">
|
||||||
AND organization_id = #{organizationId}
|
AND organization_id = #{organizationId}
|
||||||
</if>
|
</if>
|
||||||
@@ -636,7 +636,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
|
|
||||||
SELECT in_order_number FROM NGWL_TEST_OMS.reservation_stock_in_order
|
SELECT in_order_number FROM NGWL_TEST_OMS.reservation_stock_in_order
|
||||||
WHERE in_order_number LIKE concat(#{prefix}, '%')
|
WHERE in_order_number LIKE concat(#{prefix}, '%')
|
||||||
AND del_flag = 1
|
|
||||||
<if test="organizationId != null">
|
<if test="organizationId != null">
|
||||||
AND organization_id = #{organizationId}
|
AND organization_id = #{organizationId}
|
||||||
</if>
|
</if>
|
||||||
@@ -648,7 +648,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
|
|
||||||
SELECT in_order_number FROM NGWL_TEST_OMS.execution_stock_in_order
|
SELECT in_order_number FROM NGWL_TEST_OMS.execution_stock_in_order
|
||||||
WHERE in_order_number LIKE concat(#{prefix}, '%')
|
WHERE in_order_number LIKE concat(#{prefix}, '%')
|
||||||
AND del_flag = 1
|
|
||||||
<if test="organizationId != null">
|
<if test="organizationId != null">
|
||||||
AND organization_id = #{organizationId}
|
AND organization_id = #{organizationId}
|
||||||
</if>
|
</if>
|
||||||
@@ -660,7 +660,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
|
|
||||||
SELECT in_order_number FROM stock_in_order
|
SELECT in_order_number FROM stock_in_order
|
||||||
WHERE in_order_number LIKE concat(#{prefix}, '%')
|
WHERE in_order_number LIKE concat(#{prefix}, '%')
|
||||||
AND del_flag = 1
|
|
||||||
<if test="organizationId != null">
|
<if test="organizationId != null">
|
||||||
AND organization_id = #{organizationId}
|
AND organization_id = #{organizationId}
|
||||||
</if>
|
</if>
|
||||||
|
|||||||
@@ -531,7 +531,7 @@
|
|||||||
<select id="getMaxStockOutOrderByPrefixAndOrgAndWarehouse" resultType="java.lang.String">
|
<select id="getMaxStockOutOrderByPrefixAndOrgAndWarehouse" resultType="java.lang.String">
|
||||||
SELECT out_order_number FROM NGWL_TEST_OMS.reserve_stock_out_order
|
SELECT out_order_number FROM NGWL_TEST_OMS.reserve_stock_out_order
|
||||||
WHERE out_order_number LIKE concat(#{prefix}, '%')
|
WHERE out_order_number LIKE concat(#{prefix}, '%')
|
||||||
AND del_flag = 1
|
|
||||||
<if test="organizationId != null">
|
<if test="organizationId != null">
|
||||||
AND organization_id = #{organizationId}
|
AND organization_id = #{organizationId}
|
||||||
</if>
|
</if>
|
||||||
@@ -543,7 +543,7 @@
|
|||||||
|
|
||||||
SELECT out_order_number FROM NGWL_TEST_OMS.reservation_stock_out_order
|
SELECT out_order_number FROM NGWL_TEST_OMS.reservation_stock_out_order
|
||||||
WHERE out_order_number LIKE concat(#{prefix}, '%')
|
WHERE out_order_number LIKE concat(#{prefix}, '%')
|
||||||
AND del_flag = 1
|
|
||||||
<if test="organizationId != null">
|
<if test="organizationId != null">
|
||||||
AND organization_id = #{organizationId}
|
AND organization_id = #{organizationId}
|
||||||
</if>
|
</if>
|
||||||
@@ -555,7 +555,7 @@
|
|||||||
|
|
||||||
SELECT out_order_number FROM NGWL_TEST_OMS.execution_stock_out_order
|
SELECT out_order_number FROM NGWL_TEST_OMS.execution_stock_out_order
|
||||||
WHERE out_order_number LIKE concat(#{prefix}, '%')
|
WHERE out_order_number LIKE concat(#{prefix}, '%')
|
||||||
AND del_flag = 1
|
|
||||||
<if test="organizationId != null">
|
<if test="organizationId != null">
|
||||||
AND organization_id = #{organizationId}
|
AND organization_id = #{organizationId}
|
||||||
</if>
|
</if>
|
||||||
@@ -567,7 +567,7 @@
|
|||||||
|
|
||||||
SELECT out_order_number FROM stock_out_order
|
SELECT out_order_number FROM stock_out_order
|
||||||
WHERE out_order_number LIKE concat(#{prefix}, '%')
|
WHERE out_order_number LIKE concat(#{prefix}, '%')
|
||||||
AND del_flag = 1
|
|
||||||
<if test="organizationId != null">
|
<if test="organizationId != null">
|
||||||
AND organization_id = #{organizationId}
|
AND organization_id = #{organizationId}
|
||||||
</if>
|
</if>
|
||||||
|
|||||||
Reference in New Issue
Block a user