diff --git a/hw-api/hw-api-printer/src/main/java/com/hw/printer/api/domain/vo/PrinterVo.java b/hw-api/hw-api-printer/src/main/java/com/hw/printer/api/domain/vo/PrinterVo.java index 98f25cad..542ddec6 100644 --- a/hw-api/hw-api-printer/src/main/java/com/hw/printer/api/domain/vo/PrinterVo.java +++ b/hw-api/hw-api-printer/src/main/java/com/hw/printer/api/domain/vo/PrinterVo.java @@ -12,5 +12,7 @@ public class PrinterVo { public String printType; - public List> printContents; +// public List> printContents; + + public List printContentVos; } diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesProductPlanController.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesProductPlanController.java index 713207da..1e57d625 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesProductPlanController.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesProductPlanController.java @@ -1,12 +1,15 @@ package com.hw.mes.controller; import java.util.List; -import java.io.IOException; import javax.servlet.http.HttpServletResponse; import com.hw.common.core.constant.MesConstants; +import com.hw.mes.domain.MesBaseRouteProcess; import com.hw.mes.domain.MesProductOrder; -import com.hw.mes.service.IMesProductOrderService; +import com.hw.mes.domain.vo.MesProductPlanDeleteVo; +import com.hw.mes.domain.vo.MesProductPlanEditVo; +import com.hw.mes.service.IMesBaseProcessInfoService; +import com.hw.mes.service.IMesBaseRouteProcessService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -39,6 +42,12 @@ public class MesProductPlanController extends BaseController @Autowired private IMesProductPlanService mesProductPlanService; + @Autowired + private IMesBaseProcessInfoService mesBaseProcessInfoService; + + @Autowired + private IMesBaseRouteProcessService mesBaseRouteProcessService; + /** * 查询生产派工列表 */ @@ -56,10 +65,10 @@ public class MesProductPlanController extends BaseController * @param mesProductPlan * @return */ - @GetMapping("/getProductPlan") - public AjaxResult getProductPlan(MesProductPlan mesProductPlan) + @GetMapping("/selectProductPlans") + public AjaxResult selectProductPlans(MesProductPlan mesProductPlan) { - List list = mesProductPlanService.selectMesProductPlanList(mesProductPlan); + List list = mesProductPlanService.selectMesProductPlanJoinProcessList(mesProductPlan); return success(list); } @@ -135,9 +144,9 @@ public class MesProductPlanController extends BaseController @RequiresPermissions("mes:productplan:add") @Log(title = "生产派工", businessType = BusinessType.INSERT) @PostMapping("/orderAddMesProductPlanList") - public AjaxResult orderAddMesProductPlanList(@RequestBody List mesProductPlanList) + public AjaxResult orderAddMesProductPlanList(@RequestBody MesProductPlanEditVo productPlanEditVo) { - return toAjax(mesProductPlanService.orderAddMesProductPlanList(mesProductPlanList)); + return toAjax(mesProductPlanService.orderAddMesProductPlanList(productPlanEditVo)); } /** @@ -171,4 +180,38 @@ public class MesProductPlanController extends BaseController return toAjax(mesProductPlanService.productOrderRecall(mesProductOrder)); } + + /** + * 获取工序及关联生产人员信息 + * @param mesBaseRouteProcess + * @return + */ + @GetMapping(value = "/getBaseRouteProcesses") + public AjaxResult getBaseRouteProcesses(MesBaseRouteProcess mesBaseRouteProcess) + { + return success(mesBaseRouteProcessService.selectMesBaseRouteProcessJoinList(mesBaseRouteProcess)); + } + + /** + * 获取工艺路线下所有工序及关联生产人员信息 + * @param routeId 工艺路线ID + * @return + */ + @GetMapping(value = "/getProcessUsers/{routeId}") + public AjaxResult getProcessUsers(@PathVariable("routeId") Long routeId) + { + return success(mesBaseProcessInfoService.getProcessUsersByRouteId(routeId)); + } + + + /** + * 根据派工单号删除生产计划 + * @param mesProductPlanDeleteVo 生产计划删除VO对象 + * @return + */ + @PostMapping(value = "/deleteProductPlansByDispatchCode") + public AjaxResult deleteProductPlansByDispatchCode(@RequestBody MesProductPlanDeleteVo mesProductPlanDeleteVo) + { + return success(mesProductPlanService.deleteProductPlansByDispatchCode(mesProductPlanDeleteVo)); + } } diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/MesBaseProcessInfo.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/MesBaseProcessInfo.java index 3f33c5c5..6b0de3a6 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/MesBaseProcessInfo.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/MesBaseProcessInfo.java @@ -51,6 +51,8 @@ public class MesBaseProcessInfo extends BaseEntity { @Excel(name = "激活标识") private String activeFlag; + private Long processOrder; + /** * 工序关联产线信息 */ @@ -123,6 +125,14 @@ public class MesBaseProcessInfo extends BaseEntity { this.mesBaseProcessProdlineList = mesBaseProcessProdlineList; } + public Long getProcessOrder() { + return processOrder; + } + + public void setProcessOrder(Long processOrder) { + this.processOrder = processOrder; + } + @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/MesBaseProcessUser.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/MesBaseProcessUser.java index 83a9b4c3..23576ad8 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/MesBaseProcessUser.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/MesBaseProcessUser.java @@ -25,6 +25,9 @@ public class MesBaseProcessUser extends BaseEntity @Excel(name = "用户名称") private String userName; + private Long routeId; + + public void setProcessId(Long processId) { this.processId = processId; @@ -53,6 +56,14 @@ public class MesBaseProcessUser extends BaseEntity return userName; } + public Long getRouteId() { + return routeId; + } + + public void setRouteId(Long routeId) { + this.routeId = routeId; + } + @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/MesBaseRouteProcess.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/MesBaseRouteProcess.java index 6fa724f1..2b404b8c 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/MesBaseRouteProcess.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/MesBaseRouteProcess.java @@ -37,6 +37,13 @@ public class MesBaseRouteProcess extends BaseEntity { @Excel(name = "工艺路线顺序") private Long processOrder; + private String processName; + + private String processType; + + private Long productionTime; + + public void setRouteProcessId(Long routeProcessId) { this.routeProcessId = routeProcessId; } @@ -69,6 +76,30 @@ public class MesBaseRouteProcess extends BaseEntity { return processOrder; } + public String getProcessName() { + return processName; + } + + public void setProcessName(String processName) { + this.processName = processName; + } + + public String getProcessType() { + return processType; + } + + public void setProcessType(String processType) { + this.processType = processType; + } + + public Long getProductionTime() { + return productionTime; + } + + public void setProductionTime(Long productionTime) { + this.productionTime = productionTime; + } + @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/MesProductPlan.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/MesProductPlan.java index 524c223b..8b01dd68 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/MesProductPlan.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/MesProductPlan.java @@ -3,6 +3,8 @@ package com.hw.mes.domain; import java.math.BigDecimal; import java.util.List; import java.util.Date; +import java.util.Objects; + import com.fasterxml.jackson.annotation.JsonFormat; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; @@ -94,6 +96,9 @@ public class MesProductPlan extends BaseEntity @Excel(name = "用户ID") private Long userId; + private String userName; + + /** 单位生产时间(单位:s) */ @Excel(name = "单位生产时间(单位:s)") private Long productionTime; @@ -171,6 +176,8 @@ public class MesProductPlan extends BaseEntity private BigDecimal dispatchedAmount; + private String processType; + public Long getSaleOrderId() { return saleOrderId; @@ -345,6 +352,15 @@ public class MesProductPlan extends BaseEntity { return userId; } + + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + public void setProductionTime(Long productionTime) { this.productionTime = productionTime; @@ -479,6 +495,14 @@ public class MesProductPlan extends BaseEntity this.materialName = materialName; } + public String getProcessType() { + return processType; + } + + public void setProcessType(String processType) { + this.processType = processType; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) @@ -511,4 +535,17 @@ public class MesProductPlan extends BaseEntity .append("mesProductPlanDetailList", getMesProductPlanDetailList()) .toString(); } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + MesProductPlan that = (MesProductPlan) o; + return Objects.equals(planId, that.planId); + } + + @Override + public int hashCode() { + return Objects.hash(planId); + } } diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/vo/MesProductPlanDeleteVo.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/vo/MesProductPlanDeleteVo.java new file mode 100644 index 00000000..f677aaaf --- /dev/null +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/vo/MesProductPlanDeleteVo.java @@ -0,0 +1,33 @@ +package com.hw.mes.domain.vo; + +import com.hw.mes.domain.MesProductPlan; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.math.BigDecimal; +import java.util.List; + +/** + * @Description: 生产派工删除VO对象 + * @ClassName: ProductPlanDeleteVo + * @Author : xins + * @Date :2024-07-12 15:04 + * @Version :1.0 + */ +@Data +public class MesProductPlanDeleteVo { + + //派工数量 + @NotNull(message = "生产工单ID必须输入") + private Long productOrderId; + + //派工单号 + @NotBlank(message = "派工单号必须输入") + private String dispatchCode; + + //派工数量 + @NotNull(message = "派工数量必须输入") + private BigDecimal dispatchAmount; + +} diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/vo/MesProductPlanEditVo.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/vo/MesProductPlanEditVo.java new file mode 100644 index 00000000..1343fcf1 --- /dev/null +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/vo/MesProductPlanEditVo.java @@ -0,0 +1,34 @@ +package com.hw.mes.domain.vo; + +import com.hw.mes.domain.MesProductPlan; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.math.BigDecimal; +import java.util.List; + +/** + * @Description: 生产派工VO对象 + * @ClassName: ProductPlanEditVo + * @Author : xins + * @Date :2024-07-11 10:18 + * @Version :1.0 + */ +@Data +public class MesProductPlanEditVo { + + //生产工单ID + @NotNull(message = "生产工单Id必须输入") + private Long productOrderId; + + //此次生产派工数量 + private BigDecimal dispatchAmount; + + //保存的生产计划 + @NotNull(message = "没有修改的生产派工提交") + private List mesProductPlanList; + + //待删除的生产计划ID + private Long[] toDeletedPlanIds; + +} diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/MesBaseProcessUserMapper.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/MesBaseProcessUserMapper.java new file mode 100644 index 00000000..8e796788 --- /dev/null +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/MesBaseProcessUserMapper.java @@ -0,0 +1,61 @@ +package com.hw.mes.mapper; + +import java.util.List; +import com.hw.mes.domain.MesBaseProcessUser; + +/** + * 工序关联人员Mapper接口 + * + * @author xins + * @date 2024-07-09 + */ +public interface MesBaseProcessUserMapper +{ + /** + * 查询工序关联人员 + * + * @param processId 工序关联人员主键 + * @return 工序关联人员 + */ + public MesBaseProcessUser selectMesBaseProcessUserByProcessId(Long processId); + + /** + * 查询工序关联人员列表 + * + * @param mesBaseProcessUser 工序关联人员 + * @return 工序关联人员集合 + */ + public List selectMesBaseProcessUserList(MesBaseProcessUser mesBaseProcessUser); + + /** + * 新增工序关联人员 + * + * @param mesBaseProcessUser 工序关联人员 + * @return 结果 + */ + public int insertMesBaseProcessUser(MesBaseProcessUser mesBaseProcessUser); + + /** + * 修改工序关联人员 + * + * @param mesBaseProcessUser 工序关联人员 + * @return 结果 + */ + public int updateMesBaseProcessUser(MesBaseProcessUser mesBaseProcessUser); + + /** + * 删除工序关联人员 + * + * @param processId 工序关联人员主键 + * @return 结果 + */ + public int deleteMesBaseProcessUserByProcessId(Long processId); + + /** + * 批量删除工序关联人员 + * + * @param processIds 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteMesBaseProcessUserByProcessIds(Long[] processIds); +} diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/MesBaseRouteProcessMapper.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/MesBaseRouteProcessMapper.java index 0087f739..bc7d7dad 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/MesBaseRouteProcessMapper.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/MesBaseRouteProcessMapper.java @@ -58,4 +58,14 @@ public interface MesBaseRouteProcessMapper * @return 结果 */ public int deleteMesBaseRouteProcessByRouteProcessIds(Long[] routeProcessIds); + + + /** + * 查询工艺路线组成信息列表,Join mes_base_process_info + * + * @param mesBaseRouteProcess 工艺路线组成信息 + * @return 工艺路线组成信息集合 + */ + public List selectMesBaseRouteProcessJoinList(MesBaseRouteProcess mesBaseRouteProcess); + } diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/MesProductPlanMapper.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/MesProductPlanMapper.java index d1d13a55..6b70e924 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/MesProductPlanMapper.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/MesProductPlanMapper.java @@ -104,4 +104,26 @@ public interface MesProductPlanMapper * @return 生产派工 */ public MesProductPlan selectOnlyMesProductPlanByPlanCode(String planCode); + + + + + + /** + * 查询生产派工列表,Join process + * + * @param mesProductPlan 生产派工 + * @return 生产派工集合 + */ + public List selectMesProductPlanJoinProcessList(MesProductPlan mesProductPlan); + + + /** + * 通过生产派工单号删除生产计划明细信息 + * + * @param dispatchCode 生产派工单号 + * @return 结果 + */ + public int deleteMesProductPlanByDispatchCode(String dispatchCode); + } diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesBaseBarcodeInfoService.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesBaseBarcodeInfoService.java index 29efad25..718efbcd 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesBaseBarcodeInfoService.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesBaseBarcodeInfoService.java @@ -53,6 +53,12 @@ public interface IMesBaseBarcodeInfoService */ public int generateNoPurchaseRawBarcode(MesBaseBarcodeInfo mesBaseBarcodeInfo); + /** + * 生成固定条码信息 + * @param mesBaseBarcodeInfo + */ + public int generateRegularRawBarcode(MesBaseBarcodeInfo mesBaseBarcodeInfo); + /** * 修改条码信息 * diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesBaseProcessInfoService.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesBaseProcessInfoService.java index 99e40d91..dfd324c3 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesBaseProcessInfoService.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesBaseProcessInfoService.java @@ -2,6 +2,8 @@ package com.hw.mes.service; import java.util.List; import com.hw.mes.domain.MesBaseProcessInfo; +import com.hw.mes.domain.MesBaseProcessUser; +import org.springframework.transaction.annotation.Transactional; /** * 工序信息Service接口 @@ -73,4 +75,12 @@ public interface IMesBaseProcessInfoService * @return 结果 */ public int deleteMesBaseProcessInfoByProcessId(Long processId); + + /** + * 根据工艺路线ID,获取所有工序关联人员信息 + * + * @param routeId + */ + public List getProcessUsersByRouteId(Long routeId); + } diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesBaseRouteProcessService.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesBaseRouteProcessService.java index d8702172..0d2a4e48 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesBaseRouteProcessService.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesBaseRouteProcessService.java @@ -58,4 +58,13 @@ public interface IMesBaseRouteProcessService * @return 结果 */ public int deleteMesBaseRouteProcessByRouteProcessId(Long routeProcessId); + + + /** + * 查询工艺路线组成信息列表,Join mes_base_process + * + * @param mesBaseRouteProcess 工艺路线组成信息 + * @return 工艺路线组成信息 + */ + public List selectMesBaseRouteProcessJoinList(MesBaseRouteProcess mesBaseRouteProcess); } diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesProductPlanService.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesProductPlanService.java index 539e3a73..1b4ca0fe 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesProductPlanService.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesProductPlanService.java @@ -9,6 +9,8 @@ import com.hw.mes.domain.MesProductOrder; import com.hw.mes.domain.MesProductPlan; import com.hw.mes.domain.vo.MesAssignTaskVo; import com.hw.mes.domain.vo.MesMaterialScanVo; +import com.hw.mes.domain.vo.MesProductPlanDeleteVo; +import com.hw.mes.domain.vo.MesProductPlanEditVo; import org.springframework.transaction.annotation.Transactional; /** @@ -35,6 +37,16 @@ public interface IMesProductPlanService */ public List selectMesProductPlanList(MesProductPlan mesProductPlan); + + /** + * 查询生产派工列表,join process + * + * @param mesProductPlan 生产派工 + * @return 生产派工 + */ + public List selectMesProductPlanJoinProcessList(MesProductPlan mesProductPlan); + + /** * 新增生产派工 * @@ -86,10 +98,10 @@ public interface IMesProductPlanService /** * 生产工单新增生产派工List * - * @param mesProductPlanList 生产派工 - * @return 结果 + * @param mesProductPlanEditVo 生产派工VO对象 + * @return */ - public int orderAddMesProductPlanList(List mesProductPlanList); + public int orderAddMesProductPlanList(MesProductPlanEditVo mesProductPlanEditVo); /** @@ -137,4 +149,13 @@ public interface IMesProductPlanService * @return */ List> selectMaterialInstallationCircumstance(Map hashMap); + + + /** + * 删除生产计划信息 + * + * @param mesProductPlanDeleteVo 生产计划删除对象VO + * @return 结果 + */ + public int deleteProductPlansByDispatchCode(MesProductPlanDeleteVo mesProductPlanDeleteVo); } diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesBaseProcessInfoServiceImpl.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesBaseProcessInfoServiceImpl.java index e22cfd47..c8ce662d 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesBaseProcessInfoServiceImpl.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesBaseProcessInfoServiceImpl.java @@ -5,38 +5,45 @@ import java.util.List; import com.hw.common.core.exception.ServiceException; import com.hw.common.core.utils.DateUtils; import com.hw.common.security.utils.SecurityUtils; -import com.hw.mes.domain.MesBaseProcessUser; +import com.hw.mes.domain.*; +import com.hw.mes.mapper.MesBaseProcessUserMapper; +import com.hw.mes.mapper.MesBaseRouteProcessMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; + import java.util.ArrayList; + import com.hw.common.core.utils.StringUtils; import org.springframework.transaction.annotation.Transactional; -import com.hw.mes.domain.MesBaseProcessProdline; import com.hw.mes.mapper.MesBaseProcessInfoMapper; -import com.hw.mes.domain.MesBaseProcessInfo; import com.hw.mes.service.IMesBaseProcessInfoService; /** * 工序信息Service业务层处理 - * + * * @author Yinq * @date 2024-01-24 */ @Service -public class MesBaseProcessInfoServiceImpl implements IMesBaseProcessInfoService -{ +public class MesBaseProcessInfoServiceImpl implements IMesBaseProcessInfoService { @Autowired private MesBaseProcessInfoMapper mesBaseProcessInfoMapper; + @Autowired + private MesBaseRouteProcessMapper mesBaseRouteProcessMapper; + + @Autowired + private MesBaseProcessUserMapper mesBaseProcessUserMapper; + + /** * 查询工序信息 - * + * * @param processId 工序信息主键 * @return 工序信息 */ @Override - public MesBaseProcessInfo selectMesBaseProcessInfoByProcessId(Long processId) - { + public MesBaseProcessInfo selectMesBaseProcessInfoByProcessId(Long processId) { return mesBaseProcessInfoMapper.selectMesBaseProcessInfoByProcessId(processId); } @@ -47,33 +54,30 @@ public class MesBaseProcessInfoServiceImpl implements IMesBaseProcessInfoService * @return 工序信息 */ @Override - public MesBaseProcessInfo selectMesBaseProcessInfoUserByProcessId(Long processId) - { + public MesBaseProcessInfo selectMesBaseProcessInfoUserByProcessId(Long processId) { return mesBaseProcessInfoMapper.selectMesBaseProcessInfoUserByProcessId(processId); } /** * 查询工序信息列表 - * + * * @param mesBaseProcessInfo 工序信息 * @return 工序信息 */ @Override - public List selectMesBaseProcessInfoList(MesBaseProcessInfo mesBaseProcessInfo) - { + public List selectMesBaseProcessInfoList(MesBaseProcessInfo mesBaseProcessInfo) { return mesBaseProcessInfoMapper.selectMesBaseProcessInfoList(mesBaseProcessInfo); } /** * 新增工序信息 - * + * * @param mesBaseProcessInfo 工序信息 * @return 结果 */ @Transactional @Override - public int insertMesBaseProcessInfo(MesBaseProcessInfo mesBaseProcessInfo) - { + public int insertMesBaseProcessInfo(MesBaseProcessInfo mesBaseProcessInfo) { mesBaseProcessInfo.setCreateTime(DateUtils.getNowDate()); int rows = mesBaseProcessInfoMapper.insertMesBaseProcessInfo(mesBaseProcessInfo); //insertMesBaseProcessProdline(mesBaseProcessInfo); @@ -82,14 +86,13 @@ public class MesBaseProcessInfoServiceImpl implements IMesBaseProcessInfoService /** * 修改工序信息 - * + * * @param mesBaseProcessInfo 工序信息 * @return 结果 */ @Transactional @Override - public int updateMesBaseProcessInfo(MesBaseProcessInfo mesBaseProcessInfo) - { + public int updateMesBaseProcessInfo(MesBaseProcessInfo mesBaseProcessInfo) { mesBaseProcessInfo.setUpdateTime(DateUtils.getNowDate()); mesBaseProcessInfoMapper.deleteMesBaseProcessProdlineByProcessId(mesBaseProcessInfo.getProcessId()); try { @@ -108,8 +111,7 @@ public class MesBaseProcessInfoServiceImpl implements IMesBaseProcessInfoService */ @Transactional @Override - public int updateMesBaseProcessInfoUser(MesBaseProcessInfo mesBaseProcessInfo) - { + public int updateMesBaseProcessInfoUser(MesBaseProcessInfo mesBaseProcessInfo) { mesBaseProcessInfo.setUpdateTime(DateUtils.getNowDate()); mesBaseProcessInfoMapper.deleteMesBaseProcessUserByProcessId(mesBaseProcessInfo.getProcessId()); try { @@ -122,53 +124,47 @@ public class MesBaseProcessInfoServiceImpl implements IMesBaseProcessInfoService /** * 批量删除工序信息 - * + * * @param processIds 需要删除的工序信息主键 * @return 结果 */ @Transactional @Override - public int deleteMesBaseProcessInfoByProcessIds(Long[] processIds) - { + public int deleteMesBaseProcessInfoByProcessIds(Long[] processIds) { mesBaseProcessInfoMapper.deleteMesBaseProcessProdlineByProcessIds(processIds); return mesBaseProcessInfoMapper.deleteMesBaseProcessInfoByProcessIds(processIds); } /** * 删除工序信息信息 - * + * * @param processId 工序信息主键 * @return 结果 */ @Transactional @Override - public int deleteMesBaseProcessInfoByProcessId(Long processId) - { + public int deleteMesBaseProcessInfoByProcessId(Long processId) { mesBaseProcessInfoMapper.deleteMesBaseProcessProdlineByProcessId(processId); return mesBaseProcessInfoMapper.deleteMesBaseProcessInfoByProcessId(processId); } /** * 新增工序关联产线信息 - * + * * @param mesBaseProcessInfo 工序信息对象 */ - public void insertMesBaseProcessProdline(MesBaseProcessInfo mesBaseProcessInfo) - { + public void insertMesBaseProcessProdline(MesBaseProcessInfo mesBaseProcessInfo) { List mesBaseProcessProdlineList = mesBaseProcessInfo.getMesBaseProcessProdlineList(); Long processId = mesBaseProcessInfo.getProcessId(); - if (StringUtils.isNotNull(mesBaseProcessProdlineList)) - { + if (StringUtils.isNotNull(mesBaseProcessProdlineList)) { List list = new ArrayList(); - for (MesBaseProcessProdline mesBaseProcessProdline : mesBaseProcessProdlineList) - { + for (MesBaseProcessProdline mesBaseProcessProdline : mesBaseProcessProdlineList) { mesBaseProcessProdline.setProcessId(processId); mesBaseProcessProdline.setCreateBy(SecurityUtils.getUsername()); mesBaseProcessProdline.setCreateTime(DateUtils.getNowDate()); list.add(mesBaseProcessProdline); } - if (list.size() > 0) - { + if (list.size() > 0) { mesBaseProcessInfoMapper.batchMesBaseProcessProdline(list); } } @@ -179,22 +175,34 @@ public class MesBaseProcessInfoServiceImpl implements IMesBaseProcessInfoService * * @param mesBaseProcessInfo 工序信息对象 */ - public void insertMesBaseProcessUser(MesBaseProcessInfo mesBaseProcessInfo) - { + public void insertMesBaseProcessUser(MesBaseProcessInfo mesBaseProcessInfo) { List mesBaseProcessUserList = mesBaseProcessInfo.getMesBaseProcessUserList(); Long processId = mesBaseProcessInfo.getProcessId(); - if (StringUtils.isNotNull(mesBaseProcessUserList)) - { + if (StringUtils.isNotNull(mesBaseProcessUserList)) { List list = new ArrayList<>(); - for (MesBaseProcessUser mesBaseProcessUser : mesBaseProcessUserList) - { + for (MesBaseProcessUser mesBaseProcessUser : mesBaseProcessUserList) { mesBaseProcessUser.setProcessId(processId); list.add(mesBaseProcessUser); } - if (list.size() > 0) - { + if (list.size() > 0) { mesBaseProcessInfoMapper.batchMesBaseProcessUser(list); } } } + + + /** + * 根据工艺路线ID,获取所有工序关联人员信息 + * + * @param routeId + */ + @Override + public List getProcessUsersByRouteId(Long routeId) { + MesBaseProcessUser queryBaseProcessUser = new MesBaseProcessUser(); + queryBaseProcessUser.setRouteId(routeId); + + return mesBaseProcessUserMapper.selectMesBaseProcessUserList(queryBaseProcessUser); + } + + } diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesBaseRouteProcessServiceImpl.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesBaseRouteProcessServiceImpl.java index 12f48cdd..93328981 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesBaseRouteProcessServiceImpl.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesBaseRouteProcessServiceImpl.java @@ -93,4 +93,18 @@ public class MesBaseRouteProcessServiceImpl implements IMesBaseRouteProcessServi { return mesBaseRouteProcessMapper.deleteMesBaseRouteProcessByRouteProcessId(routeProcessId); } + + + /** + * 查询工艺路线组成信息列表,Join mes_base_process + * + * @param mesBaseRouteProcess 工艺路线组成信息 + * @return 工艺路线组成信息 + */ + @Override + public List selectMesBaseRouteProcessJoinList(MesBaseRouteProcess mesBaseRouteProcess) + { + return mesBaseRouteProcessMapper.selectMesBaseRouteProcessJoinList(mesBaseRouteProcess); + } + } 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 1ea9163c..7f79c2cc 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 @@ -17,6 +17,8 @@ import com.hw.mes.config.MesConfig; import com.hw.mes.domain.*; import com.hw.mes.domain.vo.MesAssignTaskVo; import com.hw.mes.domain.vo.MesMaterialScanVo; +import com.hw.mes.domain.vo.MesProductPlanDeleteVo; +import com.hw.mes.domain.vo.MesProductPlanEditVo; import com.hw.mes.mapper.*; import com.hw.mes.service.IMesBaseAttachInfoService; import com.hw.mes.service.IMesProductOrderService; @@ -63,6 +65,9 @@ public class MesProductPlanServiceImpl implements IMesProductPlanService { @Autowired private MesMaterialAssignInfoMapper mesMaterialAssignInfoMapper; + @Autowired + private MesProductOrderMapper mesProductOrderMapper; + @Autowired private MesConfig mesConfig; @@ -88,6 +93,32 @@ public class MesProductPlanServiceImpl implements IMesProductPlanService { return mesProductPlanMapper.selectMesProductPlanList(mesProductPlan); } + + /** + * 查询生产派工列表,join process + * + * @param mesProductPlan 生产派工 + * @return 生产派工 + */ + @Override + public List selectMesProductPlanJoinProcessList(MesProductPlan mesProductPlan) { + return mesProductPlanMapper.selectMesProductPlanJoinProcessList(mesProductPlan); + } + + + /** + * 查询生产派工列表 + * + * @param mesProductPlan 生产派工 + * @return 生产派工 + */ +// @Override +// public List selectMesProductPlanGroupList(MesProductPlan mesProductPlan) { +// List productPlans = mesProductPlanMapper.selectMesProductPlanList(mesProductPlan); +// return ""; +// } + + /** * 新增生产派工 * @@ -98,24 +129,12 @@ public class MesProductPlanServiceImpl implements IMesProductPlanService { @Override public int insertMesProductPlan(MesProductPlan mesProductPlan) { if (mesProductPlan.getDispatchAmount().compareTo(BigDecimal.ZERO) > 0) { - if (mesProductPlan.getProcessId().equals(42L)) {//折弯工序,计划数量可以跟派工数量不相同 - if (mesProductPlan.getPlanAmount() == null) { - throw new ServiceException("四楼折弯工序请输入计划数量"); - } - } else {//非折弯工序,计划数量需与派工数量相同 - mesProductPlan.setPlanAmount(mesProductPlan.getDispatchAmount()); - } - + mesProductPlan.setPlanAmount(mesProductPlan.getDispatchAmount()); mesProductPlan.setCreateBy(SecurityUtils.getUsername()); mesProductPlan.setCreateTime(DateUtils.getNowDate()); mesProductPlan.setPlanCode(Seq.getId(Seq.planCodeSeqType, Seq.planCodeCode)); int rows = mesProductPlanMapper.insertMesProductPlan(mesProductPlan); - //更新工单已派工数量 - MesProductOrder mesProductOrder = new MesProductOrder(); - mesProductOrder.setProductOrderId(mesProductPlan.getProductOrderId()); - mesProductOrder.setDispatchAmount(mesProductPlan.getDispatchedAmount()); - mesProductOrderService.updateMesProductOrder(mesProductOrder); -// insertMesProductPlanDetail(mesProductPlan); + return rows; } return 0; @@ -197,15 +216,55 @@ public class MesProductPlanServiceImpl implements IMesProductPlanService { /** * 生产工单新增生产派工List * - * @param mesProductPlanList 生产派工 + * @param mesProductPlanEditVo 生产派工VO对象 * @return */ @Override @Transactional(rollbackFor = Exception.class) - public int orderAddMesProductPlanList(List mesProductPlanList) { + public int orderAddMesProductPlanList(MesProductPlanEditVo mesProductPlanEditVo) { + String userName = SecurityUtils.getUsername(); + Date currentDate = new Date(); + List mesProductPlanList = mesProductPlanEditVo.getMesProductPlanList(); + Long[] toDeletedPlanIds = mesProductPlanEditVo.getToDeletedPlanIds(); + if (toDeletedPlanIds != null && toDeletedPlanIds.length > 0) { + for (Long toDeletedPlanId : toDeletedPlanIds) { + MesProductPlan toDeletedProductPlan = mesProductPlanMapper.selectMesProductPlanByPlanId(toDeletedPlanId); + if (!toDeletedProductPlan.getPlanStatus().equals(MesConstants.MES_PRODUCT_PLAN_STATUS_TO_DISPATCH) + && !toDeletedProductPlan.getPlanStatus().equals(MesConstants.MES_PRODUCT_PLAN_STATUS_DISPATCHED)) { + throw new ServiceException("有派工已经开始,不能删除"); + } + } + mesProductPlanMapper.deleteMesProductPlanByPlanIds(toDeletedPlanIds); + } + for (MesProductPlan mesProductPlan : mesProductPlanList) { - this.insertMesProductPlan(mesProductPlan); + Long planId = mesProductPlan.getPlanId(); + if (planId != null) { + mesProductPlan.setUpdateBy(userName); + mesProductPlan.setUpdateTime(currentDate); + mesProductPlanMapper.updateMesProductPlan(mesProductPlan); + } else { + mesProductPlan.setPlanAmount(mesProductPlan.getDispatchAmount()); + mesProductPlan.setCreateBy(SecurityUtils.getUsername()); + mesProductPlan.setCreateTime(DateUtils.getNowDate()); + mesProductPlan.setPlanCode(Seq.getId(Seq.planCodeSeqType, Seq.planCodeCode)); + mesProductPlanMapper.insertMesProductPlan(mesProductPlan); + } + } + + //更新工单已派工数量 + MesProductOrder mesProductOrder = mesProductOrderMapper.selectMesProductOrderByProductOrderId(mesProductPlanEditVo.getProductOrderId()); + BigDecimal dispatchedAmount = mesProductOrder.getDispatchAmount() == null ? BigDecimal.ZERO : mesProductOrder.getDispatchAmount(); + BigDecimal planAmount = mesProductOrder.getPlanAmount(); + BigDecimal updateDispatchAmount = dispatchedAmount.add(mesProductPlanEditVo.getDispatchAmount()); + if (updateDispatchAmount.compareTo(planAmount) > 0) { + throw new ServiceException("派工数量大于计划数量,请重新派工"); } + + mesProductOrder.setDispatchAmount(updateDispatchAmount); + mesProductOrder.setUpdateTime(currentDate); + mesProductOrder.setUpdateBy(userName); + mesProductOrderService.updateMesProductOrder(mesProductOrder); return 1; } @@ -361,7 +420,7 @@ public class MesProductPlanServiceImpl implements IMesProductPlanService { } String barcodeType = baseBarcodeInfo.getBarcodeType(); - if(!barcodeType.equals(MesConstants.MES_BARCODE_TYPE_RAW)){ + if (!barcodeType.equals(MesConstants.MES_BARCODE_TYPE_RAW)) { throw new ServiceException("此条码为非原材料条码"); } @@ -498,6 +557,42 @@ public class MesProductPlanServiceImpl implements IMesProductPlanService { } + /** + * 删除生产计划信息 + * + * @param mesProductPlanDeleteVo 生产计划删除对象VO + * @return 结果 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public int deleteProductPlansByDispatchCode(MesProductPlanDeleteVo mesProductPlanDeleteVo) { + String dispatchCode = mesProductPlanDeleteVo.getDispatchCode(); + BigDecimal dispatchAmount = mesProductPlanDeleteVo.getDispatchAmount(); + MesProductPlan queryProductPlan = new MesProductPlan(); + queryProductPlan.setDispatchCode(dispatchCode); + List mesProductPlans = mesProductPlanMapper.selectMesProductPlanList(queryProductPlan); + if (mesProductPlans == null || mesProductPlans.isEmpty()) { + throw new ServiceException("此派工单已经删除"); + } + List filterProductPlans = mesProductPlans.stream().filter + (mesProductPlan -> !mesProductPlan.getPlanStatus().equals(MesConstants.MES_PRODUCT_PLAN_STATUS_TO_DISPATCH) && + !mesProductPlan.getPlanStatus().equals(MesConstants.MES_PRODUCT_PLAN_STATUS_DISPATCHED)).collect(Collectors.toList()); + if (!filterProductPlans.isEmpty()) { + throw new ServiceException("此派工单已经有工序开始,不能删除"); + } + + mesProductPlanMapper.deleteMesProductPlanByDispatchCode(dispatchCode); + + MesProductOrder mesProductOrder = mesProductOrderService.selectMesProductOrderByProductOrderId(mesProductPlanDeleteVo.getProductOrderId()); + BigDecimal dispatchedAmount = mesProductOrder.getDispatchAmount(); + mesProductOrder.setDispatchAmount(dispatchedAmount.subtract(dispatchAmount)); + mesProductOrder.setUpdateBy(SecurityUtils.getUsername()); + mesProductOrder.setUpdateTime(new Date()); + + return mesProductOrderMapper.updateMesProductOrder(mesProductOrder); + } + + // public String executeAssignTaskResultTask() { // ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor(); // boolean running = true; diff --git a/hw-modules/hw-mes/src/main/resources/mapper/mes/MesBaseBarcodeInfoMapper.xml b/hw-modules/hw-mes/src/main/resources/mapper/mes/MesBaseBarcodeInfoMapper.xml index 4a28148a..9ca91279 100644 --- a/hw-modules/hw-mes/src/main/resources/mapper/mes/MesBaseBarcodeInfoMapper.xml +++ b/hw-modules/hw-mes/src/main/resources/mapper/mes/MesBaseBarcodeInfoMapper.xml @@ -119,6 +119,7 @@ and bbi.bind_time = #{bindTime} and bbi.update_by = #{updateBy} and bbi.update_time = #{updateTime} + and bbi.barcode_type in (${barcodeTypeStr}) order by bbi.barcode_id desc diff --git a/hw-modules/hw-mes/src/main/resources/mapper/mes/MesBaseProcessUserMapper.xml b/hw-modules/hw-mes/src/main/resources/mapper/mes/MesBaseProcessUserMapper.xml new file mode 100644 index 00000000..980a7d5b --- /dev/null +++ b/hw-modules/hw-mes/src/main/resources/mapper/mes/MesBaseProcessUserMapper.xml @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + select process_id, user_id, user_name, create_by, create_time from mes_base_process_user mbpu + + + + + + + + insert into mes_base_process_user + + process_id, + user_id, + user_name, + create_by, + create_time, + + + #{processId}, + #{userId}, + #{userName}, + #{createBy}, + #{createTime}, + + + + + update mes_base_process_user + + user_id = #{userId}, + user_name = #{userName}, + create_by = #{createBy}, + create_time = #{createTime}, + + where process_id = #{processId} + + + + delete from mes_base_process_user where process_id = #{processId} + + + + delete from mes_base_process_user where process_id in + + #{processId} + + + \ No newline at end of file diff --git a/hw-modules/hw-mes/src/main/resources/mapper/mes/MesBaseRouteProcessMapper.xml b/hw-modules/hw-mes/src/main/resources/mapper/mes/MesBaseRouteProcessMapper.xml index 2d6dd681..b4961ad4 100644 --- a/hw-modules/hw-mes/src/main/resources/mapper/mes/MesBaseRouteProcessMapper.xml +++ b/hw-modules/hw-mes/src/main/resources/mapper/mes/MesBaseRouteProcessMapper.xml @@ -14,6 +14,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + @@ -88,4 +92,22 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{routeProcessId} + + + + + + + \ No newline at end of file diff --git a/hw-modules/hw-mes/src/main/resources/mapper/mes/MesProductPlanMapper.xml b/hw-modules/hw-mes/src/main/resources/mapper/mes/MesProductPlanMapper.xml index 173c3409..ac357dcc 100644 --- a/hw-modules/hw-mes/src/main/resources/mapper/mes/MesProductPlanMapper.xml +++ b/hw-modules/hw-mes/src/main/resources/mapper/mes/MesProductPlanMapper.xml @@ -21,6 +21,7 @@ + @@ -41,6 +42,7 @@ + @@ -381,4 +383,76 @@ where a.plan_code = #{planCode} + + + + + + + + + + + delete + from mes_product_plan + where dispatch_code = #{dispatchCode} + + diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsRawOutstockServiceImpl.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsRawOutstockServiceImpl.java index 62c32eb7..2cc84f5a 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsRawOutstockServiceImpl.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsRawOutstockServiceImpl.java @@ -481,7 +481,8 @@ public class WmsRawOutstockServiceImpl implements IWmsRawOutstockService { /** * 申请领料 - * 在申请领料时,不管是否需要审核,都需要锁定库位和修改占用数量(但审核不通过的话需要解锁库位和更新占用数量) + * 在申请领料时,不管是否需要审核,都需要锁定库位和修改stock_total的占用数量(但审核不通过的话需要解锁库位和更新占用数量) + * 在实际出库时更新了wms_raw_stock的总数量后,stock_total的总数量和占用数量都会减去wms_raw_stock的总数量,wms_raw_stock先不关心占用数量 * 申请时没有保存wms_raw_outstock_detail表,没有指定库位 * * @param wmsRawOutstock 原材料出库记录 @@ -941,6 +942,9 @@ public class WmsRawOutstockServiceImpl implements IWmsRawOutstockService { /**todo:需要最终确认一下。在申请领柜体后,wcs会调度agv将对应库位的柜体运输到柜体拆分区,然后更新rawoutstock的materialbatch为其物料条码*/ String bindBarcode = baseBarcodeInfo.getBindBarcode(); + if (StringUtils.isEmpty(bindBarcode)) { + throw new ServiceException("此柜体还未绑定"); + } WmsRawOutstock queryRawOutstock = new WmsRawOutstock(); queryRawOutstock.setMaterialBatch(bindBarcode); List wmsRawOutstocks = wmsRawOutstockMapper.selectWmsRawOutstockList(queryRawOutstock); diff --git a/hw-ui/src/api/mes/barcode.js b/hw-ui/src/api/mes/barcode.js index 706a6012..66044741 100644 --- a/hw-ui/src/api/mes/barcode.js +++ b/hw-ui/src/api/mes/barcode.js @@ -138,3 +138,13 @@ export function addNoPurchaseBarcode(data) { data: data }) } + + +// 新增固定原材料条码信息 +export function addRegularBarcode(data) { + return request({ + url: '/mes/barcode/addRegularBarcode', + method: 'post', + data: data + }) +} diff --git a/hw-ui/src/api/mes/productplan.js b/hw-ui/src/api/mes/productplan.js index 2529d424..af6d2481 100644 --- a/hw-ui/src/api/mes/productplan.js +++ b/hw-ui/src/api/mes/productplan.js @@ -61,9 +61,9 @@ export function orderAddMesProductPlanList(data) { } // 查询生产派工列表 -export function getProductPlan(query) { +export function selectProductPlans(query) { return request({ - url: '/mes/productplan/getProductPlan', + url: '/mes/productplan/selectProductPlans', method: 'get', params: query }) @@ -96,3 +96,32 @@ export function getDispatchSOPAttachList(planId) { method: 'get' }) } + +// 获取工艺路线的所有工艺步骤 +export function getBaseRouteProcesses(query) { + return request({ + url: '/mes/productplan/getBaseRouteProcesses' , + method: 'get', + params: query + }) +} + + + +// 获取工艺路线所有工序及关联生产人员信息 +export function getProcessUsers(routeId) { + return request({ + url: '/mes/productplan/getProcessUsers/' + routeId, + method: 'get' + }) +} + + +// 删除生产派工 +export function deleteProductPlansByDispatchCode(data) { + return request({ + url: '/mes/productplan/deleteProductPlansByDispatchCode/', + method: 'post', + data: data + }) +} diff --git a/hw-ui/src/views/mes/productplan/editProductPlan.vue b/hw-ui/src/views/mes/productplan/editProductPlan.vue index 290c3986..ca887c41 100644 --- a/hw-ui/src/views/mes/productplan/editProductPlan.vue +++ b/hw-ui/src/views/mes/productplan/editProductPlan.vue @@ -10,7 +10,11 @@ {{ form.materialCode }} {{ parseTime(form.planBeginTime) }} - {{ form.planAmount }}/{{ form.dispatchAmount }}/{{ form.completeAmount }} + {{ + form.planAmount + }}/{{ + form.dispatchAmount == null || form.dispatchAmount === undefined ? 0 : form.dispatchAmount + }}/{{ form.completeAmount }} @@ -28,65 +32,112 @@ 新增 - - 删除 - - - - - + :row-class-name="rowMesProductPlanIndex" @selection-change="handleMesProductPlanSelectionChange" + :tree-props="{children: 'children'}" + style="width: 100%;margin-bottom: 20px;" + row-key="id" + border + default-expand-all + > + + - + + - + + + + + + + + + + + + - + - + + - + + + + + + + + @@ -179,7 +248,7 @@
请上传 - + 的文件
@@ -268,19 +337,43 @@