SPS物料拉动 1.新增拉动单+明细+2.提供给设备webSrevice接口

tags/yfai-mes-ext-v2.3
gsz 8 months ago
parent bb2773685e
commit b69151daa1

@ -0,0 +1,15 @@
package cn.estsh.i3plus.ext.mes.api.base;
import cn.estsh.i3plus.pojo.mes.bean.MesPullingOrderInfo;
import java.util.Map;
/**
* @Description:
* @CreateDate 2024/04/16
* @Author mingliang.li
*/
public interface IMesPullingOrderInfoService extends IBaseMesService<MesPullingOrderInfo> {
Map doSPSForEquipment( String assemblyLine, String pullingGroupCode,String organizeCode );
}

@ -0,0 +1,13 @@
package cn.estsh.i3plus.ext.mes.api.base;
import cn.estsh.i3plus.pojo.mes.bean.MesPullingOrderPartInfo;
/**
* @Description:
* @CreateDate 2024/04/16
* @Author mingliang.li
*/
public interface IMesPullingOrderPartInfoService extends IBaseMesService<MesPullingOrderPartInfo> {
}

@ -0,0 +1,20 @@
package cn.estsh.i3plus.ext.mes.apiservice.model;
import lombok.Data;
/**
* @Description : SpsInfo
* @Author :gsz
* @Date 2024/8/30 9:16
* @Modify
**/
@Data
public class SpsInfo {
//产线
private String assemblyLine;
//拉动单号
private String pullingGroupCode;
//工厂号
private String organizeCode ;
}

@ -0,0 +1,100 @@
package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base;
import cn.estsh.i3plus.ext.mes.api.base.IMesPartPullService;
import cn.estsh.i3plus.ext.mes.api.base.IMesPullingOrderInfoService;
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.base.util.StringUtil;
import cn.estsh.i3plus.pojo.mes.bean.MesPartPull;
import cn.estsh.i3plus.pojo.mes.bean.MesPullingOrderInfo;
import cn.estsh.i3plus.pojo.mes.repository.MesPullingOrderPartInfoRepository;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import cn.estsh.impp.framework.boot.auth.AuthUtil;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.util.ValidatorBean;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
@Slf4j
public class MesPullingOrderInfoService extends BaseMesService<MesPullingOrderInfo> implements IMesPullingOrderInfoService {
@Autowired
private MesPullingOrderPartInfoRepository mesPullingOrderPartInfoRepository;
protected void setPackQueryBean(MesPullingOrderInfo bean, DdlPackBean packBean) {
DdlPreparedPack.getStringEqualPack(bean.getPullCode(), "pullCode", packBean);
DdlPreparedPack.getStringEqualPack(bean.getPullingOrderNo(), "pullingOrderNo", packBean);
DdlPreparedPack.getStringEqualPack(bean.getWorkCenterCode(), "workCenterCode", packBean);
DdlPreparedPack.getStringEqualPack(bean.getWorkOrderNo(), "workOrderNo", packBean);
DdlPreparedPack.getStringLikerPack(bean.getPartNo(), "partNo", packBean);
}
@Override
public void validateImport(List<MesPullingOrderInfo> beanList) {
for (MesPullingOrderInfo item : beanList) {
// 数据校验
ValidatorBean.checkNotNull(item.getPullCode(), "拉动组代码不能为空");
ValidatorBean.checkNotNull(item.getWorkCenterCode(), "产线代码不能为空");
DdlPackBean seriesPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(item.getPullCode(), "pullCode", seriesPackBean);
DdlPreparedPack.getStringEqualPack(item.getWorkOrderNo(), "workOrderNo", seriesPackBean);
DdlPreparedPack.getStringEqualPack(item.getWorkCenterCode(), "workCenterCode", seriesPackBean);
boolean flg = baseRDao.isExitByHql(seriesPackBean);
if (flg) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("工单【%s】拉动组代码【%s】已经存在请检查数据", item.getWorkOrderNo(), item.getPullCode())
.build();
}
}
}
@Override
public Map doSPSForEquipment(String assemblyLine, String pullingGroupCode, String organizeCode) {
Map resultMap = new HashMap();
//查询拉动单状态为已扫描=20的 拉动单
DdlPackBean seriesPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(pullingGroupCode, "pullCode", seriesPackBean);
DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.PULL_ORDER_STATUS.SPS_PULL.getValue(), "pullOrderStatus", seriesPackBean);
DdlPreparedPack.getStringEqualPack(assemblyLine, "workCenterCode", seriesPackBean);
seriesPackBean.setWhereAppend(seriesPackBean.getWhereAppend() + " order by modifyDatetime desc");
MesPullingOrderInfo mesPullingOrder = baseRDao.getByProperty(seriesPackBean);
if (StringUtil.isEmpty(mesPullingOrder)) {
resultMap.put("success", false);
String message = "产线" + assemblyLine + "拉动组" + pullingGroupCode + "数据为空,请检查数据";
resultMap.put("message", message);
return resultMap;
}
DdlPackBean partPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(pullingGroupCode, "pullCode", partPackBean);
partPackBean.setWhereAppend(partPackBean.getWhereAppend() + " order by modifyDatetime desc");
List<MesPullingOrderInfo> byHqlWhere = mesPullingOrderPartInfoRepository.findByHqlWhere(partPackBean);
resultMap.put("",mesPullingOrder);
resultMap.put("success", true);
String message ="更新SPS状态成功已发送SPS信息给设备! id:"+mesPullingOrder.getId()+ "Code:" + mesPullingOrder.getPullingOrderNo() + "产线" + assemblyLine + "拉动组" + pullingGroupCode + "";
resultMap.put("message", message);
//更新主表状态 源系统为25配料完成 现在-【已发送设备-30】
mesPullingOrder.setPullOrderStatus(MesExtEnumUtil.PULL_ORDER_STATUS.SPS_PULL.getValue());
ConvertBean.serviceModelUpdate(mesPullingOrder, "WS.SPS");
baseRDao.update(mesPullingOrder);
return resultMap;
}
}

@ -0,0 +1,55 @@
package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base;
import cn.estsh.i3plus.ext.mes.api.base.IMesPullingOrderInfoService;
import cn.estsh.i3plus.ext.mes.api.base.IMesPullingOrderPartInfoService;
import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.mes.bean.MesPullingOrderInfo;
import cn.estsh.i3plus.pojo.mes.bean.MesPullingOrderPartInfo;
import cn.estsh.i3plus.pojo.mes.repository.MesPullingOrderPartInfoRepository;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.util.ValidatorBean;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
@Slf4j
public class MesPullingOrderPartInfoService extends BaseMesService<MesPullingOrderPartInfo> implements IMesPullingOrderPartInfoService {
protected void setPackQueryBean(MesPullingOrderPartInfo bean, DdlPackBean packBean) {
DdlPreparedPack.getStringEqualPack(bean.getPullCode(), "pullCode", packBean);
DdlPreparedPack.getStringEqualPack(bean.getWorkCellCode(), "workCellCode", packBean);
DdlPreparedPack.getStringEqualPack(bean.getWorkOrderNo(), "workOrderNo", packBean);
DdlPreparedPack.getStringLikerPack(bean.getPartNo(), "partNo", packBean);
}
@Override
public void validateImport(List<MesPullingOrderPartInfo> beanList) {
for (MesPullingOrderPartInfo item : beanList) {
// 数据校验
ValidatorBean.checkNotNull(item.getPullCode(), "拉动组代码不能为空");
ValidatorBean.checkNotNull(item.getPartNo(), "物料代码不能为空");
DdlPackBean seriesPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(item.getPullCode(), "pullCode", seriesPackBean);
DdlPreparedPack.getStringEqualPack(item.getWorkOrderNo(), "workOrderNo", seriesPackBean);
DdlPreparedPack.getStringEqualPack(item.getPartNo(), "partNo", seriesPackBean);
boolean flg = baseRDao.isExitByHql(seriesPackBean);
if (flg) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("工单【%s】拉动组代码【%s】物料号【%s】已经存在请检查数据",
item.getWorkOrderNo(), item.getPullCode(), item.getPartNo())
.build();
}
}
}
}

@ -0,0 +1,34 @@
package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.webservice;
import cn.estsh.i3plus.ext.mes.apiservice.model.SpsInfo;
import cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base.MesPullingOrderInfoService;
import cn.estsh.impp.framework.boot.util.SpringContextsUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import java.util.Map;
/**
* @Description : WebServiceServerSPS
* @Author :gsz
* @Date 2024/8/30 9:18
* @Modify
**/
//@WebService(targetNamespace = "http://yfaiesb/services/ServiceSyncMaximoInstrument")
@WebService(targetNamespace = "http://tempuri.org/services/SyncSPSForEquipmentService")
public class WebServiceServerSPS {
public static final Logger LOGGER = LoggerFactory.getLogger(WebServiceServerSPS.class);
@WebMethod(action = "SyncSPSForEquipmentService", operationName = "SyncSPSForEquipmentService")
public Map syncSPSForEquipment(@WebParam(name = "info") SpsInfo spsInfo) {
LOGGER.info("syncSPSForEquipment主数据:{}", spsInfo);
MesPullingOrderInfoService bean = (MesPullingOrderInfoService) SpringContextsUtil.getBean("mesPullingOrderInfoService");
return bean.doSPSForEquipment(spsInfo.getAssemblyLine(),spsInfo.getPullingGroupCode(),spsInfo.getOrganizeCode());
}
}
Loading…
Cancel
Save