From 69c7b8ecc9723c1570ea38e574dc613f95b2e39f Mon Sep 17 00:00:00 2001 From: liuxy Date: Tue, 19 Aug 2025 20:29:23 +0800 Subject: [PATCH] =?UTF-8?q?add=EF=BC=9A=E9=80=80=E6=96=99=E7=AE=A1?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/GroupController.java | 7 + .../BomCallMaterialDtlController.java | 68 +++++ .../org/nl/wms/pdm_manage/enums/BomEnum.java | 5 +- .../IPdmBomCallMaterialDtlService.java | 71 +++++ .../service/IPdmBomCallMaterialService.java | 6 + .../service/dao/PdmBomCallMaterial.java | 2 +- .../service/dao/PdmBomCallMaterialDtl.java | 97 ++++++ .../mapper/PdmBomCallMaterialDtlMapper.java | 42 +++ .../mapper/PdmBomCallMaterialDtlMapper.xml | 83 +++++ .../service/dto/PdmBomCallMaterialDtlDto.java | 52 ++++ .../PdmBomCallMaterialDtlServiceImpl.java | 138 +++++++++ .../impl/PdmBomCallMaterialServiceImpl.java | 33 +- .../service/util/tasks/ReceiveOutTask.java | 49 ++- .../service/IMdPbGroupplateService.java | 1 - .../dao/mapper/MdPbGroupplateMapper.java | 1 + .../dao/mapper/MdPbGroupplateMapper.xml | 2 +- .../service/dto/GroupPlateDto.java | 5 + .../impl/MdPbGroupplateServiceImpl.java | 9 + .../service/impl/OutBillServiceImpl.java | 1 + .../service/impl/SelectOutServiceImpl.java | 29 +- .../src/views/wms/basedata/group/AddDtl.vue | 289 ++++++++++++++++++ .../src/views/wms/basedata/group/group.js | 10 +- .../src/views/wms/basedata/group/index.vue | 30 +- .../views/wms/pdm/callmaterial/ViewDialog.vue | 175 +++++++++++ .../src/views/wms/pdm/callmaterial/index.vue | 16 +- .../wms/pdm/callmaterialdtl/WeighDialog.vue | 166 ++++++++++ .../pdm/callmaterialdtl/callmaterialdtl.js | 59 ++++ .../views/wms/pdm/callmaterialdtl/index.vue | 229 ++++++++++++++ .../src/views/wms/st/outbill/AddDialog.vue | 1 + .../views/wms/st/selectout/WeighDialog.vue | 4 +- 30 files changed, 1657 insertions(+), 23 deletions(-) create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm_manage/controller/BomCallMaterialDtlController.java create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm_manage/service/IPdmBomCallMaterialDtlService.java create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm_manage/service/dao/PdmBomCallMaterialDtl.java create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm_manage/service/dao/mapper/PdmBomCallMaterialDtlMapper.java create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm_manage/service/dao/mapper/PdmBomCallMaterialDtlMapper.xml create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm_manage/service/dto/PdmBomCallMaterialDtlDto.java create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm_manage/service/impl/PdmBomCallMaterialDtlServiceImpl.java create mode 100644 wms/nladmin-ui/src/views/wms/basedata/group/AddDtl.vue create mode 100644 wms/nladmin-ui/src/views/wms/pdm/callmaterial/ViewDialog.vue create mode 100644 wms/nladmin-ui/src/views/wms/pdm/callmaterialdtl/WeighDialog.vue create mode 100644 wms/nladmin-ui/src/views/wms/pdm/callmaterialdtl/callmaterialdtl.js create mode 100644 wms/nladmin-ui/src/views/wms/pdm/callmaterialdtl/index.vue diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/controller/GroupController.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/controller/GroupController.java index 2b63681..1cc1988 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/controller/GroupController.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/controller/GroupController.java @@ -81,4 +81,11 @@ public class GroupController { iMdPbGroupplateService.delete(ids); return new ResponseEntity<>(HttpStatus.OK); } + + @PostMapping("/copySave") + @Log("查询供应商") + public ResponseEntity copySave(@RequestBody GroupPlate dto) { + iMdPbGroupplateService.create(dto); + return new ResponseEntity<>(HttpStatus.OK); + } } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm_manage/controller/BomCallMaterialDtlController.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm_manage/controller/BomCallMaterialDtlController.java new file mode 100644 index 0000000..82fd63f --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm_manage/controller/BomCallMaterialDtlController.java @@ -0,0 +1,68 @@ +package org.nl.wms.pdm_manage.controller; + + +import com.alibaba.fastjson.JSONObject; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.common.base.TableDataInfo; +import org.nl.common.domain.query.PageQuery; +import org.nl.common.logging.annotation.Log; +import org.nl.wms.pdm_manage.service.IPdmBomCallMaterialDtlService; +import org.nl.wms.pdm_manage.service.dto.PdmBomCallMaterialDtlDto; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.Map; + +/** + *

+ * 产线叫料明细 控制层 + *

+ * + * @author Liuxy + * @since 2025-08-19 + */ +@RestController +@RequiredArgsConstructor +@RequestMapping("/api/bomCallMaterialDtl") +@Slf4j +public class BomCallMaterialDtlController { + + @Autowired + private IPdmBomCallMaterialDtlService iPdmBomCallMaterialDtlService; + + @GetMapping + @Log("分页查询") + public ResponseEntity query(@RequestParam Map whereJson, PageQuery page) { + return new ResponseEntity<>(TableDataInfo.build(iPdmBomCallMaterialDtlService.queryAll(whereJson, page)), HttpStatus.OK); + } + + @PostMapping("/getDtl") + @Log("查询明细") + public ResponseEntity getDtl(@RequestBody JSONObject whereJson) { + return new ResponseEntity<>(iPdmBomCallMaterialDtlService.getDtl(whereJson), HttpStatus.OK); + } + + @PostMapping("/getWeigh") + @Log("获取称重信息") + public ResponseEntity getWeigh(@RequestBody JSONObject whereJson) { + return new ResponseEntity<>(iPdmBomCallMaterialDtlService.getWeigh(whereJson), HttpStatus.OK); + } + + @PostMapping("/saveWeigh") + @Log("保存称重信息") + public ResponseEntity saveWeigh(@RequestBody PdmBomCallMaterialDtlDto dto) { + iPdmBomCallMaterialDtlService.saveWeigh(dto); + return new ResponseEntity<>(HttpStatus.OK); + } + + @PostMapping("/confirm") + @Log("退料确认") + public ResponseEntity confirm(@RequestBody PdmBomCallMaterialDtlDto dto) { + iPdmBomCallMaterialDtlService.confirm(dto); + return new ResponseEntity<>(HttpStatus.OK); + } + +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm_manage/enums/BomEnum.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm_manage/enums/BomEnum.java index 8969a97..6a8de4c 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm_manage/enums/BomEnum.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm_manage/enums/BomEnum.java @@ -20,11 +20,14 @@ import java.util.Map; @Getter public enum BomEnum { - // 叫料单状态 + // 叫料单主表状态 CALL_BOM_STATUS(MapOf.of("生成", "1", "叫料中", "2", "叫料完成", "3" , "退料中", "4", "完成", "5" )), + // 叫料单明细状态 + CALL_BOM_DTL_STATUS(MapOf.of("生成", "1", "完成", "2")), + ; private Map code; diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm_manage/service/IPdmBomCallMaterialDtlService.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm_manage/service/IPdmBomCallMaterialDtlService.java new file mode 100644 index 0000000..9da061c --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm_manage/service/IPdmBomCallMaterialDtlService.java @@ -0,0 +1,71 @@ +package org.nl.wms.pdm_manage.service; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import org.nl.common.domain.query.PageQuery; +import org.nl.wms.pdm_manage.service.dao.PdmBomCallMaterialDtl; +import org.nl.wms.pdm_manage.service.dto.PdmBomCallMaterialDtlDto; + +import java.util.List; +import java.util.Map; + +/** + *

+ * 产线叫料单明细 服务类 + *

+ * + * @author Liuxy + * @since 2025-08-19 + */ +public interface IPdmBomCallMaterialDtlService extends IService { + + /** + * 分页查询 + * + * @param whereJson : {查询参数} + * @param page : 分页对象 + * @return 返回结果 + */ + IPage queryAll(Map whereJson, PageQuery page); + + /** + * 查询明细 + * + * @param whereJson { + * bom_id + * } + * @return List + */ + List getDtl(JSONObject whereJson); + + /** + * 获取称重信息 + * + * @param whereJson { + * vehicle_code: 载具编码 + * } + * @return JSONObject { + * weigh_qty: 称重重量 + * } + */ + JSONObject getWeigh(JSONObject whereJson); + + /** + * 保存称重信息 + * + * @param dto { + * 叫料明细 + * } + */ + void saveWeigh(PdmBomCallMaterialDtlDto dto); + + /** + * 退料确认 + * + * @param dto { + * 叫料明细 + * } + */ + void confirm(PdmBomCallMaterialDtlDto dto); +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm_manage/service/IPdmBomCallMaterialService.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm_manage/service/IPdmBomCallMaterialService.java index 1c88d2d..2355c09 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm_manage/service/IPdmBomCallMaterialService.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm_manage/service/IPdmBomCallMaterialService.java @@ -54,4 +54,10 @@ public interface IPdmBomCallMaterialService extends IService * @return PdmBomCallMaterial 实体类 */ PdmBomCallMaterial findByCode (String bom_code); + + /** + * 更新叫料单状态 + * @param bom_id 叫料单标识 + */ + void updateStatus(String bom_id); } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm_manage/service/dao/PdmBomCallMaterial.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm_manage/service/dao/PdmBomCallMaterial.java index 00b938a..f69d835 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm_manage/service/dao/PdmBomCallMaterial.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm_manage/service/dao/PdmBomCallMaterial.java @@ -55,7 +55,7 @@ public class PdmBomCallMaterial implements Serializable { private BigDecimal real_qty; /** - * 实际用料总量 + * 实际用料重量 */ private BigDecimal real_weigh_qty; diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm_manage/service/dao/PdmBomCallMaterialDtl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm_manage/service/dao/PdmBomCallMaterialDtl.java new file mode 100644 index 0000000..15060ec --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm_manage/service/dao/PdmBomCallMaterialDtl.java @@ -0,0 +1,97 @@ +package org.nl.wms.pdm_manage.service.dao; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + *

+ * 产线叫料单明细 + *

+ * + * @author Liuxy + * @since 2025-08-19 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("pdm_bom_callmaterialdtl") +public class PdmBomCallMaterialDtl implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 标识 + */ + @TableId(value = "bomdtl_id") + private String bomdtl_id; + + /** + * 工单标识 + */ + private String bom_id; + + /** + * 物料标识 + */ + private String material_id; + + /** + * 批次 + */ + private String pcsn; + + /** + * 载具编码 + */ + private String vehicle_code; + + /** + * 出库仓位 + */ + private String struct_code; + + /** + * 工单状态 + */ + private String bom_status; + + /** + * 出库分配标识 + */ + private String out_dis_id; + + /** + * 出库数量 + */ + private BigDecimal out_qty; + + /** + * 称重重量 + */ + private BigDecimal weigh_qty; + + /** + * 创建人标识 + */ + private String create_id; + + /** + * 创建人 + */ + private String create_name; + + /** + * 创建时间 + */ + private String create_time; + + /** + * 结束时间 + */ + private String confirm_time; + +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm_manage/service/dao/mapper/PdmBomCallMaterialDtlMapper.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm_manage/service/dao/mapper/PdmBomCallMaterialDtlMapper.java new file mode 100644 index 0000000..da0f4d7 --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm_manage/service/dao/mapper/PdmBomCallMaterialDtlMapper.java @@ -0,0 +1,42 @@ +package org.nl.wms.pdm_manage.service.dao.mapper; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Param; +import org.nl.wms.pdm_manage.service.dao.PdmBomCallMaterialDtl; +import org.nl.wms.pdm_manage.service.dto.PdmBomCallMaterialDtlDto; + +import java.util.List; +import java.util.Map; + +/** + *

+ * 产线叫料单明细 Mapper 接口 + *

+ * + * @author Liuxy + * @since 2025-08-19 + */ +public interface PdmBomCallMaterialDtlMapper extends BaseMapper { + + /** + * 分页查询 + * + * @param page 分页条件 + * @param whereJson 查询条件 + * @return IPage + */ + IPage queryAllByPage(Page page, @Param("param") Map whereJson); + + /** + * 查询明细 + * + * @param whereJson { + * bom_id + * } + * @return List + */ + List getDtl(@Param("param") JSONObject whereJson); +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm_manage/service/dao/mapper/PdmBomCallMaterialDtlMapper.xml b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm_manage/service/dao/mapper/PdmBomCallMaterialDtlMapper.xml new file mode 100644 index 0000000..46e104a --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm_manage/service/dao/mapper/PdmBomCallMaterialDtlMapper.xml @@ -0,0 +1,83 @@ + + + + + + + + + diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm_manage/service/dto/PdmBomCallMaterialDtlDto.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm_manage/service/dto/PdmBomCallMaterialDtlDto.java new file mode 100644 index 0000000..55b9ca7 --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm_manage/service/dto/PdmBomCallMaterialDtlDto.java @@ -0,0 +1,52 @@ +package org.nl.wms.pdm_manage.service.dto; + +import lombok.Data; +import org.nl.wms.pdm_manage.service.dao.PdmBomCallMaterialDtl; + +/** + *

+ * 产线叫料单明细dto + *

+ * + * @author Liuxy + * @since 2025-08-19 + */ +@Data +public class PdmBomCallMaterialDtlDto extends PdmBomCallMaterialDtl { + + /** + * 物料标规格 + */ + private String material_spec; + + /** + * 物料编码 + */ + private String material_code; + + /** + * 物料名称 + */ + private String material_name; + + /** + * 工单编码 + */ + private String bom_code; + + /** + * 库区名称 + */ + private String sect_name; + + /** + * 仓库名称 + */ + private String stor_name; + + /** + * 机台编码 + */ + private String device_code; + +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm_manage/service/impl/PdmBomCallMaterialDtlServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm_manage/service/impl/PdmBomCallMaterialDtlServiceImpl.java new file mode 100644 index 0000000..f4de41e --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm_manage/service/impl/PdmBomCallMaterialDtlServiceImpl.java @@ -0,0 +1,138 @@ +package org.nl.wms.pdm_manage.service.impl; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.NumberUtil; +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.nl.common.domain.query.PageQuery; +import org.nl.common.exception.BadRequestException; +import org.nl.wms.basedata_manage.service.IMdPbStoragevehicleinfoService; +import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleinfo; +import org.nl.wms.ext.service.WmsToAcsService; +import org.nl.wms.ext.service.util.AcsResponse; +import org.nl.wms.pdm_manage.enums.BomEnum; +import org.nl.wms.pdm_manage.service.IPdmBomCallMaterialDtlService; +import org.nl.wms.pdm_manage.service.IPdmBomCallMaterialService; +import org.nl.wms.pdm_manage.service.dao.PdmBomCallMaterial; +import org.nl.wms.pdm_manage.service.dao.PdmBomCallMaterialDtl; +import org.nl.wms.pdm_manage.service.dao.mapper.PdmBomCallMaterialDtlMapper; +import org.nl.wms.pdm_manage.service.dto.PdmBomCallMaterialDtlDto; +import org.nl.wms.sch_manage.service.ISchBasePointService; +import org.nl.wms.sch_manage.service.dao.SchBasePoint; +import org.nl.wms.warehouse_management.enums.IOSConstant; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; +import java.util.Map; + +/** + *

+ * 产线叫料单明细 服务实现类 + *

+ * + * @author Liuxy + * @since 2025-08-19 + */ +@Service +public class PdmBomCallMaterialDtlServiceImpl extends ServiceImpl implements IPdmBomCallMaterialDtlService { + + /** + * 叫料工单服务 + */ + @Autowired + private IPdmBomCallMaterialService iPdmBomCallMaterialService; + + /** + * 点位信息服务 + */ + @Autowired + private ISchBasePointService iSchBasePointService; + + /** + * 载具信息服务 + */ + @Autowired + private IMdPbStoragevehicleinfoService iMdPbStoragevehicleinfoService; + + /** + * wms调用acs服务 + */ + @Autowired + private WmsToAcsService wmsToAcsService; + + @Override + public IPage queryAll(Map whereJson, PageQuery page) { + return this.baseMapper.queryAllByPage(new Page<>(page.getPage() + 1, page.getSize()), + whereJson); + } + + @Override + public List getDtl(JSONObject whereJson) { + return this.baseMapper.getDtl(whereJson); + } + + @Override + @Transactional + public JSONObject getWeigh(JSONObject whereJson) { + // 判断当前载具是否是称重位上的载具 + SchBasePoint pointDao = iSchBasePointService.getById(IOSConstant.CZW_POINT); + if (!pointDao.getVehicle_code().equals(whereJson.getString("vehicle_code"))) { + throw new BadRequestException("当前称重位载具与退料载具不符,当前称重位载具为【" + pointDao.getVehicle_code() + "】"); + } + // 获取载具信息 + MdPbStoragevehicleinfo vehicleDao = iMdPbStoragevehicleinfoService.getByCode(pointDao.getVehicle_code()); + if (ObjectUtil.isEmpty(vehicleDao.getWeigth())) { + throw new BadRequestException("请维护当前载具重量【" + pointDao.getVehicle_code() + "】"); + } + + // TODO 调用ACS接口获取称重信息 + AcsResponse weighAcs = wmsToAcsService.getWeighAcs(new JSONObject()); + JSONObject jsonResult = weighAcs.getResultData(); + + // 称重重量 + double weigh_qty = NumberUtil.round(jsonResult.getDoubleValue("weigh_qty"), 2).doubleValue(); + // 扣除载具重量 + double sub_qty = NumberUtil.sub(weigh_qty, vehicleDao.getWeigth().doubleValue()); + + JSONObject result = new JSONObject(); + result.put("weigh_qty", NumberUtil.round(sub_qty, 2)); + return result; + } + + @Override + @Transactional + public void saveWeigh(PdmBomCallMaterialDtlDto dto) { + // 更新称重信息 + PdmBomCallMaterialDtl bomdtlDao = this.getById(dto.getBomdtl_id()); + bomdtlDao.setWeigh_qty(dto.getWeigh_qty()); + this.updateById(bomdtlDao); + } + + @Override + @Transactional + public void confirm(PdmBomCallMaterialDtlDto dto) { + // 更新明细状态完成 + PdmBomCallMaterialDtl bomdtlDao = this.getById(dto.getBomdtl_id()); + bomdtlDao.setBom_status(BomEnum.CALL_BOM_DTL_STATUS.code("完成")); + bomdtlDao.setConfirm_time(DateUtil.now()); + this.updateById(bomdtlDao); + + // 查询叫料工单 + PdmBomCallMaterial bomDao = iPdmBomCallMaterialService.getById(dto.getBom_id()); + + // 增加叫料工单实际用料重量: 叫料单实际用料 + (叫料明细出库重量 - 叫料明细称重重量) + double qty = NumberUtil.sub(dto.getOut_qty(), dto.getWeigh_qty()).doubleValue(); + double real_weigh_qty = NumberUtil.add(bomDao.getReal_weigh_qty(), qty).doubleValue(); + + bomDao.setReal_weigh_qty(NumberUtil.round(real_weigh_qty, 2)); + iPdmBomCallMaterialService.updateById(bomDao); + + // 更新叫料单状态 + iPdmBomCallMaterialService.updateStatus(bomDao.getBom_id()); + } +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm_manage/service/impl/PdmBomCallMaterialServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm_manage/service/impl/PdmBomCallMaterialServiceImpl.java index 6caed60..e91d64e 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm_manage/service/impl/PdmBomCallMaterialServiceImpl.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm_manage/service/impl/PdmBomCallMaterialServiceImpl.java @@ -12,14 +12,17 @@ import org.nl.common.utils.SecurityUtils; import org.nl.wms.basedata_manage.service.IMdPbMeasureunitService; import org.nl.wms.basedata_manage.service.dao.MdPbMeasureunit; import org.nl.wms.pdm_manage.enums.BomEnum; +import org.nl.wms.pdm_manage.service.IPdmBomCallMaterialDtlService; import org.nl.wms.pdm_manage.service.IPdmBomCallMaterialService; import org.nl.wms.pdm_manage.service.dao.PdmBomCallMaterial; +import org.nl.wms.pdm_manage.service.dao.PdmBomCallMaterialDtl; import org.nl.wms.pdm_manage.service.dao.mapper.PdmBomCallMaterialMapper; import org.nl.wms.pdm_manage.service.dto.PdmBomCallMaterialDto; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.List; import java.util.Map; import java.util.Set; @@ -40,6 +43,12 @@ public class PdmBomCallMaterialServiceImpl extends ServiceImpl queryAll(Map whereJson, PageQuery page) { return this.baseMapper.queryAllByPage(new Page<>(page.getPage() + 1, page.getSize()), @@ -78,7 +87,29 @@ public class PdmBomCallMaterialServiceImpl extends ServiceImpl().lambda() - .eq(PdmBomCallMaterial::getBom_code, bom_code) + .eq(PdmBomCallMaterial::getBom_code, bom_code) ); } + + @Override + @Transactional + public void updateStatus(String bom_id) { + PdmBomCallMaterial bomDao = this.getById(bom_id); + + // 查询叫料单明细 + List bomDtlList = iPdmBomCallMaterialDtlService.list( + new QueryWrapper().lambda() + .eq(PdmBomCallMaterialDtl::getBom_id, bom_id) + ); + + // 全部为完成则更新叫料单状态为完成,否则为退料中 + boolean is_confirm = bomDtlList.stream() + .allMatch(row -> row.getBom_status().equals(BomEnum.CALL_BOM_DTL_STATUS.code("完成"))); + + if (is_confirm) { + bomDao.setConfirm_time(DateUtil.now()); + } + bomDao.setBom_status(is_confirm ? BomEnum.CALL_BOM_STATUS.code("完成") : BomEnum.CALL_BOM_STATUS.code("退料中")); + this.updateById(bomDao); + } } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/ReceiveOutTask.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/ReceiveOutTask.java index a02811b..1e100c1 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/ReceiveOutTask.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/ReceiveOutTask.java @@ -3,12 +3,16 @@ package org.nl.wms.sch_manage.service.util.tasks; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import org.nl.common.exception.BadRequestException; import org.nl.common.utils.SecurityUtils; import org.nl.config.IdUtil; import org.nl.wms.basedata_manage.enums.BaseDataEnum; +import org.nl.wms.pdm_manage.enums.BomEnum; +import org.nl.wms.pdm_manage.service.IPdmBomCallMaterialDtlService; +import org.nl.wms.pdm_manage.service.dao.PdmBomCallMaterialDtl; import org.nl.wms.sch_manage.enums.TaskEnum; import org.nl.wms.sch_manage.enums.TaskStatus; import org.nl.wms.sch_manage.service.ISchBasePointService; @@ -21,7 +25,9 @@ import org.nl.wms.sch_manage.service.util.TaskType; import org.nl.wms.warehouse_management.enums.IOSEnum; import org.nl.wms.warehouse_management.service.IOutBillService; import org.nl.wms.warehouse_management.service.dao.IOStorInvDis; +import org.nl.wms.warehouse_management.service.dao.IOStorInvDtl; import org.nl.wms.warehouse_management.service.dao.mapper.IOStorInvDisMapper; +import org.nl.wms.warehouse_management.service.dao.mapper.IOStorInvDtlMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; @@ -58,12 +64,24 @@ public class ReceiveOutTask extends AbstractTask { @Resource private IOStorInvDisMapper ioStorInvDisMapper; + /** + * 明细mapper + */ + @Resource + private IOStorInvDtlMapper ioStorInvDtlMapper; + /** * 点位服务 */ @Resource private ISchBasePointService iSchBasePointService; + /** + * 退料单服务 + */ + @Resource + private IPdmBomCallMaterialDtlService iPdmBomCallMaterialDtlService; + @Override public String create(JSONObject json) { SchBaseTask task = new SchBaseTask(); @@ -152,10 +170,6 @@ public class ReceiveOutTask extends AbstractTask { this.cancelTask(taskObj); } - @Override - public void taskConfirm(String task_code) { - } - @Transactional(rollbackFor = Exception.class) public void finishTask(SchBaseTask taskObj) { // 更新终点 @@ -170,6 +184,7 @@ public class ReceiveOutTask extends AbstractTask { taskObj.setRemark("已完成"); taskService.updateById(taskObj); outBillService.taskFinish(taskObj); + this.taskConfirm(taskObj.getTask_code()); } @Transactional(rollbackFor = Exception.class) @@ -197,4 +212,30 @@ public class ReceiveOutTask extends AbstractTask { taskObj.setRemark("已取消"); taskService.updateById(taskObj); } + + @Override + public void taskConfirm(String task_code) { + SchBaseTask taskObj = taskService.getByCode(task_code); + IOStorInvDis disDao = ioStorInvDisMapper.selectOne( + new QueryWrapper().lambda() + .eq(IOStorInvDis::getTask_id, taskObj.getTask_id()) + ); + IOStorInvDtl stDtlDao = ioStorInvDtlMapper.selectById(disDao.getIostorinvdtl_id()); + + // 创建退料明细 + PdmBomCallMaterialDtl materDtlDao = new PdmBomCallMaterialDtl(); + materDtlDao.setBomdtl_id(IdUtil.getStringId()); + materDtlDao.setBom_id(stDtlDao.getSource_billdtl_id()); + materDtlDao.setMaterial_id(disDao.getMaterial_id()); + materDtlDao.setPcsn(disDao.getPcsn()); + materDtlDao.setVehicle_code(disDao.getStoragevehicle_code()); + materDtlDao.setStruct_code(disDao.getStruct_code()); + materDtlDao.setBom_status(BomEnum.CALL_BOM_DTL_STATUS.code("生成")); + materDtlDao.setOut_dis_id(disDao.getIostorinvdis_id()); + materDtlDao.setOut_qty(disDao.getReal_qty()); + materDtlDao.setCreate_id(SecurityUtils.getCurrentUserId()); + materDtlDao.setCreate_name(SecurityUtils.getCurrentNickName()); + materDtlDao.setCreate_time(DateUtil.now()); + iPdmBomCallMaterialDtlService.save(materDtlDao); + } } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IMdPbGroupplateService.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IMdPbGroupplateService.java index b12ab4d..e266228 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IMdPbGroupplateService.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IMdPbGroupplateService.java @@ -80,5 +80,4 @@ public interface IMdPbGroupplateService extends IService { * @param ids 标识集合 */ void delete(Set ids); - } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/MdPbGroupplateMapper.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/MdPbGroupplateMapper.java index d16f9ca..86ca69d 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/MdPbGroupplateMapper.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/MdPbGroupplateMapper.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Param; import org.nl.wms.warehouse_management.service.dao.GroupPlate; +import org.nl.wms.warehouse_management.service.dto.GroupPlateDto; import java.util.List; import java.util.Map; diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/MdPbGroupplateMapper.xml b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/MdPbGroupplateMapper.xml index 0a30c63..0ba8121 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/MdPbGroupplateMapper.xml +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/MdPbGroupplateMapper.xml @@ -12,7 +12,7 @@ md_pb_groupplate late LEFT JOIN md_me_materialbase mater ON mater.material_id = late.material_id - late.status = '01' + late.status = '1' AND late.storagevehicle_code = #{param.storagevehicle_code} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dto/GroupPlateDto.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dto/GroupPlateDto.java index 6db78a2..de82aed 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dto/GroupPlateDto.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dto/GroupPlateDto.java @@ -23,6 +23,11 @@ public class GroupPlateDto extends GroupPlate{ */ private String material_name; + /** + * 物料批次 + */ + private String material_spec; + /** * 计划数量 */ diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/MdPbGroupplateServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/MdPbGroupplateServiceImpl.java index 452b49d..5bcdf03 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/MdPbGroupplateServiceImpl.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/MdPbGroupplateServiceImpl.java @@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.nl.common.domain.query.PageQuery; import org.nl.common.exception.BadRequestException; +import org.nl.common.utils.CodeUtil; import org.nl.common.utils.SecurityUtils; import org.nl.config.IdUtil; import org.nl.wms.basedata_manage.service.IMdCsSupplierbaseService; @@ -24,6 +25,7 @@ import org.nl.wms.warehouse_management.enums.IOSEnum; import org.nl.wms.warehouse_management.service.IMdPbGroupplateService; import org.nl.wms.warehouse_management.service.dao.GroupPlate; import org.nl.wms.warehouse_management.service.dao.mapper.MdPbGroupplateMapper; +import org.nl.wms.warehouse_management.service.dto.GroupPlateDto; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -76,6 +78,12 @@ public class MdPbGroupplateServiceImpl extends ServiceImpl groupList = this.list( new QueryWrapper().lambda() @@ -88,6 +96,7 @@ public class MdPbGroupplateServiceImpl extends ServiceImpl ioStorInvDtl.put("remark", row.getString("remark")); ioStorInvDtl.put("assign_qty", "0"); ioStorInvDtl.put("unassign_qty", row.get("plan_qty")); + ioStorInvDtl.put("source_billdtl_id", row.get("source_billdtl_id")); ioStorInvDtl.put("source_bill_code", row.get("source_bill_code")); ioStorInvDtlMapper.insert(ioStorInvDtl.toJavaObject(IOStorInvDtl.class)); diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/SelectOutServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/SelectOutServiceImpl.java index cf8c870..86bb226 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/SelectOutServiceImpl.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/SelectOutServiceImpl.java @@ -19,6 +19,8 @@ import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleinfo; import org.nl.wms.basedata_manage.service.dao.Sectattr; import org.nl.wms.ext.service.WmsToAcsService; import org.nl.wms.ext.service.util.AcsResponse; +import org.nl.wms.pdm_manage.service.IPdmBomCallMaterialDtlService; +import org.nl.wms.pdm_manage.service.dao.PdmBomCallMaterialDtl; import org.nl.wms.sch_manage.service.ISchBasePointService; import org.nl.wms.sch_manage.service.dao.SchBasePoint; import org.nl.wms.warehouse_management.enums.IOSConstant; @@ -97,6 +99,12 @@ public class SelectOutServiceImpl extends ServiceImpl queryAll(Map whereJson, PageQuery page) { return this.baseMapper.queryAllByPage(new Page<>(page.getPage() + 1, page.getSize()), @@ -116,7 +124,7 @@ public class SelectOutServiceImpl extends ServiceImpl().lambda() - .set(IOStorInvDtl::getIs_check, IOSConstant.IS_DELETE_NO) - .eq(IOStorInvDtl::getIostorinvdtl_id, dto.getIostorinvdtl_id()) + .set(IOStorInvDtl::getIs_check, IOSConstant.IS_DELETE_NO) + .eq(IOStorInvDtl::getIostorinvdtl_id, dto.getIostorinvdtl_id()) ); } @@ -214,6 +222,21 @@ public class SelectOutServiceImpl extends ServiceImpl().lambda() + .set(PdmBomCallMaterialDtl::getOut_qty, disDao.getReal_qty()) + .eq(PdmBomCallMaterialDtl::getOut_dis_id, disDao.getIostorinvdis_id()) + ); + JSONObject result = new JSONObject(); result.put("sect_id", disDao.getSect_id()); result.put("iostorinv_id", iostorinv_id); diff --git a/wms/nladmin-ui/src/views/wms/basedata/group/AddDtl.vue b/wms/nladmin-ui/src/views/wms/basedata/group/AddDtl.vue new file mode 100644 index 0000000..693276b --- /dev/null +++ b/wms/nladmin-ui/src/views/wms/basedata/group/AddDtl.vue @@ -0,0 +1,289 @@ + + + + + diff --git a/wms/nladmin-ui/src/views/wms/basedata/group/group.js b/wms/nladmin-ui/src/views/wms/basedata/group/group.js index c973c02..eff6b9a 100644 --- a/wms/nladmin-ui/src/views/wms/basedata/group/group.js +++ b/wms/nladmin-ui/src/views/wms/basedata/group/group.js @@ -48,4 +48,12 @@ export function querySupp(data) { }) } -export default { add, edit, del, queryMater, checkVehicle, querySupp } +export function copySave(data) { + return request({ + url: 'api/group/copySave', + method: 'post', + data + }) +} + +export default { add, edit, del, queryMater, checkVehicle, querySupp, copySave } diff --git a/wms/nladmin-ui/src/views/wms/basedata/group/index.vue b/wms/nladmin-ui/src/views/wms/basedata/group/index.vue index 8450451..2cf55e1 100644 --- a/wms/nladmin-ui/src/views/wms/basedata/group/index.vue +++ b/wms/nladmin-ui/src/views/wms/basedata/group/index.vue @@ -58,7 +58,19 @@ - + + + 复制新增 + + - + @@ -214,6 +226,7 @@ style="width: 100%;" @selection-change="crud.selectionChangeHandler" > + @@ -251,11 +264,13 @@ + + + diff --git a/wms/nladmin-ui/src/views/wms/pdm/callmaterial/index.vue b/wms/nladmin-ui/src/views/wms/pdm/callmaterial/index.vue index fdb849e..6b894cf 100644 --- a/wms/nladmin-ui/src/views/wms/pdm/callmaterial/index.vue +++ b/wms/nladmin-ui/src/views/wms/pdm/callmaterial/index.vue @@ -117,7 +117,11 @@ style="width: 100%;" @selection-change="crud.selectionChangeHandler" > - + + + @@ -149,11 +153,13 @@ + + + diff --git a/wms/nladmin-ui/src/views/wms/pdm/callmaterialdtl/callmaterialdtl.js b/wms/nladmin-ui/src/views/wms/pdm/callmaterialdtl/callmaterialdtl.js new file mode 100644 index 0000000..ae1a804 --- /dev/null +++ b/wms/nladmin-ui/src/views/wms/pdm/callmaterialdtl/callmaterialdtl.js @@ -0,0 +1,59 @@ +import request from '@/utils/request' + +export function add(data) { + return request({ + url: 'api/bomCallMaterialDtl', + method: 'post', + data + }) +} + +export function del(ids) { + return request({ + url: 'api/bomCallMaterialDtl/', + method: 'delete', + data: ids + }) +} + +export function edit(data) { + return request({ + url: 'api/bomCallMaterialDtl', + method: 'put', + data + }) +} + +export function getDtl(data) { + return request({ + url: 'api/bomCallMaterialDtl/getDtl', + method: 'post', + data + }) +} + +export function getWeigh(data) { + return request({ + url: 'api/bomCallMaterialDtl/getWeigh', + method: 'post', + data + }) +} + +export function saveWeigh(data) { + return request({ + url: 'api/bomCallMaterialDtl/saveWeigh', + method: 'post', + data + }) +} + +export function confirm(data) { + return request({ + url: 'api/bomCallMaterialDtl/confirm', + method: 'post', + data + }) +} + +export default { add, edit, del, getDtl, getWeigh, saveWeigh, confirm } diff --git a/wms/nladmin-ui/src/views/wms/pdm/callmaterialdtl/index.vue b/wms/nladmin-ui/src/views/wms/pdm/callmaterialdtl/index.vue new file mode 100644 index 0000000..41f481b --- /dev/null +++ b/wms/nladmin-ui/src/views/wms/pdm/callmaterialdtl/index.vue @@ -0,0 +1,229 @@ + + + + + diff --git a/wms/nladmin-ui/src/views/wms/st/outbill/AddDialog.vue b/wms/nladmin-ui/src/views/wms/st/outbill/AddDialog.vue index c3217f3..606b7aa 100644 --- a/wms/nladmin-ui/src/views/wms/st/outbill/AddDialog.vue +++ b/wms/nladmin-ui/src/views/wms/st/outbill/AddDialog.vue @@ -371,6 +371,7 @@ export default { // 添加plan_qty item.plan_qty = item.call_qty item.source_bill_code = item.bom_code + item.source_billdtl_id = item.bom_id if (this.form.tableData.length !== 0) { this.flagnow = false for (let i = 0; i < this.form.tableData.length; i++) { diff --git a/wms/nladmin-ui/src/views/wms/st/selectout/WeighDialog.vue b/wms/nladmin-ui/src/views/wms/st/selectout/WeighDialog.vue index a515384..127ef07 100644 --- a/wms/nladmin-ui/src/views/wms/st/selectout/WeighDialog.vue +++ b/wms/nladmin-ui/src/views/wms/st/selectout/WeighDialog.vue @@ -204,8 +204,8 @@ export default { this.crud.notify('拣选批次不能为空!', CRUD.NOTIFICATION_TYPE.INFO) return } - this.formMst.weigh_qty = '87' - this.formMst.select_qty = '1' + this.formMst.weigh_qty = '51' + this.formMst.select_qty = '30' /* crudSectout.getWeigh(this.current).then(res => { this.formMst.weigh_qty = res.weigh_qty this.formMst.select_qty = res.select_qty