Q管理检验标准不能为空

tags/yfai-mes-ext-v1.0
yxw 1 year ago
parent 1a11a065a5
commit de3fac5a34

@ -3,6 +3,7 @@ package cn.estsh.i3plus.ext.mes.apiservice.controller.base.bu;
import cn.estsh.i3plus.ext.mes.api.base.bu.IBuFirstManageService;
import cn.estsh.i3plus.ext.mes.pojo.bean.MesFirstOrderDetail;
import cn.estsh.i3plus.ext.mes.pojo.bean.MesProcessFirstItem;
import cn.estsh.i3plus.ext.mes.pojo.util.MesExtConstWords;
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.platform.common.util.CommonConstWords;
import cn.estsh.i3plus.pojo.base.common.Pager;
@ -13,6 +14,7 @@ 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 io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
@ -40,6 +42,10 @@ public class BuFirstManageController {
@ApiOperation(value = "添加MES_工序首检项目信息")
public ResultBean insertMesProcessFirstItem(MesProcessFirstItem mesProcessFirstItem) {
try {
ValidatorBean.beginValid(mesProcessFirstItem)
.notNull(MesExtConstWords.CHECK_STAND, mesProcessFirstItem.getCheckStand());
mesProcessFirstItem.setOrganizeCode(AuthUtil.getOrganize().getOrganizeCode());
firstManageService.insertMesProcessFirstItem(mesProcessFirstItem);
return ResultBean.success("添加成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());

@ -28,6 +28,7 @@ import org.springframework.util.StringUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
* @Author: xiangming.liao
@ -48,21 +49,36 @@ public class BuFirstManageService implements IBuFirstManageService {
@Override
public MesProcessFirstItem insertMesProcessFirstItem(MesProcessFirstItem mesProcessFirstItem) {
StringBuffer whereStr = new StringBuffer();
HqlPack.getStringEqualPack(mesProcessFirstItem.getOrganizeCode(), MesExtConstWords.ORGANIZE_CODE, whereStr);
HqlPack.getStringEqualPack(mesProcessFirstItem.getProcessCode(), MesExtConstWords.PROCESS_CODE, whereStr);
HqlPack.getStringEqualPack(mesProcessFirstItem.getPartNo(), MesExtConstWords.PART_NO, whereStr);
HqlPack.getStringEqualPack(mesProcessFirstItem.getCheckMessage(), MesExtConstWords.CHECK_MESSAGE, whereStr);
HqlPack.getStringEqualPack(mesProcessFirstItem.getCheckStand(), MesExtConstWords.CHECK_STAND, whereStr);
HqlPack.getStringEqualPack(mesProcessFirstItem.getManageType(), MesExtConstWords.MANAGE_TYPE, whereStr);
HqlPack.getStringEqualPack(mesProcessFirstItem.getImportanceSafePartNo(), MesExtConstWords.IMPORTANCE_SAFE_PART_NO, whereStr);
HqlPack.getNumEqualPack(CommonEnumUtil.IS_VAILD.VAILD.getValue(), MesExtConstWords.IS_VALID, whereStr);
if (mesProcessFirstItemRDao.isExitByHqlWhere(whereStr.toString())) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(mesProcessFirstItem.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(mesProcessFirstItem.getOrganizeCode(), MesExtConstWords.ORGANIZE_CODE, packBean);
DdlPreparedPack.getStringEqualPack(mesProcessFirstItem.getProcessCode(), MesExtConstWords.PROCESS_CODE, packBean);
DdlPreparedPack.getStringEqualPack(mesProcessFirstItem.getPartNo(), MesExtConstWords.PART_NO, packBean);
DdlPreparedPack.getStringEqualPack(mesProcessFirstItem.getCheckMessage(), MesExtConstWords.CHECK_MESSAGE, packBean);
DdlPreparedPack.getStringEqualPack(mesProcessFirstItem.getCheckStand(), MesExtConstWords.CHECK_STAND, packBean);
DdlPreparedPack.getStringEqualPack(mesProcessFirstItem.getManageType(), MesExtConstWords.MANAGE_TYPE, packBean);
DdlPreparedPack.getStringEqualPack(mesProcessFirstItem.getImportanceSafePartNo(), MesExtConstWords.IMPORTANCE_SAFE_PART_NO, packBean);
List<MesProcessFirstItem> processFirstItemDbList = mesProcessFirstItemRDao.findByHqlWhere(packBean);
if (StringUtils.isEmpty(mesProcessFirstItem.getImportanceSafePartNo())) {
if (!processFirstItemDbList.stream().filter(o -> StringUtils.isEmpty(o.getImportanceSafePartNo())).collect(Collectors.toList()).isEmpty())
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_EXIT.getCode())
.setErrorDetail("工序编号【%s】、物料编码【%s】和检测信息【%s】和检测标准【%s】和管理类型【%s】在工序首检项目信息中已存在"
,mesProcessFirstItem.getProcessCode(), mesProcessFirstItem.getPartNo(), mesProcessFirstItem.getCheckMessage(), mesProcessFirstItem.getCheckStand(), MesExtEnumUtil.Q_MANAGE_MANAGE_TYPE.valueOfDescription(mesProcessFirstItem.getManageType()))
,mesProcessFirstItem.getProcessCode(), mesProcessFirstItem.getPartNo(),
mesProcessFirstItem.getCheckMessage(), mesProcessFirstItem.getCheckStand(),
MesExtEnumUtil.Q_MANAGE_MANAGE_TYPE.valueOfDescription(mesProcessFirstItem.getManageType()))
.setErrorSolution("请更换新增参数")
.build();
} else if(!CollectionUtils.isEmpty(processFirstItemDbList)){
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_EXIT.getCode())
.setErrorDetail("工序编号【%s】、物料编码【%s】和检测信息【%s】和检测标准【%s】和管理类型【%s】和重要安全部品【%s】在工序首检项目信息中已存在"
,mesProcessFirstItem.getProcessCode(), mesProcessFirstItem.getPartNo(),
mesProcessFirstItem.getCheckMessage(), mesProcessFirstItem.getCheckStand(),
MesExtEnumUtil.Q_MANAGE_MANAGE_TYPE.valueOfDescription(mesProcessFirstItem.getManageType()),
mesProcessFirstItem.getImportanceSafePartNo())
.setErrorSolution("请更换新增参数")
.build();
}
@ -125,15 +141,7 @@ public class BuFirstManageService implements IBuFirstManageService {
@Override
public void updateMesProcessFirstItem(MesProcessFirstItem mesProcessFirstItem, String userName) {
MesProcessFirstItem processFirstItemDb = mesProcessFirstItemRDao.getById(mesProcessFirstItem.getId());
if(processFirstItemDb == null){
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_EXIT.getCode())
.setErrorDetail("数据不存在")
.build();
}
MesProcessFirstItem processFirstItemDb = getMesProcessFirstItem(mesProcessFirstItem);
DdlPackBean packBean = DdlPackBean.getDdlPackBean(mesProcessFirstItem.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(mesProcessFirstItem.getProcessCode(), MesExtConstWords.PROCESS_CODE, packBean);
@ -142,18 +150,40 @@ public class BuFirstManageService implements IBuFirstManageService {
DdlPreparedPack.getStringEqualPack(mesProcessFirstItem.getCheckStand(), MesExtConstWords.CHECK_STAND, packBean);
DdlPreparedPack.getStringEqualPack(mesProcessFirstItem.getManageType(), MesExtConstWords.MANAGE_TYPE, packBean);
DdlPreparedPack.getStringEqualPack(mesProcessFirstItem.getImportanceSafePartNo(), MesExtConstWords.IMPORTANCE_SAFE_PART_NO, packBean);
MesProcessFirstItem processFirstItemExist = mesProcessFirstItemRDao.getByProperty(packBean);
List<MesProcessFirstItem> processFirstItemExistList = mesProcessFirstItemRDao.findByHqlWhere(packBean);
if (StringUtils.isEmpty(mesProcessFirstItem.getImportanceSafePartNo())) {
processFirstItemExistList = processFirstItemExistList.stream().filter(o -> StringUtils.isEmpty(o.getImportanceSafePartNo())).collect(Collectors.toList());
if (!CollectionUtils.isEmpty(processFirstItemExistList) && processFirstItemExistList.get(0).getId().compareTo(processFirstItemDb.getId()) != 0) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_EXIT.getCode())
.setErrorDetail("工序编号【%s】、物料编码【%s】和检测信息【%s】和检测标准【%s】在工序首检项目信息中已存在"
,mesProcessFirstItem.getProcessCode(), mesProcessFirstItem.getPartNo(), mesProcessFirstItem.getCheckMessage(), mesProcessFirstItem.getCheckStand())
.setErrorSolution("请更换修改参数")
.build();
}
if (processFirstItemExist != null && processFirstItemExist.getId().compareTo(processFirstItemDb.getId()) != 0) {
} else if (!CollectionUtils.isEmpty(processFirstItemExistList) && processFirstItemExistList.get(0).getId().compareTo(processFirstItemDb.getId()) != 0) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_EXIT.getCode())
.setErrorDetail("工序编号【%s】、物料编码【%s】和检测信息【%s】和检测标准【%s】在工序首检项目信息中已存在"
,mesProcessFirstItem.getProcessCode(), mesProcessFirstItem.getPartNo(), mesProcessFirstItem.getCheckMessage(), mesProcessFirstItem.getCheckStand())
.setErrorDetail("工序编号【%s】、物料编码【%s】和检测信息【%s】和检测标准【%s】和重要安全部品【%s】在工序首检项目信息中已存在"
,mesProcessFirstItem.getProcessCode(), mesProcessFirstItem.getPartNo(), mesProcessFirstItem.getCheckMessage(), mesProcessFirstItem.getCheckStand(), mesProcessFirstItem.getImportanceSafePartNo())
.setErrorSolution("请更换修改参数")
.build();
}
//if (processFirstItemExist != null && processFirstItemExist.getId().compareTo(processFirstItemDb.getId()) != 0) {
// throw ImppExceptionBuilder.newInstance()
// .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
// .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_EXIT.getCode())
// .setErrorDetail("工序编号【%s】、物料编码【%s】和检测信息【%s】和检测标准【%s】在工序首检项目信息中已存在"
// ,mesProcessFirstItem.getProcessCode(), mesProcessFirstItem.getPartNo(), mesProcessFirstItem.getCheckMessage(), mesProcessFirstItem.getCheckStand())
// .setErrorSolution("请更换修改参数")
// .build();
//}
//上下限值校验
if ((!StringUtils.isEmpty(mesProcessFirstItem.getUpLimit()) && StringUtils.isEmpty(mesProcessFirstItem.getDownLimit())) ||
(StringUtils.isEmpty(mesProcessFirstItem.getUpLimit()) && !StringUtils.isEmpty(mesProcessFirstItem.getDownLimit()))){
@ -208,6 +238,19 @@ public class BuFirstManageService implements IBuFirstManageService {
mesProcessFirstItemRDao.save(mesProcessFirstItem);
}
private MesProcessFirstItem getMesProcessFirstItem(MesProcessFirstItem mesProcessFirstItem) {
MesProcessFirstItem processFirstItemDb = mesProcessFirstItemRDao.getById(mesProcessFirstItem.getId());
if(processFirstItemDb == null){
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_EXIT.getCode())
.setErrorDetail("数据不存在")
.build();
}
return processFirstItemDb;
}
@Override
public ListPager<MesProcessFirstItem> queryMesProcessFirstItemByPager(MesProcessFirstItem mesProcessFirstItem, Pager pager) {
if (mesProcessFirstItem == null) {

@ -1013,69 +1013,69 @@ public class BuWorkOrderExtService implements IBuWorkOrderExtService {
this.insertMesWorkOrderLog(mesWorkOrderDb);
}
if (workOrderStatus == MesExtEnumUtil.WORK_ORDER_STATUS.CLOSE.getValue() || workOrderStatus == MesExtEnumUtil.WORK_ORDER_STATUS.REMOVE.getValue()) {
List<String> workOrderNoList = mesWorkOrderList.stream().filter(o -> o.getWorkOrderType() != MesExtEnumUtil.WORK_ORDER_TYPE.REWORK_ORDER.getValue()).map(MesWorkOrderExt::getOrderNo).collect(Collectors.toList());
if (!CollectionUtils.isEmpty(workOrderNoList)) {
String requestUrl = httpService.getRequestUrl(organizeCode, MesExtConstWords.BU_GATEWAY_HOST_PCN, MesExtConstWords.PCN_UNBIND_SN_BY_WORK_ORDER_WITH_DATA_URL);
Map<String, String> params = new HashMap<>();
params.put(MesExtConstWords.WORK_ORDER_NO, JSONObject.toJSONString(workOrderNoList));
params.put(MesExtConstWords.ORGANIZE_CODE, organizeCode);
params.put("nowTime", TimeTool.getNowTime(true));
params.put(MesExtConstWords.USER_NAME, AuthUtil.getSessionUser().getUserName());
params.put(MesExtConstWords.STATUS, MesExtEnumUtil.WORK_ORDER_STATUS.CLOSE.getValue() + "");
String data = SxMesHttpUtil.doPost(requestUrl, params);
BaseResultBean baseResultBean = null;
if (!StringUtils.isEmpty(data)) {
baseResultBean = JsonUtilTool.decode(data, BaseResultBean.class);
} else {
log.error("工单完成或删除解绑未下线条码 HTTP[{}]调用PCN接口失败", requestUrl);
throw ImppExceptionBuilder.newInstance().setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("工单完成或删除解绑未下线条码 HTTP调用PCN接口失败")
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode())
.build();
}
if (!baseResultBean.success) {
throw ImppExceptionBuilder.newInstance().setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail(baseResultBean.getErrorMsg())
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode())
.build();
}
}
}
if (workOrderStatus == MesExtEnumUtil.WORK_ORDER_STATUS.CLOSE.getValue()) {
List<String> reworkOrderNoList = mesWorkOrderList.stream().filter(o -> o.getWorkOrderType() == MesExtEnumUtil.WORK_ORDER_TYPE.REWORK_ORDER.getValue()).map(MesWorkOrderExt::getOrderNo).collect(Collectors.toList());
if (!CollectionUtils.isEmpty(reworkOrderNoList)) {
String requestUrl = httpService.getRequestUrl(organizeCode, MesExtConstWords.BU_GATEWAY_HOST_PCN, MesExtConstWords.PCN_UPDATE_REWORK_ORDER_WITH_DATA_URL);
Map<String, String> params = new HashMap<>();
params.put(MesExtConstWords.REWORK_ORDER_NO, JSONObject.toJSONString(reworkOrderNoList));
params.put(MesExtConstWords.ORGANIZE_CODE, organizeCode);
params.put("nowTime", TimeTool.getNowTime(true));
params.put(MesExtConstWords.USER_NAME, AuthUtil.getSessionUser().getUserName());
params.put(MesExtConstWords.STATUS, MesExtEnumUtil.WORK_ORDER_STATUS.CLOSE.getValue() + "");
String data = SxMesHttpUtil.doPost(requestUrl, params);
log.info("修改返工工单状态 参数{} --- 结果:{}", params, data);
BaseResultBean baseResultBean = null;
if (!StringUtils.isEmpty(data)) {
baseResultBean = JsonUtilTool.decode(data, BaseResultBean.class);
} else {
log.error("修改返工工单状态 HTTP[{}]调用PCN接口失败", requestUrl);
throw ImppExceptionBuilder.newInstance().setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("修改返工工单状态 HTTP调用PCN接口失败")
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode())
.build();
}
if (!baseResultBean.success) {
throw ImppExceptionBuilder.newInstance().setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail(baseResultBean.getErrorMsg())
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode())
.build();
}
}
}
//返工工单下达进行邮件推送
reworkOrderEmailPush(workOrderStatus, organizeCode, mesWorkOrderList);
//if (workOrderStatus == MesExtEnumUtil.WORK_ORDER_STATUS.CLOSE.getValue() || workOrderStatus == MesExtEnumUtil.WORK_ORDER_STATUS.REMOVE.getValue()) {
// List<String> workOrderNoList = mesWorkOrderList.stream().filter(o -> o.getWorkOrderType() != MesExtEnumUtil.WORK_ORDER_TYPE.REWORK_ORDER.getValue()).map(MesWorkOrderExt::getOrderNo).collect(Collectors.toList());
// if (!CollectionUtils.isEmpty(workOrderNoList)) {
// String requestUrl = httpService.getRequestUrl(organizeCode, MesExtConstWords.BU_GATEWAY_HOST_PCN, MesExtConstWords.PCN_UNBIND_SN_BY_WORK_ORDER_WITH_DATA_URL);
// Map<String, String> params = new HashMap<>();
// params.put(MesExtConstWords.WORK_ORDER_NO, JSONObject.toJSONString(workOrderNoList));
// params.put(MesExtConstWords.ORGANIZE_CODE, organizeCode);
// params.put("nowTime", TimeTool.getNowTime(true));
// params.put(MesExtConstWords.USER_NAME, AuthUtil.getSessionUser().getUserName());
// params.put(MesExtConstWords.STATUS, MesExtEnumUtil.WORK_ORDER_STATUS.CLOSE.getValue() + "");
// String data = SxMesHttpUtil.doPost(requestUrl, params);
//
// BaseResultBean baseResultBean = null;
// if (!StringUtils.isEmpty(data)) {
// baseResultBean = JsonUtilTool.decode(data, BaseResultBean.class);
// } else {
// log.error("工单完成或删除解绑未下线条码 HTTP[{}]调用PCN接口失败", requestUrl);
// throw ImppExceptionBuilder.newInstance().setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
// .setErrorDetail("工单完成或删除解绑未下线条码 HTTP调用PCN接口失败")
// .setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode())
// .build();
// }
// if (!baseResultBean.success) {
// throw ImppExceptionBuilder.newInstance().setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
// .setErrorDetail(baseResultBean.getErrorMsg())
// .setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode())
// .build();
// }
// }
//}
//
//if (workOrderStatus == MesExtEnumUtil.WORK_ORDER_STATUS.CLOSE.getValue()) {
// List<String> reworkOrderNoList = mesWorkOrderList.stream().filter(o -> o.getWorkOrderType() == MesExtEnumUtil.WORK_ORDER_TYPE.REWORK_ORDER.getValue()).map(MesWorkOrderExt::getOrderNo).collect(Collectors.toList());
// if (!CollectionUtils.isEmpty(reworkOrderNoList)) {
// String requestUrl = httpService.getRequestUrl(organizeCode, MesExtConstWords.BU_GATEWAY_HOST_PCN, MesExtConstWords.PCN_UPDATE_REWORK_ORDER_WITH_DATA_URL);
// Map<String, String> params = new HashMap<>();
// params.put(MesExtConstWords.REWORK_ORDER_NO, JSONObject.toJSONString(reworkOrderNoList));
// params.put(MesExtConstWords.ORGANIZE_CODE, organizeCode);
// params.put("nowTime", TimeTool.getNowTime(true));
// params.put(MesExtConstWords.USER_NAME, AuthUtil.getSessionUser().getUserName());
// params.put(MesExtConstWords.STATUS, MesExtEnumUtil.WORK_ORDER_STATUS.CLOSE.getValue() + "");
// String data = SxMesHttpUtil.doPost(requestUrl, params);
// log.info("修改返工工单状态 参数{} --- 结果:{}", params, data);
// BaseResultBean baseResultBean = null;
// if (!StringUtils.isEmpty(data)) {
// baseResultBean = JsonUtilTool.decode(data, BaseResultBean.class);
// } else {
// log.error("修改返工工单状态 HTTP[{}]调用PCN接口失败", requestUrl);
// throw ImppExceptionBuilder.newInstance().setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
// .setErrorDetail("修改返工工单状态 HTTP调用PCN接口失败")
// .setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode())
// .build();
// }
// if (!baseResultBean.success) {
// throw ImppExceptionBuilder.newInstance().setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
// .setErrorDetail(baseResultBean.getErrorMsg())
// .setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode())
// .build();
// }
// }
//}
////返工工单下达进行邮件推送
//reworkOrderEmailPush(workOrderStatus, organizeCode, mesWorkOrderList);
}

Loading…
Cancel
Save