From 472543c6b7251864534cd476f8d34000122aec8c Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Wed, 4 Sep 2024 13:13:17 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E5=8C=85=E8=A3=85?= =?UTF-8?q?=E8=BE=93=E9=80=81=E7=BA=BF=E6=89=8B=E6=8C=81=E7=BB=91=E5=AE=9A?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nl/wms/pda/controller/PdaController.java | 18 ++++ .../org/nl/wms/pda/service/PdaService.java | 21 +++++ .../pda/service/dao/vo/DropdownListVo.java | 2 +- .../nl/wms/pda/service/dao/vo/FjOrderVo.java | 35 +++++++ .../wms/pda/service/impl/PdaServiceImpl.java | 91 +++++++++++++++++++ .../service/IPdmBdWorkorderService.java | 8 ++ .../dao/mapper/PdmBdWorkorderMapper.java | 3 + .../dao/mapper/PdmBdWorkorderMapper.xml | 20 ++++ .../impl/PdmBdWorkorderServiceImpl.java | 6 ++ 9 files changed, 203 insertions(+), 1 deletion(-) create mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/vo/FjOrderVo.java diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/controller/PdaController.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/controller/PdaController.java index 346f572..386a844 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/controller/PdaController.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/controller/PdaController.java @@ -258,4 +258,22 @@ public class PdaController { public ResponseEntity deleteMaterialInfo(@RequestBody RequestMaterialInfoVo requestMaterialInfoVo) { return new ResponseEntity<>(pdaService.deleteMaterialInfo(requestMaterialInfoVo), HttpStatus.OK); } + + @PostMapping("/manualPackage/showOrders") + @Log("人工包装-显示分拣工单") + public ResponseEntity manualPackageShowOrders() { + return new ResponseEntity<>(pdaService.manualPackageShowOrders(), HttpStatus.OK); + } + + @PostMapping("/manualPackage/binding") + @Log("人工包装-绑定") + public ResponseEntity manualPackageBinding(@RequestBody JSONObject param) { + return new ResponseEntity<>(pdaService.manualPackageBinding(param), HttpStatus.OK); + } + + @PostMapping("/manualPackage/orderOk") + @Log("人工包装-完工") + public ResponseEntity manualPackageOrderOk(@RequestBody JSONObject param) { + return new ResponseEntity<>(pdaService.manualPackageOrderOk(param), HttpStatus.OK); + } } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/PdaService.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/PdaService.java index e6f5923..a068f69 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/PdaService.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/PdaService.java @@ -1,5 +1,6 @@ package org.nl.wms.pda.service; +import com.alibaba.fastjson.JSONObject; import org.nl.wms.pda.service.dao.dto.*; import org.nl.wms.pda.service.dao.vo.*; @@ -225,4 +226,24 @@ public interface PdaService { * @return */ PdaResponseVo deleteMaterialInfo(RequestMaterialInfoVo requestMaterialInfoVo); + + /** + * 人工包装-分拣工单信息 + * @return + */ + List manualPackageShowOrders(); + + /** + * 绑定 + * @param param + * @return + */ + PdaResponseVo manualPackageBinding(JSONObject param); + + /** + * 工单完工 + * @param param + * @return + */ + PdaResponseVo manualPackageOrderOk(JSONObject param); } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/vo/DropdownListVo.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/vo/DropdownListVo.java index e4efdcb..19f11b3 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/vo/DropdownListVo.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/vo/DropdownListVo.java @@ -5,8 +5,8 @@ import lombok.Data; import java.io.Serializable; /** + * 反馈前端下拉框数据 * @Author: lyd - * @Description: 反馈前端下拉框数据 * @Date: 2023/8/1 */ @Data diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/vo/FjOrderVo.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/vo/FjOrderVo.java new file mode 100644 index 0000000..bee41e3 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/vo/FjOrderVo.java @@ -0,0 +1,35 @@ +package org.nl.wms.pda.service.dao.vo; + +import lombok.Data; + +import java.math.BigDecimal; + +/** + * 手持人工包装工单Vo + * @Author: lyd + * @Date: 2024/9/4 + */ +@Data +public class FjOrderVo { + /** 工单id */ + private String workorder_id; + /** 工单编码 */ + private String workorder_code; + /** 实际数量 */ + private BigDecimal real_qty; + /** 成品编码 */ + private String material_code; + /** 半成品编码 */ + private String half_material_code; + /** 泥料编码 */ + private String raw_material_code; + /** 物料名称 */ + private String material_name; + /** 物料规格 */ + private String material_spec; + private String ext_data; + /** 订单号 */ + private String order_no; + /** 客户号 */ + private String custer_no; +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/impl/PdaServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/impl/PdaServiceImpl.java index 0ffbe6e..25171c1 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/impl/PdaServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/impl/PdaServiceImpl.java @@ -5,6 +5,8 @@ import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import lombok.extern.slf4j.Slf4j; import org.nl.common.exception.BadRequestException; import org.nl.common.utils.SecurityUtils; @@ -39,8 +41,10 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; /** * @Author: lyd @@ -430,6 +434,93 @@ public class PdaServiceImpl implements PdaService { return PdaResponseVo.pdaResultOk("删除成功"); } + @Override + public List manualPackageShowOrders() { + // 获取新增输送线的点位 + List fj = pointService.list(new LambdaQueryWrapper() + .eq(SchBasePoint::getRegion_code, "FJ") + .eq(SchBasePoint::getPoint_type, "6")); + List devices = fj.stream().map(SchBasePoint::getPoint_code).collect(Collectors.toList()); + List orders = workorderService.getAllRgPackageInfo(devices); + for (FjOrderVo order : orders) { + String extData = order.getExt_data(); + if (ObjectUtil.isNotEmpty(extData)) { + JSONObject object = JSONObject.parseObject(extData); + order.setOrder_no(ObjectUtil.isNotEmpty(object.getString("order_no")) + ? object.getString("order_no") : "-"); + order.setCuster_no(ObjectUtil.isNotEmpty(object.getString("custer_no")) + ? object.getString("custer_no") : "-"); + } + } + return orders; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public PdaResponseVo manualPackageBinding(JSONObject param) { + log.info("人工包装绑定: {}", param); + // workorder_id, vehicle_code, qty + String workorderId = param.getString("workorder_id"); + String isFull = param.getString("is_full"); + String vehicleCode = TaskUtils.defaultVehicleCode(param.getString("vehicle_code")); + Integer qty = param.getInteger("qty"); + PdmBdWorkorder order = workorderService.getById(workorderId); + SchBasePoint point = pointService.getById(order.getPoint_code()); + // 找到相同组盘信息就直接返回id,避免任务取消组盘信息还存在,重复插入 + // 解绑同载具的信息 + String vehicleType = order.getVehicle_type(); + vehiclematerialgroupService.unBindingSameVehicleMaterial(vehicleCode, vehicleType); + SchBaseVehiclematerialgroup groupEntity = new SchBaseVehiclematerialgroup(); + groupEntity.setGroup_id(IdUtil.getSnowflake(1, 1).nextIdStr()); + // 要把数据存到组盘表 + groupEntity.setMaterial_id(ObjectUtil.isNotEmpty(order) + ? order.getMaterial_id() + : ""); + groupEntity.setStanding_time(ObjectUtil.isNotEmpty(order) + ? order.getStanding_time() + : 0); + groupEntity.setWorkorder_code(ObjectUtil.isNotEmpty(order) + ? order.getWorkorder_code() + : ""); + groupEntity.setCreate_id(SecurityUtils.getCurrentUserId()); + groupEntity.setCreate_name(SecurityUtils.getCurrentNickName()); + groupEntity.setCreate_time(DateUtil.now()); + groupEntity.setVehicle_code(vehicleCode); + groupEntity.setVehicle_type(vehicleType); + groupEntity.setMaterial_qty(qty); + groupEntity.setPoint_code(order.getPoint_code()); + groupEntity.setPoint_name(point.getPoint_name()); + groupEntity.setMove_way(order.getPoint_code()); + groupEntity.setPcsn(DateUtil.format(DateUtil.date(), "yyyyMMdd")); + groupEntity.setInstorage_time(DateUtil.now()); + groupEntity.setGroup_bind_material_status(GroupBindMaterialStatusEnum.UNBOUND.getValue()); + + groupEntity.setGroup_status(GroupStatusEnum.IN_STORAGE.getType()); + groupEntity.setIs_delete(false); + groupEntity.setIs_full(isFull.equals(GeneralDefinition.YES)); + vehiclematerialgroupService.saveOrUpdate(groupEntity); + // 工单实际数+1 + order.setReal_qty(order.getReal_qty().add(BigDecimal.ONE)); + TaskUtils.setWorkOrderUpdateByPC(order); + workorderService.updateById(order); + return PdaResponseVo.pdaResultOk("组盘成功"); + } + + @Override + public PdaResponseVo manualPackageOrderOk(JSONObject param) { + log.info("工单完工:{}", param); + String workorderId = param.getString("workorder_id"); + LambdaUpdateWrapper lam = new LambdaUpdateWrapper<>(); + lam.set(PdmBdWorkorder::getWorkorder_status, WorkOrderStatusEnum.COMPLETE.getCode()) + .set(PdmBdWorkorder::getRealproduceend_date, DateUtil.now()) + .set(PdmBdWorkorder::getUpdate_id, SecurityUtils.getCurrentUserId()) + .set(PdmBdWorkorder::getUpdate_name, SecurityUtils.getCurrentNickName()) + .set(PdmBdWorkorder::getUpdate_time, DateUtil.now()) + .eq(PdmBdWorkorder::getWorkorder_id, workorderId); + workorderService.update(lam); + return PdaResponseVo.pdaResultOk("工单完工成功"); + } + /** * 保存组盘信息 * diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/IPdmBdWorkorderService.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/IPdmBdWorkorderService.java index cb91ac1..628ab4e 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/IPdmBdWorkorderService.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/IPdmBdWorkorderService.java @@ -4,6 +4,7 @@ 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.ext.mes.service.dto.MesOrderInfo; +import org.nl.wms.pda.service.dao.vo.FjOrderVo; import org.nl.wms.pdm.workorder.service.dao.PdmBdWorkorder; import org.nl.wms.pdm.workorder.service.dao.vo.AcsWorkOrderVo; import org.nl.wms.pdm.workorder.service.dto.PdmBdWorkorderQuery; @@ -192,4 +193,11 @@ public interface IPdmBdWorkorderService extends IService { * @return / */ PdmBdWorkorder getDeviceOneTask(String yjDeviceCode); + + /** + * 查看工单信息 + * @param devices + * @return + */ + List getAllRgPackageInfo(List devices); } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/dao/mapper/PdmBdWorkorderMapper.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/dao/mapper/PdmBdWorkorderMapper.java index 239b740..613dbef 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/dao/mapper/PdmBdWorkorderMapper.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/dao/mapper/PdmBdWorkorderMapper.java @@ -2,6 +2,7 @@ package org.nl.wms.pdm.workorder.service.dao.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import org.nl.wms.pda.service.dao.vo.FjOrderVo; import org.nl.wms.pdm.workorder.service.dao.PdmBdWorkorder; import org.nl.wms.pdm.workorder.service.dao.vo.AcsWorkOrderVo; import org.nl.wms.pdm.workorder.service.dto.PdmBdWorkorderQuery; @@ -82,4 +83,6 @@ public interface PdmBdWorkorderMapper extends BaseMapper { * @return / */ PdmBdWorkorder getDeviceOneTask(String yjDeviceCode); + + List getAllRgPackageInfo(List devices); } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/dao/mapper/PdmBdWorkorderMapper.xml b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/dao/mapper/PdmBdWorkorderMapper.xml index 3a04e02..8e7ce89 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/dao/mapper/PdmBdWorkorderMapper.xml +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/dao/mapper/PdmBdWorkorderMapper.xml @@ -161,4 +161,24 @@ ORDER BY w.workorder_status DESC, w.planproducestart_date) AS ranked WHERE row_num = 1 + diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/impl/PdmBdWorkorderServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/impl/PdmBdWorkorderServiceImpl.java index 1860f97..a8d3561 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/impl/PdmBdWorkorderServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/impl/PdmBdWorkorderServiceImpl.java @@ -24,6 +24,7 @@ import org.nl.wms.ext.acs.service.WmsToAcsService; import org.nl.wms.ext.acs.service.dto.to.wms.AcsResponse; import org.nl.wms.ext.mes.service.WmsToMesService; import org.nl.wms.ext.mes.service.dto.MesOrderInfo; +import org.nl.wms.pda.service.dao.vo.FjOrderVo; import org.nl.wms.pdm.record.service.IPdmBdRequestMaterialRecordService; import org.nl.wms.pdm.workorder.service.IPdmBdWorkorderService; import org.nl.wms.pdm.workorder.service.dao.PdmBdWorkorder; @@ -403,4 +404,9 @@ public class PdmBdWorkorderServiceImpl extends ServiceImpl getAllRgPackageInfo(List devices) { + return pdmBdWorkorderMapper.getAllRgPackageInfo(devices); + } }