工单页面调整

tags/yfai-mes-ext-v1.0
jun 12 months ago
parent 4f8d2b7c04
commit 36e4f7d825

@ -1,6 +1,9 @@
package cn.estsh.i3plus.ext.mes.api.base;
import cn.estsh.i3plus.pojo.mes.bean.MesCustomerCarModel;
import cn.estsh.i3plus.pojo.mes.bean.MesCustomerCarModelDetail;
import java.util.List;
/**
* @Description:
@ -10,4 +13,5 @@ import cn.estsh.i3plus.pojo.mes.bean.MesCustomerCarModel;
public interface IMesCustomerCarModelService extends IBaseMesService<MesCustomerCarModel> {
List<MesCustomerCarModel> findMesCustomerCarModel(MesCustomerCarModelDetail mesPartProdGroupDetail);
}

@ -1,8 +1,10 @@
package cn.estsh.i3plus.ext.mes.api.base;
import cn.estsh.i3plus.pojo.mes.bean.MesArea;
import cn.estsh.i3plus.pojo.mes.bean.MesCustomerCarModelDetail;
import cn.estsh.i3plus.pojo.mes.bean.MesCustomerPart;
import java.util.List;
/**
* @Description:
* @CreateDate 2024/04/16
@ -10,5 +12,6 @@ import cn.estsh.i3plus.pojo.mes.bean.MesCustomerPart;
*/
public interface IMesCustomerPartService extends IBaseMesService<MesCustomerPart> {
List<MesCustomerPart> findMesCustomerPart(MesCustomerCarModelDetail mesPartProdGroupDetail);
}

@ -1,6 +1,9 @@
package cn.estsh.i3plus.ext.mes.api.base;
import cn.estsh.i3plus.pojo.mes.bean.MesPartProdGroup;
import cn.estsh.i3plus.pojo.mes.bean.MesPartProdGroupDetail;
import java.util.List;
/**
* @Description:
@ -9,5 +12,5 @@ import cn.estsh.i3plus.pojo.mes.bean.MesPartProdGroup;
*/
public interface IMesPartProdGroupService extends IBaseMesService<MesPartProdGroup> {
List<MesPartProdGroup> findMesPartProdGroup(MesPartProdGroupDetail mesPartProdGroupDetail);
}

@ -236,7 +236,7 @@ public abstract class BaseMesController<T extends BaseBean> extends BaseControll
@PostMapping(value = "/update-list")
@ApiOperation(value = "批量修改信息", notes = "批量修改信息")
public ResultBean<T> updateList(List<T> beans) {
public ResultBean<T> updateList(@RequestBody List<T> beans) {
try {
String organizeCode = AuthUtilExt.getOrganizeCode();
for (T bean : beans) {

@ -1,11 +1,25 @@
package cn.estsh.i3plus.ext.mes.apiservice.controller.base;
import cn.estsh.i3plus.ext.mes.api.base.IMesCustomerCarModelService;
import cn.estsh.i3plus.ext.mes.api.base.IMesPartProdGroupService;
import cn.estsh.i3plus.ext.mes.apiservice.config.AuthUtilExt;
import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant;
import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
import cn.estsh.i3plus.pojo.mes.bean.MesCustomerCarModel;
import cn.estsh.i3plus.pojo.mes.bean.MesCustomerCarModelDetail;
import cn.estsh.i3plus.pojo.mes.bean.MesPartProdGroup;
import cn.estsh.i3plus.pojo.mes.bean.MesPartProdGroupDetail;
import cn.estsh.impp.framework.boot.exception.ImppBusiException;
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.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
*
*/
@ -13,4 +27,23 @@ import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping(MesCommonConstant.MES_YANFEN + "/mesCustomerCarModel")
public class MesCustomerCarModelController extends BaseMesController<MesCustomerCarModel>{
@Autowired
private IMesCustomerCarModelService mesCustomerCarModelService;
@GetMapping(value = "/find-mes-customer-car-model")
@ApiOperation(value = "查询客户车型")
public ResultBean findMesCustomerCarModel(MesCustomerCarModelDetail mesPartProdGroupDetail) {
try {
mesPartProdGroupDetail.setOrganizeCode(AuthUtilExt.getOrganizeCode());
//查询汇总工单数量
List<MesCustomerCarModel> mesPartProdGroupList = mesCustomerCarModelService.findMesCustomerCarModel(mesPartProdGroupDetail);
return ResultBean.success("查询成功")
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(mesPartProdGroupList);
} catch (ImppBusiException e) {
return ResultBean.fail(e).build();
} catch (Exception e) {
return ResultBean.fail(e);
}
}
}

@ -1,12 +1,25 @@
package cn.estsh.i3plus.ext.mes.apiservice.controller.base;
import cn.estsh.i3plus.ext.mes.api.base.IMesCustomerCarModelService;
import cn.estsh.i3plus.ext.mes.api.base.IMesCustomerPartService;
import cn.estsh.i3plus.ext.mes.apiservice.config.AuthUtilExt;
import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant;
import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
import cn.estsh.i3plus.pojo.mes.bean.MesArea;
import cn.estsh.i3plus.pojo.mes.bean.MesCustomerCarModel;
import cn.estsh.i3plus.pojo.mes.bean.MesCustomerCarModelDetail;
import cn.estsh.i3plus.pojo.mes.bean.MesCustomerPart;
import cn.estsh.impp.framework.boot.exception.ImppBusiException;
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.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
*
*/
@ -14,4 +27,22 @@ import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping(MesCommonConstant.MES_YANFEN + "/mesCustomerPart")
public class MesCustomerPartController extends BaseMesController<MesCustomerPart>{
@Autowired
private IMesCustomerPartService mesCustomerPartService;
@GetMapping(value = "/find-mes-customer-part")
@ApiOperation(value = "查询客户零件")
public ResultBean findMesCustomerPart(MesCustomerCarModelDetail mesPartProdGroupDetail) {
try {
mesPartProdGroupDetail.setOrganizeCode(AuthUtilExt.getOrganizeCode());
//查询汇总工单数量
List<MesCustomerPart> mesCustomerPartList = mesCustomerPartService.findMesCustomerPart(mesPartProdGroupDetail);
return ResultBean.success("查询成功")
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(mesCustomerPartList);
} catch (ImppBusiException e) {
return ResultBean.fail(e).build();
} catch (Exception e) {
return ResultBean.fail(e);
}
}
}

@ -1,11 +1,24 @@
package cn.estsh.i3plus.ext.mes.apiservice.controller.base;
import cn.estsh.i3plus.ext.mes.api.base.IMesPartProdGroupService;
import cn.estsh.i3plus.ext.mes.apiservice.config.AuthUtilExt;
import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant;
import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
import cn.estsh.i3plus.pojo.mes.bean.MesPartProdGroup;
import cn.estsh.i3plus.pojo.mes.bean.MesPartProdGroupDetail;
import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder;
import cn.estsh.impp.framework.boot.exception.ImppBusiException;
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.util.CollectionUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
*
*/
@ -13,4 +26,23 @@ import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping(MesCommonConstant.MES_YANFEN + "/mesPartProdGroup")
public class MesPartProdGroupController extends BaseMesController<MesPartProdGroup>{
@Autowired
private IMesPartProdGroupService mesPartProdGroupService;
@GetMapping(value = "/find-mes-part-prod-group")
@ApiOperation(value = "查询零件生产组")
public ResultBean findMesPartProdGroup(MesPartProdGroupDetail mesPartProdGroupDetail) {
try {
mesPartProdGroupDetail.setOrganizeCode(AuthUtilExt.getOrganizeCode());
//查询汇总工单数量
List<MesPartProdGroup> mesPartProdGroupList = mesPartProdGroupService.findMesPartProdGroup(mesPartProdGroupDetail);
return ResultBean.success("查询成功")
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(mesPartProdGroupList);
} catch (ImppBusiException e) {
return ResultBean.fail(e).build();
} catch (Exception e) {
return ResultBean.fail(e);
}
}
}

@ -27,9 +27,9 @@ public class MesWorkOrderDaoImpl implements IMesWorkOrderDao {
@Override
public List<MesWorkOrder> sumMesWorkOrderQtyToSap(String organizeCode, List<Integer> statusList) {
StringBuffer hql = new StringBuffer("select new MesWorkOrder(partNo,planStartTime,sum(qty)) from MesWorkOrder " +
"where isDeleted=:isDeleted and isValid = :isValid and organizeCode = :organizeCode " +
"and workOrderStatus not in(:statusList) group by partNo,planStartTime");
StringBuffer hql = new StringBuffer("select new MesWorkOrder(partNo,planStartTime,productVersion,sum(case when workOrderStatus = 40 then 0 else qty end) as sumQty) " +
" from MesWorkOrder where isDeleted=:isDeleted and isValid = :isValid and organizeCode = :organizeCode " +
"and workOrderStatus not in(:statusList) group by partNo,planStartTime,productVersion");
Query query = entityManager.createQuery(hql.toString(), MesWorkOrder.class);
query.setParameter("organizeCode",organizeCode);
query.setParameter("isValid",CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());

@ -6,18 +6,26 @@ import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.mes.bean.MesBom;
import cn.estsh.i3plus.pojo.mes.bean.MesCustomer;
import cn.estsh.i3plus.pojo.mes.bean.MesCustomerCarModel;
import cn.estsh.i3plus.pojo.mes.bean.MesCustomerRoad;
import cn.estsh.i3plus.pojo.mes.bean.*;
import cn.estsh.i3plus.pojo.mes.repository.MesCustomerCarModelDetailRepository;
import cn.estsh.i3plus.pojo.mes.repository.MesCustomerCarModelRepository;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.util.ValidatorBean;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@Service
@Slf4j
public class MesCustomerCarModelService extends BaseMesService<MesCustomerCarModel> implements IMesCustomerCarModelService {
@Autowired
private MesCustomerCarModelDetailRepository mesCustomerCarModelDetailRDao;
protected void setPackQueryBean(MesCustomerCarModel bean, DdlPackBean packBean) {
DdlPreparedPack.getStringEqualPack(bean.getCustomerOrganizeCode(), "customerOrganizeCode", packBean);
DdlPreparedPack.getStringLikerPack(bean.getCarModelCode(), "carModelCode", packBean);
@ -59,4 +67,18 @@ public class MesCustomerCarModelService extends BaseMesService<MesCustomerCarMod
.build();
}
}
@Override
public List<MesCustomerCarModel> findMesCustomerCarModel(MesCustomerCarModelDetail mesPartProdGroupDetail) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(mesPartProdGroupDetail.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(mesPartProdGroupDetail.getPartNo(),"partNo",ddlPackBean);
List<MesCustomerCarModelDetail> mesCustomerCarModelDetails = mesCustomerCarModelDetailRDao.findByHqlWhere(ddlPackBean);
if(CollectionUtils.isEmpty(mesCustomerCarModelDetails)){
return new ArrayList<>();
}
List<String> carModelCodeList = mesCustomerCarModelDetails.stream().map(MesCustomerCarModelDetail::getCarModelCode).collect(Collectors.toList());
ddlPackBean = DdlPackBean.getDdlPackBean(mesPartProdGroupDetail.getOrganizeCode());
DdlPreparedPack.getInPackList(carModelCodeList,"carModelCode",ddlPackBean);
return baseRDao.findByHqlWhere(ddlPackBean);
}
}

@ -1,18 +1,22 @@
package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base;
import cn.estsh.i3plus.ext.mes.api.base.IMesCustomerCarModelService;
import cn.estsh.i3plus.ext.mes.api.base.IMesCustomerPartService;
import cn.estsh.i3plus.ext.mes.api.base.IMesCustomerService;
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.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.mes.bean.MesCustomer;
import cn.estsh.i3plus.pojo.mes.bean.MesCustomerOriganze;
import cn.estsh.i3plus.pojo.mes.bean.MesCustomerPart;
import cn.estsh.i3plus.pojo.mes.bean.*;
import cn.estsh.i3plus.pojo.mes.repository.MesCustomerCarModelDetailRepository;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
* @Description:
@ -23,6 +27,10 @@ import java.util.List;
@Service
public class MesCustomerPartService extends BaseMesService<MesCustomerPart> implements IMesCustomerPartService {
@Autowired
private MesCustomerCarModelDetailRepository mesCustomerCarModelDetailRDao;
protected void setPackQueryBean(MesCustomerPart bean, DdlPackBean packBean) {
DdlPreparedPack.getStringEqualPack(bean.getCustomerPartNo(), "customerPartNo", packBean);
DdlPreparedPack.getStringLikerPack(bean.getPartNo(), "partNo", packBean);
@ -30,4 +38,19 @@ public class MesCustomerPartService extends BaseMesService<MesCustomerPart> impl
}
@Override
public List<MesCustomerPart> findMesCustomerPart(MesCustomerCarModelDetail mesPartProdGroupDetail) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(mesPartProdGroupDetail.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(mesPartProdGroupDetail.getPartNo(),"partNo",ddlPackBean);
DdlPreparedPack.getStringEqualPack(mesPartProdGroupDetail.getCarModelCode(),"carModelCode",ddlPackBean);
List<MesCustomerCarModelDetail> mesCustomerCarModelDetails = mesCustomerCarModelDetailRDao.findByHqlWhere(ddlPackBean);
if(CollectionUtils.isEmpty(mesCustomerCarModelDetails)){
return new ArrayList<>();
}
List<String> customerPartNoList = mesCustomerCarModelDetails.stream().map(MesCustomerCarModelDetail::getCustomerPartNo).collect(Collectors.toList());
ddlPackBean = DdlPackBean.getDdlPackBean(mesPartProdGroupDetail.getOrganizeCode());
DdlPreparedPack.getInPackList(customerPartNoList,"customerPartNo",ddlPackBean);
return baseRDao.findByHqlWhere(ddlPackBean);
}
}

@ -1,13 +1,38 @@
package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base;
import cn.estsh.i3plus.ext.mes.api.base.IMesEquitmentService;
import cn.estsh.i3plus.ext.mes.api.base.IMesPartProdGroupService;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.mes.bean.MesPartProdGroup;
import cn.estsh.i3plus.pojo.mes.bean.MesPartProdGroupDetail;
import cn.estsh.i3plus.pojo.mes.repository.MesPartProdGroupDetailRepository;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@Service
@Slf4j
public class MesPartProdGroupService extends BaseMesService<MesPartProdGroup> implements IMesPartProdGroupService {
@Autowired
private MesPartProdGroupDetailRepository mesPartProdGroupDetailRDao;
public List<MesPartProdGroup> findMesPartProdGroup(MesPartProdGroupDetail mesPartProdGroupDetail){
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(mesPartProdGroupDetail.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(mesPartProdGroupDetail.getPartNo(),"partNo",ddlPackBean);
DdlPreparedPack.getStringEqualPack(mesPartProdGroupDetail.getWorkCenterCode(),"workCenterCode",ddlPackBean);
List<MesPartProdGroupDetail> mesPartProdGroupDetails = mesPartProdGroupDetailRDao.findByHqlWhere(ddlPackBean);
if(CollectionUtils.isEmpty(mesPartProdGroupDetails)){
return new ArrayList<>();
}
List<String> partProdGroupNoList = mesPartProdGroupDetails.stream().map(MesPartProdGroupDetail::getPartProdGroupNo).collect(Collectors.toList());
ddlPackBean = DdlPackBean.getDdlPackBean(mesPartProdGroupDetail.getOrganizeCode());
DdlPreparedPack.getInPackList(partProdGroupNoList,"partProdGroupNo",ddlPackBean);
return baseRDao.findByHqlWhere(ddlPackBean);
}
}

@ -16,6 +16,7 @@ public class MesShiftService extends BaseMesService<MesShift> implements IMesShi
DdlPreparedPack.getNumEqualPack(bean.getIsValid(), "isValid", packBean);
DdlPreparedPack.getStringEqualPack(bean.getShiftCode(), "shiftCode", packBean);
DdlPreparedPack.getStringEqualPack(bean.getWorkCenterCode(), "workCenterCode", packBean);
DdlPreparedPack.getStringLikeEqualPack(bean.getShiftName(), "shiftName", packBean);
}

@ -1,13 +1,17 @@
package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base;
import cn.estsh.i3plus.ext.mes.api.base.*;
import cn.estsh.i3plus.ext.mes.api.base.IMesPartService;
import cn.estsh.i3plus.ext.mes.api.base.IMesProductOffLineService;
import cn.estsh.i3plus.ext.mes.api.base.IMesWorkOrderService;
import cn.estsh.i3plus.ext.mes.api.base.IMesWorkOrderToSapService;
import cn.estsh.i3plus.ext.mes.apiservice.dao.IMesWorkOrderDao;
import cn.estsh.i3plus.ext.mes.apiservice.unit.exception.MesException;
import cn.estsh.i3plus.pojo.mes.unit.MesExtEnumUtil;
import cn.estsh.i3plus.mes.api.iservice.busi.ISyncFuncService;
import cn.estsh.i3plus.mes.apiservice.util.DateUtil;
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum;
import cn.estsh.i3plus.platform.common.tool.MathOperation;
import cn.estsh.i3plus.platform.common.tool.TimeTool;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
@ -16,6 +20,9 @@ import cn.estsh.i3plus.pojo.mes.bean.*;
import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel;
import cn.estsh.i3plus.pojo.mes.repository.MesBomRepository;
import cn.estsh.i3plus.pojo.mes.repository.MesProductVersionRepository;
import cn.estsh.i3plus.pojo.mes.repository.MesShiftRepository;
import cn.estsh.i3plus.pojo.mes.repository.MesWorkCenterRepository;
import cn.estsh.i3plus.pojo.mes.unit.MesExtEnumUtil;
import cn.estsh.impp.framework.boot.auth.AuthUtil;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.util.ValidatorBean;
@ -25,7 +32,9 @@ import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Objects;
@ -48,6 +57,10 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
private IMesProductOffLineService mesProductOffLineService;
@Autowired
private IMesWorkOrderDao mesWorkOrderDao;
@Autowired
private MesWorkCenterRepository mesWorkCenterRDao;
@Autowired
private MesShiftRepository mesShiftRDao;
@Override
public MesWorkOrder insert(MesWorkOrder bean) {
@ -80,7 +93,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
BeanUtils.copyProperties(bean, copyMesWorkOrder);
copyMesWorkOrder.setProduceSeq(produceSeq + 1);
copyMesWorkOrder.setQty(1D);
copyMesWorkOrder.setOrderNo(resultList.get(0)+"_"+copyMesWorkOrder.getOrganizeCode());
copyMesWorkOrder.setOrderNo(resultList.get(0) + "_" + copyMesWorkOrder.getOrganizeCode());
ConvertBean.serviceModelInitialize(copyMesWorkOrder, bean.getCreateUser());
MesWorkOrderLog workOrderLog = new MesWorkOrderLog();
@ -110,7 +123,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
}
genSerialNoModel.setPartNo(bean.getPartNo());
List<String> resultList = syncFuncService.syncSerialNo(genSerialNoModel, bean.getCreateUser(), bean.getOrganizeCode(), 1).getResultList();
bean.setOrderNo(resultList.get(0)+"_"+bean.getOrganizeCode());
bean.setOrderNo(resultList.get(0) + "_" + bean.getOrganizeCode());
bean.setQty(bean.getQty());
ConvertBean.serviceModelInitialize(bean, bean.getCreateUser());
@ -160,17 +173,20 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
}
result.setQty(bean.getQty());
//更新完成数量
if (bean.getCompleteQty() > 0) {
result.setCompleteQty(bean.getCompleteQty());
//更新已汇报
if (bean.getReportedQty() >= 0) {
result.setReportedQty(bean.getReportedQty());
}
if (bean.getUnCompleteQty() > 0) {
if (bean.getUnCompleteQty() >= 0) {
result.setUnCompleteQty(bean.getUnCompleteQty());
}
if (bean.getAdjustQty() > 0) {
result.setAdjustQty(bean.getAdjustQty());
}
//更新状态
if (bean.getWorkOrderStatus() > 0) {
if(MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue() == bean.getWorkOrderStatus()){
if(MesExtEnumUtil.ORDER_STATUS.CREATE.getValue() != result.getWorkOrderStatus()){
if (MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue() == bean.getWorkOrderStatus()) {
if (MesExtEnumUtil.ORDER_STATUS.CREATE.getValue() != result.getWorkOrderStatus()) {
MesException.throwMesBusiException(String.format("工单状态为【%s】不为创建不允许发布",
MesExtEnumUtil.ORDER_TYPE.valueOfDescription(result.getWorkOrderStatus())));
}
@ -222,10 +238,17 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
//ValidatorBean.checkNotNull(item.getShiftCode(), "班次不能为空");
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(item.getWorkCenterCode(), "workCenterCode", ddlPackBean);
if (!mesWorkCenterRDao.isExitByHql(ddlPackBean)) {
MesException.throwMesBusiException("产线【%s】不存在", item.getWorkCenterCode());
}
//校验标识
//若工单类型为排序
if (item.getWorkOrderType() == MesExtEnumUtil.ORDER_TYPE.SORT.getValue()) {
ValidatorBean.checkNotNull(item.getOrderFlag(), "标识不能为空");
ValidatorBean.checkNotNull(item.getPlanStartTime(), "计划开始时间不能为空");
ValidatorBean.checkNotNull(item.getPlanEndTime(), "计划结束时间不能为空");
//若工单类型为排序 标识为 N E P S
if (item.getOrderFlag() != MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.S.getValue() &&
item.getOrderFlag() != MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.E.getValue() &&
@ -241,9 +264,16 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.build();
}
//校验vin号是否重复
ddlPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(item.getVinCode(), "vinCode", ddlPackBean);
if (baseRDao.isExitByHql(ddlPackBean)) {
MesException.throwMesBusiException("vin号【%s】重复", item.getVinCode());
}
} else if (item.getWorkOrderType() == MesExtEnumUtil.ORDER_TYPE.UN_SORT.getValue()) {
ValidatorBean.checkNotNull(item.getOrderFlag(), "标识不能为空");
ValidatorBean.checkNotNull(item.getProductVersion(), "生产版本不能为空");
if (item.getOrderFlag() != MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.E.getValue() &&
item.getOrderFlag() != MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getValue()) {
throw ImppExceptionBuilder.newInstance()
@ -254,6 +284,44 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.build();
}
if (StringUtil.isEmpty(item.getPlanStartTime()) || StringUtil.isEmpty(item.getPlanEndTime())) {
ValidatorBean.checkNotNull(item.getPlanDate(), "计划日期不能为空");
ValidatorBean.checkNotNull(item.getShiftCode(), "班次不能为空");
//查询班次信息
ddlPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(item.getWorkCenterCode(), "workCenterCode", ddlPackBean);
DdlPreparedPack.getStringEqualPack(item.getShiftCode(), "shiftCode", ddlPackBean);
MesShift mesShift = mesShiftRDao.getByProperty(ddlPackBean);
if (Objects.isNull(mesShift)) {
MesException.throwMesBusiException("产线【%s】班次【%s】信息不存在", item.getWorkCenterCode(), item.getShiftCode());
}
item.setShiftName(mesShift.getShiftName());
//拼接
item.setPlanStartTime(item.getPlanDate() + " " + mesShift.getStartTime());
item.setPlanEndTime(item.getPlanDate() + " " + mesShift.getEndTime());
try {
int windowStartEndTimeCompare = this.compareDateTime(DateUtil.BASE_FORMAT, item.getPlanStartTime(), item.getPlanEndTime());
if (windowStartEndTimeCompare > 0) {
item.setPlanEndTime(TimeTool.pareDateToString(DateUtil.addDays(item.getPlanEndTime(),1)));
}
} catch (Exception e) {
MesException.throwMesBusiException("时间格式异常");
}
}
//校验物料生产版本是否存在
ddlPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(item.getPartNo(), "partNo", ddlPackBean);
DdlPreparedPack.getStringEqualPack(item.getProductVersion(), "productVersion", ddlPackBean);
if (!mesProductVersionRDao.isExitByHql(ddlPackBean)) {
MesException.throwMesBusiException("物料【%s】生产版本【%s】信息不存在", item.getPartNo(), item.getProductVersion());
}
} else {
ValidatorBean.checkNotNull(item.getPlanStartTime(), "计划开始时间不能为空");
ValidatorBean.checkNotNull(item.getPlanEndTime(), "计划结束时间不能为空");
//拼接
item.setPlanStartTime(item.getPlanStartTime() + " " + "00:00:00");
item.setPlanEndTime(item.getPlanEndTime() + " " + "23:59:59");
}
//物料名称不存在,从物料信息中获取
if (StringUtil.isEmpty(item.getPartNameRdd())) {
@ -267,6 +335,13 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
}
public int compareDateTime(String formatStr, String startTimeStr, String endTimeStr) throws Exception {
SimpleDateFormat sdf = new SimpleDateFormat(formatStr);
Date startTime = sdf.parse(startTimeStr);
Date endTime = sdf.parse(endTimeStr);
return startTime.compareTo(endTime);
}
@Override
public void doProductReport(MesWorkOrder mesWorkOrder) {
//查询物料信息
@ -288,25 +363,28 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
mesWorkOrder.getPartNo(), mesProductVersion.getProductVersion());
}
//报工类型
if(MesExtEnumUtil.REPORT_TYPE.REPORT.getValue() == mesWorkOrder.getReportType()){
mesWorkOrder.setCompleteQty(MathOperation.add(mesWorkOrder.getNum(), mesWorkOrder.getCompleteQty()));
}else{
if (MesExtEnumUtil.REPORT_TYPE.REPORT.getValue() == mesWorkOrder.getReportType()) {
mesWorkOrder.setReportedQty(MathOperation.add(mesWorkOrder.getNum(), mesWorkOrder.getReportedQty()));
} else {
//冲销数量大于工单完成数量报错
if(mesWorkOrder.getNum() > mesWorkOrder.getCompleteQty()){
if (mesWorkOrder.getNum() > mesWorkOrder.getReportedQty()) {
MesException.throwMesBusiException("冲销数量【%s】大于工单完成数量【%s】,不允许冲销",
mesWorkOrder.getNum(), mesWorkOrder.getCompleteQty());
mesWorkOrder.getNum(), mesWorkOrder.getReportedQty());
}
mesWorkOrder.setCompleteQty(MathOperation.sub(mesWorkOrder.getCompleteQty(),mesWorkOrder.getNum()));
//报工调整数量加-
mesWorkOrder.setAdjustQty((MathOperation.add(mesWorkOrder.getNum(), mesWorkOrder.getAdjustQty())));
//已汇报数量减一
mesWorkOrder.setReportedQty(MathOperation.sub(mesWorkOrder.getReportedQty(), mesWorkOrder.getNum()));
}
//更新工单状态
double unCompleteQty = MathOperation.sub(mesWorkOrder.getQty(), mesWorkOrder.getCompleteQty());
double unCompleteQty = MathOperation.sub(mesWorkOrder.getQty(), mesWorkOrder.getReportedQty());
mesWorkOrder.setUnCompleteQty(unCompleteQty > 0 ? unCompleteQty : 0);
if (mesWorkOrder.getCompleteQty() > mesWorkOrder.getQty()) {
if (mesWorkOrder.getReportedQty() > mesWorkOrder.getQty()) {
MesException.throwMesBusiException("工单报工数量【%s】大于工单数量【%s】,不允许报工",
mesWorkOrder.getCompleteQty(), mesWorkOrder.getQty());
}else if(Objects.equals(mesWorkOrder.getCompleteQty(),mesWorkOrder.getQty())){
mesWorkOrder.getReportedQty(), mesWorkOrder.getQty());
} else if (Objects.equals(mesWorkOrder.getReportedQty(), mesWorkOrder.getQty())) {
mesWorkOrder.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.COMPLETE.getValue());
}else {
} else {
mesWorkOrder.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.process.getValue());
}
update(mesWorkOrder);
@ -338,6 +416,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
newMesProductOffLine.setWorkCenterCode(mesWorkOrder.getWorkCenterCode());
newMesProductOffLine.setWorkCellCode(mesWorkOrder.getWorkCellCode());
newMesProductOffLine.setReportType(mesWorkOrder.getReportType());
newMesProductOffLine.setOrganizeCode(mesWorkOrder.getOrganizeCode());
ConvertBean.serviceModelInitialize(newMesProductOffLine, mesWorkOrder.getCreateUser());
mesProductOffLineList.add(newMesProductOffLine);
@ -350,7 +429,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
public List<MesWorkOrder> sumMesWorkOrderQtyToSap(String organizeCode) {
List<Integer> statusList = new ArrayList<>();
statusList.add(MesExtEnumUtil.ORDER_STATUS.CREATE.getValue());
statusList.add(MesExtEnumUtil.ORDER_STATUS.CLOSE.getValue());
// statusList.add(MesExtEnumUtil.ORDER_STATUS.CLOSE.getValue());
//查询汇总工单数量
return mesWorkOrderDao.sumMesWorkOrderQtyToSap(organizeCode, statusList);
}

@ -1,392 +1,256 @@
package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.excel;
import cn.estsh.i3plus.mes.api.iservice.busi.IExcelImportService;
import cn.estsh.i3plus.mes.apiservice.serviceimpl.busi.CommonService;
import cn.estsh.i3plus.mes.apiservice.util.MesCommonUtil;
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.pojo.mes.bean.MesPartPtr;
import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder;
import cn.estsh.i3plus.pojo.mes.model.ExcelImportErrorModel;
import cn.estsh.i3plus.pojo.mes.model.ExcelImportResultModel;
import cn.estsh.i3plus.pojo.mes.repository.MesPartPtrRepository;
import cn.estsh.i3plus.pojo.mes.repository.MesPartRepository;
import cn.estsh.i3plus.pojo.mes.repository.MesWorkOrderRepository;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @Description : MESBTO
* @Reference :
* @Author : junsheng.li
* @CreateDate 2024/5/16 14:14
* @Modify:
**/
@Service
@Slf4j
public class MesWorkOrderBtoExcelServiceImpl implements IExcelImportService {
@Autowired
private CommonService commonService;
@Autowired
private MesPartRepository partRepository;
@Autowired
private MesWorkOrderRepository mesWorkOrderRDao;
@Override
public ExcelImportResultModel insertDataByExcel(Workbook workbook, String organizeCode, String userName) {
//读取表格
ExcelImportResultModel excelImportResultModel = this.sheetExtractMesWorkOrder(workbook.getSheetAt(0), organizeCode, userName);
//数据入库
this.insertExcelMesWorkOrder(excelImportResultModel);
return excelImportResultModel;
// return null;
}
/**
* BOM-
*
* @param sheetAt
* @param organizeCode
* @param userName
* @return
*/
private ExcelImportResultModel sheetExtractMesWorkOrder(Sheet sheetAt, String organizeCode, String userName) {
//从0行开始读取
int totalNumberOfRows = sheetAt.getLastRowNum() + 1;
//MesStationBom集合
List<MesPartPtr> partPtrList = new ArrayList<>();
//成功数量
Integer successRowNum = 0;
//失败数量
Integer failRowNum = 0;
//错误的行号
String errorRows = "";
//错误行信息集合
List<ExcelImportErrorModel> excelImportErrorModels = new ArrayList<>();
// 查询物料表
Map<String, Object> partCodeEntityMap;
try {
partCodeEntityMap = MesCommonUtil.getCodeEntityMap(partRepository, "partNo", organizeCode, "物料表");
} catch (Exception e) {
partCodeEntityMap = null;
}
// //查询关键件条码校验规则表
// List<MesPartPtr> partPtrList = partPtrRepository.findByProperty(new String[]{MesConstWords.ORGANIZE_CODE, MesConstWords.IS_DELETED},
// new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()});
// Map<String, List<MesPartPtr>> preventionMap =
// partPtrList.stream().collect(Collectors.groupingBy(k -> k.getPreventionObjectCode() + "&" + k.getPartNo()));
Map<String, String> map = new HashMap<>();
for (int i = (sheetAt.getFirstRowNum() + 1); i < totalNumberOfRows; i++) {
Row row = sheetAt.getRow(i);
//空行跳过
if (null == row) {
continue;
}
//获取总列数
Short lastCellNum = row.getLastCellNum();
if (lastCellNum > 0) {
int rowNum = i + 1; //当前行号
int errorNum = 0; //错误数量
String cellNum = ""; //错误列号
String errorInfo = ""; //错误信息
//产线编号
String workCenterCode = row.getCell(0, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
//开始时间
String startTime = null;
try {
row.getCell(1).setCellType(CellType.STRING);
startTime = row.getCell(1, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
} catch (Exception e) {
}
//结束时间
String endTime = null;
try {
row.getCell(2).setCellType(CellType.STRING);
endTime = row.getCell(2, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
} catch (Exception e) {
}
//PTR车辆数量
String prtVehicleCount = null;
try {
row.getCell(3).setCellType(CellType.STRING);
prtVehicleCount = row.getCell(3, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
} catch (Exception e) {
}
//PTR车辆实际数量
String prtVehicleActualCount = null;
try {
row.getCell(4).setCellType(CellType.STRING);
prtVehicleActualCount = row.getCell(4, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
} catch (Exception e) {
}
//原零件号
String sourcePartNo = null;
try {
row.getCell(5).setCellType(CellType.STRING);
sourcePartNo = row.getCell(5, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
} catch (Exception e) {
}
//替换零件号
String targetPartNo = null;
try {
row.getCell(6).setCellType(CellType.STRING);
targetPartNo = row.getCell(6, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
} catch (Exception e) {
}
//是否客户 发送PTR信息
String isCustomerSendPrtInfo = null;
try {
row.getCell(7).setCellType(CellType.STRING);
isCustomerSendPrtInfo = row.getCell(7, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
} catch (Exception e) {
}
//排序信息PTR零件号
String seqInfoPrtPart = null;
try {
row.getCell(8).setCellType(CellType.STRING);
seqInfoPrtPart = row.getCell(8, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
} catch (Exception e) {
}
//PTR项目编号
String ptrProjectNo = null;
try {
row.getCell(9).setCellType(CellType.STRING);
ptrProjectNo = row.getCell(9, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
} catch (Exception e) {
}
//替换零件条码规则
String targetPartNoSnRuleCode = null;
try {
row.getCell(10).setCellType(CellType.STRING);
targetPartNoSnRuleCode = row.getCell(10, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
} catch (Exception e) {
}
//总成类型
String partTypeCode = null;
try {
row.getCell(11).setCellType(CellType.STRING);
partTypeCode = row.getCell(11, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
} catch (Exception e) {
}
//总成类型
String isInterPrt = null;
try {
row.getCell(12).setCellType(CellType.STRING);
isInterPrt = row.getCell(12, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
} catch (Exception e) {
}
//目视单显示项
String visualSingleDisplayItem = null;
try {
row.getCell(13).setCellType(CellType.STRING);
visualSingleDisplayItem = row.getCell(13, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
} catch (Exception e) {
}
//起始序号
String startSeq = null;
try {
row.getCell(14).setCellType(CellType.STRING);
startSeq = row.getCell(14, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
} catch (Exception e) {
}
//目视单替换位置
String visualSingleReplacePosition = null;
try {
row.getCell(14).setCellType(CellType.STRING);
visualSingleReplacePosition = row.getCell(14, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
} catch (Exception e) {
}
//硬件版本号
String hardwareVersionNo = null;
try {
row.getCell(15).setCellType(CellType.STRING);
hardwareVersionNo = row.getCell(15, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
} catch (Exception e) {
}
//软件版本号
String softwareVersionNo = null;
try {
row.getCell(16).setCellType(CellType.STRING);
softwareVersionNo = row.getCell(16, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
} catch (Exception e) {
}
//软件版本号
String status = null;
try {
row.getCell(17).setCellType(CellType.STRING);
status = row.getCell(17, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
} catch (Exception e) {
}
//软件版本号
String memo = null;
try {
row.getCell(18).setCellType(CellType.STRING);
memo = row.getCell(18, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
} catch (Exception e) {
}
// if (!map.containsKey(preventionObjectCode + "&" + partNo)) {
// map.put(preventionObjectCode + "&" + partNo, String.valueOf(rowNum));
// } else {
//package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.excel;
//
//import cn.estsh.i3plus.mes.api.iservice.busi.IExcelImportService;
//import cn.estsh.i3plus.mes.apiservice.serviceimpl.busi.CommonService;
//import cn.estsh.i3plus.mes.apiservice.util.MesCommonUtil;
//import cn.estsh.i3plus.platform.common.convert.ConvertBean;
//import cn.estsh.i3plus.pojo.mes.bean.MesPartPtr;
//import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder;
//import cn.estsh.i3plus.pojo.mes.model.ExcelImportErrorModel;
//import cn.estsh.i3plus.pojo.mes.model.ExcelImportResultModel;
//import cn.estsh.i3plus.pojo.mes.repository.MesPartPtrRepository;
//import cn.estsh.i3plus.pojo.mes.repository.MesPartRepository;
//import cn.estsh.i3plus.pojo.mes.repository.MesWorkOrderRepository;
//import cn.estsh.i3plus.pojo.mes.unit.MesExtEnumUtil;
//import lombok.extern.slf4j.Slf4j;
//import org.apache.poi.ss.usermodel.CellType;
//import org.apache.poi.ss.usermodel.Row;
//import org.apache.poi.ss.usermodel.Sheet;
//import org.apache.poi.ss.usermodel.Workbook;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Service;
//import org.springframework.util.CollectionUtils;
//import org.springframework.util.StringUtils;
//
//import java.util.ArrayList;
//import java.util.HashMap;
//import java.util.List;
//import java.util.Map;
//
///**
// * @Description : MES工单导入BTO
// * @Reference :
// * @Author : junsheng.li
// * @CreateDate 2024/5/16 14:14
// * @Modify:
// **/
//@Service
//@Slf4j
//public class MesWorkOrderBtoExcelServiceImpl implements IExcelImportService {
//
// @Autowired
// private CommonService commonService;
// @Autowired
// private MesPartRepository partRepository;
// @Autowired
// private MesWorkOrderRepository mesWorkOrderRDao;
//
// @Override
// public ExcelImportResultModel insertDataByExcel(Workbook workbook, String organizeCode, String userName) {
//
// //读取表格
// ExcelImportResultModel excelImportResultModel = this.sheetExtractMesWorkOrder(workbook.getSheetAt(0), organizeCode, userName);
// //数据入库
// this.insertExcelMesWorkOrder(excelImportResultModel);
// return excelImportResultModel;
//// return null;
// }
//
// /**
// * 工位BOM表导入-读取表格
// *
// * @param sheetAt
// * @param organizeCode
// * @param userName
// * @return
// */
// private ExcelImportResultModel sheetExtractMesWorkOrder(Sheet sheetAt, String organizeCode, String userName) {
//
// //从0行开始读取
// int totalNumberOfRows = sheetAt.getLastRowNum() + 1;
//
// //MesStationBom集合
// List<MesPartPtr> partPtrList = new ArrayList<>();
//
// //成功数量
// Integer successRowNum = 0;
// //失败数量
// Integer failRowNum = 0;
// //错误的行号
// String errorRows = "";
//
// //错误行信息集合
// List<ExcelImportErrorModel> excelImportErrorModels = new ArrayList<>();
//
// // 查询物料表
// Map<String, Object> partCodeEntityMap;
// try {
// partCodeEntityMap = MesCommonUtil.getCodeEntityMap(partRepository, "partNo", organizeCode, "物料表");
// } catch (Exception e) {
// partCodeEntityMap = null;
// }
//
//// //查询关键件条码校验规则表
//// List<MesPartPtr> partPtrList = partPtrRepository.findByProperty(new String[]{MesConstWords.ORGANIZE_CODE, MesConstWords.IS_DELETED},
//// new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()});
//// Map<String, List<MesPartPtr>> preventionMap =
//// partPtrList.stream().collect(Collectors.groupingBy(k -> k.getPreventionObjectCode() + "&" + k.getPartNo()));
//
//
// Map<String, String> map = new HashMap<>();
//
// for (int i = (sheetAt.getFirstRowNum() + 1); i < totalNumberOfRows; i++) {
// Row row = sheetAt.getRow(i);
// //空行跳过
// if (null == row) {
// continue;
// }
// //获取总列数
// Short lastCellNum = row.getLastCellNum();
// if (lastCellNum > 0) {
//
// int rowNum = i + 1; //当前行号
// int errorNum = 0; //错误数量
// String cellNum = ""; //错误列号
// String errorInfo = ""; //错误信息
//
// //生产线代码
// String workCenterCode = null;
// try {
// row.getCell(0).setCellType(CellType.STRING);
// workCenterCode = row.getCell(0, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
// } catch (Exception e) {
// }
// //ERP总成零件号
// String partNo = null;
// try {
// row.getCell(1).setCellType(CellType.STRING);
// partNo = row.getCell(1, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
// } catch (Exception e) {
// }
// //计划开始时间yyyy-MM-dd
// String startTime = null;
// try {
// row.getCell(2).setCellType(CellType.STRING);
// startTime = row.getCell(2, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
// } catch (Exception e) {
// }
// //计划结束时间yyyy-MM-dd
// String endTime = null;
// try {
// row.getCell(3).setCellType(CellType.STRING);
// endTime = row.getCell(3, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
// } catch (Exception e) {
// }
//
// //数量
// String qty = null;
// try {
// row.getCell(4).setCellType(CellType.STRING);
// qty = row.getCell(4, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
// } catch (Exception e) {
// }
//
// //校验产线编号
// if (StringUtils.isEmpty(workCenterCode)) {
// errorNum++;
// cellNum += "A;C;";
// errorInfo += "第A列数据:" + preventionObjectCode + ",第C列数据:" + partNo;
// cellNum += "A;";
// errorInfo += "第A列数据必填;";
// }
//
// //校验物料
// //ERP总成零件号
// if (StringUtils.isEmpty(partNo)) {
// errorNum++;
// cellNum += "B;";
// errorInfo += "第B列数据必填;";
// }
// //计划开始时间yyyy-MM-dd
// if (StringUtils.isEmpty(startTime)) {
// errorNum++;
// cellNum += "C;";
// errorInfo += "第C列数据必填;";
// }
// //校验替换零件号
// if (StringUtils.isEmpty()) {
// errorNum++;
// cellNum += "J;";
// errorInfo += "第J列数据必填;";
// }
// //校验总成类型
// if (StringUtils.isEmpty(partTypeCode)) {
// errorNum++;
// cellNum += "L;";
// errorInfo += "第L列数据必填;";
// }
//
//
// //没有错误的时候封装MesStationBom
// if (errorNum == 0) {
//
// MesPartPtr partPtr;
//// if (preventionMap.containsKey(preventionObjectCode + "&" + partNo)) {
//// itemPartErrorPrevention = preventionMap.get(partNo).get(0);
//// ConvertBean.serviceModelUpdate(itemPartErrorPrevention, userName);
//// } else {
// partPtr = new MesPartPtr();
// ConvertBean.serviceModelInitialize(partPtr, userName);
//// }
// partPtr.setWorkCenterCode(workCenterCode);
// partPtr.setStartTime(startTime);
// partPtr.setEndTime(endTime);
// partPtr.setPrtVehicleCount(Integer.parseInt(prtVehicleCount));
// partPtr.setPrtVehicleActualCount(Integer.parseInt(prtVehicleActualCount));
// partPtr.setSourcePartNo(sourcePartNo);
// partPtr.setTargetPartNo(targetPartNo);
// partPtr.setIsCustomerSendPrtInfo(Integer.parseInt(isCustomerSendPrtInfo));
// partPtr.setSeqInfoPrtPart(seqInfoPrtPart);
// partPtr.setPtrProjectNo(ptrProjectNo);
// partPtr.setTargetPartNoSnRuleCode(targetPartNoSnRuleCode);
// partPtr.setPartTypeCode(Integer.parseInt(partTypeCode));
// partPtr.setIsInterPrt(Integer.parseInt(isInterPrt));
// partPtr.setVisualSingleDisplayItem(visualSingleDisplayItem);
// partPtr.setStartSeq(startSeq);
// partPtr.setVisualSingleReplacePosition(visualSingleReplacePosition);
// partPtr.setHardwareVersionNo(hardwareVersionNo);
// partPtr.setSoftwareVersionNo(softwareVersionNo);
// partPtr.setStatus(Integer.parseInt(status));
// partPtr.setMemo(memo);
// partPtrList.add(partPtr);
// successRowNum++;
// } else {
// if (CollectionUtils.isEmpty(partCodeEntityMap) ||
// (!CollectionUtils.isEmpty(partCodeEntityMap) && !partCodeEntityMap.containsKey(partNo))) {
// errorNum++;
// cellNum += "C;";
// errorInfo += "第C列数据无效;";
// }
// //封装错误行信息ExcelImportErrorModel
// excelImportErrorModels = commonService.getExcelImportErrorModels(excelImportErrorModels, rowNum, errorNum, cellNum, errorInfo);
//
// errorRows += rowNum + ";";
// failRowNum++;
// }
//校验产线编号
if (StringUtils.isEmpty(workCenterCode)) {
errorNum++;
cellNum += "A;";
errorInfo += "第A列数据必填;";
}
//校验原零件号
if (StringUtils.isEmpty(sourcePartNo)) {
errorNum++;
cellNum += "F;";
errorInfo += "第F列数据必填;";
}
//校验产线编号
if (StringUtils.isEmpty(targetPartNo)) {
errorNum++;
cellNum += "G;";
errorInfo += "第G列数据必填;";
}
//校验替换零件号
if (StringUtils.isEmpty(ptrProjectNo)) {
errorNum++;
cellNum += "J;";
errorInfo += "第J列数据必填;";
}
//校验总成类型
if (StringUtils.isEmpty(partTypeCode)) {
errorNum++;
cellNum += "L;";
errorInfo += "第L列数据必填;";
}
//没有错误的时候封装MesStationBom
if (errorNum == 0) {
MesPartPtr partPtr;
// if (preventionMap.containsKey(preventionObjectCode + "&" + partNo)) {
// itemPartErrorPrevention = preventionMap.get(partNo).get(0);
// ConvertBean.serviceModelUpdate(itemPartErrorPrevention, userName);
// } else {
partPtr = new MesPartPtr();
ConvertBean.serviceModelInitialize(partPtr, userName);
// }
partPtr.setWorkCenterCode(workCenterCode);
partPtr.setStartTime(startTime);
partPtr.setEndTime(endTime);
partPtr.setPrtVehicleCount(Integer.parseInt(prtVehicleCount));
partPtr.setPrtVehicleActualCount(Integer.parseInt(prtVehicleActualCount));
partPtr.setSourcePartNo(sourcePartNo);
partPtr.setTargetPartNo(targetPartNo);
partPtr.setIsCustomerSendPrtInfo(Integer.parseInt(isCustomerSendPrtInfo));
partPtr.setSeqInfoPrtPart(seqInfoPrtPart);
partPtr.setPtrProjectNo(ptrProjectNo);
partPtr.setTargetPartNoSnRuleCode(targetPartNoSnRuleCode);
partPtr.setPartTypeCode(Integer.parseInt(partTypeCode));
partPtr.setIsInterPrt(Integer.parseInt(isInterPrt));
partPtr.setVisualSingleDisplayItem(visualSingleDisplayItem);
partPtr.setStartSeq(startSeq);
partPtr.setVisualSingleReplacePosition(visualSingleReplacePosition);
partPtr.setHardwareVersionNo(hardwareVersionNo);
partPtr.setSoftwareVersionNo(softwareVersionNo);
partPtr.setStatus(Integer.parseInt(status));
partPtr.setMemo(memo);
partPtrList.add(partPtr);
successRowNum++;
} else {
//封装错误行信息ExcelImportErrorModel
excelImportErrorModels = commonService.getExcelImportErrorModels(excelImportErrorModels, rowNum, errorNum, cellNum, errorInfo);
errorRows += rowNum + ";";
failRowNum++;
}
}
}
//校验EXCEL数据
commonService.checkExcelData(failRowNum, successRowNum, errorRows);
//封装返回结果
ExcelImportResultModel excelImportResultModel = commonService.getExcelImportResultModel(failRowNum, successRowNum, excelImportErrorModels, errorRows);
excelImportResultModel.setExcelList((failRowNum > 0) ? null : partPtrList);
return excelImportResultModel;
}
private void insertExcelMesWorkOrder(ExcelImportResultModel excelImportResultModel) {
if (excelImportResultModel == null) {
return;
}
List<MesWorkOrder> partPtrList = excelImportResultModel.getExcelList();
if (CollectionUtils.isEmpty(partPtrList)) {
return;
}
partPtrList.forEach(k -> {
if (StringUtils.isEmpty(k.getId())) {
mesWorkOrderRDao.insert(k);
} else {
mesWorkOrderRDao.update(k);
}
});
}
}
//
// }
// }
//
// //校验EXCEL数据
// commonService.checkExcelData(failRowNum, successRowNum, errorRows);
// //封装返回结果
// ExcelImportResultModel excelImportResultModel = commonService.getExcelImportResultModel(failRowNum, successRowNum, excelImportErrorModels, errorRows);
// excelImportResultModel.setExcelList((failRowNum > 0) ? null : partPtrList);
// return excelImportResultModel;
// }
//
// private void insertExcelMesWorkOrder(ExcelImportResultModel excelImportResultModel) {
// if (excelImportResultModel == null) {
// return;
// }
// List<MesWorkOrder> partPtrList = excelImportResultModel.getExcelList();
// if (CollectionUtils.isEmpty(partPtrList)) {
// return;
// }
//
// partPtrList.forEach(k -> {
// if (StringUtils.isEmpty(k.getId())) {
// mesWorkOrderRDao.insert(k);
// } else {
// mesWorkOrderRDao.update(k);
// }
// });
// }
//}

Loading…
Cancel
Save