diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoLashTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoLashTask.java index 792928ff0..74826c19b 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoLashTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoLashTask.java @@ -9,19 +9,12 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; -import lombok.AllArgsConstructor; -import lombok.NoArgsConstructor; -import lombok.RequiredArgsConstructor; -import org.nl.b_lms.sch.point.dao.SchBasePoint; -import org.nl.b_lms.sch.point.service.IschBasePointService; import org.nl.b_lms.storage_manage.database.service.IBstIvtBoxinfoService; -import org.nl.b_lms.storage_manage.database.service.IBstIvtBoxlashboundService; import org.nl.b_lms.storage_manage.database.service.IMdpbBoxtypeService; import org.nl.b_lms.storage_manage.database.service.dao.BstIvtBoxinfo; -import org.nl.b_lms.storage_manage.database.service.dao.BstIvtBoxlashbound; import org.nl.b_lms.storage_manage.database.service.dao.MdpbBoxtype; import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.mapper.StIvtIostorinvOutMapper; import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.wql.core.bean.WQLObject; @@ -31,7 +24,6 @@ import org.nl.wms.sch.AcsTaskDto; import org.nl.wms.sch.manage.AbstractAcsTask; import org.nl.wms.sch.manage.TaskStatusEnum; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -62,6 +54,12 @@ public class TwoLashTask extends AbstractAcsTask { @Autowired private IMdpbBoxtypeService iMdpbBoxtypeService; + /* + * 出入库主表mapper + */ + @Autowired + private StIvtIostorinvOutMapper stIvtIostorinvOutMapper; + @Override public List addTask() { /* @@ -116,11 +114,21 @@ public class TwoLashTask extends AbstractAcsTask { } interaction_json.put("bindingTimes", boxTypeDao.getLash_num_tow()); - // 是否二次捆扎 + // 是否二次捆扎: 如果是返检或者反切的则不需要捆扎(找最近的木箱出库单据) if (ObjectUtil.isEmpty(boxTypeDao.getNeed_lash_two())) { throw new BadRequestException("是否第二次捆扎不能为空!"); } - interaction_json.put("isBinding", boxTypeDao.getNeed_lash_two()); + String isBinding = boxTypeDao.getNeed_lash_two(); + + JSONObject jsonMst = stIvtIostorinvOutMapper.queryBoxOutInfo(json.getString("vehicle_code")); + if (ObjectUtil.isNotEmpty(jsonMst)) { + if (jsonMst.getString("bill_type").equals(IOSEnum.OUT_TYPE.code("改切出库")) + || jsonMst.getString("bill_type").equals(IOSEnum.OUT_TYPE.code("返检出库"))) { + isBinding = IOSEnum.IS_NOTANDYES.code("否"); + } + } + interaction_json.put("isBinding", isBinding); + char dtl_type = json.getString("task_type").charAt(json.getString("task_type").length() - 1); AcsTaskDto dto = AcsTaskDto.builder() .ext_task_id(json.getString("task_id")) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtIostorinvOutMapper.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtIostorinvOutMapper.java index 5b0d18f5f..b077d4530 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtIostorinvOutMapper.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtIostorinvOutMapper.java @@ -1,6 +1,7 @@ package org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.mapper; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtIostorinv; import org.springframework.data.domain.Pageable; @@ -18,4 +19,10 @@ import java.util.Map; */ public interface StIvtIostorinvOutMapper extends BaseMapper { + /** + * 根据木箱号查找最近出库的木箱 + * @param box_no: 木箱号 + * @return JSONObject + */ + JSONObject queryBoxOutInfo(String box_no); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtIostorinvOutMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtIostorinvOutMapper.xml index f013ce8eb..7f3c341b0 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtIostorinvOutMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtIostorinvOutMapper.xml @@ -1,5 +1,19 @@ - + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/LashManageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/LashManageServiceImpl.java index 61f610794..1a2278448 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/LashManageServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/LashManageServiceImpl.java @@ -7,12 +7,8 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import lombok.RequiredArgsConstructor; -import org.hibernate.annotations.Source; import org.nl.b_lms.sch.point.dao.SchBasePoint; import org.nl.b_lms.sch.point.dao.mapper.SchBasePointMapper; -import org.nl.b_lms.sch.point.service.IschBasePointService; -import org.nl.b_lms.sch.task.dao.SchBaseTask; -import org.nl.b_lms.sch.task.dao.mapper.SchBaseTaskMapper; import org.nl.b_lms.sch.tasks.TwoLashTask; import org.nl.b_lms.sch.tasks.TwoOutHeapTask; import org.nl.b_lms.storage_manage.database.service.IBstIvtBoxinfoService; @@ -22,19 +18,20 @@ import org.nl.b_lms.storage_manage.database.service.dao.BstIvtBoxinfo; import org.nl.b_lms.storage_manage.database.service.dao.BstIvtBoxlashbound; import org.nl.b_lms.storage_manage.database.service.dao.MdpbBoxtype; import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.mapper.StIvtIostorinvOutMapper; import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.LashManageService; import org.nl.common.utils.IdUtil; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.wql.core.bean.WQLObject; import org.nl.modules.wql.util.SpringContextHolder; import org.nl.system.service.param.impl.SysParamServiceImpl; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import javax.annotation.Resource; -import java.util.*; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Optional; import java.util.stream.Collectors; /** @@ -74,6 +71,11 @@ public class LashManageServiceImpl implements LashManageService { */ private final IMdpbBoxtypeService iMdpbBoxtypeService; + /** + * 出入库主表服务 + */ + private final StIvtIostorinvOutMapper stIvtIostorinvOutMapper; + @Override @Transactional public void createLashTask(JSONObject whereJson) { @@ -274,6 +276,8 @@ public class LashManageServiceImpl implements LashManageService { public JSONObject applyTab(JSONObject whereJson) { // 载具扩展属性表 WQLObject extTab = WQLObject.getWQLObject("md_pb_storagevehicleext"); + // 任务表 + WQLObject taskTab = WQLObject.getWQLObject("sch_base_task"); // TODO 贴标流程 JSONObject result = new JSONObject(); @@ -305,11 +309,22 @@ public class LashManageServiceImpl implements LashManageService { result.put("width", boxDao.getBox_width()); result.put("height", boxDao.getBox_high()); result.put("case", boxDao.getMaterial_code()); - // 是否捆扎 + + // 是否捆扎: 如果是返检或者反切的则不需要捆扎(找最近的木箱出库单据) if (ObjectUtil.isEmpty(boxTypeDao.getNeed_lash_one())) { throw new BadRequestException("第一次是否捆扎不能为空!"); } - result.put("isBinding", boxTypeDao.getNeed_lash_one()); + String isBinding = boxTypeDao.getNeed_lash_one(); + + JSONObject jsonMst = stIvtIostorinvOutMapper.queryBoxOutInfo(boxDao.getBox_no()); + if (ObjectUtil.isNotEmpty(jsonMst)) { + if (jsonMst.getString("bill_type").equals(IOSEnum.OUT_TYPE.code("改切出库")) + || jsonMst.getString("bill_type").equals(IOSEnum.OUT_TYPE.code("返检出库"))) { + isBinding = IOSEnum.IS_NOTANDYES.code("否"); + } + } + + result.put("isBinding", isBinding); // TODO 是否贴标 result.put("isLabeling", IOSEnum.IS_SEND.code("否")); // TODO 贴标模版