问题清单修复

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.MesWorkOrderLog;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
/**
* @Description:
@ -10,5 +11,5 @@ import cn.estsh.i3plus.pojo.mes.bean.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.tool.DdlPreparedPack
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.MesProduceSnRepository
import cn.estsh.i3plus.pojo.mes.repository.MesWorkOrderRepository
import lombok.Getter
import lombok.Setter
import org.slf4j.Logger
import org.slf4j.LoggerFactory
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
@ -31,19 +39,35 @@ class MesProductionRecordToPisces {
@Autowired
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 {
if (srcData == null || srcData.size() == 0) {
return srcData
}
List<String> updateList = new ArrayList<>();
List<Map<String, Object>> destData = new ArrayList<>();
for (Map<String, Object> rowMap : srcData) {
String productSn = String.valueOf(rowMap.get("product_sn"));
String partNo = String.valueOf(rowMap.get("part_no"));
MesProduceSn produceSnDb = getProduceSnDb(mapper.getOrganizeCode(), productSn, partNo);
if (!Objects.isNull(produceSnDb)) {
rowMap.put("BARCODE_ID", produceSnDb.getId())
Map<String, Object> params = new HashMap<>();
params.put("partNo",rowMap.get("part_no"))
params.put("productSn",rowMap.get("product_sn"))
String sql = "select ID from MES.TT_PC_PART_BARCODE where PART_NO = :partNo and BARCODE = :productSn order by GENERATION_TIME desc";
List<Map<String, Object>> dataMap = queryDataTable(sql,params);
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"));
@ -57,10 +81,17 @@ class MesProductionRecordToPisces {
if (!Objects.isNull(equipmentDb)) {
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) {
@ -85,4 +116,10 @@ class MesProductionRecordToPisces {
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.pojo.mes.bean.MesWorkOrder;
import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrderLog;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
@ -12,9 +13,11 @@ import org.springframework.stereotype.Service;
public class MesWorkOrderLogService extends BaseMesService<MesWorkOrderLog> implements IMesWorkOrderLogService {
@Override
public void saveMesWorkOrderLog(MesWorkOrder mesWorkOrder) {
public void saveMesWorkOrderLog(MesWorkOrder mesWorkOrder, MesExtEnumUtil.WORK_ORDER_LOG_TYPE type, double qty) {
MesWorkOrderLog workOrderLog = new MesWorkOrderLog();
BeanUtils.copyProperties(mesWorkOrder, workOrderLog, "id");
workOrderLog.setType(type.getValue());
workOrderLog.setModifyQty(qty);
baseRDao.insert(workOrderLog);
}
}

@ -139,7 +139,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
ConvertBean.serviceModelInitialize(copyMesWorkOrder, bean.getCreateUser());
baseRDao.insert(copyMesWorkOrder);
workOrderLogService.saveMesWorkOrderLog(copyMesWorkOrder);
workOrderLogService.saveMesWorkOrderLog(copyMesWorkOrder,MesExtEnumUtil.WORK_ORDER_LOG_TYPE.INSERT,copyMesWorkOrder.getQty());
return bean;
}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());
ConvertBean.serviceModelInitialize(bean, bean.getCreateUser());
workOrderLogService.saveMesWorkOrderLog(bean);
workOrderLogService.saveMesWorkOrderLog(bean,MesExtEnumUtil.WORK_ORDER_LOG_TYPE.INSERT,bean.getQty());
bean = baseRDao.insert(bean);
return bean;
}
@ -203,7 +203,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
mesWorkOrderToWmsService.insertBatch(mesWorkOrderToWmsService.saveMesWorkOrderToWms(result, bomList));
}
}
updateMesWorkOrder(result);
updateMesWorkOrder(result,MesExtEnumUtil.WORK_ORDER_LOG_TYPE.UPDATE,0);
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())){
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()))) {
@ -1049,13 +1049,13 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
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());
ConvertBean.serviceModelUpdate(mesWorkOrder, AuthUtil.getSessionUser().getUserName());
baseRDao.update(mesWorkOrder);
//保存记录
workOrderLogService.saveMesWorkOrderLog(mesWorkOrder);
workOrderLogService.saveMesWorkOrderLog(mesWorkOrder,type,qty);
}
private MesProductOffLine getMesProductOffLine(WmsProductModel model, MesPart mesPart, MesProductVersion mesProductVersion, MesBom mesBom) {

Loading…
Cancel
Save