diff --git a/ruoyi-admin/src/main/java/com/ruoyi/erp/service/IErpBomService.java b/ruoyi-admin/src/main/java/com/ruoyi/erp/service/IErpBomService.java index a9963147..0df5e941 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/erp/service/IErpBomService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/erp/service/IErpBomService.java @@ -101,4 +101,6 @@ public interface IErpBomService String importData(List bomImportVos,boolean updateSupport); public ProcessInstance submitApply(ErpBom erpBom); + + ErpBom selectErpBomByOneMaterialNo(String materialNo); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/erp/service/impl/ErpBomServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/erp/service/impl/ErpBomServiceImpl.java index 7d0a2a94..c4c2b052 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/erp/service/impl/ErpBomServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/erp/service/impl/ErpBomServiceImpl.java @@ -555,6 +555,12 @@ private ISysAttachService attachService; erpBomMapper.updateErpBom(erpBom); return processInstance; } + + @Override + public ErpBom selectErpBomByOneMaterialNo(String materialNo) { + return erpBomMapper.selectErpBomByOneMaterialNo(materialNo); + } + @Override @Transactional(rollbackFor = Exception.class) public ProcessInstance cancelErpBomById(Long id) { diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/controller/SysMakeOrderController.java b/ruoyi-admin/src/main/java/com/ruoyi/system/controller/SysMakeOrderController.java index b1a416ca..82eb3904 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/controller/SysMakeOrderController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/controller/SysMakeOrderController.java @@ -143,10 +143,7 @@ public class SysMakeOrderController extends BaseController @PostMapping("/gcReview") @ResponseBody public AjaxResult gcReview(SysMakeOrder sysMakeOrder){ - // 待生产 - sysMakeOrder.setMakeStatus("3"); - sysMakeOrderService.updateByMakeNo(sysMakeOrder); - // todo 加工方式“采购”的物料生成采购计划 + sysMakeOrderService.gcReview(sysMakeOrder); return AjaxResult.success("工程审核成功!"); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/controller/SysMakeorderBomController.java b/ruoyi-admin/src/main/java/com/ruoyi/system/controller/SysMakeorderBomController.java new file mode 100644 index 00000000..7473bcad --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/controller/SysMakeorderBomController.java @@ -0,0 +1,151 @@ +package com.ruoyi.system.controller; + +import java.util.List; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.system.domain.SysMakeorderBom; +import com.ruoyi.system.service.ISysMakeorderBomService; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 生产订单BOM信息Controller + * + * @author ruoyi + * @date 2024-04-18 + */ +@Controller +@RequestMapping("/system/makeorderbom") +public class SysMakeorderBomController extends BaseController +{ + private String prefix = "system/makeorderbom"; + + @Autowired + private ISysMakeorderBomService sysMakeorderBomService; + + @RequiresPermissions("system:makeorderbom:view") + @GetMapping() + public String makeorderbom() + { + return prefix + "/makeorderbom"; + } + + /** + * 查询生产订单BOM信息列表 + */ +// @RequiresPermissions("system:makeorderbom:list") + @PostMapping("/list") + @ResponseBody + public TableDataInfo list(SysMakeorderBom sysMakeorderBom) + { + startPage(); + List list = sysMakeorderBomService.selectSysMakeorderBomList(sysMakeorderBom); + return getDataTable(list); + } + + /** + * 导出生产订单BOM信息列表 + */ + @RequiresPermissions("system:makeorderbom:export") + @Log(title = "生产订单BOM信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + @ResponseBody + public AjaxResult export(SysMakeorderBom sysMakeorderBom) + { + List list = sysMakeorderBomService.selectSysMakeorderBomList(sysMakeorderBom); + ExcelUtil util = new ExcelUtil(SysMakeorderBom.class); + return util.exportExcel(list, "生产订单BOM信息数据"); + } + + /** + * 新增生产订单BOM信息 + */ + @GetMapping("/add") + public String add() + { + return prefix + "/add"; + } + + /** + * 新增保存生产订单BOM信息 + */ + @RequiresPermissions("system:makeorderbom:add") + @Log(title = "生产订单BOM信息", businessType = BusinessType.INSERT) + @PostMapping("/add") + @ResponseBody + public AjaxResult addSave(SysMakeorderBom sysMakeorderBom) + { + return toAjax(sysMakeorderBomService.insertSysMakeorderBom(sysMakeorderBom)); + } + + /** + * 修改生产订单BOM信息 + */ + @GetMapping("/edit/{id}") + public String edit(@PathVariable("id") Long id, ModelMap mmap) + { + SysMakeorderBom sysMakeorderBom = sysMakeorderBomService.selectSysMakeorderBomById(id); + mmap.put("sysMakeorderBom", sysMakeorderBom); + return prefix + "/edit"; + } + + /** + * 修改保存生产订单BOM信息 + */ + @RequiresPermissions("system:makeorderbom:edit") + @Log(title = "生产订单BOM信息", businessType = BusinessType.UPDATE) + @PostMapping("/edit") + @ResponseBody + public AjaxResult editSave(SysMakeorderBom sysMakeorderBom) + { + return toAjax(sysMakeorderBomService.updateSysMakeorderBom(sysMakeorderBom)); + } + + /** + * 删除生产订单BOM信息 + */ + @RequiresPermissions("system:makeorderbom:remove") + @Log(title = "生产订单BOM信息", businessType = BusinessType.DELETE) + @PostMapping( "/remove") + @ResponseBody + public AjaxResult remove(String ids) + { + return toAjax(sysMakeorderBomService.deleteSysMakeorderBomByIds(ids)); + } + + /** + * 作废生产订单BOM信息 + */ + @RequiresPermissions("system:makeorderbom:cancel") + @Log(title = "生产订单BOM信息", businessType = BusinessType.CANCEL) + @GetMapping( "/cancel/{id}") + @ResponseBody + public AjaxResult cancel(@PathVariable("id") Long id){ + return toAjax(sysMakeorderBomService.cancelSysMakeorderBomById(id)); + } + + /** + * 恢复生产订单BOM信息 + */ + @RequiresPermissions("system:makeorderbom:restore") + @Log(title = "生产订单BOM信息", businessType = BusinessType.RESTORE) + @GetMapping( "/restore/{id}") + @ResponseBody + public AjaxResult restore(@PathVariable("id")Long id) + { + return toAjax(sysMakeorderBomService.restoreSysMakeorderBomById(id)); + } + + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/controller/SysMakeorderPickDetailController.java b/ruoyi-admin/src/main/java/com/ruoyi/system/controller/SysMakeorderPickDetailController.java index a49d6112..b6d370c4 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/controller/SysMakeorderPickDetailController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/controller/SysMakeorderPickDetailController.java @@ -26,25 +26,25 @@ import com.ruoyi.common.core.page.TableDataInfo; * @date 2024-04-13 */ @Controller -@RequestMapping("/system/detail") +@RequestMapping("/system/makeorderpickdetail") public class SysMakeorderPickDetailController extends BaseController { - private String prefix = "system/detail"; + private String prefix = "system/makeorderpickdetail"; @Autowired private ISysMakeorderPickDetailService sysMakeorderPickDetailService; - @RequiresPermissions("system:detail:view") + @RequiresPermissions("system:makeorderpickdetail:view") @GetMapping() - public String detail() + public String makeorderpickdetail() { - return prefix + "/detail"; + return prefix + "/makeorderpickdetail"; } /** * 查询生产订单领料明细列表 */ - @RequiresPermissions("system:detail:list") +// @RequiresPermissions("system:makeorderpickdetail:list") @PostMapping("/list") @ResponseBody public TableDataInfo list(SysMakeorderPickDetail sysMakeorderPickDetail) @@ -57,7 +57,7 @@ public class SysMakeorderPickDetailController extends BaseController /** * 导出生产订单领料明细列表 */ - @RequiresPermissions("system:detail:export") + @RequiresPermissions("system:makeorderpickdetail:export") @Log(title = "生产订单领料明细", businessType = BusinessType.EXPORT) @PostMapping("/export") @ResponseBody @@ -80,7 +80,7 @@ public class SysMakeorderPickDetailController extends BaseController /** * 新增保存生产订单领料明细 */ - @RequiresPermissions("system:detail:add") + @RequiresPermissions("system:makeorderpickdetail:add") @Log(title = "生产订单领料明细", businessType = BusinessType.INSERT) @PostMapping("/add") @ResponseBody @@ -103,7 +103,7 @@ public class SysMakeorderPickDetailController extends BaseController /** * 修改保存生产订单领料明细 */ - @RequiresPermissions("system:detail:edit") + @RequiresPermissions("system:makeorderpickdetail:edit") @Log(title = "生产订单领料明细", businessType = BusinessType.UPDATE) @PostMapping("/edit") @ResponseBody @@ -115,7 +115,7 @@ public class SysMakeorderPickDetailController extends BaseController /** * 删除生产订单领料明细 */ - @RequiresPermissions("system:detail:remove") + @RequiresPermissions("system:makeorderpickdetail:remove") @Log(title = "生产订单领料明细", businessType = BusinessType.DELETE) @PostMapping( "/remove") @ResponseBody @@ -127,7 +127,7 @@ public class SysMakeorderPickDetailController extends BaseController /** * 作废生产订单领料明细 */ - @RequiresPermissions("system:detail:cancel") + @RequiresPermissions("system:makeorderpickdetail:cancel") @Log(title = "生产订单领料明细", businessType = BusinessType.CANCEL) @GetMapping( "/cancel/{id}") @ResponseBody @@ -138,7 +138,7 @@ public class SysMakeorderPickDetailController extends BaseController /** * 恢复生产订单领料明细 */ - @RequiresPermissions("system:detail:restore") + @RequiresPermissions("system:makeorderpickdetail:restore") @Log(title = "生产订单领料明细", businessType = BusinessType.RESTORE) @GetMapping( "/restore/{id}") @ResponseBody diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/domain/SysMakeorderBom.java b/ruoyi-admin/src/main/java/com/ruoyi/system/domain/SysMakeorderBom.java new file mode 100644 index 00000000..4355b094 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/domain/SysMakeorderBom.java @@ -0,0 +1,280 @@ +package com.ruoyi.system.domain; + +import java.math.BigDecimal; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 生产订单BOM信息对象 sys_makeorder_bom + * + * @author ruoyi + * @date 2024-04-18 + */ +public class SysMakeorderBom extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键ID */ + private Long id; + + /** 删除标志(0代表存在 1代表删除) */ + private String delFlag; + + /** 生产订单号 */ + @Excel(name = "生产订单号") + private String makeNo; + + /** 销售订单号 */ + @Excel(name = "销售订单号") + private String salesOrderCode; + + /** 销售订单料号 */ + @Excel(name = "销售订单料号") + private String salesOrderMaterialNo; + + /** bom号 */ + @Excel(name = "bom号") + private String bomNo; + + /** 料号 */ + @Excel(name = "料号") + private String materialNo; + + /** bom的图片地址 */ + @Excel(name = "bom的图片地址") + private String photoUrl; + + /** 物料名称 */ + @Excel(name = "物料名称") + private String materialName; + + /** 物料类型 */ + @Excel(name = "物料类型") + private String materialType; + + /** 加工方式 */ + @Excel(name = "加工方式") + private String processMethod; + + /** 单位 */ + @Excel(name = "单位") + private String unit; + + /** 品牌 */ + @Excel(name = "品牌") + private String brand; + + /** 描述 */ + @Excel(name = "描述") + private String describe; + + /** 用量 */ + @Excel(name = "用量") + private Long useNum; + + /** 损耗率 */ + @Excel(name = "损耗率") + private BigDecimal lossRate; + + /** 层级 */ + @Excel(name = "层级") + private Long level; + + /** 排序 */ + @Excel(name = "排序") + private Long sortNo; + + public void setId(Long id) + { + this.id = id; + } + + public Long getId() + { + return id; + } + public void setDelFlag(String delFlag) + { + this.delFlag = delFlag; + } + + public String getDelFlag() + { + return delFlag; + } + public void setMakeNo(String makeNo) + { + this.makeNo = makeNo; + } + + public String getMakeNo() + { + return makeNo; + } + public void setSalesOrderCode(String salesOrderCode) + { + this.salesOrderCode = salesOrderCode; + } + + public String getSalesOrderCode() + { + return salesOrderCode; + } + public void setSalesOrderMaterialNo(String salesOrderMaterialNo) + { + this.salesOrderMaterialNo = salesOrderMaterialNo; + } + + public String getSalesOrderMaterialNo() + { + return salesOrderMaterialNo; + } + public void setBomNo(String bomNo) + { + this.bomNo = bomNo; + } + + public String getBomNo() + { + return bomNo; + } + public void setMaterialNo(String materialNo) + { + this.materialNo = materialNo; + } + + public String getMaterialNo() + { + return materialNo; + } + public void setPhotoUrl(String photoUrl) + { + this.photoUrl = photoUrl; + } + + public String getPhotoUrl() + { + return photoUrl; + } + public void setMaterialName(String materialName) + { + this.materialName = materialName; + } + + public String getMaterialName() + { + return materialName; + } + public void setMaterialType(String materialType) + { + this.materialType = materialType; + } + + public String getMaterialType() + { + return materialType; + } + public void setProcessMethod(String processMethod) + { + this.processMethod = processMethod; + } + + public String getProcessMethod() + { + return processMethod; + } + public void setUnit(String unit) + { + this.unit = unit; + } + + public String getUnit() + { + return unit; + } + public void setBrand(String brand) + { + this.brand = brand; + } + + public String getBrand() + { + return brand; + } + public void setDescribe(String describe) + { + this.describe = describe; + } + + public String getDescribe() + { + return describe; + } + public void setUseNum(Long useNum) + { + this.useNum = useNum; + } + + public Long getUseNum() + { + return useNum; + } + public void setLossRate(BigDecimal lossRate) + { + this.lossRate = lossRate; + } + + public BigDecimal getLossRate() + { + return lossRate; + } + public void setLevel(Long level) + { + this.level = level; + } + + public Long getLevel() + { + return level; + } + public void setSortNo(Long sortNo) + { + this.sortNo = sortNo; + } + + public Long getSortNo() + { + return sortNo; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("delFlag", getDelFlag()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .append("makeNo", getMakeNo()) + .append("salesOrderCode", getSalesOrderCode()) + .append("salesOrderMaterialNo", getSalesOrderMaterialNo()) + .append("bomNo", getBomNo()) + .append("materialNo", getMaterialNo()) + .append("photoUrl", getPhotoUrl()) + .append("materialName", getMaterialName()) + .append("materialType", getMaterialType()) + .append("processMethod", getProcessMethod()) + .append("unit", getUnit()) + .append("brand", getBrand()) + .append("describe", getDescribe()) + .append("useNum", getUseNum()) + .append("lossRate", getLossRate()) + .append("level", getLevel()) + .append("sortNo", getSortNo()) + .toString(); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/domain/SysMakeorderPickDetail.java b/ruoyi-admin/src/main/java/com/ruoyi/system/domain/SysMakeorderPickDetail.java index bb58c927..cb644469 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/domain/SysMakeorderPickDetail.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/domain/SysMakeorderPickDetail.java @@ -5,6 +5,8 @@ import org.apache.commons.lang3.builder.ToStringStyle; import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.core.domain.BaseEntity; +import java.math.BigDecimal; + /** * 生产订单领料明细对象 sys_makeorder_pick_detail * @@ -34,13 +36,38 @@ public class SysMakeorderPickDetail extends BaseEntity private String materialNo; /** bomid */ - @Excel(name = "bomid") - private Long bomId; + @Excel(name = "makeorderBomId") + private Long makeorderBomId; /** 领料数量 */ @Excel(name = "领料数量") private Long pickNum; + /** bom号 */ + private String bomNo; + /** bom的图片地址 */ + private String photoUrl; + /** 物料名称 */ + private String materialName; + /** 物料类型 */ + private String materialType; + /** 加工方式 */ + private String processMethod; + /** 单位 */ + private String unit; + /** 品牌 */ + private String brand; + /** 描述 */ + private String describe; + /** 用量 */ + private Long useNum; + /** 损耗率 */ + private BigDecimal lossRate; + /** 层级 */ + private Long level; + /** 排序 */ + private Long sortNo; + public void setId(Long id) { this.id = id; @@ -86,16 +113,16 @@ public class SysMakeorderPickDetail extends BaseEntity { return materialNo; } - public void setBomId(Long bomId) - { - this.bomId = bomId; + + public Long getMakeorderBomId() { + return makeorderBomId; } - public Long getBomId() - { - return bomId; + public void setMakeorderBomId(Long makeorderBomId) { + this.makeorderBomId = makeorderBomId; } - public void setPickNum(Long pickNum) + + public void setPickNum(Long pickNum) { this.pickNum = pickNum; } @@ -105,6 +132,102 @@ public class SysMakeorderPickDetail extends BaseEntity return pickNum; } + public String getBomNo() { + return bomNo; + } + + public void setBomNo(String bomNo) { + this.bomNo = bomNo; + } + + public String getPhotoUrl() { + return photoUrl; + } + + public void setPhotoUrl(String photoUrl) { + this.photoUrl = photoUrl; + } + + public String getMaterialName() { + return materialName; + } + + public void setMaterialName(String materialName) { + this.materialName = materialName; + } + + public String getMaterialType() { + return materialType; + } + + public void setMaterialType(String materialType) { + this.materialType = materialType; + } + + public String getProcessMethod() { + return processMethod; + } + + public void setProcessMethod(String processMethod) { + this.processMethod = processMethod; + } + + public String getUnit() { + return unit; + } + + public void setUnit(String unit) { + this.unit = unit; + } + + public String getBrand() { + return brand; + } + + public void setBrand(String brand) { + this.brand = brand; + } + + public String getDescribe() { + return describe; + } + + public void setDescribe(String describe) { + this.describe = describe; + } + + public Long getUseNum() { + return useNum; + } + + public void setUseNum(Long useNum) { + this.useNum = useNum; + } + + public BigDecimal getLossRate() { + return lossRate; + } + + public void setLossRate(BigDecimal lossRate) { + this.lossRate = lossRate; + } + + public Long getLevel() { + return level; + } + + public void setLevel(Long level) { + this.level = level; + } + + public Long getSortNo() { + return sortNo; + } + + public void setSortNo(Long sortNo) { + this.sortNo = sortNo; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) @@ -118,7 +241,7 @@ public class SysMakeorderPickDetail extends BaseEntity .append("makeNo", getMakeNo()) .append("pickNo", getPickNo()) .append("materialNo", getMaterialNo()) - .append("bomId", getBomId()) + .append("makeorderBomId", getMakeorderBomId()) .append("pickNum", getPickNum()) .toString(); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/SysMakeorderBomMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/SysMakeorderBomMapper.java new file mode 100644 index 00000000..4e2d5afd --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/SysMakeorderBomMapper.java @@ -0,0 +1,77 @@ +package com.ruoyi.system.mapper; + +import java.util.List; +import com.ruoyi.system.domain.SysMakeorderBom; + +/** + * 生产订单BOM信息Mapper接口 + * + * @author ruoyi + * @date 2024-04-18 + */ +public interface SysMakeorderBomMapper +{ + /** + * 查询生产订单BOM信息 + * + * @param id 生产订单BOM信息ID + * @return 生产订单BOM信息 + */ + public SysMakeorderBom selectSysMakeorderBomById(Long id); + + /** + * 查询生产订单BOM信息列表 + * + * @param sysMakeorderBom 生产订单BOM信息 + * @return 生产订单BOM信息集合 + */ + public List selectSysMakeorderBomList(SysMakeorderBom sysMakeorderBom); + + /** + * 新增生产订单BOM信息 + * + * @param sysMakeorderBom 生产订单BOM信息 + * @return 结果 + */ + public int insertSysMakeorderBom(SysMakeorderBom sysMakeorderBom); + + /** + * 修改生产订单BOM信息 + * + * @param sysMakeorderBom 生产订单BOM信息 + * @return 结果 + */ + public int updateSysMakeorderBom(SysMakeorderBom sysMakeorderBom); + + /** + * 删除生产订单BOM信息 + * + * @param id 生产订单BOM信息ID + * @return 结果 + */ + public int deleteSysMakeorderBomById(Long id); + + /** + * 批量删除生产订单BOM信息 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + public int deleteSysMakeorderBomByIds(String[] ids); + + /** + * 作废生产订单BOM信息 + * + * @param id 生产订单BOM信息ID + * @return 结果 + */ + public int cancelSysMakeorderBomById(Long id); + + /** + * 恢复生产订单BOM信息 + * + * @param id 生产订单BOM信息ID + * @return 结果 + */ + public int restoreSysMakeorderBomById(Long id); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/service/ISysMakeOrderService.java b/ruoyi-admin/src/main/java/com/ruoyi/system/service/ISysMakeOrderService.java index f5e0c994..2e8b9794 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/service/ISysMakeOrderService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/service/ISysMakeOrderService.java @@ -91,4 +91,10 @@ public interface ISysMakeOrderService * @param salesOrderCode */ void generateMakeOrderBySalesOrderCode(String salesOrderCode); + + /** + * 工程审核 + * @param sysMakeOrder + */ + void gcReview(SysMakeOrder sysMakeOrder); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/service/ISysMakeorderBomService.java b/ruoyi-admin/src/main/java/com/ruoyi/system/service/ISysMakeorderBomService.java new file mode 100644 index 00000000..11d49744 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/service/ISysMakeorderBomService.java @@ -0,0 +1,75 @@ +package com.ruoyi.system.service; + +import java.util.List; +import com.ruoyi.system.domain.SysMakeorderBom; + +/** + * 生产订单BOM信息Service接口 + * + * @author ruoyi + * @date 2024-04-18 + */ +public interface ISysMakeorderBomService +{ + /** + * 查询生产订单BOM信息 + * + * @param id 生产订单BOM信息ID + * @return 生产订单BOM信息 + */ + public SysMakeorderBom selectSysMakeorderBomById(Long id); + + /** + * 查询生产订单BOM信息列表 + * + * @param sysMakeorderBom 生产订单BOM信息 + * @return 生产订单BOM信息集合 + */ + public List selectSysMakeorderBomList(SysMakeorderBom sysMakeorderBom); + + /** + * 新增生产订单BOM信息 + * + * @param sysMakeorderBom 生产订单BOM信息 + * @return 结果 + */ + public int insertSysMakeorderBom(SysMakeorderBom sysMakeorderBom); + + /** + * 修改生产订单BOM信息 + * + * @param sysMakeorderBom 生产订单BOM信息 + * @return 结果 + */ + public int updateSysMakeorderBom(SysMakeorderBom sysMakeorderBom); + + /** + * 批量删除生产订单BOM信息 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + public int deleteSysMakeorderBomByIds(String ids); + + /** + * 删除生产订单BOM信息信息 + * + * @param id 生产订单BOM信息ID + * @return 结果 + */ + public int deleteSysMakeorderBomById(Long id); + + /** + * 作废生产订单BOM信息 + * @param id 生产订单BOM信息ID + * @return + */ + int cancelSysMakeorderBomById(Long id); + + /** + * 恢复生产订单BOM信息 + * @param id 生产订单BOM信息ID + * @return + */ + int restoreSysMakeorderBomById(Long id); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysMakeOrderServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysMakeOrderServiceImpl.java index abbb38f1..38084fe4 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysMakeOrderServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysMakeOrderServiceImpl.java @@ -5,16 +5,18 @@ import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.common.core.text.Convert; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.ShiroUtils; +import com.ruoyi.erp.domain.ErpBom; +import com.ruoyi.erp.service.IErpBomService; import com.ruoyi.system.domain.SysMakeOrder; +import com.ruoyi.system.domain.SysMakeorderBom; import com.ruoyi.system.domain.SysSalesOrderChild; import com.ruoyi.system.domain.SysSalesOrderVo; import com.ruoyi.system.mapper.SysMakeOrderMapper; -import com.ruoyi.system.service.ISysMakeOrderService; -import com.ruoyi.system.service.ISysMakeorderDeptService; -import com.ruoyi.system.service.ISysSalesOrderChildService; -import com.ruoyi.system.service.ISysSalesOrderService; +import com.ruoyi.system.service.*; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.List; @@ -42,6 +44,12 @@ public class SysMakeOrderServiceImpl implements ISysMakeOrderService @Autowired private ISysSalesOrderChildService salesOrderChildService; + @Autowired + private IErpBomService erpBomService; + + @Autowired + private ISysMakeorderBomService makeorderBomService; + /** * 查询生产订单 * @@ -199,4 +207,42 @@ public class SysMakeOrderServiceImpl implements ISysMakeOrderService } } + + @Override + @Transactional(rollbackFor = Exception.class) + public void gcReview(SysMakeOrder sysMakeOrder) { + String makeNo = sysMakeOrder.getMakeNo(); + // 待生产 + sysMakeOrder.setMakeStatus("3"); + updateByMakeNo(sysMakeOrder); + // 根据销售订单物料生成BOM + String saleNo = sysMakeOrder.getSaleNo(); + List salesOrderChildList = salesOrderChildService.selectSysSalesOrderChildByQuoteId(saleNo); + if(CollectionUtil.isNotEmpty(salesOrderChildList)){ + Long sortNo = 0L; + for (int i = 0; i < salesOrderChildList.size(); i++) { + SysSalesOrderChild sysSalesOrderChild = salesOrderChildList.get(i); + String materialCode = sysSalesOrderChild.getMaterialCode(); + // 0阶 + ErpBom erpBom = erpBomService.selectErpBomByOneMaterialNo(materialCode); + Long id = erpBom.getId(); + // 查询1阶及以下 + ErpBom oneLevelBom = new ErpBom(); + oneLevelBom.setParentId(id); + List subBomList = erpBomService.selectErpBomAllLevelList(oneLevelBom); + for (int j = 0; j < subBomList.size(); j++) { + ErpBom subBom = subBomList.get(j); + SysMakeorderBom orderBom = new SysMakeorderBom(); + BeanUtils.copyProperties(subBom,orderBom, "id","delFlag","createBy","createTime","updateBy","updateTime","remark"); + orderBom.setMakeNo(makeNo); + orderBom.setSalesOrderCode(saleNo); + orderBom.setSalesOrderMaterialNo(materialCode); + sortNo++; + orderBom.setSortNo(sortNo); + makeorderBomService.insertSysMakeorderBom(orderBom); + } + } + } + // todo 加工方式“采购”的物料生成采购计划 + } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysMakeorderBomServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysMakeorderBomServiceImpl.java new file mode 100644 index 00000000..e42f40f4 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysMakeorderBomServiceImpl.java @@ -0,0 +1,126 @@ +package com.ruoyi.system.service.impl; + +import java.util.List; +import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.common.utils.ShiroUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.system.mapper.SysMakeorderBomMapper; +import com.ruoyi.system.domain.SysMakeorderBom; +import com.ruoyi.system.service.ISysMakeorderBomService; +import com.ruoyi.common.core.text.Convert; + +/** + * 生产订单BOM信息Service业务层处理 + * + * @author ruoyi + * @date 2024-04-18 + */ +@Service +public class SysMakeorderBomServiceImpl implements ISysMakeorderBomService +{ + @Autowired + private SysMakeorderBomMapper sysMakeorderBomMapper; + + /** + * 查询生产订单BOM信息 + * + * @param id 生产订单BOM信息ID + * @return 生产订单BOM信息 + */ + @Override + public SysMakeorderBom selectSysMakeorderBomById(Long id) + { + return sysMakeorderBomMapper.selectSysMakeorderBomById(id); + } + + /** + * 查询生产订单BOM信息列表 + * + * @param sysMakeorderBom 生产订单BOM信息 + * @return 生产订单BOM信息 + */ + @Override + public List selectSysMakeorderBomList(SysMakeorderBom sysMakeorderBom) + { + return sysMakeorderBomMapper.selectSysMakeorderBomList(sysMakeorderBom); + } + + /** + * 新增生产订单BOM信息 + * + * @param sysMakeorderBom 生产订单BOM信息 + * @return 结果 + */ + @Override + public int insertSysMakeorderBom(SysMakeorderBom sysMakeorderBom) + { + String loginName = ShiroUtils.getLoginName(); + sysMakeorderBom.setCreateBy(loginName); + sysMakeorderBom.setCreateTime(DateUtils.getNowDate()); + return sysMakeorderBomMapper.insertSysMakeorderBom(sysMakeorderBom); + } + + /** + * 修改生产订单BOM信息 + * + * @param sysMakeorderBom 生产订单BOM信息 + * @return 结果 + */ + @Override + public int updateSysMakeorderBom(SysMakeorderBom sysMakeorderBom) + { + String loginName = ShiroUtils.getLoginName(); + sysMakeorderBom.setUpdateBy(loginName); + sysMakeorderBom.setUpdateTime(DateUtils.getNowDate()); + return sysMakeorderBomMapper.updateSysMakeorderBom(sysMakeorderBom); + } + + /** + * 删除生产订单BOM信息对象 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + @Override + public int deleteSysMakeorderBomByIds(String ids) + { + return sysMakeorderBomMapper.deleteSysMakeorderBomByIds(Convert.toStrArray(ids)); + } + + /** + * 删除生产订单BOM信息信息 + * + * @param id 生产订单BOM信息ID + * @return 结果 + */ + @Override + public int deleteSysMakeorderBomById(Long id) + { + return sysMakeorderBomMapper.deleteSysMakeorderBomById(id); + } + + /** + * 作废生产订单BOM信息 + * + * @param id 生产订单BOM信息ID + * @return 结果 + */ + @Override + public int cancelSysMakeorderBomById(Long id) + { + return sysMakeorderBomMapper.cancelSysMakeorderBomById(id); + } + + /** + * 恢复生产订单BOM信息信息 + * + * @param id 生产订单BOM信息ID + * @return 结果 + */ + @Override + public int restoreSysMakeorderBomById(Long id) + { + return sysMakeorderBomMapper.restoreSysMakeorderBomById(id); + } +} diff --git a/ruoyi-admin/src/main/resources/mapper/system/SysMakeorderBomMapper.xml b/ruoyi-admin/src/main/resources/mapper/system/SysMakeorderBomMapper.xml new file mode 100644 index 00000000..f05ba06f --- /dev/null +++ b/ruoyi-admin/src/main/resources/mapper/system/SysMakeorderBomMapper.xml @@ -0,0 +1,165 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select id, del_flag, create_by, create_time, update_by, update_time, remark, make_no, sales_order_code, sales_order_material_no, bom_no, material_no, photoUrl, material_name, material_type, process_method, unit, brand, `describe`, use_num, loss_rate, level, sort_no from sys_makeorder_bom + + + + + + + + insert into sys_makeorder_bom + + del_flag, + create_by, + create_time, + update_by, + update_time, + remark, + make_no, + sales_order_code, + sales_order_material_no, + bom_no, + material_no, + photoUrl, + material_name, + material_type, + process_method, + unit, + brand, + `describe`, + use_num, + loss_rate, + level, + sort_no, + + + #{delFlag}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{remark}, + #{makeNo}, + #{salesOrderCode}, + #{salesOrderMaterialNo}, + #{bomNo}, + #{materialNo}, + #{photoUrl}, + #{materialName}, + #{materialType}, + #{processMethod}, + #{unit}, + #{brand}, + #{describe}, + #{useNum}, + #{lossRate}, + #{level}, + #{sortNo}, + + + + + update sys_makeorder_bom + + del_flag = #{delFlag}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + remark = #{remark}, + make_no = #{makeNo}, + sales_order_code = #{salesOrderCode}, + sales_order_material_no = #{salesOrderMaterialNo}, + bom_no = #{bomNo}, + material_no = #{materialNo}, + photoUrl = #{photoUrl}, + material_name = #{materialName}, + material_type = #{materialType}, + process_method = #{processMethod}, + unit = #{unit}, + brand = #{brand}, + `describe` = #{describe}, + use_num = #{useNum}, + loss_rate = #{lossRate}, + level = #{level}, + sort_no = #{sortNo}, + + where id = #{id} + + + + delete from sys_makeorder_bom where id = #{id} + + + + delete from sys_makeorder_bom where id in + + #{id} + + + + + update sys_makeorder_bom set del_flag = '1' where id = #{id} + + + + update sys_makeorder_bom set del_flag = '0' where id = #{id} + + + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/mapper/system/SysMakeorderPickDetailMapper.xml b/ruoyi-admin/src/main/resources/mapper/system/SysMakeorderPickDetailMapper.xml index 9340d612..f5d32637 100644 --- a/ruoyi-admin/src/main/resources/mapper/system/SysMakeorderPickDetailMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/system/SysMakeorderPickDetailMapper.xml @@ -15,22 +15,40 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + + + + + + + + + + + + + - select id, del_flag, create_by, create_time, update_by, update_time, remark, make_no, pick_no, material_no, bom_id, pick_num from sys_makeorder_pick_detail + select a.id, a.del_flag, a.create_by, a.create_time, a.update_by, a.update_time, a.remark + , a.make_no, a.pick_no, a.material_no, a.makeorder_bom_id, a.pick_num + ,b.bom_no,b.photoUrl,b.material_name,b.material_type,b.process_method,b.unit,b.brand + ,b.describe,b.use_num,b.loss_rate,b.level,b.sort_no + from sys_makeorder_pick_detail a + left join sys_makeorder_bom b + on a.makeorder_bom_id = b.id @@ -51,7 +69,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" make_no, pick_no, material_no, - bom_id, + makeorder_bom_id, pick_num, @@ -64,7 +82,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{makeNo}, #{pickNo}, #{materialNo}, - #{bomId}, + #{makeorderBomId}, #{pickNum}, @@ -81,7 +99,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" make_no = #{makeNo}, pick_no = #{pickNo}, material_no = #{materialNo}, - bom_id = #{bomId}, + makeorder_bom_id = #{makeorderBomId}, pick_num = #{pickNum}, where id = #{id} diff --git a/ruoyi-admin/src/main/resources/templates/system/makeorder/addpick.html b/ruoyi-admin/src/main/resources/templates/system/makeorder/addpick.html index ada7d641..9ae10450 100644 --- a/ruoyi-admin/src/main/resources/templates/system/makeorder/addpick.html +++ b/ruoyi-admin/src/main/resources/templates/system/makeorder/addpick.html @@ -167,12 +167,14 @@ $detail.html('
'); // BOM展示 $('#'+childTableId).bootstrapTable({ - url: ctx + "erp/bom/allLevelList", + url: ctx + "system/makeorderbom/list", method: 'post', sidePagination: "server", contentType: "application/x-www-form-urlencoded", queryParams : { - parentId: parentRow.bomId + makeNo: $("#makeNo").val(), + salesOrderCode: $("#saleNo").val(), + salesOrderMaterialNo: parentRow.materialCode }, columns: [{ field: 'id', @@ -201,8 +203,8 @@ field: 'materialNo', title: '料号', formatter: function (value,row,index){ - var curIndex = parentRowIndex*6+index; - return ''; + var curIndex = row.sortNo-1; + return ''; } }, { @@ -304,13 +306,23 @@ field: 'pickNum', title: '本次领料数量', formatter: function (value,row,index){ - var curIndex = parentRowIndex*6+index; + var curIndex = row.sortNo-1; return ''; } }, { - field: 'parentId', - title: '父级id', + field: 'makeNo', + title: '生产订单号', + visible: false, + }, + { + field: 'salesOrderCode', + title: '销售订单号', + visible: false, + }, + { + field: 'salesOrderMaterialNo', + title: '销售订单料号', visible: false, }, { @@ -346,7 +358,7 @@ function submitHandler() { debugger var data = $("#form-makeorder-edit").serializeArray(); - alert(data); + alert(JSON.stringify(data)); $.operate.save(ctx + "system/makeorderpick/add", data); } diff --git a/ruoyi-admin/src/main/resources/templates/system/makeorder/gcsh.html b/ruoyi-admin/src/main/resources/templates/system/makeorder/gcsh.html index e4e665bb..e5c2fa72 100644 --- a/ruoyi-admin/src/main/resources/templates/system/makeorder/gcsh.html +++ b/ruoyi-admin/src/main/resources/templates/system/makeorder/gcsh.html @@ -490,7 +490,10 @@ function submitHandler() { debugger // var data = $("#form-makeorder-edit").serializeArray(); - var data = {makeNo:$("#makeNo").val()}; + var data = { + makeNo:$("#makeNo").val(), + saleNo:$("#saleNo").val() + }; $.operate.save(prefix + "/gcReview", data); } diff --git a/ruoyi-admin/src/main/resources/templates/system/makeorderpick/detail.html b/ruoyi-admin/src/main/resources/templates/system/makeorderpick/detail.html index b7a20b87..d0ddb4f0 100644 --- a/ruoyi-admin/src/main/resources/templates/system/makeorderpick/detail.html +++ b/ruoyi-admin/src/main/resources/templates/system/makeorderpick/detail.html @@ -11,7 +11,7 @@
- +
@@ -23,7 +23,7 @@
- +
@@ -160,12 +160,12 @@ $detail.html('
'); // BOM展示 $('#'+childTableId).bootstrapTable({ - url: ctx + "erp/bom/allLevelList", + url: ctx + "system/makeorderpickdetail/list", method: 'post', sidePagination: "server", contentType: "application/x-www-form-urlencoded", queryParams : { - parentId: parentRow.bomId + pickNo: $("#pickNo").val() }, columns: [{ field: 'id', @@ -194,8 +194,8 @@ field: 'materialNo', title: '料号', formatter: function (value,row,index){ - var curIndex = parentRowIndex*6+index; - return ''; + var curIndex = row.sortNo-1; + return ''; } }, { @@ -297,15 +297,10 @@ field: 'pickNum', title: '本次领料数量', formatter: function (value,row,index){ - var curIndex = parentRowIndex*6+index; - return ''; + var curIndex = row.sortNo-1; + return ''; } }, - { - field: 'parentId', - title: '父级id', - visible: false, - }, { field: 'sortNo', title: '排序', diff --git a/ruoyi-admin/src/main/resources/templates/system/makeorderpick/taskScjlVerify.html b/ruoyi-admin/src/main/resources/templates/system/makeorderpick/taskScjlVerify.html index 92ec9043..97613372 100644 --- a/ruoyi-admin/src/main/resources/templates/system/makeorderpick/taskScjlVerify.html +++ b/ruoyi-admin/src/main/resources/templates/system/makeorderpick/taskScjlVerify.html @@ -34,19 +34,19 @@
- +
- +
- +
@@ -57,7 +57,11 @@
- +
+
+
+
+

@@ -81,6 +85,291 @@