Browse Source

[feat]销售管理

销售出货前端页面新增 物料类型、物料单位、加工方式加上字典属性
修复销售订单新增没有物料合计和数量合计的问题
修复销售发起出货出货通知子表没有物料型号的问题
修复销售发起出货仓库出库单子表没有物料型号的问题
dev
liuxiaoxu 3 months ago
parent
commit
a5951f53ca
  1. 26
      ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysSalesOrderServiceImpl.java
  2. 1
      ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysSalesShippingInformServiceImpl.java
  3. 1
      ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseOutOrderServiceImpl.java
  4. 15
      ruoyi-admin/src/main/resources/templates/system/salesOrder/salesDeliverGoods.html

26
ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysSalesOrderServiceImpl.java

@ -298,10 +298,28 @@ public class SysSalesOrderServiceImpl implements ISysSalesOrderService
*/ */
@Override @Override
public int insertSysSalesOrder(SysSalesOrder sysSalesOrder){ public int insertSysSalesOrder(SysSalesOrder sysSalesOrder){
List<SysSalesOrderChild> sysSalesOrderChildList = sysSalesOrder.getSysSalesOrderChildList();
// 校验子表数据
checkSysSalesOrderChildList(sysSalesOrder,sysSalesOrderChildList);
//数量合计
int sumMaterialNum = sysSalesOrderChildList.stream().mapToInt(SysSalesOrderChild::getMaterialNum).sum();
//物料合计
int size = sysSalesOrderChildList.size();
String loginName = ShiroUtils.getLoginName(); String loginName = ShiroUtils.getLoginName();
sysSalesOrder.setCreateBy(loginName); sysSalesOrder.setCreateBy(loginName);
sysSalesOrder.setCreateTime(DateUtils.getNowDate()); sysSalesOrder.setCreateTime(DateUtils.getNowDate());
sysSalesOrder.setSalesOrderCode(getId()); sysSalesOrder.setSalesOrderCode(getId());
sysSalesOrder.setMaterialSum(sumMaterialNum);
sysSalesOrder.setEnterpriseSum(size);
String commonCurrency = sysSalesOrder.getCommonCurrency(); String commonCurrency = sysSalesOrder.getCommonCurrency();
if(RMB.equals(commonCurrency)){ if(RMB.equals(commonCurrency)){
sysSalesOrder.setConfirmTax("1"); sysSalesOrder.setConfirmTax("1");
@ -315,10 +333,7 @@ public class SysSalesOrderServiceImpl implements ISysSalesOrderService
if (s == 0){ if (s == 0){
return 0; return 0;
} }
List<SysSalesOrderChild> sysSalesOrderChildList = sysSalesOrder.getSysSalesOrderChildList();
// 校验子表数据
checkSysSalesOrderChildList(sysSalesOrder,sysSalesOrderChildList);
for (int i = 0; i < s ;i++) { for (int i = 0; i < s ;i++) {
SysSalesOrderChild sysSalesOrderChild = sysSalesOrder.getSysSalesOrderChildList().get(i); SysSalesOrderChild sysSalesOrderChild = sysSalesOrder.getSysSalesOrderChildList().get(i);
@ -348,7 +363,7 @@ public class SysSalesOrderServiceImpl implements ISysSalesOrderService
throw new BusinessException("物料不含税单价美元不能为空"); throw new BusinessException("物料不含税单价美元不能为空");
} }
}
// 检查物料数量是否为空 // 检查物料数量是否为空
boolean anyMaterialNum = sysSalesOrderChildList.stream() boolean anyMaterialNum = sysSalesOrderChildList.stream()
.anyMatch(sysSalesOrderChild -> sysSalesOrderChild.getMaterialNum() == null); .anyMatch(sysSalesOrderChild -> sysSalesOrderChild.getMaterialNum() == null);
@ -370,7 +385,7 @@ public class SysSalesOrderServiceImpl implements ISysSalesOrderService
throw new BusinessException("质保天数不能为空"); throw new BusinessException("质保天数不能为空");
} }
} }
}
/** /**
* 修改销售订单 * 修改销售订单
@ -592,6 +607,7 @@ public class SysSalesOrderServiceImpl implements ISysSalesOrderService
if (hasApplyShippingNum == null) { if (hasApplyShippingNum == null) {
hasApplyShippingNum = 0; // 确保 hasApplyShippingNum 不为 null hasApplyShippingNum = 0; // 确保 hasApplyShippingNum 不为 null
} }
if (hasApplyShippingNum+oldChild.getApplyShippingNum() > oldChild.getMaterialNum()){ if (hasApplyShippingNum+oldChild.getApplyShippingNum() > oldChild.getMaterialNum()){
throw new BusinessException("申请出货数与已申请出货数之和不能大于订单数量"); throw new BusinessException("申请出货数与已申请出货数之和不能大于订单数量");
} }

1
ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysSalesShippingInformServiceImpl.java

@ -276,6 +276,7 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor
sysSalesShippingInformDetail.setOutOrderCode(outOrderCode); sysSalesShippingInformDetail.setOutOrderCode(outOrderCode);
sysSalesShippingInformDetail.setMaterialNo(sysSalesOrderChild.getMaterialCode()); sysSalesShippingInformDetail.setMaterialNo(sysSalesOrderChild.getMaterialCode());
sysSalesShippingInformDetail.setMaterialName(sysSalesOrderChild.getMaterialName()); sysSalesShippingInformDetail.setMaterialName(sysSalesOrderChild.getMaterialName());
sysSalesShippingInformDetail.setMaterialModel(sysSalesOrderChild.getMaterialModel());
sysSalesShippingInformDetail.setMaterialType(sysSalesOrderChild.getMaterialType()); sysSalesShippingInformDetail.setMaterialType(sysSalesOrderChild.getMaterialType());
sysSalesShippingInformDetail.setMaterialBrand(sysSalesOrderChild.getBrand()); sysSalesShippingInformDetail.setMaterialBrand(sysSalesOrderChild.getBrand());
sysSalesShippingInformDetail.setMaterialUnit(sysSalesOrderChild.getUnit()); sysSalesShippingInformDetail.setMaterialUnit(sysSalesOrderChild.getUnit());

1
ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseOutOrderServiceImpl.java

@ -1114,6 +1114,7 @@ public class WarehouseOutOrderServiceImpl implements IWarehouseOutOrderService
warehouseOutOrderDetail.setMaterialNo(sysSalesOrderChild.getMaterialCode()); warehouseOutOrderDetail.setMaterialNo(sysSalesOrderChild.getMaterialCode());
warehouseOutOrderDetail.setMaterialName(sysSalesOrderChild.getMaterialName()); warehouseOutOrderDetail.setMaterialName(sysSalesOrderChild.getMaterialName());
warehouseOutOrderDetail.setMaterialType(sysSalesOrderChild.getMaterialType()); warehouseOutOrderDetail.setMaterialType(sysSalesOrderChild.getMaterialType());
warehouseOutOrderDetail.setMaterialModel(sysSalesOrderChild.getMaterialModel());
warehouseOutOrderDetail.setMaterialBrand(sysSalesOrderChild.getBrand()); warehouseOutOrderDetail.setMaterialBrand(sysSalesOrderChild.getBrand());
warehouseOutOrderDetail.setMaterialUnit(sysSalesOrderChild.getUnit()); warehouseOutOrderDetail.setMaterialUnit(sysSalesOrderChild.getUnit());
warehouseOutOrderDetail.setMaterialDescribe(sysSalesOrderChild.getDescribe()); warehouseOutOrderDetail.setMaterialDescribe(sysSalesOrderChild.getDescribe());

15
ruoyi-admin/src/main/resources/templates/system/salesOrder/salesDeliverGoods.html

@ -121,6 +121,12 @@
var salesOrderIdList = [[${salesOrderIdList}]]; var salesOrderIdList = [[${salesOrderIdList}]];
var materialTypeDatas = [[${@category.getChildByCode('materialType')}]];
var sysUnitClassDatas = [[${@dict.getType('sys_unit_class')}]];
var processMethodDatas = [[${@dict.getType('processMethod')}]];
var prefix = ctx + "system/salesOrder"; var prefix = ctx + "system/salesOrder";
$("#form-salesDeliverGoods-edit").validate({ $("#form-salesDeliverGoods-edit").validate({
focusCleanup: true focusCleanup: true
@ -337,6 +343,9 @@
{ {
title: '物料类型', title: '物料类型',
field: 'materialType', field: 'materialType',
formatter: function(value, row, index) {
return $.table.selectCategoryLabel(materialTypeDatas, value);
}
}, },
{ {
title: '描述', title: '描述',
@ -345,6 +354,9 @@
{ {
title: '单位', title: '单位',
field: 'unit', field: 'unit',
formatter: function(value, row, index) {
return $.table.selectDictLabel(sysUnitClassDatas, value);
}
}, },
{ {
title: '型号', title: '型号',
@ -358,6 +370,9 @@
{ {
title: '加工方式', title: '加工方式',
field: 'processMethod', field: 'processMethod',
formatter: function(value, row, index) {
return $.table.selectDictLabel(processMethodDatas, value);
}
}, },
{ {
title: '订单数量', title: '订单数量',

Loading…
Cancel
Save