fix: 反馈MES泥料数据、砖块信息
This commit is contained in:
@@ -39,6 +39,7 @@ public class MdBaseBrickInfo implements Serializable {
|
||||
|
||||
private String grinding_number;
|
||||
|
||||
/** 实际重量 */
|
||||
private String weight;
|
||||
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@ public class BaseResponse implements Serializable {
|
||||
private String responseDate;
|
||||
|
||||
/**
|
||||
* 结果 200成功
|
||||
* 结果 200成功|400异常,(其他定义)
|
||||
*/
|
||||
private int code;
|
||||
|
||||
|
||||
@@ -735,6 +735,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
mesMudConsumptionDto.setSENDTIM(DateUtil.now());
|
||||
mesMudConsumptionDto.setCREATE_TM(DateUtil.now());
|
||||
mesMudConsumptionDto.setOP_FLAG(GeneralDefinition.NO);
|
||||
mesMudConsumptionDto.setDATA_FLAG("1");
|
||||
mesMudConsumptionDto.setSLEEP_TIME(CommonUtils.dTOAMinutes(one.getInstorage_time(), DateUtil.now()));
|
||||
log.info("泥料消耗上报参数:{}", mesMudConsumptionDto);
|
||||
// 反馈数据给acs
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
<insert id="insertMudConsumptionInfo" parameterType="org.nl.wms.ext.mes.service.dto.MesMudConsumptionDto">
|
||||
INSERT INTO "LMSTELCOM"."RECEIVE_MUDMATERIEL_OUT"( MSGID, PWORKSCHE_ID, OUT_FINNUM, PRESSUNIT, FBAGCODE, LOGT
|
||||
, SENDTIM
|
||||
, CREATE_TM, OP_FLAG, SLEEP_TIME)
|
||||
, CREATE_TM, OP_FLAG, SLEEP_TIME, DATA_FLAG)
|
||||
VALUES ( #{MSGID}, #{PWORKSCHE_ID}, #{OUT_FINNUM}, #{PRESSUNIT}, #{FBAGCODE}, #{LOGT}
|
||||
, #{SENDTIM}, #{CREATE_TM}, #{OP_FLAG}, #{SLEEP_TIME})
|
||||
, #{SENDTIM}, #{CREATE_TM}, #{OP_FLAG}, #{SLEEP_TIME}, #{DATA_FLAG})
|
||||
</insert>
|
||||
<insert id="insertProductData" parameterType="org.nl.wms.ext.mes.service.dto.MesProductDataDto">
|
||||
INSERT INTO "LMSTELCOM"."RECEIVE_R_SEMIPRODUCT"( MSGID, FORDER_NO, PWORKSCHE_ID, FPRODUCT_MATERIAL_ID
|
||||
|
||||
@@ -89,5 +89,9 @@ public class MesMudConsumptionDto implements Serializable {
|
||||
* 实际困料时间
|
||||
*/
|
||||
private BigDecimal SLEEP_TIME;
|
||||
/**
|
||||
* 数据类型:1表示自动排料上传,2表示冲突解绑上传
|
||||
*/
|
||||
private String DATA_FLAG;
|
||||
|
||||
}
|
||||
|
||||
@@ -33,6 +33,7 @@ import org.springframework.scheduling.annotation.Async;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -564,10 +565,15 @@ public class WmsToMesServiceImpl implements WmsToMesService {
|
||||
throw new BadRequestException("工单不存在,上报MES失败");
|
||||
}
|
||||
MdBaseMaterial material = mdBaseMaterialService.getById(workorder.getMaterial_id());
|
||||
String singleWeight = material.getSingle_weight();
|
||||
String singleWeight = brickInfo.getWeight();
|
||||
String volume = brickInfo.getVolume();
|
||||
double w = Double.parseDouble(singleWeight);
|
||||
double v = Double.parseDouble(volume);
|
||||
// 计算 w / v 并乘以 1000
|
||||
double result = v == 0 ? 0 : (w / v) * 1000;
|
||||
// 使用 BigDecimal 保留3位小数
|
||||
BigDecimal bd = new BigDecimal(result);
|
||||
bd = bd.setScale(3, RoundingMode.HALF_UP);
|
||||
MesQSPressMonitorData monitorData = new MesQSPressMonitorData();
|
||||
monitorData.setBRICK_ID(brickInfo.getBrick_id());
|
||||
monitorData.setGET_STATION(device.getExt_point_code());
|
||||
@@ -588,7 +594,8 @@ public class WmsToMesServiceImpl implements WmsToMesService {
|
||||
monitorData.setMATERIAL_NAME(material.getMaterial_name());
|
||||
monitorData.setMATERIAL_SPEC(material.getMaterial_spec());
|
||||
monitorData.setMATERIAL_MODEL(material.getMaterial_model());
|
||||
monitorData.setMACHINE_WET(String.valueOf(v == 0 ? "0" : (w / v)));
|
||||
monitorData.setMACHINE_WET(bd.toString());
|
||||
log.info("计算实时重量:{} / 体积:{} = {}", w, v, monitorData.getMACHINE_WET());
|
||||
monitorData.setUNQUALIFIED_QTY(brickInfo.getUnqualified_qty());
|
||||
monitorData.setWORKORDER_CODE(brickInfo.getWorkorder_code());
|
||||
monitorData.setCREATE_TM(DateUtil.now());
|
||||
|
||||
@@ -193,6 +193,9 @@ public class PdmBdWorkorderServiceImpl extends ServiceImpl<PdmBdWorkorderMapper,
|
||||
|
||||
@Override
|
||||
public PdmBdWorkorder getByCode(String orderCode) {
|
||||
if (orderCode == null) {
|
||||
return null;
|
||||
}
|
||||
LambdaQueryWrapper<PdmBdWorkorder> lam = new QueryWrapper<PdmBdWorkorder>().lambda();
|
||||
lam.eq(PdmBdWorkorder::getWorkorder_code, orderCode);
|
||||
return pdmBdWorkorderMapper.selectOne(lam);
|
||||
|
||||
@@ -100,6 +100,14 @@ public interface ISchBaseVehiclematerialgroupService extends IService<SchBaseVeh
|
||||
*/
|
||||
void unBindingSameVehicleMaterial(String vehicleCode, String vehicleType);
|
||||
|
||||
/**
|
||||
* 泥料解绑同载具的信息并上传MES
|
||||
*
|
||||
* @param vehicleCode
|
||||
* @param vehicleType
|
||||
*/
|
||||
void unBindingSameVehicleMaterialToMes(String vehicleCode, String vehicleType);
|
||||
|
||||
/**
|
||||
* 包装获取组盘信息
|
||||
*
|
||||
|
||||
@@ -12,16 +12,24 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.common.domain.query.PageQuery;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.wms.ext.mes.service.WmsToMesService;
|
||||
import org.nl.wms.ext.mes.service.dto.MesMudConsumptionDto;
|
||||
import org.nl.wms.pdm.workorder.service.IPdmBdWorkorderService;
|
||||
import org.nl.wms.pdm.workorder.service.dao.PdmBdWorkorder;
|
||||
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.mapper.SchBaseVehiclematerialgroupMapper;
|
||||
import org.nl.wms.sch.group.service.dto.SchBaseVehiclematerialgroupQuery;
|
||||
import org.nl.wms.sch.point.service.ISchBasePointService;
|
||||
import org.nl.wms.sch.point.service.dao.SchBasePoint;
|
||||
import org.nl.wms.sch.task_manage.GeneralDefinition;
|
||||
import org.nl.wms.sch.task_manage.enums.GroupBindMaterialStatusEnum;
|
||||
import org.nl.wms.util.CommonUtils;
|
||||
import org.nl.wms.util.TaskUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
@@ -37,6 +45,12 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl<SchBaseV
|
||||
|
||||
@Autowired
|
||||
private SchBaseVehiclematerialgroupMapper vehiclematerialgroupMapper;
|
||||
@Autowired
|
||||
private IPdmBdWorkorderService workorderService;
|
||||
@Autowired
|
||||
private ISchBasePointService pointService;
|
||||
@Autowired
|
||||
private WmsToMesService wmsToMesService;
|
||||
|
||||
@Override
|
||||
public IPage<SchBaseVehiclematerialgroup> queryAll(SchBaseVehiclematerialgroupQuery whereJson, PageQuery page) {
|
||||
@@ -142,6 +156,46 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl<SchBaseV
|
||||
this.updateBatchById(list);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unBindingSameVehicleMaterialToMes(String vehicleCode, String vehicleType) {
|
||||
LambdaQueryWrapper<SchBaseVehiclematerialgroup> lambda = new QueryWrapper<SchBaseVehiclematerialgroup>().lambda();
|
||||
lambda.eq(SchBaseVehiclematerialgroup::getVehicle_code, vehicleCode)
|
||||
.eq(SchBaseVehiclematerialgroup::getVehicle_type, vehicleType)
|
||||
// 不是解绑的
|
||||
.ne(SchBaseVehiclematerialgroup::getGroup_bind_material_status, GroupBindMaterialStatusEnum.UNBOUND.getValue())
|
||||
.eq(SchBaseVehiclematerialgroup::getIs_delete, false);
|
||||
List<SchBaseVehiclematerialgroup> list = vehiclematerialgroupMapper.selectList(lambda);
|
||||
list.forEach(schBaseVehiclematerialgroup -> {
|
||||
String workorderCode = schBaseVehiclematerialgroup.getWorkorder_code();
|
||||
PdmBdWorkorder order = workorderService.getByCode(workorderCode);
|
||||
// 上报MES 记录泥料
|
||||
MesMudConsumptionDto mesMudConsumptionDto = new MesMudConsumptionDto();
|
||||
mesMudConsumptionDto.setMSGID(IdUtil.getSnowflake(1, 1).nextIdStr());
|
||||
mesMudConsumptionDto.setPWORKSCHE_ID(workorderCode);
|
||||
mesMudConsumptionDto.setOUT_FINNUM(schBaseVehiclematerialgroup.getMaterial_weight());
|
||||
if (ObjectUtil.isNotEmpty(order)) {
|
||||
SchBasePoint devicePoint = pointService.getById(order.getPoint_code());
|
||||
mesMudConsumptionDto.setPRESSUNIT(devicePoint.getExt_point_code());
|
||||
} else {
|
||||
mesMudConsumptionDto.setPRESSUNIT("-");
|
||||
}
|
||||
mesMudConsumptionDto.setFBAGCODE(schBaseVehiclematerialgroup.getPcsn());
|
||||
mesMudConsumptionDto.setLOGT("配料仓");
|
||||
mesMudConsumptionDto.setSENDTIM("-");
|
||||
mesMudConsumptionDto.setCREATE_TM(schBaseVehiclematerialgroup.getCreate_time());
|
||||
mesMudConsumptionDto.setOP_FLAG(GeneralDefinition.NO);
|
||||
mesMudConsumptionDto.setSLEEP_TIME(BigDecimal.valueOf(0));
|
||||
mesMudConsumptionDto.setDATA_FLAG("2");
|
||||
log.info("泥料消耗上报参数:{}", mesMudConsumptionDto);
|
||||
// 回传给mes系统
|
||||
wmsToMesService.reportMudConsumption(mesMudConsumptionDto);
|
||||
schBaseVehiclematerialgroup.setRemark("冲突解绑");
|
||||
schBaseVehiclematerialgroup.setGroup_bind_material_status(GroupBindMaterialStatusEnum.UNBOUND.getValue());
|
||||
TaskUtils.setGroupUpdateByAcs(schBaseVehiclematerialgroup);
|
||||
});
|
||||
this.updateBatchById(list);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SchBaseVehiclematerialgroup getOneByVehicleCode(String vehicleCode, String value) {
|
||||
List<String> list = new ArrayList<>();
|
||||
|
||||
@@ -336,7 +336,7 @@ public class HNMLTask extends AbstractTask {
|
||||
// 找到相同组盘信息就直接返回id,避免任务取消组盘信息还存在,重复插入
|
||||
// 找到不直接返回,用那条数据进行修改
|
||||
// 解绑同载具的信息
|
||||
vehiclematerialgroupService.unBindingSameVehicleMaterial(vehicleCode, vehicleType);
|
||||
vehiclematerialgroupService.unBindingSameVehicleMaterialToMes(vehicleCode, vehicleType);
|
||||
SchBaseVehiclematerialgroup groupEntity = new SchBaseVehiclematerialgroup();
|
||||
groupEntity.setGroup_id(IdUtil.getSnowflake(1, 1).nextIdStr());
|
||||
// 要把数据存到组盘表
|
||||
|
||||
Reference in New Issue
Block a user