问题清单修复

tags/yfai-mes-ext-v1.0
jun 12 months ago
parent c94dc6e14c
commit ddd22117b1

@ -2,6 +2,7 @@ package cn.estsh.i3plus.ext.mes.api.base;
import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder; import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder;
import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrderLog; import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrderLog;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
/** /**
* @Description: * @Description:
@ -10,5 +11,5 @@ import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrderLog;
*/ */
public interface IMesWorkOrderLogService extends IBaseMesService<MesWorkOrderLog> { public interface IMesWorkOrderLogService extends IBaseMesService<MesWorkOrderLog> {
void saveMesWorkOrderLog(MesWorkOrder mesWorkOrder); void saveMesWorkOrderLog(MesWorkOrder mesWorkOrder, MesExtEnumUtil.WORK_ORDER_LOG_TYPE type,double qty);
} }

@ -1,3 +1,4 @@
import cn.estsh.i3plus.platform.plugin.datasource.DynamicDataSourceProxy
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean import cn.estsh.i3plus.pojo.base.bean.DdlPackBean
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack
import cn.estsh.i3plus.pojo.mes.bean.MesEquipment import cn.estsh.i3plus.pojo.mes.bean.MesEquipment
@ -7,9 +8,16 @@ import cn.estsh.i3plus.pojo.mes.dbinterface.MesInterfaceDataMapper
import cn.estsh.i3plus.pojo.mes.repository.MesEquipmentRepository import cn.estsh.i3plus.pojo.mes.repository.MesEquipmentRepository
import cn.estsh.i3plus.pojo.mes.repository.MesProduceSnRepository import cn.estsh.i3plus.pojo.mes.repository.MesProduceSnRepository
import cn.estsh.i3plus.pojo.mes.repository.MesWorkOrderRepository import cn.estsh.i3plus.pojo.mes.repository.MesWorkOrderRepository
import lombok.Getter
import lombok.Setter
import org.slf4j.Logger import org.slf4j.Logger
import org.slf4j.LoggerFactory import org.slf4j.LoggerFactory
import org.springframework.beans.factory.annotation.Autowired import org.springframework.beans.factory.annotation.Autowired
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate
import org.springframework.util.CollectionUtils
import javax.annotation.Resource
import java.sql.Connection
/** /**
* @Description : MES2PISCES * @Description : MES2PISCES
@ -31,19 +39,35 @@ class MesProductionRecordToPisces {
@Autowired @Autowired
private MesWorkOrderRepository workOrderRepository; private MesWorkOrderRepository workOrderRepository;
@Resource(name = "piscesDataSource")
private DynamicDataSourceProxy piscesDataSource;
@Resource(name = "mesDataSource")
private DynamicDataSourceProxy mesDataSource;
@Getter
@Setter
private Connection mesConn;
def filterData(MesInterfaceDataMapper mapper, List<Map<String, Object>> srcData) throws Exception { def filterData(MesInterfaceDataMapper mapper, List<Map<String, Object>> srcData) throws Exception {
if (srcData == null || srcData.size() == 0) { if (srcData == null || srcData.size() == 0) {
return srcData return srcData
} }
List<String> updateList = new ArrayList<>();
List<Map<String, Object>> destData = new ArrayList<>();
for (Map<String, Object> rowMap : srcData) { for (Map<String, Object> rowMap : srcData) {
String productSn = String.valueOf(rowMap.get("product_sn")); Map<String, Object> params = new HashMap<>();
String partNo = String.valueOf(rowMap.get("part_no")); params.put("partNo",rowMap.get("part_no"))
params.put("productSn",rowMap.get("product_sn"))
MesProduceSn produceSnDb = getProduceSnDb(mapper.getOrganizeCode(), productSn, partNo); String sql = "select ID from MES.TT_PC_PART_BARCODE where PART_NO = :partNo and BARCODE = :productSn order by GENERATION_TIME desc";
if (!Objects.isNull(produceSnDb)) { List<Map<String, Object>> dataMap = queryDataTable(sql,params);
rowMap.put("BARCODE_ID", produceSnDb.getId())
if (!CollectionUtils.isEmpty(dataMap) && dataMap.size() >0) {
rowMap.put("BARCODE_ID", dataMap.iterator().next().get("ID"))
updateList.add("update mes_production_record set system_sync_status = 1 where id= "+rowMap.get("id")+" ;")
}else{
continue
} }
String workOrderNo = String.valueOf(rowMap.get("work_order_no")); String workOrderNo = String.valueOf(rowMap.get("work_order_no"));
@ -57,10 +81,17 @@ class MesProductionRecordToPisces {
if (!Objects.isNull(equipmentDb)) { if (!Objects.isNull(equipmentDb)) {
rowMap.put("EQUIPMENT_ID", equipmentDb.getEquipId()) rowMap.put("EQUIPMENT_ID", equipmentDb.getEquipId())
} }
destData.add(rowMap);
}
//
if(!CollectionUtils.isEmpty(updateList) && updateList.size() > 0){
this.mesConn = mesDataSource.getWriteConnectionWithoutPool();
mesDataSource.executeAsBatch(updateList,mesConn)
mesDataSource.closeConnectionWithoutPoll(this.mesConn)
} }
return srcData; return destData;
} }
def getProduceSnDb(String organizeCode, String productSn, String partNo) { def getProduceSnDb(String organizeCode, String productSn, String partNo) {
@ -85,4 +116,10 @@ class MesProductionRecordToPisces {
return equipmentDb; return equipmentDb;
} }
private List<Map<String, Object>> queryDataTable(String sql, Map<String, Object> params) {
NamedParameterJdbcTemplate namedJdbcTemplate = new NamedParameterJdbcTemplate(piscesDataSource.getDataSource())
List<Map<String, Object>> dataMap = namedJdbcTemplate.queryForList(sql, params)
return dataMap;
}
} }

@ -3,6 +3,7 @@ package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base;
import cn.estsh.i3plus.ext.mes.api.base.IMesWorkOrderLogService; import cn.estsh.i3plus.ext.mes.api.base.IMesWorkOrderLogService;
import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder; import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder;
import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrderLog; import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrderLog;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -12,9 +13,11 @@ import org.springframework.stereotype.Service;
public class MesWorkOrderLogService extends BaseMesService<MesWorkOrderLog> implements IMesWorkOrderLogService { public class MesWorkOrderLogService extends BaseMesService<MesWorkOrderLog> implements IMesWorkOrderLogService {
@Override @Override
public void saveMesWorkOrderLog(MesWorkOrder mesWorkOrder) { public void saveMesWorkOrderLog(MesWorkOrder mesWorkOrder, MesExtEnumUtil.WORK_ORDER_LOG_TYPE type, double qty) {
MesWorkOrderLog workOrderLog = new MesWorkOrderLog(); MesWorkOrderLog workOrderLog = new MesWorkOrderLog();
BeanUtils.copyProperties(mesWorkOrder, workOrderLog, "id"); BeanUtils.copyProperties(mesWorkOrder, workOrderLog, "id");
workOrderLog.setType(type.getValue());
workOrderLog.setModifyQty(qty);
baseRDao.insert(workOrderLog); baseRDao.insert(workOrderLog);
} }
} }

@ -139,7 +139,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
ConvertBean.serviceModelInitialize(copyMesWorkOrder, bean.getCreateUser()); ConvertBean.serviceModelInitialize(copyMesWorkOrder, bean.getCreateUser());
baseRDao.insert(copyMesWorkOrder); baseRDao.insert(copyMesWorkOrder);
workOrderLogService.saveMesWorkOrderLog(copyMesWorkOrder); workOrderLogService.saveMesWorkOrderLog(copyMesWorkOrder,MesExtEnumUtil.WORK_ORDER_LOG_TYPE.INSERT,copyMesWorkOrder.getQty());
return bean; return bean;
}else if (bean.getWorkOrderType() == MesExtEnumUtil.ORDER_TYPE.UN_SORT.getValue()){ }else if (bean.getWorkOrderType() == MesExtEnumUtil.ORDER_TYPE.UN_SORT.getValue()){
//生产工单-非排序手工插单,关闭该零件当天之前日期非排序工单 //生产工单-非排序手工插单,关闭该零件当天之前日期非排序工单
@ -159,7 +159,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
bean.setSystemSyncStatus(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); bean.setSystemSyncStatus(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
ConvertBean.serviceModelInitialize(bean, bean.getCreateUser()); ConvertBean.serviceModelInitialize(bean, bean.getCreateUser());
workOrderLogService.saveMesWorkOrderLog(bean); workOrderLogService.saveMesWorkOrderLog(bean,MesExtEnumUtil.WORK_ORDER_LOG_TYPE.INSERT,bean.getQty());
bean = baseRDao.insert(bean); bean = baseRDao.insert(bean);
return bean; return bean;
} }
@ -203,7 +203,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
mesWorkOrderToWmsService.insertBatch(mesWorkOrderToWmsService.saveMesWorkOrderToWms(result, bomList)); mesWorkOrderToWmsService.insertBatch(mesWorkOrderToWmsService.saveMesWorkOrderToWms(result, bomList));
} }
} }
updateMesWorkOrder(result); updateMesWorkOrder(result,MesExtEnumUtil.WORK_ORDER_LOG_TYPE.UPDATE,0);
return result; return result;
} }
@ -884,7 +884,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
} }
} }
//更新工单 //更新工单
updateMesWorkOrder(mesWorkOrderDb); updateMesWorkOrder(mesWorkOrderDb,(MesExtEnumUtil.REPORT_TYPE.REPORT.getValue() == mesWorkOrder.getReportType()) ? MesExtEnumUtil.WORK_ORDER_LOG_TYPE.REPORT : MesExtEnumUtil.WORK_ORDER_LOG_TYPE.REPORT_ADJUST,mesWorkOrder.getNum());
//试制单不报工 //试制单不报工
if(Objects.isNull(mesWorkOrderDb.getOrderFlag()) || !MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getValue().equals(mesWorkOrderDb.getOrderFlag())){ if(Objects.isNull(mesWorkOrderDb.getOrderFlag()) || !MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getValue().equals(mesWorkOrderDb.getOrderFlag())){
String sn = getStringList(mesWorkOrder); String sn = getStringList(mesWorkOrder);
@ -1009,7 +1009,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
} }
//更新工单 //更新工单
updateMesWorkOrder(mesWorkOrder); updateMesWorkOrder(mesWorkOrder, (MesExtEnumUtil.REPORT_TYPE.REPORT.getValue() == mesWorkOrderNew.getReportType()) ? MesExtEnumUtil.WORK_ORDER_LOG_TYPE.REPORT : MesExtEnumUtil.WORK_ORDER_LOG_TYPE.REPORT_ADJUST,mesWorkOrderNew.getNum());
//保存报工记录 试制单不报工 //保存报工记录 试制单不报工
if (CollectionUtils.isNotEmpty(mesProductOffLineList) && (Objects.isNull(mesWorkOrder.getOrderFlag()) || !MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getValue().equals(mesWorkOrder.getOrderFlag()))) { if (CollectionUtils.isNotEmpty(mesProductOffLineList) && (Objects.isNull(mesWorkOrder.getOrderFlag()) || !MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getValue().equals(mesWorkOrder.getOrderFlag()))) {
@ -1049,13 +1049,13 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
mesProductOffLineService.insertBatch(mesProductOffLineList); mesProductOffLineService.insertBatch(mesProductOffLineList);
} }
private void updateMesWorkOrder(MesWorkOrder mesWorkOrder) { private void updateMesWorkOrder(MesWorkOrder mesWorkOrder,MesExtEnumUtil.WORK_ORDER_LOG_TYPE type,double qty) {
//修改工单,需要重新同步 //修改工单,需要重新同步
mesWorkOrder.setSystemSyncStatus(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); mesWorkOrder.setSystemSyncStatus(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
ConvertBean.serviceModelUpdate(mesWorkOrder, AuthUtil.getSessionUser().getUserName()); ConvertBean.serviceModelUpdate(mesWorkOrder, AuthUtil.getSessionUser().getUserName());
baseRDao.update(mesWorkOrder); baseRDao.update(mesWorkOrder);
//保存记录 //保存记录
workOrderLogService.saveMesWorkOrderLog(mesWorkOrder); workOrderLogService.saveMesWorkOrderLog(mesWorkOrder,type,qty);
} }
private MesProductOffLine getMesProductOffLine(WmsProductModel model, MesPart mesPart, MesProductVersion mesProductVersion, MesBom mesBom) { private MesProductOffLine getMesProductOffLine(WmsProductModel model, MesPart mesPart, MesProductVersion mesProductVersion, MesBom mesBom) {

Loading…
Cancel
Save