From b357f622098e5973696e24be3484da2aeb1d1084 Mon Sep 17 00:00:00 2001 From: 15066119699 Date: Thu, 6 Mar 2025 16:36:48 +0800 Subject: [PATCH] =?UTF-8?q?=E5=87=BA=E5=BA=93=E5=8D=95=E5=87=BA=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/controller/app/AppPmsController.java | 3 + .../app/AppPmsOrderOutController.java | 12 ++-- .../web/controller/app/AppTaskController.java | 25 +++---- .../app/mapper/AppPmsOrderOutMapper.java | 13 ++-- .../ruoyi/app/mapper/AppVehicleMapper.java | 7 ++ .../app/service/IAppPmsOrderOutService.java | 12 ++-- .../ruoyi/app/service/IAppVehicleService.java | 12 +++- .../impl/AppPmsOrderOutServiceImpl.java | 18 ++--- .../service/impl/AppVehicleServiceImpl.java | 70 +++++++++++++++---- .../mapper/app/AppPmsOrderOutMapper.xml | 12 ++-- .../resources/mapper/app/AppVehicleMapper.xml | 5 ++ 11 files changed, 129 insertions(+), 60 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/app/AppPmsController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/app/AppPmsController.java index b3d25bbc..8987a7ce 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/app/AppPmsController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/app/AppPmsController.java @@ -132,6 +132,9 @@ public class AppPmsController extends BaseController { appPmsOrderOut.setOrderStatus(0); appPmsOrderOut.setCreateTime(new Date()); appPmsOrderOut.setUpdateTime(new Date()); + appPmsOrderOut.setShelvesNum(BigDecimal.valueOf(orderOutRequest.getGoodsNum())); + appPmsOrderOut.setPickNum(BigDecimal.ZERO); + appPmsOrderOut.setTrNum(BigDecimal.ZERO); appPmsOrderOut.setCreateBy("PMS出库接口"); insertRow += appPmsOrderOutService.insertAppPmsOrderOut(appPmsOrderOut); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/app/AppPmsOrderOutController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/app/AppPmsOrderOutController.java index 4d843880..8986233b 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/app/AppPmsOrderOutController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/app/AppPmsOrderOutController.java @@ -97,13 +97,13 @@ public class AppPmsOrderOutController extends BaseController } /** - * 删除【请填写功能名称】 + * 删除出库单 */ - @PreAuthorize("@ss.hasPermi('system:out:remove')") - @Log(title = "【请填写功能名称】", businessType = BusinessType.DELETE) - @DeleteMapping("/{listIds}") - public AjaxResult remove(@PathVariable String[] listIds) + @PreAuthorize("@ss.hasPermi('app:pmsOrderOut:remove')") + @Log(title = "出库单", businessType = BusinessType.DELETE) + @DeleteMapping("/{recordIds}") + public AjaxResult remove(@PathVariable String[] recordIds) { - return toAjax(appPmsOrderOutService.deleteAppPmsOrderOutByListIds(listIds)); + return toAjax(appPmsOrderOutService.deleteAppPmsOrderOutByRecordIds(recordIds)); } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/app/AppTaskController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/app/AppTaskController.java index fb6e919b..7c1faef4 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/app/AppTaskController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/app/AppTaskController.java @@ -526,7 +526,7 @@ public class AppTaskController extends BaseController for(AppPmsOrderOut appPmsOrderOut: appPmsOrderOutList){ if(AppConstants.OUT_ORDER_STATUS_2.equals(appPmsOrderOut.getOrderStatus())){ logger.info("已出库完成的忽略:{}",appPmsOrderOut.getGoodsId()); - throw new RuntimeException("有出库单已全部出库,请重新选择"); + throw new RuntimeException("有出库单已全部出库,请重新选择"); } if("1".equals(appPmsOrderOut.getIsLock())){ logger.info("已锁定的忽略:{}",appPmsOrderOut.getGoodsId()); @@ -552,21 +552,21 @@ public class AppTaskController extends BaseController BigDecimal shelvesNum = appPmsOrderOut.getShelvesNum(); BigDecimal total = BigDecimal.ZERO; for(AppStock appStock : appStocks){ - total = total.add(appStock.getOriginNum()); + total = total.add(appStock.getRemainNum()); if(appPmsOrderOut.getPickNum() == null){ appPmsOrderOut.setPickNum(BigDecimal.ZERO); } if(shelvesNum.compareTo(total) == 0){ - ctlMap.put(appStock.getVehicleId(),appStock.getOriginNum()); - appPmsOrderOut.setPickNum(appPmsOrderOut.getPickNum().add(appStock.getOriginNum())); + ctlMap.put(appStock.getVehicleId(),appStock.getRemainNum()); + appPmsOrderOut.setPickNum(appPmsOrderOut.getPickNum().add(appStock.getRemainNum())); break; }else if(shelvesNum.compareTo(total) > 0){ - ctlMap.put(appStock.getVehicleId(),appStock.getOriginNum()); - appPmsOrderOut.setPickNum(appPmsOrderOut.getPickNum().add(appStock.getOriginNum())); + ctlMap.put(appStock.getVehicleId(),appStock.getRemainNum()); + appPmsOrderOut.setPickNum(appPmsOrderOut.getPickNum().add(appStock.getRemainNum())); }else{ //小于0 BigDecimal subtract = total.subtract(shelvesNum); - BigDecimal subtract1 = appStock.getOriginNum().subtract(subtract); + BigDecimal subtract1 = appStock.getRemainNum().subtract(subtract); ctlMap.put(appStock.getVehicleId(),subtract1); appPmsOrderOut.setPickNum(appPmsOrderOut.getPickNum().add(subtract1)); break; @@ -797,8 +797,8 @@ public class AppTaskController extends BaseController BigDecimal totalNum = BigDecimal.ZERO; for (AppStock tMiStock1 : appStocks) { if (tMiStock1.getGoodsId().equals(key)) { - BigDecimal availableStock = tMiStock1.getOriginNum(); // 当前库存数量 - totalNum = totalNum.add(tMiStock1.getOriginNum()); + BigDecimal availableStock = tMiStock1.getRemainNum(); // 当前库存数量 + totalNum = totalNum.add(tMiStock1.getRemainNum()); // 判断是否达到或者超过所需出库数量 if (totalNum.compareTo(requiredNum) >= 0) { // 如果累加的数量已经达到或超过所需数量 @@ -815,7 +815,7 @@ public class AppTaskController extends BaseController boolean isExist = false; for (AppStock tMiStock1 : appStocks) { if(tMiStock1.getPackingNum() != null) { - if (tMiStock1.getOriginNum().compareTo(tMiStock1.getPackingNum()) > 0) { + if (tMiStock1.getRemainNum().compareTo(tMiStock1.getPackingNum()) > 0) { isExist = true; break; } @@ -854,14 +854,15 @@ public class AppTaskController extends BaseController appTask.setOrigin(tMiStock1.getLocationId()); appTask.setLocationId(tMiStock1.getLocationId()); appTask.setOpNum(tMiStock1.getPackingNum()); - appTask.setStockNum(tMiStock1.getOriginNum()); + appTask.setStockNum(tMiStock1.getRemainNum()); appTask.setCkType(tMiStock1.getCkType()); - + appTask.setTaskPriority(1); appTaskService.insertAppTask(appTask); } } } + /** * 请求出库 * @param outRequest 出库请求 diff --git a/ruoyi-system/src/main/java/com/ruoyi/app/mapper/AppPmsOrderOutMapper.java b/ruoyi-system/src/main/java/com/ruoyi/app/mapper/AppPmsOrderOutMapper.java index 4ee3036b..60ed34a5 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/app/mapper/AppPmsOrderOutMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/app/mapper/AppPmsOrderOutMapper.java @@ -44,22 +44,21 @@ public interface AppPmsOrderOutMapper */ public int updateAppPmsOrderOut(AppPmsOrderOut appPmsOrderOut); + public int deleteAppPmsOrderOutByOrderId(AppPmsOrderOut appPmsOrderOut); /** - * 删除【请填写功能名称】 + * 删除出库单 * - * @param recordId 【请填写功能名称】主键 + * @param recordId 出库单主键 * @return 结果 */ - public int deleteAppPmsOrderOutByListId(String recordId); + public int deleteAppPmsOrderOutByRecordId(String recordId); /** - * 批量删除【请填写功能名称】 + * 批量删除出库单 * * @param recordIds 需要删除的数据主键集合 * @return 结果 */ - public int deleteAppPmsOrderOutByListIds(String[] recordIds); - public int deleteAppPmsOrderOutByOrderId(AppPmsOrderOut appPmsOrderOut); - + public int deleteAppPmsOrderOutByRecordIds(String[] recordIds); int updatePickNum(AppPmsOrderOut appPmsOrderOut); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/app/mapper/AppVehicleMapper.java b/ruoyi-system/src/main/java/com/ruoyi/app/mapper/AppVehicleMapper.java index e0798cc9..0b6f3e63 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/app/mapper/AppVehicleMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/app/mapper/AppVehicleMapper.java @@ -67,4 +67,11 @@ public interface AppVehicleMapper * @return 结果 */ public List selectVehicleList(); + + /** + * 根据容器编码查询容器 + * @param vehicleCode + * @return + */ + AppVehicle selectAppVehicleByVehicleCode(String vehicleCode); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/app/service/IAppPmsOrderOutService.java b/ruoyi-system/src/main/java/com/ruoyi/app/service/IAppPmsOrderOutService.java index 963c685b..5a2f0d8d 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/app/service/IAppPmsOrderOutService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/app/service/IAppPmsOrderOutService.java @@ -45,20 +45,20 @@ public interface IAppPmsOrderOutService public int updateAppPmsOrderOut(AppPmsOrderOut appPmsOrderOut); /** - * 批量删除【请填写功能名称】 + * 批量删除出库单 * - * @param listIds 需要删除的【请填写功能名称】主键集合 + * @param recordIds 需要删除的出库单主键集合 * @return 结果 */ - public int deleteAppPmsOrderOutByListIds(String[] listIds); + public int deleteAppPmsOrderOutByRecordIds(String[] recordIds); /** - * 删除【请填写功能名称】信息 + * 删除出库单信息 * - * @param listId 【请填写功能名称】主键 + * @param recordId 出库单主键 * @return 结果 */ - public int deleteAppPmsOrderOutByListId(String listId); + public int deleteAppPmsOrderOutByRecordId(String recordId); int updatePickNum(AppPmsOrderOut appPmsOrderOut); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/app/service/IAppVehicleService.java b/ruoyi-system/src/main/java/com/ruoyi/app/service/IAppVehicleService.java index 2e954301..9af4b068 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/app/service/IAppVehicleService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/app/service/IAppVehicleService.java @@ -11,8 +11,7 @@ import java.util.List; * @author ruoyi * @date 2025-01-15 */ -public interface IAppVehicleService -{ +public interface IAppVehicleService { /** * 查询【请填写功能名称】 * @@ -65,4 +64,13 @@ public interface IAppVehicleService * 获取状态为在库中的所有可用的载具 */ public List selectAppAvailVehicleList(); + + /** + * 容器凹入 + * + * @param vehicleList + * @param updateSupport + * @return + */ + String importVehicle(List vehicleList, boolean updateSupport); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/app/service/impl/AppPmsOrderOutServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/app/service/impl/AppPmsOrderOutServiceImpl.java index 35231b3b..9822b586 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/app/service/impl/AppPmsOrderOutServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/app/service/impl/AppPmsOrderOutServiceImpl.java @@ -69,29 +69,31 @@ public class AppPmsOrderOutServiceImpl implements IAppPmsOrderOutService } /** - * 批量删除【请填写功能名称】 + * 批量删除出库单 * - * @param listIds 需要删除的【请填写功能名称】主键 + * @param recordIds 需要删除的出库单主键 * @return 结果 */ @Override - public int deleteAppPmsOrderOutByListIds(String[] listIds) + public int deleteAppPmsOrderOutByRecordIds(String[] recordIds) { - return appPmsOrderOutMapper.deleteAppPmsOrderOutByListIds(listIds); + return appPmsOrderOutMapper.deleteAppPmsOrderOutByRecordIds(recordIds); } /** - * 删除【请填写功能名称】信息 + * 删除出库单信息 * - * @param listId 【请填写功能名称】主键 + * @param recordId 出库单主键 * @return 结果 */ @Override - public int deleteAppPmsOrderOutByListId(String listId) + public int deleteAppPmsOrderOutByRecordId(String recordId) { - return appPmsOrderOutMapper.deleteAppPmsOrderOutByListId(listId); + return appPmsOrderOutMapper.deleteAppPmsOrderOutByRecordId(recordId); } + + @Override public int updatePickNum(AppPmsOrderOut appPmsOrderOut) { return appPmsOrderOutMapper.updatePickNum(appPmsOrderOut); diff --git a/ruoyi-system/src/main/java/com/ruoyi/app/service/impl/AppVehicleServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/app/service/impl/AppVehicleServiceImpl.java index 76cf395b..652391ca 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/app/service/impl/AppVehicleServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/app/service/impl/AppVehicleServiceImpl.java @@ -8,7 +8,13 @@ import com.ruoyi.app.domain.DAO.AppVehicleInfo; import com.ruoyi.app.domain.DTO.AppAvailVehicle; import com.ruoyi.app.mapper.AppVehicleMapper; import com.ruoyi.app.service.IAppVehicleService; +import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.common.exception.ServiceException; +import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.bean.BeanValidators; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -19,8 +25,8 @@ import org.springframework.stereotype.Service; * @date 2025-01-15 */ @Service -public class AppVehicleServiceImpl implements IAppVehicleService -{ +public class AppVehicleServiceImpl implements IAppVehicleService { + private static final Logger log = LoggerFactory.getLogger(AppVehicleServiceImpl.class); @Autowired private AppVehicleMapper appVehicleMapper; @@ -31,8 +37,7 @@ public class AppVehicleServiceImpl implements IAppVehicleService * @return 【请填写功能名称】 */ @Override - public AppVehicle selectAppVehicleByVehicleId(String vehicleId) - { + public AppVehicle selectAppVehicleByVehicleId(String vehicleId) { return appVehicleMapper.selectAppVehicleByVehicleId(vehicleId); } @@ -43,8 +48,7 @@ public class AppVehicleServiceImpl implements IAppVehicleService * @return 【请填写功能名称】 */ @Override - public List selectAppVehicleList(AppVehicle appVehicle) - { + public List selectAppVehicleList(AppVehicle appVehicle) { return appVehicleMapper.selectAppVehicleList(appVehicle); } @@ -55,8 +59,7 @@ public class AppVehicleServiceImpl implements IAppVehicleService * @return 结果 */ @Override - public int insertAppVehicle(AppVehicle appVehicle) - { + public int insertAppVehicle(AppVehicle appVehicle) { return appVehicleMapper.insertAppVehicle(appVehicle); } @@ -67,8 +70,7 @@ public class AppVehicleServiceImpl implements IAppVehicleService * @return 结果 */ @Override - public int updateAppVehicle(AppVehicle appVehicle) - { + public int updateAppVehicle(AppVehicle appVehicle) { return appVehicleMapper.updateAppVehicle(appVehicle); } @@ -79,8 +81,7 @@ public class AppVehicleServiceImpl implements IAppVehicleService * @return 结果 */ @Override - public int deleteAppVehicleByVehicleIds(String[] vehicleIds) - { + public int deleteAppVehicleByVehicleIds(String[] vehicleIds) { return appVehicleMapper.deleteAppVehicleByVehicleIds(vehicleIds); } @@ -91,13 +92,13 @@ public class AppVehicleServiceImpl implements IAppVehicleService * @return 结果 */ @Override - public int deleteAppVehicleByVehicleId(String vehicleId) - { + public int deleteAppVehicleByVehicleId(String vehicleId) { return appVehicleMapper.deleteAppVehicleByVehicleId(vehicleId); } /** * 获取状态为在库中的所有可用的载具 + * * @return 结果 */ public List selectAppAvailVehicleList() { @@ -118,4 +119,45 @@ public class AppVehicleServiceImpl implements IAppVehicleService } return response; } + + @Override + public String importVehicle(List vehicleList, boolean isUpdateSupport) { + if (StringUtils.isNull(vehicleList) || vehicleList.size() == 0) { + throw new ServiceException("导入容器数据不能为空!"); + } + int successNum = 0; + int failureNum = 0; + StringBuilder successMsg = new StringBuilder(); + StringBuilder failureMsg = new StringBuilder(); + for (AppVehicle appVehicle : vehicleList) { + try { + // 验证是否存在这个容器编码 + AppVehicle u = appVehicleMapper.selectAppVehicleByVehicleCode(appVehicle.getVehicleCode()); + if (StringUtils.isNull(u)) { + appVehicleMapper.insertAppVehicle(appVehicle); + successNum++; + successMsg.append("
" + successNum + "、账号 " + appVehicle.getVehicleCode() + " 导入成功"); + } else if (isUpdateSupport) { + appVehicleMapper.updateAppVehicle(appVehicle); + successNum++; + successMsg.append("
" + successNum + "、账号 " + appVehicle.getVehicleCode() + " 更新成功"); + } else { + failureNum++; + failureMsg.append("
" + failureNum + "、容器 " + appVehicle.getVehicleCode() + " 已存在"); + } + } catch (Exception e) { + failureNum++; + String msg = "
" + failureNum + "、容器 " + appVehicle.getVehicleCode() + " 导入失败:"; + failureMsg.append(msg + e.getMessage()); + log.error(msg, e); + } + } + if (failureNum > 0) { + failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:"); + throw new ServiceException(failureMsg.toString()); + } else { + successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:"); + } + return successMsg.toString(); + } } diff --git a/ruoyi-system/src/main/resources/mapper/app/AppPmsOrderOutMapper.xml b/ruoyi-system/src/main/resources/mapper/app/AppPmsOrderOutMapper.xml index eb1e117e..276d21ec 100644 --- a/ruoyi-system/src/main/resources/mapper/app/AppPmsOrderOutMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/app/AppPmsOrderOutMapper.xml @@ -115,16 +115,18 @@ where record_id = #{recordId} - - delete from app_pms_order_out where record_id = #{recordId} - + delete from app_pms_order_out where order_id = #{orderId} - + + delete from app_pms_order_out where record_id = #{recordId} + + + delete from app_pms_order_out where record_id in - + #{recordId} diff --git a/ruoyi-system/src/main/resources/mapper/app/AppVehicleMapper.xml b/ruoyi-system/src/main/resources/mapper/app/AppVehicleMapper.xml index be1c315a..5ecbc5a9 100644 --- a/ruoyi-system/src/main/resources/mapper/app/AppVehicleMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/app/AppVehicleMapper.xml @@ -107,4 +107,9 @@ + + \ No newline at end of file