白坯下工单,生成零领料单

highway
zhaoxiaolin 1 year ago
parent 4257e67ade
commit 0b84c873a1

@ -203,58 +203,47 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService {
@DS("#header.poolName")
@Transactional(rollbackFor = Exception.class)
public int downProOrderWorkorderByWorkorderIds(String[] workorderIds) {
List<String> ids = new ArrayList<>();
List<ProOrderWorkorder> workorders = proOrderWorkorderMapper.getWorkOrderByIds(workorderIds);
for (ProOrderWorkorder workorder : workorders) {
//关联工艺
if (StringUtils.isNotBlank(workorder.getRouteCode())) {
List<ProWorkorderProcessDetail> workDetails = proWorkorderProcessDetailMapper.getWorkOrderDetailsByRouteCode(workorder);
if (!CollectionUtils.isEmpty(workDetails)) {
workDetails.forEach(str -> {
str.setRecordId(IdUtils.fastSimpleUUID());
str.setWorkorderId(workorder.getWorkorderId());
str.setStatus("s0");//未执行
str.setCreateBy(SecurityContextHolder.getUserName());
str.setCreateTime(DateUtils.getNowDate());
str.setFactoryCode(workorder.getFactoryCode());
});
proWorkorderProcessDetailMapper.addWorkOrderDetails(workDetails);
}
}
}
List<SapCreateOrder> sapList = null;//回传给sap的工单
//如果是白坯生成备料单
for (String workorderId : workorderIds) {
ProOrderWorkorder whiteOrder = proOrderWorkorderMapper.selectProOrderWorkorderByWorkorderId(workorderId);
if (whiteOrder != null && "white".equals(whiteOrder.getProdType())) {//是白坯订单,自主生成领料单;
//备(领)料主单
MesPrepareDTO mesPrepare = new MesPrepareDTO();
BeanUtils.copyBeanProp(mesPrepare, whiteOrder);
mesPrepare.setPrepareId(whiteOrder.getWorkorderCode() + "L");//领料单号
mesPrepare.setWorkorderCode(whiteOrder.getWorkorderCode());
mesPrepare.setCreateBy(SecurityUtils.getUsername());
mesPrepare.setCreateTime(DateUtils.getNowDate());
mesPrepare.setStatus("L0");//待确认
proOrderWorkorderMapper.createPrepare(mesPrepare);
//备(领)料明细
ProWetMaterialPlanDetail planDetail = proWetMaterialPlanDetailMapper.getWetInfo(workorderId);
List<MesPrepareDetailDTO> details = new ArrayList<>();
MesPrepareDetailDTO detail = new MesPrepareDetailDTO();
detail.setCreateTime(DateUtils.getNowDate());
detail.setCreateBy(SecurityUtils.getUsername());
detail.setRecordId(IdUtils.fastSimpleUUID());
detail.setPrepareId(whiteOrder.getWorkorderCode() + "L");
if (planDetail != null) {
if(planDetail != null){
//备(领)料主单
MesPrepareDTO mesPrepare = new MesPrepareDTO();
BeanUtils.copyBeanProp(mesPrepare, whiteOrder);
mesPrepare.setPrepareId(whiteOrder.getWorkorderCode() + "L");//领料单号
mesPrepare.setWorkorderCode(whiteOrder.getWorkorderCode());
mesPrepare.setCreateBy(SecurityUtils.getUsername());
mesPrepare.setCreateTime(DateUtils.getNowDate());
mesPrepare.setStatus("L0");//待确认
proOrderWorkorderMapper.createPrepare(mesPrepare);
//备(领)料明细
List<MesPrepareDetailDTO> details = new ArrayList<>();
MesPrepareDetailDTO detail = new MesPrepareDetailDTO();
detail.setCreateTime(DateUtils.getNowDate());
detail.setCreateBy(SecurityUtils.getUsername());
detail.setRecordId(IdUtils.fastSimpleUUID());
detail.setPrepareId(whiteOrder.getWorkorderCode() + "L");
detail.setMaterailName(planDetail.getMaterialName());
detail.setMaterialCode(planDetail.getMaterialCode());
detail.setProductDate(planDetail.getProductDate());
detail.setShiftId(planDetail.getShiftId() + "");
detail.setProdType("white");
detail.setFactoryCode(planDetail.getFactoryCode());
}
details.add(detail);
proOrderWorkorderMapper.createPrepareDetails(details);
details.add(detail);
proOrderWorkorderMapper.createPrepareDetails(details);
ids.add(workorderId);
}else{
//无湿料计划,下发不了
}
} else if (whiteOrder != null) {//成品的母工单回传sap
sapList = new ArrayList<>();
SapCreateOrder sap = new SapCreateOrder();
@ -292,11 +281,34 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService {
}
}
ids.add(workorderId);
}
}
if(!CollectionUtils.isEmpty(ids)){
String[] idsArray = (String[])ids.toArray(new String[ids.size()]);
List<ProOrderWorkorder> workorders = proOrderWorkorderMapper.getWorkOrderByIds(idsArray);
for (ProOrderWorkorder workorder : workorders) {
//关联工艺
if (StringUtils.isNotBlank(workorder.getRouteCode())) {
List<ProWorkorderProcessDetail> workDetails = proWorkorderProcessDetailMapper.getWorkOrderDetailsByRouteCode(workorder);
if (!CollectionUtils.isEmpty(workDetails)) {
workDetails.forEach(str -> {
str.setRecordId(IdUtils.fastSimpleUUID());
str.setWorkorderId(workorder.getWorkorderId());
str.setStatus("s0");//未执行
str.setCreateBy(SecurityContextHolder.getUserName());
str.setCreateTime(DateUtils.getNowDate());
str.setFactoryCode(workorder.getFactoryCode());
});
proWorkorderProcessDetailMapper.addWorkOrderDetails(workDetails);
}
}
}
//下达工单
return proOrderWorkorderMapper.downProOrderWorkorderByWorkorderIds(workorderIds);
//下达工单
return proOrderWorkorderMapper.downProOrderWorkorderByWorkorderIds(idsArray);
}
return 0;
}
// //获取最低级材料

@ -215,6 +215,7 @@ public class ProWetMaterialPlanServiceImpl implements IProWetMaterialPlanService
// 循环创建湿料计划详情
for (ProOrderWorkorder proOrderWorkorder : proOrderWorkorderList) {
// 将湿料计划详情更新至数据库
proWetMaterialPlanDetailMapper.insertProWetMaterialPlanDetail(createProWetMaterialPlanDetail(proOrderWorkorder, planId));
}

@ -50,12 +50,12 @@
<select id="selectProOrderWorkorderList" parameterType="ProOrderWorkorder" resultMap="ProOrderWorkorderResult">
<include refid="selectProOrderWorkorderVo"/>
<where>
<if test="workorderCode != null and workorderCode != ''"> and workorder_code = #{workorderCode}</if>
<if test="workorderCode != null and workorderCode != ''"> and workorder_code like concat('%', #{workorderCode}, '%')</if>
<if test="workorderName != null and workorderName != ''"> and workorder_name like concat('%', #{workorderName}, '%')</if>
<if test="orderId != null and orderId != ''"> and order_id = #{orderId}</if>
<if test="orderCode != null and orderCode != ''"> and order_code = #{orderCode}</if>
<if test="orderCode != null and orderCode != ''"> and order_code like concat('%', #{orderCode}, '%')</if>
<if test="productId != null and productId != ''"> and product_id = #{productId}</if>
<if test="productCode != null and productCode != ''"> and product_code = #{productCode}</if>
<if test="productCode != null and productCode != ''"> and product_code like concat('%', #{productCode}, '%')</if>
<if test="productName != null and productName != ''"> and product_name like concat('%', #{productName}, '%')</if>
<if test="productSpc != null and productSpc != ''"> and product_spc = #{productSpc}</if>
<if test="unit != null and unit != ''"> and unit = #{unit}</if>

@ -108,8 +108,13 @@
ORDER BY plan_time DESC
</select>
<select id="getWetInfo" resultMap="ProWetMaterialPlanDetailResult">
<include refid="selectProWetMaterialPlanDetailVo"/>
where workorder_id = #{id}
select wd.id, wd.factory_code, wd.wet_material_plan_id, wd.workorder_id, wd.atrr1, wd.atrr2, wd.atrr3, wd.status,
wd.create_by, wd.create_time, wd.update_by, wd.update_time, wd.bucket_id, wd.bucket_code,
wd.material_code, wd.material_id, wd.material_name, wd.product_name, wd.shift_id,
wd.shift_code, wd.shift_desc, wd.plan_time
from pro_wet_material_plan_detail wd
left join pro_order_workorder ow on ow.workorder_id = wd.workorder_id
where ow.workorder_code = #{id}
</select>
<select id="selectProWetMaterialPlanById" resultType="com.op.plan.domain.ProWetMaterialPlan">

Loading…
Cancel
Save