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 | 93 +++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 91 insertions(+), 2 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 3aeb2ca..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,16 +29,93 @@ @Autowired private WorkService workService; + @Autowired + private LocDetlService locDetlService; + @Autowired + private LocService locService; + @Autowired + private MatFieldService matFieldService; + @Autowired + private LocDetlFieldService locDetlFieldService; @OperationLog("鐢熸垚鍏ュ簱浠诲姟") @PostMapping("/rpc/generatePakIn") public R generatePakIn(@RequestBody GeneratePakInParam param) { try { - workService.generatePakIn(param); + if (param.getTaskType() == 10) { + workService.generateEmptyPakIn(param);//绌烘墭鐩� + }else { + workService.generatePakIn(param);//婊℃墭鐩� + } return R.ok("娣诲姞鎴愬姛"); } catch (Exception e) { return R.error(e.getMessage()); } } + @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