Merge remote-tracking branch 'origin/dev-wuhan' into dev-wuhan

tags/yfai-mes-ext-v2.3
jun 7 months ago
commit 7519b80b7d

@ -3,6 +3,7 @@ package cn.estsh.i3plus.ext.mes.api.base;
import cn.estsh.i3plus.ext.mes.pojo.model.MesShippingOrderManagementDetailModel;
import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrderPart;
import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagementDetail;
import io.swagger.annotations.ApiOperation;
@ -23,4 +24,7 @@ public interface IMesShippingOrderManagementDetailService extends IBaseMesServic
@ApiOperation("发运退回")
void doShippingBack(Long[] idList,String organizeCode,String userName);
@ApiOperation("查询发运零件子零件明细")
ListPager<MesWorkOrderPart> queryDetailMesWorkOrderPart(MesWorkOrderPart bean, Pager pager);
}

@ -6,6 +6,7 @@ import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant;
import cn.estsh.i3plus.ext.mes.pojo.model.MesShippingOrderManagementDetailModel;
import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrderPart;
import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagementDetail;
import cn.estsh.impp.framework.boot.auth.AuthUtil;
import cn.estsh.impp.framework.boot.exception.ImppBusiException;
@ -68,5 +69,36 @@ public class MesShippingOrderManagementDetailController extends BaseMesControlle
}
}
@PostMapping(value = "/ship-part/query-item-part")
@ApiOperation(value = "发运零件子零件明细")
public ResultBean queryDetailMesWorkOrderPart(@RequestBody MesWorkOrderPart detail, Pager pager) {
try {
detail.setOrganizeCode(AuthUtil.getOrganize().getOrganizeCode());
return ResultBean.success("查询成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode())
.setListPager(shippingOrderManagementDetailService.queryDetailMesWorkOrderPart(detail,pager));
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
@PostMapping(value = "/ship-order/query-item-part")
@ApiOperation(value = "发运单子零件明细")
public ResultBean queryMesShippingOrderManagementDetail(@RequestBody MesWorkOrderPart detail, Pager pager) {
try {
detail.setOrganizeCode(AuthUtil.getOrganize().getOrganizeCode());
return ResultBean.success("查询成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode())
.setListPager(shippingOrderManagementDetailService.queryDetailMesWorkOrderPart(detail,pager));
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
}

@ -3,6 +3,7 @@ package cn.estsh.i3plus.ext.mes.apiservice.dao;
import cn.estsh.i3plus.ext.mes.pojo.model.MesShippingOrderManagementDetailModel;
import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrderPart;
import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagementDetail;
import io.swagger.annotations.ApiOperation;
@ -18,10 +19,13 @@ import java.util.List;
public interface IMesShippingOrderManagementDetailDao {
int queryOrderDetailGroupByPartCount(MesShippingOrderManagementDetail detail);
int queryDetailGroupByPartNo(MesWorkOrderPart detail);
List<MesShippingOrderManagementDetailModel> queryOrderDetailGroupByPartInfo(MesShippingOrderManagementDetail detail, Pager pager);
List<MesWorkOrderPart> queryOrderDetailGroupByPartInfo(MesWorkOrderPart detail, Pager pager);
@ApiOperation("查询发运单明细")
ListPager<MesShippingOrderManagementDetailModel> queryMesShippingDetailsByPager(MesShippingOrderManagementDetailModel mesShippingOrderManagementDetailModel, Pager pager);
List<MesShippingOrderManagementDetail> queryMesShippingOrderManagementDetail(MesWorkOrderPart bean);
}

@ -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.PagerHelper;
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.MesShippingOrderManagementDetail;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
@ -20,6 +22,7 @@ import javax.persistence.Query;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* @Description :SAP
@ -187,4 +190,130 @@ public class MesShippingOrderManagementDetailDaoImpl implements IMesShippingOrde
commonHql.append(" and m.publishTime <= :publishTimeEnd ");
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;
}
}

@ -12,9 +12,12 @@ 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.MesPartShippingGroupDetail;
import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn;
import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrderPart;
import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagementDetail;
import cn.estsh.i3plus.pojo.mes.repository.MesProduceSnRepository;
import cn.estsh.i3plus.pojo.mes.repository.MesShippingOrderManagementDetailRepository;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@ -36,6 +39,9 @@ public class MesShippingOrderManagementDetailService extends BaseMesService<MesS
private IMesShippingOrderManagementDetailDao shippingOrderManagementDetailDao;
@Autowired
private MesShippingOrderManagementDetailRepository shippingOrderDetailRepository;
@Autowired
private IMesProduceSnService mesProduceSnService;
@Autowired
@ -106,4 +112,34 @@ public class MesShippingOrderManagementDetailService extends BaseMesService<MesS
MesException.throwMesBusiException("选择数据不存在,请检查数据");
return detailList;
}
public ListPager<MesWorkOrderPart> queryDetailMesWorkOrderPart(MesWorkOrderPart bean, Pager pager) {
List<MesWorkOrderPart> modelList=new ArrayList<>();
List<MesShippingOrderManagementDetail> shippingDetails = shippingOrderManagementDetailDao.queryMesShippingOrderManagementDetail(bean);
if (CollectionUtils.isEmpty(shippingDetails)){
return new ListPager<>(modelList, pager);
}
bean.setShippingDetails(shippingDetails);
int count = shippingOrderManagementDetailDao.queryDetailGroupByPartNo(bean);
pager = PagerHelper.getPager(pager, count);
modelList = shippingOrderManagementDetailDao.queryOrderDetailGroupByPartInfo(bean, pager);
//查询发运明细
if (!CollectionUtils.isEmpty(modelList)){
Map<String, List<MesShippingOrderManagementDetail>> collect = shippingDetails.stream().collect(Collectors.groupingBy(MesShippingOrderManagementDetail::getBarcode));
for (MesWorkOrderPart mesWorkOrderPart : modelList) {
if (!CollectionUtils.isEmpty(collect.get(mesWorkOrderPart.getWorkOrderNo()))){
MesShippingOrderManagementDetail managementDetail = collect.get(mesWorkOrderPart.getWorkOrderNo()).get(0);
mesWorkOrderPart.setItemQty(mesWorkOrderPart.getItemQty()*managementDetail.getPlanQty());
mesWorkOrderPart.setShippingCode(managementDetail.getShippingCode());
mesWorkOrderPart.setTotalPartNo(managementDetail.getPartNo());
mesWorkOrderPart.setShippingTime(managementDetail.getModifyDatetime());
}
}
}
return new ListPager<>(modelList, pager);
}
}

Loading…
Cancel
Save