From a19133219811f9286fa71a0fb8c1deb628cf74a3 Mon Sep 17 00:00:00 2001 From: Junjie <540245094@qq.com> Date: 星期四, 28 十一月 2024 16:51:08 +0800 Subject: [PATCH] # --- zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/WorkController.java | 87 +++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 86 insertions(+), 1 deletions(-) diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/WorkController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/WorkController.java index 17d3e81..cf6b603 100644 --- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/WorkController.java +++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/WorkController.java @@ -1,15 +1,27 @@ package com.zy.asrs.wms.asrs.controller; +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.zy.asrs.framework.common.Cools; import com.zy.asrs.framework.common.R; +import com.zy.asrs.framework.exception.CoolException; +import com.zy.asrs.wms.asrs.entity.Loc; +import com.zy.asrs.wms.asrs.entity.LocDetl; +import com.zy.asrs.wms.asrs.entity.LocDetlField; +import com.zy.asrs.wms.asrs.entity.MatField; import com.zy.asrs.wms.asrs.entity.param.GeneratePakInParam; -import com.zy.asrs.wms.asrs.service.WorkService; +import com.zy.asrs.wms.asrs.entity.param.LocAdjustParam; +import com.zy.asrs.wms.asrs.service.*; import com.zy.asrs.wms.common.annotation.OperationLog; import com.zy.asrs.wms.system.controller.BaseController; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; + +import java.util.*; @RestController @RequestMapping("/api") @@ -17,6 +29,14 @@ @Autowired private WorkService workService; + @Autowired + private LocDetlService locDetlService; + @Autowired + private LocService locService; + @Autowired + private MatFieldService matFieldService; + @Autowired + private LocDetlFieldService locDetlFieldService; @OperationLog("鐢熸垚鍏ュ簱浠诲姟") @PostMapping("/rpc/generatePakIn") @@ -33,4 +53,69 @@ } } + @OperationLog("搴撳瓨璋冩暣") + @PostMapping("/loc/adjust") + @Transactional + public R locAdjust(@RequestBody LocAdjustParam param) { + if (param == null) { + return R.error("鍙傛暟涓嶈兘涓虹┖"); + } + + if (Cools.isEmpty(param.getLocNo())) { + return R.error("搴撲綅鍙蜂笉鑳戒负绌�"); + } + + if (param.getDetls() == null) { + return R.error("搴撳瓨鏄庣粏涓嶈兘涓虹┖"); + } + + Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getLocNo, param.getLocNo())); + if (loc == null) { + return R.error("搴撲綅涓嶅瓨鍦�"); + } + + //鍒犻櫎婧愬簱瀛� + locDetlService.removeLocDetl(loc.getId()); + + List<MatField> matFields = matFieldService.list(new LambdaQueryWrapper<MatField>().eq(MatField::getUnique, 1)); + for (Map<String, Object> map : param.getDetls()) { + LocDetl locDetl = JSON.parseObject(JSON.toJSONString(map), LocDetl.class); + HashMap<String, Object> uniqueFields = new HashMap<>(); + for (Map.Entry<String, Object> entry : map.entrySet()) { + for (MatField field : matFields) { + if (entry.getKey().equals(field.getName())) { + uniqueFields.put(entry.getKey(), entry.getValue()); + } + } + } + locDetl.setAnfme(Double.parseDouble(map.get("qty").toString())); + locDetl.syncFieldMap(uniqueFields); + + if (locDetl.getAnfme() <= 0D) { + throw new CoolException("鏁伴噺涓嶈兘灏忎簬0"); + } + + locDetl.setId(null); + locDetl.setLocId(loc.getId()); + locDetl.setLocNo(loc.getLocNo()); + boolean save = locDetlService.save(locDetl); + if (!save) { + throw new CoolException("搴撳瓨璋冩暣澶辫触"); + } + + //鎻掑叆搴撳瓨鏄庣粏瀛楁 + for (MatField matField : matFields) { + LocDetlField locDetlField = new LocDetlField(); + locDetlField.setDetlId(locDetl.getId()); + locDetlField.setFieldId(matField.getId()); + locDetlField.setName(matField.getName()); + locDetlField.setValue(Optional.ofNullable(uniqueFields.get(matField.getName()).toString()).orElse("")); + locDetlFieldService.save(locDetlField); + } + + } + + return R.ok(); + } + } -- Gitblit v1.9.1