From 3452286eca53d16132435767d9425c94da8af1a0 Mon Sep 17 00:00:00 2001 From: xs Date: Tue, 21 Jan 2025 15:19:15 +0800 Subject: [PATCH] =?UTF-8?q?4.0.6=20MES:=E9=94=80=E5=94=AE=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E5=AF=BC=E5=85=A5=E5=8A=9F=E8=83=BD=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mes/controller/MesImportController.java | 1 - .../java/com/hw/mes/domain/MesSaleOrder.java | 12 +++++ .../service/impl/MesSaleOrderServiceImpl.java | 47 +++++++++++++------ .../mapper/mes/MesSaleOrderMapper.xml | 1 + .../impl/FifthWmsBoardServiceImpl.java | 9 ++++ .../service/impl/FourthWmsBoardService.java | 17 ++++--- hw-ui/src/views/mes/saleOrder/index.vue | 16 +++---- 7 files changed, 74 insertions(+), 29 deletions(-) diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesImportController.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesImportController.java index 31e0d393..00498f5c 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesImportController.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesImportController.java @@ -114,7 +114,6 @@ public class MesImportController extends BaseController { { ExcelUtil util = new ExcelUtil<>(MesSaleOrder.class); List mesSaleOrderList = util.importExcel(file.getInputStream()); - System.out.println(mesSaleOrderList.toString()); return success(mesSaleOrderService.importSaleOrderData(mesSaleOrderList)); } diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/MesSaleOrder.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/MesSaleOrder.java index 394c914b..f4c0c4fa 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/MesSaleOrder.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/MesSaleOrder.java @@ -207,10 +207,14 @@ public class MesSaleOrder extends BaseEntity { private String overtimeFlag; + @Excel(name = "项目编码") + private String projectNo; + @Excel(name = "项目名称") private String projectName;//项目名称 + public String getMaterialModel() { return materialModel; } @@ -507,6 +511,14 @@ public class MesSaleOrder extends BaseEntity { this.overtimeFlag = overtimeFlag; } + public String getProjectNo() { + return projectNo; + } + + public void setProjectNo(String projectNo) { + this.projectNo = projectNo; + } + public String getProjectName() { return projectName; } diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesSaleOrderServiceImpl.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesSaleOrderServiceImpl.java index 12e1ac99..d4c31d87 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesSaleOrderServiceImpl.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesSaleOrderServiceImpl.java @@ -399,46 +399,65 @@ public class MesSaleOrderServiceImpl implements IMesSaleOrderService { /** * 导入销售订单 + * * @param mesSaleOrderList * @return */ @Override + @Transactional(rollbackFor = Exception.class) public int importSaleOrderData(List mesSaleOrderList) { Date currentDate = new Date(); String nickName = SecurityUtils.getLoginUser().getNickname(); + String saleOrderCode = Seq.getNewId(Seq.mesSaleOrderSeqType, Seq.mesSaleOrderSeqCode); + int i = 1; + StringBuilder errorMsg = new StringBuilder(); for (MesSaleOrder mesSaleOrder : mesSaleOrderList) { String materialCode = mesSaleOrder.getMaterialCode(); - if(StringUtils.isEmpty(materialCode)){ - throw new ServiceException("物料编码不能为空"); + MesBaseMaterialInfo mesBaseMaterialInfo = null; + if (StringUtils.isEmpty(materialCode)) { + errorMsg.append("第").append(i).append("条记录,物料编码不能为空;\n"); + } else { + mesBaseMaterialInfo = mesBaseMaterialInfoMapper.selectMesBaseMaterialInfoByMaterialCode(materialCode); + if (mesBaseMaterialInfo == null) { + errorMsg.append("第").append(i).append("条记录,物料编码为").append(materialCode).append(",找不到此物料;\n"); + }else{ + mesSaleOrder.setMaterialId(mesBaseMaterialInfo.getErpId()); + } } BigDecimal orderAmount = mesSaleOrder.getOrderAmount(); - if(orderAmount==null || orderAmount.compareTo(BigDecimal.ZERO)<=0){ - throw new ServiceException("订单数量需大于0"); + if (orderAmount == null || orderAmount.compareTo(BigDecimal.ZERO) <= 0) { + errorMsg.append("第").append(i).append("条记录,订单数量需大于0;\n"); } - - MesBaseMaterialInfo mesBaseMaterialInfo = mesBaseMaterialInfoMapper.selectMesBaseMaterialInfoByMaterialCode(materialCode); - String projectName = mesSaleOrder.getProjectName(); - if(StringUtils.isNotEmpty(projectName)){ + String projectNo = mesSaleOrder.getProjectNo(); + if (StringUtils.isEmpty(projectNo)) { + errorMsg.append("第").append(i).append("条记录,项目编码不能为空;\n"); + } else { MesProjectInfo queryProjectInfo = new MesProjectInfo(); - queryProjectInfo.setProjectName(projectName); + queryProjectInfo.setProjectNo(projectNo); List mesProjectInfoList = mesProjectInfoMapper.selectMesProjectInfoList(queryProjectInfo); - if(mesProjectInfoList!=null && !mesProjectInfoList.isEmpty()){ + if (mesProjectInfoList == null || mesProjectInfoList.isEmpty()) { + errorMsg.append("第").append(i).append("条记录,项目编码为").append(projectNo).append(",找不到此项目;\n"); + } else { MesProjectInfo mesProjectInfo = mesProjectInfoList.get(0); mesSaleOrder.setTondBase(String.valueOf(mesProjectInfo.getErpId())); } } - String saleOrderCode = Seq.getNewId(Seq.mesSaleOrderSeqType,Seq.mesSaleOrderSeqCode); - mesSaleOrder.setSaleorderCode(saleOrderCode); - mesSaleOrder.setMaterialId(mesBaseMaterialInfo.getErpId()); mesSaleOrder.setCreateTime(currentDate); // mesSaleOrder.setErpModifyDate(currentDate); mesSaleOrder.setCreateBy(nickName); mesSaleOrder.setSaleOrderClassfication(MesConstants.MES_SALE_ORDER_CLASSFICATION_MES); - mesSaleOrderMapper.insertMesSaleOrder(mesSaleOrder); + i++; + } + if (errorMsg.length() > 0) { + throw new ServiceException(errorMsg.toString()); + } + + for (MesSaleOrder mesSaleOrder : mesSaleOrderList) { + mesSaleOrderMapper.insertMesSaleOrder(mesSaleOrder); } return 1; diff --git a/hw-modules/hw-mes/src/main/resources/mapper/mes/MesSaleOrderMapper.xml b/hw-modules/hw-mes/src/main/resources/mapper/mes/MesSaleOrderMapper.xml index 1c45efaf..9140f171 100644 --- a/hw-modules/hw-mes/src/main/resources/mapper/mes/MesSaleOrderMapper.xml +++ b/hw-modules/hw-mes/src/main/resources/mapper/mes/MesSaleOrderMapper.xml @@ -257,6 +257,7 @@ mso.end_date, mso.complete_date, mso.sale_order_classfication, + mso.create_time, mpi.project_name from mes_sale_order mso left join mes_base_material_info mbmi on ((mso.material_id = mbmi.erp_id and (mso.sale_order_classfication='1' or mso.sale_order_classfication='3')) or (mso.material_id = mbmi.material_id and mso.sale_order_classfication='2')) diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/board/service/impl/FifthWmsBoardServiceImpl.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/board/service/impl/FifthWmsBoardServiceImpl.java index bd6a8dc7..f21198e5 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/board/service/impl/FifthWmsBoardServiceImpl.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/board/service/impl/FifthWmsBoardServiceImpl.java @@ -9,6 +9,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.math.BigDecimal; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -49,6 +50,14 @@ public class FifthWmsBoardServiceImpl implements FifthWmsBorderService { List list1 = wmsRawOutstockMapper.locationCount();//辅料近一个月出库数量 List list2 = wmsProductInstockMapper.locationCount(); List list3 = wmsProductOutstockMapper.locationCount(); + list.remove(null); + list.removeAll(Collections.singleton(null)); + list1.remove(null); + list1.removeAll(Collections.singleton(null)); + list2.remove(null); + list2.removeAll(Collections.singleton(null)); + list3.remove(null); + list3.removeAll(Collections.singleton(null)); if(list!=null && !list.isEmpty()) { for (WmsProductInstock wmsProductInstock : list) { if (wmsProductInstock.getWarehouseId() == 511) { diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/board/service/impl/FourthWmsBoardService.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/board/service/impl/FourthWmsBoardService.java index 45d3c8f2..d550f796 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/board/service/impl/FourthWmsBoardService.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/board/service/impl/FourthWmsBoardService.java @@ -58,6 +58,7 @@ public class FourthWmsBoardService implements IFourthWmsBoardService { /** * 获取四楼仓库的成品库存 + * * @return */ @Override @@ -70,21 +71,24 @@ public class FourthWmsBoardService implements IFourthWmsBoardService { /** * 获取四楼仓储看板成品出入库数量 + * * @return */ @Override - public JSONObject getFourthFloorProductInOutstockInfo(){ + public JSONObject getFourthFloorProductInOutstockInfo() { JSONObject resultJson = new JSONObject(); //四楼成品库近一个月的成品入库数量 WmsProductInstock wmsProductInstock = wmsProductInstockMapper.fourthFloorLatestMonthProductInstock(); //四楼成品库近一个月的成品出库数量 WmsProductOutstock wmsProductOutstock = wmsProductOutstockMapper.fourthFloorLatestMonthProductOutstock(); - BigDecimal productInstockAmount = wmsProductInstock.getInstockAmount().setScale(0, RoundingMode.HALF_UP); - BigDecimal productOutStockAmount = wmsProductOutstock.getOutstockQty().setScale(0, RoundingMode.HALF_UP); + BigDecimal productInstockAmount = wmsProductInstock == null ? BigDecimal.ZERO + : wmsProductInstock.getInstockAmount().setScale(0, RoundingMode.HALF_UP); + BigDecimal productOutStockAmount = wmsProductOutstock == null ? BigDecimal.ZERO + : wmsProductOutstock.getOutstockQty().setScale(0, RoundingMode.HALF_UP); - resultJson.put("productInstockAmount",productInstockAmount); - resultJson.put("productOutStockAmount",productOutStockAmount); + resultJson.put("productInstockAmount", productInstockAmount); + resultJson.put("productOutStockAmount", productOutStockAmount); return resultJson; } @@ -92,11 +96,12 @@ public class FourthWmsBoardService implements IFourthWmsBoardService { /** * 获取总库存信息 + * * @param queryStockTotal * @return */ @Override - public List getRawStockTotals(WmsStockTotal queryStockTotal){ + public List getRawStockTotals(WmsStockTotal queryStockTotal) { return wmsStockTotalMapper.selectWmsStockTotalList(queryStockTotal); } diff --git a/hw-ui/src/views/mes/saleOrder/index.vue b/hw-ui/src/views/mes/saleOrder/index.vue index 5bf60d69..23697000 100644 --- a/hw-ui/src/views/mes/saleOrder/index.vue +++ b/hw-ui/src/views/mes/saleOrder/index.vue @@ -227,9 +227,9 @@ {{ parseTime(scope.row.approveDate, '{y}-{m}-{d} {h}:{i}:{s}') }} - + @@ -245,7 +245,7 @@ icon="el-icon-edit" @click="handleBindingPurchase(scope.row)" v-hasPermi="['mes:saleOrder:bind']" - v-if="scope.row.saleOrderClassfication==='1'" + v-if="scope.row.saleOrderClassfication==='1' || scope.row.saleOrderClassfication==='3'" >绑定 已绑定 物料使用 @@ -549,8 +549,8 @@ export default { { key: 13, label: `完成数量`, visible: false }, { key: 14, label: `已发布数量`, visible: false }, { key: 15, label: `是否已下达计划`, visible: false }, - { key: 16, label: `审核日期`, visible: true }, - { key: 17, label: `ERP最后修改日期`, visible: true }, + { key: 16, label: `审核日期`, visible: false }, + { key: 17, label: `ERP最后修改日期`, visible: false }, { key: 18, label: `计划交货日期`, visible: true }, { key: 19, label: `计划开始日期`, visible: false }, { key: 20, label: `计划结束日期`, visible: false }, @@ -558,7 +558,7 @@ export default { { key: 22, label: `是否标识:1-是;0-否`, visible: false }, { key: 23, label: `备注`, visible: false }, { key: 24, label: `创建人`, visible: false }, - { key: 25, label: `创建时间`, visible: false }, + { key: 25, label: `创建时间`, visible: true }, { key: 26, label: `更新人`, visible: false }, { key: 27, label: `更新时间`, visible: false }, ],