merge MES: 赛力斯6个报表开发

uat-temp-wj-chongqingdaqu-dev
王杰 2 months ago
commit dc3f83357e

@ -0,0 +1,31 @@
package cn.estsh.i3plus.ext.mes.api.busi.report;
import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.mes.bean.seres.MesCimSeresJisQueue;
import cn.estsh.i3plus.pojo.mes.bean.seres.MesCimSeresJisVinOverPoint;
import cn.estsh.i3plus.pojo.mes.bean.seres.MesCimSeresSrmRunSheetJis;
import cn.estsh.i3plus.pojo.mes.model.report.DataTwoDimensionalModel;
import cn.estsh.i3plus.pojo.mes.model.report.MesCimSeresJisQueueRequest;
import cn.estsh.i3plus.pojo.mes.model.report.MesCimSeresJisQueueSummaryRequest;
import cn.estsh.i3plus.pojo.mes.model.report.MesCimSeresJisQueueSummaryResponse;
import java.util.List;
public interface IMesCimSeresReportService {
ListPager<MesCimSeresSrmRunSheetJis> querySrmSunSheetJisLogByPager(Integer status, Pager pager);
void doSrmSunSheetJisNormal(List<Long> ids);
ListPager<MesCimSeresJisQueue> queryJisQueueLogByPager(Integer checkStatus, Pager pager);
void doJisQueueNormal(List<Long> ids);
ListPager<MesCimSeresJisVinOverPoint> queryJisVinOverPointByPager(MesCimSeresJisVinOverPoint request, Pager pager);
ListPager<MesCimSeresJisQueue> queryJisQueueByPager(MesCimSeresJisQueueRequest request, Pager pager);
ListPager<MesCimSeresJisQueueSummaryResponse> queryJisQueueSummaryByPager(MesCimSeresJisQueueSummaryRequest request, Pager pager);
ListPager<DataTwoDimensionalModel> queryTwoDimensionalByPager(DataTwoDimensionalModel request, Pager pager);
}

@ -0,0 +1,139 @@
package cn.estsh.i3plus.ext.mes.apiservice.controller.report;
import cn.estsh.i3plus.ext.mes.api.busi.report.IMesCimSeresReportService;
import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant;
import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
import cn.estsh.i3plus.pojo.mes.bean.seres.MesCimSeresJisQueue;
import cn.estsh.i3plus.pojo.mes.bean.seres.MesCimSeresJisVinOverPoint;
import cn.estsh.i3plus.pojo.mes.bean.seres.MesCimSeresSrmRunSheetJis;
import cn.estsh.i3plus.pojo.mes.model.report.*;
import cn.estsh.impp.framework.boot.exception.ImppBusiException;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.util.ResultBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* @Description :
* @Reference :
* @Author : jason.niu
* @CreateDate : 2025/03/04 09:59
* @Modify:
**/
@Api(tags = "赛力斯报表")
@RestController
@RequestMapping(MesCommonConstant.MES_YANFEN + "/mesCimSeresReport")
public class MesCimSeresReportController {
@Autowired
private IMesCimSeresReportService mesCimSeresReportService;
@ApiOperation(value = "赛力斯JIS单接收日志", notes = "赛力斯JIS单接收日志")
@GetMapping("/query-srm-sun-sheet-jis-log")
public ResultBean querySrmSunSheetJisLogByPager(Integer status, Pager pager){
try {
ListPager<MesCimSeresSrmRunSheetJis> queryResultListPager = mesCimSeresReportService.querySrmSunSheetJisLogByPager(status, pager);
return ResultBean.success("查询成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setListPager(queryResultListPager);
} catch (ImppBusiException e) {
return ResultBean.fail(e);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
@ApiOperation(value = "赛力斯JIS单转正常", notes = "赛力斯JIS单转正常")
@PostMapping("/srm-sun-sheet-jis-normal")
public ResultBean doSrmSunSheetJisNormal(@RequestBody List<Long> ids) {
try {
mesCimSeresReportService.doSrmSunSheetJisNormal(ids);
return ResultBean.success("执行成功");
} catch (ImppBusiException e) {
return ResultBean.fail(e);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
@ApiOperation(value = "赛力斯JIS队列接收日志", notes = "赛力斯JIS队列接收日志")
@GetMapping("/query-jis-queue-log")
public ResultBean queryJisQueueLogByPager(Integer checkStatus, Pager pager){
try {
ListPager<MesCimSeresJisQueue> queryResultListPager = mesCimSeresReportService.queryJisQueueLogByPager(checkStatus, pager);
return ResultBean.success("查询成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setListPager(queryResultListPager);
} catch (ImppBusiException e) {
return ResultBean.fail(e);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
@ApiOperation(value = "赛力斯JIS队列转正常", notes = "赛力斯JIS队列转正常")
@PostMapping("/jis-queue-normal")
public ResultBean doJisQueueNormal(@RequestBody List<Long> ids) {
try {
mesCimSeresReportService.doJisQueueNormal(ids);
return ResultBean.success("执行成功");
} catch (ImppBusiException e) {
return ResultBean.fail(e);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
@ApiOperation(value = "赛力斯过点信息查询", notes = "赛力斯过点信息查询")
@GetMapping("/query-jis-vin-over-point")
public ResultBean queryJisVinOverPointByPager(MesCimSeresJisVinOverPoint request, Pager pager){
try {
ListPager<MesCimSeresJisVinOverPoint> queryResultListPager = mesCimSeresReportService.queryJisVinOverPointByPager(request, pager);
return ResultBean.success("查询成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setListPager(queryResultListPager);
} catch (ImppBusiException e) {
return ResultBean.fail(e);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
@ApiOperation(value = "赛力斯排序信息查询", notes = "赛力斯排序信息查询")
@GetMapping("/query-jis-queue")
public ResultBean queryJisQueueByPager(MesCimSeresJisQueueRequest request, Pager pager){
try {
ListPager<MesCimSeresJisQueue> queryResultListPager = mesCimSeresReportService.queryJisQueueByPager(request, pager);
return ResultBean.success("查询成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setListPager(queryResultListPager);
} catch (ImppBusiException e) {
return ResultBean.fail(e);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
@ApiOperation(value = "赛力斯排序信息汇总", notes = "赛力斯排序信息汇总")
@GetMapping("/query-jis-queue-summary")
public ResultBean queryJisQueueSummaryByPager(MesCimSeresJisQueueSummaryRequest request, Pager pager){
try {
ListPager<MesCimSeresJisQueueSummaryResponse> queryResultListPager = mesCimSeresReportService.queryJisQueueSummaryByPager(request, pager);
return ResultBean.success("查询成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setListPager(queryResultListPager);
} catch (ImppBusiException e) {
return ResultBean.fail(e);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
@ApiOperation(value = "数据二维报表", notes = "数据二维报表")
@GetMapping("/query-data-two-dimensional")
public ResultBean queryTwoDimensionalByPager(DataTwoDimensionalModel request, Pager pager){
try {
ListPager<DataTwoDimensionalModel> queryResultListPager = mesCimSeresReportService.queryTwoDimensionalByPager(request, pager);
return ResultBean.success("查询成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setListPager(queryResultListPager);
} catch (ImppBusiException e) {
return ResultBean.fail(e);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
}

@ -0,0 +1,336 @@
package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.report;
import cn.estsh.i3plus.ext.mes.api.base.IMesConfigService;
import cn.estsh.i3plus.ext.mes.api.busi.report.IMesCimSeresReportService;
import cn.estsh.i3plus.ext.mes.apiservice.utils.MesException;
import cn.estsh.i3plus.ext.mes.pojo.util.MesExtConstWords;
import cn.estsh.i3plus.platform.common.tool.TimeTool;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.base.common.PagerHelper;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.mes.bean.MesConfig;
import cn.estsh.i3plus.pojo.mes.bean.seres.MesCimSeresJisQueue;
import cn.estsh.i3plus.pojo.mes.bean.seres.MesCimSeresJisVinOverPoint;
import cn.estsh.i3plus.pojo.mes.bean.seres.MesCimSeresSrmRunSheetJis;
import cn.estsh.i3plus.pojo.mes.model.report.DataTwoDimensionalModel;
import cn.estsh.i3plus.pojo.mes.model.report.MesCimSeresJisQueueRequest;
import cn.estsh.i3plus.pojo.mes.model.report.MesCimSeresJisQueueSummaryRequest;
import cn.estsh.i3plus.pojo.mes.model.report.MesCimSeresJisQueueSummaryResponse;
import cn.estsh.i3plus.pojo.mes.repository.seres.IMesCimSeresJisQueueRepository;
import cn.estsh.i3plus.pojo.mes.repository.seres.IMesCimSeresJisVinOverPointRepository;
import cn.estsh.i3plus.pojo.mes.repository.seres.IMesCimSeresSrmRunSheetJisRepository;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import cn.estsh.impp.framework.boot.auth.AuthUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import javax.persistence.EntityManager;
import javax.persistence.Query;
import java.util.ArrayList;
import java.util.List;
@Service
public class MesCimSeresReportServiceImpl implements IMesCimSeresReportService {
@Autowired
private EntityManager entityManager;
@Autowired
private IMesCimSeresSrmRunSheetJisRepository runSheetJisRDao;
@Autowired
private IMesCimSeresJisQueueRepository queueJisRDao;
@Autowired
private IMesCimSeresJisVinOverPointRepository overPointJisRDao;
@Autowired
private IMesConfigService mesConfigService;
@Override
public ListPager<MesCimSeresSrmRunSheetJis> querySrmSunSheetJisLogByPager(Integer status, Pager pager) {
final String organizeCode = AuthUtil.getOrganize().getOrganizeCode();
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getNumEqualPack(status, "status", packBean);
pager = PagerHelper.getPager(pager, runSheetJisRDao.findByHqlWhereCount(packBean));
List<MesCimSeresSrmRunSheetJis> list = runSheetJisRDao.findByHqlWherePage(packBean, pager);
return new ListPager<>(list, pager);
}
@Override
public void doSrmSunSheetJisNormal(List<Long> ids) {
final String organizeCode = AuthUtil.getOrganize().getOrganizeCode();
final String username = AuthUtil.getSessionUser().getUserName();
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getInPackList(ids, "id", packBean);
runSheetJisRDao.updateByProperties(new String[]{"status","modifyUser","modifyDatetime"},new Object[]{MesExtEnumUtil.CIM_SERES_JIS_STATUS.WAIT_CHECK.getValue(), username, TimeTool.getNowTime(true)}, packBean);
}
@Override
public ListPager<MesCimSeresJisQueue> queryJisQueueLogByPager(Integer checkStatus, Pager pager) {
final String organizeCode = AuthUtil.getOrganize().getOrganizeCode();
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getNumEqualPack(checkStatus, "checkStatus", packBean);
pager = PagerHelper.getPager(pager, queueJisRDao.findByHqlWhereCount(packBean));
List<MesCimSeresJisQueue> list = queueJisRDao.findByHqlWherePage(packBean, pager);
return new ListPager<>(list, pager);
}
@Override
public void doJisQueueNormal(List<Long> ids) {
final String organizeCode = AuthUtil.getOrganize().getOrganizeCode();
final String username = AuthUtil.getSessionUser().getUserName();
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getInPackList(ids, "id", packBean);
queueJisRDao.updateByProperties(new String[]{"checkStatus","modifyUser","modifyDatetime"},new Object[]{MesExtEnumUtil.CIM_SERES_JIS_STATUS.WAIT_CHECK.getValue(), username, TimeTool.getNowTime(true)}, packBean);
}
@Override
public ListPager<MesCimSeresJisVinOverPoint> queryJisVinOverPointByPager(MesCimSeresJisVinOverPoint request, Pager pager) {
final String organizeCode = AuthUtil.getOrganize().getOrganizeCode();
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringBiggerPack(request.getCreateDateTimeStart(), "overPointTime", packBean);
DdlPreparedPack.getStringSmallerPack(request.getCreateDateTimeEnd(), "overPointTime", packBean);
DdlPreparedPack.getStringLikerPack(request.getOverPoint(), "overPoint", packBean);
DdlPreparedPack.getStringLikerPack(request.getVin(), "vin", packBean);
pager = PagerHelper.getPager(pager, overPointJisRDao.findByHqlWhereCount(packBean));
List<MesCimSeresJisVinOverPoint> list = overPointJisRDao.findByHqlWherePage(packBean, pager);
return new ListPager<>(list, pager);
}
@Override
public ListPager<MesCimSeresJisQueue> queryJisQueueByPager(MesCimSeresJisQueueRequest request, Pager pager) {
final String organizeCode = AuthUtil.getOrganize().getOrganizeCode();
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringBiggerPack(request.getOverPointTimeStart(), "overPointTime", packBean);
DdlPreparedPack.getStringSmallerPack(request.getOverPointTimeEnd(), "overPointTime", packBean);
DdlPreparedPack.getStringLikerPack(request.getVin(), "vin", packBean);
DdlPreparedPack.getNumberBiggerEqualPack(request.getSerialNumberStart(), "serialNumber", packBean);
DdlPreparedPack.getNumberSmallerEqualPack(request.getSerialNumberEnd(), "serialNumber", packBean);
DdlPreparedPack.getStringLikerPack(request.getPartClassCode(), "partClassCode", packBean);
DdlPreparedPack.getNumEqualPack(request.getSortInfoStatus(), "sortInfoStatus", packBean);
DdlPreparedPack.getNumEqualPack(request.getShippingOrderStatus(), "shippingOrderStatus", packBean);
pager = PagerHelper.getPager(pager, queueJisRDao.findByHqlWhereCount(packBean));
List<MesCimSeresJisQueue> list = queueJisRDao.findByHqlWherePage(packBean, pager);
return new ListPager<>(list, pager);
}
@Override
public ListPager<MesCimSeresJisQueueSummaryResponse> queryJisQueueSummaryByPager(MesCimSeresJisQueueSummaryRequest request, Pager pager) {
final String organizeCode = AuthUtil.getOrganize().getOrganizeCode();
StringBuilder hql = new StringBuilder();
hql.append(" from (");
hql.append(" select b.cust_organize_code, c.shipping_group_name, a.part_no, a.part_name, a.cust_part_no, a.cust_info_seq, a.create_date_time, materiel_code, a.vin, part_class_code, part_class_name, d.part_number from mes_shipping_detail a join mes_shipping b on b.id = a.pid");
hql.append(" and a.organize_code=:organizeCode and a.is_deleted=:isDeleted and a.is_valid=:isValid and b.organize_code = :organizeCode and b.is_deleted=:isDeleted and b.is_valid=:isValid");
hql.append(" join mes_part_shipping_group c on b.shipping_group_code = c.shipping_group_code");
hql.append(" and c.organize_code=:organizeCode and c.is_deleted=:isDeleted and c.is_valid=:isValid");
hql.append(" join mes_cim_seres_jis_queue d on a.vin=d.vin and a.cust_part_no=d.materiel_code");
hql.append(" and d.organize_code=:organizeCode and d.is_deleted=:isDeleted and d.is_valid=:isValid");
hql.append(" join mes_part e on a.part_no=e.part_no");
hql.append(" and e.organize_code=:organizeCode and e.is_deleted=:isDeleted and e.is_valid=:isValid");
hql.append(" ) s");
hql.append(" where 1=1");
if (!StringUtils.isEmpty(request.getCustOrganizeCode())){
hql.append(" and cust_organize_code like :custOrganizeCode");
}
if (!StringUtils.isEmpty(request.getShippingGroupName())){
hql.append(" and shipping_group_name like :shippingGroupName");
}
if (!StringUtils.isEmpty(request.getPartClassCode())){
hql.append(" and part_class_code like :partClassCode");
}
if (!StringUtils.isEmpty(request.getPartNo())){
hql.append(" and part_no like :partNo");
}
if (!StringUtils.isEmpty(request.getMaterielCode())){
hql.append(" and materiel_code like :materielCode");
}
if (request.getSerialNumberStart() != null){
hql.append(" and cust_info_seq >= :serialNumberStart");
}
if (request.getSerialNumberEnd() != null){
hql.append(" and cust_info_seq <= :serialNumberEnd");
}
if (!StringUtils.isEmpty(request.getCreateDateTimeStart())){
hql.append(" and create_date_time >= :createDateTimeStart");
}
if (!StringUtils.isEmpty(request.getCreateDateTimeEnd())){
hql.append(" and create_date_time <= :createDateTimeEnd");
}
if (!StringUtils.isEmpty(request.getPartNumber())){
hql.append(" and part_number like :partNumber");
}
if (!StringUtils.isEmpty(request.getVin())){
hql.append(" and vin like :vin");
}
hql.append(" group by cust_organize_code, shipping_group_name, part_class_code, part_class_name, part_no, part_name, materiel_code");
StringBuilder countQueryHql= new StringBuilder();
countQueryHql.append("select count(1) ");
Query countQuery = entityManager.createNativeQuery(countQueryHql.append(hql).toString());
packJisQueueSummary(countQuery, request, organizeCode);
//本次查询满足条件的总数
int count = countQuery.getResultList().size();
if (count <= 0) {
return new ListPager(new ArrayList<MesCimSeresJisQueueSummaryResponse>(), pager);
}
StringBuilder dataQueryHql = new StringBuilder();
dataQueryHql.append(" select cust_organize_code, shipping_group_Name, part_class_code, part_class_name, part_no, part_name, materiel_code, COUNT(1)");
Query dataQuery = entityManager.createNativeQuery(dataQueryHql.append(hql).toString());
packJisQueueSummary(dataQuery, request, organizeCode);
pager = PagerHelper.getPager(pager, count);
//查询本页数据
dataQuery.setMaxResults(pager.getPageSize());
dataQuery.setFirstResult(pager.getCurrentPage() * pager.getPageSize() - pager.getPageSize());
List list = dataQuery.getResultList();
List<MesCimSeresJisQueueSummaryResponse> modelList = new ArrayList<>();
for (Object result : list) {
Object[] cells = (Object[]) result;
MesCimSeresJisQueueSummaryResponse model = new MesCimSeresJisQueueSummaryResponse();
String custOrganizeCode = String.valueOf(cells[0]);
String shippingGroupName = String.valueOf(cells[1]);
String partClassCode = String.valueOf(cells[2]);
String partClassName = String.valueOf(cells[3]);
String partNo = String.valueOf(cells[4]);
String partName = String.valueOf(cells[5]);
String materielCode = String.valueOf(cells[6]);
String seqCount = String.valueOf(cells[7]);
model.setCustOrganizeCode(custOrganizeCode);
model.setShippingGroupName(shippingGroupName);
model.setPartClassCode(partClassCode);
model.setPartClassName(partClassName);
model.setPartNo(partNo);
model.setPartName(partName);
model.setMaterielCode(materielCode);
model.setCount(Integer.parseInt(seqCount));
modelList.add(model);
}
return new ListPager<>(modelList, pager);
}
private void packJisQueueSummary(Query query, MesCimSeresJisQueueSummaryRequest request, String organizeCode) {
query.setParameter("organizeCode", organizeCode)
.setParameter("isValid", CommonEnumUtil.VALID)
.setParameter("isDeleted", CommonEnumUtil.FALSE);
if (!StringUtils.isEmpty(request.getCustOrganizeCode())){
query.setParameter("custOrganizeCode", request.getCustOrganizeCode());
}
if (!StringUtils.isEmpty(request.getShippingGroupName())){
query.setParameter("shippingGroupName", request.getShippingGroupName());
}
if (!StringUtils.isEmpty(request.getPartClassCode())){
query.setParameter("partClassCode", request.getPartClassCode());
}
if (!StringUtils.isEmpty(request.getPartNo())){
query.setParameter("partNo", request.getPartNo());
}
if (!StringUtils.isEmpty(request.getMaterielCode())){
query.setParameter("materielCode", request.getMaterielCode());
}
if (request.getSerialNumberStart() != null){
query.setParameter("serialNumberStart", request.getSerialNumberStart());
}
if (request.getSerialNumberEnd() != null){
query.setParameter("serialNumberEnd", request.getSerialNumberEnd());
}
if (!StringUtils.isEmpty(request.getCreateDateTimeStart())){
query.setParameter("createDateTimeStart", request.getCreateDateTimeStart());
}
if (!StringUtils.isEmpty(request.getCreateDateTimeEnd())){
query.setParameter("createDateTimeEnd", request.getCreateDateTimeEnd());
}
if (!StringUtils.isEmpty(request.getPartNumber())){
query.setParameter("partNumber", request.getPartNumber());
}
if (!StringUtils.isEmpty(request.getVin())){
query.setParameter("vin", request.getVin());
}
}
@Override
public ListPager<DataTwoDimensionalModel> queryTwoDimensionalByPager(DataTwoDimensionalModel request, Pager pager) {
final String organizeCode = AuthUtil.getOrganize().getOrganizeCode();
MesConfig shippingGroupConfig = mesConfigService.getCfgValueByCode(organizeCode, MesExtConstWords.TWO_DIMENSIONAL_SHIPPING_GROUP_CODE);
if (shippingGroupConfig == null || StringUtils.isEmpty(shippingGroupConfig.getCfgValue())){
MesException.throwMesBusiException("未维护赛力斯数据二维表发运组编码【TWO_DIMENSIONAL_SHIPPING_GROUP_CODE】");
}
StringBuilder hql = new StringBuilder();
hql.append(" from mes_cim_seres_jis_rfid AA join (");
hql.append(" select A.shipping_code, B.cust_info_seq, B.vin as vin, A.create_date_time from mes_shipping as A join mes_shipping_detail as B on A.id = B.pid");
hql.append(" where A.organize_code = :organizeCode and A.is_deleted=:isDeleted and A.is_valid=:isValid and B.organize_code = :organizeCode and B.is_deleted=:isDeleted and B.is_valid=:isValid");
hql.append(" and A.shipping_group_code = :shippingGroupCode) BB on AA.vin = BB.vin");
if (!StringUtils.isEmpty(request.getShippingCode())) {
hql.append(" and BB.shipping_code like :shippingCode");
}
if (request.getCustInfoSeq() != null){
hql.append(" and BB.cust_info_seq = :custInfoSeq");
}
if (!StringUtils.isEmpty(request.getVin())){
hql.append(" and BB.vin like :vin");
}
StringBuilder countQueryHql= new StringBuilder();
countQueryHql.append("select count(1) ");
Query countQuery = entityManager.createNativeQuery(countQueryHql.append(hql).toString());
packTwoDimensional(countQuery, request, shippingGroupConfig.getCfgValue(), organizeCode);
//本次查询满足条件的总数
int count = Integer.parseInt(String.valueOf(countQuery.getSingleResult()));
StringBuilder dataQueryHql = new StringBuilder();
dataQueryHql.append(" select BB.shipping_code, BB.cust_info_seq, BB.vin, csn, CONCAT(LEFT(rfid,114), UPPER('326312JSG1DJ05')) as rfid, AA.create_date_time");
Query dataQuery = entityManager.createNativeQuery(dataQueryHql.append(hql).toString());
packTwoDimensional(dataQuery, request, shippingGroupConfig.getCfgValue(), organizeCode);
pager = PagerHelper.getPager(pager, count);
//查询本页数据
dataQuery.setMaxResults(pager.getPageSize());
dataQuery.setFirstResult(pager.getCurrentPage() * pager.getPageSize() - pager.getPageSize());
List list = dataQuery.getResultList();
List<DataTwoDimensionalModel> modelList = new ArrayList<>();
for (Object result : list) {
Object[] cells = (Object[]) result;
DataTwoDimensionalModel model = new DataTwoDimensionalModel();
String shippingCode = String.valueOf(cells[0]);
String custInfoSeq = String.valueOf(cells[1]);
String vin = String.valueOf(cells[2]);
String csn = String.valueOf(cells[3]);
String rfid = String.valueOf(cells[4]);
String createDateTime = String.valueOf(cells[5]);
model.setShippingCode(shippingCode);
model.setCustInfoSeq(Long.parseLong(custInfoSeq));
model.setVin(vin);
model.setCsn(csn);
model.setRfid(rfid);
model.setCreateDatetime(createDateTime);
modelList.add(model);
}
return new ListPager<>(modelList, pager);
}
private void packTwoDimensional(Query query, DataTwoDimensionalModel request, String shippingGroupCode, String organizeCode) {
query.setParameter("organizeCode", organizeCode)
.setParameter("isValid", CommonEnumUtil.VALID)
.setParameter("isDeleted", CommonEnumUtil.FALSE);
query.setParameter("shippingGroupCode", shippingGroupCode);
if (!StringUtils.isEmpty(request.getShippingCode())){
query.setParameter("shippingCode", "%" + request.getShippingCode() + "%");
}
if (request.getCustInfoSeq() != null){
query.setParameter("custInfoSeq", request.getCustInfoSeq());
}
if (!StringUtils.isEmpty(request.getVin())){
query.setParameter("vin", "%" + request.getVin() + "%");
}
}
}

@ -481,4 +481,7 @@ public class MesExtConstWords {
//由前端直接渲染模版的标志
public static final String TEMPLATE_CUSTOM_HTML = "TEMPLATE_CUSTOM_HTML";
//赛力斯数据二维表发运组编码
public static final String TWO_DIMENSIONAL_SHIPPING_GROUP_CODE = "TWO_DIMENSIONAL_SHIPPING_GROUP_CODE";
}

Loading…
Cancel
Save