|
@ -1,5 +1,6 @@ |
|
|
package org.nl.wms.sch.task_manage.task.tasks; |
|
|
package org.nl.wms.sch.task_manage.task.tasks; |
|
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.date.DateTime; |
|
|
import cn.hutool.core.date.DateUtil; |
|
|
import cn.hutool.core.date.DateUtil; |
|
|
import cn.hutool.core.util.IdUtil; |
|
|
import cn.hutool.core.util.IdUtil; |
|
|
import cn.hutool.core.util.ObjectUtil; |
|
|
import cn.hutool.core.util.ObjectUtil; |
|
@ -17,6 +18,8 @@ import org.nl.wms.mes.domain.QPMES065Request; |
|
|
import org.nl.wms.mes.domain.QPMES065RequestBody; |
|
|
import org.nl.wms.mes.domain.QPMES065RequestBody; |
|
|
import org.nl.wms.pdm.service.IPdmBdWorkorderService; |
|
|
import org.nl.wms.pdm.service.IPdmBdWorkorderService; |
|
|
import org.nl.wms.pdm.service.dao.PdmBdWorkorder; |
|
|
import org.nl.wms.pdm.service.dao.PdmBdWorkorder; |
|
|
|
|
|
import org.nl.wms.sch.data.service.dao.mapper.MaterialDataMapper; |
|
|
|
|
|
import org.nl.wms.sch.data.service.dto.MaterialDataDto; |
|
|
import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService; |
|
|
import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService; |
|
|
import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup; |
|
|
import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup; |
|
|
import org.nl.wms.sch.material.service.dao.Material; |
|
|
import org.nl.wms.sch.material.service.dao.Material; |
|
@ -40,9 +43,7 @@ import org.springframework.context.annotation.Lazy; |
|
|
import org.springframework.stereotype.Component; |
|
|
import org.springframework.stereotype.Component; |
|
|
|
|
|
|
|
|
import java.math.BigDecimal; |
|
|
import java.math.BigDecimal; |
|
|
import java.util.ArrayList; |
|
|
import java.util.*; |
|
|
import java.util.Arrays; |
|
|
|
|
|
import java.util.List; |
|
|
|
|
|
import java.util.stream.Collectors; |
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
@ -74,6 +75,8 @@ public class YCLCKTask extends AbstractTask { |
|
|
private PointMapper pointMapper; |
|
|
private PointMapper pointMapper; |
|
|
@Autowired |
|
|
@Autowired |
|
|
private MaterialMapper materialMapper; |
|
|
private MaterialMapper materialMapper; |
|
|
|
|
|
@Autowired |
|
|
|
|
|
private MaterialDataMapper materialDataMapper; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
@ -228,11 +231,10 @@ public class YCLCKTask extends AbstractTask { |
|
|
taskObj.setTask_status(TaskStatus.FINISHED.getCode()); |
|
|
taskObj.setTask_status(TaskStatus.FINISHED.getCode()); |
|
|
taskObj.setGroup_id(ObjectUtil.isNotEmpty(one)?one.getGroup_id():null); |
|
|
taskObj.setGroup_id(ObjectUtil.isNotEmpty(one)?one.getGroup_id():null); |
|
|
taskObj.setRemark("任务完成"); |
|
|
taskObj.setRemark("任务完成"); |
|
|
try { |
|
|
|
|
|
//todo 待确认具体传值
|
|
|
|
|
|
List<Material> materialList = materialMapper.selectList(new LambdaQueryWrapper<Material>() |
|
|
List<Material> materialList = materialMapper.selectList(new LambdaQueryWrapper<Material>() |
|
|
.eq(Material::getPalletSN, taskObj.getVehicle_code2()) |
|
|
.eq(Material::getPalletSN, taskObj.getVehicle_code2()) |
|
|
.eq(Material::getGroup_bind_material_status, GroupBindMaterialStatusEnum.BOUND.getValue())); |
|
|
.eq(Material::getGroup_bind_material_status, GroupBindMaterialStatusEnum.BOUND.getValue())); |
|
|
|
|
|
try { |
|
|
if (ObjectUtil.isNotEmpty(materialList)) { |
|
|
if (ObjectUtil.isNotEmpty(materialList)) { |
|
|
String url = "http://192.168.9.124/sitAppWebApi/PDSToWMS/Api/QPMES065"; |
|
|
String url = "http://192.168.9.124/sitAppWebApi/PDSToWMS/Api/QPMES065"; |
|
|
QPMES065Request qpmes065Request = new QPMES065Request(); |
|
|
QPMES065Request qpmes065Request = new QPMES065Request(); |
|
@ -246,7 +248,6 @@ public class YCLCKTask extends AbstractTask { |
|
|
QPMES065RequestBody qpmes065RequestBody=new QPMES065RequestBody(); |
|
|
QPMES065RequestBody qpmes065RequestBody=new QPMES065RequestBody(); |
|
|
double qty=0; |
|
|
double qty=0; |
|
|
for(Material material:materialList) { |
|
|
for(Material material:materialList) { |
|
|
|
|
|
|
|
|
qpmes065RequestBody.setMoname(extGroupData.getString("workorder_code")); |
|
|
qpmes065RequestBody.setMoname(extGroupData.getString("workorder_code")); |
|
|
qpmes065RequestBody.setLotSN(material.getPalletSN()); |
|
|
qpmes065RequestBody.setLotSN(material.getPalletSN()); |
|
|
qty+=Double.parseDouble(material.getQty()); |
|
|
qty+=Double.parseDouble(material.getQty()); |
|
@ -268,6 +269,39 @@ public class YCLCKTask extends AbstractTask { |
|
|
} catch (Exception e) { |
|
|
} catch (Exception e) { |
|
|
log.error("原材料出库上报MES失败{}", e.getMessage(), e); |
|
|
log.error("原材料出库上报MES失败{}", e.getMessage(), e); |
|
|
} |
|
|
} |
|
|
|
|
|
try{ |
|
|
|
|
|
Map<String, List<Material>> groupedBy = materialList.stream() |
|
|
|
|
|
.collect(Collectors.groupingBy(Material::getProductName)); |
|
|
|
|
|
|
|
|
|
|
|
if(ObjectUtil.isNotEmpty(groupedBy)) { |
|
|
|
|
|
Iterator<Map.Entry<String, List<Material>>> iterator = groupedBy.entrySet().iterator(); |
|
|
|
|
|
while (iterator.hasNext()) { |
|
|
|
|
|
Map.Entry<String, List<Material>> next = iterator.next(); |
|
|
|
|
|
List<Material> tempList = next.getValue(); |
|
|
|
|
|
Material material = tempList.get(0); |
|
|
|
|
|
double length = 0.0; |
|
|
|
|
|
double weight = 0.0; |
|
|
|
|
|
for (Material temp : tempList) { |
|
|
|
|
|
length += Double.parseDouble(temp.getIncomingLength()); |
|
|
|
|
|
weight += Double.parseDouble(temp.getIncomingWeight()); |
|
|
|
|
|
} |
|
|
|
|
|
MaterialDataDto materialDataDto = new MaterialDataDto(); |
|
|
|
|
|
materialDataDto.setSupplierCode(material.getSupplierCode()); |
|
|
|
|
|
materialDataDto.setSupplierName(material.getSupplierName()); |
|
|
|
|
|
materialDataDto.setProductName(material.getProductName()); |
|
|
|
|
|
materialDataDto.setSpecification(material.getSpecification()); |
|
|
|
|
|
materialDataDto.setPickingBatch(extGroupData.getString("batch")); |
|
|
|
|
|
materialDataDto.setBarLevel(material.getBarLevel()); |
|
|
|
|
|
materialDataDto.setLength(BigDecimal.valueOf(length)); |
|
|
|
|
|
materialDataDto.setWeight(BigDecimal.valueOf(weight)); |
|
|
|
|
|
materialDataDto.setCreateTime(new DateTime().toTimestamp()); |
|
|
|
|
|
materialDataDto.setType(2); |
|
|
|
|
|
materialDataMapper.insert(materialDataDto); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
}catch (Exception e){ |
|
|
|
|
|
log.error("原材料入库暂存入库数据失败{}",e.getMessage(),e); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
if (status.equals(TaskStatus.CANCELED)) { // 取消
|
|
|
if (status.equals(TaskStatus.CANCELED)) { // 取消
|
|
|
// 终点解锁
|
|
|
// 终点解锁
|
|
|