forked from I3-YF/i3plus-mes-pcn-yfai
等离子工步写入数据耗时较长
parent
c82473c72a
commit
2579987543
@ -0,0 +1,19 @@
|
||||
package cn.estsh.i3plus.ext.mes.pcn.apiservice.dao;
|
||||
|
||||
import cn.estsh.i3plus.pojo.mes.bean.recyclablepackage.MesRecyclablePackageBindingLog;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description : 批量新增数据拼接
|
||||
* @Reference :
|
||||
* @Author : junsheng.li
|
||||
* @CreateDate 2024/10/18 17:40
|
||||
* @Modify:
|
||||
**/
|
||||
public interface IMesInsertBatchDao {
|
||||
|
||||
@ApiOperation("批量写入回收包装绑定LOG")
|
||||
int insertMesRecyclablePackageBindingLog(List<MesRecyclablePackageBindingLog> logList,String organizeCode);
|
||||
}
|
@ -0,0 +1,106 @@
|
||||
package cn.estsh.i3plus.ext.mes.pcn.apiservice.daoimpl;
|
||||
|
||||
import cn.estsh.i3plus.ext.mes.pcn.apiservice.dao.IMesInsertBatchDao;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
|
||||
import cn.estsh.i3plus.pojo.base.codemaker.SnowflakeIdMaker;
|
||||
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
|
||||
import cn.estsh.i3plus.pojo.mes.bean.recyclablepackage.MesRecyclablePackageBindingLog;
|
||||
import groovy.util.logging.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import javax.persistence.EntityManager;
|
||||
import javax.persistence.Query;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.StringJoiner;
|
||||
|
||||
/**
|
||||
* @Description : 批量新增数据拼接
|
||||
* @Reference :
|
||||
* @Author : junsheng.li
|
||||
* @CreateDate 2024/10/18 17:38
|
||||
* @Modify:
|
||||
**/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class MesInsertBatchDaoImpl implements IMesInsertBatchDao {
|
||||
|
||||
@Value("${mes.sharding.append.org:}")
|
||||
public String mesShardingAppendOrg;
|
||||
|
||||
@Autowired
|
||||
private SnowflakeIdMaker snowflakeIdMaker;
|
||||
|
||||
@Autowired
|
||||
private EntityManager entityManager;
|
||||
|
||||
@Override
|
||||
public int insertMesRecyclablePackageBindingLog(List<MesRecyclablePackageBindingLog> logList, String organizeCode) {
|
||||
//批量导入
|
||||
int toNum;
|
||||
for (int i = 0, len = (logList.size() / MesPcnExtConstWords.FIVE_HUNDRED + 1); i < len; i++) {
|
||||
toNum = (i + 1) * MesPcnExtConstWords.FIVE_HUNDRED;
|
||||
if ((i + 1) * MesPcnExtConstWords.FIVE_HUNDRED > logList.size()) {
|
||||
toNum = logList.size();
|
||||
}
|
||||
insertMesRecyclablePackageBindingLogLimit(logList.subList(i * MesPcnExtConstWords.FIVE_HUNDRED, toNum), organizeCode);
|
||||
}
|
||||
return logList.size();
|
||||
}
|
||||
|
||||
|
||||
public void insertMesRecyclablePackageBindingLogLimit(List<MesRecyclablePackageBindingLog> logList, String organizeCode) {
|
||||
String fieldStr = "`id`,`create_date_time`,`create_user`,`description`,`is_deleted`,`is_valid`,`organize_code`,`remark`,`system_sync_date_time`,`system_sync_status`,`hanger_code`,`hanger_package_sn`,`hanger_rule_code`,`lot_number`,`modify_type`,`order_code`,`package_sn`,`part_name`,`part_no`,`product_sn`,`qty`,`status`,`total_qty`,`type_code`";
|
||||
//拼接字段
|
||||
StringBuilder fieldBuilder = new StringBuilder();
|
||||
String[] splitField = fieldStr.split(MesPcnExtConstWords.COMMA);
|
||||
for (String field : splitField) {
|
||||
fieldBuilder.append(MesPcnExtConstWords.COLON).append(field).append(MesPcnExtConstWords.E_UNDERLINE).append("%s , ");
|
||||
}
|
||||
//新增语句
|
||||
StringBuilder insertStr = new StringBuilder(" insert into mes_recyclable_package_binding_log");
|
||||
if (!StringUtils.isEmpty(mesShardingAppendOrg) && mesShardingAppendOrg.toUpperCase().equals(CommonEnumUtil.TRUE_OR_FALSE.TRUE.name())) insertStr.append(MesPcnExtConstWords.E_UNDERLINE).append(organizeCode.toLowerCase());
|
||||
insertStr.append("(").append(fieldStr).append(") VALUES( ");
|
||||
//sql组装
|
||||
Map<String, Object> parameterMap = new HashMap<>();
|
||||
StringBuilder builder = new StringBuilder();
|
||||
for (int i = MesPcnExtConstWords.ZERO; i < logList.size(); i++) {
|
||||
int j = MesPcnExtConstWords.ZERO;
|
||||
builder.append(insertStr).append(fieldBuilder.substring(MesPcnExtConstWords.ZERO, fieldBuilder.lastIndexOf(MesPcnExtConstWords.COMMA) - MesPcnExtConstWords.ONE).replaceAll("%s", String.valueOf(i))).append(" ); ");
|
||||
parameterMap.put(new StringJoiner(MesPcnExtConstWords.E_UNDERLINE).add(splitField[j++]).add(String.valueOf(i)).toString(), snowflakeIdMaker.nextId());
|
||||
parameterMap.put(new StringJoiner(MesPcnExtConstWords.E_UNDERLINE).add(splitField[j++]).add(String.valueOf(i)).toString(), logList.get(i).getCreateDatetime());
|
||||
parameterMap.put(new StringJoiner(MesPcnExtConstWords.E_UNDERLINE).add(splitField[j++]).add(String.valueOf(i)).toString(), logList.get(i).getCreateUser());
|
||||
parameterMap.put(new StringJoiner(MesPcnExtConstWords.E_UNDERLINE).add(splitField[j++]).add(String.valueOf(i)).toString(), logList.get(i).getDescription());
|
||||
parameterMap.put(new StringJoiner(MesPcnExtConstWords.E_UNDERLINE).add(splitField[j++]).add(String.valueOf(i)).toString(), logList.get(i).getIsDeleted());
|
||||
parameterMap.put(new StringJoiner(MesPcnExtConstWords.E_UNDERLINE).add(splitField[j++]).add(String.valueOf(i)).toString(), logList.get(i).getIsValid());
|
||||
parameterMap.put(new StringJoiner(MesPcnExtConstWords.E_UNDERLINE).add(splitField[j++]).add(String.valueOf(i)).toString(), logList.get(i).getOrganizeCode());
|
||||
parameterMap.put(new StringJoiner(MesPcnExtConstWords.E_UNDERLINE).add(splitField[j++]).add(String.valueOf(i)).toString(), logList.get(i).getRemark());
|
||||
parameterMap.put(new StringJoiner(MesPcnExtConstWords.E_UNDERLINE).add(splitField[j++]).add(String.valueOf(i)).toString(), logList.get(i).getSystemSyncDatetime());
|
||||
parameterMap.put(new StringJoiner(MesPcnExtConstWords.E_UNDERLINE).add(splitField[j++]).add(String.valueOf(i)).toString(), logList.get(i).getSystemSyncStatus());
|
||||
parameterMap.put(new StringJoiner(MesPcnExtConstWords.E_UNDERLINE).add(splitField[j++]).add(String.valueOf(i)).toString(), logList.get(i).getHangerCode());
|
||||
parameterMap.put(new StringJoiner(MesPcnExtConstWords.E_UNDERLINE).add(splitField[j++]).add(String.valueOf(i)).toString(), logList.get(i).getHangerPackageSn());
|
||||
parameterMap.put(new StringJoiner(MesPcnExtConstWords.E_UNDERLINE).add(splitField[j++]).add(String.valueOf(i)).toString(), logList.get(i).getHangerRuleCode());
|
||||
parameterMap.put(new StringJoiner(MesPcnExtConstWords.E_UNDERLINE).add(splitField[j++]).add(String.valueOf(i)).toString(), logList.get(i).getLotNumber());
|
||||
parameterMap.put(new StringJoiner(MesPcnExtConstWords.E_UNDERLINE).add(splitField[j++]).add(String.valueOf(i)).toString(), logList.get(i).getModifyType());
|
||||
parameterMap.put(new StringJoiner(MesPcnExtConstWords.E_UNDERLINE).add(splitField[j++]).add(String.valueOf(i)).toString(), logList.get(i).getOrderCode());
|
||||
parameterMap.put(new StringJoiner(MesPcnExtConstWords.E_UNDERLINE).add(splitField[j++]).add(String.valueOf(i)).toString(), logList.get(i).getPackageSn());
|
||||
parameterMap.put(new StringJoiner(MesPcnExtConstWords.E_UNDERLINE).add(splitField[j++]).add(String.valueOf(i)).toString(), logList.get(i).getPartName());
|
||||
parameterMap.put(new StringJoiner(MesPcnExtConstWords.E_UNDERLINE).add(splitField[j++]).add(String.valueOf(i)).toString(), logList.get(i).getPartNo());
|
||||
parameterMap.put(new StringJoiner(MesPcnExtConstWords.E_UNDERLINE).add(splitField[j++]).add(String.valueOf(i)).toString(), logList.get(i).getProductSn());
|
||||
parameterMap.put(new StringJoiner(MesPcnExtConstWords.E_UNDERLINE).add(splitField[j++]).add(String.valueOf(i)).toString(), logList.get(i).getQty());
|
||||
parameterMap.put(new StringJoiner(MesPcnExtConstWords.E_UNDERLINE).add(splitField[j++]).add(String.valueOf(i)).toString(), logList.get(i).getStatus());
|
||||
parameterMap.put(new StringJoiner(MesPcnExtConstWords.E_UNDERLINE).add(splitField[j++]).add(String.valueOf(i)).toString(), logList.get(i).getTotalQty());
|
||||
parameterMap.put(new StringJoiner(MesPcnExtConstWords.E_UNDERLINE).add(splitField[j]).add(String.valueOf(i)).toString(), logList.get(i).getTypeCode());
|
||||
}
|
||||
Query queryObject = entityManager.createNativeQuery(builder.toString());
|
||||
//数据填充
|
||||
for (String key : parameterMap.keySet()) {
|
||||
queryObject.setParameter(key, parameterMap.get(key));
|
||||
}
|
||||
queryObject.executeUpdate();
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue