diff --git a/hw-common/hw-common-core/src/main/java/com/hw/common/core/constant/MesConstants.java b/hw-common/hw-common-core/src/main/java/com/hw/common/core/constant/MesConstants.java index e6d9b4d5..4a2c9523 100644 --- a/hw-common/hw-common-core/src/main/java/com/hw/common/core/constant/MesConstants.java +++ b/hw-common/hw-common-core/src/main/java/com/hw/common/core/constant/MesConstants.java @@ -89,4 +89,7 @@ public class MesConstants { public static final String MES_ASSIGN_TASK_RESULT_KEY = "fifth_floor_assign_task_result";//五楼分配柜体任务到具体工位返库key + /**生产派工开始类型*/ + public static final String MES_START_TYPE_FIFTH_FLOOR_ASSEMBLE = "1";//五楼装配工位 + } diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesApiController.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesApiController.java index 94b3bef4..17119fff 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesApiController.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesApiController.java @@ -1,5 +1,6 @@ package com.hw.mes.controller; +import com.hw.common.core.constant.MesConstants; import com.hw.common.core.web.controller.BaseController; import com.hw.common.core.web.domain.AjaxResult; import com.hw.common.core.web.page.TableDataInfo; @@ -142,7 +143,20 @@ public class MesApiController extends BaseController { @Log(title = "生产计划明细", businessType = BusinessType.START) @PostMapping(("/startNextProductPlanDetail")) public AjaxResult startNextProductPlanDetail(@RequestBody MesProductPlanDetail mesProductPlanDetail) { - return success(productPlanDetailService.startNextMesProductPlanDetail(mesProductPlanDetail)); + return success(productPlanDetailService.startNextMesProductPlanDetail(mesProductPlanDetail,"")); + } + + /** + * 开始下一生产计划明细(适用于五楼装配区域),扫描或输入物料条码后开始时生成一条计划明细 + * 传planId + */ + @Log(title = "生产计划明细", businessType = BusinessType.START) + @PostMapping(("/scan2StartNextProductPlanDetail")) + public AjaxResult scan2StartNextProductPlanDetail(@Validated @RequestBody MesMaterialBarcodeScan2StartVo mesMaterialBarcodeScan2StartVo) { + MesProductPlanDetail mesProductPlanDetail = new MesProductPlanDetail(); + mesProductPlanDetail.setPlanId(mesMaterialBarcodeScan2StartVo.getPlanId()); + mesProductPlanDetail.setMaterialBarcode(mesMaterialBarcodeScan2StartVo.getMaterialBarcode()); + return success(productPlanDetailService.startNextMesProductPlanDetail(mesProductPlanDetail, MesConstants.MES_START_TYPE_FIFTH_FLOOR_ASSEMBLE)); } /** @@ -155,7 +169,7 @@ public class MesApiController extends BaseController { MesProductPlanDetail mesProductPlanDetail = new MesProductPlanDetail(); mesProductPlanDetail.setPlanId(mesProductPlanDetailAttachVo.getPlanId()); mesProductPlanDetail.setAttachId(mesProductPlanDetailAttachVo.getAttachId()); - return success(productPlanDetailService.startNextMesProductPlanDetail(mesProductPlanDetail)); + return success(productPlanDetailService.startNextMesProductPlanDetail(mesProductPlanDetail,"")); } /** diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/MesProductPlanDetail.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/MesProductPlanDetail.java index ff017d7a..b50cca36 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/MesProductPlanDetail.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/MesProductPlanDetail.java @@ -64,6 +64,8 @@ public class MesProductPlanDetail extends BaseEntity private String attachName; + private String materialBarcode; + public void setPlanDetailId(Long planDetailId) { this.planDetailId = planDetailId; @@ -180,6 +182,14 @@ public class MesProductPlanDetail extends BaseEntity this.attachName = attachName; } + public String getMaterialBarcode() { + return materialBarcode; + } + + public void setMaterialBarcode(String materialBarcode) { + this.materialBarcode = materialBarcode; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/vo/MesMaterialBarcodeScan2StartVo.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/vo/MesMaterialBarcodeScan2StartVo.java new file mode 100644 index 00000000..2ba1ad2c --- /dev/null +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/vo/MesMaterialBarcodeScan2StartVo.java @@ -0,0 +1,26 @@ +package com.hw.mes.domain.vo; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +/** + * @Description: 五楼装配工位扫码开始VO对象 + * @ClassName: MesMaterialBarcodeScan2StartVo + * @Author : xins + * @Date :2024-04-15 10:10 + * @Version :1.0 + */ +@Data +public class MesMaterialBarcodeScan2StartVo { + + //生产计划ID + @NotNull(message = "planId必须输入") + private Long planId; + + //物料条码 + @NotBlank(message = "物料条码必须输入") + private String materialBarcode; + +} diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesProductPlanDetailService.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesProductPlanDetailService.java index db99e210..4a5f8507 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesProductPlanDetailService.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesProductPlanDetailService.java @@ -6,6 +6,7 @@ import com.hw.common.core.utils.DateUtils; import com.hw.mes.domain.MesProductPlan; import com.hw.mes.domain.MesProductPlanDetail; import com.hw.mes.domain.vo.MesProductPlanDetailVo; +import org.springframework.transaction.annotation.Transactional; /** * 生产计划明细Service接口 @@ -108,7 +109,8 @@ public interface IMesProductPlanDetailService { * 开始下一生产计划明细 * * @param mesProductPlanDetail 生产计划明细 + * @param startType (0:其他工位,1:五楼装配工位) * @return MesProductPlanDetail */ - public MesProductPlanDetail startNextMesProductPlanDetail(MesProductPlanDetail mesProductPlanDetail); + public MesProductPlanDetail startNextMesProductPlanDetail(MesProductPlanDetail mesProductPlanDetail,String startType); } diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesProductPlanDetailServiceImpl.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesProductPlanDetailServiceImpl.java index 8537b393..420c242d 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesProductPlanDetailServiceImpl.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesProductPlanDetailServiceImpl.java @@ -6,14 +6,13 @@ import com.hw.common.core.utils.DateUtils; import com.hw.common.core.utils.StringUtils; import com.hw.common.core.utils.uuid.Seq; import com.hw.common.security.utils.SecurityUtils; +import com.hw.mes.api.domain.MesBaseBarcodeInfo; +import com.hw.mes.domain.MesMaterialAssignInfo; import com.hw.mes.domain.MesMaterialCheckResult; import com.hw.mes.domain.MesProductPlan; import com.hw.mes.domain.MesProductPlanDetail; import com.hw.mes.domain.vo.MesProductPlanDetailVo; -import com.hw.mes.mapper.MesMaterialBomMapper; -import com.hw.mes.mapper.MesMaterialCheckResultMapper; -import com.hw.mes.mapper.MesProductPlanDetailMapper; -import com.hw.mes.mapper.MesProductPlanMapper; +import com.hw.mes.mapper.*; import com.hw.mes.service.IMesProductPlanDetailService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -42,6 +41,12 @@ public class MesProductPlanDetailServiceImpl implements IMesProductPlanDetailSer @Autowired private MesMaterialCheckResultMapper mesMaterialCheckResultMapper; + @Autowired + private MesBaseBarcodeInfoMapper mesBaseBarcodeInfoMapper; + + @Autowired + private MesMaterialAssignInfoMapper mesMaterialAssignInfoMapper; + /** * 查询生产计划明细 * @@ -61,7 +66,7 @@ public class MesProductPlanDetailServiceImpl implements IMesProductPlanDetailSer */ @Override public List selectMesProductPlanDetailList(MesProductPlanDetail mesProductPlanDetail) { - if(mesProductPlanDetail.getPlanId()==null){ + if (mesProductPlanDetail.getPlanId() == null) { return new ArrayList(); } return mesProductPlanDetailMapper.selectMesProductPlanDetailList(mesProductPlanDetail); @@ -304,11 +309,12 @@ public class MesProductPlanDetailServiceImpl implements IMesProductPlanDetailSer * 开始下一生产计划明细 * * @param mesProductPlanDetail 生产计划明细 + * @param startType (0:其他工位,1:五楼装配工位) * @return MesProductPlanDetail */ @Override @Transactional(rollbackFor = Exception.class) - public MesProductPlanDetail startNextMesProductPlanDetail(MesProductPlanDetail mesProductPlanDetail) { + public MesProductPlanDetail startNextMesProductPlanDetail(MesProductPlanDetail mesProductPlanDetail, String startType) { //根据planId获取最新一条的生产计划明细 MesProductPlanDetail newestPlanDetail = mesProductPlanDetailMapper.selectNewestMesProductPlanDetail(mesProductPlanDetail); //todo:在开始生产计划时,更新生产工单状态、开始时间; @@ -326,6 +332,24 @@ public class MesProductPlanDetailServiceImpl implements IMesProductPlanDetailSer } } + //五楼装配工位要扫码开始 + if (startType.equals(MesConstants.MES_START_TYPE_FIFTH_FLOOR_ASSEMBLE)) { + String materialBarcode = mesProductPlanDetail.getMaterialBarcode(); + MesBaseBarcodeInfo mesBaseBarcodeInfo = mesBaseBarcodeInfoMapper.selectMesBaseBarcodeInfoByBarcodeInfo(materialBarcode); + if (mesBaseBarcodeInfo == null) { + throw new ServiceException("物料条码有误"); + } + +// MesMaterialAssignInfo queryMaterialAssignInfo = new MesMaterialAssignInfo(); +// queryMaterialAssignInfo.setMaterialBarcode(materialBarcode); +// List mesMaterialAssignInfoList = mesMaterialAssignInfoMapper.selectMesMaterialAssignInfoList(queryMaterialAssignInfo); +// if (mesMaterialAssignInfoList == null || mesMaterialAssignInfoList.isEmpty()) { +// throw new ServiceException("此物料条码还没下发到工位"); +// } + + } + + MesProductPlan mesProductPlan = mesProductPlanMapper.selectMesProductPlanByPlanId(mesProductPlanDetail.getPlanId()); //判断生产计划的状态 String planStatus = mesProductPlan.getPlanStatus(); diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesProductPlanServiceImpl.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesProductPlanServiceImpl.java index 7c227f84..d44d9e23 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesProductPlanServiceImpl.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesProductPlanServiceImpl.java @@ -388,10 +388,10 @@ public class MesProductPlanServiceImpl implements IMesProductPlanService { String materialBarcode = mesAssignTaskVo.getMaterialBarcode(); MesBaseBarcodeInfo mesBaseBarcodeInfo = mesBaseBarcodeInfoMapper.selectMesBaseBarcodeInfoByBarcodeInfo(materialBarcode); if (mesBaseBarcodeInfo == null) { - throw new ServiceException("成品条码有误"); + throw new ServiceException("物料条码有误"); } if (StringUtils.isEmpty(mesBaseBarcodeInfo.getBindBarcode())) { - throw new ServiceException("此成品条码未绑定柜体,不能下发"); + throw new ServiceException("此物料条码未绑定柜体,不能下发"); } MesMaterialAssignInfo queryMesMaterialAssignInfo = new MesMaterialAssignInfo(); diff --git a/hw-modules/hw-mes/src/main/resources/mapper/mes/MesMaterialAssignInfoMapper.xml b/hw-modules/hw-mes/src/main/resources/mapper/mes/MesMaterialAssignInfoMapper.xml index 7ad10f82..0c9b5d41 100644 --- a/hw-modules/hw-mes/src/main/resources/mapper/mes/MesMaterialAssignInfoMapper.xml +++ b/hw-modules/hw-mes/src/main/resources/mapper/mes/MesMaterialAssignInfoMapper.xml @@ -22,6 +22,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and material_barcode = #{materialBarcode} and station_id = #{stationId} + order by material_assign_info_id desc