diff --git a/ruoyi-admin/src/main/java/com/ruoyi/erp/controller/ErpInboundOrderController.java b/ruoyi-admin/src/main/java/com/ruoyi/erp/controller/ErpInboundOrderController.java new file mode 100644 index 00000000..6b50e9a1 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/erp/controller/ErpInboundOrderController.java @@ -0,0 +1,151 @@ +package com.ruoyi.erp.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.erp.domain.ErpInboundOrder; +import com.ruoyi.erp.service.IErpInboundOrderService; +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; + +/** + * 入库单Controller + * + * @author ruoyi + * @date 2024-04-24 + */ +@Controller +@RequestMapping("/erp/inboundOrder") +public class ErpInboundOrderController extends BaseController +{ + private String prefix = "erp/inboundOrder"; + + @Autowired + private IErpInboundOrderService erpInboundOrderService; + + @RequiresPermissions("erp:inboundOrder:view") + @GetMapping() + public String inboundOrder() + { + return prefix + "/inboundOrder"; + } + + /** + * 查询入库单列表 + */ + @RequiresPermissions("erp:inboundOrder:list") + @PostMapping("/list") + @ResponseBody + public TableDataInfo list(ErpInboundOrder erpInboundOrder) + { + startPage(); + List list = erpInboundOrderService.selectErpInboundOrderList(erpInboundOrder); + return getDataTable(list); + } + + /** + * 导出入库单列表 + */ + @RequiresPermissions("erp:inboundOrder:export") + @Log(title = "入库单", businessType = BusinessType.EXPORT) + @PostMapping("/export") + @ResponseBody + public AjaxResult export(ErpInboundOrder erpInboundOrder) + { + List list = erpInboundOrderService.selectErpInboundOrderList(erpInboundOrder); + ExcelUtil util = new ExcelUtil(ErpInboundOrder.class); + return util.exportExcel(list, "入库单数据"); + } + + /** + * 新增入库单 + */ + @GetMapping("/add") + public String add() + { + return prefix + "/add"; + } + + /** + * 新增保存入库单 + */ + @RequiresPermissions("erp:inboundOrder:add") + @Log(title = "入库单", businessType = BusinessType.INSERT) + @PostMapping("/add") + @ResponseBody + public AjaxResult addSave(ErpInboundOrder erpInboundOrder) + { + return toAjax(erpInboundOrderService.insertErpInboundOrder(erpInboundOrder)); + } + + /** + * 修改入库单 + */ + @GetMapping("/edit/{id}") + public String edit(@PathVariable("id") Long id, ModelMap mmap) + { + ErpInboundOrder erpInboundOrder = erpInboundOrderService.selectErpInboundOrderById(id); + mmap.put("erpInboundOrder", erpInboundOrder); + return prefix + "/edit"; + } + + /** + * 修改保存入库单 + */ + @RequiresPermissions("erp:inboundOrder:edit") + @Log(title = "入库单", businessType = BusinessType.UPDATE) + @PostMapping("/edit") + @ResponseBody + public AjaxResult editSave(ErpInboundOrder erpInboundOrder) + { + return toAjax(erpInboundOrderService.updateErpInboundOrder(erpInboundOrder)); + } + + /** + * 删除入库单 + */ + @RequiresPermissions("erp:inboundOrder:remove") + @Log(title = "入库单", businessType = BusinessType.DELETE) + @PostMapping( "/remove") + @ResponseBody + public AjaxResult remove(String ids) + { + return toAjax(erpInboundOrderService.deleteErpInboundOrderByIds(ids)); + } + + /** + * 作废入库单 + */ + @RequiresPermissions("erp:inboundOrder:cancel") + @Log(title = "入库单", businessType = BusinessType.CANCEL) + @GetMapping( "/cancel/{id}") + @ResponseBody + public AjaxResult cancel(@PathVariable("id") Long id){ + return toAjax(erpInboundOrderService.cancelErpInboundOrderById(id)); + } + + /** + * 恢复入库单 + */ + @RequiresPermissions("erp:inboundOrder:restore") + @Log(title = "入库单", businessType = BusinessType.RESTORE) + @GetMapping( "/restore/{id}") + @ResponseBody + public AjaxResult restore(@PathVariable("id")Long id) + { + return toAjax(erpInboundOrderService.restoreErpInboundOrderById(id)); + } + + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/erp/domain/ErpInboundOrder.java b/ruoyi-admin/src/main/java/com/ruoyi/erp/domain/ErpInboundOrder.java new file mode 100644 index 00000000..7771e531 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/erp/domain/ErpInboundOrder.java @@ -0,0 +1,151 @@ +package com.ruoyi.erp.domain; + +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; + +import java.util.List; + +/** + * 入库单对象 erp_inbound_order + * + * @author ruoyi + * @date 2024-04-24 + */ +public class ErpInboundOrder 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 saleNo; + + /** 入库单号 */ + @Excel(name = "入库单号") + private String inboundOrderNo; + + /** 入库状态 */ + @Excel(name = "入库状态") + private String inboundStatus; + + /** 入库类型 */ + @Excel(name = "入库类型") + private String inboundType; + + /** 入库数 */ + @Excel(name = "入库数") + private Long inboundNum; + + private List inboundDetails; + + 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 setSaleNo(String saleNo) + { + this.saleNo = saleNo; + } + + public String getSaleNo() + { + return saleNo; + } + public void setInboundOrderNo(String inboundOrderNo) + { + this.inboundOrderNo = inboundOrderNo; + } + + public String getInboundOrderNo() + { + return inboundOrderNo; + } + public void setInboundStatus(String inboundStatus) + { + this.inboundStatus = inboundStatus; + } + + public String getInboundStatus() + { + return inboundStatus; + } + public void setInboundType(String inboundType) + { + this.inboundType = inboundType; + } + + public String getInboundType() + { + return inboundType; + } + public void setInboundNum(Long inboundNum) + { + this.inboundNum = inboundNum; + } + + public Long getInboundNum() + { + return inboundNum; + } + + public List getInboundDetails() { + return inboundDetails; + } + + public void setInboundDetails(List inboundDetails) { + this.inboundDetails = inboundDetails; + } + + @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("saleNo", getSaleNo()) + .append("inboundOrderNo", getInboundOrderNo()) + .append("inboundStatus", getInboundStatus()) + .append("inboundType", getInboundType()) + .append("inboundNum", getInboundNum()) + .toString(); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/erp/domain/ErpInboundOrderDetail.java b/ruoyi-admin/src/main/java/com/ruoyi/erp/domain/ErpInboundOrderDetail.java new file mode 100644 index 00000000..9a2cdee9 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/erp/domain/ErpInboundOrderDetail.java @@ -0,0 +1,140 @@ +package com.ruoyi.erp.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; + +/** + * 入库单明细对象 erp_inbound_order_detail + * + * @author ruoyi + * @date 2024-04-24 + */ +public class ErpInboundOrderDetail extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键ID */ + private Long id; + + /** 删除标志(0代表存在 1代表删除) */ + private String delFlag; + + /** 入库单号 */ + @Excel(name = "入库单号") + private String inboundOrderNo; + + /** 料号 */ + @Excel(name = "料号") + private String materialNo; + + /** 生产订单bomid */ + @Excel(name = "生产订单bomid") + private Long makeorderBomId; + + /** 已完成数 */ + @Excel(name = "已完成数") + private Long completedNum; + + /** 本次完成数 */ + @Excel(name = "本次完成数") + private Long currentNum; + + /** 加工费单价 */ + @Excel(name = "加工费单价") + private BigDecimal processFeeUnitPrice; + + 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 setInboundOrderNo(String inboundOrderNo) + { + this.inboundOrderNo = inboundOrderNo; + } + + public String getInboundOrderNo() + { + return inboundOrderNo; + } + public void setMaterialNo(String materialNo) + { + this.materialNo = materialNo; + } + + public String getMaterialNo() + { + return materialNo; + } + public void setMakeorderBomId(Long makeorderBomId) + { + this.makeorderBomId = makeorderBomId; + } + + public Long getMakeorderBomId() + { + return makeorderBomId; + } + public void setCompletedNum(Long completedNum) + { + this.completedNum = completedNum; + } + + public Long getCompletedNum() + { + return completedNum; + } + public void setCurrentNum(Long currentNum) + { + this.currentNum = currentNum; + } + + public Long getCurrentNum() + { + return currentNum; + } + public void setProcessFeeUnitPrice(BigDecimal processFeeUnitPrice) + { + this.processFeeUnitPrice = processFeeUnitPrice; + } + + public BigDecimal getProcessFeeUnitPrice() + { + return processFeeUnitPrice; + } + + @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("inboundOrderNo", getInboundOrderNo()) + .append("materialNo", getMaterialNo()) + .append("makeorderBomId", getMakeorderBomId()) + .append("completedNum", getCompletedNum()) + .append("currentNum", getCurrentNum()) + .append("processFeeUnitPrice", getProcessFeeUnitPrice()) + .toString(); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/erp/mapper/ErpInboundOrderDetailMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/erp/mapper/ErpInboundOrderDetailMapper.java new file mode 100644 index 00000000..6297dfbc --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/erp/mapper/ErpInboundOrderDetailMapper.java @@ -0,0 +1,78 @@ +package com.ruoyi.erp.mapper; + +import com.ruoyi.erp.domain.ErpInboundOrderDetail; + +import java.util.List; + +/** + * 入库单明细Mapper接口 + * + * @author ruoyi + * @date 2024-04-24 + */ +public interface ErpInboundOrderDetailMapper +{ + /** + * 查询入库单明细 + * + * @param id 入库单明细ID + * @return 入库单明细 + */ + public ErpInboundOrderDetail selectErpInboundOrderDetailById(Long id); + + /** + * 查询入库单明细列表 + * + * @param erpInboundOrderDetail 入库单明细 + * @return 入库单明细集合 + */ + public List selectErpInboundOrderDetailList(ErpInboundOrderDetail erpInboundOrderDetail); + + /** + * 新增入库单明细 + * + * @param erpInboundOrderDetail 入库单明细 + * @return 结果 + */ + public int insertErpInboundOrderDetail(ErpInboundOrderDetail erpInboundOrderDetail); + + /** + * 修改入库单明细 + * + * @param erpInboundOrderDetail 入库单明细 + * @return 结果 + */ + public int updateErpInboundOrderDetail(ErpInboundOrderDetail erpInboundOrderDetail); + + /** + * 删除入库单明细 + * + * @param id 入库单明细ID + * @return 结果 + */ + public int deleteErpInboundOrderDetailById(Long id); + + /** + * 批量删除入库单明细 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + public int deleteErpInboundOrderDetailByIds(String[] ids); + + /** + * 作废入库单明细 + * + * @param id 入库单明细ID + * @return 结果 + */ + public int cancelErpInboundOrderDetailById(Long id); + + /** + * 恢复入库单明细 + * + * @param id 入库单明细ID + * @return 结果 + */ + public int restoreErpInboundOrderDetailById(Long id); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/erp/mapper/ErpInboundOrderMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/erp/mapper/ErpInboundOrderMapper.java new file mode 100644 index 00000000..25672263 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/erp/mapper/ErpInboundOrderMapper.java @@ -0,0 +1,77 @@ +package com.ruoyi.erp.mapper; + +import java.util.List; +import com.ruoyi.erp.domain.ErpInboundOrder; + +/** + * 入库单Mapper接口 + * + * @author ruoyi + * @date 2024-04-24 + */ +public interface ErpInboundOrderMapper +{ + /** + * 查询入库单 + * + * @param id 入库单ID + * @return 入库单 + */ + public ErpInboundOrder selectErpInboundOrderById(Long id); + + /** + * 查询入库单列表 + * + * @param erpInboundOrder 入库单 + * @return 入库单集合 + */ + public List selectErpInboundOrderList(ErpInboundOrder erpInboundOrder); + + /** + * 新增入库单 + * + * @param erpInboundOrder 入库单 + * @return 结果 + */ + public int insertErpInboundOrder(ErpInboundOrder erpInboundOrder); + + /** + * 修改入库单 + * + * @param erpInboundOrder 入库单 + * @return 结果 + */ + public int updateErpInboundOrder(ErpInboundOrder erpInboundOrder); + + /** + * 删除入库单 + * + * @param id 入库单ID + * @return 结果 + */ + public int deleteErpInboundOrderById(Long id); + + /** + * 批量删除入库单 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + public int deleteErpInboundOrderByIds(String[] ids); + + /** + * 作废入库单 + * + * @param id 入库单ID + * @return 结果 + */ + public int cancelErpInboundOrderById(Long id); + + /** + * 恢复入库单 + * + * @param id 入库单ID + * @return 结果 + */ + public int restoreErpInboundOrderById(Long id); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/erp/service/IErpInboundOrderDetailService.java b/ruoyi-admin/src/main/java/com/ruoyi/erp/service/IErpInboundOrderDetailService.java new file mode 100644 index 00000000..5b93f9e7 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/erp/service/IErpInboundOrderDetailService.java @@ -0,0 +1,76 @@ +package com.ruoyi.erp.service; + +import com.ruoyi.erp.domain.ErpInboundOrderDetail; + +import java.util.List; + +/** + * 入库单明细Service接口 + * + * @author ruoyi + * @date 2024-04-24 + */ +public interface IErpInboundOrderDetailService +{ + /** + * 查询入库单明细 + * + * @param id 入库单明细ID + * @return 入库单明细 + */ + public ErpInboundOrderDetail selectErpInboundOrderDetailById(Long id); + + /** + * 查询入库单明细列表 + * + * @param erpInboundOrderDetail 入库单明细 + * @return 入库单明细集合 + */ + public List selectErpInboundOrderDetailList(ErpInboundOrderDetail erpInboundOrderDetail); + + /** + * 新增入库单明细 + * + * @param erpInboundOrderDetail 入库单明细 + * @return 结果 + */ + public int insertErpInboundOrderDetail(ErpInboundOrderDetail erpInboundOrderDetail); + + /** + * 修改入库单明细 + * + * @param erpInboundOrderDetail 入库单明细 + * @return 结果 + */ + public int updateErpInboundOrderDetail(ErpInboundOrderDetail erpInboundOrderDetail); + + /** + * 批量删除入库单明细 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + public int deleteErpInboundOrderDetailByIds(String ids); + + /** + * 删除入库单明细信息 + * + * @param id 入库单明细ID + * @return 结果 + */ + public int deleteErpInboundOrderDetailById(Long id); + + /** + * 作废入库单明细 + * @param id 入库单明细ID + * @return + */ + int cancelErpInboundOrderDetailById(Long id); + + /** + * 恢复入库单明细 + * @param id 入库单明细ID + * @return + */ + int restoreErpInboundOrderDetailById(Long id); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/erp/service/IErpInboundOrderService.java b/ruoyi-admin/src/main/java/com/ruoyi/erp/service/IErpInboundOrderService.java new file mode 100644 index 00000000..9055972c --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/erp/service/IErpInboundOrderService.java @@ -0,0 +1,75 @@ +package com.ruoyi.erp.service; + +import java.util.List; +import com.ruoyi.erp.domain.ErpInboundOrder; + +/** + * 入库单Service接口 + * + * @author ruoyi + * @date 2024-04-24 + */ +public interface IErpInboundOrderService +{ + /** + * 查询入库单 + * + * @param id 入库单ID + * @return 入库单 + */ + public ErpInboundOrder selectErpInboundOrderById(Long id); + + /** + * 查询入库单列表 + * + * @param erpInboundOrder 入库单 + * @return 入库单集合 + */ + public List selectErpInboundOrderList(ErpInboundOrder erpInboundOrder); + + /** + * 新增入库单 + * + * @param erpInboundOrder 入库单 + * @return 结果 + */ + public int insertErpInboundOrder(ErpInboundOrder erpInboundOrder); + + /** + * 修改入库单 + * + * @param erpInboundOrder 入库单 + * @return 结果 + */ + public int updateErpInboundOrder(ErpInboundOrder erpInboundOrder); + + /** + * 批量删除入库单 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + public int deleteErpInboundOrderByIds(String ids); + + /** + * 删除入库单信息 + * + * @param id 入库单ID + * @return 结果 + */ + public int deleteErpInboundOrderById(Long id); + + /** + * 作废入库单 + * @param id 入库单ID + * @return + */ + int cancelErpInboundOrderById(Long id); + + /** + * 恢复入库单 + * @param id 入库单ID + * @return + */ + int restoreErpInboundOrderById(Long id); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/erp/service/impl/ErpInboundOrderDetailServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/erp/service/impl/ErpInboundOrderDetailServiceImpl.java new file mode 100644 index 00000000..6fe749d2 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/erp/service/impl/ErpInboundOrderDetailServiceImpl.java @@ -0,0 +1,127 @@ +package com.ruoyi.erp.service.impl; + +import com.ruoyi.common.core.text.Convert; +import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.common.utils.ShiroUtils; +import com.ruoyi.erp.domain.ErpInboundOrderDetail; +import com.ruoyi.erp.mapper.ErpInboundOrderDetailMapper; +import com.ruoyi.erp.service.IErpInboundOrderDetailService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 入库单明细Service业务层处理 + * + * @author ruoyi + * @date 2024-04-24 + */ +@Service +public class ErpInboundOrderDetailServiceImpl implements IErpInboundOrderDetailService +{ + @Autowired + private ErpInboundOrderDetailMapper erpInboundOrderDetailMapper; + + /** + * 查询入库单明细 + * + * @param id 入库单明细ID + * @return 入库单明细 + */ + @Override + public ErpInboundOrderDetail selectErpInboundOrderDetailById(Long id) + { + return erpInboundOrderDetailMapper.selectErpInboundOrderDetailById(id); + } + + /** + * 查询入库单明细列表 + * + * @param erpInboundOrderDetail 入库单明细 + * @return 入库单明细 + */ + @Override + public List selectErpInboundOrderDetailList(ErpInboundOrderDetail erpInboundOrderDetail) + { + return erpInboundOrderDetailMapper.selectErpInboundOrderDetailList(erpInboundOrderDetail); + } + + /** + * 新增入库单明细 + * + * @param erpInboundOrderDetail 入库单明细 + * @return 结果 + */ + @Override + public int insertErpInboundOrderDetail(ErpInboundOrderDetail erpInboundOrderDetail) + { + String loginName = ShiroUtils.getLoginName(); + erpInboundOrderDetail.setCreateBy(loginName); + erpInboundOrderDetail.setCreateTime(DateUtils.getNowDate()); + return erpInboundOrderDetailMapper.insertErpInboundOrderDetail(erpInboundOrderDetail); + } + + /** + * 修改入库单明细 + * + * @param erpInboundOrderDetail 入库单明细 + * @return 结果 + */ + @Override + public int updateErpInboundOrderDetail(ErpInboundOrderDetail erpInboundOrderDetail) + { + String loginName = ShiroUtils.getLoginName(); + erpInboundOrderDetail.setUpdateBy(loginName); + erpInboundOrderDetail.setUpdateTime(DateUtils.getNowDate()); + return erpInboundOrderDetailMapper.updateErpInboundOrderDetail(erpInboundOrderDetail); + } + + /** + * 删除入库单明细对象 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + @Override + public int deleteErpInboundOrderDetailByIds(String ids) + { + return erpInboundOrderDetailMapper.deleteErpInboundOrderDetailByIds(Convert.toStrArray(ids)); + } + + /** + * 删除入库单明细信息 + * + * @param id 入库单明细ID + * @return 结果 + */ + @Override + public int deleteErpInboundOrderDetailById(Long id) + { + return erpInboundOrderDetailMapper.deleteErpInboundOrderDetailById(id); + } + + /** + * 作废入库单明细 + * + * @param id 入库单明细ID + * @return 结果 + */ + @Override + public int cancelErpInboundOrderDetailById(Long id) + { + return erpInboundOrderDetailMapper.cancelErpInboundOrderDetailById(id); + } + + /** + * 恢复入库单明细信息 + * + * @param id 入库单明细ID + * @return 结果 + */ + @Override + public int restoreErpInboundOrderDetailById(Long id) + { + return erpInboundOrderDetailMapper.restoreErpInboundOrderDetailById(id); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/erp/service/impl/ErpInboundOrderServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/erp/service/impl/ErpInboundOrderServiceImpl.java new file mode 100644 index 00000000..ecbdd86d --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/erp/service/impl/ErpInboundOrderServiceImpl.java @@ -0,0 +1,154 @@ +package com.ruoyi.erp.service.impl; + +import java.util.List; + +import cn.hutool.core.collection.CollectionUtil; +import com.ruoyi.common.core.redis.RedisCache; +import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.common.utils.ShiroUtils; +import com.ruoyi.erp.domain.ErpInboundOrderDetail; +import com.ruoyi.erp.service.IErpInboundOrderDetailService; +import com.ruoyi.system.domain.SysMakeorderPickDetail; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.erp.mapper.ErpInboundOrderMapper; +import com.ruoyi.erp.domain.ErpInboundOrder; +import com.ruoyi.erp.service.IErpInboundOrderService; +import com.ruoyi.common.core.text.Convert; +import org.springframework.transaction.annotation.Transactional; + +/** + * 入库单Service业务层处理 + * + * @author ruoyi + * @date 2024-04-24 + */ +@Service +public class ErpInboundOrderServiceImpl implements IErpInboundOrderService +{ + @Autowired + private ErpInboundOrderMapper erpInboundOrderMapper; + + @Autowired + private RedisCache redisCache; + + @Autowired + private IErpInboundOrderDetailService inboundOrderDetailService; + + /** + * 查询入库单 + * + * @param id 入库单ID + * @return 入库单 + */ + @Override + public ErpInboundOrder selectErpInboundOrderById(Long id) + { + return erpInboundOrderMapper.selectErpInboundOrderById(id); + } + + /** + * 查询入库单列表 + * + * @param erpInboundOrder 入库单 + * @return 入库单 + */ + @Override + public List selectErpInboundOrderList(ErpInboundOrder erpInboundOrder) + { + return erpInboundOrderMapper.selectErpInboundOrderList(erpInboundOrder); + } + + /** + * 新增入库单 + * + * @param erpInboundOrder 入库单 + * @return 结果 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public int insertErpInboundOrder(ErpInboundOrder erpInboundOrder) + { + String loginName = ShiroUtils.getLoginName(); + erpInboundOrder.setCreateBy(loginName); + erpInboundOrder.setCreateTime(DateUtils.getNowDate()); + // 生成编号,年月日规则 + String billNo = redisCache.generateBillNo("RK"); + erpInboundOrder.setInboundOrderNo(billNo); + int id = erpInboundOrderMapper.insertErpInboundOrder(erpInboundOrder); + List inboundDetails = erpInboundOrder.getInboundDetails(); + if(CollectionUtil.isNotEmpty(inboundDetails)){ + // 插入子表 + for (int i = 0; i < inboundDetails.size(); i++) { + ErpInboundOrderDetail inboundOrderDetail = inboundDetails.get(i); + inboundOrderDetail.setInboundOrderNo(billNo); + inboundOrderDetailService.insertErpInboundOrderDetail(inboundOrderDetail); + } + } + + return id; + } + + /** + * 修改入库单 + * + * @param erpInboundOrder 入库单 + * @return 结果 + */ + @Override + public int updateErpInboundOrder(ErpInboundOrder erpInboundOrder) + { + String loginName = ShiroUtils.getLoginName(); + erpInboundOrder.setUpdateBy(loginName); + erpInboundOrder.setUpdateTime(DateUtils.getNowDate()); + return erpInboundOrderMapper.updateErpInboundOrder(erpInboundOrder); + } + + /** + * 删除入库单对象 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + @Override + public int deleteErpInboundOrderByIds(String ids) + { + return erpInboundOrderMapper.deleteErpInboundOrderByIds(Convert.toStrArray(ids)); + } + + /** + * 删除入库单信息 + * + * @param id 入库单ID + * @return 结果 + */ + @Override + public int deleteErpInboundOrderById(Long id) + { + return erpInboundOrderMapper.deleteErpInboundOrderById(id); + } + + /** + * 作废入库单 + * + * @param id 入库单ID + * @return 结果 + */ + @Override + public int cancelErpInboundOrderById(Long id) + { + return erpInboundOrderMapper.cancelErpInboundOrderById(id); + } + + /** + * 恢复入库单信息 + * + * @param id 入库单ID + * @return 结果 + */ + @Override + public int restoreErpInboundOrderById(Long id) + { + return erpInboundOrderMapper.restoreErpInboundOrderById(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 82eb3904..12fcc8df 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 @@ -102,6 +102,30 @@ public class SysMakeOrderController extends BaseController return prefix + "/addPick"; } + /** + * 跳转创建委内加工入库单 + */ + @GetMapping("/addProcessInbound/{id}") + public String addProcessInbound(@PathVariable("id") Long id, ModelMap mmap) + { + mmap.put("currentUser", ShiroUtils.getSysUser()); + SysMakeOrder sysMakeOrder = sysMakeOrderService.selectSysMakeOrderById(id); + mmap.put("sysMakeOrder", sysMakeOrder); + return prefix + "/addProcessInbound"; + } + + /** + * 跳转创建生产入库单 + */ + @GetMapping("/addProduceInbound/{id}") + public String addProduceInbound(@PathVariable("id") Long id, ModelMap mmap) + { + mmap.put("currentUser", ShiroUtils.getSysUser()); + SysMakeOrder sysMakeOrder = sysMakeOrderService.selectSysMakeOrderById(id); + mmap.put("sysMakeOrder", sysMakeOrder); + return prefix + "/addProduceInbound"; + } + /** * 部门评审 diff --git a/ruoyi-admin/src/main/resources/mapper/erp/ErpInboundOrderDetailMapper.xml b/ruoyi-admin/src/main/resources/mapper/erp/ErpInboundOrderDetailMapper.xml new file mode 100644 index 00000000..2d2bcd09 --- /dev/null +++ b/ruoyi-admin/src/main/resources/mapper/erp/ErpInboundOrderDetailMapper.xml @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + + + + select a.id, a.del_flag, a.create_by, a.create_time, a.update_by, a.update_time, a.remark, a.inbound_order_no, a.material_no, a.makeorder_bom_id, a.completed_num, a.current_num, a.process_fee_unit_price from erp_inbound_order_detail a + + + + + + + + insert into erp_inbound_order_detail + + del_flag, + create_by, + create_time, + update_by, + update_time, + remark, + inbound_order_no, + material_no, + makeorder_bom_id, + completed_num, + current_num, + process_fee_unit_price, + + + #{delFlag}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{remark}, + #{inboundOrderNo}, + #{materialNo}, + #{makeorderBomId}, + #{completedNum}, + #{currentNum}, + #{processFeeUnitPrice}, + + + + + update erp_inbound_order_detail + + del_flag = #{delFlag}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + remark = #{remark}, + inbound_order_no = #{inboundOrderNo}, + material_no = #{materialNo}, + makeorder_bom_id = #{makeorderBomId}, + completed_num = #{completedNum}, + current_num = #{currentNum}, + process_fee_unit_price = #{processFeeUnitPrice}, + + where id = #{id} + + + + delete from erp_inbound_order_detail where id = #{id} + + + + delete from erp_inbound_order_detail where id in + + #{id} + + + + + update erp_inbound_order_detail set del_flag = '1' where id = #{id} + + + + update erp_inbound_order_detail set del_flag = '0' where id = #{id} + + + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/mapper/erp/ErpInboundOrderMapper.xml b/ruoyi-admin/src/main/resources/mapper/erp/ErpInboundOrderMapper.xml new file mode 100644 index 00000000..44430a97 --- /dev/null +++ b/ruoyi-admin/src/main/resources/mapper/erp/ErpInboundOrderMapper.xml @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + + + + select a.id, a.del_flag, a.create_by, a.create_time, a.update_by, a.update_time, a.remark, a.make_no, a.sale_no, a.inbound_order_no, a.inbound_status, a.inbound_type, a.inbound_num from erp_inbound_order a + + + + + + + + insert into erp_inbound_order + + del_flag, + create_by, + create_time, + update_by, + update_time, + remark, + make_no, + sale_no, + inbound_order_no, + inbound_status, + inbound_type, + inbound_num, + + + #{delFlag}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{remark}, + #{makeNo}, + #{saleNo}, + #{inboundOrderNo}, + #{inboundStatus}, + #{inboundType}, + #{inboundNum}, + + + + + update erp_inbound_order + + del_flag = #{delFlag}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + remark = #{remark}, + make_no = #{makeNo}, + sale_no = #{saleNo}, + inbound_order_no = #{inboundOrderNo}, + inbound_status = #{inboundStatus}, + inbound_type = #{inboundType}, + inbound_num = #{inboundNum}, + + where id = #{id} + + + + delete from erp_inbound_order where id = #{id} + + + + delete from erp_inbound_order where id in + + #{id} + + + + + update erp_inbound_order set del_flag = '1' where id = #{id} + + + + update erp_inbound_order set del_flag = '0' where id = #{id} + + + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/templates/erp/inboundOrder/add.html b/ruoyi-admin/src/main/resources/templates/erp/inboundOrder/add.html new file mode 100644 index 00000000..a36608c4 --- /dev/null +++ b/ruoyi-admin/src/main/resources/templates/erp/inboundOrder/add.html @@ -0,0 +1,77 @@ + + + + + + +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/templates/erp/inboundOrder/edit.html b/ruoyi-admin/src/main/resources/templates/erp/inboundOrder/edit.html new file mode 100644 index 00000000..4e9c2219 --- /dev/null +++ b/ruoyi-admin/src/main/resources/templates/erp/inboundOrder/edit.html @@ -0,0 +1,72 @@ + + + + + + +
+
+ +
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/templates/erp/inboundOrder/inboundOrder.html b/ruoyi-admin/src/main/resources/templates/erp/inboundOrder/inboundOrder.html new file mode 100644 index 00000000..b1fdb446 --- /dev/null +++ b/ruoyi-admin/src/main/resources/templates/erp/inboundOrder/inboundOrder.html @@ -0,0 +1,153 @@ + + + + + + +
+
+
+
+
+
    +
  • + + +
  • +
  • + + +
  • +
  • + + +
  • +
  • + + +
  • +
  • + + +
  • +
  • + + +
  • +
  • +  搜索 +  重置 +
  • +
+
+
+
+ + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/templates/system/makeorder/addProcessInbound.html b/ruoyi-admin/src/main/resources/templates/system/makeorder/addProcessInbound.html new file mode 100644 index 00000000..88e8e780 --- /dev/null +++ b/ruoyi-admin/src/main/resources/templates/system/makeorder/addProcessInbound.html @@ -0,0 +1,381 @@ + + + + + + + +
+
+ +
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+
+ +
+
+ + + + + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/templates/system/makeorder/addProduceInbound.html b/ruoyi-admin/src/main/resources/templates/system/makeorder/addProduceInbound.html new file mode 100644 index 00000000..74214b18 --- /dev/null +++ b/ruoyi-admin/src/main/resources/templates/system/makeorder/addProduceInbound.html @@ -0,0 +1,373 @@ + + + + + + + +
+
+ +
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+
+ +
+
+ + + + + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/templates/system/makeorder/makeorder.html b/ruoyi-admin/src/main/resources/templates/system/makeorder/makeorder.html index 732d478d..39ab1bad 100644 --- a/ruoyi-admin/src/main/resources/templates/system/makeorder/makeorder.html +++ b/ruoyi-admin/src/main/resources/templates/system/makeorder/makeorder.html @@ -221,19 +221,27 @@ // actions.push('编辑 '); // actions.push('删除 '); + // 评审 if(row.makeStatus == '0'){ actions.push('评审 '); } + // 部门主管确认 if(row.deptLeaderConfirmStatus == '0'){ actions.push('确认时间 '); } + // 工程审核 if(row.makeStatus == '2'){ actions.push('工程审核 '); } - // 待生产、生产中、部分完成 + // 领料 if(row.makeStatus == '3' || row.makeStatus == '4' || row.makeStatus == '5'){ actions.push('领料 '); } + // 委内入库 + if(row.makeStatus == '4' || row.makeStatus == '5'){ + actions.push('委内入库 '); + actions.push('生产入库 '); + } // if(row.delFlag == '0'){