forked from I3-YF/i3plus-mes-pcn-yfai
排序推单
parent
50a78c8f08
commit
8ca9f3fad1
@ -1,45 +0,0 @@
|
||||
package cn.estsh.i3plus.ext.mes.pcn.apiservice.controller.base;
|
||||
|
||||
|
||||
import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesEnumExtService;
|
||||
import cn.estsh.i3plus.mes.pcn.util.EnumUtil;
|
||||
import cn.estsh.i3plus.pojo.base.enumutil.MesEnumUtil;
|
||||
import cn.estsh.i3plus.pojo.mes.dbinterface.MesInterfaceEnumUtil;
|
||||
import cn.estsh.i3plus.pojo.mes.repository.MesEnumDetailRepository;
|
||||
import cn.estsh.i3plus.pojo.mes.repository.MesEnumRepository;
|
||||
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
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.Map;
|
||||
|
||||
/**
|
||||
* @Author: Wynne.Lu
|
||||
* @CreateDate: 2019/8/30 1:39 PM
|
||||
* @Description:
|
||||
**/
|
||||
@Slf4j
|
||||
@Service
|
||||
@ApiOperation(value = "获取MesEnumUtil")
|
||||
public class MesEnumExtService implements IMesEnumExtService {
|
||||
|
||||
@Override
|
||||
public Map<String, Object> doGetMesEnumByEnumName(String organizeCode, String enumName) {
|
||||
Map<String, Object> enumMap;
|
||||
enumMap = getEnumByClazzEnum(enumName, MesExtEnumUtil.class);
|
||||
if (CollectionUtils.isEmpty(enumMap)) enumMap = getEnumByClazzEnum(enumName, MesEnumUtil.class);
|
||||
if (CollectionUtils.isEmpty(enumMap)) enumMap = getEnumByClazzEnum(enumName, MesInterfaceEnumUtil.class);
|
||||
return enumMap;
|
||||
}
|
||||
|
||||
public Map<String, Object> getEnumByClazzEnum(String enumName, Class clz) {
|
||||
return EnumUtil.getEnumByName(clz, enumName);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,88 @@
|
||||
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.base;
|
||||
|
||||
|
||||
import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesEnumExtService;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
|
||||
import cn.estsh.i3plus.mes.pcn.util.EnumUtil;
|
||||
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
|
||||
import cn.estsh.i3plus.pojo.base.enumutil.MesEnumUtil;
|
||||
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
|
||||
import cn.estsh.i3plus.pojo.mes.bean.MesEnum;
|
||||
import cn.estsh.i3plus.pojo.mes.bean.MesEnumDetail;
|
||||
import cn.estsh.i3plus.pojo.mes.dbinterface.MesInterfaceEnumUtil;
|
||||
import cn.estsh.i3plus.pojo.mes.repository.MesEnumDetailRepository;
|
||||
import cn.estsh.i3plus.pojo.mes.repository.MesEnumRepository;
|
||||
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
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.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @Author: Wynne.Lu
|
||||
* @CreateDate: 2019/8/30 1:39 PM
|
||||
* @Description:
|
||||
**/
|
||||
@Slf4j
|
||||
@Service
|
||||
@ApiOperation(value = "获取MesEnumUtil")
|
||||
public class MesEnumExtService implements IMesEnumExtService {
|
||||
|
||||
@Autowired
|
||||
private MesEnumRepository enumRepository;
|
||||
|
||||
@Autowired
|
||||
private MesEnumDetailRepository enumDetailRepository;
|
||||
|
||||
@Override
|
||||
public Map<String, Object> doGetMesEnumByEnumName(String organizeCode, String enumName) {
|
||||
Map<String, Object> enumMap = getEnumMap(organizeCode, enumName);
|
||||
if (CollectionUtils.isEmpty(enumMap)) enumMap = getEnumByClazzEnum(enumName, MesExtEnumUtil.class);
|
||||
if (CollectionUtils.isEmpty(enumMap)) enumMap = getEnumByClazzEnum(enumName, MesEnumUtil.class);
|
||||
if (CollectionUtils.isEmpty(enumMap)) enumMap = getEnumByClazzEnum(enumName, MesInterfaceEnumUtil.class);
|
||||
return enumMap;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> getEnumByClazzEnum(String enumName, Class clz) {
|
||||
return EnumUtil.getEnumByName(clz, enumName);
|
||||
}
|
||||
|
||||
private Map<String, Object> getEnumMap(String organizeCode, String enumName) {
|
||||
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
|
||||
DdlPreparedPack.getStringEqualPack(enumName, MesPcnExtConstWords.ENUM_CODE, packBean);
|
||||
MesEnum enumDb = enumRepository.getByProperty(packBean);
|
||||
if (null == enumDb) return null;
|
||||
List<MesEnumDetail> enumDetailList = enumDetailRepository.findByHqlWhere(packBean);
|
||||
if (CollectionUtils.isEmpty(enumDetailList)) return null;
|
||||
return getEnumMap(enumDetailList, enumName);
|
||||
}
|
||||
|
||||
private Map<String, Object> getEnumMap(List<MesEnumDetail> enumDetailList, String enumName) {
|
||||
Map<String, Object> enumMap = new HashMap<>();
|
||||
List<Map<String, Object>> values = new ArrayList<>();
|
||||
enumDetailList.forEach(e -> {
|
||||
Map<String, Object> value = new HashMap<>();
|
||||
value.put("value", e.getDetailValue());
|
||||
if (!StringUtils.isEmpty(e.getEnumCode())) {
|
||||
value.put("code", e.getDetailCode());
|
||||
}
|
||||
value.put("description", e.getDetailName());
|
||||
values.add(value);
|
||||
});
|
||||
enumMap.put("enumName", enumName);
|
||||
enumMap.put("valuesList", values);
|
||||
return enumMap;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,164 @@
|
||||
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.station.function;
|
||||
|
||||
import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesEnumExtService;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepService;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesQueueOrderPushService;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
|
||||
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseSwsService;
|
||||
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.function.IFsmModuleFunctionService;
|
||||
import cn.estsh.i3plus.pojo.base.bean.ListPager;
|
||||
import cn.estsh.i3plus.pojo.base.common.Pager;
|
||||
import cn.estsh.i3plus.pojo.base.common.PagerHelper;
|
||||
import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil;
|
||||
import cn.estsh.i3plus.pojo.mes.bean.MesQueueOrderPushCellCfg;
|
||||
import cn.estsh.i3plus.pojo.mes.model.ButtonDynamicModel;
|
||||
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 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.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @Description : 工位参数按钮事件接口实现【队列推送】
|
||||
**/
|
||||
@Service
|
||||
public class MesFunctionQueueOrderPushService extends BaseSwsService implements IFsmModuleFunctionService {
|
||||
|
||||
@Autowired
|
||||
private IMesProductionProcessContextStepService productionProcessContextStepService;
|
||||
|
||||
@Autowired
|
||||
private IMesQueueOrderPushService queueOrderPushService;
|
||||
|
||||
@Autowired
|
||||
private IMesEnumExtService enumExtService;
|
||||
|
||||
@Override
|
||||
public Object doCustomApiDispatch(StationRequestBean reqBean, StationResultBean resultBean, ButtonDynamicModel buttonDynamicModel) {
|
||||
|
||||
//页面渲染数据集
|
||||
Map<String, Object> resultMap = new HashMap<>();
|
||||
|
||||
//验证参数
|
||||
Map<String, String> paramMap = null;
|
||||
try {
|
||||
paramMap = StringUtils.isEmpty(buttonDynamicModel.getFunctionValue()) ? null : JSONObject.parseObject(buttonDynamicModel.getFunctionValue(), Map.class);
|
||||
} catch (Exception e) {
|
||||
}
|
||||
if (CollectionUtils.isEmpty(paramMap) || StringUtils.isEmpty(BUSI_TYPE.valueOfDescription(paramMap.get(MesPcnExtConstWords.BUSI_TYPE)))) {
|
||||
resultMap.put(MesPcnExtConstWords.DATA_TYPE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT.getValue());
|
||||
return packResultMap(reqBean, resultBean, resultMap, String.format("[%s]参数异常!", buttonDynamicModel.getButtonName()));
|
||||
}
|
||||
|
||||
//查询
|
||||
if (BUSI_TYPE.ONE.value.equals(paramMap.get(MesPcnExtConstWords.BUSI_TYPE))) return queryQueueOrderPush(reqBean, resultMap, paramMap);
|
||||
|
||||
this.sendMessage(reqBean, new StationResultBean().writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.PICK.getValue()),
|
||||
String.format("[%s]%s: %s", buttonDynamicModel.getButtonName(), BUSI_TYPE.valueOfDescription(paramMap.get(MesPcnExtConstWords.BUSI_TYPE)), JSONObject.toJSONString(paramMap)),
|
||||
MesPcnEnumUtil.STATION_BUSI_TYPE.RUNNING_INFO, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT);
|
||||
|
||||
resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.PICK.getValue());
|
||||
resultMap.put(MesPcnExtConstWords.DATA_TYPE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT.getValue());
|
||||
|
||||
if (BUSI_TYPE.TWO.value.equals(paramMap.get(MesPcnExtConstWords.BUSI_TYPE))) queryQueueOrderPush(reqBean, resultMap, paramMap);
|
||||
else if (BUSI_TYPE.THREE.value.equals(paramMap.get(MesPcnExtConstWords.BUSI_TYPE))) queryQueueOrderPush(reqBean, resultMap, paramMap);
|
||||
else queryQueueOrderPush(reqBean, resultMap, paramMap);
|
||||
|
||||
if (!resultMap.containsKey(MesPcnExtConstWords.MESSAGE)) {
|
||||
resultMap.put(MesPcnExtConstWords.DATA_TYPE, MesPcnEnumUtil.STATION_DATA_TYPE.TEXT.getValue());
|
||||
resultMap.put(MesPcnExtConstWords.MESSAGE, String.format("[%s]%s成功!", buttonDynamicModel.getButtonName(), BUSI_TYPE.valueOfDescription(paramMap.get(MesPcnExtConstWords.BUSI_TYPE))));
|
||||
}
|
||||
|
||||
return resultMap;
|
||||
|
||||
}
|
||||
|
||||
private Object queryQueueOrderPush(StationRequestBean reqBean, Map<String, Object> resultMap, Map<String, String> paramMap) {
|
||||
|
||||
Pager pager = new Pager();
|
||||
pager.setCurrentPage(paramMap.containsKey(MesPcnExtConstWords.CURRENT_PAGE) ? Integer.valueOf(paramMap.get(MesPcnExtConstWords.CURRENT_PAGE)) : MesPcnExtConstWords.ONE);
|
||||
pager.setPageSize(paramMap.containsKey(MesPcnExtConstWords.PAGE_SIZE) ? Integer.valueOf(paramMap.get(MesPcnExtConstWords.PAGE_SIZE)) : MesPcnExtConstWords.FIFTY);
|
||||
|
||||
resultMap.put(MesPcnExtConstWords.QUEUE_STATUS, enumExtService.doGetMesEnumByEnumName(reqBean.getOrganizeCode(), MesExtEnumUtil.QUEUE_ORDER_STATUS.class.getSimpleName()));
|
||||
|
||||
//处理排序线推单上下文, 返回推送工位类型对应的配置信息 【来源工位】
|
||||
List<MesQueueOrderPushCellCfg> queueOrderPushCellCfgList = productionProcessContextStepService.dispatchQueueOrderPushCellCfgContext(reqBean, MesExtEnumUtil.QUEUE_ORDER_CELL_PUSH_TYPE.TARGET.getValue());
|
||||
List<String> pushSourceCodeList = (queueOrderPushCellCfgList.stream()
|
||||
.filter(o -> (null != o && !StringUtils.isEmpty(o.getPushSourceCode()))).map(MesQueueOrderPushCellCfg::getPushSourceCode).collect(Collectors.toList())
|
||||
).stream().filter(o -> !StringUtils.isEmpty(o)).distinct().collect(Collectors.toList());
|
||||
|
||||
if (!CollectionUtils.isEmpty(pushSourceCodeList)) resultMap.put(MesPcnExtConstWords.PUSH_SOURCE_CODE, pushSourceCodeList);
|
||||
else {
|
||||
pager = PagerHelper.getPager(pager, MesPcnExtConstWords.ZERO);
|
||||
resultMap.put(MesPcnExtConstWords.DATA, new ListPager<>(new ArrayList<>(), pager));
|
||||
return resultMap;
|
||||
}
|
||||
|
||||
paramMap.put(MesPcnExtConstWords.ORGANIZE_CODE, reqBean.getOrganizeCode());
|
||||
//根据配置查询生产队列工位推送信息
|
||||
resultMap.put(MesPcnExtConstWords.DATA, queueOrderPushService.queryQueueOrderPushListPager(paramMap, pushSourceCodeList, pager));
|
||||
return resultMap;
|
||||
|
||||
}
|
||||
|
||||
//返回提示信息
|
||||
private Object packResultMap(StationRequestBean reqBean, StationResultBean resultBean, Map<String, Object> resultMap, String message) {
|
||||
this.sendMessage(reqBean, resultBean, message, MesPcnEnumUtil.STATION_BUSI_TYPE.RUNNING_INFO, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT);
|
||||
resultMap.put(MesPcnExtConstWords.MESSAGE, message);
|
||||
return resultMap;
|
||||
}
|
||||
|
||||
//业务操作
|
||||
enum BUSI_TYPE {
|
||||
|
||||
ONE("1", "查询"),
|
||||
|
||||
TWO("2", "新增"),
|
||||
|
||||
THREE("3", "修改"),
|
||||
|
||||
FOUR("4", "取消");
|
||||
|
||||
private String value;
|
||||
|
||||
private String description;
|
||||
|
||||
BUSI_TYPE(String value, String description) {
|
||||
|
||||
this.value = value;
|
||||
|
||||
this.description = description;
|
||||
|
||||
}
|
||||
|
||||
public String getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
|
||||
public static String valueOfDescription(String val) {
|
||||
if (StringUtils.isEmpty(val)) return null;
|
||||
String tmp = null;
|
||||
for (int i = 0; i < values().length; i++) {
|
||||
if (val.equals(values()[i].value)) {
|
||||
tmp = values()[i].description;
|
||||
}
|
||||
}
|
||||
return tmp;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue