Merge remote-tracking branch 'origin/dev' into dev

tags/yfai-mes-ext-v2.4
jun 6 months ago
commit 2d98ac7c86

@ -2,6 +2,8 @@ package cn.estsh.i3plus.ext.mes.api.base;
import cn.estsh.i3plus.pojo.mes.bean.MesCustomerMessagePoint; import cn.estsh.i3plus.pojo.mes.bean.MesCustomerMessagePoint;
import java.util.List;
/** /**
* @Description: * @Description:
* @CreateDate 2024/04/16 * @CreateDate 2024/04/16
@ -10,4 +12,11 @@ import cn.estsh.i3plus.pojo.mes.bean.MesCustomerMessagePoint;
public interface IMesCustomerMessagePointService extends IBaseMesService<MesCustomerMessagePoint> { public interface IMesCustomerMessagePointService extends IBaseMesService<MesCustomerMessagePoint> {
MesCustomerMessagePoint getPointByCode(String pointCode,String organizeCode); MesCustomerMessagePoint getPointByCode(String pointCode,String organizeCode);
/**
*
* @param custOrganizeCode
* @return
*/
List<MesCustomerMessagePoint> getByCustOrganizeCode(String custOrganizeCode);
} }

@ -1,15 +1,37 @@
package cn.estsh.i3plus.ext.mes.apiservice.controller.base; package cn.estsh.i3plus.ext.mes.apiservice.controller.base;
import cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base.MesCustomerMessagePointService;
import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant; import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant;
import cn.estsh.i3plus.pojo.mes.bean.MesCustomerMessagePoint; import cn.estsh.i3plus.pojo.mes.bean.MesCustomerMessagePoint;
import cn.estsh.i3plus.pojo.mes.bean.MesWorkCenter; import cn.estsh.i3plus.pojo.mes.bean.MesWorkCenter;
import cn.estsh.impp.framework.boot.util.ResultBean;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/** /**
* *
*/ */
@RestController @RestController
@RequestMapping(MesCommonConstant.MES_YANFEN + "/mesCustomerMessagePoint") @RequestMapping(MesCommonConstant.MES_YANFEN + "/mesCustomerMessagePoint")
public class MesCustomerMessagePointController extends BaseMesController<MesCustomerMessagePoint>{ public class MesCustomerMessagePointController extends BaseMesController<MesCustomerMessagePoint>{
@Autowired
private MesCustomerMessagePointService mesCustomerMessagePointService;
//根据客户工厂查找对应的信息点信息
@GetMapping("/list/{custOrganizeCode}")
@ApiOperation(value = "查询当前客户工厂的信息点", notes = "查询当前客户工厂的信息点")
public ResultBean list(@PathVariable("custOrganizeCode") String custOrganizeCode){
try {
List<MesCustomerMessagePoint> messagePoints = mesCustomerMessagePointService.getByCustOrganizeCode(custOrganizeCode);
return ResultBean.success("查询成功").setResultList(messagePoints);
} catch (Exception e) {
return ResultBean.fail("查询失败").setErrorMsg(e.getMessage());
}
}
} }

@ -6,12 +6,12 @@ import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.mes.bean.MesCustomerMessagePoint; import cn.estsh.i3plus.pojo.mes.bean.MesCustomerMessagePoint;
import cn.estsh.impp.framework.boot.auth.AuthUtil;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.util.ValidatorBean; import cn.estsh.impp.framework.boot.util.ValidatorBean;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List; import java.util.List;
@Service @Service
@ -65,4 +65,11 @@ public class MesCustomerMessagePointService extends BaseMesService<MesCustomerMe
List<MesCustomerMessagePoint> messagePoints = baseRDao.findByHqlWhere(ddlPackBean); List<MesCustomerMessagePoint> messagePoints = baseRDao.findByHqlWhere(ddlPackBean);
return messagePoints.isEmpty() ? null: messagePoints.get(0); return messagePoints.isEmpty() ? null: messagePoints.get(0);
} }
@Override
public List<MesCustomerMessagePoint> getByCustOrganizeCode(String custOrganizeCode) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(AuthUtil.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(custOrganizeCode, "custOrganizeCode", ddlPackBean);
return baseRDao.findByHqlWhere(ddlPackBean);
}
} }

@ -17,6 +17,7 @@ import cn.estsh.i3plus.pojo.mes.repository.*;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.apache.logging.log4j.util.Strings;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Propagation;
@ -270,7 +271,12 @@ public class MesCreateWorkOrderImpl implements IMesCreateWorkOrder {
Calendar custCalendar = Calendar.getInstance(); Calendar custCalendar = Calendar.getInstance();
custCalendar.setTime(new Date()); custCalendar.setTime(new Date());
GenSerialNoModel custGenSerialNoModel = new GenSerialNoModel("WH_CUST_SN_RULE"); GenSerialNoModel custGenSerialNoModel = new GenSerialNoModel("WH_CUST_SN_RULE");
String partNo = mesWorkOrder.getCustPartNo(); // String partNo = mesWorkOrder.getCustPartNo();
/**
* 2024/11/20
*
*/
String partNo = mesPartProdGroupDetail.getCustPartNo();
String prefix = partNo.substring(0, partNo.length() - 4); String prefix = partNo.substring(0, partNo.length() - 4);
String partNo4 = partNo.substring(partNo.length() - 4).toUpperCase(); String partNo4 = partNo.substring(partNo.length() - 4).toUpperCase();
custGenSerialNoModel.setPartNo(prefix + partNo4); custGenSerialNoModel.setPartNo(prefix + partNo4);
@ -433,7 +439,14 @@ public class MesCreateWorkOrderImpl implements IMesCreateWorkOrder {
orderAssemblyList = orderAssembly; orderAssemblyList = orderAssembly;
} }
} }
/**
* pisces
* add by aix 2017.4.11 PTRWORKORDERASSEMBLYpartdesc
*/
if (!Objects.isNull(orderAssemblyList)){ if (!Objects.isNull(orderAssemblyList)){
if (orderAssemblyList.getDisplaySeq()!=null && orderAssemblyList.getDisplaySeq()!=0){
orderAssemblyList.setDisplayValue(mesPartPtr.getVisualItem());
}
orderAssemblyList.setAssemblyPartNo(mesPartSap.getPartNo()); orderAssemblyList.setAssemblyPartNo(mesPartSap.getPartNo());
orderAssemblyList.setAssemblyPartName(mesPartSap.getPartName()); orderAssemblyList.setAssemblyPartName(mesPartSap.getPartName());
orderAssemblyList.setMatchRule(mesPartPtr.getReplacePartSnRule()); orderAssemblyList.setMatchRule(mesPartPtr.getReplacePartSnRule());
@ -477,6 +490,7 @@ public class MesCreateWorkOrderImpl implements IMesCreateWorkOrder {
workOrderPartRao.saveAll(workOrderPartList); workOrderPartRao.saveAll(workOrderPartList);
mesWorkOrder.setProductSeq(productSeq); mesWorkOrder.setProductSeq(productSeq);
mesWorkOrder.setPartProdGroupName(partProdGroup.getPartProdGroupName()); mesWorkOrder.setPartProdGroupName(partProdGroup.getPartProdGroupName());
mesWorkOrder.setPtrInfo(ptrInfos.toString());
ConvertBean.saveOrUpdate(mesWorkOrder, "MES-JOB"); ConvertBean.saveOrUpdate(mesWorkOrder, "MES-JOB");
mesWorkOrderRao.insert(mesWorkOrder); mesWorkOrderRao.insert(mesWorkOrder);
/** /**

@ -262,15 +262,18 @@ public class MesEarlyWarningServiceImpl implements IMesEarlyWarningService {
//先查对列表,找到对应产线工位的工单 //先查对列表,找到对应产线工位的工单
List<MesQueueOrder> queueOrderList = queueOrderRao.findByHqlTopWhere(queueOrderPackBean,1); List<MesQueueOrder> queueOrderList = queueOrderRao.findByHqlTopWhere(queueOrderPackBean,1);
//过滤掉关闭和拆解的工单 //过滤掉关闭和拆解的工单
List<Integer> orderStatusList1 = new ArrayList<>(); List<MesWorkOrder> workOrderList = new ArrayList<>();
orderStatusList1.add(MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue()); if (!queueOrderList.isEmpty()){
orderStatusList1.add(MesExtEnumUtil.ORDER_STATUS.PROCESS.getValue()); List<Integer> orderStatusList1 = new ArrayList<>();
List<String> workOrderNoQueueList = queueOrderList.stream().map(MesQueueOrder::getWorkOrderNo).distinct().collect(Collectors.toList()); orderStatusList1.add(MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue());
DdlPackBean orderPackBean = DdlPackBean.getDdlPackBean(organizeCode); orderStatusList1.add(MesExtEnumUtil.ORDER_STATUS.PROCESS.getValue());
DdlPreparedPack.getInPackList(workOrderNoQueueList,"workOrderNo",orderPackBean); List<String> workOrderNoQueueList = queueOrderList.stream().map(MesQueueOrder::getWorkOrderNo).distinct().collect(Collectors.toList());
DdlPreparedPack.getInPackList(orderStatusList1,"workOrderStatus",orderPackBean); DdlPackBean orderPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getOrderBy("productSeq",CommonEnumUtil.ASC_OR_DESC.ASC.getValue(), orderPackBean); DdlPreparedPack.getInPackList(workOrderNoQueueList,"workOrderNo",orderPackBean);
List<MesWorkOrder> workOrderList = workOrderRao.findByHqlTopWhere(orderPackBean, 1); DdlPreparedPack.getInPackList(orderStatusList1,"workOrderStatus",orderPackBean);
DdlPreparedPack.getOrderBy("productSeq",CommonEnumUtil.ASC_OR_DESC.ASC.getValue(), orderPackBean);
workOrderList = workOrderRao.findByHqlTopWhere(orderPackBean, 1);
}
return !workOrderList.isEmpty() ? workOrderList.get(0) : null; return !workOrderList.isEmpty() ? workOrderList.get(0) : null;
} }
@ -291,7 +294,7 @@ public class MesEarlyWarningServiceImpl implements IMesEarlyWarningService {
DdlPreparedPack.getStringNotBlanklPack("custOrderNo",workOrderPackBean); DdlPreparedPack.getStringNotBlanklPack("custOrderNo",workOrderPackBean);
DdlPreparedPack.getOrderBy("productSeq",CommonEnumUtil.ASC_OR_DESC.DESC.getValue(), workOrderPackBean); DdlPreparedPack.getOrderBy("productSeq",CommonEnumUtil.ASC_OR_DESC.DESC.getValue(), workOrderPackBean);
List<MesWorkOrder> mesWorkOrders = workOrderRao.findByHqlTopWhere(workOrderPackBean, 1); List<MesWorkOrder> mesWorkOrders = workOrderRao.findByHqlTopWhere(workOrderPackBean, 1);
return mesWorkOrders.get(0); return !mesWorkOrders.isEmpty() ? mesWorkOrders.get(0): null;
} }
private Integer getWorkCounts(String realEndTime,String organizeCode,String workCenterCode){ private Integer getWorkCounts(String realEndTime,String organizeCode,String workCenterCode){
@ -404,6 +407,9 @@ public class MesEarlyWarningServiceImpl implements IMesEarlyWarningService {
mesKanBanShowModel.setSupplyRedBuffer(supplyRedBuffer); mesKanBanShowModel.setSupplyRedBuffer(supplyRedBuffer);
//供货缓冲实际 //供货缓冲实际
Long realSupplyBuffer = Long.parseLong(infoDD.getCsnNo().substring(3,10)) - Long.parseLong(infoKH.getCsnNo().substring(3,10)) - kanBan.getOnlineAdjustNum(); Long realSupplyBuffer = Long.parseLong(infoDD.getCsnNo().substring(3,10)) - Long.parseLong(infoKH.getCsnNo().substring(3,10)) - kanBan.getOnlineAdjustNum();
if (realSupplyBuffer < 0){
realSupplyBuffer = 0L;
}
mesKanBanShowModel.setRealSupplyBuffer(realSupplyBuffer); mesKanBanShowModel.setRealSupplyBuffer(realSupplyBuffer);
if (realSupplyBuffer < supplyRedBuffer){ if (realSupplyBuffer < supplyRedBuffer){
mesKanBanShowModel.setRealSupplyBufferColor("red"); mesKanBanShowModel.setRealSupplyBufferColor("red");
@ -412,6 +418,7 @@ public class MesEarlyWarningServiceImpl implements IMesEarlyWarningService {
mesKanBanShowModel.setRealSupplyBufferColor("yellow"); mesKanBanShowModel.setRealSupplyBufferColor("yellow");
mesKanBanShowModel.setSupplyRedBuffer(supplyYellowBuffer); mesKanBanShowModel.setSupplyRedBuffer(supplyYellowBuffer);
} }
//线头积单 //线头积单
Long summaryWorkOrderRedCount = kanBan.getSummaryWorkOrderRedCount(); Long summaryWorkOrderRedCount = kanBan.getSummaryWorkOrderRedCount();
mesKanBanShowModel.setSummaryWorkOrderRedCount(summaryWorkOrderRedCount); mesKanBanShowModel.setSummaryWorkOrderRedCount(summaryWorkOrderRedCount);
@ -440,9 +447,9 @@ public class MesEarlyWarningServiceImpl implements IMesEarlyWarningService {
//成品实际缓冲 //成品实际缓冲
Long realProductionBuffer; Long realProductionBuffer;
if (workOrderLast.getCustOrderNo().length() >= 10){ if (workOrderLast.getCustOrderNo().length() >= 10){
realProductionBuffer = Long.parseLong(workOrderLast.getCustOrderNo().substring(workOrderLast.getCustOrderNo().length() - 7)) - Long.parseLong(infoKH.getCsnNo().substring(3, 10)) - kanBan.getOnlineAdjustNum() ; realProductionBuffer = Long.parseLong(workOrderLast.getCustOrderNo().substring(workOrderLast.getCustOrderNo().length() - 7)) - Long.parseLong(infoKH.getCsnNo().substring(3, 10)) - kanBan.getOnlineToShippingAdjustNum() ;
}else { }else {
realProductionBuffer = Long.parseLong(workOrderLast.getCustOrderNo().substring(workOrderLast.getCustOrderNo().length() - 5)) - Long.parseLong(infoKH.getCsnNo().substring(infoKH.getCsnNo().length()-5)) - kanBan.getOnlineAdjustNum() ; realProductionBuffer = Long.parseLong(workOrderLast.getCustOrderNo().substring(workOrderLast.getCustOrderNo().length() - 5)) - Long.parseLong(infoKH.getCsnNo().substring(infoKH.getCsnNo().length()-5)) - kanBan.getOnlineToShippingAdjustNum() ;
} }
if(realProductionBuffer <0){ if(realProductionBuffer <0){

@ -79,13 +79,28 @@ public class AssemblyVisualListPrintStrategy implements IPrintTemplateStrategySe
// 总个数 // 总个数
Integer totalCount = partProdGroup.getTotalCount(); Integer totalCount = partProdGroup.getTotalCount();
Map<Integer, List<MesWorkOrderAssembly>> collect = workOrderAssemblyList.stream().collect(Collectors.groupingBy(MesWorkOrderAssembly::getDisplaySeq));
// 为空时显示内容 // 为空时显示内容
String isNullViewContent = StringUtils.isEmpty(partProdGroup.getIsNullViewContent()) ? "" : partProdGroup.getIsNullViewContent(); String isNullViewContent = StringUtils.isEmpty(partProdGroup.getIsNullViewContent()) ? "" : partProdGroup.getIsNullViewContent();
for (Integer index = 0; index < totalCount; index++) { for (int index = 0; index < collect.size(); index++) {
String displayValue = workOrderAssemblyList.size() -1 < index ? isNullViewContent : workOrderAssemblyList.get(index).getDisplayValue(); List<MesWorkOrderAssembly> orderAssemblyList = collect.get(index+1);
List<String> disPlayValues = orderAssemblyList.stream().map(MesWorkOrderAssembly::getDisplayValue).distinct().collect(Collectors.toList());
String displayValue =isNullViewContent;
if(!disPlayValues.isEmpty()){
displayValue = String.join("\r\n", disPlayValues);
}
// String displayValue = workOrderAssemblyList.size() -1 < index ? isNullViewContent : workOrderAssemblyList.get(index).getDisplayValue();
resultMap.put(MesExtConstWords.ASSEMBLY_PARAM + (index+1), StringUtils.isEmpty(displayValue) ? StringUtils.isEmpty(isNullViewContent) ? "" : null : displayValue); // resultMap.put(MesPcnExtConstWords.ASSEMBLY_PARAM + (index+1), StringUtils.isEmpty(displayValue) ? StringUtils.isEmpty(isNullViewContent) ? "" : isNullViewContent : displayValue);
resultMap.put(MesExtConstWords.ASSEMBLY_PARAM + (index+1), displayValue);
} }
// 为空时显示内容
// String isNullViewContent = StringUtils.isEmpty(partProdGroup.getIsNullViewContent()) ? "" : partProdGroup.getIsNullViewContent();
// for (Integer index = 0; index < totalCount; index++) {
// String displayValue = workOrderAssemblyList.size() -1 < index ? isNullViewContent : workOrderAssemblyList.get(index).getDisplayValue();
//
// resultMap.put(MesExtConstWords.ASSEMBLY_PARAM + (index+1), StringUtils.isEmpty(displayValue) ? StringUtils.isEmpty(isNullViewContent) ? "" : null : displayValue);
// }
printDataMapList.add(resultMap); printDataMapList.add(resultMap);

Loading…
Cancel
Save