diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/controller/AcsToWmsController.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/controller/AcsToWmsController.java index 5d719eb..67c0605 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/controller/AcsToWmsController.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/controller/AcsToWmsController.java @@ -49,4 +49,11 @@ public class AcsToWmsController { return new ResponseEntity<>(acsToWmsService.resultWeigh(whereJson), HttpStatus.OK); } + @PostMapping("/isPutVehicle") + @Log(value = "ACS请求WMS是否可以取放货") + @SaIgnore + public ResponseEntity isGetOrPut(@RequestBody JSONObject whereJson) { + return new ResponseEntity<>(acsToWmsService.isPutVehicle(whereJson), HttpStatus.OK); + } + } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/AcsToWmsService.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/AcsToWmsService.java index 450fe27..ba88bce 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/AcsToWmsService.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/AcsToWmsService.java @@ -40,11 +40,25 @@ public interface AcsToWmsService { * ACS客户端--->WMS服务端 * ACS给WMS反馈称重重量 * @param whereJson { - * task_id: 任务标识 * task_code: 任务编码 * weigh_qty: 称重重量 * } * @return BaseResponse */ BaseResponse resultWeigh(JSONObject whereJson); + + /** + * ACS客户端--->WMS服务端 + * ACS请求WMS是否可以取放货 + * @param whereJson { + * point_code: 点位编码 + * task_code: 任务编码 + * } + * @return BaseResponse { + * data: { + * is_confirm: 1-是,0-否 + * } + * } + */ + BaseResponse isPutVehicle(JSONObject whereJson); } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/impl/AcsToWmsServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/impl/AcsToWmsServiceImpl.java index 6a6c2a8..dc5b006 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/impl/AcsToWmsServiceImpl.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/impl/AcsToWmsServiceImpl.java @@ -1,18 +1,25 @@ package org.nl.wms.ext.service.impl; +import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONObject; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; 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.enums.ResultAcsStatus; import org.nl.wms.ext.service.AcsToWmsService; import org.nl.wms.ext.util.BaseResponse; import org.nl.wms.sch_manage.enums.TaskStatus; +import org.nl.wms.sch_manage.service.ISchBasePointService; import org.nl.wms.sch_manage.service.ISchBaseTaskService; +import org.nl.wms.sch_manage.service.dao.SchBasePoint; import org.nl.wms.sch_manage.service.dao.SchBaseTask; import org.nl.wms.sch_manage.service.util.AbstractTask; import org.nl.wms.sch_manage.service.util.TaskFactory; +import org.nl.wms.sch_manage.service.util.tasks.EmpVehicleInTask; +import org.nl.wms.warehouse_management.enums.IOSConstant; import org.redisson.api.RLock; import org.redisson.api.RedissonClient; import org.springframework.beans.factory.annotation.Autowired; @@ -45,12 +52,24 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { @Autowired private ISchBaseTaskService iSchBaseTaskService; + /* + * 点位服务 + */ + @Autowired + private ISchBasePointService iSchBasePointService; + /** * 任务工厂服务 */ @Autowired private TaskFactory taskFactory; + /** + * 载具信息服务 + */ + @Autowired + private IMdPbStoragevehicleinfoService iMdPbStoragevehicleinfoService; + @Override @Transactional(rollbackFor = Exception.class) @SneakyThrows @@ -131,6 +150,57 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { @Override @Transactional(rollbackFor = Exception.class) public BaseResponse resultWeigh(JSONObject whereJson) { - return null; + double weigh_qty = whereJson.getDoubleValue("weigh_qty"); + if (ObjectUtil.isEmpty(weigh_qty) || weigh_qty == 0) { + throw new BadRequestException("称重称量不能为空或者0!"); + } + // 查询任务 + SchBaseTask taskDao = iSchBaseTaskService.getByCode(whereJson.getString("task_code")); + if (!taskDao.getTask_status().equals(TaskStatus.EXECUTING.getCode())) { + throw new BadRequestException("当前任务不在执行中【" + whereJson.getString("task_code") + "】"); + } + + // 查询载具 + MdPbStoragevehicleinfo vehicleDao = iMdPbStoragevehicleinfoService.getByCode(taskDao.getVehicle_code()); + // 判断是否是空载具入库 + if (taskDao.getConfig_code().equals(EmpVehicleInTask.class.getSimpleName())) { + taskDao.setWeigh_qty(String.valueOf(weigh_qty)); + } else { + // 物料重量 = 称重重量 - 载具重量 + String weigh_qty_sub = NumberUtil.sub(weigh_qty, vehicleDao.getWeigth()).toString(); + taskDao.setWeigh_qty(weigh_qty_sub); + } + + // 调用任务类重量反馈方法 + AbstractTask task = taskFactory.getTask(taskDao.getConfig_code()); + JSONObject resultWeigh = task.resultWeigh(taskDao); + return BaseResponse.responseOk(resultWeigh); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public BaseResponse isPutVehicle(JSONObject whereJson) { + // 查询当前任务 + SchBaseTask taskDao = iSchBaseTaskService.getByCode(whereJson.getString("task_code")); + // 查询当前点位 + SchBasePoint pointDao = iSchBasePointService.getById(whereJson.getString("point_code")); + if (ObjectUtil.isEmpty(pointDao)) { + throw new BadRequestException("当前点位不存在【" + pointDao.getPoint_code() + "】"); + } + + JSONObject data = new JSONObject(); + // 判断当前点位是否有货 + if (ObjectUtil.isNotEmpty(pointDao.getVehicle_code())) { + data.put("is_confirm", IOSConstant.ZERO); + return BaseResponse.responseOk("当前点位存在库存,不允许放货【" + pointDao.getPoint_code() + "】", data); + } + // 判断任务是否一致 + if (!taskDao.getTask_id().equals(pointDao.getIng_task_code())) { + data.put("is_confirm", IOSConstant.ZERO); + return BaseResponse.responseOk("当前点位存其他任务,不允许放货【" + pointDao.getIng_task_code() + "】", data); + } + + data.put("is_confirm", IOSConstant.ONE); + return BaseResponse.responseOk(data); } } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/util/AcsResponse.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/util/AcsResponse.java index 41f8419..a3718e5 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/util/AcsResponse.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/util/AcsResponse.java @@ -17,8 +17,6 @@ public class AcsResponse extends BaseResponse { private JSONArray errArr = new JSONArray(); - private JSONArray data = new JSONArray(); - private JSONObject resultData = new JSONObject(); /** diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/util/BaseResponse.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/util/BaseResponse.java index bd04456..86dea60 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/util/BaseResponse.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/util/BaseResponse.java @@ -2,6 +2,7 @@ package org.nl.wms.ext.util; import cn.hutool.core.date.DateUtil; import cn.hutool.http.HttpStatus; +import com.alibaba.fastjson.JSONObject; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -45,7 +46,7 @@ public class BaseResponse implements Serializable { /** * 扩展信息 */ - private Map parameters = new HashMap(); + private JSONObject data = new JSONObject(); public static BaseResponse build(String requestNo) { BaseResponse response = new BaseResponse(); @@ -64,39 +65,29 @@ public class BaseResponse implements Serializable { return response; } - public static BaseResponse responseOk(String requestNo, String message) { + public static BaseResponse responseOk(String message) { BaseResponse response = new BaseResponse(); - response.setRequestNo(requestNo); response.setStatus(HttpStatus.HTTP_OK); response.setMessage(message); response.setResponseDate(DateUtil.now()); return response; } - public static BaseResponse responseOk(String requestNo, HashMap parameters) { + public static BaseResponse responseOk(JSONObject data) { BaseResponse response = new BaseResponse(); - response.setRequestNo(requestNo); response.setStatus(HttpStatus.HTTP_OK); response.setMessage("请求成功"); - response.setResponseDate(DateUtil.now()); - response.setParameters(parameters); - return response; - } - - public static BaseResponse responseError(String message) { - BaseResponse response = new BaseResponse(); - response.setStatus(HttpStatus.HTTP_BAD_REQUEST); - response.setMessage(message); + response.setData(data); response.setResponseDate(DateUtil.now()); return response; } - public static BaseResponse responseError(String requestNo, int code, String message) { + public static BaseResponse responseOk(String message,JSONObject data) { BaseResponse response = new BaseResponse(); - response.setRequestNo(requestNo); - response.setStatus(code); + response.setStatus(HttpStatus.HTTP_OK); response.setMessage(message); response.setResponseDate(DateUtil.now()); + response.setData(data); return response; } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/smallbox_management/service/PdaSmallBoxInService.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/smallbox_management/service/PdaSmallBoxInService.java index d08a0f1..5cf57a7 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/smallbox_management/service/PdaSmallBoxInService.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/smallbox_management/service/PdaSmallBoxInService.java @@ -16,6 +16,7 @@ public interface PdaSmallBoxInService { * @param whereJson { * bill_type: 入库类型 * point_code: 入库点位 + * source_id: 库外站点 * rows: [ * storagevehicle_code: 载具编码 * group_id: 载具编码 diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/smallbox_management/service/impl/PdaSmallBoxInServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/smallbox_management/service/impl/PdaSmallBoxInServiceImpl.java index 827c8ac..30408bf 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/smallbox_management/service/impl/PdaSmallBoxInServiceImpl.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/smallbox_management/service/impl/PdaSmallBoxInServiceImpl.java @@ -95,6 +95,7 @@ public class PdaSmallBoxInServiceImpl implements PdaSmallBoxInService { jsonMst.put("total_qty", group.getString("qty")); jsonMst.put("detail_count", 1); jsonMst.put("bill_type", whereJson.getString("bill_type")); + jsonMst.put("source_id", whereJson.getString("source_id")); jsonMst.put("biz_date", DateUtil.now()); // 组织明细数据 diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/dao/SchBaseTask.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/dao/SchBaseTask.java index f56948a..fea160f 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/dao/SchBaseTask.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/dao/SchBaseTask.java @@ -144,4 +144,10 @@ public class SchBaseTask implements Serializable { @TableField(exist = false) private String material_name; + /** + * 称重重量 + */ + @TableField(exist = false) + private String weigh_qty; + } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/AbstractTask.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/AbstractTask.java index 649a8bd..9300852 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/AbstractTask.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/AbstractTask.java @@ -182,5 +182,13 @@ public abstract class AbstractTask { */ public abstract void taskConfirm(String task_code); + /** + * ACS反馈称重重量 + * CTU专用 + * + * @param taskObj 任务号 + */ + public abstract JSONObject resultWeigh(SchBaseTask taskObj); + } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/BackInTask.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/BackInTask.java index 014be2e..a3ca54d 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/BackInTask.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/BackInTask.java @@ -1,14 +1,19 @@ package org.nl.wms.sch_manage.service.util.tasks; 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.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.CodeUtil; import org.nl.common.utils.SecurityUtils; import org.nl.config.IdUtil; +import org.nl.config.SpringContextHolder; +import org.nl.system.service.param.dao.Param; +import org.nl.system.service.param.impl.SysParamServiceImpl; import org.nl.wms.basedata_manage.enums.BaseDataEnum; import org.nl.wms.sch_manage.enums.TaskEnum; import org.nl.wms.sch_manage.enums.TaskStatus; @@ -23,6 +28,7 @@ import org.nl.wms.sch_manage.service.util.TaskType; import org.nl.wms.warehouse_management.enums.IOSConstant; import org.nl.wms.warehouse_management.enums.IOSEnum; import org.nl.wms.warehouse_management.service.IRawAssistIStorService; +import org.nl.wms.warehouse_management.service.dao.IOStorInv; import org.nl.wms.warehouse_management.service.dao.IOStorInvDis; import org.nl.wms.warehouse_management.service.dao.mapper.IOStorInvDisMapper; import org.springframework.beans.factory.annotation.Autowired; @@ -30,6 +36,7 @@ import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.util.*; /** *

@@ -205,4 +212,57 @@ public class BackInTask extends AbstractTask { @Transactional public void taskConfirm(String task_code) { } + + @Override + public JSONObject resultWeigh(SchBaseTask taskObj) { + // 返回数据 + JSONObject resultJson = new JSONObject(); + + // 查询当前分配明细 + List disDaiList = ioStorInvDisMapper.selectList( + new QueryWrapper().lambda() + .eq(IOStorInvDis::getTask_id, taskObj.getTask_id()) + ); + // 查询主表 + IOStorInv mstDao = rawAssistIStorService.getById(disDaiList.get(0).getIostorinv_id()); + + // 校验称重重量与组盘重量是否相符 + SysParamServiceImpl sysParamService = SpringContextHolder.getBean(SysParamServiceImpl.class); + Param ParamDao = sysParamService.findByCode("material_weigh"); + String value = ParamDao.getValue(); + + // 物料浮动上限 + double value_up = NumberUtil.add(value, mstDao.getTotal_qty().toString()).doubleValue(); + // 物料浮动下限 + double value_down = NumberUtil.sub(mstDao.getTotal_qty().toString(), value).doubleValue(); + // 称重重量 + double double_qty = Double.parseDouble(taskObj.getWeigh_qty()); + + if (value_down <= double_qty && value_up >= double_qty) { + resultJson.put("is_weigh", IOSConstant.ONE); + return resultJson; + } else { + // 取消任务 + this.cancelTask(taskObj); + // 备注任务 + SchBaseTask taskDao = taskService.getById(taskObj.getTask_id()); + taskDao.setRemark("已取消-称重失败!称重重量为【" + taskObj.getWeigh_qty() + "】"); + taskService.updateById(taskDao); + + // 取消分配及删除单据 + ArrayList tableMater = new ArrayList<>(); + disDaiList.forEach(item -> { + tableMater.add(JSONObject.parseObject(JSONObject.toJSONString(item), LinkedHashMap.class)); + }); + Map map = new HashMap<>(); + map.put("tableMater", tableMater); + rawAssistIStorService.unDivStruct(map); + + // 删除单据 + String[] ids = {mstDao.getIostorinv_id()}; + rawAssistIStorService.deleteAll(ids); + resultJson.put("is_weigh", IOSConstant.ZERO); + } + return resultJson; + } } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/BackOutTask.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/BackOutTask.java index 9047b9b..f994429 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/BackOutTask.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/BackOutTask.java @@ -253,6 +253,11 @@ public class BackOutTask extends AbstractTask { } } + @Override + public JSONObject resultWeigh(SchBaseTask taskObj) { + return null; + } + /** * 生成点位点任务:称重位至库外站点 * diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/CheckBackMoveTask.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/CheckBackMoveTask.java index ab081df..2a13328 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/CheckBackMoveTask.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/CheckBackMoveTask.java @@ -1,6 +1,7 @@ package org.nl.wms.sch_manage.service.util.tasks; 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.conditions.query.QueryWrapper; @@ -9,6 +10,9 @@ 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.config.SpringContextHolder; +import org.nl.system.service.param.dao.Param; +import org.nl.system.service.param.impl.SysParamServiceImpl; import org.nl.wms.basedata_manage.service.IStructattrService; import org.nl.wms.basedata_manage.service.dao.Structattr; import org.nl.wms.sch_manage.enums.TaskStatus; @@ -22,13 +26,19 @@ import org.nl.wms.sch_manage.service.util.AcsTaskDto; import org.nl.wms.sch_manage.service.util.TaskType; import org.nl.wms.warehouse_management.enums.IOSConstant; import org.nl.wms.warehouse_management.enums.IOSEnum; +import org.nl.wms.warehouse_management.service.IMdPbGroupplateService; import org.nl.wms.warehouse_management.service.IStIvtCheckdtlService; import org.nl.wms.warehouse_management.service.IStIvtCheckmstService; +import org.nl.wms.warehouse_management.service.dao.GroupPlate; import org.nl.wms.warehouse_management.service.dao.StIvtCheckdtl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + /** *

* 盘点回库移库任务类 @@ -71,6 +81,12 @@ public class CheckBackMoveTask extends AbstractTask { @Autowired private IStIvtCheckdtlService iStIvtCheckdtlService; + /** + * 组盘记录服务 + */ + @Autowired + private IMdPbGroupplateService iMdPbGroupplateService; + @Override public String create(JSONObject json) { SchBaseTask task = new SchBaseTask(); @@ -188,10 +204,15 @@ public class CheckBackMoveTask extends AbstractTask { new QueryWrapper().lambda() .eq(StIvtCheckdtl::getTask_id, moveTask.getTask_id()) ); - // 更新盘点明细状态 + // 原盘点重量 + BigDecimal fac_qty = dtlDao.getFac_qty(); + // 原库存重量 + BigDecimal base_qty = dtlDao.getBase_qty(); - dtlDao.setStatus(IOSEnum.CHECK_DTL_STATUS.code("盘点中") ); + // 更新盘点明细状态以及数量 + dtlDao.setStatus(IOSEnum.CHECK_DTL_STATUS.code("盘点中")); dtlDao.setCheck_result(IOSConstant.ZERO); + dtlDao.setFac_qty(BigDecimal.ZERO); dtlDao.setIs_down(IOSConstant.ZERO); dtlDao.setCheck_optid(SecurityUtils.getCurrentUserId()); dtlDao.setCheck_optname(SecurityUtils.getCurrentNickName()); @@ -201,6 +222,23 @@ public class CheckBackMoveTask extends AbstractTask { // 更新主表状态 iStIvtCheckmstService.updateMst(dtlDao.getCheck_id()); + // 更新库存数量 生成损益单据 + List dtlDaoList = new ArrayList<>(); + dtlDao.setBase_qty(fac_qty); + dtlDao.setFac_qty(base_qty); + dtlDaoList.add(dtlDao); + iStIvtCheckdtlService.createMore(dtlDaoList, dtlDao.getCheck_id()); + + // 更新组盘记录表 + iMdPbGroupplateService.update( + new UpdateWrapper().lambda() + .set(GroupPlate::getQty, base_qty) + .eq(GroupPlate::getMaterial_id, dtlDao.getMaterial_id()) + .eq(GroupPlate::getStoragevehicle_code, dtlDao.getStoragevehicle_code()) + .eq(GroupPlate::getPcsn, dtlDao.getPcsn()) + .eq(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("入库")) + ); + // 更新任务状态 taskObj.setRemark("已取消"); taskObj.setTask_status(TaskStatus.CANCELED.getCode()); @@ -238,4 +276,42 @@ public class CheckBackMoveTask extends AbstractTask { iStIvtCheckmstService.updateMst(dtlDao.getCheck_id()); } + + @Override + public JSONObject resultWeigh(SchBaseTask taskObj) { + // 返回数据 + JSONObject resultJson = new JSONObject(); + // 查询明细 + SchBaseTask moveTask = taskService.getById(taskObj.getContact_task()); + StIvtCheckdtl dtlDao = iStIvtCheckdtlService.getOne( + new QueryWrapper().lambda() + .eq(StIvtCheckdtl::getTask_id, moveTask.getTask_id()) + ); + // 校验称重重量与组盘重量是否相符 + SysParamServiceImpl sysParamService = SpringContextHolder.getBean(SysParamServiceImpl.class); + Param ParamDao = sysParamService.findByCode("material_weigh"); + String value = ParamDao.getValue(); + + // 物料浮动上限 + double value_up = NumberUtil.add(value, dtlDao.getFac_qty().toString()).doubleValue(); + // 物料浮动下限 + double value_down = NumberUtil.sub(dtlDao.getFac_qty().toString(),value).doubleValue(); + // 称重重量 + double double_qty = Double.parseDouble(taskObj.getWeigh_qty()); + + if (value_down <= double_qty && value_up >= double_qty) { + resultJson.put("is_weigh", IOSConstant.ONE); + return resultJson; + } else { + // 删除任务 + this.cancelTask(taskObj); + // 备注任务 + SchBaseTask taskDao = taskService.getById(taskObj.getTask_id()); + taskDao.setRemark("已取消-称重失败!称重重量为【"+taskObj.getWeigh_qty()+"】"); + taskService.updateById(taskDao); + // 反馈称重失败 + resultJson.put("is_weigh", IOSConstant.ZERO); + } + return resultJson; + } } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/CheckMoveTask.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/CheckMoveTask.java index 2d4fd47..c673d84 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/CheckMoveTask.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/CheckMoveTask.java @@ -225,4 +225,9 @@ public class CheckMoveTask extends AbstractTask { iStIvtCheckmstService.updateMst(dtlDao.getCheck_id()); } + + @Override + public JSONObject resultWeigh(SchBaseTask taskObj) { + return null; + } } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/CombinedBoxInTask.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/CombinedBoxInTask.java index 9fec764..edcccaf 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/CombinedBoxInTask.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/CombinedBoxInTask.java @@ -1,6 +1,7 @@ package org.nl.wms.sch_manage.service.util.tasks; 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.conditions.query.QueryWrapper; @@ -10,6 +11,9 @@ 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.config.SpringContextHolder; +import org.nl.system.service.param.dao.Param; +import org.nl.system.service.param.impl.SysParamServiceImpl; import org.nl.wms.basedata_manage.enums.BaseDataEnum; import org.nl.wms.sch_manage.enums.TaskEnum; import org.nl.wms.sch_manage.enums.TaskStatus; @@ -25,9 +29,8 @@ import org.nl.wms.warehouse_management.enums.IOSConstant; import org.nl.wms.warehouse_management.enums.IOSEnum; import org.nl.wms.warehouse_management.service.IRawAssistIStorService; import org.nl.wms.warehouse_management.service.IStIvtCombinedBoxService; -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.StIvtCombinedBox; +import org.nl.wms.warehouse_management.service.dao.*; +import org.nl.wms.warehouse_management.service.dao.mapper.GroupPlateMapper; 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; @@ -35,6 +38,7 @@ import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.util.*; /** *

@@ -80,6 +84,12 @@ public class CombinedBoxInTask extends AbstractTask { @Autowired private IOStorInvDtlMapper ioStorInvDtlMapper; + /* + * 组盘记录服务 + */ + @Resource + private GroupPlateMapper groupPlateMapper; + @Override @Transactional public String create(JSONObject json) { @@ -210,14 +220,35 @@ public class CombinedBoxInTask extends AbstractTask { .set(SchBaseTask::getRemark, "已取消") .eq(SchBaseTask::getTask_id, taskObj.getTask_id()) ); - //分配表清除任务 - ioStorInvDisMapper.update(new IOStorInvDis(), new LambdaUpdateWrapper<>(IOStorInvDis.class) - .set(IOStorInvDis::getTask_id, null) - .set(IOStorInvDis::getPoint_code, null) - .set(IOStorInvDis::getIs_issued, 0) - .set(IOStorInvDis::getWork_status, IOSEnum.INBILL_DIS_STATUS.code("未生成")) - .eq(IOStorInvDis::getTask_id, taskObj.getTask_id()) + + // 查询当前分配明细 + List disDaiList = ioStorInvDisMapper.selectList( + new QueryWrapper().lambda() + .eq(IOStorInvDis::getTask_id, taskObj.getTask_id()) ); + // 查询明细 + IOStorInvDtl ioStorInvDtl = ioStorInvDtlMapper.selectById(disDaiList.get(0).getIostorinvdtl_id()); + + // 查询主表 + IOStorInv mstDao = rawAssistIStorService.getById(disDaiList.get(0).getIostorinv_id()); + + // 取消分配及删除单据 + ArrayList tableMater = new ArrayList<>(); + disDaiList.forEach(item -> { + tableMater.add(JSONObject.parseObject(JSONObject.toJSONString(item), LinkedHashMap.class)); + }); + Map map = new HashMap<>(); + map.put("tableMater", tableMater); + rawAssistIStorService.unDivStruct(map); + + // 删除单据 + String[] ids = {mstDao.getIostorinv_id()}; + rawAssistIStorService.deleteAll(ids); + + // 更新合箱记录状态为移库完成 + StIvtCombinedBox boxDao = iStIvtCombinedBoxService.getById(ioStorInvDtl.getSource_bill_code()); + boxDao.setStatus(IOSEnum.COMBINED_BOX_STATUS.code("移库完成")); + iStIvtCombinedBoxService.updateById(boxDao); // 更新任务状态 taskObj.setTask_status(TaskStatus.CANCELED.getCode()); @@ -240,4 +271,52 @@ public class CombinedBoxInTask extends AbstractTask { boxDao.setStatus(IOSEnum.COMBINED_BOX_STATUS.code("完成")); iStIvtCombinedBoxService.updateById(boxDao); } + + @Override + public JSONObject resultWeigh(SchBaseTask taskObj) { + // 返回数据 + JSONObject resultJson = new JSONObject(); + + // 查询当前分配明细 + List disDaiList = ioStorInvDisMapper.selectList( + new QueryWrapper().lambda() + .eq(IOStorInvDis::getTask_id, taskObj.getTask_id()) + ); + + // 校验称重重量与组盘重量是否相符 + SysParamServiceImpl sysParamService = SpringContextHolder.getBean(SysParamServiceImpl.class); + Param ParamDao = sysParamService.findByCode("material_weigh"); + String value = ParamDao.getValue(); + + // 查询当前组盘信息 + GroupPlate groupPlate = groupPlateMapper.selectOne( + new QueryWrapper().lambda() + .eq(GroupPlate::getStoragevehicle_code, taskObj.getVehicle_code()) + .eq(GroupPlate::getMaterial_id, disDaiList.get(0).getMaterial_id()) + .eq(GroupPlate::getPcsn, disDaiList.get(0).getPcsn()) + .eq(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("组盘")) + ); + + // 物料浮动上限 + double value_up = NumberUtil.add(value, groupPlate.getQty().toString()).doubleValue(); + // 物料浮动下限 + double value_down = NumberUtil.sub(groupPlate.getQty().toString(), value).doubleValue(); + // 称重重量 + double double_qty = Double.parseDouble(taskObj.getWeigh_qty()); + + if (value_down <= double_qty && value_up >= double_qty) { + resultJson.put("is_weigh", IOSConstant.ONE); + return resultJson; + } else { + // 取消任务 + this.cancelTask(taskObj); + // 备注任务 + SchBaseTask taskDao = taskService.getById(taskObj.getTask_id()); + taskDao.setRemark("已取消-称重失败!称重重量为【" + taskObj.getWeigh_qty() + "】"); + taskService.updateById(taskDao); + + resultJson.put("is_weigh", IOSConstant.ZERO); + } + return resultJson; + } } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/CombinedBoxMoveTask.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/CombinedBoxMoveTask.java index 44f961c..24aeb26 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/CombinedBoxMoveTask.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/CombinedBoxMoveTask.java @@ -262,4 +262,9 @@ public class CombinedBoxMoveTask extends AbstractTask { .eq(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("入库")) ); } + + @Override + public JSONObject resultWeigh(SchBaseTask taskObj) { + return null; + } } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/DetainInTask.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/DetainInTask.java index a26b4eb..c2ab112 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/DetainInTask.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/DetainInTask.java @@ -1,14 +1,19 @@ package org.nl.wms.sch_manage.service.util.tasks; 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.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.CodeUtil; import org.nl.common.utils.SecurityUtils; import org.nl.config.IdUtil; +import org.nl.config.SpringContextHolder; +import org.nl.system.service.param.dao.Param; +import org.nl.system.service.param.impl.SysParamServiceImpl; import org.nl.wms.basedata_manage.enums.BaseDataEnum; import org.nl.wms.basedata_manage.service.dao.Structattr; import org.nl.wms.sch_manage.enums.TaskEnum; @@ -24,6 +29,7 @@ import org.nl.wms.sch_manage.service.util.TaskType; import org.nl.wms.warehouse_management.enums.IOSConstant; import org.nl.wms.warehouse_management.enums.IOSEnum; import org.nl.wms.warehouse_management.service.IRawAssistIStorService; +import org.nl.wms.warehouse_management.service.dao.IOStorInv; import org.nl.wms.warehouse_management.service.dao.IOStorInvDis; import org.nl.wms.warehouse_management.service.dao.mapper.IOStorInvDisMapper; import org.springframework.beans.factory.annotation.Autowired; @@ -31,6 +37,7 @@ import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.util.*; /** *

@@ -43,12 +50,16 @@ import javax.annotation.Resource; @Component(value = "DetainInTask") @TaskType("DetainInTask") public class DetainInTask extends AbstractTask { + @Autowired private ISchBaseTaskService taskService; @Resource private IRawAssistIStorService rawAssistIStorService; + /** + * 分配明细服务 + */ @Resource private IOStorInvDisMapper ioStorInvDisMapper; @@ -58,6 +69,12 @@ public class DetainInTask extends AbstractTask { @Autowired private ISchBasePointService iSchBasePointService; + /** + * 点对点任务类 + */ + @Autowired + private PdaPointTask pdaPointTask; + @Override @Transactional public String create(JSONObject json) { @@ -208,4 +225,71 @@ public class DetainInTask extends AbstractTask { @Override public void taskConfirm(String task_code) { } + + @Override + public JSONObject resultWeigh(SchBaseTask taskObj) { + // 返回数据 + JSONObject resultJson = new JSONObject(); + + // 查询当前分配明细 + List disDaiList = ioStorInvDisMapper.selectList( + new QueryWrapper().lambda() + .eq(IOStorInvDis::getTask_id, taskObj.getTask_id()) + ); + // 查询主表 + IOStorInv mstDao = rawAssistIStorService.getById(disDaiList.get(0).getIostorinv_id()); + + // 校验称重重量与组盘重量是否相符 + SysParamServiceImpl sysParamService = SpringContextHolder.getBean(SysParamServiceImpl.class); + Param ParamDao = sysParamService.findByCode("material_weigh"); + String value = ParamDao.getValue(); + + // 物料浮动上限 + double value_up = NumberUtil.add(value, mstDao.getTotal_qty().toString()).doubleValue(); + // 物料浮动下限 + double value_down = NumberUtil.sub(mstDao.getTotal_qty().toString(),value).doubleValue(); + // 称重重量 + double double_qty = Double.parseDouble(taskObj.getWeigh_qty()); + + if (value_down <= double_qty && value_up >= double_qty) { + resultJson.put("is_weigh", IOSConstant.ONE); + return resultJson; + } else { + // 取消任务 + this.cancelTask(taskObj); + // 备注任务 + SchBaseTask taskDao = taskService.getById(taskObj.getTask_id()); + taskDao.setRemark("已取消-称重失败!称重重量为【"+taskObj.getWeigh_qty()+"】"); + taskService.updateById(taskDao); + + // 取消分配及删除单据 + ArrayList tableMater = new ArrayList<>(); + disDaiList.forEach(item -> { + tableMater.add(JSONObject.parseObject(JSONObject.toJSONString(item), LinkedHashMap.class)); + }); + Map map = new HashMap<>(); + map.put("tableMater",tableMater); + rawAssistIStorService.unDivStruct(map); + + // 删除单据 + String[] ids = {mstDao.getIostorinv_id()}; + rawAssistIStorService.deleteAll(ids); + + // 判断是否是库外站点 + if (ObjectUtil.isNotEmpty(mstDao.getSource_id())) { + // 创建点对点任务 + JSONObject jsonTask = new JSONObject(); + jsonTask.put("point_code1", IOSConstant.CZW_POINT); + jsonTask.put("point_code2", mstDao.getSource_id()); + jsonTask.put("vehicle_code", taskObj.getVehicle_code()); + jsonTask.put("material_id", taskObj.getMaterial_id()); + jsonTask.put("material_qty", taskObj.getMaterial_qty()); + jsonTask.put("task_type", TaskEnum.TASK_TYPE.code("料箱")); + jsonTask.put("remark", "物料称重失败退回!"); + pdaPointTask.create(jsonTask); + } + resultJson.put("is_weigh", IOSConstant.ZERO); + } + return resultJson; + } } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/EmpVehicleInTask.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/EmpVehicleInTask.java index 432ccea..9c43bd8 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/EmpVehicleInTask.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/EmpVehicleInTask.java @@ -1,6 +1,7 @@ package org.nl.wms.sch_manage.service.util.tasks; 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.conditions.query.QueryWrapper; @@ -9,7 +10,12 @@ 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.config.SpringContextHolder; +import org.nl.system.service.param.dao.Param; +import org.nl.system.service.param.impl.SysParamServiceImpl; +import org.nl.wms.basedata_manage.service.IMdPbStoragevehicleinfoService; import org.nl.wms.basedata_manage.service.IStructattrService; +import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleinfo; import org.nl.wms.basedata_manage.service.dao.Structattr; import org.nl.wms.sch_manage.enums.TaskEnum; import org.nl.wms.sch_manage.enums.TaskStatus; @@ -23,7 +29,9 @@ import org.nl.wms.sch_manage.service.util.AcsTaskDto; import org.nl.wms.sch_manage.service.util.TaskType; import org.nl.wms.warehouse_management.enums.IOSConstant; import org.nl.wms.warehouse_management.enums.IOSEnum; +import org.nl.wms.warehouse_management.service.IStIvtPieceBoxDtlService; import org.nl.wms.warehouse_management.service.dao.GroupPlate; +import org.nl.wms.warehouse_management.service.dao.StIvtPieceBoxDtl; import org.nl.wms.warehouse_management.service.dao.mapper.GroupPlateMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -67,6 +75,24 @@ public class EmpVehicleInTask extends AbstractTask { @Resource private GroupPlateMapper groupPlateMapper; + /* + * 载具信息服务 + */ + @Resource + private IMdPbStoragevehicleinfoService iMdPbStoragevehicleinfoService; + + /** + * 点对点任务类 + */ + @Autowired + private PdaPointTask pdaPointTask; + + /** + * 拼箱明细服务 + */ + @Autowired + private IStIvtPieceBoxDtlService iStIvtPieceBoxDtlService; + @Override public String create(JSONObject json) { SchBaseTask task = new SchBaseTask(); @@ -76,7 +102,9 @@ public class EmpVehicleInTask extends AbstractTask { task.setConfig_code(EmpVehicleInTask.class.getSimpleName()); task.setPoint_code1(json.getString("point_code1")); task.setPoint_code2(json.getString("point_code2")); + task.setPoint_code3(json.getString("point_code3")); task.setVehicle_code(json.getString("vehicle_code")); + task.setExt_group_data(json.getString("ext_group_data")); task.setRequest_param(json.toString()); task.setPriority(json.getString("Priority")); task.setTask_type(TaskEnum.TASK_TYPE.code("载具")); @@ -192,7 +220,6 @@ public class EmpVehicleInTask extends AbstractTask { @Transactional public void cancelTask(SchBaseTask taskObj) { - // 更新终点 iStructattrService.update( new UpdateWrapper().lambda() @@ -204,6 +231,18 @@ public class EmpVehicleInTask extends AbstractTask { taskObj.setRemark("已取消"); taskObj.setTask_status(TaskStatus.CANCELED.getCode()); taskService.updateById(taskObj); + + // 判断是否是拼箱入库的空载具 + if (ObjectUtil.isNotEmpty(taskObj.getExt_group_data())) { + // 更新拼箱明细 + iStIvtPieceBoxDtlService.update( + new UpdateWrapper().lambda() + .eq(StIvtPieceBoxDtl::getId, taskObj.getExt_group_data()) + .set(StIvtPieceBoxDtl::getIs_get,IOSConstant.IS_DELETE_NO) + .set(StIvtPieceBoxDtl::getIn_task_id,"") + .set(StIvtPieceBoxDtl::getBill_status,IOSEnum.PIECE_DTL_STATUS.code("拼箱中")) + ); + } } @Override @@ -216,4 +255,51 @@ public class EmpVehicleInTask extends AbstractTask { ); } + @Override + public JSONObject resultWeigh(SchBaseTask taskObj) { + // 返回数据 + JSONObject resultJson = new JSONObject(); + // 查询当前载具信息 + MdPbStoragevehicleinfo vehicle = iMdPbStoragevehicleinfoService.getByCode(taskObj.getVehicle_code()); + + // 校验称重重量与组盘重量是否相符 + SysParamServiceImpl sysParamService = SpringContextHolder.getBean(SysParamServiceImpl.class); + Param ParamDao = sysParamService.findByCode("vehicle_weigh"); + String value = ParamDao.getValue(); + + // 物料浮动上限 + double value_up = NumberUtil.add(value, vehicle.getWeigth().toString()).doubleValue(); + // 物料浮动下限 + double value_down = NumberUtil.sub(vehicle.getWeigth().toString(),value).doubleValue(); + // 称重重量 + double double_qty = Double.parseDouble(taskObj.getWeigh_qty()); + + if (value_down <= double_qty && value_up >= double_qty) { + resultJson.put("is_weigh", IOSConstant.ONE); + return resultJson; + } else { + // 删除任务 + this.cancelTask(taskObj); + // 备注任务 + SchBaseTask taskDao = taskService.getById(taskObj.getTask_id()); + taskDao.setRemark("已取消-称重失败!称重重量为【"+taskObj.getWeigh_qty()+"】"); + taskService.updateById(taskDao); + + // 判断是否是库外站点 + if (ObjectUtil.isNotEmpty(taskObj.getPoint_code3())) { + // 退回至库外站点 + JSONObject jsonTask = new JSONObject(); + jsonTask.put("point_code1", IOSConstant.CZW_POINT); + jsonTask.put("point_code2", taskObj.getPoint_code3()); + jsonTask.put("vehicle_code", taskObj.getVehicle_code()); + jsonTask.put("task_type", TaskEnum.TASK_TYPE.code("载具")); + jsonTask.put("remark", "载具称重失败退回!"); + pdaPointTask.create(jsonTask); + } + // 反馈称重失败 + resultJson.put("is_weigh", IOSConstant.ZERO); + } + return resultJson; + } + } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/EmpVehicleOutTask.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/EmpVehicleOutTask.java index 226ae75..6e88aaa 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/EmpVehicleOutTask.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/EmpVehicleOutTask.java @@ -166,6 +166,11 @@ public class EmpVehicleOutTask extends AbstractTask { public void taskConfirm(String task_code) { } + @Override + public JSONObject resultWeigh(SchBaseTask taskObj) { + return null; + } + @Transactional public void finishTask(SchBaseTask taskObj) { // 更新起点 diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/HandInTask.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/HandInTask.java index 910f93e..1f7deb1 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/HandInTask.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/HandInTask.java @@ -205,4 +205,9 @@ public class HandInTask extends AbstractTask { @Override public void taskConfirm(String task_code) { } + + @Override + public JSONObject resultWeigh(SchBaseTask taskObj) { + return null; + } } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/HandOutTask.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/HandOutTask.java index efba986..93012ea 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/HandOutTask.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/HandOutTask.java @@ -230,4 +230,9 @@ public class HandOutTask extends AbstractTask { .eq(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("出库")) ); } + + @Override + public JSONObject resultWeigh(SchBaseTask taskObj) { + return null; + } } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/HotOutTask.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/HotOutTask.java index 90ee925..5d59a0b 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/HotOutTask.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/HotOutTask.java @@ -212,4 +212,9 @@ public class HotOutTask extends AbstractTask { @Override public void taskConfirm(String task_code) { } + + @Override + public JSONObject resultWeigh(SchBaseTask taskObj) { + return null; + } } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/InsideMoveTask.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/InsideMoveTask.java index 93ed02a..5a58b77 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/InsideMoveTask.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/InsideMoveTask.java @@ -156,6 +156,11 @@ public class InsideMoveTask extends AbstractTask { public void taskConfirm(String task_code) { } + @Override + public JSONObject resultWeigh(SchBaseTask taskObj) { + return null; + } + @Transactional public void finishTask(SchBaseTask taskObj) { // 完成任务 diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/KwzdInTask.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/KwzdInTask.java index b8fcbfd..20876f4 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/KwzdInTask.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/KwzdInTask.java @@ -227,9 +227,15 @@ public class KwzdInTask extends AbstractTask { JSONObject jsonInParam = new JSONObject(); jsonInParam.put("bill_type",IOSEnum.IN_BILL_TYPE.code("收货入库")); jsonInParam.put("point_code", IOSConstant.CZW_POINT); + jsonInParam.put("source_id", taskObj.getPoint_code1()); jsonInParam.put("rows", rows); // 调用平板服务 pdaSmallBoxInService.confirmIn(jsonInParam); } + + @Override + public JSONObject resultWeigh(SchBaseTask taskObj) { + return null; + } } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/PdaPointTask.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/PdaPointTask.java index 6a1158e..ab5673f 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/PdaPointTask.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/PdaPointTask.java @@ -86,6 +86,7 @@ public class PdaPointTask extends AbstractTask { task.setRequest_param(json.toString()); task.setPriority(json.getString("Priority")); task.setContact_task(json.getString("contact_task")); + task.setRemark(json.getString("remark")); task.setCreate_id(SecurityUtils.getCurrentUserId()); task.setCreate_name(SecurityUtils.getCurrentNickName()); task.setCreate_time(DateUtil.now()); @@ -186,6 +187,11 @@ public class PdaPointTask extends AbstractTask { public void taskConfirm(String task_code) { } + @Override + public JSONObject resultWeigh(SchBaseTask taskObj) { + return null; + } + @Transactional public void finishTask(SchBaseTask taskObj) { // 更新起点 @@ -279,6 +285,7 @@ public class PdaPointTask extends AbstractTask { JSONObject jsonParam = new JSONObject(); jsonParam.put("storagevehicle_code", taskObj.getVehicle_code()); jsonParam.put("point_code", IOSConstant.CZW_POINT); + jsonParam.put("point_code3", taskObj.getPoint_code1()); jsonParam.put("sect_code", taskObj.getExt_group_data()); vehicleInService.create(jsonParam); } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/PieceBoxInTask.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/PieceBoxInTask.java index d07bb70..053035d 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/PieceBoxInTask.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/PieceBoxInTask.java @@ -1,6 +1,7 @@ package org.nl.wms.sch_manage.service.util.tasks; 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.conditions.query.QueryWrapper; @@ -10,10 +11,14 @@ 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.config.SpringContextHolder; +import org.nl.system.service.param.dao.Param; +import org.nl.system.service.param.impl.SysParamServiceImpl; import org.nl.wms.basedata_manage.enums.BaseDataEnum; import org.nl.wms.basedata_manage.service.IMdPbStoragevehicleextService; import org.nl.wms.basedata_manage.service.IStructattrService; import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleext; +import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleinfo; import org.nl.wms.basedata_manage.service.dao.Structattr; import org.nl.wms.sch_manage.enums.TaskEnum; import org.nl.wms.sch_manage.enums.TaskStatus; @@ -34,6 +39,7 @@ import org.nl.wms.warehouse_management.service.IStIvtPieceBoxMstService; import org.nl.wms.warehouse_management.service.dao.GroupPlate; import org.nl.wms.warehouse_management.service.dao.IOStorInvDis; import org.nl.wms.warehouse_management.service.dao.StIvtPieceBoxDtl; +import org.nl.wms.warehouse_management.service.dao.StIvtPieceBoxMst; import org.nl.wms.warehouse_management.service.dao.mapper.IOStorInvDisMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -240,6 +246,15 @@ public class PieceBoxInTask extends AbstractTask { taskObj.setTask_status(TaskStatus.CANCELED.getCode()); taskObj.setRemark("已取消"); taskService.updateById(taskObj); + + // 查询拼箱明细记录并更新状态 + StIvtPieceBoxDtl boxDtlDao = iStIvtPieceBoxDtlService.getOne( + new QueryWrapper().lambda() + .eq(StIvtPieceBoxDtl::getIn_task_id, taskObj.getTask_id()) + ); + boxDtlDao.setIs_get(IOSConstant.ZERO); + boxDtlDao.setIn_task_id(""); + iStIvtPieceBoxDtlService.updateById(boxDtlDao); } @Override @@ -276,4 +291,37 @@ public class PieceBoxInTask extends AbstractTask { .eq(MdPbStoragevehicleext::getPcsn, boxDtlDao.getPcsn()) ); } + + @Override + public JSONObject resultWeigh(SchBaseTask taskObj) { + // 返回数据 + JSONObject resultJson = new JSONObject(); + + // 校验称重重量与组盘重量是否相符 + SysParamServiceImpl sysParamService = SpringContextHolder.getBean(SysParamServiceImpl.class); + Param ParamDao = sysParamService.findByCode("material_weigh"); + String value = ParamDao.getValue(); + + // 物料浮动上限 + double value_up = NumberUtil.add(value, taskObj.getMaterial_qty().toString()).doubleValue(); + // 物料浮动下限 + double value_down = NumberUtil.sub(taskObj.getMaterial_qty().toString(),value).doubleValue(); + // 称重重量 + double double_qty = Double.parseDouble(taskObj.getWeigh_qty()); + + if (value_down <= double_qty && value_up >= double_qty) { + resultJson.put("is_weigh", IOSConstant.ONE); + return resultJson; + } else { + // 删除任务 + this.cancelTask(taskObj); + // 备注任务 + SchBaseTask taskDao = taskService.getById(taskObj.getTask_id()); + taskDao.setRemark("已取消-称重失败!称重重量为【"+taskObj.getWeigh_qty()+"】"); + taskService.updateById(taskDao); + // 反馈称重失败 + resultJson.put("is_weigh", IOSConstant.ZERO); + } + return resultJson; + } } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/PieceBoxMoveTask.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/PieceBoxMoveTask.java index e5dd90d..d7b98ae 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/PieceBoxMoveTask.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/PieceBoxMoveTask.java @@ -267,4 +267,9 @@ public class PieceBoxMoveTask extends AbstractTask { .eq(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("入库")) ); } + + @Override + public JSONObject resultWeigh(SchBaseTask taskObj) { + return null; + } } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/QualityOutTask.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/QualityOutTask.java index 08ee320..bf1b5c2 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/QualityOutTask.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/QualityOutTask.java @@ -213,4 +213,9 @@ public class QualityOutTask extends AbstractTask { @Override public void taskConfirm(String task_code) { } + + @Override + public JSONObject resultWeigh(SchBaseTask taskObj) { + return null; + } } 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 64ed124..048e1f7 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 @@ -252,4 +252,9 @@ public class ReceiveOutTask extends AbstractTask { materDtlDao.setCreate_time(DateUtil.now()); iPdmBomCallMaterialDtlService.save(materDtlDao); } + + @Override + public JSONObject resultWeigh(SchBaseTask taskObj) { + return null; + } } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/SelectBackInTask.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/SelectBackInTask.java index 42e0c16..637f6ec 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/SelectBackInTask.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/SelectBackInTask.java @@ -1,6 +1,7 @@ package org.nl.wms.sch_manage.service.util.tasks; 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.conditions.query.QueryWrapper; @@ -10,9 +11,16 @@ 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.config.SpringContextHolder; +import org.nl.system.service.param.dao.Param; +import org.nl.system.service.param.impl.SysParamServiceImpl; import org.nl.wms.basedata_manage.enums.BaseDataEnum; +import org.nl.wms.basedata_manage.service.IMdPbStoragevehicleinfoService; import org.nl.wms.basedata_manage.service.IStructattrService; +import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleinfo; import org.nl.wms.basedata_manage.service.dao.Structattr; +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; @@ -28,8 +36,12 @@ import org.nl.wms.warehouse_management.enums.IOSEnum; import org.nl.wms.warehouse_management.service.IMdPbGroupplateService; import org.nl.wms.warehouse_management.service.IRawAssistIStorService; import org.nl.wms.warehouse_management.service.dao.GroupPlate; +import org.nl.wms.warehouse_management.service.dao.IOStorInv; 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.nl.wms.warehouse_management.service.dao.mapper.IOStorInvMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; @@ -65,6 +77,24 @@ public class SelectBackInTask extends AbstractTask { @Autowired private IStructattrService iStructattrService; + /** + * 分配明细mapper + */ + @Autowired + private IOStorInvDisMapper ioStorInvDisMapper; + + /** + * 明细mapper + */ + @Autowired + private IOStorInvDtlMapper ioStorInvDtlMapper; + + /** + * 叫料明细服务 + */ + @Autowired + private IPdmBomCallMaterialDtlService iPdmBomCallMaterialDtlService; + @Override public String create(JSONObject json) { SchBaseTask task = new SchBaseTask(); @@ -78,6 +108,7 @@ public class SelectBackInTask extends AbstractTask { task.setMaterial_id(json.getString("material_id")); task.setMaterial_qty(json.getBigDecimal("material_qty")); task.setGroup_id(json.getString("group_id")); + task.setExt_group_data(json.getString("ext_group_data")); task.setRequest_param(json.toString()); task.setTask_type(TaskEnum.TASK_TYPE.code("料箱")); task.setPriority(json.getString("Priority")); @@ -196,6 +227,33 @@ public class SelectBackInTask extends AbstractTask { taskObj.setTask_status(TaskStatus.CANCELED.getCode()); taskObj.setRemark("已取消"); taskService.updateById(taskObj); + + // 查询分配明细 + IOStorInvDis ioStorInvDis = ioStorInvDisMapper.selectById(taskObj.getExt_group_data()); + // 查询明细 + IOStorInvDtl ioStorInvDtl = ioStorInvDtlMapper.selectById(ioStorInvDis.getIostorinvdtl_id()); + + // 更新明细是否拣选为是 + ioStorInvDtl.setIs_check(IOSConstant.ONE); + ioStorInvDtlMapper.updateById(ioStorInvDtl); + + // 判断是否有额外组盘信息 + if (ObjectUtil.isNotEmpty(ioStorInvDtl.getNew_vehicle())) { + // 删除组盘信息 + iMdPbGroupplateService.remove( + new QueryWrapper().lambda() + .eq(GroupPlate::getStoragevehicle_code, ioStorInvDtl.getNew_vehicle()) + .eq(GroupPlate::getMaterial_id, ioStorInvDis.getMaterial_id()) + .eq(GroupPlate::getPcsn, ioStorInvDis.getPcsn()) + .eq(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("组盘")) + ); + // 更新叫料明细组盘信息 + iPdmBomCallMaterialDtlService.update( + new UpdateWrapper().lambda() + .set(PdmBomCallMaterialDtl::getVehicle_code, ioStorInvDis.getStoragevehicle_code()) + .eq(PdmBomCallMaterialDtl::getOut_dis_id, ioStorInvDis.getIostorinvdis_id()) + ); + } } @Override @@ -226,4 +284,37 @@ public class SelectBackInTask extends AbstractTask { iStructattrService.updateById(attrDao); } + + @Override + public JSONObject resultWeigh(SchBaseTask taskObj) { + // 返回数据 + JSONObject resultJson = new JSONObject(); + + // 校验称重重量与组盘重量是否相符 + SysParamServiceImpl sysParamService = SpringContextHolder.getBean(SysParamServiceImpl.class); + Param ParamDao = sysParamService.findByCode("material_weigh"); + String value = ParamDao.getValue(); + + // 物料浮动上限 + double value_up = NumberUtil.add(value, taskObj.getMaterial_qty().toString()).doubleValue(); + // 物料浮动下限 + double value_down = NumberUtil.sub(taskObj.getMaterial_qty().toString(),value).doubleValue(); + // 称重重量 + double double_qty = Double.parseDouble(taskObj.getWeigh_qty()); + + if (value_down <= double_qty && value_up >= double_qty) { + resultJson.put("is_weigh", IOSConstant.ONE); + return resultJson; + } else { + this.cancelTask(taskObj); + // 备注任务 + SchBaseTask taskDao = taskService.getById(taskObj.getTask_id()); + taskDao.setRemark("已取消-称重失败!称重重量为【"+taskObj.getWeigh_qty()+"】"); + taskService.updateById(taskDao); + // 反馈称重失败 + resultJson.put("is_weigh", IOSConstant.ZERO); + } + + return resultJson; + } } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/ThreePointTask.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/ThreePointTask.java index 47d1797..776c359 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/ThreePointTask.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/ThreePointTask.java @@ -174,6 +174,11 @@ public class ThreePointTask extends AbstractTask { public void taskConfirm(String task_code) { } + @Override + public JSONObject resultWeigh(SchBaseTask taskObj) { + return null; + } + @Transactional public void finishTask(SchBaseTask taskObj) { // 更新point_code2 diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/enums/IOSConstant.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/enums/IOSConstant.java index aaee171..45fb095 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/enums/IOSConstant.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/enums/IOSConstant.java @@ -114,5 +114,5 @@ public class IOSConstant { /** * 物料id:焊丝(盘状) */ - public final static String MATERIAL_HS_PZ = "1945687018646409216"; + public final static String MATERIAL_HS_PZ = "19456870186461192161"; } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/VehicleInService.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/VehicleInService.java index 17f1a56..fe8a11d 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/VehicleInService.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/VehicleInService.java @@ -31,6 +31,7 @@ public interface VehicleInService { * @param whereJson { * storagevehicle_code: 载具编码 * point_code: 入库点位 + * point_code3: 用于称重退回使用 * sect_code: 库区编码 * } */ diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/OutBillServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/OutBillServiceImpl.java index aa43d3e..2fcee25 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/OutBillServiceImpl.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/OutBillServiceImpl.java @@ -439,9 +439,19 @@ public class OutBillServiceImpl extends ServiceImpl unassign_qty = unassign_qty - outAllocation.getCanuse_qty().doubleValue(); if (unassign_qty < 0) { - ioStorInvDis.setIs_check(IOSConstant.ONE); - ioStorInvDis.setCheck_qty(outAllocation.getCanuse_qty()); - play_qty = NumberUtil.add(play_qty,unassign_qty); + // 判断是否领料出库 + if (ioStorInv.getBill_type().equals(IOSEnum.OUT_BILL_TYPE.code("领料出库"))) { + // 判断是否是盘丝(焊状) + if (!dtl.getMaterial_id().equals(IOSConstant.MATERIAL_HS_PZ)) { + ioStorInvDis.setIs_check(IOSConstant.ONE); + ioStorInvDis.setCheck_qty(outAllocation.getCanuse_qty()); + play_qty = NumberUtil.add(play_qty,unassign_qty); + } + } else { + ioStorInvDis.setIs_check(IOSConstant.ONE); + ioStorInvDis.setCheck_qty(outAllocation.getCanuse_qty()); + play_qty = NumberUtil.add(play_qty,unassign_qty); + } unassign_qty = 0; } @@ -670,9 +680,19 @@ public class OutBillServiceImpl extends ServiceImpl unassign_qty = unassign_qty - outAllocation.getCanuse_qty().doubleValue(); if (unassign_qty < 0) { - ioStorInvDis.setIs_check(IOSConstant.ONE); - ioStorInvDis.setCheck_qty(outAllocation.getCanuse_qty()); - play_qty = NumberUtil.add(play_qty,unassign_qty); + // 判断是否领料出库 + if (ioStorInv.getBill_type().equals(IOSEnum.OUT_BILL_TYPE.code("领料出库"))) { + // 判断是否是盘丝(焊状) + if (!dtl.getMaterial_id().equals(IOSConstant.MATERIAL_HS_PZ)) { + ioStorInvDis.setIs_check(IOSConstant.ONE); + ioStorInvDis.setCheck_qty(outAllocation.getCanuse_qty()); + play_qty = NumberUtil.add(play_qty,unassign_qty); + } + } else { + ioStorInvDis.setIs_check(IOSConstant.ONE); + ioStorInvDis.setCheck_qty(outAllocation.getCanuse_qty()); + play_qty = NumberUtil.add(play_qty,unassign_qty); + } unassign_qty = 0; } //分配明细 @@ -892,9 +912,19 @@ public class OutBillServiceImpl extends ServiceImpl unassign_qty = unassign_qty - ivt.getDoubleValue("canuse_qty"); if (unassign_qty < 0) { - ioStorInvDis.setIs_check(IOSConstant.ONE); - ioStorInvDis.setCheck_qty(ivt.getBigDecimal("canuse_qty")); - play_qty = NumberUtil.add(play_qty,unassign_qty); + // 判断是否领料出库 + if (ioStorInv.getBill_type().equals(IOSEnum.OUT_BILL_TYPE.code("领料出库"))) { + // 判断是否是盘丝(焊状) + if (!dtl.getMaterial_id().equals(IOSConstant.MATERIAL_HS_PZ)) { + ioStorInvDis.setIs_check(IOSConstant.ONE); + ioStorInvDis.setCheck_qty(ivt.getBigDecimal("canuse_qty")); + play_qty = NumberUtil.add(play_qty,unassign_qty); + } + } else { + ioStorInvDis.setIs_check(IOSConstant.ONE); + ioStorInvDis.setCheck_qty(ivt.getBigDecimal("canuse_qty")); + play_qty = NumberUtil.add(play_qty,unassign_qty); + } unassign_qty = 0; } @@ -1410,29 +1440,15 @@ public class OutBillServiceImpl extends ServiceImpl * @param dtl 明细实体类 */ private boolean checkIosDtl(IOStorInvDtlDto dtl) { - IOStorInv iosMst = this.getById(dtl.getIostorinv_id()); - if (iosMst.getBill_type().equals(IOSEnum.OUT_BILL_TYPE.code("退货出库")) - || iosMst.getBill_type().equals(IOSEnum.OUT_BILL_TYPE.code("手工出库")) - ) { - return false; - } + // 查找分配明细是否有拣选的 + List ioStorInvDis = ioStorInvDisMapper.selectList( + new QueryWrapper().lambda() + .eq(IOStorInvDis::getIostorinvdtl_id, dtl.getIostorinvdtl_id()) + ); - /* - * 1.领料出库:焊丝(盘状)= 整出 领料出库:焊丝(棒状)= 拣选 - * 2.已分配重量小于/等于计划重量 = 整出;已分配重量大于计划重量 = 拣选 - */ - // 如果是领料出库,并且是焊丝(盘状)则整出 - if (iosMst.getBill_type().equals(IOSEnum.OUT_BILL_TYPE.code("领料出库"))) { - if (dtl.getMaterial_id().equals(IOSConstant.MATERIAL_HS_PZ)) { - return false; - } - } - - // 判断已分配数量和计划数量: 已分配重量大于计划重量 = 拣选 - if (dtl.getAssign_qty().doubleValue() > dtl.getPlan_qty().doubleValue()) { - return true; - } - return false; + boolean is_check = ioStorInvDis.stream() + .anyMatch(row -> row.getIs_check().equals(IOSConstant.ONE)); + return is_check; } } 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 463fdd1..399f658 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 @@ -213,16 +213,14 @@ public class SelectOutServiceImpl extends ServiceImpl().lambda() + .set(PdmBomCallMaterialDtl::getVehicle_code, dto.getNew_vehicle()) + .eq(PdmBomCallMaterialDtl::getOut_dis_id, disDao.getIostorinvdis_id()) + ); } - // 更新叫料明细载具信息,际出库重量 - iPdmBomCallMaterialDtlService.update( - new UpdateWrapper().lambda() - .set(PdmBomCallMaterialDtl::getVehicle_code, dto.getNew_vehicle()) - .set(PdmBomCallMaterialDtl::getOut_qty, disDao.getReal_qty()) - .eq(PdmBomCallMaterialDtl::getOut_dis_id, disDao.getIostorinvdis_id()) - ); - // 锁定终点 Structattr attrDao = iStructattrService.getByCode(disDao.getStruct_code()); if (!attrDao.getLock_type().equals(IOSEnum.LOCK_TYPE.code("未锁定"))) { @@ -238,6 +236,7 @@ public class SelectOutServiceImpl extends ServiceImpl().lambda() + .eq(GroupPlate::getStoragevehicle_code, extDao.getStoragevehicle_code()) + .eq(GroupPlate::getMaterial_id, extDao.getMaterial_id()) + .eq(GroupPlate::getPcsn, extDao.getPcsn()) + ); + groupPlate.setQty(extDao.getCanuse_qty()); + groupPlateMapper.updateById(groupPlate); + } + } diff --git a/wms/nladmin-ui/src/views/wms/sch/point/index.vue b/wms/nladmin-ui/src/views/wms/sch/point/index.vue index ba073ed..f691cfc 100644 --- a/wms/nladmin-ui/src/views/wms/sch/point/index.vue +++ b/wms/nladmin-ui/src/views/wms/sch/point/index.vue @@ -245,6 +245,9 @@ + + +