Merge remote-tracking branch 'origin/master'

master
wanghao 3 weeks ago
commit cf972cef0c

@ -0,0 +1,16 @@
package org.dromara.common.constant;
/**
*
*
* @author ruoyi
*/
public interface DatabaseConstants {
/**
*
*/
String TABLE_NAME_PROD_PLAN_INFO_PREFIX = "prod_plan_info";
}

@ -0,0 +1,13 @@
package org.dromara.common.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.InsertProvider;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.dromara.common.provider.DynamicBaseSqlProvider;
@Mapper
public interface DynamicBaseSqlMapper<T> extends BaseMapper<T> {
// 自定义动态插入方法,接收表名和对象作为参数
@InsertProvider(type = DynamicBaseSqlProvider.class, method = "dynamicInsert")
int dynamicInsert(@Param("tableName") String tableName, @Param("tableNamePrefix") String tableNamePrefix,@Param("entity") T entity);
}

@ -0,0 +1,32 @@
package org.dromara.common.provider;
import org.apache.ibatis.jdbc.SQL;
import java.util.Map;
public class DynamicBaseSqlProvider {
public String dynamicInsert(Map<String, Object> params) {
String tableName = (String) params.get("tableName");
// Object entity = params.get("entity");
String tableNamePrefix = (String) params.get("tableNamePrefix");
SQL sql = new SQL();
sql.INSERT_INTO(tableName);
switch(tableNamePrefix){
case "prod_plan_info":
sql.INTO_COLUMNS("plan_code", "material_id", "material_bom_id","plan_amount","dispatch_amount");
sql.INTO_VALUES("#{entity.planCode}", "#{entity.materialId}", "#{entity.materialBomId}", "#{entity.planAmount}", "#{entity.dispatchAmount}");
break;
}
return sql.toString();
}
public String selectByDynamicTableName(Map<String, Object> params) {
String tableName = (String) params.get("tableName");
return new SQL() {{
SELECT("*");
FROM(tableName);
}}.toString();
}
}

@ -115,6 +115,12 @@
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>hwmom-common-mom</artifactId>
<version>2.2.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.dromara</groupId>

@ -182,5 +182,7 @@ public class ProdPlanInfoBo extends BaseEntity {
*/
private String remark;
private Long workshopId;
}

@ -27,7 +27,7 @@ public interface ProdPlanInfoMapper extends BaseMapperPlus<ProdPlanInfo, ProdPla
* @param queryWrapper
* @return
*/
public Page<ProdPlanInfoVo> selectProdPlanInfoList(@Param("page") Page<ProdPlanInfoVo> page, @Param(Constants.WRAPPER) Wrapper<ProdPlanInfo> queryWrapper);
public Page<ProdPlanInfoVo> selectProdPlanInfoList(@Param("page") Page<ProdPlanInfoVo> page, @Param("tableName")String tableName,@Param(Constants.WRAPPER) Wrapper<ProdPlanInfo> queryWrapper);
/**
* ,Join process
@ -36,4 +36,15 @@ public interface ProdPlanInfoMapper extends BaseMapperPlus<ProdPlanInfo, ProdPla
* @return
*/
public List<ProdPlanInfoVo> selectProdPlanInfoJoinProcessList(ProdPlanInfoBo bo);
/**
*
*
* @param tableName
* @param queryWrapper
* @return
*/
Page<ProdPlanInfoVo> selectProdPlanInfoList(@Param("tableName") String tableName,@Param("page") Page<ProdPlanInfoVo> page,
@Param(Constants.WRAPPER) Wrapper<ProdPlanInfo> queryWrapper);
}

@ -1,8 +1,10 @@
package org.dromara.mes.service.impl;
import org.dromara.common.constant.DatabaseConstants;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.core.utils.uuid.Seq;
import org.dromara.common.mapper.DynamicBaseSqlMapper;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@ -32,6 +34,8 @@ public class ProdPlanInfoServiceImpl implements IProdPlanInfoService {
private final ProdPlanInfoMapper baseMapper;
private final DynamicBaseSqlMapper dynamicBaseSqlMapper;
/**
*
*
@ -53,10 +57,13 @@ public class ProdPlanInfoServiceImpl implements IProdPlanInfoService {
@Override
public TableDataInfo<ProdPlanInfoVo> queryPageList(ProdPlanInfoBo bo, PageQuery pageQuery) {
MPJLambdaWrapper<ProdPlanInfo> lqw = buildQueryWrapper(bo);
Page<ProdPlanInfoVo> result = baseMapper.selectProdPlanInfoList(pageQuery.build(), lqw);
Long workshopId = bo.getWorkshopId();
String tableName = DatabaseConstants.TABLE_NAME_PROD_PLAN_INFO_PREFIX + "_" + workshopId;
Page<ProdPlanInfoVo> result = baseMapper.selectProdPlanInfoList(pageQuery.build(), tableName, lqw);
return TableDataInfo.build(result);
}
/**
*
*
@ -70,6 +77,7 @@ public class ProdPlanInfoServiceImpl implements IProdPlanInfoService {
}
private MPJLambdaWrapper<ProdPlanInfo> buildQueryWrapper(ProdPlanInfoBo bo) {
System.out.println("wo;" + bo.getWorkshopId());
Map<String, Object> params = bo.getParams();
MPJLambdaWrapper<ProdPlanInfo> lqw = JoinWrappers.lambda(ProdPlanInfo.class)
.selectAll(ProdPlanInfo.class)
@ -119,10 +127,12 @@ public class ProdPlanInfoServiceImpl implements IProdPlanInfoService {
bo.setPlanCode(planCode);
ProdPlanInfo add = MapstructUtils.convert(bo, ProdPlanInfo.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setPlanId(add.getPlanId());
}
String tableName = DatabaseConstants.TABLE_NAME_PROD_PLAN_INFO_PREFIX + "_" + bo.getWorkshopId();
boolean flag = dynamicBaseSqlMapper.dynamicInsert(tableName, DatabaseConstants.TABLE_NAME_PROD_PLAN_INFO_PREFIX, add) >0;
// boolean flag = baseMapper.insert(add) > 0;
// if (flag) {
// bo.setPlanId(add.getPlanId());
// }
return flag;
}

@ -82,7 +82,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="ew.getSqlSelect == null">
*
</if>
from prod_plan_info t
from ${tableName} t
left join base_material_info bmi on bmi.material_id = t.material_id
left join base_material_info bomi on bomi.material_id = t.material_bom_id
left join prod_base_station_info pbsi on pbsi.station_id = t.release_id

Loading…
Cancel
Save