线末大屏

tags/yfai-mes-ext-v2.3
臧学普 7 months ago
parent c40e5c75ee
commit 6a1779c6f0

@ -0,0 +1,55 @@
package cn.estsh.i3plus.ext.mes.api.busi;
import cn.estsh.i3plus.pojo.mes.bean.MesEarlyWarningKanBan;
import cn.estsh.i3plus.pojo.mes.model.KanBanPictureModel;
import cn.estsh.i3plus.pojo.mes.model.MesEarlyWarningKanBanModel;
import cn.estsh.i3plus.pojo.mes.model.MesKanBanShowModel;
import java.text.ParseException;
import java.util.List;
public interface IMesEarlyWarningService {
/**
* id
* idList 1
*
*
*/
List<MesEarlyWarningKanBan> getEarlyWarningList(String organizeCode);
/**
*
* @param model
*/
void saveEarlyWarning(MesEarlyWarningKanBanModel model);
/**
*
* @param earlyWarning
*/
void updateEarlyWarning(MesEarlyWarningKanBan earlyWarning);
/**
*
*/
void deleteEarlyWarning(Long id, String organizeCode,String userName);
/**
*
* @param id
*/
MesEarlyWarningKanBan getKanbanData(Long id,String organizeCode);
/**
*
* @param id
*/
MesKanBanShowModel getData(Long id, String organizeCode) throws ParseException;
/**
*
* @param model
*/
void savePicture(KanBanPictureModel model);
}

@ -0,0 +1,121 @@
package cn.estsh.i3plus.ext.mes.apiservice.controller.busi;
import cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.busi.MesEarlyWarningServiceImpl;
import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant;
import cn.estsh.i3plus.pojo.mes.bean.MesEarlyWarningKanBan;
import cn.estsh.i3plus.pojo.mes.model.KanBanPictureModel;
import cn.estsh.i3plus.pojo.mes.model.MesEarlyWarningKanBanModel;
import cn.estsh.i3plus.pojo.mes.model.MesKanBanShowModel;
import cn.estsh.impp.framework.boot.util.ResultBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.text.ParseException;
import java.util.List;
@RestController
@RequestMapping(MesCommonConstant.MES_YANFEN + "/earlyWarningKanBan")
public class MesEarlyWarningKanBanController {
@Autowired
private MesEarlyWarningServiceImpl mesEarlyWarningService;
/**
* 线
*
* @param organizeCode
* @return
*/
@GetMapping(path = "/list/{organizeCode}")
public ResultBean getEarlyWarningList(@PathVariable String organizeCode) {
List<MesEarlyWarningKanBan> list;
try {
list = mesEarlyWarningService.getEarlyWarningList(organizeCode);
} catch (Exception e) {
return ResultBean.fail(e.getMessage());
}
return ResultBean.success("查询成功").setResultList(list);
}
/**
*
*
* @param model
* @return
*/
@PostMapping(path = "/save")
public ResultBean saveEarlyWarningList(@RequestBody MesEarlyWarningKanBanModel model) {
try {
mesEarlyWarningService.saveEarlyWarning(model);
} catch (Exception e) {
return ResultBean.fail(e.getMessage());
}
return ResultBean.success("查询成功");
}
/**
*
*
* @param earlyWarning
*/
@PostMapping(path = "/update")
public ResultBean updateEarlyWarning(@RequestBody MesEarlyWarningKanBan earlyWarning) {
try {
mesEarlyWarningService.updateEarlyWarning(earlyWarning);
} catch (Exception e) {
return ResultBean.fail(e.getMessage());
}
return ResultBean.success("更新成功");
}
/**
*
*/
@GetMapping(path = "/delete/{id}/{organizeCode}/{userName}")
public ResultBean deleteEarlyWarning(@PathVariable Long id, @PathVariable String organizeCode, @PathVariable String userName) {
try {
mesEarlyWarningService.deleteEarlyWarning(id, organizeCode, userName);
} catch (Exception e) {
return ResultBean.fail(e.getMessage());
}
return ResultBean.success("删除成功");
}
/**
*
*/
@GetMapping(path = "/get/{id}/{organizeCode}")
public ResultBean getKanbanData(@PathVariable Long id, @PathVariable String organizeCode) {
MesEarlyWarningKanBan kanbanData = null;
try {
kanbanData = mesEarlyWarningService.getKanbanData(id, organizeCode);
} catch (Exception e) {
return ResultBean.fail(e.getMessage());
}
return ResultBean.success("查询成功").setResultObject(kanbanData);
}
@GetMapping(path = "/getData/{id}/{organizeCode}")
public ResultBean getData(@PathVariable Long id, @PathVariable String organizeCode) {
MesKanBanShowModel data = null;
try {
data = mesEarlyWarningService.getData(id, organizeCode);
} catch (Exception e) {
ResultBean.fail(e.getMessage());
}
return ResultBean.success("查询成功").setResultObject(data);
}
@PostMapping(path = "/save/picture")
public ResultBean savePicture(@RequestBody KanBanPictureModel kanBanPicture){
try {
mesEarlyWarningService.savePicture(kanBanPicture);
} catch (Exception e) {
throw new RuntimeException(e);
}
return ResultBean.success("保存成功");
}
}

@ -531,6 +531,7 @@ public class MesPackageRoundnessService implements IRoundnessStrategy {
mesQueueOrder.setCustOrderNo(mesWorkOrder.getCustOrderNo()); mesQueueOrder.setCustOrderNo(mesWorkOrder.getCustOrderNo());
mesQueueOrder.setWorkCenterCode(mesWorkOrder.getWorkCenterCode()); mesQueueOrder.setWorkCenterCode(mesWorkOrder.getWorkCenterCode());
mesQueueOrder.setAreaCode(mesWorkOrder.getAreaCode()); mesQueueOrder.setAreaCode(mesWorkOrder.getAreaCode());
mesQueueOrder.setOrderFlag(mesWorkOrder.getOrderFlag());
ConvertBean.saveOrUpdate(mesQueueOrder, "MES-JOB"); ConvertBean.saveOrUpdate(mesQueueOrder, "MES-JOB");
queueOrderRao.insert(mesQueueOrder); queueOrderRao.insert(mesQueueOrder);
} }

@ -0,0 +1,403 @@
package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.busi;
import cn.estsh.i3plus.ext.mes.api.busi.IMesEarlyWarningService;
import cn.estsh.i3plus.ext.mes.apiservice.utils.MesException;
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
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.*;
import cn.estsh.i3plus.pojo.mes.bean.edi.wh.order.MesCimGmGepics;
import cn.estsh.i3plus.pojo.mes.model.KanBanPictureModel;
import cn.estsh.i3plus.pojo.mes.model.MesEarlyWarningKanBanModel;
import cn.estsh.i3plus.pojo.mes.model.MesKanBanShowModel;
import cn.estsh.i3plus.pojo.mes.repository.*;
import cn.estsh.i3plus.pojo.mes.repository.wh.MesCimGmGepicsRepository;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.persistence.EntityManager;
import javax.persistence.Query;
import java.lang.reflect.InvocationTargetException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
@Slf4j
@Service
public class MesEarlyWarningServiceImpl implements IMesEarlyWarningService {
@Autowired
private MesEarlyWarningKanBanRepository earlyWarningKanBanRao;
@Autowired
private MesCimGmGepicsRepository cimGmGepicsRao;
@Autowired
private MesWorkOrderAssemblyRepository workOrderAssemblyRao;
@Autowired
private MesWorkOrderRepository workOrderRao;
@Autowired
private EntityManager entityManager;
@Autowired
private MesEarlyWarningRecordRepository earlyWarningRecordRao;
@Autowired
private MesQueueOrderRepository queueOrderRao;
@Override
public List<MesEarlyWarningKanBan> getEarlyWarningList(String organizeCode) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
return earlyWarningKanBanRao.findByHqlWhere(ddlPackBean);
}
@Override
public void saveEarlyWarning(MesEarlyWarningKanBanModel model) {
MesEarlyWarningKanBan kanBan = new MesEarlyWarningKanBan();
try {
BeanUtils.copyProperties(kanBan,model);
} catch (IllegalAccessException | InvocationTargetException e) {
log.error(e.getMessage());
MesException.throwMesBusiException("类型转换出错!"+e.getMessage());
}
ConvertBean.saveOrUpdate(kanBan,model.getCreateUser());
earlyWarningKanBanRao.insert(kanBan);
}
@Override
public void updateEarlyWarning(MesEarlyWarningKanBan earlyWarning) {
ConvertBean.saveOrUpdate(earlyWarning,earlyWarning.getCreateUser());
earlyWarningKanBanRao.insert(earlyWarning);
}
@Override
public void deleteEarlyWarning(Long id, String organizeCode,String userName) {
earlyWarningKanBanRao.deleteWeaklyByProperties(new String[]{"id","organizeCode"},new Object[]{id,organizeCode},userName);
}
@Override
public MesEarlyWarningKanBan getKanbanData(Long id,String organizeCode) {
List<MesEarlyWarningKanBan> list = earlyWarningKanBanRao.findByProperty(new String[]{"id", "organizeCode"}, new Object[]{id, organizeCode});
if (!list.isEmpty()){
return list.get(0);
}
return new MesEarlyWarningKanBan();
}
@Override
public MesKanBanShowModel getData(Long id, String organizeCode) throws ParseException {
DdlPackBean earlyWarningKanBanPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getNumEqualPack(id, "id", earlyWarningKanBanPackBean);
List<MesEarlyWarningKanBan> list = earlyWarningKanBanRao.findByHqlTopWhere(earlyWarningKanBanPackBean, 1);
if (list.isEmpty()) {
return new MesKanBanShowModel();
}
MesEarlyWarningKanBan kanBan = list.get(0);
String jacInfoPoint = kanBan.getJacInfoPoint();
int custOnlineInfo = kanBan.getCustOnlineInfo();
String workCenterCode = kanBan.getWorkCenterCode();
String workCellCode = kanBan.getWorkCellCode();
//1.获取最近的20条v107信息
List<MesCimGmGepics> gmGepicsList = getlastDataList(1, jacInfoPoint, organizeCode, 20);
//2.获取最新的一条报文信息,取gmGepicsList的第一条
MesCimGmGepics lastCimGmGepics = gmGepicsList.get(0);
//3.获取最新的一条报文信息
List<MesCimGmGepics> gmGepicsListOne = getlastDataList(custOnlineInfo, jacInfoPoint, organizeCode, 1);
MesCimGmGepics lastOne = gmGepicsListOne.get(0);
if (lastOne==null){
return new MesKanBanShowModel();
}
//4.获取最新工位单号 获取工单的产线和工位的最新的工单
MesWorkOrder lastWorkOrder = getLastWorkOrder(workCenterCode, workCellCode, organizeCode);
//5.获取最新下线工单
MesWorkOrder lastOfflineOrder = getLastOfflineOrder(workCenterCode, organizeCode);
if (lastWorkOrder == null){
//todo 暂时
lastWorkOrder = lastOfflineOrder;
}
//6.查询报警产量 & 获取开班起始时间
String dStart;
Date now = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String date = sdf.format(now);
String tempStartDatetime = date + " " + kanBan.getShiftStartTime() + ":00";
Date shiftStartTime = sdf1.parse(tempStartDatetime);
//如果小于当前时间,显示前一天的统计
Calendar calendar = Calendar.getInstance();
if (shiftStartTime.before(now)) {
calendar.setTime(now);
calendar.add(Calendar.DATE, -1);
} else {
calendar.setTime(shiftStartTime);
}
String realEndTime = sdf1.format(calendar.getTime());
//7.根据条件获取工单的数量
Integer workCounts = getWorkCounts(realEndTime, organizeCode, workCenterCode);
//8.查询报警产量
Calendar calendar1 = Calendar.getInstance();
calendar1.setTime(now);
int productCount = kanBan.getProductCount();
int productDay = kanBan.getProductDay();
calendar1.add(Calendar.DATE,-productDay);
List<String> vehicleNoList = getCLWarning(sdf1.format(calendar1.getTime()), productCount,organizeCode);
//9.汇总数据
return doGetSGMData(kanBan, gmGepicsList, lastCimGmGepics, lastOne, lastWorkOrder, lastOfflineOrder, workCounts, vehicleNoList);
}
@Override
public void savePicture(KanBanPictureModel model) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(model.getOrganizeCode());
DdlPreparedPack.getNumEqualPack(model.getId(),"id", ddlPackBean);
earlyWarningRecordRao.updateByProperties(new String[]{"picture"},new Object[]{model.getPicture()},ddlPackBean);
}
/**
* 20
* @param type 1
* @param gaRule
* @return
*/
private List<MesCimGmGepics> getlastDataList(int type, String gaRule,String organizeCode,Integer count){
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getNumEqualPack(type,"type",ddlPackBean);
if (!StringUtils.isEmpty(gaRule)){
DdlPreparedPack.getStringEqualPack(gaRule,"gaRule",ddlPackBean);
}
DdlPreparedPack.getStringEqualPack(organizeCode,"organizeCode",ddlPackBean);
DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue(),CommonEnumUtil.ASC_OR_DESC.DESC.getValue()},new String[]{"createDatetime","rowNo"},ddlPackBean);
return cimGmGepicsRao.findByHqlTopWhere(ddlPackBean,count);
}
/**
* 线
* status 4090
* sort_flag E X
* @param workCenterCode
* @param workCellCode
* @param organizeCode
* @return
*/
private MesWorkOrder getLastWorkOrder(String workCenterCode,String workCellCode,String organizeCode){
//工单status 不是 40已关闭90已拆解 状态
//工单sort_flag 不是 E X单
//工单order_type 类型为 排序单类型
//工单 cust_order_code 不为空
//工单 的id in装配件清单表中 工位等于@workCellCode 且 status = 1
//工单 productSeq = work_order表中最大的排序信息 【work_order 的id in (装配件清单表中 工位等于@workCellCode 且 status = 1 已经装配) 产线=order_type = 排序单sort_flag 不为 x ,E;status not in 入参1入参2cust_order_code不为空】
// workOrderAssembly
DdlPackBean assemblyPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(workCenterCode,"workCenterCode",assemblyPackBean);
DdlPreparedPack.getStringEqualPack(workCellCode,"workCellCode",assemblyPackBean);
DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.ASSEMBLY_STATUS.ASSEMBLY_STATUS_10.getValue(),"assemblyStatus",assemblyPackBean);
List<MesWorkOrderAssembly> mesWorkOrderAssemblyList = workOrderAssemblyRao.findByHqlWhere(assemblyPackBean);
List<String> workOrderNoList = mesWorkOrderAssemblyList.stream().map(MesWorkOrderAssembly::getWorkOrderNo).distinct().collect(Collectors.toList());
List<Integer> orderStatusList = new ArrayList<>();
orderStatusList.add(MesExtEnumUtil.ORDER_STATUS.CLOSE.getValue());
orderStatusList.add(MesExtEnumUtil.ORDER_STATUS.DISMANTLE.getValue());
List<String> orderFlagList = new ArrayList<>();
orderFlagList.add(MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.E.getValue());
orderFlagList.add(MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.X.getValue());
DdlPackBean queueOrderPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getInPackList(workOrderNoList,"workOrderNo",queueOrderPackBean);
DdlPreparedPack.getStringEqualPack(workCenterCode,"workCenterCode",queueOrderPackBean);
DdlPreparedPack.getStringEqualPack(workCellCode,"workCellCode",queueOrderPackBean);
DdlPreparedPack.getNotInPack(orderFlagList,"orderFlag",queueOrderPackBean);
DdlPreparedPack.getStringNotBlanklPack("custOrderNo",queueOrderPackBean);
DdlPreparedPack.getOrderBy("productSeq",CommonEnumUtil.ASC_OR_DESC.DESC.getValue(), queueOrderPackBean);
//先查对列表,找到对应产线工位的工单
List<MesQueueOrder> queueOrderList = queueOrderRao.findByHqlWhere(queueOrderPackBean);
//过滤掉关闭和拆解的工单
List<String> workOrderNoQueueList = queueOrderList.stream().map(MesQueueOrder::getWorkOrderNo).distinct().collect(Collectors.toList());
DdlPackBean orderPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getInPackList(workOrderNoQueueList,"workOrderNo",orderPackBean);
DdlPreparedPack.getInPackList(orderStatusList,"workOrderStatus",orderPackBean);
DdlPreparedPack.getOrderBy("productSeq",CommonEnumUtil.ASC_OR_DESC.DESC.getValue(), orderPackBean);
List<MesWorkOrder> workOrderList = workOrderRao.findByHqlTopWhere(orderPackBean, 1);
return !workOrderList.isEmpty() ? workOrderList.get(0) : null;
}
private MesWorkOrder getLastOfflineOrder(String workCenterCode,String organizeCode){
List<String> sortFlagList = new ArrayList<>();
sortFlagList.add(MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.E.getValue());
sortFlagList.add(MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.X.getValue());
List<Integer> orderStatusList = new ArrayList<>();
orderStatusList.add(MesExtEnumUtil.ORDER_STATUS.COMPLETE.getValue());
orderStatusList.add(MesExtEnumUtil.ORDER_STATUS.SHIPPING.getValue());
DdlPackBean workOrderPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(workCenterCode,"workCenterCode",workOrderPackBean);
DdlPreparedPack.getInPackList(orderStatusList,"workOrderStatus",workOrderPackBean);
DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.ORDER_TYPE.SORT.getValue(),"workOrderType",workOrderPackBean);
DdlPreparedPack.getNotInPack(sortFlagList,"orderFlag",workOrderPackBean);
DdlPreparedPack.getStringNotBlanklPack("custOrderNo",workOrderPackBean);
List<MesWorkOrder> mesWorkOrders = workOrderRao.findByHqlTopWhere(workOrderPackBean, 1);
return mesWorkOrders.get(0);
}
private Integer getWorkCounts(String realEndTime,String organizeCode,String workCenterCode){
DdlPackBean workOrderPackBean = DdlPackBean.getDdlPackBean(organizeCode);
List<Integer> orderStatusList = new ArrayList<>();
orderStatusList.add(MesExtEnumUtil.ORDER_STATUS.COMPLETE.getValue());
orderStatusList.add(MesExtEnumUtil.ORDER_STATUS.SHIPPING.getValue());
DdlPreparedPack.getStringEqualPack(workCenterCode,"workCenterCode",workOrderPackBean);
DdlPreparedPack.getInPackList(orderStatusList,"workOrderStatus",workOrderPackBean);
DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.ORDER_TYPE.SORT.getValue(),"workOrderType",workOrderPackBean);
DdlPreparedPack.getStringBiggerPack(realEndTime,"endTime",workOrderPackBean);
DdlPreparedPack.getStringNoEqualPack(MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.X.getValue(),"orderFlag",workOrderPackBean);
return workOrderRao.findByHqlWhereCount(workOrderPackBean);
}
//报警产量
private List<String> getCLWarning(String date, int qty,String organizeCode) {
List<Integer> orderStatusList = new ArrayList<>();
orderStatusList.add(MesExtEnumUtil.ORDER_STATUS.DISMANTLE.getValue());
orderStatusList.add(MesExtEnumUtil.ORDER_STATUS.SHIPPING.getValue());
StringBuilder hql = new StringBuilder();
hql.append(" select carModelCode from MesWorkOrder");
hql.append(" where organizeCode = :organizeCode");
hql.append(" and createDatetime <= :createDatetime");
hql.append(" and workOrderStatus in (:workOrderStatus)");
hql.append(" and orderFlag != :sortFlag");
hql.append(" group by carModelCode ");
hql.append(" having count(carModelCode) <= :qty");
Query query = entityManager.createQuery(hql.toString());
query.setParameter("workOrderStatus",orderStatusList);
query.setParameter("organizeCode",organizeCode);
query.setParameter("createDatetime", date);
query.setParameter("qty", (long)qty);
query.setParameter("sortFlag", MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.X.getValue());
return (List<String>)query.getResultList();
}
//汇总数据
/**
*
* @param infoV107List
* @param infoDD
* @param infoKH 线
* @param workOrder
* @param workOrderLast 线
* @param workCount
* @param vehicleNoList
*/
private MesKanBanShowModel doGetSGMData(MesEarlyWarningKanBan kanBan,List<MesCimGmGepics> infoV107List,MesCimGmGepics infoDD, MesCimGmGepics infoKH, MesWorkOrder workOrder,MesWorkOrder workOrderLast,int workCount,List<String> vehicleNoList) {
MesKanBanShowModel mesKanBanShowModel = new MesKanBanShowModel();
//是否截图
boolean shortCut = false;
if (infoV107List.isEmpty()){
return mesKanBanShowModel;
}
for (int i = 0; i < infoV107List.size()-1; i++) {
int preCsnNo = Integer.parseInt(infoV107List.get(i+1).getCsnNo().substring(3,10));
int curCsnNo = Integer.parseInt(infoV107List.get(i).getCsnNo().substring(3,10));
if (curCsnNo != preCsnNo+1){
//需要保留截图
//需要发声音
mesKanBanShowModel.setVoice("跳号的声音");
//需要发送记录信息 当前csnNo进行了跳号
mesKanBanShowModel.setErrorMsg(String.format("当前CsnNo:%d进行了跳号",curCsnNo));
break;
}
}
// if (infoDD == null){
// return mesKanBanShowModel;
// }
// if (infoKH == null){
// return mesKanBanShowModel;
// }
// if (workOrder == null){
// return mesKanBanShowModel;
// }
// if (workOrderLast == null){
// return mesKanBanShowModel;
// }
//最新v107信息
String v107Msg = infoDD.getCsnNo() + " @ " + infoDD.getDate() + " " + infoDD.getTime();
mesKanBanShowModel.setV107Msg(v107Msg);
//最新客户上线信息
String infoKHCsnNo = infoKH.getCsnNo() + " @ " + infoKH.getDate() + " " + infoKH.getTime();
mesKanBanShowModel.setInfoKHCsnNo(infoKHCsnNo);
//生产线
String workOrderCenter = kanBan.getWorkCenterName() +" " + kanBan.getWorkCenterDescription();
mesKanBanShowModel.setWorkOrderCenter(workOrderCenter);
//供货缓冲 >=
Long supplyRedBuffer = kanBan.getSupplyRedBuffer();
mesKanBanShowModel.setSupplyRedBuffer(supplyRedBuffer);
//供货缓冲实际
Long realSupplyBuffer = Long.parseLong(infoDD.getCsnNo().substring(3,10)) - Long.parseLong(infoKH.getCsnNo().substring(3,10)) - kanBan.getOnlineAdjustNum();
mesKanBanShowModel.setRealSupplyBuffer(realSupplyBuffer);
//成品缓冲文字颜色
//private String realSupplyBufferColor;
//线头积单
Long summaryWorkOrderRedCount = kanBan.getSummaryWorkOrderRedCount();
mesKanBanShowModel.setSummaryWorkOrderRedCount(summaryWorkOrderRedCount);
//线头实际积单
long summaryRealSupplyRealCount;
String custOrderNo = workOrder.getCustOrderNo();
if(custOrderNo.length() >= 10){
summaryRealSupplyRealCount = Long.parseLong(infoDD.getCsnNo().substring(3, 10)) - Long.parseLong(workOrder.getCustOrderNo().substring(workOrderLast.getCustOrderNo().length() - 7)) - kanBan.getOnlineAdjustNum();
}else {
summaryRealSupplyRealCount = Long.parseLong(infoDD.getCsnNo().substring(infoDD.getCsnNo().length() - 5))- Long.parseLong(workOrder.getCustOrderNo().substring(workOrderLast.getCustOrderNo().length() - 7)) - kanBan.getOnlineAdjustNum();
}
mesKanBanShowModel.setSummaryRealSupplyRealCount(summaryRealSupplyRealCount);
//成品缓冲
Long productionRedBuffer =kanBan.getProductionRedBuffer();
mesKanBanShowModel.setProductionRedBuffer(productionRedBuffer);
//成品实际缓冲
Long realProductionBuffer;
if (workOrderLast.getCustOrderNo().length() >= 10){
realProductionBuffer = Long.parseLong(workOrderLast.getCustOrderNo().substring(workOrderLast.getCustOrderNo().length() - 7)) - Long.parseLong(infoKH.getCsnNo().substring(3, 10)) - kanBan.getOnlineToShippingAdjustNum();
}else {
realProductionBuffer = Long.parseLong(workOrderLast.getCustOrderNo().substring(workOrderLast.getCustOrderNo().length() - 5)) - Long.parseLong(infoKH.getCsnNo().substring(infoKH.getCsnNo().length()-5)) - kanBan.getOnlineToShippingAdjustNum();
}
mesKanBanShowModel.setRealProductionBuffer(realProductionBuffer);
//成品缓冲文字颜色
//private String realProductionBufferColor;
//声音信息
//private String voice;
//错误信息
//private String errorMsg;
//截图地址
String saveUrl = kanBan.getPictureUrl();
mesKanBanShowModel.setShortCut(shortCut);
mesKanBanShowModel.setSaveUrl(saveUrl);
if (kanBan.getRecord().equals(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue())){
MesEarlyWarningRecord record = new MesEarlyWarningRecord();
record.setWorkCenterCode(workOrderCenter);
record.setGaNo(infoDD.getCsnNo());
record.setLastGaNo(infoKH.getCsnNo());
ConvertBean.saveOrUpdate(record,"kanban");
earlyWarningRecordRao.insert(record);
mesKanBanShowModel.setRecordId(record.getId());
}
return mesKanBanShowModel;
}
}
Loading…
Cancel
Save