Merge branch 'dev' into dev-wuhan

tags/yfai-mes-ext-v2.3
yxw 8 months ago
commit 36be5c84ed

@ -16,6 +16,6 @@ import java.util.Map;
public interface IMesEquipmentVariableService extends IBaseMesService<MesEquipmentVariable> {
@ApiModelProperty("设备变量导入")
void addMesEquipmentVariable(List<Map<String, Object>> mapList, String equipmentCode, String userName, String organizeCode);
void addMesEquipmentVariable(List<Map<String, Object>> mapList, String equipmentCode, String userName, String organizeCode, String device);
}

@ -28,7 +28,7 @@ public interface IMesWorkOrderService extends IBaseMesService<MesWorkOrder> {
void doProductReportExt(MesWorkOrder mesWorkOrder);
@ApiOperation("非排序工单导入前删除")
void deleteUnSortOrder(String organizeCode, List<String> partNoList,String userName);
void doCloseUnSortOrder(String organizeCode,String userName);
@ApiOperation("汇总工单给SAP")
List<MesWorkOrderModel> sumMesWorkOrderQtyToSap(String organizeCode);

@ -1,3 +1,4 @@
import cn.estsh.i3plus.mes.apiservice.util.DateUtil
import cn.estsh.i3plus.platform.common.tool.TimeTool
import cn.estsh.i3plus.platform.plugin.datasource.DynamicDataSourceProxy
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean
@ -48,6 +49,8 @@ class MesToPiscesProductSn {
LOGGER.info("未查询到跨工厂配置");
return new ArrayList<>();
}
LOGGER.info("跨工厂配置个数{}",crossOrganizeCfgList.size());
List<Map<String, Object>> srcData = new ArrayList<>();
List<String> updateList = new ArrayList<>();
//
@ -62,15 +65,19 @@ class MesToPiscesProductSn {
}
String sql = "select * from " + mapper.getSrcTableName() + " where organize_code = :srcOrganizeCode and part_no = :partNo and create_date_time >= :createDateTime and " + mapper.getSrcWhere() + " order by " + mapper.getSrcOrderBy() + " limit " + mapper.getSrcGetLimit()
LOGGER.info("工厂:{},物料:{},时间:{}查询sql:{}",crossOrganizeCfg.getOrganizeCode(),crossOrganizeCfg.getPartNo(),params.get("createDateTime"),sql);
//
List<Map<String, Object>> dataList = queryDataTable(sql, params);
if (!CollectionUtils.isEmpty(dataList)) {
LOGGER.info("工厂:{},物料:{},查询行数:{}",crossOrganizeCfg.getSrcOrganizeCode(),crossOrganizeCfg.getPartNo(),dataList.size());
//
for (Map<String, Object> rowMap : dataList) {
rowMap.put("DEST_ORGANIZE_CODE", crossOrganizeCfg.getSrcOrganizeCode())
}
srcData.addAll(dataList);
String createDateTime = dataList.iterator().next().get("create_date_time")
String createDateTime = TimeTool.pareDateToString(DateUtil.addMinutes(TimeTool.parseDate(dataList.iterator().next().get("create_date_time")), -5));
//
updateList.add("update mes_cross_organize_cfg set last_create_date_time = '"+createDateTime+"',last_exe_time = '"+ TimeTool.getNowTime(true)+"' where id= " + crossOrganizeCfg.getId() + " ;")
}

@ -73,7 +73,7 @@ class MesToPiscesProductionAssembly {
if (!Objects.isNull(mesProductionRecord)) {
rowMap.put("PRODUCTION_LOG_FID", mesProductionRecord.getFid())
} else {
LOGGER.info("原材料容器id{},信息不存在", String.valueOf(rowMap.get("production_record_id")))
LOGGER.info("加工记录id{},信息不存在", String.valueOf(rowMap.get("production_record_id")))
}
}else{
rowMap.put("PRODUCTION_LOG_FID", null)

@ -39,6 +39,7 @@ class PiscesToMesProductSn {
LOGGER.info("未查询到跨工厂配置");
return new ArrayList<>();
}
LOGGER.info("跨工厂配置个数{}",crossOrganizeCfgList.size());
List<Map<String, Object>> srcData = new ArrayList<>();
//
for (MesCrossOrganizeCfg crossOrganizeCfg : crossOrganizeCfgList) {
@ -46,9 +47,11 @@ class PiscesToMesProductSn {
params.put("srcOrganizeCode", crossOrganizeCfg.getSrcOrganizeCode())
params.put("partNo", crossOrganizeCfg.getPartNo())
String sql = "select top "+mapper.getSrcGetLimit()+" * from " + mapper.getSrcTableName() + " where PLANT = :srcOrganizeCode and PART_NO = :partNo and " + mapper.getSrcWhere() + " order by "+mapper.getSrcOrderBy()
LOGGER.info("工厂:{},物料:{}查询sql:{}",crossOrganizeCfg.getSrcOrganizeCode(),crossOrganizeCfg.getPartNo(),sql);
//
List<Map<String, Object>> dataList = queryDataTable(sql, params);
if (!CollectionUtils.isEmpty(dataList)) {
LOGGER.info("工厂:{},物料:{},查询行数:{}",crossOrganizeCfg.getSrcOrganizeCode(),crossOrganizeCfg.getPartNo(),dataList.size());
srcData.addAll(dataList);
}
}

@ -24,7 +24,7 @@ import java.util.List;
* @CreateDate 2024/6/27 10:10
* @Modify:
**/
@ConditionalOnExpression("'${mes.aspect.repository:false}' == 'true'")
@ConditionalOnExpression("'${mes.aspect.repository:true}' == 'true'")
@Aspect
@Configuration
public class MesRepositoryAspect {

@ -33,7 +33,7 @@ public class MesEquipmentVariableController extends BaseMesController<MesEquipme
@PostMapping(value = "/import-csv")
@ApiOperation(value = "导入数据CSV")
public ResultBean importMesWorkOrderExcel(@RequestParam("file") MultipartFile file, @RequestParam("equipmentCode") String equipmentCode) {
public ResultBean importMesWorkOrderExcel(@RequestParam("file") MultipartFile file, @RequestParam("equipmentCode") String equipmentCode,@RequestParam("device") String device) {
try {
//导入csv文件
List<Map<String, Object>> mapList = CsvImportUtil.csvImports(file);
@ -42,7 +42,7 @@ public class MesEquipmentVariableController extends BaseMesController<MesEquipme
}
String userName = AuthUtil.getSessionUser().getUserName();
String organizeCode = AuthUtil.getOrganize().getOrganizeCode();
mesEquipmentVariableService.addMesEquipmentVariable(mapList, equipmentCode, userName, organizeCode);
mesEquipmentVariableService.addMesEquipmentVariable(mapList, equipmentCode, userName, organizeCode, device);
return ResultBean.success("导入成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException e) {

@ -5,6 +5,7 @@ import cn.estsh.i3plus.ext.mes.apiservice.utils.BeanUtil;
import cn.estsh.i3plus.platform.common.tool.TimeTool;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.mes.model.MesWorkOrderModel;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import lombok.extern.slf4j.Slf4j;
import org.hibernate.SQLQuery;
import org.hibernate.transform.Transformers;
@ -34,15 +35,17 @@ public class MesWorkOrderDaoImpl implements IMesWorkOrderDao {
@Override
public List<MesWorkOrderModel> sumMesWorkOrderQtyToSap(String organizeCode) {
StringBuffer hql = new StringBuffer("select organize_code as organizeCode,part_no as partNo, date_format(plan_start_time, '%Y-%m-%d' ) as planStartTime, product_version as productVersion, " +
" sum(case when work_order_status = 40 then complete_qty else qty end ) as qty " +
" sum(case when work_order_status = 40 then reported_qty else qty end ) as qty " +
" from mes_work_order where is_deleted=:isDeleted and is_valid = :isValid and organize_code = :organizeCode " +
" and work_order_type = 20 and order_flag !='P' and work_order_status != 10 and plan_start_time >= :today" +
" and work_order_type = :workOrderType and order_flag != :orderFlag and work_order_status in (20,30,40,50) and plan_start_time >= :today" +
" group by organize_code,part_no, date_format(plan_start_time, '%Y-%m-%d' ), product_version ");
Query query = entityManager.createNativeQuery(hql.toString());
query.setParameter("organizeCode", organizeCode);
query.setParameter("isValid", CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
query.setParameter("isDeleted", CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
query.setParameter("today", TimeTool.getToday());
query.setParameter("workOrderType", MesExtEnumUtil.ORDER_TYPE.UN_SORT.getValue());
query.setParameter("orderFlag", MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getValue());
query.unwrap(SQLQuery.class).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
List<HashMap<String, Object>> hashMaps = query.getResultList();

@ -10,6 +10,7 @@ import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.mes.bean.nc.MesPartInspection;
import cn.estsh.i3plus.pojo.mes.repository.MesPartInspectionRepository;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import cn.estsh.impp.framework.boot.init.ApplicationProperties;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
@ -93,7 +94,7 @@ public class MesQmsSuspiciousJob extends BaseMesScheduleJob {
List<MesPartInspection> partInspectionList = new ArrayList<>();
//排序取单件逻辑未同步的一条最新的
Map<String, List<MesPartInspection>> partSnMap = mesPartInspectionList.stream()
.filter(p -> p.getSourceType() == 10)
.filter(p -> p.getSourceType() == MesExtEnumUtil.PART_INSPECTION_SOURCE_TYPE.SINGLE.getValue())
.collect(Collectors.groupingBy(p -> p.getSn() + "-" + p.getPartNo()));
for (Map.Entry<String, List<MesPartInspection>> stringListEntry : partSnMap.entrySet()) {
List<MesPartInspection> value = stringListEntry.getValue();
@ -103,7 +104,7 @@ public class MesQmsSuspiciousJob extends BaseMesScheduleJob {
}
//批次逻辑的全部汇总数量 42692 MES:可疑品汇总逻辑更新
Map<String, List<MesPartInspection>> partMap = mesPartInspectionList.stream()
.filter(p -> p.getSourceType() == 20)
.filter(p -> p.getSourceType() == MesExtEnumUtil.PART_INSPECTION_SOURCE_TYPE.LOT.getValue())
.collect(Collectors.groupingBy(MesPartInspection::getPartNo));
for (Map.Entry<String, List<MesPartInspection>> stringListEntry : partMap.entrySet()) {
partInspectionList.addAll(stringListEntry.getValue());

@ -45,7 +45,7 @@ public class MesWorkOrderCloseOrderJob extends BaseMesScheduleJob {
String userName = "CLOSE_JOB";
for (String organizeCode : organizeCodeList) {
mesWorkOrderService.deleteUnSortOrder(organizeCode, null, userName);
mesWorkOrderService.doCloseUnSortOrder(organizeCode, userName);
}
LOGGER.info("工单关闭开始结束 ----- end");

@ -81,7 +81,7 @@ public class MesEquipmentVariableService extends BaseMesService<MesEquipmentVari
}
@Override
public void addMesEquipmentVariable(List<Map<String, Object>> mapList,String equipmentCode, String userName, String organizeCode) {
public void addMesEquipmentVariable(List<Map<String, Object>> mapList,String equipmentCode, String userName, String organizeCode, String device) {
MesEquipment mesEquipment = getMesEquipment(organizeCode,equipmentCode);
MesEquipmentChannel mesEquipmentChannel = getMesEquipmentChannel(organizeCode,equipmentCode);
@ -93,15 +93,51 @@ public class MesEquipmentVariableService extends BaseMesService<MesEquipmentVari
mesEquipmentVariable.setEquipId(mesEquipment.getEquipId());
mesEquipmentVariable.setChannel(mesEquipmentChannel.getChannel());
mesEquipmentVariable.setEquipmentCode(mesEquipment.getEquipmentCode());
mesEquipmentVariable.setTagName(String.valueOf(objects.get(0)));
mesEquipmentVariable.setTagAddress(String.valueOf(objects.get(1)));
mesEquipmentVariable.setDataType(MesExtEnumUtil.VARIABLE_DATA_TYPE.descriptionOfValue(String.valueOf(objects.get(2))));
mesEquipmentVariable.setVariableType(Integer.parseInt(objects.get(3) + ""));
mesEquipmentVariable.setReadWriteFlag(MesExtEnumUtil.READ_WRITE_FLAG.descriptionOfValue(String.valueOf(objects.get(4))));
mesEquipmentVariable.setScanInterval(Integer.valueOf(String.valueOf(objects.get(5))));
mesEquipmentVariable.setScanInterval(Integer.valueOf(String.valueOf(objects.get(5))));
mesEquipmentVariable.setDescription(String.valueOf(objects.get(15)));
mesEquipmentVariable.setTagName(String.valueOf(objectMap.get("Tag Name")));
mesEquipmentVariable.setTagAddress(String.valueOf(objectMap.get("Address")));
if ("R/W".equals(objectMap.get("Client Access").toString())) {
mesEquipmentVariable.setReadWriteFlag(MesExtEnumUtil.READ_WRITE_FLAG.READ_WRITE.getValue());
} else if ("RO".equals(objectMap.get("Client Access").toString())) {
mesEquipmentVariable.setReadWriteFlag(MesExtEnumUtil.READ_WRITE_FLAG.READ.getValue());
}
String dataType = String.valueOf(objectMap.get("Data Type"));
if ("Boolean".equals(dataType)) {
mesEquipmentVariable.setDataType(MesExtEnumUtil.VARIABLE_DATA_TYPE.VARIABLE_DATA_TYPE_40.getValue());
} else if ("Byte".equals(dataType)) {
mesEquipmentVariable.setDataType(MesExtEnumUtil.VARIABLE_DATA_TYPE.VARIABLE_DATA_TYPE_30.getValue());
} else if ("Byte".equals(dataType)) {
mesEquipmentVariable.setDataType(MesExtEnumUtil.VARIABLE_DATA_TYPE.VARIABLE_DATA_TYPE_30.getValue());
} else if ("Byte Array".equals(dataType)) {
mesEquipmentVariable.setDataType(MesExtEnumUtil.VARIABLE_DATA_TYPE.VARIABLE_DATA_TYPE_30.getValue());
} else if ("Double".equals(dataType)) {
mesEquipmentVariable.setDataType(MesExtEnumUtil.VARIABLE_DATA_TYPE.ARIABLE_DATA_TYPE_70.getValue());
} else if ("Double Array".equals(dataType)) {
mesEquipmentVariable.setDataType(MesExtEnumUtil.VARIABLE_DATA_TYPE.ARIABLE_DATA_TYPE_70.getValue());
} else if ("DWord".equals(dataType)) {
mesEquipmentVariable.setDataType(MesExtEnumUtil.VARIABLE_DATA_TYPE.VARIABLE_DATA_TYPE_50.getValue());
} else if ("Float".equals(dataType)) {
mesEquipmentVariable.setDataType(MesExtEnumUtil.VARIABLE_DATA_TYPE.ARIABLE_DATA_TYPE_60.getValue());
} else if ("Float Array".equals(dataType)) {
mesEquipmentVariable.setDataType(MesExtEnumUtil.VARIABLE_DATA_TYPE.ARIABLE_DATA_TYPE_60.getValue());
} else if ("Long".equals(dataType)) {
mesEquipmentVariable.setDataType(MesExtEnumUtil.VARIABLE_DATA_TYPE.ARIABLE_DATA_TYPE_15.getValue());
} else if ("Long Array".equals(dataType)) {
mesEquipmentVariable.setDataType(MesExtEnumUtil.VARIABLE_DATA_TYPE.ARIABLE_DATA_TYPE_15.getValue());
} else if ("Short".equals(dataType)) {
mesEquipmentVariable.setDataType(MesExtEnumUtil.VARIABLE_DATA_TYPE.VARIABLE_DATA_TYPE_10.getValue());
} else if ("Short Array".equals(dataType)) {
mesEquipmentVariable.setDataType(MesExtEnumUtil.VARIABLE_DATA_TYPE.VARIABLE_DATA_TYPE_10.getValue());
} else if ("String".equals(dataType)) {
mesEquipmentVariable.setDataType(MesExtEnumUtil.VARIABLE_DATA_TYPE.VARIABLE_DATA_TYPE_50.getValue());
} else if ("Word".equals(dataType)) {
mesEquipmentVariable.setDataType(MesExtEnumUtil.VARIABLE_DATA_TYPE.VARIABLE_DATA_TYPE_50.getValue());
}
mesEquipmentVariable.setVariableType(Integer.parseInt(String.valueOf(objectMap.get("Respect Data Type"))));
mesEquipmentVariable.setScanInterval(Integer.valueOf(String.valueOf(objectMap.get("Scan Rate"))));
mesEquipmentVariable.setDescription(String.valueOf(objectMap.get("Description")));
mesEquipmentVariable.setOrganizeCode(organizeCode);
mesEquipmentVariable.setDevice(device);
ConvertBean.serviceModelInitialize(mesEquipmentVariable, userName);
mesEquipmentVariables.add(mesEquipmentVariable);
} catch (NumberFormatException e) {

@ -5,7 +5,6 @@ import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum;
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.base.util.StringUtil;
import cn.estsh.i3plus.pojo.mes.bean.MesOrg;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.util.ValidatorBean;
@ -25,11 +24,7 @@ public class MesOrgServiceImpl extends BaseMesService<MesOrg> implements IMesOrg
@Override
protected void setPackQueryBean(MesOrg bean, DdlPackBean packBean) {
DdlPreparedPack.getStringEqualPack(bean.getInventoryLocationCode(), "inventoryLocationCode", packBean);
if(StringUtil.isEmpty(bean.getResponsibleParty())){
DdlPreparedPack.getIsNotNull( "responsibleParty", packBean);
}else {
DdlPreparedPack.getStringEqualPack(bean.getResponsibleParty(), "responsibleParty", packBean);
}
DdlPreparedPack.getStringEqualPack(bean.getResponsibleParty(), "responsibleParty", packBean);
}

@ -104,7 +104,7 @@ public class MesQmsSuspiciousService extends BaseMesService<MesQmsSuspicious> im
BeanUtils.copyProperties(mesPartInspection, partInspectionNew2);
qmsTime = mesPartInspection.getCreateDatetime().substring(0, 13) + ":00:00";
partInspectionNew2.setInspectionDate(qmsTime);
if (mesPartInspection.getSourceType()==10){
if (mesPartInspection.getSourceType()==MesExtEnumUtil.PART_INSPECTION_SOURCE_TYPE.SINGLE.getValue()){
//如果条码重复出现时,对应最早时间段的零件不是最早,则不统计在汇总数据中
DdlPackBean packBeanSn = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(mesPartInspection.getSn(), "sn", packBeanSn);
@ -155,16 +155,18 @@ public class MesQmsSuspiciousService extends BaseMesService<MesQmsSuspicious> im
double sumQty = mesPartInspections.stream().mapToDouble(MesPartInspection::getQty).sum();
mesQmsSuspicious.setInspectionQty((int) sumQty);
//一次合格数 nc_status=10 inspection_status=10
double qualifiedQty = mesPartInspections.stream().filter(m -> m.getNcStatus() == 10 && m.getInspectionStatus() == 10).mapToDouble(MesPartInspection::getQty).sum();
double qualifiedQty = mesPartInspections.stream().filter(m -> m.getNcStatus() == MesExtEnumUtil.PART_INSPECTION_NC_STATUS.CREATE.getValue()
&& m.getInspectionStatus() == MesExtEnumUtil.PART_INSPECTION_STATUS.QUALIFIED.getValue()).mapToDouble(MesPartInspection::getQty).sum();
mesQmsSuspicious.setQualifiedQty((int) qualifiedQty);
//不合格数 nc_status=10 inspection_status=20
double unqualifiedQty = mesPartInspections.stream().filter(m -> m.getNcStatus() == 10 && m.getInspectionStatus() == 20).mapToDouble(MesPartInspection::getQty).sum();
double unqualifiedQty = mesPartInspections.stream().filter(m -> m.getNcStatus() == MesExtEnumUtil.PART_INSPECTION_NC_STATUS.CREATE.getValue()
&& m.getInspectionStatus() == MesExtEnumUtil.PART_INSPECTION_STATUS.FAIL.getValue()).mapToDouble(MesPartInspection::getQty).sum();
mesQmsSuspicious.setUnqualifiedQty((int) unqualifiedQty);
//误判数量 nc_status=30 inspection_status=20
double misjudgmentQty = mesPartInspections.stream().filter(m -> m.getNcStatus() == 30).mapToDouble(MesPartInspection::getQty).sum();
double misjudgmentQty = mesPartInspections.stream().filter(m -> m.getNcStatus() == MesExtEnumUtil.PART_INSPECTION_NC_STATUS.RELEASE.getValue()).mapToDouble(MesPartInspection::getQty).sum();
mesQmsSuspicious.setMisjudgmentQty((int) misjudgmentQty);
//一次报废数 nc_status=40 inspection_status=20
double scrappedQty = mesPartInspections.stream().filter(m -> m.getNcStatus() == 40 && m.getInspectionStatus() == 20).mapToDouble(MesPartInspection::getQty).sum();
double scrappedQty = mesPartInspections.stream().filter(m -> m.getNcStatus() == MesExtEnumUtil.PART_INSPECTION_NC_STATUS.SCRAP.getValue() && m.getInspectionStatus() == MesExtEnumUtil.PART_INSPECTION_STATUS.FAIL.getValue()).mapToDouble(MesPartInspection::getQty).sum();
mesQmsSuspicious.setScrappedQty((int) scrappedQty);
//返工合格数 nc_status=50 返工单 status=20

@ -75,8 +75,8 @@ public class MesWorkOrderLogService extends BaseMesService<MesWorkOrderLog> impl
String sql = " from mes_work_order_log wol" +
" where 1=1 " +
" and wol.organize_code =:organizeCode " +
" and wol.work_order_type = '20' " +
" and wol.adjust_qty > 0 " +
// " and wol.work_order_type = '20' " +
// " and wol.adjust_qty > 0 " +
" and wol.is_deleted ='2' " +
" and wol.is_valid ='1' ";
if (!StringUtil.isEmpty(startTime)) {

@ -118,6 +118,9 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
@Autowired
private IMesCcscTaskService mesCcscTaskService;
@Autowired
private MesWorkOrderToSapRepository mesWorkOrderToSapRepository;
@Override
public MesWorkOrder insert(MesWorkOrder bean) {
//校验产线与工位的关系
@ -1034,14 +1037,28 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
}
@Override
public void deleteUnSortOrder(String organizeCode, List<String> partNoList,String userName) {
public void doCloseUnSortOrder(String organizeCode,String userName) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getInPackList(partNoList, "partNo", ddlPackBean);
DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.ORDER_TYPE.UN_SORT.getValue(), "workOrderType", ddlPackBean);
DdlPreparedPack.getStringSmallerNotEqualPack(TimeTool.getToday(), "planStartTime", ddlPackBean);
DdlPreparedPack.getNumberSmallerPack(MesExtEnumUtil.ORDER_STATUS.CLOSE.getValue(), "workOrderStatus", ddlPackBean);
baseRDao.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "workOrderStatus"},
new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.ORDER_STATUS.CLOSE.getValue()}, ddlPackBean);
List<MesWorkOrder> mesWorkOrderList = baseRDao.findByHqlWhere(ddlPackBean);
if(CollectionUtils.isEmpty(mesWorkOrderList)){
return;
}
log.info("关闭工单个数{},工单:{}",mesWorkOrderList.size(),mesWorkOrderList.stream().map(MesWorkOrder::getWorkOrderNo).collect(Collectors.toList()));
//关闭工单回传
List<String> partNoAndDataKey = mesWorkOrderList.stream().map(t -> new StringJoiner(MesExtConstWords.COMMA).add(t.getPartNo()).add(t.getProductVersion()).add(t.getPlanStartTime().substring(0, 10)).toString()).distinct().collect(Collectors.toList());
List<MesWorkOrderToSap> mesWorkOrderToSapList = new ArrayList<>();
for (String partNoAndData : partNoAndDataKey) {
MesWorkOrderToSap orderToSap = new MesWorkOrderToSap(organizeCode, partNoAndData.split(MesExtConstWords.COMMA)[0], partNoAndData.split(MesExtConstWords.COMMA)[1], 0d, partNoAndData.split(MesExtConstWords.COMMA)[2]);
ConvertBean.serviceModelInitialize(orderToSap,userName);
mesWorkOrderToSapList.add(orderToSap);
}
mesWorkOrderToSapRepository.saveAll(mesWorkOrderToSapList);
//关闭工单
baseRDao.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "workOrderStatus","systemSyncStatus"},
new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.ORDER_STATUS.CLOSE.getValue(),CommonEnumUtil.FALSE}, ddlPackBean);
}

@ -24,7 +24,7 @@ public class MesWorkOrderToSapServiceImpl extends BaseMesService<MesWorkOrderToS
//数据处理
for (MesWorkOrderModel mesWorkOrder : mesWorkOrderList) {
MesWorkOrderToSap orderToSap = new MesWorkOrderToSap(mesWorkOrder.getOrganizeCode(), mesWorkOrder.getPartNo(), mesWorkOrder.getProductVersion(), mesWorkOrder.getQty(), mesWorkOrder.getPlanStartTime());
ConvertBean.serviceModelUpdate(orderToSap,userName);
ConvertBean.serviceModelInitialize(orderToSap,userName);
mesWorkOrderToSapList.add(orderToSap);
}
baseRDao.saveAll(mesWorkOrderToSapList);

@ -522,6 +522,7 @@ public class MesSpotCheckOrderService extends BaseMesService<MesSpotCheckOrder>
MesSpotCheckOrderPart spotCheckOrderPart = new MesSpotCheckOrderPart();
spotCheckOrderPart.setSpotCheckOrderId(spotCheckOrderId);
BeanUtils.copyProperties(k, spotCheckOrderPart, "id");
spotCheckOrderPart.setSystemSyncStatus(CommonEnumUtil.FALSE);
ConvertBean.serviceModelInitialize(spotCheckOrderPart, userName);
spotCheckOrderPartList.add(spotCheckOrderPart);
});
@ -541,6 +542,7 @@ public class MesSpotCheckOrderService extends BaseMesService<MesSpotCheckOrder>
result.setSpotCheckItemId(k.getId());
result.setTaskItemName(k.getSpotCheckItemName());
result.setSpotCheckStandardValue(k.getStandardValue());
result.setSystemSyncStatus(CommonEnumUtil.FALSE);
ConvertBean.serviceModelInitialize(result, userName);
spotCheckOrderResults.add(result);
});

Loading…
Cancel
Save