|
|
@ -6,6 +6,8 @@ import cn.estsh.i3plus.pojo.base.bean.ListPager;
|
|
|
|
import cn.estsh.i3plus.pojo.base.common.Pager;
|
|
|
|
import cn.estsh.i3plus.pojo.base.common.Pager;
|
|
|
|
import cn.estsh.i3plus.pojo.base.common.PagerHelper;
|
|
|
|
import cn.estsh.i3plus.pojo.base.common.PagerHelper;
|
|
|
|
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
|
|
|
|
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
|
|
|
|
|
|
|
|
import cn.estsh.i3plus.pojo.base.util.StringUtil;
|
|
|
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrderPart;
|
|
|
|
import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagement;
|
|
|
|
import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagement;
|
|
|
|
import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagementDetail;
|
|
|
|
import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagementDetail;
|
|
|
|
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
|
|
|
|
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
|
|
|
@ -20,6 +22,7 @@ import javax.persistence.Query;
|
|
|
|
import java.util.ArrayList;
|
|
|
|
import java.util.ArrayList;
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.Objects;
|
|
|
|
import java.util.Objects;
|
|
|
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* @Description :SAP生产计划
|
|
|
|
* @Description :SAP生产计划
|
|
|
@ -187,4 +190,130 @@ public class MesShippingOrderManagementDetailDaoImpl implements IMesShippingOrde
|
|
|
|
commonHql.append(" and m.publishTime <= :publishTimeEnd ");
|
|
|
|
commonHql.append(" and m.publishTime <= :publishTimeEnd ");
|
|
|
|
return commonHql.toString();
|
|
|
|
return commonHql.toString();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public List<MesShippingOrderManagementDetail> queryMesShippingOrderManagementDetail(MesWorkOrderPart detail ) {
|
|
|
|
|
|
|
|
StringBuffer hql = new StringBuffer("" +
|
|
|
|
|
|
|
|
" SELECT " +
|
|
|
|
|
|
|
|
" SUBSTRING_INDEX(sd.bar_code, ',', 1) AS bar_code, " +
|
|
|
|
|
|
|
|
" sd.plan_qty, " +
|
|
|
|
|
|
|
|
" sd.actual_qty, " +
|
|
|
|
|
|
|
|
" s.shipping_code, " +
|
|
|
|
|
|
|
|
" sd.part_no, " +
|
|
|
|
|
|
|
|
" sd.modify_date_time, " +
|
|
|
|
|
|
|
|
" from mes_shipping_detail sd " +
|
|
|
|
|
|
|
|
" left join mes_work_order wo on wop.work_order_no=wo.work_order_no " +
|
|
|
|
|
|
|
|
" WHERE sd.status in (20) " +//todo 发运 20
|
|
|
|
|
|
|
|
" and sd.bar_code != '' and bar_code is not NULL ");
|
|
|
|
|
|
|
|
hql.append(" and sd.organize_code = :organizeCode ");
|
|
|
|
|
|
|
|
hql.append(" and sd.is_deleted = :isDeleted ");
|
|
|
|
|
|
|
|
hql.append(" and sd.is_valid = :isValid ");
|
|
|
|
|
|
|
|
if (!StringUtil.isEmpty(detail.getModifyDateTimeStart())){
|
|
|
|
|
|
|
|
hql.append(" and sd.modify_date_time >= "+detail.getModifyDateTimeStart()+" ");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!StringUtil.isEmpty(detail.getModifyDateTimeEnd())){
|
|
|
|
|
|
|
|
hql.append(" and sd.modify_date_time <= "+detail.getModifyDateTimeEnd()+" ");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Query query = entityManager.createNativeQuery(hql.toString());
|
|
|
|
|
|
|
|
query.setParameter("organizeCode", detail.getOrganizeCode());
|
|
|
|
|
|
|
|
query.setParameter("isValid", CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
|
|
|
|
|
|
|
|
query.setParameter("isDeleted", CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List list = query.getResultList();
|
|
|
|
|
|
|
|
List<MesShippingOrderManagementDetail> modelList = new ArrayList<>();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (Object result : list) {
|
|
|
|
|
|
|
|
Object[] cells = (Object[]) result;
|
|
|
|
|
|
|
|
MesShippingOrderManagementDetail model = new MesShippingOrderManagementDetail();
|
|
|
|
|
|
|
|
model.setBarcode(StringUtils.isEmpty(cells[0]) ? "" : String.valueOf(cells[0]));
|
|
|
|
|
|
|
|
model.setPlanQty(StringUtils.isEmpty(cells[1]) ? 1 : Integer.parseInt(String.valueOf(cells[1])));
|
|
|
|
|
|
|
|
model.setActualQty(StringUtils.isEmpty(cells[2]) ? 1 : Integer.parseInt(String.valueOf(cells[2])));
|
|
|
|
|
|
|
|
model.setShippingCode(StringUtils.isEmpty(cells[3]) ? "" : String.valueOf(cells[3]));
|
|
|
|
|
|
|
|
model.setPartNo(StringUtils.isEmpty(cells[4]) ? "" : String.valueOf(cells[4]));
|
|
|
|
|
|
|
|
model.setModifyDatetime(StringUtils.isEmpty(cells[5]) ? "" : String.valueOf(cells[5]));
|
|
|
|
|
|
|
|
modelList.add(model);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return modelList;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public int queryDetailGroupByPartNo(MesWorkOrderPart detail) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
StringBuffer hql = new StringBuffer("select count(1)" +
|
|
|
|
|
|
|
|
" from mes_work_order_part wop " +
|
|
|
|
|
|
|
|
" left join mes_work_order wo on wop.work_order_no=wo.work_order_no " );
|
|
|
|
|
|
|
|
hql.append(" WHERE wop.organize_code = :organizeCode ");
|
|
|
|
|
|
|
|
hql.append(" and wop.is_deleted = :isDeleted ");
|
|
|
|
|
|
|
|
hql.append(" and wop.is_valid = :isValid ");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!StringUtil.isEmpty(detail.getPartNo())){
|
|
|
|
|
|
|
|
hql.append(" and wop.part_no ="+detail.getPartNo()+" ");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!StringUtil.isEmpty(detail.getWorkCenterCode())){
|
|
|
|
|
|
|
|
hql.append(" and wop.work_center_code ="+detail.getWorkCenterCode()+" ");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
hql.append(" and wop.work_order_no in (:codeList) ");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Query query = entityManager.createNativeQuery(hql.toString());
|
|
|
|
|
|
|
|
query.setParameter("organizeCode", detail.getOrganizeCode());
|
|
|
|
|
|
|
|
query.setParameter("isValid", CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
|
|
|
|
|
|
|
|
query.setParameter("isDeleted", CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
|
|
|
|
|
|
|
|
query.setParameter("codeList", detail.getShippingDetails().stream().map(MesShippingOrderManagementDetail::getBarcode).collect(Collectors.toList()));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List list = query.getResultList();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (CollectionUtils.isEmpty(list)) {
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return list.size();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public List<MesWorkOrderPart> queryOrderDetailGroupByPartInfo(MesWorkOrderPart detail, Pager pager) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
StringBuffer hql = new StringBuffer("" +
|
|
|
|
|
|
|
|
"SELECT " +
|
|
|
|
|
|
|
|
" wo.work_center_code, " +
|
|
|
|
|
|
|
|
" wop.part_no, " +
|
|
|
|
|
|
|
|
" wop.part_name, " +
|
|
|
|
|
|
|
|
" wop.item_qty " +
|
|
|
|
|
|
|
|
" from mes_work_order_part wop " +
|
|
|
|
|
|
|
|
" left join mes_work_order wo on wop.work_order_no=wo.work_order_no " );
|
|
|
|
|
|
|
|
hql.append(" WHERE wop.organize_code = :organizeCode ");
|
|
|
|
|
|
|
|
hql.append(" and wop.is_deleted = :isDeleted ");
|
|
|
|
|
|
|
|
hql.append(" and wop.is_valid = :isValid ");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!StringUtil.isEmpty(detail.getPartNo())){
|
|
|
|
|
|
|
|
hql.append(" and wop.part_no ="+detail.getPartNo()+" ");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!StringUtil.isEmpty(detail.getWorkCenterCode())){
|
|
|
|
|
|
|
|
hql.append(" and wop.work_center_code ="+detail.getWorkCenterCode()+" ");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
hql.append(" and wop.work_order_no in (:codeList) ");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Query query = entityManager.createNativeQuery(hql.toString());
|
|
|
|
|
|
|
|
query.setParameter("organizeCode", detail.getOrganizeCode());
|
|
|
|
|
|
|
|
query.setParameter("isValid", CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
|
|
|
|
|
|
|
|
query.setParameter("isDeleted", CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
|
|
|
|
|
|
|
|
query.setParameter("codeList", detail.getShippingDetails().stream().map(MesShippingOrderManagementDetail::getBarcode).collect(Collectors.toList()));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
query.setFirstResult(pager.getStartRow()).setMaxResults(pager.getPageSize());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List list = query.getResultList();
|
|
|
|
|
|
|
|
List<MesWorkOrderPart> modelList = new ArrayList<>();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (Object result : list) {
|
|
|
|
|
|
|
|
Object[] cells = (Object[]) result;
|
|
|
|
|
|
|
|
MesWorkOrderPart model = new MesWorkOrderPart();
|
|
|
|
|
|
|
|
model.setWorkCenterCode(StringUtils.isEmpty(cells[0]) ? "" : String.valueOf(cells[0]));
|
|
|
|
|
|
|
|
model.setPartNo(StringUtils.isEmpty(cells[1]) ? "" : String.valueOf(cells[1]));
|
|
|
|
|
|
|
|
model.setPartName(StringUtils.isEmpty(cells[2]) ? "" : String.valueOf(cells[2]));
|
|
|
|
|
|
|
|
model.setItemQty(StringUtils.isEmpty(cells[3]) ? 1 : Double.parseDouble(String.valueOf(cells[3])));
|
|
|
|
|
|
|
|
modelList.add(model);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return modelList;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|