diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/pick/controller/PickingController.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/pick/controller/PickingController.java index 213ee8f0..59273ad6 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/pick/controller/PickingController.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/pick/controller/PickingController.java @@ -36,14 +36,20 @@ public class PickingController { @GetMapping() public ResponseEntity queryAll(FormDataQuery query, PageQuery page) { - return new ResponseEntity<>(TableDataInfo.build(iPmFormDataService.queryTree(query,page)), HttpStatus.OK); + return new ResponseEntity<>(TableDataInfo.build(iPmFormDataService.queryTree(query, page)), HttpStatus.OK); + } + + @PostMapping("/updateDtl") + public ResponseEntity updateDtl(@RequestBody JSONArray params) { + pickingService.update(params); + return new ResponseEntity<>(HttpStatus.OK); } @GetMapping("/getSonFormData/{id}") - public ResponseEntity getSonDtlFormData(@PathVariable String id){ + public ResponseEntity getSonDtlFormData(@PathVariable String id) { //参数判读,参数解析,调用参数入库 //Page page = iBmFormStrucService.page(pageQuery.build(), query.build()); - return new ResponseEntity<>(iPmFormDataService.getSonDtlFormData(id),HttpStatus.OK); + return new ResponseEntity<>(iPmFormDataService.getSonDtlFormData(id), HttpStatus.OK); } @@ -53,20 +59,23 @@ public class PickingController { iPmFormDataService.syncFormData("type", formDtl); return new ResponseEntity<>(HttpStatus.OK); } + @PostMapping("/savePickTask") @Log("拣选作业") public ResponseEntity savePickTask(@RequestBody JSONArray params) { pickingService.savePickTask(params); return new ResponseEntity<>(HttpStatus.OK); } + @PostMapping("/updateStatus") public ResponseEntity updateStatus(@RequestBody JSONObject param) { //TODO:明细校验 iPmFormDataService.update(new UpdateWrapper() - .set("status",param.getString("status")) - .eq("id",param.getString("id"))); + .set("status", param.getString("status")) + .eq("id", param.getString("id"))); return new ResponseEntity<>(HttpStatus.OK); } + @PostMapping("/taskOpen") @Log("拣选作业下发") public ResponseEntity taskOpen(@RequestBody JSONObject param) { diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/pick/service/PickingService.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/pick/service/PickingService.java index 9758d06b..5603bab9 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/pick/service/PickingService.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/pick/service/PickingService.java @@ -4,6 +4,7 @@ import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import org.apache.commons.lang3.StringUtils; @@ -25,6 +26,8 @@ import org.nl.wms.md_manage.vehicleMater.service.dao.MdPbVehicleMater; import org.nl.wms.pm_manage.form_data.service.IPmFormDataService; import org.nl.wms.pm_manage.form_data.service.dao.PmFormData; import org.nl.wms.stor_manage.io.service.iostor.dao.StIvtIostorinv; +import org.nl.wms.stor_manage.io.service.iostor_dtl.IStIvtIostorinvdtlService; +import org.nl.wms.stor_manage.io.service.iostor_dtl.dao.StIvtIostorinvdtl; import org.nl.wms.stor_manage.io.service.iostor_dtl.dto.StIvtIostorinvdtlVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Async; @@ -32,6 +35,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -46,7 +50,7 @@ import java.util.stream.Collectors; @Service public class PickingService { - private static Map Pick_Convery = MapOf.of("1309","1207","1311","1209"); + private static Map Pick_Convery = MapOf.of("1309", "1207", "1311", "1209"); @Autowired private IPmFormDataService iFormDataService; @Autowired @@ -57,39 +61,53 @@ public class PickingService { private IBmVehicleInfoService iBmVehicleInfoService; @Autowired private WmsToAcsService wmsToAcsService; + @Autowired + private IPmFormDataService pmFormDataService; + @Autowired + private IStIvtIostorinvdtlService iStIvtIostorinvDtlService; /** * 生成拣选任务 + * * @param params */ @Transactional - public void savePickTask(JSONArray params){ - PmFormData dtl = iFormDataService.getById((String)((Map) params.get(0)).get("parent_id")); + public void savePickTask(JSONArray params) { + if (params.size() == 0) { + throw new BadRequestException("作业明细不能为空!"); + } + PmFormData dtl = iFormDataService.getById((String) ((Map) params.get(0)).get("parent_id")); MdPbVehicleMater one = iMdPbVehicleMaterService.getOne(new QueryWrapper() .eq("vehicle_code", dtl.getVehicle_code()).eq("material_id", dtl.getMaterial_id())); - if (one==null){ + if (one == null) { throw new BadRequestException("拣选明细载具物料信息不存在"); } Set vehicleCodes = params.stream().map(a -> ((Map) a).get("vehicle_code")).collect(Collectors.toSet()); int vCode = iBmVehicleInfoService.count(new QueryWrapper().in("vehicle_code", vehicleCodes)); - if (vCode!=vehicleCodes.size()){ + if (vCode != vehicleCodes.size()) { throw new BadRequestException("载具编码不存在"); } vehicleCodes.remove(one.getVehicle_code()); int mCode = iMdPbVehicleMaterService.count(new QueryWrapper().in("vehicle_code", vehicleCodes)); - if (mCode>0){ - throw new BadRequestException("当前载具"+vehicleCodes.toString()+"以存在载具物料信息"); + if (mCode > 0) { + throw new BadRequestException("当前载具" + vehicleCodes.toString() + "以存在载具物料信息"); } String now = DateUtil.now(); String user = SecurityUtils.getCurrentNickName(); + + String id = dtl.getId(); + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(PmFormData::getParent_id, id) + .and(l -> l.eq(PmFormData::getForm_type, "Picking_Task")); + iFormDataService.remove(lqw); for (Object param : params) { JSONObject task = new JSONObject((Map) param); PmFormData data = task.toJavaObject(PmFormData.class); - if (StringUtils.isEmpty(data.getParent_id())||StringUtils.isEmpty(data.getVehicle_code())){ + if (StringUtils.isEmpty(data.getParent_id()) || StringUtils.isEmpty(data.getVehicle_code())) { throw new BadRequestException("创建失败:缺少参数"); } String task_type = data.getForm_data().getString("task_type"); - if (StringUtils.isEmpty(task_type)){ + if (StringUtils.isEmpty(task_type)) { throw new BadRequestException("创建失败:未配置任务类型"); } data.setCreate_time(now); @@ -97,7 +115,8 @@ public class PickingService { data.setId(IdUtil.getStringId()); iFormDataService.save(data); } - 单据状态变动:{ + 单据状态变动: + { iFormDataService.update(new UpdateWrapper() .set("status", StatusEnum.FORM_STATUS.code("已分配")).eq("id", dtl.getId())); int count = iFormDataService.count(new QueryWrapper() @@ -116,12 +135,12 @@ public class PickingService { } - public void taskOpen(JSONObject form){ + public void taskOpen(JSONObject form) { PmFormData mst = form.toJavaObject(PmFormData.class); - if (StringUtils.isEmpty(mst.getProc_inst_id())){ + if (StringUtils.isEmpty(mst.getProc_inst_id())) { throw new BadRequestException("下发失败:当前单据不存在流程实例id"); } - if (!mst.getStatus().equals(StatusEnum.FORM_STATUS.code("已分配"))){ + if (!mst.getStatus().equals(StatusEnum.FORM_STATUS.code("已分配"))) { throw new BadRequestException("下发失败:当前单据未分配或者一下发"); } JSONObject mstJ = (JSONObject) JSON.toJSON(mst); @@ -131,7 +150,7 @@ public class PickingService { dto.setSource_form_type(mst.getSource_form_type()); dto.setSource_form_id(mst.getSource_form_id()); dto.setT(mstJ); - dto.setItem(packageT(mstJ,"id")); + dto.setItem(packageT(mstJ, "id")); JSONObject form_data = mstJ.getJSONObject("form_data"); String platform = form_data.getString("point_code"); @@ -140,18 +159,18 @@ public class PickingService { for (ExecutionDto executionDto : dto.getItem()) { for (ExecutionDto executionDto1 : executionDto.getItem()) { JSONObject dis = executionDto1.getT(); - if (!"false".equals(dis.getJSONObject("form_data").getString("s_move"))){ + if (!"false".equals(dis.getJSONObject("form_data").getString("s_move"))) { String vehicle_code = dis.getString("vehicle_code"); - if (vehicle_code.equals(sourceVehicle)){ + if (vehicle_code.equals(sourceVehicle)) { converys.add(platform); - }else { + } else { converys.add(Pick_Convery.get(platform)); } } } } for (String convery : converys) { - wmsToAcsService.toCommand(convery,"1"); + wmsToAcsService.toCommand(convery, "1"); } // PickingService pickingService = SpringContextHolder.getBean(this.getClass()); @@ -179,15 +198,16 @@ public class PickingService { List dis = iFormDataService.getByParentId(dtl.getId()); for (PmFormData data : dis) { String vehicle_code = data.getVehicle_code(); - if (dtl.getVehicle_code().equals(vehicle_code)){ + if (dtl.getVehicle_code().equals(vehicle_code)) { iMdPbVehicleMaterService.update(new UpdateWrapper() - .set("frozen_qty",0) - .set("update_time",DateUtil.now()) + .set("frozen_qty", 0) + .set("update_time", DateUtil.now()) .set("update_name", SecurityUtils.getCurrentNickName()) - .set("qty",data.getQty()) - .eq("vehicle_code",vehicle_code)); - }else { - 组盘:{ + .set("qty", data.getQty()) + .eq("vehicle_code", vehicle_code)); + } else { + 组盘: + { MdGruopDick dick = new MdGruopDick(); dick.setVehicle_code(vehicle_code); dick.setSource_form_type("Picking_Task"); @@ -222,10 +242,10 @@ public class PickingService { } } - private List packageT(JSONObject current,String itemField){ + private List packageT(JSONObject current, String itemField) { String id = current.getString(itemField); List items = iFormDataService.getByParentId(id); - if (!CollectionUtils.isEmpty(items)){ + if (!CollectionUtils.isEmpty(items)) { List list = new ArrayList<>(); for (PmFormData item : items) { JSONObject itemJ = (JSONObject) JSON.toJSON(item); @@ -235,11 +255,29 @@ public class PickingService { itemDto.setForm_type(item.getForm_type()); itemDto.setSource_form_type(item.getSource_form_type()); itemDto.setSource_form_id(item.getSource_form_id()); - itemDto.setItem(packageT(itemJ,itemField)); + itemDto.setItem(packageT(itemJ, itemField)); list.add(itemDto); } return list; } return null; } + + public void update(JSONArray params) { + for (int i = 0; i < params.size(); i++) { + JSONObject jsonObject = params.getJSONObject(i); + String id = jsonObject.getString("id"); + Integer assign_qty = jsonObject.getInteger("assign_qty"); +// Integer qty = jsonObject.getInteger("qty"); + String vehicle_code = jsonObject.getString("vehicle_code"); + + PmFormData pmFormData = new PmFormData(); + pmFormData.setId(id); + pmFormData.setAssign_qty(new BigDecimal(assign_qty)); + pmFormData.setVehicle_code(vehicle_code); + + pmFormDataService.updateById(pmFormData); + + } + } } diff --git a/wms_pro/qd/src/views/wms/stor_manage/warehouse/pick/EditDialog.vue b/wms_pro/qd/src/views/wms/stor_manage/warehouse/pick/EditDialog.vue new file mode 100644 index 00000000..aa61c1f4 --- /dev/null +++ b/wms_pro/qd/src/views/wms/stor_manage/warehouse/pick/EditDialog.vue @@ -0,0 +1,358 @@ + + + + + diff --git a/wms_pro/qd/src/views/wms/stor_manage/warehouse/pick/TaskDialog.vue b/wms_pro/qd/src/views/wms/stor_manage/warehouse/pick/TaskDialog.vue index 49efb50f..eeeec664 100644 --- a/wms_pro/qd/src/views/wms/stor_manage/warehouse/pick/TaskDialog.vue +++ b/wms_pro/qd/src/views/wms/stor_manage/warehouse/pick/TaskDialog.vue @@ -382,6 +382,10 @@ export default { }, savePickTask() { pick.savePickTask(this.tabledis).then(res => { + this.$emit('AddChanged') + this.dialogVisible = false + this.tabledis = [] + this.tableDtl = [] this.crud.notify('操作成功!', CRUD.NOTIFICATION_TYPE.SUCCESS) }) }, @@ -399,6 +403,7 @@ export default { } }, closeDialog(){ + this.$emit('AddChanged') this.dialogVisible = false this.tabledis = [] this.tableDtl = [] diff --git a/wms_pro/qd/src/views/wms/stor_manage/warehouse/pick/index.vue b/wms_pro/qd/src/views/wms/stor_manage/warehouse/pick/index.vue index a1c5edac..5560f8a1 100644 --- a/wms_pro/qd/src/views/wms/stor_manage/warehouse/pick/index.vue +++ b/wms_pro/qd/src/views/wms/stor_manage/warehouse/pick/index.vue @@ -18,6 +18,7 @@ size="mini" placeholder="请选择/搜索" class="filter-item" + disabled @change="crud.toQuery()" > - + - + - - 全部展开 - - - 导入 - + + + + + + + + + + + + + + + + + + + 作业下发 - + + + + + + + @@ -96,17 +97,17 @@ @select="handleSelectionChange" :data="crud.data" > - + - + - - - - - - - - - - + + + + + + + + + + - - + + - + - - + + + diff --git a/wms_pro/qd/src/views/wms/stor_manage/warehouse/pick/pick.js b/wms_pro/qd/src/views/wms/stor_manage/warehouse/pick/pick.js index fc95cf89..e793abf3 100644 --- a/wms_pro/qd/src/views/wms/stor_manage/warehouse/pick/pick.js +++ b/wms_pro/qd/src/views/wms/stor_manage/warehouse/pick/pick.js @@ -46,4 +46,12 @@ export function taskopen(data) { }) } -export default {add, edit, del, savePickTask, updateStatus, taskopen} +export function updateDtl(data) { + return request({ + url: '/api/picking/updateDtl', + method: 'post', + data + }) +} + +export default {add, edit, del, savePickTask, updateStatus, taskopen, updateDtl}