展示组件

tags/yfai-pcn-ext-v1.0
微笑着面对明天 1 year ago
parent 4fe47f60a5
commit 9b761d52f7

@ -3,6 +3,7 @@ package cn.estsh.i3plus.ext.mes.pcn.api.busi;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.*;
import cn.estsh.i3plus.pojo.mes.bean.MesPart;
import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn;
import cn.estsh.i3plus.pojo.mes.bean.MesRawPartCharging;
import cn.estsh.i3plus.pojo.mes.model.StationKvBean;
import cn.estsh.i3plus.pojo.mes.model.StationRequestBean;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
@ -173,16 +174,16 @@ public interface IMesProductionDispatchContextStepService {
void deleteProdRuleDataContext(StationRequestBean reqBean);
@ApiOperation(value = "获取上下文班次班组信息")
List<StationKvBean> getProdShiftDataContext(StationRequestBean reqBean, String workCenterCode);
List<StationKvBean> getProdShiftDataContext(String orgainzeCode, String workCenterCode);
@ApiOperation(value = "验证上下文班次班组信息是否存在")
Boolean checkProdShiftDataIsExistContext(StationRequestBean reqBean, String workCenterCode);
Boolean checkProdShiftDataIsExistContext(String orgainzeCode, String workCenterCode);
@ApiOperation(value = "保存上下文班次班组信息", notes = "[JSON]List<StationKvBean>")
Boolean saveProdShiftDataContext(StationRequestBean reqBean, String workCenterCode, List<StationKvBean> prodShiftDatList);
Boolean saveProdShiftDataContext(String orgainzeCode, String workCenterCode, List<StationKvBean> prodShiftDatList);
@ApiOperation(value = "删除上下文班次班组信息")
void deleteProdShiftDataContext(StationRequestBean reqBean, String workCenterCode);
void deleteProdShiftDataContext(String orgainzeCode, String workCenterCode);
@ApiOperation(value = "获取上下文工位加工数统计信息")
List<StationKvBean> getProductionStatisticsContext(StationRequestBean reqBean);
@ -190,9 +191,14 @@ public interface IMesProductionDispatchContextStepService {
@ApiOperation(value = "保存上下文工位加工数统计信息", notes = "[JSON]List<StationKvBean>")
Boolean saveProductionStatisticsContext(StationRequestBean reqBean, List<StationKvBean> prodShiftDatList);
@ApiOperation(value = "新增上下文工位加工数统计信息")
Boolean addProductionStatisticsContext(StationRequestBean reqBean, int count);
@ApiOperation(value = "删除上下文工位加工数统计信息")
void deleteProductionStatisticsContext(StationRequestBean reqBean);
MesProdShiftContext getMesProdShiftKvBean(String orgainzeCode, String workCenterCode);
@ -220,4 +226,14 @@ public interface IMesProductionDispatchContextStepService {
@ApiOperation(value = "删除上下文产出条码数据信息集合")
void deleteOutProduceSnDataContext(StationRequestBean reqBean);
@ApiOperation(value = "获取料桶原材料数据集合")
List<MesRawPartCharging> getMesRawPartChargingDataContext(StationRequestBean reqBean);
@ApiOperation(value = "保存料桶原材料数据集合", notes = "[JSON]List<MesRawPartCharging>")
Boolean saveMesRawPartChargingDataContext(StationRequestBean reqBean, List<MesRawPartCharging> mesRawPartChargingList);
@ApiOperation(value = "删除料桶原材料数据集合")
void deleteMesRawPartChargingDataContext(StationRequestBean reqBean);
}

@ -1,20 +1,29 @@
package cn.estsh.i3plus.ext.mes.pcn.apiservice.controller.busi;
import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesProdShiftRecordService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionDispatchContextStepService;
import cn.estsh.i3plus.ext.mes.pcn.pojo.constant.MesCommonConstant;
import cn.estsh.i3plus.mes.pcn.util.StationKvBeanUtil;
import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
import cn.estsh.i3plus.pojo.mes.bean.MesProdShiftRecord;
import cn.estsh.i3plus.pojo.mes.model.StationKvBean;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import cn.estsh.impp.framework.boot.auth.AuthUtil;
import cn.estsh.impp.framework.boot.exception.ImppBusiException;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.util.ResultBean;
import cn.estsh.impp.framework.boot.util.ValidatorBean;
import com.google.common.base.Objects;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
/**
* @Description:
* @Author: gsz
@ -27,6 +36,8 @@ public class MesProdShiftRecordController {
@Autowired
private IMesProdShiftRecordService mesProdShiftRecordService;
@Autowired
private IMesProductionDispatchContextStepService mesProductionDispatchContextStepService;
@GetMapping("/query-pager")
@ApiOperation(value = "查询开关班记录")
public ResultBean queryMesProdShiftRecordByPager(MesProdShiftRecord mesProdShiftRecord, Pager pager) {
@ -54,6 +65,11 @@ public class MesProdShiftRecordController {
mesProdShiftRecordService.insertMesProdShiftRecord(item, AuthUtil.getOrganizeCode());
List<StationKvBean> getProdShiftData = getProdShiftData(item);
mesProductionDispatchContextStepService.saveProdShiftDataContext(item.getOrganizeCode(), item.getWorkCenterCode(), getProdShiftData);
return ResultBean.success("保存开关班记录成功");
} catch (ImppBusiException imppException) {
return ResultBean.fail(imppException);
@ -73,6 +89,11 @@ public class MesProdShiftRecordController {
ValidatorBean.checkNotNull(item.getShiftGroup(), "shiftGroup不能为空");
mesProdShiftRecordService.saveMesProdShiftRecord(item, AuthUtil.getOrganizeCode());
if (Objects.equal(MesExtEnumUtil.WORK_STATUS.END.getValue(), item.getWorkStatus())) {
mesProductionDispatchContextStepService.deleteProdShiftDataContext(item.getOrganizeCode(), item.getWorkCenterCode());
}
return ResultBean.success("保存开关班记录成功");
} catch (ImppBusiException imppException) {
return ResultBean.fail(imppException);
@ -95,4 +116,12 @@ public class MesProdShiftRecordController {
return ResultBean.fail(e);
}
}
//封装展示组件班组班次内容
private List<StationKvBean> getProdShiftData(MesProdShiftRecord record) {
return StationKvBeanUtil.addStationKvBeanList(new ArrayList<>(),
new StationKvBean("shiftGroup", "班组", record.getShiftGroup()),
new StationKvBean("shiftCode", "班次", record.getShiftCode()));
}
}

@ -2,22 +2,32 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.station;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionDispatchContextStepService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepService;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesCellEquipContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionProcessContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseModuleService;
import cn.estsh.i3plus.mes.pcn.util.StationKvBeanUtil;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil;
import cn.estsh.i3plus.pojo.mes.bean.MesStateMachineStatus;
import cn.estsh.i3plus.pojo.mes.bean.MesWorkCell;
import cn.estsh.i3plus.pojo.mes.model.AttrBean;
import cn.estsh.i3plus.pojo.mes.model.StationKvBean;
import cn.estsh.i3plus.pojo.mes.model.StationRequestBean;
import cn.estsh.i3plus.pojo.mes.model.StationResultBean;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import cn.estsh.i3plus.pojo.mes.util.PojoAttrUtil;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import com.google.common.base.Objects;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @Description :
@ -33,21 +43,47 @@ public class MesProductionNoSortModuleService extends BaseModuleService {
@Autowired
private IMesProductionDispatchContextStepService mesProductionDispatchContextStepService;
@Override
public void init(StationRequestBean reqBean) {
// 获取工单信息
List<List<StationKvBean>> moduleContentContext = mesProductionDispatchContextStepService.getModuleContentContext(reqBean);
StationResultBean resultBean = getStationResultBean(reqBean, moduleContentContext);
StationResultBean resultBean1 = getStationResultBean1(reqBean);
//获取上下文信息
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getEquipmentVariableList(reqBean, MesExtEnumUtil.EQUIP_VARIABLE_TYPE.PRODUCTION.getValue());
MesWorkCell mesWorkCell = productionProcessContext.getWorkCell();
// 获取班次信息
List<StationKvBean> prodShiftDataContext = mesProductionDispatchContextStepService.getProdShiftDataContext(reqBean.getOrganizeCode(), reqBean.getWorkCenterCode());
if (CollectionUtils.isEmpty(prodShiftDataContext)) {
this.sendMessage(reqBean, new StationResultBean().writeDbLog(), "请先开班", MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.TEXT);
throw ImppExceptionBuilder.newInstance().setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode()).setErrorCode("NO_SHOW_MSG").build();
}
// 发送班次班组和工单
StationResultBean resultBean = getStationResultBean(reqBean, moduleContentContext, prodShiftDataContext);
this.sendMessage(reqBean, resultBean);
// 整合班次加工数量
List<StationKvBean> shiftCountContext = new ArrayList<>();
if (mesWorkCell.getIsShowMsg() != null && Objects.equal(MesExtEnumUtil.WORK_FILE_TYPE.HISTOGRAM.getValue(),mesWorkCell.getIsShowMsg())) {
List<StationKvBean> productionStatisticsContext = mesProductionDispatchContextStepService.getProductionStatisticsContext(reqBean);
StationResultBean shiftCountBean = getStationResultBean(reqBean, productionStatisticsContext);
this.sendMessage(reqBean, shiftCountBean);
}
}
private StationResultBean getStationResultBean(StationRequestBean reqBean, List<List<StationKvBean>> moduleContentContext) {
private StationResultBean getStationResultBean(StationRequestBean reqBean, List<List<StationKvBean>> moduleContentContext, List<StationKvBean> prodShiftDataContext) {
StationResultBean resultBean = new StationResultBean();
resultBean.setBusiType(MesPcnEnumUtil.STATION_BUSI_TYPE.MODULE_CONTENT.getValue());
resultBean.setDataType(MesPcnEnumUtil.STATION_DATA_TYPE.CUSTOM.getValue());
resultBean.setCustomPageName(MesPcnExtConstWords.CUSTOM_PAGE_NAME_DEFAULT);
resultBean.setSpecialDisplayData(getStepColIndent(reqBean));
/*
List<StationKvBean> stationKvBeans3 = new ArrayList<>();
StationKvBean stationKvBean7 = new StationKvBean();
@ -60,14 +96,14 @@ public class MesProductionNoSortModuleService extends BaseModuleService {
stationKvBean8.setKey("shiftGroup");
stationKvBean8.setName("班组");
stationKvBean8.setValue("注塑2班");
stationKvBeans3.add(stationKvBean8);
stationKvBeans3.add(stationKvBean8);*/
resultBean.setResultObj(stationKvBeans3);
resultBean.setResultObj(prodShiftDataContext);
resultBean.setResultList(moduleContentContext);
return resultBean;
}
private StationResultBean getStationResultBean1(StationRequestBean reqBean) {
private StationResultBean getStationResultBean(StationRequestBean reqBean, List<StationKvBean> productionStatisticsContext) {
StationResultBean resultBean = new StationResultBean();
resultBean.setBusiType(MesPcnEnumUtil.STATION_BUSI_TYPE.MODULE_CUSTOM_CONTENT.getValue());
resultBean.setDataType(MesPcnEnumUtil.STATION_DATA_TYPE.ECHART.getValue());
@ -75,51 +111,7 @@ public class MesProductionNoSortModuleService extends BaseModuleService {
resultBean.setDataAttrList(packDataAttrList());
resultBean.setSpecialDisplayData(getStepColIndent(reqBean));
List<List<StationKvBean>> stationKvBeansList = new ArrayList<>();
List<StationKvBean> stationKvBeans = new ArrayList<>();
StationKvBean stationKvBean = new StationKvBean();
stationKvBean.setKey("orderNo");
stationKvBean.setName("工单号");
stationKvBean.setValue("11111");
stationKvBeans.add(stationKvBean);
StationKvBean stationKvBean1 = new StationKvBean();
stationKvBean1.setKey("partNo");
stationKvBean1.setName("零件号");
stationKvBean1.setValue("111");
stationKvBeans.add(stationKvBean1);
StationKvBean stationKvBean2 = new StationKvBean();
stationKvBean2.setKey("count");
stationKvBean2.setName("单数");
stationKvBean2.setValue("1111");
stationKvBeans.add(stationKvBean2);
stationKvBeansList.add(stationKvBeans);
List<StationKvBean> stationKvBeans1 = new ArrayList<>();
StationKvBean stationKvBean4 = new StationKvBean();
stationKvBean4.setKey("orderNo");
stationKvBean4.setName("工单号");
stationKvBean4.setValue("11111");
stationKvBeans1.add(stationKvBean4);
StationKvBean stationKvBean5 = new StationKvBean();
stationKvBean5.setKey("partNo");
stationKvBean5.setName("零件号");
stationKvBean5.setValue("111");
stationKvBeans1.add(stationKvBean5);
StationKvBean stationKvBean6 = new StationKvBean();
stationKvBean6.setKey("count");
stationKvBean6.setName("单数");
stationKvBean6.setValue("1111");
stationKvBeans1.add(stationKvBean6);
stationKvBeansList.add(stationKvBeans1);
//resultBean.setResultObj(stationKvBeans3);
resultBean.setResultList(stationKvBeansList);
resultBean.setResultList(productionStatisticsContext);
return resultBean;
}
private List<AttrBean> packDataAttrList() {

@ -0,0 +1,132 @@
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesEquipVariableRwExtService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionDispatchContextStepService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepService;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesCellEquipContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionProcessContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.mes.bean.*;
import cn.estsh.i3plus.pojo.mes.model.MesEquipVariableRwResult;
import cn.estsh.i3plus.pojo.mes.model.StationRequestBean;
import cn.estsh.i3plus.pojo.mes.model.StationResultBean;
import cn.estsh.i3plus.pojo.mes.model.StepResult;
import cn.estsh.i3plus.pojo.mes.repository.MesRawPackageDetailRepository;
import cn.estsh.i3plus.pojo.mes.repository.MesRawPackagePartRepository;
import cn.estsh.i3plus.pojo.mes.repository.MesRawPartChargingRepository;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Optional;
/**
* @Description :
* @Author : wangjie
**/
@Slf4j
@Service("mesMaterialReadStepService")
public class MesMaterialReadStepService extends BaseStepService {
@Autowired
private IMesProductionProcessContextStepService productionProcessContextStepService;
@Autowired
private IMesProductionDispatchContextStepService productionDispatchContextStepService;
@Autowired
private MesRawPackageDetailRepository mesRawPackageDeatilRepository;
@Autowired
private MesRawPartChargingRepository mesRawPartChargingRepository;
@Override
public StepResult execute(StationRequestBean reqBean) {
StationResultBean resultBean = new StationResultBean();
StepResult stepResult = StepResult.getSuccessComplete();
//获取工步参数
Optional<Map<String, MesProdRouteOptParam>> stepParamMap = getStepParams(reqBean);
//获取上下文信息
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean, stepParamMap);
String equipmentCode = productionProcessContext.getCurCellEquip().getEquipmentCode();
// 根据设备id获取加料日志
DdlPackBean packBean = DdlPackBean.getDdlPackBean();
DdlPreparedPack.getStringEqualPack(equipmentCode, "equipCode", packBean);
MesRawPackageDetail mesRawPackageDetail = mesRawPackageDeatilRepository.getByProperty(packBean);
if (mesRawPackageDetail == null) {
foundExThrow(reqBean, "原材料容器信息未配置");
}
/**
*
*/
List<MesRawPartCharging> list = getListByParentDetailId(mesRawPackageDetail.getId());
/**
* todo
*/
/*MesRawPartCharging mesRawPartCharging = getRawPackByDetailId(mesRawPackageDetail.getId());
if (mesRawPackageDetail == null) {
foundExThrow(reqBean, "料桶信息不存在");
}
//
list.add(mesRawPartCharging);*/
productionDispatchContextStepService.saveMesRawPartChargingDataContext(reqBean, list);
return execSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, "读取料桶原材料成功");
}
/**
*
* @param id
* @return
*/
private List<MesRawPartCharging> getListByParentDetailId(Long id){
List<MesRawPartCharging> list = new ArrayList<>();
DdlPackBean packBean = DdlPackBean.getDdlPackBean();
DdlPreparedPack.getNumEqualPack(id, "parentPackageDetailId", packBean);
List<MesRawPartCharging> parentList = mesRawPartChargingRepository.findByHqlWhere(packBean);
if (CollectionUtils.isEmpty(parentList)) {
return null;
}
for (MesRawPartCharging mesRawPartCharging : parentList) {
List<MesRawPartCharging> chilrenList = getListByParentDetailId(mesRawPartCharging.getPackageDetailId());
if (CollectionUtils.isEmpty(chilrenList)) {
list.addAll(parentList);
}
}
return list;
}
/**
*
* @param id
* @return
*/
private MesRawPartCharging getRawPackByDetailId(Long id){
DdlPackBean packBean = DdlPackBean.getDdlPackBean();
DdlPreparedPack.getNumEqualPack(id, "packageDetailId", packBean);
return mesRawPartChargingRepository.getByProperty(packBean);
}
}

@ -60,7 +60,11 @@ public class MesProductSnGenerateStepService extends BaseStepService {
@Autowired
private IMesProductionDispatchContextStepService mesProductionDispatchContextStepService;
/**todo
* todo
* @param reqBean
* @return
*/
@Override
public StepResult execute(StationRequestBean reqBean) {

@ -3,6 +3,7 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionDispatchContextStepService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepService;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesEquipVariableCollectContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProdShiftContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionProcessContext;
import cn.estsh.i3plus.mes.pcn.api.iservice.busi.ISyncFuncService;
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService;
@ -70,6 +71,10 @@ public class MesProductionReocrdGenerateStepService extends BaseStepService {
mesProductionRecordRepository.saveAll(mesProductionRecords);
MesProdShiftContext mesProdShiftKvBean = mesProductionDispatchContextStepService.getMesProdShiftKvBean(reqBean.getOrganizeCode(), reqBean.getWorkCenterCode());
// 保存班次加工数量上下文
mesProductionDispatchContextStepService.addProductionStatisticsContext(reqBean,mesProduceSns.size());
return StepResult.getSuccessComplete();
}

@ -9,12 +9,14 @@ import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil;
import cn.estsh.i3plus.pojo.mes.bean.MesPart;
import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn;
import cn.estsh.i3plus.pojo.mes.bean.MesRawPartCharging;
import cn.estsh.i3plus.pojo.mes.model.StationKvBean;
import cn.estsh.i3plus.pojo.mes.model.StationRequestBean;
import cn.estsh.i3plus.pojo.mes.model.StationResultBean;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.google.common.base.Objects;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
@ -35,7 +37,7 @@ public class MesProductionDispatchContextStepService extends BaseStepService imp
private String getContextKey(StationRequestBean reqBean) { return getFsmBusikey(reqBean, MesPcnExtConstWords.PRODUCTION_PROCESS_CONTEXT); }
private String getContextKey(StationRequestBean reqBean, String busiCode) { return new StringJoiner(":").add(reqBean.getOrganizeCode()).add(MesPcnExtConstWords.PRODUCTION_PROCESS_CONTEXT).add(busiCode).toString(); }
private String getContextKey(String organizeCode, String busiCode) { return new StringJoiner(":").add(organizeCode).add(MesPcnExtConstWords.PRODUCTION_PROCESS_CONTEXT).add(busiCode).toString(); }
//发送设备质量信息
@Override
@ -394,29 +396,29 @@ public class MesProductionDispatchContextStepService extends BaseStepService imp
//获取上下文班次班组信息
@Override
public List<StationKvBean> getProdShiftDataContext(StationRequestBean reqBean, String workCenterCode) {
String prodShiftJson = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean, MesPcnExtConstWords.PROD_SHIFT_DATA_CONTEXT), workCenterCode);
public List<StationKvBean> getProdShiftDataContext(String orgainzeCode, String workCenterCode) {
String prodShiftJson = getFsmBusiData(orgainzeCode, getContextKey(orgainzeCode, MesPcnExtConstWords.PROD_SHIFT_DATA_CONTEXT), workCenterCode);
return !StringUtils.isEmpty(prodShiftJson) ? JSONObject.parseArray(prodShiftJson, StationKvBean.class) : null;
}
//验证上下文班次班组信息是否存在
@Override
public Boolean checkProdShiftDataIsExistContext(StationRequestBean reqBean, String workCenterCode) {
String prodShiftJson = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean, MesPcnExtConstWords.PROD_SHIFT_DATA_CONTEXT), workCenterCode);
public Boolean checkProdShiftDataIsExistContext(String orgainzeCode, String workCenterCode) {
String prodShiftJson = getFsmBusiData(orgainzeCode, getContextKey(orgainzeCode, MesPcnExtConstWords.PROD_SHIFT_DATA_CONTEXT), workCenterCode);
return !StringUtils.isEmpty(prodShiftJson) ? true : false;
}
//保存上下文班次班组信息 [JSON]List<StationKvBean>
@Override
public Boolean saveProdShiftDataContext(StationRequestBean reqBean, String workCenterCode, List<StationKvBean> prodShiftDataList) {
public Boolean saveProdShiftDataContext(String organizeCode, String workCenterCode, List<StationKvBean> prodShiftDataList) {
if (CollectionUtils.isEmpty(prodShiftDataList)) return false;
return saveFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean, MesPcnExtConstWords.PROD_SHIFT_DATA_CONTEXT), workCenterCode, JSONObject.toJSONString(prodShiftDataList));
return saveFsmBusiData(organizeCode, getContextKey(organizeCode, MesPcnExtConstWords.PROD_SHIFT_DATA_CONTEXT), workCenterCode, JSONObject.toJSONString(prodShiftDataList));
}
//删除上下文班次班组信息
@Override
public void deleteProdShiftDataContext(StationRequestBean reqBean, String workCenterCode) {
deleteFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean, MesPcnExtConstWords.PROD_SHIFT_DATA_CONTEXT), workCenterCode);
public void deleteProdShiftDataContext(String orgainzeCode, String workCenterCode) {
deleteFsmBusiData(orgainzeCode, getContextKey(orgainzeCode, MesPcnExtConstWords.PROD_SHIFT_DATA_CONTEXT), workCenterCode);
}
//获取上下文工位加工数统计信息
@ -433,6 +435,29 @@ public class MesProductionDispatchContextStepService extends BaseStepService imp
return saveFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.PRODUCTION_STATISTICS_CONTEXT, JSONObject.toJSONString(productionStatisticsList));
}
@Override
public Boolean addProductionStatisticsContext(StationRequestBean reqBean, int count) {
MesProdShiftContext mesProdShiftKvBean = getMesProdShiftKvBean(reqBean.getOrganizeCode(), reqBean.getWorkCenterCode());
List<StationKvBean> stationKvBeans = getProductionStatisticsContext(reqBean);
if (CollectionUtils.isEmpty(stationKvBeans)) {
String key = mesProdShiftKvBean.getShiftGroup() + "_" + mesProdShiftKvBean.getShiftCode();
String name = "加工次数";
String value = count + "";
List<StationKvBean> generateStationKvBeans = StationKvBeanUtil.addStationKvBeanList(new ArrayList<>(), new StationKvBean(key, name, value));
saveProductionStatisticsContext(reqBean, generateStationKvBeans);
} else {
stationKvBeans.stream().forEach(stationKvBean -> {
if (Objects.equal(stationKvBean.getKey(), mesProdShiftKvBean.getShiftGroup() + "_" + mesProdShiftKvBean.getShiftCode())) {
stationKvBean.setValue(stationKvBean == null ? count + "" : (Integer.valueOf(stationKvBean.getValue()) + count) + "");
}
});
saveProductionStatisticsContext(reqBean, stationKvBeans);
}
return true;
}
//删除上下文工位加工数统计信息
@Override
public void deleteProductionStatisticsContext(StationRequestBean reqBean) {
@ -478,4 +503,36 @@ public class MesProductionDispatchContextStepService extends BaseStepService imp
deleteFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), "OUT_PRODUCE_SN_DATA_CONTEXT");
}
@Override
public List<MesRawPartCharging> getMesRawPartChargingDataContext(StationRequestBean reqBean) {
String mesRawPartChargingDataJson = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), "RAW_PART_CHARGING_DATA_CONTEXT");
return !StringUtils.isEmpty(mesRawPartChargingDataJson) ? JSONObject.parseArray(mesRawPartChargingDataJson, MesRawPartCharging.class) : null;
}
@Override
public Boolean saveMesRawPartChargingDataContext(StationRequestBean reqBean, List<MesRawPartCharging> mesRawPartChargingList) {
if (CollectionUtils.isEmpty(mesRawPartChargingList)) return false;
return saveFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), "RAW_PART_CHARGING_DATA_CONTEXT", JSONObject.toJSONString(mesRawPartChargingList));
}
@Override
public void deleteMesRawPartChargingDataContext(StationRequestBean reqBean) {
deleteFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), "RAW_PART_CHARGING_DATA_CONTEXT");
}
@Override
public MesProdShiftContext getMesProdShiftKvBean(String orgainzeCode, String workCenterCode) {
List<StationKvBean> stationKvBeans = getProdShiftDataContext(orgainzeCode, workCenterCode);
MesProdShiftContext mesProdShiftContext = new MesProdShiftContext();
if (CollectionUtils.isEmpty(stationKvBeans)) {
return null;
}
StationKvBean shiftGroupKvBean = stationKvBeans.stream().filter(stationKvBean -> Objects.equal(stationKvBean.getKey(), "shiftGroup")).findFirst().orElse(null);
StationKvBean shiftCodeKvBean = stationKvBeans.stream().filter(stationKvBean -> Objects.equal(stationKvBean.getKey(), "shiftCode")).findFirst().orElse(null);
mesProdShiftContext.setShiftCode(shiftGroupKvBean == null ? null : shiftGroupKvBean.getValue());
mesProdShiftContext.setShiftGroup(shiftCodeKvBean == null ? null : shiftCodeKvBean.getValue());
return mesProdShiftContext;
}
}

@ -0,0 +1,33 @@
package cn.estsh.i3plus.ext.mes.pcn.pojo.context;
import cn.estsh.i3plus.pojo.base.annotation.AnnoOutputColumn;
import cn.estsh.i3plus.pojo.mes.bean.MesProductionRecord;
import cn.estsh.i3plus.pojo.mes.bean.MesWorkCenter;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import com.alibaba.fastjson.JSONObject;
import io.swagger.annotations.ApiParam;
import lombok.Data;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import javax.persistence.Column;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
* -
*/
@Data
public class MesProdShiftContext implements Serializable {
private static final long serialVersionUID = 1522652732930288855L;
@ApiParam("班组代码")
private String shiftGroup;
@ApiParam("班次代码")
private String shiftCode;
}

@ -68,6 +68,10 @@ public class MesPcnExtConstWords {
public static final String EQUIP_VARIABLE_STATUS = "equipVariableStatus";
// 模具号
public static final String MOULD_NO = "mouldNo";
// 班次
public static final String SHIFT_CODE = "shiftCode";
// 班组
public static final String SHIFT_GROUP = "shiftGroup";
// 工序代码
public static final String PROCESS_CODE = "processCode";
// 生产工单号
@ -224,7 +228,12 @@ public class MesPcnExtConstWords {
public static final String PRODUCTION_STATISTICS_CONTEXT = "PRODUCTION_STATISTICS_CONTEXT";
//OPC_API_PARAM
public static final String OPC_LINK_URL = "OPC_LINK_URL";
public static final String VALUE = "value";
public static final String CLIENT_HANDLE= "clientHandle";
public static final String CHANNEL = "channel";
public static final String EQUIPMENT_ID = "equipmentId";
@Deprecated

Loading…
Cancel
Save