From bb923868d80b31d1057424a28b4bd7709c5a6648 Mon Sep 17 00:00:00 2001 From: lixiangyu <lixiangyu@xalxzn.com> Date: 星期四, 11 九月 2025 17:57:57 +0800 Subject: [PATCH] feat(cms): - 在`CuttingInventoryServiceImpl`中添加了批量更新库存状态的方法,并添加了事务注解。 - 在`CuttingReceive`实体类中添加了领用单对库存状态变化功能 - 在`CuttingReceiveController`中添加了提交领用单的方法,并优化了部分方法的参数和逻辑。 - 在`CuttingReceiveDetailMapper.xml`中添加了库存ID字段,以让数据库能正常获取库存id。 - 在`CuttingReceiveServiceImpl`中实现了提交领用单的逻辑,并添加了日志记录。- 在`ICuttingInventoryService`接口中添加了批量更新库存状态的方法。 - 在`ICuttingReceiveService`接口中添加了提交领用单的方法。 --- src/main/java/org/jeecg/modules/cms/controller/CuttingReceiveController.java | 100 ++++++++++++++++++++++++++----------------------- 1 files changed, 53 insertions(+), 47 deletions(-) diff --git a/src/main/java/org/jeecg/modules/cms/controller/CuttingReceiveController.java b/src/main/java/org/jeecg/modules/cms/controller/CuttingReceiveController.java index 17ad902..35302fe 100644 --- a/src/main/java/org/jeecg/modules/cms/controller/CuttingReceiveController.java +++ b/src/main/java/org/jeecg/modules/cms/controller/CuttingReceiveController.java @@ -3,6 +3,7 @@ import java.util.Arrays; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.stream.Collectors; import java.io.IOException; import java.io.UnsupportedEncodingException; @@ -12,13 +13,13 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import io.micrometer.core.annotation.Timed; +import liquibase.pro.packaged.G; import org.jeecg.common.api.vo.Result; import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.common.util.oConvertUtils; -import org.jeecg.modules.cms.entity.CuttingInbound; -import org.jeecg.modules.cms.entity.CuttingInboundDetail; -import org.jeecg.modules.cms.entity.CuttingReceive; -import org.jeecg.modules.cms.entity.CuttingReceiveDetail; +import org.jeecg.modules.cms.entity.*; +import org.jeecg.modules.cms.service.ICuttingInventoryService; import org.jeecg.modules.cms.service.ICuttingReceiveDetailService; import org.jeecg.modules.cms.service.ICuttingReceiveService; @@ -44,10 +45,10 @@ import org.jeecg.common.aspect.annotation.AutoLog; /** - * @Description: 鍒�鍏烽鐢ㄥ崟 - * @Author: jeecg-boot - * @Date: 2025-07-28 - * @Version: V1.0 + * @Description: 鍒�鍏烽鐢ㄥ崟 + * @Author: jeecg-boot + * @Date: 2025-07-28 + * @Version: V1.0 */ @Api(tags = "鍒�鍏烽鐢ㄥ崟") @RestController @@ -60,14 +61,11 @@ @Autowired private ICuttingReceiveDetailService cuttingReceiveDetailService; + @Autowired + private ICuttingInventoryService cuttingInventoryService; + /** * 鍒嗛〉鍒楄〃鏌ヨ - * - * @param cuttingReceive - * @param pageNo - * @param pageSize - * @param req - * @return */ //@AutoLog(value = "鍒�鍏烽鐢ㄥ崟-鍒嗛〉鍒楄〃鏌ヨ") @ApiOperation(value = "鍒�鍏烽鐢ㄥ崟-鍒嗛〉鍒楄〃鏌ヨ", notes = "鍒�鍏烽鐢ㄥ崟-鍒嗛〉鍒楄〃鏌ヨ") @@ -77,44 +75,53 @@ @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) { QueryWrapper<CuttingReceive> queryWrapper = QueryGenerator.initQueryWrapper(cuttingReceive, req.getParameterMap()); - Page<CuttingReceive> page = new Page<CuttingReceive>(pageNo, pageSize); + Page<CuttingReceive> page = new Page<>(pageNo, pageSize); IPage<CuttingReceive> pageList = cuttingReceiveService.page(page, queryWrapper); return Result.OK(pageList); } /** * 娣诲姞 - * - * @param jSONObject - * @return */ @AutoLog(value = "鍒�鍏烽鐢ㄥ崟-娣诲姞") @ApiOperation(value = "鍒�鍏烽鐢ㄥ崟-娣诲姞", notes = "鍒�鍏烽鐢ㄥ崟-娣诲姞") //@RequiresPermissions("org.jeecg.modules:cms_cutting_receive:add") @PostMapping(value = "/add") public Result<String> add(@RequestBody JSONObject jSONObject) { + // 淇濆瓨涓昏〃鏁版嵁 CuttingReceive cuttingReceive = jSONObject.toJavaObject(CuttingReceive.class); cuttingReceive.setOrderStatus("1"); cuttingReceiveService.saveOrUpdate(cuttingReceive); - //鍒犻櫎鍘熷叧鑱旀暟鎹� + + // 鍒犻櫎鍘熸湁鍏宠仈鐨勬槑缁嗘暟鎹� List<CuttingReceiveDetail> cuttingReceiveDetailList = cuttingReceiveDetailService.lambdaQuery().eq(CuttingReceiveDetail::getOrderId, cuttingReceive.getId()).list(); cuttingReceiveDetailService.removeBatchByIds(cuttingReceiveDetailList); - //娣诲姞鏂板叧鑱旀暟鎹� + // 閲嶆柊娣诲姞鏂扮殑鏄庣粏鏁版嵁 JSONArray jsonArray = jSONObject.getJSONArray("detailData"); List<CuttingReceiveDetail> list = jsonArray.toJavaList(CuttingReceiveDetail.class); - for (int i = 0; i < list.size(); i++) { - CuttingReceiveDetail temp = list.get(i); + for (CuttingReceiveDetail temp : list) { temp.setOrderId(cuttingReceive.getId()); cuttingReceiveDetailService.save(temp); } + // 鏇存柊搴撳瓨鍒�鍏风姸鎬佷负"宸插嚭搴�" + if (!list.isEmpty()) { + // 鏀堕泦鎵�鏈夐渶瑕佹洿鏂扮姸鎬佺殑搴撳瓨ID + List<String> inventoryIds = list.stream() + .map(CuttingReceiveDetail::getInventoryId) // 鍋囪CuttingReceiveDetail涓湁inventoryId瀛楁 + .filter(id -> id != null && !id.isEmpty()) + .collect(Collectors.toList()); + + if (!inventoryIds.isEmpty()) { + // 鏇存柊搴撳瓨鐘舵�佷负"宸插嚭搴�" + cuttingInventoryService.updateStatus(inventoryIds, "寰呭嚭搴�"); + } + } + return Result.OK("娣诲姞鎴愬姛锛�"); } /** * 缂栬緫 - * - * @param cuttingReceive - * @return */ @AutoLog(value = "鍒�鍏烽鐢ㄥ崟-缂栬緫") @ApiOperation(value = "鍒�鍏烽鐢ㄥ崟-缂栬緫", notes = "鍒�鍏烽鐢ㄥ崟-缂栬緫") @@ -127,44 +134,35 @@ /** * 閫氳繃id鍒犻櫎 - * - * @param id - * @return */ @AutoLog(value = "鍒�鍏烽鐢ㄥ崟-閫氳繃id鍒犻櫎") @ApiOperation(value = "鍒�鍏烽鐢ㄥ崟-閫氳繃id鍒犻櫎", notes = "鍒�鍏烽鐢ㄥ崟-閫氳繃id鍒犻櫎") //@RequiresPermissions("org.jeecg.modules:cms_cutting_receive:delete") @DeleteMapping(value = "/delete") - public Result<String> delete(@RequestParam(name = "id", required = true) String id) { + public Result<String> delete(@RequestParam(name = "id") String id) { cuttingReceiveService.removeById(id); return Result.OK("鍒犻櫎鎴愬姛!"); } /** * 鎵归噺鍒犻櫎 - * - * @param ids - * @return */ @AutoLog(value = "鍒�鍏烽鐢ㄥ崟-鎵归噺鍒犻櫎") @ApiOperation(value = "鍒�鍏烽鐢ㄥ崟-鎵归噺鍒犻櫎", notes = "鍒�鍏烽鐢ㄥ崟-鎵归噺鍒犻櫎") //@RequiresPermissions("org.jeecg.modules:cms_cutting_receive:deleteBatch") @DeleteMapping(value = "/deleteBatch") - public Result<String> deleteBatch(@RequestParam(name = "ids", required = true) String ids) { + public Result<String> deleteBatch(@RequestParam(name = "ids") String ids) { this.cuttingReceiveService.removeByIds(Arrays.asList(ids.split(","))); return Result.OK("鎵归噺鍒犻櫎鎴愬姛!"); } /** * 閫氳繃id鏌ヨ - * - * @param id - * @return */ //@AutoLog(value = "鍒�鍏烽鐢ㄥ崟-閫氳繃id鏌ヨ") @ApiOperation(value = "鍒�鍏烽鐢ㄥ崟-閫氳繃id鏌ヨ", notes = "鍒�鍏烽鐢ㄥ崟-閫氳繃id鏌ヨ") @GetMapping(value = "/queryById") - public Result<CuttingReceive> queryById(@RequestParam(name = "id", required = true) String id) { + public Result<CuttingReceive> queryById(@RequestParam(name = "id") String id) { CuttingReceive cuttingReceive = cuttingReceiveService.getById(id); if (cuttingReceive == null) { return Result.error("鏈壘鍒板搴旀暟鎹�"); @@ -174,9 +172,6 @@ /** * 瀵煎嚭excel - * - * @param request - * @param cuttingReceive */ //@RequiresPermissions("org.jeecg.modules:cms_cutting_receive:exportXls") @RequestMapping(value = "/exportXls") @@ -186,10 +181,6 @@ /** * 閫氳繃excel瀵煎叆鏁版嵁 - * - * @param request - * @param response - * @return */ //@RequiresPermissions("cms_cutting_receive:importExcel") @RequestMapping(value = "/importExcel", method = RequestMethod.POST) @@ -199,9 +190,6 @@ /** * 鏍规嵁棰嗙敤id鏌ヨ棰嗙敤鏄庣粏 - * - * @param orderId - * @return */ @GetMapping("/detailList") public Result<?> detailList(@RequestParam("orderId") String orderId) { @@ -209,4 +197,22 @@ return Result.ok(list); } + /** + * 閫夋嫨搴撳瓨鍒�鍏风殑鍒楄〃 + */ + @GetMapping("/getInventoryToolList") + public Result<?> getInventoryToolList(@RequestParam("pageNo") Integer pageNo, + @RequestParam("pageSize") Integer pageSize, + @RequestParam Map<String, Object> params) { + IPage<Map<String, Object>> inventoryTooList = cuttingReceiveService.getInventoryToolList(pageNo, pageSize, params); + return Result.ok(inventoryTooList); + } + + @GetMapping("/submit") + @Timed(value = "cutting.inbound.submit", description = "鍒�鍏峰叆搴撴彁浜よ�楁椂") + public Result<?> submit(@RequestParam("orderId") String orderId) { + return cuttingReceiveService.submit(orderId); + } + + //TODO: @GetMapping("/handleBack") } -- Gitblit v1.9.3