From 9ec53a5ba0c7d6a4e9eb8c52d4c48fcd8ab7028b Mon Sep 17 00:00:00 2001 From: liuxy Date: Mon, 11 Sep 2023 17:01:50 +0800 Subject: [PATCH] =?UTF-8?q?add=EF=BC=9A=E5=A4=87=E4=BB=B6=E5=87=BA?= =?UTF-8?q?=E5=BA=93=E3=80=81=E5=BA=93=E5=AD=98=E6=9F=A5=E8=AF=A2=E3=80=81?= =?UTF-8?q?=E5=BA=93=E5=AD=98=E5=8F=98=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iostorInv/EmBiIostorinvOutController.java | 77 +++ .../structIvt/EmBiStructivtController.java | 8 +- .../iostorInv/EmBiIostorinvOutService.java | 66 +++ .../dao/mapper/EmBiIostorinvOutMapper.java | 23 + .../dao/mapper/xml/EmBiIostorinvOutMapper.xml | 65 +++ .../impl/EmBiIostorinvOutServiceImpl.java | 302 ++++++++++++ .../impl/EmBiIostorinvServiceImpl.java | 8 + .../service/structIvt/dao/EmBiStructivt.java | 5 + .../dao/mapper/xml/EmBiStructivtMapper.xml | 24 +- .../wms/device_manage/ios/embiivt/embiivt.js | 40 ++ .../wms/device_manage/ios/embiivt/index.vue | 161 +++++++ .../ios/embiivtflow/embiivtFlow.js | 31 ++ .../device_manage/ios/embiivtflow/index.vue | 172 +++++++ .../device_manage/ios/embiout/AddDialog.vue | 442 ++++++++++++++++++ .../device_manage/ios/embiout/StructIvt.vue | 155 ++++++ .../device_manage/ios/embiout/ViewDialog.vue | 251 ++++++++++ .../wms/device_manage/ios/embiout/embiout.js | 228 +++++++++ .../wms/device_manage/ios/embiout/index.vue | 335 +++++++++++++ 18 files changed, 2383 insertions(+), 10 deletions(-) create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/ios/controller/iostorInv/EmBiIostorinvOutController.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/ios/service/iostorInv/EmBiIostorinvOutService.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/ios/service/iostorInv/dao/mapper/EmBiIostorinvOutMapper.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/ios/service/iostorInv/dao/mapper/xml/EmBiIostorinvOutMapper.xml create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/ios/service/iostorInv/impl/EmBiIostorinvOutServiceImpl.java create mode 100644 mes/qd/src/views/wms/device_manage/ios/embiivt/embiivt.js create mode 100644 mes/qd/src/views/wms/device_manage/ios/embiivt/index.vue create mode 100644 mes/qd/src/views/wms/device_manage/ios/embiivtflow/embiivtFlow.js create mode 100644 mes/qd/src/views/wms/device_manage/ios/embiivtflow/index.vue create mode 100644 mes/qd/src/views/wms/device_manage/ios/embiout/AddDialog.vue create mode 100644 mes/qd/src/views/wms/device_manage/ios/embiout/StructIvt.vue create mode 100644 mes/qd/src/views/wms/device_manage/ios/embiout/ViewDialog.vue create mode 100644 mes/qd/src/views/wms/device_manage/ios/embiout/embiout.js create mode 100644 mes/qd/src/views/wms/device_manage/ios/embiout/index.vue diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/ios/controller/iostorInv/EmBiIostorinvOutController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/ios/controller/iostorInv/EmBiIostorinvOutController.java new file mode 100644 index 00000000..7cb5e962 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/ios/controller/iostorInv/EmBiIostorinvOutController.java @@ -0,0 +1,77 @@ +package org.nl.wms.device_manage.ios.controller.iostorInv; + + +import com.alibaba.fastjson.JSONObject; +import org.nl.common.anno.Log; +import org.nl.common.domain.query.PageQuery; +import org.nl.wms.device_manage.ios.service.iostorInv.EmBiIostorinvOutService; +import org.nl.wms.device_manage.ios.service.iostorInv.dto.EmIostorInvQuery; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +/** + *

+ * 出入库单主表 前端控制器 + *

+ * + * @author generator + * @since 2023-05-10 + */ +@RestController +@RequestMapping("/api/emBiIostorinv/out") +public class EmBiIostorinvOutController { + + @Autowired + private EmBiIostorinvOutService emBiIostorinvOutService; + + @GetMapping + @Log("查询原料出库单") + //("查询原料出库单") + public ResponseEntity query(EmIostorInvQuery query, PageQuery page){ + return new ResponseEntity<>(emBiIostorinvOutService.pageQuery(query,page),HttpStatus.OK); + } + + @PostMapping + @Log("创建入库单") + //("创建入库单") + public ResponseEntity create(@RequestBody JSONObject whereJson) { + emBiIostorinvOutService.create(whereJson); + return new ResponseEntity<>(HttpStatus.OK); + } + + @PostMapping("/update") + @Log("修改入库单") + //("修改入库单") + public ResponseEntity update(@RequestBody JSONObject whereJson) { + emBiIostorinvOutService.updateBill(whereJson); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + + @DeleteMapping + @Log("删除入库单") + //("删除入库单") + public ResponseEntity delete(@RequestBody Long[] ids){ + emBiIostorinvOutService.delete(ids); + return new ResponseEntity<>(HttpStatus.OK); + } + + @PostMapping("/getIODtl") + @Log("查询出库分配明细") + //("查询出库分配明细") + public ResponseEntity getIODtl(@RequestBody JSONObject whereJson) { + return new ResponseEntity<>(emBiIostorinvOutService.getInvDtl(whereJson), HttpStatus.OK); + } + + @PostMapping("/confirm") + @Log("强制确认") + //("强制确认") + public ResponseEntity confirm(@RequestBody JSONObject whereJson) { + emBiIostorinvOutService.confirm(whereJson); + return new ResponseEntity<>(HttpStatus.OK); + } + + +} + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/ios/controller/structIvt/EmBiStructivtController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/ios/controller/structIvt/EmBiStructivtController.java index 0d404c66..9249be02 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/ios/controller/structIvt/EmBiStructivtController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/ios/controller/structIvt/EmBiStructivtController.java @@ -29,8 +29,8 @@ public class EmBiStructivtController { private EmBiStructivtService emBiStructivtService; @GetMapping("/getRawIvt") - @Log("查询可用的原料库存") - //("查询可用的原料库存") + @Log("查询可用的备件库存") + //("查询可用的备件库存") public ResponseEntity getRawIvt(StructIvtEmQuery query, PageQuery page) { return new ResponseEntity<>(emBiStructivtService.getRawIvt(query, page), HttpStatus.OK); } @@ -57,8 +57,8 @@ public class EmBiStructivtController { } @GetMapping("/getAllRawIvt") - @Log("查询原料库存") - //("查询原料库存") + @Log("查询备件库存") + //("查询备件库存") public ResponseEntity getAllRawIvt(StructIvtEmQuery query, PageQuery page) { return new ResponseEntity<>(emBiStructivtService.getAllRawIvt(query, page), HttpStatus.OK); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/ios/service/iostorInv/EmBiIostorinvOutService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/ios/service/iostorInv/EmBiIostorinvOutService.java new file mode 100644 index 00000000..1b6cbe52 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/ios/service/iostorInv/EmBiIostorinvOutService.java @@ -0,0 +1,66 @@ +package org.nl.wms.device_manage.ios.service.iostorInv; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.service.IService; +import org.nl.common.domain.query.PageQuery; +import org.nl.wms.device_manage.ios.service.iostorInv.dao.EmBiostorinv; +import org.nl.wms.device_manage.ios.service.iostorInv.dto.EmIostorInvQuery; + +import java.util.List; +import java.util.Map; + +/** + *

+ * 出入库单主表 服务类 + *

+ * + * @author generator + * @since 2023-05-10 + */ +public interface EmBiIostorinvOutService extends IService { + + /** + * 分页查询 + * @param query,page / + * @return JSONObject + */ + Object pageQuery(EmIostorInvQuery query, PageQuery page); + + /** + * 创建 + * + * @param form / + */ + void create(JSONObject form); + + /** + * 修改单据 + * @param form + * @return + */ + String updateBill(JSONObject form); + + /** + * 删除 + * @param ids + * { + * 主表id.. + * } + */ + void delete(Long[] ids); + + /** + * 获取分配明细 + * @param form + * @return + */ + List getInvDtl(JSONObject form); + + /** + * 强制确认 + * @param form + * @return + */ + void confirm(JSONObject form); + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/ios/service/iostorInv/dao/mapper/EmBiIostorinvOutMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/ios/service/iostorInv/dao/mapper/EmBiIostorinvOutMapper.java new file mode 100644 index 00000000..23048dc3 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/ios/service/iostorInv/dao/mapper/EmBiIostorinvOutMapper.java @@ -0,0 +1,23 @@ +package org.nl.wms.device_manage.ios.service.iostorInv.dao.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.nl.common.domain.query.PageQuery; +import org.nl.wms.device_manage.ios.service.iostorInv.dao.EmBiostorinv; +import org.nl.wms.device_manage.ios.service.iostorInv.dto.EmIostorInvQuery; + +import java.util.List; +import java.util.Map; + +/** + *

+ * 出入库单主表 Mapper 接口 + *

+ * + * @author generator + * @since 2023-05-10 + */ +public interface EmBiIostorinvOutMapper extends BaseMapper { + + List getMstDetail(@Param("query") EmIostorInvQuery query, @Param("pageQuery") PageQuery pageQuery); +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/ios/service/iostorInv/dao/mapper/xml/EmBiIostorinvOutMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/ios/service/iostorInv/dao/mapper/xml/EmBiIostorinvOutMapper.xml new file mode 100644 index 00000000..aaa69e75 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/ios/service/iostorInv/dao/mapper/xml/EmBiIostorinvOutMapper.xml @@ -0,0 +1,65 @@ + + + + + + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/ios/service/iostorInv/impl/EmBiIostorinvOutServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/ios/service/iostorInv/impl/EmBiIostorinvOutServiceImpl.java new file mode 100644 index 00000000..8afb905f --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/ios/service/iostorInv/impl/EmBiIostorinvOutServiceImpl.java @@ -0,0 +1,302 @@ +package org.nl.wms.device_manage.ios.service.iostorInv.impl; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.NumberUtil; +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.github.pagehelper.Page; +import com.github.pagehelper.PageHelper; +import io.jsonwebtoken.lang.Assert; +import org.jetbrains.annotations.NotNull; +import org.nl.common.TableDataInfo; +import org.nl.common.domain.query.PageQuery; +import org.nl.common.utils.IdUtil; +import org.nl.common.utils.SecurityUtils; +import org.nl.modules.common.exception.BadRequestException; +import org.nl.modules.system.util.CodeUtil; +import org.nl.wms.device_manage.ios.service.iostorInv.EmBiIostorinvOutService; +import org.nl.wms.device_manage.ios.service.iostorInv.EmBiIostorinvdisService; +import org.nl.wms.device_manage.ios.service.iostorInv.EmBiIostorinvdtlService; +import org.nl.wms.device_manage.ios.service.iostorInv.dao.EmBiIostorinvdis; +import org.nl.wms.device_manage.ios.service.iostorInv.dao.EmBiIostorinvdtl; +import org.nl.wms.device_manage.ios.service.iostorInv.dao.EmBiostorinv; +import org.nl.wms.device_manage.ios.service.iostorInv.dao.mapper.EmBiIostorinvOutMapper; +import org.nl.wms.device_manage.ios.service.iostorInv.dto.EmIostorInvQuery; +import org.nl.wms.device_manage.ios.service.structIvt.EmBiStructivtService; +import org.nl.wms.device_manage.ios.service.structIvt.EmBiStructivtflowService; +import org.nl.wms.device_manage.ios.service.structIvt.dao.EmBiStructivt; +import org.nl.wms.masterdata_manage.service.material.IMdMeMaterialbaseService; +import org.nl.wms.masterdata_manage.service.material.dao.MdMeMaterialbase; +import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtBsrealstorattrService; +import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtStructattrService; +import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtBsrealstorattr; +import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr; +import org.nl.wms.storage_manage.IOSEnum; +import org.nl.wms.storage_manage.productmanage.util.ChangeIvtUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.transaction.Transactional; +import java.math.BigDecimal; +import java.util.List; +import java.util.Map; + +/** + *

+ * 出入库单主表 服务实现类 + *

+ * + * @author generator + * @since 2023-05-10 + */ +@Service +public class EmBiIostorinvOutServiceImpl extends ServiceImpl implements EmBiIostorinvOutService { + + @Autowired + private IStIvtBsrealstorattrService stIvtBsrealstorattrService; // 仓库服务 + + @Autowired + private EmBiIostorinvdtlService emBiIostorinvdtlService; // 明细服务 + + @Autowired + private EmBiIostorinvdisService emBiIostorinvdisService; // 分配服务 + + @Autowired + private EmBiStructivtService emBiStructivtService; // 库存服务 + + @Autowired + private IMdMeMaterialbaseService materialbaseService; // 物料基本信息服务 + + @Autowired + private IStIvtStructattrService structattrService; // 仓位服务 + + @Autowired + private EmBiStructivtflowService emBiStructivtflowService; // 仓位变动记录服务 + + + @Override + public Object pageQuery(EmIostorInvQuery query, PageQuery pageQuery) { + Page page = PageHelper.startPage(pageQuery.getPage() + 1, pageQuery.getSize()); + List mst_detail = this.baseMapper.getMstDetail(query, pageQuery); + TableDataInfo build = TableDataInfo.build(mst_detail); + build.setTotalElements(page.getTotal()); + return build; + } + + @Override + @Transactional(rollbackOn = Exception.class) + public void create(JSONObject form) { + JSONArray rows = form.getJSONArray("tableData"); + if (ObjectUtil.isEmpty(rows)) throw new BadRequestException("请求参数不能为空"); + + // 调用主表 插入/更新方法 + EmBiostorinv stIvtIostorinvYl = packageMstForm(new EmBiostorinv(), form, false); + // 插入主表 + this.save(stIvtIostorinvYl); + + // 调用明细表 插入/更新方法 + emBiIostorinvdtlService.create(rows, stIvtIostorinvYl.getIostorinv_id(), stIvtIostorinvYl.getIo_type()); + } + + @Override + @Transactional(rollbackOn = Exception.class) + public String updateBill(JSONObject form) { + Assert.notNull(new Object[]{form, form.get("iostorinv_id")}, "请求参数不能为空"); + EmBiostorinv mst = form.toJavaObject(EmBiostorinv.class); + mst.setUpdate_id(SecurityUtils.getCurrentUserId()); + mst.setUpdate_name(SecurityUtils.getCurrentNickName()); + mst.setUpdate_time(DateUtil.now()); + this.updateById(mst); + + JSONArray rows = form.getJSONArray("tableData"); + if (ObjectUtil.isEmpty(rows)) throw new BadRequestException("请求参数不能为空"); + // 调用明细表 插入/更新方法 + emBiIostorinvdtlService.create(rows, form.getString("iostorinv_id"), mst.getIo_type()); + return mst.getIostorinv_id(); + } + + @Override + public void delete(Long[] ids) { + + for (Long id : ids) { + EmBiostorinv dao = this.getOne(new QueryWrapper().eq("iostorinv_id", id)); + dao.setIs_delete(true); + + this.updateById(dao); + } + } + + @Override + public List getInvDtl(JSONObject form) { + return emBiIostorinvdtlService.getDtlList(form); + } + + @Override + @Transactional(rollbackOn = Exception.class) + public void confirm(JSONObject form) { + Assert.notNull(new Object[]{form, form.get("iostorinv_id")}, "请求参数不能为空"); + + String iostorinv_id = form.getString("iostorinv_id"); + + EmBiostorinv mst = this.getById(iostorinv_id); + mst.setBill_status(IOSEnum.BILL_STATUS.code("完成")); + mst.setDis_id(SecurityUtils.getCurrentUserId()); + mst.setDis_name(SecurityUtils.getCurrentNickName()); + mst.setDis_time(DateUtil.now()); + mst.setConfirm_id(SecurityUtils.getCurrentUserId()); + mst.setConfirm_name(SecurityUtils.getCurrentNickName()); + mst.setConfirm_time(DateUtil.now()); + this.updateById(mst); + + List dtl_list = emBiIostorinvdtlService.list(new QueryWrapper().eq("iostorinv_id", iostorinv_id)); + + if (ObjectUtil.isEmpty(dtl_list)) { + throw new BadRequestException("该入库单不存在明细!"); + } + + if (mst == null || mst.getIs_delete() == true) { + throw new BadRequestException("单据不存在"); + } + + dtl_list.forEach(dtl -> { + double need_qty = dtl.getPlan_qty().doubleValue(); + + List list = emBiStructivtService.list(new QueryWrapper() + .eq("material_id", dtl.getMaterial_id()) + .eq("stor_id", mst.getStor_id()) + .eq("workshop_id", mst.getWorkshop_id())); + + MdMeMaterialbase mater = materialbaseService.getOne(new QueryWrapper().eq("material_id", dtl.getMaterial_id())); + + if (ObjectUtil.isEmpty(list)) { + throw new BadRequestException("当前仓库内不存在物料:" + mater.getMaterial_name()); + } + + for (EmBiStructivt ivt : list) { + //判断是否需要继续分配库存,不大于0时跳出循环 + if (need_qty > 0) { + double canuse_qty = ivt.getCanuse_qty().doubleValue(); + + //插入分配表 + String s = JSON.toJSONString(dtl); + JSONObject dis = JSONObject.parseObject(s); + StIvtStructattr structattr = structattrService.getOne(new QueryWrapper().eq("struct_id", ivt.getStruct_id())); + dis.put("struct_id", structattr.getStruct_id()); + dis.put("struct_code", structattr.getStruct_code()); + dis.put("struct_name", structattr.getStruct_name()); + dis.put("sect_id", structattr.getSect_id()); + dis.put("sect_code", structattr.getSect_code()); + dis.put("sect_name", structattr.getSect_name()); + if (canuse_qty > need_qty) { + dis.put("plan_qty", need_qty); + dis.put("real_qty", need_qty); + //减去库存 + double sub = NumberUtil.sub(canuse_qty, need_qty); + ivt.setCanuse_qty(BigDecimal.valueOf(sub)); + ivt.setIvt_qty(BigDecimal.valueOf(sub)); + emBiStructivtService.updateById(ivt); + + // 插入库存变动记录 + JSONObject param = JSONObject.parseObject(JSON.toJSONString(ivt)); + param.put("change_type", ChangeIvtUtil.SUBFROZEN_SUBIVT_QTY); + param.put("change_qty",need_qty); + param.put("result_qty", sub); + param.put("bill_code",mst.getBill_code()); + param.put("inv_id",mst.getIostorinv_id()); + param.put("bill_type_scode",mst.getBill_type()); + emBiStructivtflowService.insetIvtChange(param); + + need_qty = 0; + } else { + dis.put("plan_qty", canuse_qty); + dis.put("real_qty", canuse_qty); + emBiStructivtService.remove(new QueryWrapper().eq("stockrecord_id", ivt.getStockrecord_id())); + + // 插入库存变动记录 + JSONObject param = JSONObject.parseObject(JSON.toJSONString(ivt)); + param.put("change_type", ChangeIvtUtil.SUBFROZEN_SUBIVT_QTY); + param.put("change_qty",need_qty); + param.put("result_qty", 0); + param.put("bill_code",mst.getBill_code()); + param.put("inv_id",mst.getIostorinv_id()); + param.put("bill_type_scode",mst.getBill_type()); + emBiStructivtflowService.insetIvtChange(param); + + need_qty = NumberUtil.sub(need_qty - canuse_qty).doubleValue(); + } + JSONObject mst_jo = new JSONObject(); + mst_jo.put("mst_id", dtl.getIostorinv_id()); + mst_jo.put("dtl_id", dtl.getIostorinv_id()); + emBiIostorinvdisService.create(dis, mst_jo); + //维护库存 + } else { + break; + } + } + if (need_qty > 0) { + throw new BadRequestException("物料:" + mater.getMaterial_name() + "库存不足,缺少:" + need_qty + "个"); + } + }); + + List dis_list = emBiIostorinvdisService.list(new QueryWrapper().eq("iostorinv_id", iostorinv_id)); + + //修改分配状态 + dis_list.forEach(dis -> { + dis.setWork_status(IOSEnum.WORK_STATUS.code("完成")); + emBiIostorinvdisService.updateById(dis); + }); + + } + + @NotNull + private EmBiostorinv packageMstForm(EmBiostorinv stIvtIostorinvYl, JSONObject whereJson, Boolean isUpdate) { + JSONArray rows = whereJson.getJSONArray("tableData"); + if (!isUpdate) { + // 新增 + stIvtIostorinvYl.setIostorinv_id(IdUtil.getStringId()); + stIvtIostorinvYl.setBill_code(CodeUtil.getNewCode("IO_CODE")); + stIvtIostorinvYl.setIo_type(IOSEnum.IO_TYPE.code("出库")); + stIvtIostorinvYl.setBuss_type(whereJson.getString("bill_type")); + stIvtIostorinvYl.setBill_type(stIvtIostorinvYl.getBuss_type()); + stIvtIostorinvYl.setBill_status(IOSEnum.BILL_STATUS.code("生成")); + stIvtIostorinvYl.setCreate_id(SecurityUtils.getCurrentUserId()); + stIvtIostorinvYl.setCreate_name(SecurityUtils.getCurrentNickName()); + stIvtIostorinvYl.setCreate_time(DateUtil.now()); + stIvtIostorinvYl.setIs_delete(false); + stIvtIostorinvYl.setUpdate_id(SecurityUtils.getCurrentUserId()); + stIvtIostorinvYl.setUpdate_name(SecurityUtils.getCurrentNickName()); + stIvtIostorinvYl.setUpdate_time(DateUtil.now()); + // TODO 暂时写死 + stIvtIostorinvYl.setSysdeptid("111"); + stIvtIostorinvYl.setSyscompanyid("111"); + + } else { + // 修改 + stIvtIostorinvYl.setUpdate_id(SecurityUtils.getCurrentUserId()); + stIvtIostorinvYl.setUpdate_name(SecurityUtils.getCurrentNickName()); + stIvtIostorinvYl.setUpdate_time(DateUtil.now()); + } + + stIvtIostorinvYl.setBiz_date(whereJson.getString("biz_date").substring(0, 10)); + // 获取仓库信息 + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("stor_id", whereJson.getString("stor_id")); + wrapper.eq("is_used", true); + StIvtBsrealstorattr bsrealDao = stIvtBsrealstorattrService.getOne(wrapper); + if (ObjectUtil.isEmpty(bsrealDao)) throw new BadRequestException("仓库不存在或未启用!"); + + stIvtIostorinvYl.setStor_id(bsrealDao.getStor_id()); + stIvtIostorinvYl.setStor_code(bsrealDao.getStor_code()); + stIvtIostorinvYl.setStor_name(bsrealDao.getStor_name()); + stIvtIostorinvYl.setTotal_qty(whereJson.getBigDecimal("total_qty")); + stIvtIostorinvYl.setDetail_count(rows.size()); + stIvtIostorinvYl.setRemark(whereJson.getString("remark")); + stIvtIostorinvYl.setWorkshop_id(whereJson.getString("workshop_id")); + + return stIvtIostorinvYl; + } +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/ios/service/iostorInv/impl/EmBiIostorinvServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/ios/service/iostorInv/impl/EmBiIostorinvServiceImpl.java index eabe0af3..4a539bba 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/ios/service/iostorInv/impl/EmBiIostorinvServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/ios/service/iostorInv/impl/EmBiIostorinvServiceImpl.java @@ -29,6 +29,8 @@ import org.nl.wms.device_manage.ios.service.iostorInv.dto.EmIostorInvQuery; import org.nl.wms.device_manage.ios.service.structIvt.EmBiStructivtService; import org.nl.wms.device_manage.ios.service.structIvt.EmBiStructivtflowService; import org.nl.wms.device_manage.ios.service.structIvt.dao.EmBiStructivt; +import org.nl.wms.masterdata_manage.service.material.IMdMeMaterialbaseService; +import org.nl.wms.masterdata_manage.service.material.dao.MdMeMaterialbase; import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtBsrealstorattrService; import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtBsrealstorattr; import org.nl.wms.storage_manage.IOSEnum; @@ -67,6 +69,9 @@ public class EmBiIostorinvServiceImpl extends ServiceImpl page = PageHelper.startPage(pageQuery.getPage() + 1, pageQuery.getSize()); @@ -148,6 +153,8 @@ public class EmBiIostorinvServiceImpl extends ServiceImpl - and (mb.material_code like '%${query.material_search}%' OR mb.material_name like '%${query.material_search}%') + and (mb.material_code like '%${query.material_search}%' OR + mb.material_name like '%${query.material_search}%' OR + mb.material_spec like '%${query.material_search}%' + ) and sa.sect_id = #{query.sect_id} + + and sa.stor_id = #{query.stor_id} + - and sa.struct_id = #{query.struct_id} + and (sa.struct_code like '%${query.struct_id}%' OR + sa.struct_name like '%${query.struct_id}%') + + + and ivt.instorage_time >= #{query.start_time} + + + and #{query.end_time} >= ivt.instorage_time diff --git a/mes/qd/src/views/wms/device_manage/ios/embiivt/embiivt.js b/mes/qd/src/views/wms/device_manage/ios/embiivt/embiivt.js new file mode 100644 index 00000000..e6d9c4a1 --- /dev/null +++ b/mes/qd/src/views/wms/device_manage/ios/embiivt/embiivt.js @@ -0,0 +1,40 @@ +import request from '@/utils/request' + +export function add(data) { + return request({ + url: '/api/emBiStructivt', + method: 'post', + data + }) +} + +export function del(ids) { + return request({ + url: '/api/emBiStructivt/delete', + method: 'post', + data: ids + }) +} + +export function exportFile(data) { + return request({ + url: '/api/emBiStructivt/exportFile', + method: 'post', + data + }) +} + +export function edit(data) { + return request({ + url: '/api/emBiStructivt/update', + method: 'post', + data + }) +} + +export default { + add, + edit, + del, + exportFile +} diff --git a/mes/qd/src/views/wms/device_manage/ios/embiivt/index.vue b/mes/qd/src/views/wms/device_manage/ios/embiivt/index.vue new file mode 100644 index 00000000..b2779a80 --- /dev/null +++ b/mes/qd/src/views/wms/device_manage/ios/embiivt/index.vue @@ -0,0 +1,161 @@ + + + + diff --git a/mes/qd/src/views/wms/device_manage/ios/embiivtflow/embiivtFlow.js b/mes/qd/src/views/wms/device_manage/ios/embiivtflow/embiivtFlow.js new file mode 100644 index 00000000..13a2782a --- /dev/null +++ b/mes/qd/src/views/wms/device_manage/ios/embiivtflow/embiivtFlow.js @@ -0,0 +1,31 @@ +import request from '@/utils/request' + +export function add(data) { + return request({ + url: '/api/EmBiStructivtflow', + method: 'post', + data + }) +} + +export function del(ids) { + return request({ + url: '/api/EmBiStructivtflow/delete', + method: 'post', + data: ids + }) +} + +export function edit(data) { + return request({ + url: '/api/EmBiStructivtflow/update', + method: 'post', + data + }) +} + +export default { + add, + edit, + del +} diff --git a/mes/qd/src/views/wms/device_manage/ios/embiivtflow/index.vue b/mes/qd/src/views/wms/device_manage/ios/embiivtflow/index.vue new file mode 100644 index 00000000..6629792f --- /dev/null +++ b/mes/qd/src/views/wms/device_manage/ios/embiivtflow/index.vue @@ -0,0 +1,172 @@ + + + + diff --git a/mes/qd/src/views/wms/device_manage/ios/embiout/AddDialog.vue b/mes/qd/src/views/wms/device_manage/ios/embiout/AddDialog.vue new file mode 100644 index 00000000..27b1210d --- /dev/null +++ b/mes/qd/src/views/wms/device_manage/ios/embiout/AddDialog.vue @@ -0,0 +1,442 @@ + + + + + + diff --git a/mes/qd/src/views/wms/device_manage/ios/embiout/StructIvt.vue b/mes/qd/src/views/wms/device_manage/ios/embiout/StructIvt.vue new file mode 100644 index 00000000..030878b3 --- /dev/null +++ b/mes/qd/src/views/wms/device_manage/ios/embiout/StructIvt.vue @@ -0,0 +1,155 @@ + + + + + diff --git a/mes/qd/src/views/wms/device_manage/ios/embiout/ViewDialog.vue b/mes/qd/src/views/wms/device_manage/ios/embiout/ViewDialog.vue new file mode 100644 index 00000000..1a55564f --- /dev/null +++ b/mes/qd/src/views/wms/device_manage/ios/embiout/ViewDialog.vue @@ -0,0 +1,251 @@ + + + + + + diff --git a/mes/qd/src/views/wms/device_manage/ios/embiout/embiout.js b/mes/qd/src/views/wms/device_manage/ios/embiout/embiout.js new file mode 100644 index 00000000..dd1730d2 --- /dev/null +++ b/mes/qd/src/views/wms/device_manage/ios/embiout/embiout.js @@ -0,0 +1,228 @@ +import request from '@/utils/request' + +export function add(data) { + return request({ + url: '/api/emBiIostorinv/out', + method: 'post', + data + }) +} + +export function del(ids) { + return request({ + url: '/api/emBiIostorinv/out/', + method: 'delete', + data: ids + }) +} + +export function edit(data) { + return request({ + url: '/api/emBiIostorinv/out/update', + method: 'post', + data + }) +} + +export function getIODtl(data) { + return request({ + url: '/api/emBiIostorinv/out/getIODtl', + method: 'post', + data + }) +} +export function getIODis(data) { + return request({ + url: '/api/emBiIostorinv/out/getIODis', + method: 'post', + data + }) +} +export function getOutBillDisDtl(params) { + return request({ + url: '/api/emBiIostorinv/out/getOutBillDisDtl', + method: 'get', + params + }) +} +export function getOutBillTask(params) { + return request({ + url: '/api/emBiIostorinv/out/getOutBillTask', + method: 'get', + params + }) +} +export function getInvTypes() { + return request({ + url: '/api/emBiIostorinv/out/getInvTypes', + method: 'get' + }) +} +export function insertDtl(data) { + return request({ + url: '/api/emBiIostorinv/out/insertDtl', + method: 'post', + data + }) +} +export function allDiv(data) { + return request({ + url: '/api/emBiIostorinv/out/allDiv', + method: 'post', + data + }) +} +export function allDivOne(data) { + return request({ + url: '/api/emBiIostorinv/out/allDivOne', + method: 'post', + data + }) +} +export function allCancel(data) { + return request({ + url: '/api/emBiIostorinv/out/allCancel', + method: 'post', + data + }) +} +export function oneCancel(data) { + return request({ + url: '/api/emBiIostorinv/out/oneCancel', + method: 'post', + data + }) +} +export function setPoint(data) { + return request({ + url: '/api/emBiIostorinv/out/setPoint', + method: 'post', + data + }) +} +export function oneSetPoint(data) { + return request({ + url: '/api/emBiIostorinv/out/oneSetPoint', + method: 'post', + data + }) +} +export function getStructIvt(params) { + return request({ + url: '/api/emBiIostorinv/out/getStructIvt', + method: 'get', + params + }) +} +export function manualDiv(data) { + return request({ + url: '/api/emBiIostorinv/out/manualDiv', + method: 'post', + data + }) +} +export function confirm(data) { + return request({ + url: '/api/emBiIostorinv/out/confirm', + method: 'post', + data + }) +} +export function issueTask(data) { + return request({ + url: '/api/emBiIostorinv/out/issueTask', + method: 'post', + data + }) +} +export function finishTask(data) { + return request({ + url: '/api/emBiIostorinv/out/finishTask', + method: 'post', + data + }) +} +export function cancleTaskfinish(data) { + return request({ + url: '/api/emBiIostorinv/out/cancleTaskfinish', + method: 'post', + data + }) +} +export function paramByCodeType(data) { + return request({ + url: '/api/emBiIostorinv/out/paramByCodeType', + method: 'post', + data + }) +} +export function schAreaType(data) { + return request({ + url: '/api/emBiIostorinv/out/schAreaType', + method: 'post', + data + }) +} +export function backConfirm(data) { + return request({ + url: '/api/emBiIostorinv/out/backConfirm', + method: 'post', + data + }) +} +export function getType() { + return request({ + url: '/api/emBiIostorinv/out/getType', + method: 'get' + }) +} +export function moneySubmit(data) { + return request({ + url: '/api/emBiIostorinv/out/moneySubmit', + method: 'post', + data + }) +} +export function getDisNum(data) { + return request({ + url: '/api/emBiIostorinv/out/getDisNum', + method: 'post', + data + }) +} +export function queryBox(data) { + return request({ + url: '/api/emBiIostorinv/out/queryBox', + method: 'post', + data + }) +} +export function getOutBillTask2(data) { + return request({ + url: '/api/emBiIostorinv/out/getOutBillTask2', + method: 'post', + data + }) +} +export function cancelTask(data) { + return request({ + url: '/api/out/emBiIostorinv/out/cancelTask', + method: 'post', + data + }) +} +export function allSetPoint(data) { + return request({ + url: '/api/emBiIostorinv/out/allSetPoint', + method: 'post', + data + }) +} +export function oneSetPoint2(data) { + return request({ + url: '/api/emBiIostorinv/out/oneSetPoint2', + method: 'post', + data + }) +} +export default { add, edit, del, allDiv, allCancel, getIODtl, getIODis, setPoint, oneSetPoint, getOutBillTask, getStructIvt, manualDiv, confirm, issueTask, finishTask, cancleTaskfinish, getInvTypes, paramByCodeType, schAreaType, backConfirm, getOutBillDisDtl, getType, allDivOne, moneySubmit, getDisNum, queryBox, getOutBillTask2, oneCancel, cancelTask, allSetPoint, oneSetPoint2 } diff --git a/mes/qd/src/views/wms/device_manage/ios/embiout/index.vue b/mes/qd/src/views/wms/device_manage/ios/embiout/index.vue new file mode 100644 index 00000000..a34ed491 --- /dev/null +++ b/mes/qd/src/views/wms/device_manage/ios/embiout/index.vue @@ -0,0 +1,335 @@ + + + + +