fix: 反馈MES泥料数据、砖块信息

This commit is contained in:
2024-10-29 09:27:12 +08:00
parent adf883c633
commit b1c131d4db
12 changed files with 85 additions and 7 deletions

View File

@@ -39,6 +39,7 @@ public class MdBaseBrickInfo implements Serializable {
private String grinding_number;
/** 实际重量 */
private String weight;

View File

@@ -33,7 +33,7 @@ public class BaseResponse implements Serializable {
private String responseDate;
/**
* 结果 200成功
* 结果 200成功|400异常其他定义
*/
private int code;

View File

@@ -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

View File

@@ -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

View File

@@ -89,5 +89,9 @@ public class MesMudConsumptionDto implements Serializable {
* 实际困料时间
*/
private BigDecimal SLEEP_TIME;
/**
* 数据类型1表示自动排料上传2表示冲突解绑上传
*/
private String DATA_FLAG;
}

View File

@@ -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());

View File

@@ -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);

View File

@@ -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);
/**
* 包装获取组盘信息
*

View File

@@ -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<>();

View File

@@ -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());
// 要把数据存到组盘表

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

View File

@@ -14,7 +14,7 @@
</template>
<script>
import Logo from '@/assets/images/logo2.png'
import Logo from '@/assets/images/ma.png'
import variables from '@/assets/styles/variables.scss'
export default {
name: 'SidebarLogo',