工艺路线开发

tags/yfai-mes-ext-v1.0
jun 1 year ago
parent b07a18b86f
commit 6aa74526fb

@ -0,0 +1,13 @@
package cn.estsh.i3plus.ext.mes.api.base;
import cn.estsh.i3plus.pojo.mes.bean.MesCraftRoute;
/**
* @Description :线
* @Reference :
* @Author : junsheng.li
* @CreateDate 2024/5/8 16:48
* @Modify:
**/
public interface IMesCraftRouteService extends IBaseMesService<MesCraftRoute> {
}

@ -0,0 +1,92 @@
import cn.estsh.i3plus.platform.plugin.datasource.DynamicDataSourceProxy
import cn.estsh.i3plus.pojo.mes.dbinterface.MesInterfaceDataMapper
import cn.estsh.i3plus.pojo.mes.repository.MesWorkOrderToSapRepository
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 javax.annotation.Resource
import java.sql.Connection
/**
* @Description : MESSAP
* @Reference :
* @Author : junsheng.li
* @CreateDate 2024/5/12 15:43
* @Modify:
* */
class mesWorkOrderToSap {
public static final Logger LOGGER = LoggerFactory.getLogger(mesWorkOrderToSap.class)
@Autowired
private MesWorkOrderToSapRepository mesWorkOrderToSapRDao;
@Resource(name = "yfasDataSource")
private DynamicDataSourceProxy yfasDataSource;
@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
}
Map<String,Map<String, Object>> destMapData = new HashMap<>();
LOGGER.info("-------- filterData Start MES发送SAP生产工单数据 ---------------")
List<String> updateSqlList = new ArrayList<>();
//
for (Map<String, Object> rowMap : srcData) {
String partNo = String.valueOf(rowMap.get("plmat"));
String organizeCode = String.valueOf(rowMap.get("organize_code"));
String endData = String.valueOf(rowMap.get("pedtr"));
String key = organizeCode+partNo+endData;
if(!destMapData.containsKey(key)){
destMapData.put(key,rowMap)
}
}
//
List<Map<String, Object>> destData = new ArrayList<>();
for (Map<String, Object> rowMap : destMapData.values()) {
String partNo = String.valueOf(rowMap.get("plmat"));
String organizeCode = String.valueOf(rowMap.get("organize_code"));
String endData = String.valueOf(rowMap.get("pedtr"));
String qty = String.valueOf(rowMap.get("gsmng"));
Map<String, Object> sqlParams = new HashMap<>(4)
sqlParams.put("organizeCode",organizeCode);
sqlParams.put("plmat", partNo);
sqlParams.put("pedtr", endData);
sqlParams.put("gsmng", qty);
StringBuffer sql = new StringBuffer("select * from mes_plan_order where " +
" PLWRK=:organizeCode and plmat=:plmat and pedtr=:pedtr and gsmng = :gsmng");
List<Map<String, Object>> resultMap = this.queryDataTable(sql.toString(), sqlParams)
if (resultMap.size() > 0) {
LOGGER.info("--------mesWorkOrderToSapRDao.updateByHqlWhere ---------------")
updateSqlList.add("update mes_work_order_to_sap set system_sync_status = 1, " +
"modify_user = 'MES发送SAP生产工单' where organize_code= '"+organizeCode+"' and plmat= '"+partNo+"' and pedtr='"+endData+"'");
}else{
destData.add(rowMap);
}
}
//
this.mesConn = mesDataSource.getWriteConnectionWithoutPool();
mesDataSource.executeAsBatch(updateSqlList,mesConn)
mesDataSource.closeConnectionWithoutPoll(this.mesConn)
return destData;
}
private List<Map<String, Object>> queryDataTable(String sql, Map<String, Object> params) {
NamedParameterJdbcTemplate namedJdbcTemplate = new NamedParameterJdbcTemplate(yfasDataSource.getDataSource())
List<Map<String, Object>> dataMap = namedJdbcTemplate.queryForList(sql, params)
return dataMap;
}
}

@ -0,0 +1,13 @@
package cn.estsh.i3plus.ext.mes.apiservice.controller.base;
import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant;
import cn.estsh.i3plus.pojo.mes.bean.MesCraftRoute;
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Api(description = "工艺路线")
@RestController
@RequestMapping(MesCommonConstant.MES_YANFEN + "/mesCraftRoute")
public class MesCraftRouteController extends BaseMesController<MesCraftRoute> {
}

@ -63,7 +63,7 @@ public class WmsSAPDbInterfaceController {
@GetMapping(value = "sync-data-id/do")
@ApiOperation(value = "按ID单个执行接口数据同步支持的参数SAP2MES, MES2SAP ")
public ResultBean doSyncSAPData(String syncParam,String o, String id) {
public ResultBean doSyncSAPData(String syncParam, String id) {
try {
// 判断作业参数是否支持
if (MesInterfaceEnumUtil.DIRECTION_TYPE.nameOf(syncParam) == -1) {

@ -0,0 +1,63 @@
package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base;
import cn.estsh.i3plus.ext.mes.api.base.IMesCraftRouteService;
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.mes.bean.MesCraftRoute;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.util.ValidatorBean;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
/**
* @Description : 线
* @Reference :
* @Author : junsheng.li
* @CreateDate 2024/5/12 15:13
* @Modify:
**/
@Service
@Slf4j
public class MesCraftRouteServiceImpl extends BaseMesService<MesCraftRoute> implements IMesCraftRouteService {
protected void setPackQueryBean(MesCraftRoute bean, DdlPackBean packBean) {
DdlPreparedPack.getStringEqualPack(bean.getCraftRouteCode(), "craftRouteCode", packBean);
DdlPreparedPack.getStringLikerPack(bean.getCraftRouteName(), "craftRouteName", packBean);
DdlPreparedPack.getNumEqualPack(bean.getCraftRouteType(), "craftRouteType", packBean);
}
protected void onInsertBean(MesCraftRoute item) {
// 数据校验
ValidatorBean.checkNotNull(item.getCraftRouteCode(), "工艺路线代码不能为空");
DdlPackBean roadPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(item.getCraftRouteCode(), "craftRouteCode", roadPackBean);
boolean flg = baseRDao.isExitByHql(roadPackBean);
if (flg) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("工艺路线代码【%s】已经存在请检查数据", item.getCraftRouteCode())
.build();
}
}
protected void onUpdateBean(MesCraftRoute item) {
// 数据校验
ValidatorBean.checkNotNull(item.getCraftRouteCode(), "工艺路线代码不能为空");
DdlPackBean roadPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(item.getCraftRouteCode(), "craftRouteCode", roadPackBean);
DdlPreparedPack.getNumNOEqualPack(item.getId(), "id", roadPackBean);
boolean flg = baseRDao.isExitByHql(roadPackBean);
if (flg) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("工艺路线代码【%s】已经存在请检查数据", item.getCraftRouteCode())
.build();
}
}
}

@ -309,6 +309,8 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
newMesProductOffLine.setItemPartNo(mesBom.getItemPartNo());
newMesProductOffLine.setItemPartNameRdd(mesBom.getItemPartName());
newMesProductOffLine.setItemQty(mesBom.getItemQty());
newMesProductOffLine.setAlort(mesProductVersion.getReceiveInventoryPoint());
newMesProductOffLine.setStgeLoc(mesProductVersion.getShipInventoryPoint());
newMesProductOffLine.setQty(1d);
newMesProductOffLine.setReportSn(sn);
newMesProductOffLine.setBomVersion(mesBom.getBomVersion());

@ -241,12 +241,12 @@ spring.shardingsphere.datasource.slave.connection-test-query=select 1
spring.shardingsphere.datasource.slave.keep-alive-time=3500000
impp.write.datasource.driver-class-name=com.mysql.jdbc.Driver
impp.write.datasource.jdbc-url=jdbc:mysql://10.195.88.71:3306/impp_i3_mes?autoReconnect=true&useSSL=false&characterEncoding=utf-8&allowPublicKeyRetrieval=true
impp.write.datasource.jdbc-url=jdbc:mysql://10.195.88.71:3316/impp_i3_mes?autoReconnect=true&useSSL=false&characterEncoding=utf-8&allowPublicKeyRetrieval=true
impp.write.datasource.username=root
impp.write.datasource.password=estsh123
impp.read.datasource.type=com.zaxxer.hikari.HikariDataSource
impp.read.datasource.driver-class-name=com.mysql.jdbc.Driver
impp.read.datasource.jdbc-url=jdbc:mysql://10.195.88.71:3306/impp_i3_mes?autoReconnect=true&useSSL=false&characterEncoding=utf-8&allowPublicKeyRetrieval=true
impp.read.datasource.jdbc-url=jdbc:mysql://10.195.88.71:3336/impp_i3_mes?autoReconnect=true&useSSL=false&characterEncoding=utf-8&allowPublicKeyRetrieval=true
impp.read.datasource.username=root
impp.read.datasource.password=estsh123

@ -5,7 +5,7 @@ impp.mes.datasource.isopen=true
#\u6570\u636E\u6E90\u7684\u522B\u540D
impp.mes.datasource.alias=mesDataSource
impp.mes.datasource.driver-class-name=com.mysql.jdbc.Driver
impp.mes.datasource.jdbc-url=jdbc:mysql://10.195.88.71:3306/impp_i3_mes?autoReconnect=true&useSSL=false&characterEncoding=utf-8&allowPublicKeyRetrieval=true
impp.mes.datasource.jdbc-url=jdbc:mysql://10.195.88.71:3316/impp_i3_mes?autoReconnect=true&useSSL=false&characterEncoding=utf-8&allowPublicKeyRetrieval=true
#impp.mes.datasource.jdbc-url=jdbc:sqlserver://139.224.200.147:20037;DatabaseName=impp_i3_mes;
impp.mes.datasource.username=root
#impp.mes.datasource.password=Test123!
@ -16,7 +16,7 @@ impp.mes.datasource.password=estsh123
#\u6570\u636E\u6E90\u7684\u522B\u540D
impp.yfas.datasource.alias=yfasDataSource
impp.yfas.datasource.driver-class-name=com.mysql.jdbc.Driver
impp.yfas.datasource.jdbc-url=jdbc:mysql://10.195.88.71:3306/impp_i3_wms_sap_if?autoReconnect=true&useSSL=false&characterEncoding=utf-8&allowPublicKeyRetrieval=true
impp.yfas.datasource.jdbc-url=jdbc:mysql://10.195.88.71:3316/impp_i3_wms_sap_if?autoReconnect=true&useSSL=false&characterEncoding=utf-8&allowPublicKeyRetrieval=true
#impp.yfas.datasource.jdbc-url=jdbc:sqlserver://139.224.200.147:20037;DatabaseName=impp_i3_mes;
impp.yfas.datasource.username=root
impp.yfas.datasource.password=estsh123

Loading…
Cancel
Save