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;
/**
*
*
@ -39,7 +43,7 @@ public class ProdPlanInfoServiceImpl implements IProdPlanInfoService {
* @return
*/
@Override
public ProdPlanInfoVo queryById(Long planId){
public ProdPlanInfoVo queryById(Long planId) {
return baseMapper.selectVoById(planId);
}
@ -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,40 +77,41 @@ 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)
.eq(bo.getPlanId() != null, ProdPlanInfo::getPlanId, bo.getPlanId())
.eq(bo.getProductOrderId() != null, ProdPlanInfo::getProductOrderId, bo.getProductOrderId())
.eq(bo.getSaleOrderId() != null, ProdPlanInfo::getSaleOrderId, bo.getSaleOrderId())
.eq(StringUtils.isNotBlank(bo.getSaleorderCode()), ProdPlanInfo::getSaleorderCode, bo.getSaleorderCode())
.eq(StringUtils.isNotBlank(bo.getPlanCode()), ProdPlanInfo::getPlanCode, bo.getPlanCode())
.eq(StringUtils.isNotBlank(bo.getDispatchCode()), ProdPlanInfo::getDispatchCode, bo.getDispatchCode())
.eq(bo.getMaterialId() != null, ProdPlanInfo::getMaterialId, bo.getMaterialId())
.eq(bo.getMaterialBomId() != null, ProdPlanInfo::getMaterialBomId, bo.getMaterialBomId())
.eq(bo.getProcessId() != null, ProdPlanInfo::getProcessId, bo.getProcessId())
.eq(bo.getProcessOrder() != null, ProdPlanInfo::getProcessOrder, bo.getProcessOrder())
.eq(bo.getLastProcessId() != null, ProdPlanInfo::getLastProcessId, bo.getLastProcessId())
.eq(StringUtils.isNotBlank(bo.getFinalProcessFlag()), ProdPlanInfo::getFinalProcessFlag, bo.getFinalProcessFlag())
.eq(StringUtils.isNotBlank(bo.getReleaseType()), ProdPlanInfo::getReleaseType, bo.getReleaseType())
.eq(bo.getReleaseId() != null, ProdPlanInfo::getReleaseId, bo.getReleaseId())
.eq(bo.getProductionTime() != null, ProdPlanInfo::getProductionTime, bo.getProductionTime())
.eq(bo.getPlanAmount() != null, ProdPlanInfo::getPlanAmount, bo.getPlanAmount())
.eq(bo.getDispatchAmount() != null, ProdPlanInfo::getDispatchAmount, bo.getDispatchAmount())
.eq(bo.getCompleteAmount() != null, ProdPlanInfo::getCompleteAmount, bo.getCompleteAmount())
.eq(bo.getPlanBeginTime() != null, ProdPlanInfo::getPlanBeginTime, bo.getPlanBeginTime())
.eq(bo.getPlanEndTime() != null, ProdPlanInfo::getPlanEndTime, bo.getPlanEndTime())
.eq(bo.getRealBeginTime() != null, ProdPlanInfo::getRealBeginTime, bo.getRealBeginTime())
.eq(bo.getRealEndTime() != null, ProdPlanInfo::getRealEndTime, bo.getRealEndTime())
.eq(StringUtils.isNotBlank(bo.getAttachId()), ProdPlanInfo::getAttachId, bo.getAttachId())
.eq(StringUtils.isNotBlank(bo.getPlanStatus()), ProdPlanInfo::getPlanStatus, bo.getPlanStatus())
.eq(StringUtils.isNotBlank(bo.getImportFlag()), ProdPlanInfo::getImportFlag, bo.getImportFlag())
.eq(StringUtils.isNotBlank(bo.getFinishFlag()), ProdPlanInfo::getFinishFlag, bo.getFinishFlag())
.eq(bo.getPriority() != null, ProdPlanInfo::getPriority, bo.getPriority())
.eq(bo.getShiftId() != null, ProdPlanInfo::getShiftId, bo.getShiftId())
.eq(bo.getClassTeamId() != null, ProdPlanInfo::getClassTeamId, bo.getClassTeamId())
.eq(StringUtils.isNotBlank(bo.getModelCode()), ProdPlanInfo::getModelCode, bo.getModelCode())
.orderByDesc(ProdPlanInfo::getCreateTime);
.selectAll(ProdPlanInfo.class)
.eq(bo.getPlanId() != null, ProdPlanInfo::getPlanId, bo.getPlanId())
.eq(bo.getProductOrderId() != null, ProdPlanInfo::getProductOrderId, bo.getProductOrderId())
.eq(bo.getSaleOrderId() != null, ProdPlanInfo::getSaleOrderId, bo.getSaleOrderId())
.eq(StringUtils.isNotBlank(bo.getSaleorderCode()), ProdPlanInfo::getSaleorderCode, bo.getSaleorderCode())
.eq(StringUtils.isNotBlank(bo.getPlanCode()), ProdPlanInfo::getPlanCode, bo.getPlanCode())
.eq(StringUtils.isNotBlank(bo.getDispatchCode()), ProdPlanInfo::getDispatchCode, bo.getDispatchCode())
.eq(bo.getMaterialId() != null, ProdPlanInfo::getMaterialId, bo.getMaterialId())
.eq(bo.getMaterialBomId() != null, ProdPlanInfo::getMaterialBomId, bo.getMaterialBomId())
.eq(bo.getProcessId() != null, ProdPlanInfo::getProcessId, bo.getProcessId())
.eq(bo.getProcessOrder() != null, ProdPlanInfo::getProcessOrder, bo.getProcessOrder())
.eq(bo.getLastProcessId() != null, ProdPlanInfo::getLastProcessId, bo.getLastProcessId())
.eq(StringUtils.isNotBlank(bo.getFinalProcessFlag()), ProdPlanInfo::getFinalProcessFlag, bo.getFinalProcessFlag())
.eq(StringUtils.isNotBlank(bo.getReleaseType()), ProdPlanInfo::getReleaseType, bo.getReleaseType())
.eq(bo.getReleaseId() != null, ProdPlanInfo::getReleaseId, bo.getReleaseId())
.eq(bo.getProductionTime() != null, ProdPlanInfo::getProductionTime, bo.getProductionTime())
.eq(bo.getPlanAmount() != null, ProdPlanInfo::getPlanAmount, bo.getPlanAmount())
.eq(bo.getDispatchAmount() != null, ProdPlanInfo::getDispatchAmount, bo.getDispatchAmount())
.eq(bo.getCompleteAmount() != null, ProdPlanInfo::getCompleteAmount, bo.getCompleteAmount())
.eq(bo.getPlanBeginTime() != null, ProdPlanInfo::getPlanBeginTime, bo.getPlanBeginTime())
.eq(bo.getPlanEndTime() != null, ProdPlanInfo::getPlanEndTime, bo.getPlanEndTime())
.eq(bo.getRealBeginTime() != null, ProdPlanInfo::getRealBeginTime, bo.getRealBeginTime())
.eq(bo.getRealEndTime() != null, ProdPlanInfo::getRealEndTime, bo.getRealEndTime())
.eq(StringUtils.isNotBlank(bo.getAttachId()), ProdPlanInfo::getAttachId, bo.getAttachId())
.eq(StringUtils.isNotBlank(bo.getPlanStatus()), ProdPlanInfo::getPlanStatus, bo.getPlanStatus())
.eq(StringUtils.isNotBlank(bo.getImportFlag()), ProdPlanInfo::getImportFlag, bo.getImportFlag())
.eq(StringUtils.isNotBlank(bo.getFinishFlag()), ProdPlanInfo::getFinishFlag, bo.getFinishFlag())
.eq(bo.getPriority() != null, ProdPlanInfo::getPriority, bo.getPriority())
.eq(bo.getShiftId() != null, ProdPlanInfo::getShiftId, bo.getShiftId())
.eq(bo.getClassTeamId() != null, ProdPlanInfo::getClassTeamId, bo.getClassTeamId())
.eq(StringUtils.isNotBlank(bo.getModelCode()), ProdPlanInfo::getModelCode, bo.getModelCode())
.orderByDesc(ProdPlanInfo::getCreateTime);
return lqw;
}
@ -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;
}
@ -142,7 +152,7 @@ public class ProdPlanInfoServiceImpl implements IProdPlanInfoService {
/**
*
*/
private void validEntityBeforeSave(ProdPlanInfo entity){
private void validEntityBeforeSave(ProdPlanInfo entity) {
//TODO 做一些数据校验,如唯一约束
}
@ -155,7 +165,7 @@ public class ProdPlanInfoServiceImpl implements IProdPlanInfoService {
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
if (isValid) {
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
@ -183,4 +193,4 @@ public class ProdPlanInfoServiceImpl implements IProdPlanInfoService {
}
}
}

@ -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