diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/common/utils/RedissonUtils.java b/mes/hd/nladmin-system/src/main/java/org/nl/common/utils/RedissonUtils.java index 7a83344b..289ef418 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/common/utils/RedissonUtils.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/common/utils/RedissonUtils.java @@ -37,6 +37,9 @@ public class RedissonUtils { } else { throw new BadRequestException("当前业务 key:"+key+"正在执行请稍后再试"); } + }catch (Exception ex){ + ex.printStackTrace(); + throw ex; }finally { if (isLock){ lock.unlock(); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext_manage/acs/service/impl/AcsToWmsServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext_manage/acs/service/impl/AcsToWmsServiceImpl.java index 46ace41a..628d0751 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext_manage/acs/service/impl/AcsToWmsServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext_manage/acs/service/impl/AcsToWmsServiceImpl.java @@ -7,6 +7,7 @@ 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.SneakyThrows; import org.apache.commons.lang3.StringUtils; import lombok.extern.slf4j.Slf4j; import org.nl.common.enums.AcsTaskEnum; @@ -120,6 +121,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService{ * @param string 条件 * @returnzss */ + @SneakyThrows @Override @Transactional public Map receiveTaskStatusAcs(String string) { @@ -148,12 +150,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService{ .extParam(row.get("ext_param")!=null?(Map)row.get("ext_param"):null) .build(); BussEventMulticaster.Publish(event); - } catch (Exception e) { - log.error("任务状态更新失败:{}", e.getMessage()); - JSONObject json = new JSONObject(); - json.put("task_id", task_id); - json.put("message", e.getMessage()); - errArr.add(json); + } catch (Exception ex) { + throw ex; } } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/material/dao/MdMeMaterialbase.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/material/dao/MdMeMaterialbase.java index 3202950c..3c561f56 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/material/dao/MdMeMaterialbase.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/material/dao/MdMeMaterialbase.java @@ -24,7 +24,10 @@ import lombok.EqualsAndHashCode; public class MdMeMaterialbase implements Serializable { private static final long serialVersionUID = 1L; - + /** + * 车间 + */ + private String product_area; /** * 物料标识 */ @@ -181,7 +184,6 @@ public class MdMeMaterialbase implements Serializable { */ private String product_series; - private String product_area; } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/vehicle/IMdPbBucketrecordService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/vehicle/IMdPbBucketrecordService.java index 2ee3d38b..8a3373ea 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/vehicle/IMdPbBucketrecordService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/vehicle/IMdPbBucketrecordService.java @@ -39,5 +39,5 @@ public interface IMdPbBucketrecordService extends IService { */ void excelImport(MultipartFile file, HttpServletRequest request, HttpServletResponse response); - List getMstList(); + List getMstList(String storagevehicle_code); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/vehicle/dao/MdPbBucketrecord.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/vehicle/dao/MdPbBucketrecord.java index c66c1dae..85f74d98 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/vehicle/dao/MdPbBucketrecord.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/vehicle/dao/MdPbBucketrecord.java @@ -75,6 +75,12 @@ public class MdPbBucketrecord implements Serializable { */ private String material_spec; + + /** + * 物料名称 + */ + private String material_name; + /** * 批次 */ diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/vehicle/dao/mapper/MdPbBucketrecordMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/vehicle/dao/mapper/MdPbBucketrecordMapper.java index cd0b7d0f..50cd98f0 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/vehicle/dao/mapper/MdPbBucketrecordMapper.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/vehicle/dao/mapper/MdPbBucketrecordMapper.java @@ -18,5 +18,5 @@ public interface MdPbBucketrecordMapper extends BaseMapper { List queryAll(Map map); - List getMstList(); + List getMstList(String storagevehicle_code); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/vehicle/dao/mapper/xml/MdPbBucketrecordMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/vehicle/dao/mapper/xml/MdPbBucketrecordMapper.xml index d0f56a4f..3edf2057 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/vehicle/dao/mapper/xml/MdPbBucketrecordMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/vehicle/dao/mapper/xml/MdPbBucketrecordMapper.xml @@ -25,7 +25,7 @@ and re.storagevehicle_code = #{storagevehicle_code} - and ( re.bucketunique like '{bucketunique}%$' ) + and ( re.bucketunique like '${bucketunique}%' ) @@ -33,6 +33,9 @@ select GROUP_CONCAT(bucket_record_id) as bucket_record_id,(@rowcount :=@rowcount+1) as sqe_on, create_time,storagevehicle_code,sale_code,SUM(storage_qty) as storage_qty,count(storagevehicle_code) as count from md_pb_bucketrecord,(select @rowcount := 0) as r where status = '1' + + and storagevehicle_code like '${storagevehicle_code}%' + GROUP BY storagevehicle_code,sale_code,create_time diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/vehicle/impl/MdPbBucketrecordServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/vehicle/impl/MdPbBucketrecordServiceImpl.java index 3ed9a285..2bf35ddd 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/vehicle/impl/MdPbBucketrecordServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/vehicle/impl/MdPbBucketrecordServiceImpl.java @@ -6,6 +6,7 @@ import cn.hutool.poi.excel.ExcelReader; import cn.hutool.poi.excel.ExcelUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; @@ -59,7 +60,7 @@ import java.util.stream.Collectors; @Service public class MdPbBucketrecordServiceImpl extends ServiceImpl implements IMdPbBucketrecordService { - private static Map Excel_Item = MapOf.of(0,"storagevehicle_code",1,"sale_code",2,"contract_code",3,"material_code",8,"storage_qty",9,"bucketunique"); + private static Map Excel_Item = MapOf.of(0,"storagevehicle_code",1,"sale_code",2,"contract_code",3,"material_code",4,"material_name",5,"material_spec",8,"storage_qty",9,"bucketunique"); @Autowired protected IMdPbStoragevehicleinfoService iMdPbStoragevehicleinfoService; // 载具服务 @@ -130,23 +131,45 @@ public class MdPbBucketrecordServiceImpl extends ServiceImpl materialmaps = data.stream().collect(HashMap::new, (k, v) -> k.put(v.getMaterial_code(), v.getMaterial_spec()+","+v.getMaterial_name()), HashMap::putAll); Set collect = data.stream().map(MdPbBucketrecord::getMaterial_code).collect(Collectors.toSet()); List materials = materialbaseService.list(new QueryWrapper().in("material_code", collect)); + List list = new ArrayList<>(); if (materials.size()!=collect.size()){ List collect1 = materials.stream().map(MdMeMaterialbase::getMaterial_code).collect(Collectors.toList()); - String notIn = collect.stream().filter(a -> !collect1.contains(a)).collect(Collectors.joining(",")); - throw new BadRequestException("当前物料编号不存在:"+notIn); + Set notIn = collect.stream().filter(a -> !collect1.contains(a)).collect(Collectors.toSet()); + //新增物料信息 + BigDecimal net_weight = new BigDecimal(45); + for (String mcode : notIn) { + String[] split = materialmaps.get(mcode).split(","); + MdMeMaterialbase materialbase = new MdMeMaterialbase(); + materialbase.setMaterial_id(IdUtil.getStringId()); + materialbase.setIs_used(true); + materialbase.setMaterial_code(mcode); + materialbase.setMaterial_name(split[1]); + materialbase.setMaterial_spec(split[0]); + materialbase.setIs_delete(false); + materialbase.setBase_unit_id("16"); + materialbase.setNet_weight(net_weight); + materialbase.setCreate_id("9999"); + materialbase.setCreate_name("临时"); + list.add(materialbase); + } } + if (!CollectionUtils.isEmpty(list)){ + materialbaseService.saveBatch(list); + } + materials.addAll(list); Map materialMap = materials.stream().collect(HashMap::new, (k, v) -> k.put(v.getMaterial_code(), v), HashMap::putAll); String now = DateUtil.now(); String pcsn = DateUtil.today(); - for (MdPbBucketrecord datum : data) { datum.setBucket_record_id(IdUtil.getStringId()); String bucketunique = datum.getBucketunique(); if (StringUtils.isEmpty(bucketunique)){ datum.setBucketunique(CodeUtil.getNewCode("PRODUCT_BUCKET_CODE")); } + datum.setStoragevehicle_code(datum.getStoragevehicle_code()+"_"+datum.getSale_code()); datum.setCreate_id(SecurityUtils.getCurrentUserId()); datum.setCreate_name(SecurityUtils.getCurrentNickName()); datum.setCreate_time(now); @@ -162,6 +185,10 @@ public class MdPbBucketrecordServiceImpl extends ServiceImpl has = this.list(new QueryWrapper().in("storagevehicle_code", data.stream().map(MdPbBucketrecord::getStoragevehicle_code).collect(Collectors.toSet()))); + if (!CollectionUtils.isEmpty(has)){ + throw new BadRequestException("托盘订单已存在:"+has.stream().map(MdPbBucketrecord::getStoragevehicle_code).collect(Collectors.joining(","))); + } this.saveBatch(data); }catch (Exception ex){ throw new BadRequestException(ex.getMessage()); @@ -169,7 +196,7 @@ public class MdPbBucketrecordServiceImpl extends ServiceImpl getMstList() { - return this.baseMapper.getMstList(); + public List getMstList(String storagevehicle_code) { + return this.baseMapper.getMstList(storagevehicle_code); } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/controller/PdaProductIosController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/controller/PdaProductIosController.java index a168cc22..007882c6 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/controller/PdaProductIosController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/controller/PdaProductIosController.java @@ -97,8 +97,8 @@ public class PdaProductIosController { public ResponseEntity bucket(@RequestBody JSONObject param) { String storagevehicleCode = param.getString("storagevehicle_code"); List mstList= new ArrayList<>(); - if (StringUtils.isEmpty(storagevehicleCode)){ - mstList = bucketrecordService.getMstList(); + if (param.getString("sale_code")!=null){ + mstList = bucketrecordService.getMstList(storagevehicleCode); }else { List> maps = bucketrecordService.listMaps(new QueryWrapper() .eq("storagevehicle_code", storagevehicleCode).eq("status", "1")); @@ -126,8 +126,8 @@ public class PdaProductIosController { @Log("批量入库") //("新增入库单") public ResponseEntity batchin(@RequestBody JSONArray whereJson) { - pdaStCpInService.confirmIn(null); - return new ResponseEntity<>(MapOf.of("message","创建成功","status", HttpStatus.OK.value()),HttpStatus.OK); + pdaStCpInService.batchConfirmIn(whereJson); + return new ResponseEntity<>(TableDataInfo.build(),HttpStatus.OK); } @PostMapping("/iosTasks") diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/impl/PdaStCpInServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/impl/PdaStCpInServiceImpl.java index d8497099..a502da77 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/impl/PdaStCpInServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/impl/PdaStCpInServiceImpl.java @@ -1,6 +1,7 @@ package org.nl.wms.storage_manage.pda.service.impl; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; @@ -23,6 +24,8 @@ import org.nl.common.utils.MapOf; import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.system.util.CodeUtil; +import org.nl.modules.wql.util.SpringContextHolder; +import org.nl.wms.ext_manage.acs.service.WmsToAcsService; import org.nl.wms.masterdata_manage.MasterEnum; import org.nl.wms.masterdata_manage.service.material.dao.MdMeMaterialbase; import org.nl.wms.masterdata_manage.service.vehicle.IMdPbBucketrecordService; @@ -33,8 +36,11 @@ import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtBsrealstora import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr; import org.nl.wms.mps_manage.saleorder.service.IMpsSaleOrderService; import org.nl.wms.mps_manage.saleorder.service.dao.MpsSaleOrder; +import org.nl.wms.scheduler_manage.service.extendtask.manage.TaskStatusEnum; import org.nl.wms.scheduler_manage.service.point.ISchBasePointService; import org.nl.wms.scheduler_manage.service.point.dao.SchBasePoint; +import org.nl.wms.scheduler_manage.service.task.ISchBaseTaskService; +import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask; import org.nl.wms.storage_manage.IOSEnum; import org.nl.wms.storage_manage.IVTEnum; import org.nl.wms.storage_manage.pda.PDAEnum; @@ -55,6 +61,7 @@ import org.nl.wms.system_manage.service.dict.dao.Dict; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; import java.math.BigDecimal; import java.util.*; @@ -85,6 +92,11 @@ public class PdaStCpInServiceImpl implements PdaStCpInService { private ISchBasePointService iSchBasePointService; // 点位服务 @Autowired private IStIvtStructivtCpService iStIvtStructivtCpService; + @Autowired + private WmsToAcsService wmsToAcsService; + + @Autowired + private ISchBaseTaskService taskService; @Autowired private IMpsSaleOrderService iMpsSaleOrderService; // 订单服务 @@ -237,11 +249,18 @@ public class PdaStCpInServiceImpl implements PdaStCpInService { throw new BadRequestException("当前成品库可用货位不足:"+stuctList.stream().map(StIvtStructattr::getStruct_code).collect(Collectors.joining(","))); } String pcsn = DateUtil.today(); + List tasks = new ArrayList<>(); //每个托盘的物料 for (int i = 0; i < arr.size(); i++) { - JSONObject item = (JSONObject) arr.get(i); + JSONObject item = JSONObject.parseObject(JSON.toJSONString(arr.get(i))); StIvtStructattr structattr = stuctList.get(i); + //point_code + SchBasePoint one = iSchBasePointService.getOne(new QueryWrapper() + .eq("point_code", item.getString("point_code"))); // 2.组盘信息 + if (one==null){ + throw new BadRequestException("分配的入库点不能为空"); + } List rows = bucketrecordService.listByIds(Arrays.asList(item.getString("bucket_record_id").split(","))); bucketrecordService.update(new UpdateWrapper() .set("status", MasterEnum.BOX_STATUS.code("组盘")) @@ -262,7 +281,7 @@ public class PdaStCpInServiceImpl implements PdaStCpInService { stIvtIostorinvCp.setIo_type(IOSEnum.IO_TYPE.code("入库")); stIvtIostorinvCp.setBuss_type(item.getString("bill_code")); stIvtIostorinvCp.setBill_type(stIvtIostorinvCp.getBuss_type()); - stIvtIostorinvCp.setBill_status(IOSEnum.BILL_STATUS.code("生成")); + stIvtIostorinvCp.setBill_status(IOSEnum.BILL_STATUS.code("分配完")); stIvtIostorinvCp.setCreate_id(SecurityUtils.getCurrentUserId()); stIvtIostorinvCp.setCreate_name(SecurityUtils.getCurrentNickName()); stIvtIostorinvCp.setCreate_time(new Date()); @@ -286,7 +305,7 @@ public class PdaStCpInServiceImpl implements PdaStCpInService { String iostorinvdis_id = IdUtil.getStringId(); StIvtIostorinvdtlCp iostorinvdtlCp = new StIvtIostorinvdtlCp(); - StIvtIostorinvdisdtlCp iostorinvdisdtlCp = new StIvtIostorinvdisdtlCp(); +// StIvtIostorinvdisdtlCp iostorinvdisdtlCp = new StIvtIostorinvdisdtlCp(); StIvtIostorinvdisCp iostorinvdisCp = new StIvtIostorinvdisCp(); 入库明细: { iostorinvdtlCp.setBase_bill_code(row.getSale_code()); @@ -304,61 +323,77 @@ public class PdaStCpInServiceImpl implements PdaStCpInService { iostorinvdtlCp.setPcsn(pcsn); iostorinvdtlCp.setIs_active(true); iostorinvdtlCp.setIvt_level(IVTEnum.IVT_LEVEL.code("一级")); - iostorinvdtlCp.setBill_status(IOSEnum.BILL_STATUS.code("生成")); + iostorinvdtlCp.setBill_status(IOSEnum.BILL_STATUS.code("分配完")); iostorinvdtlCp.setReal_qty(iostorinvdtlCp.getPlan_qty()); iostorinvdtlCp.setUnassign_qty(iostorinvdtlCp.getPlan_qty()); invdtl.add(iostorinvdtlCp); } - 分配明细: { - iostorinvdisdtlCp.setIostorinv_id(iostorinvdtlCp.getIostorinv_id()); - iostorinvdisdtlCp.setIostorinvdtl_id(iostorinvdtlCp.getIostorinvdtl_id()); - iostorinvdisdtlCp.setIostorinvdis_id(iostorinvdis_id); - iostorinvdisdtlCp.setIostorinvdisdtl_id(IdUtil.getStringId()); - iostorinvdisdtlCp.setSeq_no(new BigDecimal(1)); - iostorinvdisdtlCp.setMaterial_id(iostorinvdtlCp.getMaterial_id()); - iostorinvdisdtlCp.setPcsn(pcsn); - iostorinvdisdtlCp.setQuality_scode(IVTEnum.QUALITY_SCODE.code("合格品")); - iostorinvdisdtlCp.setIvt_level(IVTEnum.IVT_LEVEL.code("一级")); - iostorinvdisdtlCp.setIs_active(true); - iostorinvdisdtlCp.setStoragevehicle_code(row.getStoragevehicle_code()); - iostorinvdisdtlCp.setBucketunique(row.getBucketunique()); - iostorinvdisdtlCp.setQty_unit_id(row.getQty_unit_id()); - iostorinvdisdtlCp.setQty_unit_name(row.getQty_unit_name()); - iostorinvdisdtlCp.setReal_qty(new BigDecimal(row.getStorage_qty())); - invdisdtl.add(iostorinvdisdtlCp); - } +// 分配明细: { +// iostorinvdisdtlCp.setIostorinv_id(iostorinvdtlCp.getIostorinv_id()); +// iostorinvdisdtlCp.setIostorinvdtl_id(iostorinvdtlCp.getIostorinvdtl_id()); +// iostorinvdisdtlCp.setIostorinvdis_id(iostorinvdis_id); +// iostorinvdisdtlCp.setIostorinvdisdtl_id(IdUtil.getStringId()); +// iostorinvdisdtlCp.setSeq_no(new BigDecimal(1)); +// iostorinvdisdtlCp.setMaterial_id(iostorinvdtlCp.getMaterial_id()); +// iostorinvdisdtlCp.setPcsn(pcsn); +// iostorinvdisdtlCp.setQuality_scode(IVTEnum.QUALITY_SCODE.code("合格品")); +// iostorinvdisdtlCp.setIvt_level(IVTEnum.IVT_LEVEL.code("一级")); +// iostorinvdisdtlCp.setIs_active(true); +// iostorinvdisdtlCp.setStoragevehicle_code(row.getStoragevehicle_code()); +// iostorinvdisdtlCp.setBucketunique(row.getBucketunique()); +// iostorinvdisdtlCp.setQty_unit_id(row.getQty_unit_id()); +// iostorinvdisdtlCp.setQty_unit_name(row.getQty_unit_name()); +// iostorinvdisdtlCp.setReal_qty(new BigDecimal(row.getStorage_qty())); +// +// iostorinvdisdtlCp.setStruct_id(structattr.getStruct_id()); +// iostorinvdisdtlCp.setStruct_code(structattr.getStruct_code()); +// iostorinvdisdtlCp.setStruct_name(structattr.getStruct_name()); +// iostorinvdisdtlCp.setSect_id(structattr.getSect_id()); +// iostorinvdisdtlCp.setSect_code(structattr.getSect_code()); +// iostorinvdisdtlCp.setSect_name(structattr.getSect_name()); +// invdisdtl.add(iostorinvdisdtlCp); +// } 分配:{ iostorinvdisCp.setIostorinvdis_id(iostorinvdis_id); iostorinvdisCp.setIostorinv_id(stIvtIostorinvCp.getIostorinv_id()); - iostorinvdisCp.setIostorinvdtl_id(invdisdtl.get(0).getIostorinvdtl_id()); + iostorinvdisCp.setIostorinvdtl_id(iostorinvdtlCp.getIostorinvdtl_id()); iostorinvdisCp.setSeq_no(1); - iostorinvdisCp.setMaterial_id(invdisdtl.get(0).getMaterial_id()); + iostorinvdisCp.setMaterial_id(row.getMaterial_id()); iostorinvdisCp.setPcsn(pcsn); - iostorinvdisCp.setQuality_scode(invdisdtl.get(0).getQuality_scode()); - iostorinvdisCp.setIvt_level(invdisdtl.get(0).getIvt_level()); + iostorinvdisCp.setQuality_scode(row.getQuality_scode()); + iostorinvdisCp.setIvt_level(row.getIvt_level()); iostorinvdisCp.setIs_active(true); iostorinvdisCp.setIs_issued(false); - iostorinvdisCp.setWork_status(IOSEnum.WORK_STATUS.code("未生成")); - iostorinvdisCp.setStoragevehicle_id(invdisdtl.get(0).getStoragevehicle_id()); - iostorinvdisCp.setStoragevehicle_code(invdisdtl.get(0).getStoragevehicle_code()); - iostorinvdisCp.setStoragevehicle_type(invdisdtl.get(0).getStoragevehicle_type()); - iostorinvdisCp.setQty_unit_id(invdisdtl.get(0).getQty_unit_id()); - iostorinvdisCp.setQty_unit_name(invdisdtl.get(0).getQty_unit_name()); + + iostorinvdisCp.setPoint_id(one.getPoint_id()); + iostorinvdisCp.setPoint_code(one.getPoint_code());//入库点 + iostorinvdisCp.setPoint_name(one.getPoint_name()); + iostorinvdisCp.setStruct_id(structattr.getStruct_id()); + iostorinvdisCp.setStruct_code(structattr.getStruct_code()); + iostorinvdisCp.setStruct_name(structattr.getStruct_name()); + iostorinvdisCp.setSect_id(structattr.getSect_id()); + iostorinvdisCp.setSect_code(structattr.getSect_code()); + iostorinvdisCp.setSect_name(structattr.getSect_name()); + + iostorinvdisCp.setWork_status(IOSEnum.WORK_STATUS.code("生成")); + iostorinvdisCp.setStoragevehicle_id(""); + iostorinvdisCp.setStoragevehicle_code(row.getStoragevehicle_code()); + iostorinvdisCp.setStoragevehicle_type(""); + iostorinvdisCp.setQty_unit_id(row.getQty_unit_id()); + iostorinvdisCp.setQty_unit_name(row.getQty_unit_name()); iostorinvdisCp.setPlan_qty(new BigDecimal(row.getStorage_qty())); iostorinvdisCp.setReal_qty(iostorinvdisCp.getPlan_qty()); - iostorinvdisCp.setWork_status(IOSEnum.WORK_STATUS.code("生成")); - iostorinvdisCp.setPoint_code(structattr.getStruct_code()); //设置入库点 invdis.add(iostorinvdisCp); } } - iostorinvdtlCpService.batchInsert(invdtl); - iStIvtIostorinvdisdtlCpService.batchInsert(invdisdtl); - iostorinvdisCpService.batchInsert(invdis); + iostorinvdtlCpService.saveBatch(invdtl); +// iStIvtIostorinvdisdtlCpService.saveBatch(invdisdtl); + // 插入分配 StIvtStructattr stIvtStructattr = structattr; // 2.更新分配明细、分配、明细、主表 - updateDivIos(stIvtStructattr,new JSONObject(MapOf.of("iostorinv_id",stIvtIostorinvCp.getIostorinv_id(),"storagevehicle_code",item.getString("storagevehicle_code"),rows.get(i).getStoragevehicle_code())),stIvtIostorinvCp); + updateDivIos(stIvtStructattr,new JSONObject(MapOf.of("iostorinv_id",stIvtIostorinvCp.getIostorinv_id(),"storagevehicle_code",item.getString("storagevehicle_code"),rows.get(0).getStoragevehicle_code())),stIvtIostorinvCp); // 3.更新仓位状态 - 锁定 stIvtStructattr.setLock_type(IOSEnum.LOCK_TYPE.code("入库锁")); stIvtStructattr.setUpdate_id(SecurityUtils.getCurrentUserId()); @@ -369,49 +404,42 @@ public class PdaStCpInServiceImpl implements PdaStCpInService { stIvtStructattr.setInv_code(stIvtIostorinvCp.getBill_code()); structattrService.updateById(stIvtStructattr); // 4.更新库存 - Map> collect = iostorinvdisCpService.list( - new QueryWrapper().lambda() - .eq(StIvtIostorinvdisCp::getIostorinv_id, stIvtIostorinvCp.getIostorinv_id()) - .eq(StIvtIostorinvdisCp::getStoragevehicle_code, stIvtIostorinvCp) - ) - .stream() - .collect(Collectors.groupingBy(StIvtIostorinvdisCp::getIostorinvdtl_id)); - - for (List list : collect.values()) { - BigDecimal planqty = list - .stream() - .map(StIvtIostorinvdisCp::getReal_qty) - .reduce(BigDecimal.ZERO, BigDecimal::add); - - StIvtIostorinvdisCp disDao_1 = list.get(0); - disDao_1.setPlan_qty(planqty); - StIvtIostorinvdtlCp dtlDao = iostorinvdtlCpService.getById(disDao_1.getIostorinvdtl_id()); - JSONObject param = ivtDataParam(disDao_1, ChangeIvtUtil.ADDWAREHOUSING_QTY, dtlDao.getBase_billdtl_id()); + for (StIvtIostorinvdisCp dtlDao : invdis) { + JSONObject param = ivtDataParam(dtlDao, ChangeIvtUtil.ADDWAREHOUSING_QTY, orderDao==null?"":orderDao.getSale_id()); param.put("product_area", stIvtIostorinvCp.getProduct_area()); param.put("stor_id", stIvtIostorinvCp.getStor_id()); param.put("bill_code",stIvtIostorinvCp.getBill_code()); param.put("inv_id",stIvtIostorinvCp.getIostorinv_id()); + param.put("struct_id",structattr.getStruct_id()); param.put("bill_type_scode",stIvtIostorinvCp.getBill_type()); iStIvtStructivtCpService.UpdateIvt(param); -// iStIvtIostorinvCpService.setPoint(new JSONObject(MapOf.of("point_code",structattr.getStruct_code(),"iostorinvdis_id",iostorinvdisCp.getIostorinvdis_id()))); } + final String[] task_id = new String[1]; PointEvent event = PointEvent.builder() .type(AcsTaskEnum.TASK_STRUCT_CP_IN) .acs_task_type("8") .task_group_id(IdUtil.getStringId()) .point_code3(structattr.getStruct_code()) - .point_code1(structattr.getStruct_code()) - .vehicle_code(item.getString("point_code")) + .point_code1(item.getString("point_code")) + .vehicle_code(item.getString("storagevehicle_code")) .product_area("A1") // 暂时写死 -// .callback((Consumer) disDao::setTask_id) + .callback((Consumer) o -> task_id[0] =o) .build(); BussEventMulticaster.Publish(event); - // 2.调用PC成品入库服务设置起点 -// JSONObject paramTask = createTaskData(item); - // 2.调用PC成品入库服务下发任务 -// iStIvtIostorinvCpService.sendTask(paramTask); + for (StIvtIostorinvdisCp invdi : invdis) { + invdi.setTask_id(task_id[0]); } - return null; + iostorinvdisCpService.saveBatch(invdis); + tasks.add(task_id[0]); + } + List baseTasks = taskService.listByIds(tasks); + Map result = wmsToAcsService.issueTaskToAcs3(JSON.parseArray(JSON.toJSONString(baseTasks))); + if (!ObjectUtil.equal(MapUtil.getStr(result, "status"),"200")) { + throw new BadRequestException("下发失败:"+MapUtil.getStr(result, "message")); + } + taskService.update(new UpdateWrapper() + .set("task_status",TaskStatusEnum.ISSUE.getCode()).in("task_id",tasks)); + return null; } public JSONObject ivtDataParam(StIvtIostorinvdisCp disDao,String change_type,String sale_id) { diff --git a/mes/hd/nladmin-system/src/main/resources/ 成品初始化.sql b/mes/hd/nladmin-system/src/main/resources/ 成品初始化.sql index 667de25e..f0793cea 100644 --- a/mes/hd/nladmin-system/src/main/resources/ 成品初始化.sql +++ b/mes/hd/nladmin-system/src/main/resources/ 成品初始化.sql @@ -8,3 +8,5 @@ delete from st_ivt_iostorinvdis_cp; -- 出入库分配表 -- delete from st_ivt_iostorinvdisdtl_cp; -- 出入库分配明细表 -- delete from md_pb_bucketrecord; -- 箱记录表 -- delete from st_ivt_structivtflow_cp; -- 成品库存变动记录表 -- +-- 新增组盘记录表 -- +INSERT INTO `hl_one_mes`.`sys_menu`(`menu_id`, `pid`, `sub_count`, `type`, `title`, `component_name`, `component`, `menu_sort`, `icon`, `path`, `iframe`, `cache`, `hidden`, `permission`, `create_name`, `update_name`, `create_time`, `update_time`, `is_pc`, `system_type`, `create_id`, `category`, `update_id`) VALUES ('1973892464420851712', '1654661137377136640', 0, 2, '组盘记录', NULL, 'wms/storage_manage/product/bucketRecord/index', 999, 'codeConsole', 'productBucketRecord', 0, b'0', b'0', NULL, NULL, NULL, NULL, NULL, 1, '1', 1, NULL, NULL); diff --git a/mes/qd/src/views/wms/storage_manage/product/productIn/ViewDialog.vue b/mes/qd/src/views/wms/storage_manage/product/productIn/ViewDialog.vue index 0fa77c89..9fd58d9e 100644 --- a/mes/qd/src/views/wms/storage_manage/product/productIn/ViewDialog.vue +++ b/mes/qd/src/views/wms/storage_manage/product/productIn/ViewDialog.vue @@ -146,7 +146,7 @@ - +