手动报工修改、工单查询增加工单状态多选条件、工程巡检根据条件获取物料

tags/yfai-pcn-ext-v1.0
yxw 1 year ago
parent f70c179102
commit 95162def50

@ -7,6 +7,7 @@ import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* @Author: wangjie * @Author: wangjie
@ -68,7 +69,7 @@ public interface IProcedureOnSiteService {
* @return * @return
*/ */
@ApiOperation(value = "修改巡检单明细数据", notes = "修改巡检单明细数据") @ApiOperation(value = "修改巡检单明细数据", notes = "修改巡检单明细数据")
Boolean updateMesOnSiteOrderDetail(MesOnSiteOrderDetail mesOnSiteOrderDetail, String userName); Map<String, Object> updateMesOnSiteOrderDetail(MesOnSiteOrderDetail mesOnSiteOrderDetail, String userName);
List<MesProjectSort> findProjectSort(MesProjectSort procedureProject); List<MesProjectSort> findProjectSort(MesProjectSort procedureProject);
} }

@ -166,7 +166,7 @@ public interface IProduceSnExtService {
* @Date 2021/5/21 13:54 * @Date 2021/5/21 13:54
**/ **/
@ApiOperation(value = "手动生成包装条码", notes = "手动生成包装条码") @ApiOperation(value = "手动生成包装条码", notes = "手动生成包装条码")
void doWorkOrderHandCreatePackage(Long id, String organizeCode, String userInfo); List<MesPackageExt> doWorkOrderHandCreatePackage(Long id, String organizeCode, String userInfo, Integer operateType, Integer qty);
/** /**
* @Description: ***N&&& * @Description: ***N&&&

@ -1,5 +1,6 @@
package cn.estsh.i3plus.ext.mes.pcn.api.job; package cn.estsh.i3plus.ext.mes.pcn.api.job;
import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesPackageExt;
import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesPartExt; import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesPartExt;
import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesProdPackExt; import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesProdPackExt;
import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesWorkOrderExt; import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesWorkOrderExt;
@ -62,5 +63,14 @@ public interface ISxWorkOrderAutoCreateSnService {
* @Date 2021/5/24 9:52 * @Date 2021/5/24 9:52
**/ **/
@ApiOperation(value = "插入包装", notes = "插入包装") @ApiOperation(value = "插入包装", notes = "插入包装")
void insertPackage(List<String> packageNoList, MesWorkOrderExt workOrder, MesPartExt partDb, Integer codeType, MesProdPackExt prodPackDb,Double num, String userInfo); List<MesPackageExt> insertPackage(List<String> packageNoList, MesWorkOrderExt workOrder, MesPartExt partDb, Integer codeType, MesProdPackExt prodPackDb, Double num, String userInfo);
/**
* @Description:
* @Param [packageNoList, workOrder, partDb, codeType, prodPackDb, userInfo]
* @return void
* @Date 2021/5/24 9:52
**/
@ApiOperation(value = "插入封箱包装", notes = "插入封箱包装")
List<MesPackageExt> insertSealedPackage(List<String> packageNoList, MesWorkOrderExt workOrder, MesPartExt partDb, Integer codeType, MesProdPackExt prodPackDb, Double num, String userInfo);
} }

@ -17,6 +17,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* @Author: wangjie * @Author: wangjie
@ -140,8 +141,12 @@ public class ProcedureOnSiteController extends MesPcnBaseController {
@ApiOperation(value = "修改巡检单明细数据") @ApiOperation(value = "修改巡检单明细数据")
public ResultBean updateMesOnSiteOrderDetail(MesOnSiteOrderDetail mesOnSiteOrderDetail, String userName) { public ResultBean updateMesOnSiteOrderDetail(MesOnSiteOrderDetail mesOnSiteOrderDetail, String userName) {
try { try {
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode())
.setResultObject(procedureOnSiteService.updateMesOnSiteOrderDetail(mesOnSiteOrderDetail, userName)); Map<String, Object> resultMap = procedureOnSiteService.updateMesOnSiteOrderDetail(mesOnSiteOrderDetail, userName);
return ResultBean.success(!resultMap.containsKey("UPDATE_MEMO_RESULT") ? "操作成功" : (String) resultMap.get("UPDATE_MEMO_RESULT"))
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode())
.setResultObject(resultMap.get("RESULT"));
} catch (ImppBusiException busExcep) { } catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep); return ResultBean.fail(busExcep);
} catch (Exception e) { } catch (Exception e) {

@ -108,7 +108,7 @@ public class ProduceSnExtController extends MesPcnBaseController {
ValidatorBean.checkNotNull(id); ValidatorBean.checkNotNull(id);
ValidatorBean.checkNotNull(organizeCode); ValidatorBean.checkNotNull(organizeCode);
ValidatorBean.checkNotNull(userInfo); ValidatorBean.checkNotNull(userInfo);
produceSnExtService.doWorkOrderHandCreatePackage(id, organizeCode, userInfo); produceSnExtService.doWorkOrderHandCreatePackage(id, organizeCode, userInfo, 1, 0);
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException busExcep) { } catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep); return ResultBean.fail(busExcep);

@ -2,10 +2,12 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.base;
import cn.estsh.i3plus.ext.mes.pcn.api.base.IPartExtService; import cn.estsh.i3plus.ext.mes.pcn.api.base.IPartExtService;
import cn.estsh.i3plus.ext.mes.pcn.api.base.IProcedureOnSiteService; import cn.estsh.i3plus.ext.mes.pcn.api.base.IProcedureOnSiteService;
import cn.estsh.i3plus.ext.mes.pcn.api.base.ISxPcnHttpService;
import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesOnSiteOrder; import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesOnSiteOrder;
import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesOnSiteOrderDetail; import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesOnSiteOrderDetail;
import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesProcedureProject; import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesProcedureProject;
import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesProjectSort; import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesProjectSort;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.WmsSnInfoModel;
import cn.estsh.i3plus.ext.mes.pcn.pojo.repository.MesOnSiteOrderDetailRepository; import cn.estsh.i3plus.ext.mes.pcn.pojo.repository.MesOnSiteOrderDetailRepository;
import cn.estsh.i3plus.ext.mes.pcn.pojo.repository.MesOnSiteOrderRepository; import cn.estsh.i3plus.ext.mes.pcn.pojo.repository.MesOnSiteOrderRepository;
import cn.estsh.i3plus.ext.mes.pcn.pojo.repository.MesProcedureProjectRepository; import cn.estsh.i3plus.ext.mes.pcn.pojo.repository.MesProcedureProjectRepository;
@ -13,8 +15,10 @@ import cn.estsh.i3plus.ext.mes.pcn.pojo.repository.MesProjectSortRepository;
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtEnumUtil; import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtEnumUtil;
import cn.estsh.i3plus.mes.pcn.api.iservice.busi.ISyncFuncService; import cn.estsh.i3plus.mes.pcn.api.iservice.busi.ISyncFuncService;
import cn.estsh.i3plus.mes.pcn.util.PcnHttpUtil;
import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum;
import cn.estsh.i3plus.platform.common.tool.JsonUtilTool;
import cn.estsh.i3plus.pojo.base.bean.BaseResultBean; import cn.estsh.i3plus.pojo.base.bean.BaseResultBean;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
@ -26,14 +30,16 @@ import cn.estsh.i3plus.pojo.mes.repository.MesWorkOrderRepository;
import cn.estsh.i3plus.pojo.mes.sqlpack.MesPcnHqlPack; import cn.estsh.i3plus.pojo.mes.sqlpack.MesPcnHqlPack;
import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.auth.AuthUtil;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import java.util.ArrayList; import java.io.UnsupportedEncodingException;
import java.util.List; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -42,6 +48,7 @@ import java.util.stream.Collectors;
* @Description: * @Description:
**/ **/
@Service @Service
@Slf4j
public class ProcedureOnSiteService implements IProcedureOnSiteService { public class ProcedureOnSiteService implements IProcedureOnSiteService {
@Autowired @Autowired
@ -68,6 +75,9 @@ public class ProcedureOnSiteService implements IProcedureOnSiteService {
@Autowired @Autowired
private MesProjectSortRepository mesProjectSortRDao; private MesProjectSortRepository mesProjectSortRDao;
@Autowired
private ISxPcnHttpService pcnHttpService;
@Override @Override
public List<MesWorkOrder> findMesWorkOrderByWoStatus(String workCenterCode, String organizeCode) { public List<MesWorkOrder> findMesWorkOrderByWoStatus(String workCenterCode, String organizeCode) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
@ -185,7 +195,8 @@ public class ProcedureOnSiteService implements IProcedureOnSiteService {
} }
@Override @Override
public Boolean updateMesOnSiteOrderDetail(MesOnSiteOrderDetail mesOnSiteOrderDetail, String userName) { public Map<String, Object> updateMesOnSiteOrderDetail(MesOnSiteOrderDetail mesOnSiteOrderDetail, String userName) {
Map<String, Object> updateResultMap = new HashMap<>();
//修改巡检单明细数据 //修改巡检单明细数据
MesOnSiteOrderDetail onSiteOrderDetail = mesOnSiteOrderDetailRDao.getById(mesOnSiteOrderDetail.getId()); MesOnSiteOrderDetail onSiteOrderDetail = mesOnSiteOrderDetailRDao.getById(mesOnSiteOrderDetail.getId());
if (null == onSiteOrderDetail) { if (null == onSiteOrderDetail) {
@ -195,6 +206,13 @@ public class ProcedureOnSiteService implements IProcedureOnSiteService {
.setErrorDetail("数据不存在") .setErrorDetail("数据不存在")
.build(); .build();
} }
String updateMemoResult = updateOnSiteOrderDetailMemo(mesOnSiteOrderDetail, onSiteOrderDetail);
if (!StringUtils.isEmpty(updateMemoResult)) {
updateResultMap.put("UPDATE_MEMO_RESULT", updateMemoResult);
}
BeanUtils.copyProperties(mesOnSiteOrderDetail, onSiteOrderDetail); BeanUtils.copyProperties(mesOnSiteOrderDetail, onSiteOrderDetail);
onSiteOrderDetail.setSystemSyncStatus(MesPcnExtEnumUtil.IF_SYNC_STATUS.NO_SYNC.getValue()); onSiteOrderDetail.setSystemSyncStatus(MesPcnExtEnumUtil.IF_SYNC_STATUS.NO_SYNC.getValue());
ConvertBean.serviceModelUpdate(onSiteOrderDetail, userName); ConvertBean.serviceModelUpdate(onSiteOrderDetail, userName);
@ -214,21 +232,55 @@ public class ProcedureOnSiteService implements IProcedureOnSiteService {
new Object[]{mesOnSiteOrderDetail.getOrganizeCode(), CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), new Object[]{mesOnSiteOrderDetail.getOrganizeCode(), CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(),
MesPcnExtEnumUtil.IS_VAILD.VAILD.getValue(), mesOnSiteOrderDetail.getOrderNo()}); MesPcnExtEnumUtil.IS_VAILD.VAILD.getValue(), mesOnSiteOrderDetail.getOrderNo()});
if (oDetailsTotal.size() == oDetails.size()) { if (oDetailsTotal.size() == oDetails.size()) {
// mesOnSiteOrder.setOrderStatus(MesPcnExtEnumUtil.MES_ORJ_ORDER_STATUS.CHECK_COMPLETE.getValue()); updateResultMap.put("RESULT", true);
// ConvertBean.serviceModelUpdate(mesOnSiteOrder, userName); return updateResultMap;
//
// mesOnSiteOrderRDao.save(mesOnSiteOrder);
return true;
} else { } else {
mesOnSiteOrder.setOrderStatus(MesPcnExtEnumUtil.MES_ORJ_ORDER_STATUS.CHECKING.getValue()); mesOnSiteOrder.setOrderStatus(MesPcnExtEnumUtil.MES_ORJ_ORDER_STATUS.CHECKING.getValue());
ConvertBean.serviceModelUpdate(mesOnSiteOrder, userName); ConvertBean.serviceModelUpdate(mesOnSiteOrder, userName);
mesOnSiteOrderRDao.save(mesOnSiteOrder); mesOnSiteOrderRDao.save(mesOnSiteOrder);
} }
} }
return false; updateResultMap.put("RESULT", false);
return updateResultMap;
}
private String updateOnSiteOrderDetailMemo(MesOnSiteOrderDetail mesOnSiteOrderDetail, MesOnSiteOrderDetail onSiteOrderDetail) {
if (!StringUtils.isEmpty(mesOnSiteOrderDetail.getMemo())) {
String requestUrl = pcnHttpService.getRequestUrl(mesOnSiteOrderDetail.getOrganizeCode(), MesPcnExtConstWords.FIND_PART_NO);
Map<String, String> params = new HashMap<>();
params.put(MesPcnExtConstWords.SN, mesOnSiteOrderDetail.getMemo());
params.put(MesPcnExtConstWords.ORGANIZE_CODE, mesOnSiteOrderDetail.getOrganizeCode());
WmsSnInfoModel wmsSnInfoModel = null;
try {
String data = PcnHttpUtil.doGet(requestUrl, params);
BaseResultBean baseResultBean = null;
if (!StringUtils.isEmpty(data)) baseResultBean = JsonUtilTool.decode(data, BaseResultBean.class);
else log.error("updateMesOnSiteOrderDetail --- HTTP[{}]调用主接口失败 --- THREAD:[{}]", requestUrl, Thread.currentThread().getName());
log.error("updateMesOnSiteOrderDetail --- 工程巡检校验物料[{}]时获取WMS数据[{}] --- THREAD:[{}]", mesOnSiteOrderDetail.getMemo(), data, Thread.currentThread().getName());
if (null != baseResultBean && baseResultBean.success) {
LinkedHashMap resultObject = (LinkedHashMap) baseResultBean.getResultObject();
wmsSnInfoModel= JsonUtilTool.decode(JSONObject.toJSONString(resultObject), WmsSnInfoModel.class);
}
if (wmsSnInfoModel == null) {
log.error("updateMesOnSiteOrderDetail --- 工程巡检校验物料[{}]时获取WMS数据失败 HTTP[{}]调用主接口 无法获取此条码信息 --- THREAD:[{}]", mesOnSiteOrderDetail.getMemo(),requestUrl, Thread.currentThread().getName());
}
} catch (UnsupportedEncodingException e) {
log.error("updateMesOnSiteOrderDetail --- 工程巡检校验物料[{}]时获取WMS数据失败 HTTP[{}]调用主接口失败 --- THREAD:[{}]", mesOnSiteOrderDetail.getMemo(), requestUrl, Thread.currentThread().getName());
}
if (wmsSnInfoModel == null) {
onSiteOrderDetail.setMemo(mesOnSiteOrderDetail.getMemo());
return String.format("条码[%s]不存在", mesOnSiteOrderDetail.getMemo());
} else {
onSiteOrderDetail.setMemo(wmsSnInfoModel.getPartNo());
return "";
}
}
return "";
} }
@Override @Override

@ -1,6 +1,7 @@
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.base; package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.base;
import cn.estsh.i3plus.ext.mes.pcn.api.base.*; import cn.estsh.i3plus.ext.mes.pcn.api.base.*;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IProduceSnExtService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IWorkOrderLogExtService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IWorkOrderLogExtService;
import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.*; import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.*;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.*; import cn.estsh.i3plus.ext.mes.pcn.pojo.model.*;
@ -137,6 +138,9 @@ public class SxWorkOrderExtService implements ISxWorkOrderExtService {
@Autowired @Autowired
private MesBomPendingPartRepository bomPendingPartRepository; private MesBomPendingPartRepository bomPendingPartRepository;
@Autowired
private IProduceSnExtService produceSnExtService;
@Resource(name = MesPcnExtConstWords.REDIS_RES_PCN) @Resource(name = MesPcnExtConstWords.REDIS_RES_PCN)
private ImppRedis redisMesPcn; private ImppRedis redisMesPcn;
@ -443,6 +447,7 @@ public class SxWorkOrderExtService implements ISxWorkOrderExtService {
DdlPreparedPack.getStringLikerPack(workOrderQueryDto.getPartNo(), "partNo", ddlPackBean); DdlPreparedPack.getStringLikerPack(workOrderQueryDto.getPartNo(), "partNo", ddlPackBean);
DdlPreparedPack.getStringEqualPack(workOrderQueryDto.getWorkCenterCode(), "workCenterCode", ddlPackBean); DdlPreparedPack.getStringEqualPack(workOrderQueryDto.getWorkCenterCode(), "workCenterCode", ddlPackBean);
DdlPreparedPack.getNumEqualPack(workOrderQueryDto.getWorkOrderStatus(), "workOrderStatus", ddlPackBean); DdlPreparedPack.getNumEqualPack(workOrderQueryDto.getWorkOrderStatus(), "workOrderStatus", ddlPackBean);
DdlPreparedPack.getInPackArray(workOrderQueryDto.getWorkOrderStatusArray(), "workOrderStatus", ddlPackBean);
DdlPreparedPack.getNumEqualPack(workOrderQueryDto.getWorkOrderType(), "workOrderType", ddlPackBean); DdlPreparedPack.getNumEqualPack(workOrderQueryDto.getWorkOrderType(), "workOrderType", ddlPackBean);
DdlPreparedPack.getStringLikerPack(workOrderQueryDto.getCreateUser(), "createUser", ddlPackBean); DdlPreparedPack.getStringLikerPack(workOrderQueryDto.getCreateUser(), "createUser", ddlPackBean);
@ -1536,11 +1541,13 @@ public class SxWorkOrderExtService implements ISxWorkOrderExtService {
double sumQty = getSumQty(qty, workOrder); double sumQty = getSumQty(qty, workOrder);
List<MesPackageExt> packageExtList = produceSnExtService.doWorkOrderHandCreatePackage(workOrder.getId(), organizeCode, userName, 2, qty.intValue());
saveWorkOrderExt(userName, workOrder, sumQty); saveWorkOrderExt(userName, workOrder, sumQty);
insertManualReportTravel(organizeCode, userName, workOrder, qty, workCenterExt, shiftName); insertManualReportTravel(organizeCode, userName, workOrder, qty, workCenterExt, shiftName);
insertSxProductOffLine(workOrderNo, qty, organizeCode, userName, workOrder, partExt); insertSxProductOffLine(workOrderNo, qty, organizeCode, userName, workOrder, partExt, packageExtList);
} }
@ -1554,6 +1561,15 @@ public class SxWorkOrderExtService implements ISxWorkOrderExtService {
.setErrorDetail("报工数量[%s]与当前完工数量[%s]之和[%s]大于工单计划数量[%s]", workOrder.getCompleteQty(), qty, sumQty, workOrder.getQty()) .setErrorDetail("报工数量[%s]与当前完工数量[%s]之和[%s]大于工单计划数量[%s]", workOrder.getCompleteQty(), qty, sumQty, workOrder.getQty())
.build(); .build();
} }
//if (qty % partExt.getQty2() != 0) {
// throw ImppExceptionBuilder.newInstance()
// .setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode())
// .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
// .setErrorDetail("报工数量[%s]与物料包装数量", workOrder.getCompleteQty(), qty, sumQty, workOrder.getQty())
// .build();
//}
return sumQty; return sumQty;
} }
@ -1617,13 +1633,13 @@ public class SxWorkOrderExtService implements ISxWorkOrderExtService {
.build(); .build();
} }
if (StringUtils.isEmpty(workCenterExt.getWorkTime())) { //if (StringUtils.isEmpty(workCenterExt.getWorkTime())) {
throw ImppExceptionBuilder.newInstance() // throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode()) // .setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) // .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("产线[%s]未启动班次", workOrder.getWorkCenterCode()) // .setErrorDetail("产线[%s]未启动班次", workOrder.getWorkCenterCode())
.build(); // .build();
} //}
return workCenterExt; return workCenterExt;
} }
@ -1682,15 +1698,19 @@ public class SxWorkOrderExtService implements ISxWorkOrderExtService {
mesManualReportTravelRepository.save(manualReportTravel); mesManualReportTravelRepository.save(manualReportTravel);
} }
private void insertSxProductOffLine(String workOrderNo, Double qty, String organizeCode, String userName, MesWorkOrderExt workOrder, MesPartExt partExt) { private void insertSxProductOffLine(String workOrderNo, Double qty, String organizeCode, String userName, MesWorkOrderExt workOrder, MesPartExt partExt, List<MesPackageExt> packageExtList) {
List<SxProductOffLine> productOffLineList = new ArrayList<>();
for (MesPackageExt mesPackageExt : packageExtList) {
SxProductOffLine productOffLine = new SxProductOffLine(); SxProductOffLine productOffLine = new SxProductOffLine();
productOffLine.setWorkOrderNo(workOrderNo); productOffLine.setWorkOrderNo(workOrderNo);
productOffLine.setPartNo(workOrder.getPartNo()); productOffLine.setPartNo(workOrder.getPartNo());
productOffLine.setPartName(workOrder.getPartNameRdd()); productOffLine.setPartName(workOrder.getPartNameRdd());
productOffLine.setQty(qty); productOffLine.setQty(mesPackageExt.getQty());
productOffLine.setWorkCenterCode(workOrder.getWorkCenterCode()); productOffLine.setWorkCenterCode(workOrder.getWorkCenterCode());
productOffLine.setErpWarehouse(workOrder.getErpWarehouse()); productOffLine.setErpWarehouse(workOrder.getErpWarehouse());
productOffLine.setPackageNo(mesPackageExt.getPackageNo());
//取物料信息中的类型 //取物料信息中的类型
if (null != partExt) { if (null != partExt) {
@ -1711,11 +1731,16 @@ public class SxWorkOrderExtService implements ISxWorkOrderExtService {
MesWorkCenterExt workCenterExt = getWorkCenterExtByWorkCenterCode(workOrder.getWorkCenterCode(), organizeCode); MesWorkCenterExt workCenterExt = getWorkCenterExtByWorkCenterCode(workOrder.getWorkCenterCode(), organizeCode);
productOffLine.setShiftCode(workCenterExt.getShiftCode()); productOffLine.setShiftCode(workCenterExt.getShiftCode());
productOffLine.setLotNo(workCenterExt.getWorkTime()); productOffLine.setLotNo(workCenterExt.getWorkTime());
productOffLine.setPartNo(partExt.getPartNo());
productOffLine.setIsWaterPurifier(MesPcnExtEnumUtil.IS_WATER_PURIFIER.NO.getValue()); productOffLine.setIsWaterPurifier(MesPcnExtEnumUtil.IS_WATER_PURIFIER.NO.getValue());
productOffLine.setOrganizeCode(organizeCode); productOffLine.setOrganizeCode(organizeCode);
ConvertBean.serviceModelUpdate(productOffLine, userName); ConvertBean.serviceModelUpdate(productOffLine, userName);
productOffLineRepository.insert(productOffLine); productOffLineList.add(productOffLine);
}
productOffLineRepository.saveAll(productOffLineList);
} }
private MesWorkCenterExt getWorkCenterExtByWorkCenterCode(String workCenterCode, String organizeCode) { private MesWorkCenterExt getWorkCenterExtByWorkCenterCode(String workCenterCode, String organizeCode) {

@ -658,7 +658,7 @@ public class ProduceSnExtService implements IProduceSnExtService {
} }
@Override @Override
public void doWorkOrderHandCreatePackage(Long id, String organizeCode, String userInfo) { public List<MesPackageExt> doWorkOrderHandCreatePackage(Long id, String organizeCode, String userInfo, Integer operateType, Integer packageQty) {
MesWorkOrderExt workOrder = getWorkOrderByIdPackage(id, organizeCode); MesWorkOrderExt workOrder = getWorkOrderByIdPackage(id, organizeCode);
MesPartExt partDb = partExtService.getPartExt(workOrder.getOrganizeCode(), workOrder.getPartNo()); MesPartExt partDb = partExtService.getPartExt(workOrder.getOrganizeCode(), workOrder.getPartNo());
if (null == partDb) { if (null == partDb) {
@ -730,7 +730,7 @@ public class ProduceSnExtService implements IProduceSnExtService {
while (true) { while (true) {
count++; count++;
//工单数量 //工单数量
Double qty = workOrder.getQty(); Double qty = operateType == 1 ? workOrder.getQty() : packageQty;
//包装数量 //包装数量
Double qty2 = partDb.getQty2(); Double qty2 = partDb.getQty2();
@ -785,7 +785,9 @@ public class ProduceSnExtService implements IProduceSnExtService {
.setErrorDetail("工单[%s]批量生成包装条码时没有返回包装条码集合,操作失败", workOrder.getOrderNo()) .setErrorDetail("工单[%s]批量生成包装条码时没有返回包装条码集合,操作失败", workOrder.getOrderNo())
.build(); .build();
} }
workOrderAutoCreateSnService.insertPackage(resultBean.getResultList(), workOrder, partDb, codeType.getCodeType(), prodPackDb, num, userInfo); if (operateType == 1) return workOrderAutoCreateSnService.insertPackage(resultBean.getResultList(), workOrder, partDb, codeType.getCodeType(), prodPackDb, num, userInfo);
else return workOrderAutoCreateSnService.insertSealedPackage(resultBean.getResultList(), workOrder, partDb, codeType.getCodeType(), prodPackDb, num, userInfo);
} else { } else {
throw ImppExceptionBuilder.newInstance() throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode()) .setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode())

@ -242,7 +242,8 @@ public class SxWorkOrderAutoCreateSnService implements ISxWorkOrderAutoCreateSnS
} }
@Override @Override
public void insertPackage(List<String> packageNoList, MesWorkOrderExt workOrder, MesPartExt partDb, Integer codeType, MesProdPackExt prodPackDb,Double num, String userInfo) { public List<MesPackageExt> insertPackage(List<String> packageNoList, MesWorkOrderExt workOrder, MesPartExt partDb, Integer codeType, MesProdPackExt prodPackDb,Double num, String userInfo) {
List<MesPackageExt> packageExtList = new ArrayList<>();
//物料设置的包装数量 //物料设置的包装数量
Double qty2 = partDb.getQty2(); Double qty2 = partDb.getQty2();
for (String o : packageNoList) { for (String o : packageNoList) {
@ -273,8 +274,49 @@ public class SxWorkOrderAutoCreateSnService implements ISxWorkOrderAutoCreateSnS
ConvertBean.serviceModelInitialize(pack, userInfo); ConvertBean.serviceModelInitialize(pack, userInfo);
pack.setSystemSyncStatus(MesPcnExtEnumUtil.IF_SYNC_STATUS.NO_SYNC.getValue()); pack.setSystemSyncStatus(MesPcnExtEnumUtil.IF_SYNC_STATUS.NO_SYNC.getValue());
new ConvertBeanExt(pack).convertBean(pack); new ConvertBeanExt(pack).convertBean(pack);
packageExtRepository.insert(pack); packageExtList.add(packageExtRepository.insert(pack));
} }
return packageExtList;
}
@Override
public List<MesPackageExt> insertSealedPackage(List<String> packageNoList, MesWorkOrderExt workOrder, MesPartExt partDb, Integer codeType, MesProdPackExt prodPackDb, Double num, String userInfo) {
List<MesPackageExt> packageExtList = new ArrayList<>();
//物料设置的包装数量
Double qty2 = partDb.getQty2();
for (String o : packageNoList) {
MesPackageExt pack = new MesPackageExt();
pack.setPackageNo(o);
pack.setWorkOrderNo(workOrder.getOrderNo());
pack.setLastWorkOrderNo(workOrder.getOrderNo());
pack.setPartNo(partDb.getPartNo());
pack.setPartNameRdd(partDb.getPartName());
if (o.equals(packageNoList.get(packageNoList.size()-1))) {
if (num!=0) {
pack.setQty(num);
} else {
pack.setQty(qty2);
}
} else {
pack.setQty(qty2);
}
pack.setPackSpec(prodPackDb.getPackSpec());
pack.setPackSpecQty(qty2);
pack.setIsSealed(MesPcnExtEnumUtil.PACKAGE_IS_SEALED.SEALED.getValue());
pack.setPackageLabelTemplate(prodPackDb.getPackLabelTemplate());
pack.setUnit(partDb.getUnit());
pack.setPrintStatus(MesPcnEnumUtil.PACKAGE_PRINT_STATUS.UNPRINTED.getValue());
pack.setPackLevel(MesPcnEnumUtil.PACKAGE_PACKLEVEL.FIRST.getValue());
pack.setWorkCenterCode(workOrder.getWorkCenterCode());
pack.setOrganizeCode(workOrder.getOrganizeCode());
ConvertBean.serviceModelInitialize(pack, userInfo);
pack.setSystemSyncStatus(MesPcnExtEnumUtil.IF_SYNC_STATUS.NO_SYNC.getValue());
new ConvertBeanExt(pack).convertBean(pack);
packageExtList.add(pack);
}
return packageExtRepository.saveAll(packageExtList);
} }
@Override @Override

@ -4,6 +4,8 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiParam; import io.swagger.annotations.ApiParam;
import lombok.Data; import lombok.Data;
import java.util.List;
/** /**
* @author yumingxing * @author yumingxing
* @version 1.0 * @version 1.0
@ -28,6 +30,9 @@ public class WorkOrderQueryDto {
@ApiParam("工单状态") @ApiParam("工单状态")
private Integer workOrderStatus; private Integer workOrderStatus;
@ApiParam("工单状态数组")
private Integer[] workOrderStatusArray;
@ApiParam("生产线代码") @ApiParam("生产线代码")
private String workCenterCode; private String workCenterCode;

Loading…
Cancel
Save