From 4f38e5827b848298de8e95f59e0ba9b24951e615 Mon Sep 17 00:00:00 2001 From: lixiangyu <lixiangyu@xalxzn.com> Date: 星期二, 16 九月 2025 18:01:18 +0800 Subject: [PATCH] refactor(cms): 优化刀具管理功能和性能 刀具报废功能 - 新增 提交(/subumit)接口 刀具报废功能 - 修改完善其删除功能,同时删除报废单和报废明细 刀具报废功能 - (/add)接口中增加逻辑判断禁制同一个刀具重复申请报废 刀具领用功能 - 完善刀具寿命计算 刀具领用功能 - 完善其删除功能,同时删除领用单和领用明细 刀具入库功能 - 完善其删除功能,同时删除入库单和入库明细 把刀具库存中的库存状态,从“正常”改为“在库”。 --- src/main/java/org/jeecg/modules/cms/controller/CuttingInboundController.java | 84 ++++------------------------------------- 1 files changed, 9 insertions(+), 75 deletions(-) diff --git a/src/main/java/org/jeecg/modules/cms/controller/CuttingInboundController.java b/src/main/java/org/jeecg/modules/cms/controller/CuttingInboundController.java index 173d574..5066561 100644 --- a/src/main/java/org/jeecg/modules/cms/controller/CuttingInboundController.java +++ b/src/main/java/org/jeecg/modules/cms/controller/CuttingInboundController.java @@ -7,12 +7,10 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import io.micrometer.core.annotation.Timed; import org.jeecg.common.api.vo.Result; import org.jeecg.common.system.query.QueryGenerator; -import org.jeecg.modules.cms.entity.CuttingInbound; -import org.jeecg.modules.cms.entity.CuttingInboundDetail; -import org.jeecg.modules.cms.entity.CuttingInboundInventory; -import org.jeecg.modules.cms.entity.CuttingInventory; +import org.jeecg.modules.cms.entity.*; import org.jeecg.modules.cms.mapper.CuttingInboundMapper; import org.jeecg.modules.cms.service.ICuttingInboundDetailService; import org.jeecg.modules.cms.service.ICuttingInboundInventoryService; @@ -141,6 +139,9 @@ @DeleteMapping(value = "/delete") public Result<String> delete(@RequestParam(name = "id", required = true) String id) { cuttingInboundService.removeById(id); + //鍒犻櫎鍒�鍏烽鐢ㄦ槑缁嗚〃鐨勬暟鎹� + cuttingInboundDetailService.remove + (new QueryWrapper<CuttingInboundDetail>().eq("order_id", id)); return Result.OK("鍒犻櫎鎴愬姛!"); } @@ -278,85 +279,18 @@ /* - * 鐢熸垚鍞竴鏉$爜鐨勬柟娉� + * 鐢熸垚鍞竴鏉$爜鐨勬柟娉曪紙鐩墠杩樻病鏈夌紪鐮佽鍒欙紝纭畾鍚庡湪杩欓噷鏀癸級 */ private String generateUniqueBarcode(String cuttingId, int index) { // 鏉$爜鐢熸垚瑙勫垯绀轰緥锛氬垁鍏稩D + 搴忓彿(4浣�) + 闅忔満鏁� return cuttingId + String.format("%04d", index + 1) + (int) (Math.random() * 10000); } + @GetMapping("/submit") + @Timed(value = "cutting.inbound.submit", description = "鍒�鍏峰叆搴撴彁浜よ�楁椂") public Result<?> submit(@RequestParam("orderId") String orderId) { - // cuttingInboundService.submit(orderId); - // return Result.ok("鎻愪氦鎴愬姛"); - try { - // 1. 鏇存柊鍏ュ簱鍗曠姸鎬� - CuttingInbound cuttingInbound = cuttingInboundService.getById(orderId); - if (cuttingInbound == null) { - return Result.error("鏈壘鍒板搴旂殑鍏ュ簱鍗�"); - } - // 妫�鏌ュ叆搴撳崟鐘舵�侊紝鍙厑璁哥姸鎬佷负"1"鐨勫叆搴撳崟鎻愪氦 - if (!"1".equals(cuttingInbound.getOrderStatus())) { - return Result.error("鍙湁鐘舵�佷负鏈彁浜ょ殑鍏ュ簱鍗曟墠鑳芥墽琛屾彁浜ゆ搷浣�"); - } - - // 2. 鏇存柊鐘舵�佷负宸叉彁浜� - cuttingInbound.setOrderStatus("2"); - boolean updateResult = cuttingInboundService.updateById(cuttingInbound); - if (!updateResult) { - return Result.error("鏇存柊鍏ュ簱鍗曠姸鎬佸け璐�"); - } - - // 3. 鑾峰彇鍏ュ簱鏄庣粏 - List<CuttingInboundDetail> detailList = cuttingInboundDetailService.lambdaQuery() - .eq(CuttingInboundDetail::getOrderId, orderId) - .list(); - - // 鐢ㄤ簬缁熻鎬绘暟閲� - - // 4. 鏍规嵁鏄庣粏鏁伴噺鐢熸垚搴撳瓨璁板綍鍜屾潯鐮� - int totalSubmitted = 0; - for (CuttingInboundDetail detail : detailList) { - // 鏍规嵁鏄庣粏涓殑鏁伴噺鐢熸垚瀵瑰簲鏁伴噺鐨勫簱瀛樿褰時eceive_number - int quantity = detail.getReceiveNumber() != null ? detail.getReceiveNumber() : 0; - totalSubmitted = 0; - for (int i = 0; i < quantity; i++) { - totalSubmitted += quantity; - // 涓烘瘡涓垁鍏风敓鎴愮嫭绔嬬殑搴撳瓨璁板綍 - CuttingInventory cuttingInventory = new CuttingInventory(); - cuttingInventory.setCuttingId(detail.getCuttingId()); - // 涓烘瘡涓垁鍏风敓鎴愬敮涓�鏉$爜 - cuttingInventory.setCuttingBarcode(generateUniqueBarcode(detail.getCuttingId(), i)); - // 璁剧疆搴撳瓨鐘舵�佷负鍦ㄥ簱 - cuttingInventory.setInventoryStatus("姝e父"); - // 璁剧疆褰撳墠瀵垮懡涓�100 - cuttingInventory.setCurrentLife(BigDecimal.valueOf(100)); - // 淇濆瓨鍒板簱瀛樿〃 - boolean saveResult = cuttingInventoryService.save(cuttingInventory); - if (!saveResult) { - return Result.error("淇濆瓨搴撳瓨璁板綍澶辫触"); - } - - // 寤虹珛鍏ュ簱鍗曚笌搴撳瓨鐨勫叧鑱斿叧绯� - CuttingInboundInventory cuttingInboundInventory = new CuttingInboundInventory(); - cuttingInboundInventory.setOrderId(orderId); - cuttingInboundInventory.setInventoryId(cuttingInventory.getId()); - - // 淇濆瓨鍏宠仈鍏崇郴 - boolean relationSaveResult = cuttingInboundInventoryService.save(cuttingInboundInventory); - if (!relationSaveResult) { - return Result.error("淇濆瓨鍏宠仈鍏崇郴澶辫触"); - } - } - } - Map<String, Object> result = new HashMap<>(); - result.put("message", "鎻愪氦鎴愬姛"); - result.put("totalSubmitted", totalSubmitted); - return Result.ok("鎻愪氦鎴愬姛"); - } catch (Exception e) { - log.error("鎻愪氦鍏ュ簱鍗曞け璐ワ紝orderId: " + orderId, e); - return Result.error("鎻愪氦澶辫触: " + e.getMessage()); - } + return cuttingInboundService.submit(orderId); } } -- Gitblit v1.9.3