diff --git a/ruoyi-admin/src/main/java/com/ruoyi/project/middle/mesOutorder/controller/MesOutorderMiddleController.java b/ruoyi-admin/src/main/java/com/ruoyi/project/middle/mesOutorder/controller/MesOutorderMiddleController.java index 40c7fb0..1a2f292 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/project/middle/mesOutorder/controller/MesOutorderMiddleController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/project/middle/mesOutorder/controller/MesOutorderMiddleController.java @@ -6,6 +6,7 @@ import java.util.UUID; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.project.bas.product.domain.BasProduct; +import com.ruoyi.project.middle.mesOutorder.domain.MesOutorderMiddleAutoVo; import com.ruoyi.project.middle.mesOutorder.domain.MesOutorderMiddleVo; import com.ruoyi.project.out.outStock.domain.OutStockoutVo; import com.ruoyi.web.controller.common.BusinessException; @@ -26,7 +27,7 @@ import org.springframework.web.multipart.MultipartFile; /** * mes出库单中间表Controller - * + * * @author ruoyi * @date 2024-06-17 */ @@ -134,9 +135,18 @@ public class MesOutorderMiddleController extends BaseController @PostMapping("/addSave") @ResponseBody public AjaxResult addSave1(@RequestBody MesOutorderMiddleVo mesOutorderMiddleVo) { - AjaxResult ajaxResult= mesOutorderMiddleService.insertMesOutorder(mesOutorderMiddleVo); + AjaxResult ajaxResult= mesOutorderMiddleService.insertMesOutorder(mesOutorderMiddleVo,"1"); return ajaxResult; } + + @Log(title = "自动建单", businessType = BusinessType.INSERT) + @PostMapping("/addSaveAuto") + @ResponseBody + public AjaxResult addSaveAuto(@RequestBody MesOutorderMiddleAutoVo mesOutorderMiddleAutoVo) { + AjaxResult ajaxResult= mesOutorderMiddleService.insertMesOutorderAuto(mesOutorderMiddleAutoVo); + return ajaxResult; + } + @Log(title = "修改单据状态", businessType = BusinessType.INSERT) @PostMapping("/updateStatus") @ResponseBody diff --git a/ruoyi-admin/src/main/java/com/ruoyi/project/middle/mesOutorder/domain/MesOutorderMiddle.java b/ruoyi-admin/src/main/java/com/ruoyi/project/middle/mesOutorder/domain/MesOutorderMiddle.java index e26fd59..2d8c406 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/project/middle/mesOutorder/domain/MesOutorderMiddle.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/project/middle/mesOutorder/domain/MesOutorderMiddle.java @@ -7,7 +7,7 @@ import com.ruoyi.common.core.domain.BaseEntity; /** * mes出库单中间表对象 mes_outorder_middle - * + * * @author ruoyi * @date 2024-06-17 */ @@ -50,6 +50,16 @@ public class MesOutorderMiddle private String beginDate; private String endDate; + private String createType; + + public String getCreateType() { + return createType; + } + + public void setCreateType(String createType) { + this.createType = createType; + } + public String getEndDate() { return endDate; } @@ -129,52 +139,52 @@ public class MesOutorderMiddle this.id = id; } - public String getId() + public String getId() { return id; } - public void setOrderId(String orderId) + public void setOrderId(String orderId) { this.orderId = orderId; } - public String getOrderId() + public String getOrderId() { return orderId; } - public void setConstructor(String constructor) + public void setConstructor(String constructor) { this.constructor = constructor; } - public String getConstructor() + public String getConstructor() { return constructor; } - public void setOperationType(String operationType) + public void setOperationType(String operationType) { this.operationType = operationType; } - public String getOperationType() + public String getOperationType() { return operationType; } - public void setXfTime(String xfTime) + public void setXfTime(String xfTime) { this.xfTime = xfTime; } - public String getXfTime() + public String getXfTime() { return xfTime; } - public void setOrderType(String orderType) + public void setOrderType(String orderType) { this.orderType = orderType; } - public String getOrderType() + public String getOrderType() { return orderType; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/project/middle/mesOutorder/domain/MesOutorderMiddleAutoVo.java b/ruoyi-admin/src/main/java/com/ruoyi/project/middle/mesOutorder/domain/MesOutorderMiddleAutoVo.java new file mode 100644 index 0000000..c4683ed --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/project/middle/mesOutorder/domain/MesOutorderMiddleAutoVo.java @@ -0,0 +1,27 @@ +package com.ruoyi.project.middle.mesOutorder.domain; + +import com.ruoyi.project.middle.mesOutorderDetail.domain.MesOutorderDetailMiddle; +import com.ruoyi.project.out.productAndStock.domain.ViewProductAndStock; + +import java.util.List; + +public class MesOutorderMiddleAutoVo { + + private MesOutorderMiddle mesOutorderMiddle; + + private ViewProductAndStock viewProductAndStock; + + public MesOutorderMiddle getMesOutorderMiddle() { + return mesOutorderMiddle; + } + + public void setMesOutorderMiddle(MesOutorderMiddle mesOutorderMiddle) { + this.mesOutorderMiddle = mesOutorderMiddle; + } + public ViewProductAndStock getViewProductAndStock() { + return viewProductAndStock; + } + public void setViewProductAndStock(ViewProductAndStock viewProductAndStock) { + this.viewProductAndStock = viewProductAndStock; + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/project/middle/mesOutorder/service/IMesOutorderMiddleService.java b/ruoyi-admin/src/main/java/com/ruoyi/project/middle/mesOutorder/service/IMesOutorderMiddleService.java index 5803c0d..d6964d2 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/project/middle/mesOutorder/service/IMesOutorderMiddleService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/project/middle/mesOutorder/service/IMesOutorderMiddleService.java @@ -5,19 +5,20 @@ import java.util.Map; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.project.middle.mesOutorder.domain.MesOutorderMiddle; +import com.ruoyi.project.middle.mesOutorder.domain.MesOutorderMiddleAutoVo; import com.ruoyi.project.middle.mesOutorder.domain.MesOutorderMiddleVo; /** * mes出库单中间表Service接口 - * + * * @author ruoyi * @date 2024-06-17 */ -public interface IMesOutorderMiddleService +public interface IMesOutorderMiddleService { /** * 查询mes出库单中间表 - * + * * @param id mes出库单中间表主键 * @return mes出库单中间表 */ @@ -25,7 +26,7 @@ public interface IMesOutorderMiddleService /** * 查询mes出库单中间表列表 - * + * * @param mesOutorderMiddle mes出库单中间表 * @return mes出库单中间表集合 */ @@ -33,7 +34,7 @@ public interface IMesOutorderMiddleService /** * 新增mes出库单中间表 - * + * * @param mesOutorderMiddle mes出库单中间表 * @return 结果 */ @@ -41,7 +42,7 @@ public interface IMesOutorderMiddleService /** * 修改mes出库单中间表 - * + * * @param mesOutorderMiddle mes出库单中间表 * @return 结果 */ @@ -49,7 +50,7 @@ public interface IMesOutorderMiddleService /** * 批量删除mes出库单中间表 - * + * * @param ids 需要删除的mes出库单中间表主键集合 * @return 结果 */ @@ -57,14 +58,14 @@ public interface IMesOutorderMiddleService /** * 删除mes出库单中间表信息 - * + * * @param id mes出库单中间表主键 * @return 结果 */ public int deleteMesOutorderMiddleById(String id); - public AjaxResult insertMesOutorder(MesOutorderMiddleVo mesOutorderMiddleVo); + public AjaxResult insertMesOutorder(MesOutorderMiddleVo mesOutorderMiddleVo,String createType); /** 修改单据状态 @@ -72,4 +73,5 @@ public interface IMesOutorderMiddleService public Map updateStatus(String[] orderIds, String status, String newStatus); - } + AjaxResult insertMesOutorderAuto(MesOutorderMiddleAutoVo mesOutorderMiddleAutoVo); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/project/middle/mesOutorder/service/impl/MesOutorderMiddleServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/project/middle/mesOutorder/service/impl/MesOutorderMiddleServiceImpl.java index 220cdc7..1b630ce 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/project/middle/mesOutorder/service/impl/MesOutorderMiddleServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/project/middle/mesOutorder/service/impl/MesOutorderMiddleServiceImpl.java @@ -2,10 +2,7 @@ package com.ruoyi.project.middle.mesOutorder.service.impl; import java.math.BigDecimal; import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.entity.SysUser; @@ -15,6 +12,7 @@ import com.ruoyi.common.utils.uuid.UUID; import com.ruoyi.project.bas.basCustomer.domain.BasCustomer; import com.ruoyi.project.bas.basCustomer.mapper.BasCustomerMapper; import com.ruoyi.project.bas.basJobId.service.IBasJobIdService; +import com.ruoyi.project.middle.mesOutorder.domain.MesOutorderMiddleAutoVo; import com.ruoyi.project.middle.mesOutorder.domain.MesOutorderMiddleVo; import com.ruoyi.project.middle.mesOutorderDetail.domain.MesOutorderDetailMiddle; import com.ruoyi.project.middle.mesOutorderDetail.mapper.MesOutorderDetailMiddleMapper; @@ -22,6 +20,8 @@ import com.ruoyi.project.out.outStock.domain.OutStockout; import com.ruoyi.project.out.outStock.mapper.OutStockoutMapper; import com.ruoyi.project.out.outStockDetail.domain.OutStockoutDetail; import com.ruoyi.project.out.outStockDetail.mapper.OutStockoutDetailMapper; +import com.ruoyi.project.out.productAndStock.domain.ViewProductAndStock; +import com.ruoyi.project.out.productAndStock.service.IViewProductAndStockService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.project.middle.mesOutorder.mapper.MesOutorderMiddleMapper; @@ -31,12 +31,12 @@ import com.ruoyi.common.core.text.Convert; /** * mes出库单中间表Service业务层处理 - * + * * @author ruoyi * @date 2024-06-17 */ @Service -public class MesOutorderMiddleServiceImpl implements IMesOutorderMiddleService +public class MesOutorderMiddleServiceImpl implements IMesOutorderMiddleService { @Autowired private MesOutorderMiddleMapper mesOutorderMiddleMapper; @@ -50,10 +50,12 @@ public class MesOutorderMiddleServiceImpl implements IMesOutorderMiddleService private OutStockoutMapper outStockoutMapper; @Autowired private OutStockoutDetailMapper outStockoutDetailMapper; + @Autowired + private IViewProductAndStockService viewProductAndStockService; /** * 查询mes出库单中间表 - * + * * @param id mes出库单中间表主键 * @return mes出库单中间表 */ @@ -65,7 +67,7 @@ public class MesOutorderMiddleServiceImpl implements IMesOutorderMiddleService /** * 查询mes出库单中间表列表 - * + * * @param mesOutorderMiddle mes出库单中间表 * @return mes出库单中间表 */ @@ -77,7 +79,7 @@ public class MesOutorderMiddleServiceImpl implements IMesOutorderMiddleService /** * 新增mes出库单中间表 - * + * * @param mesOutorderMiddle mes出库单中间表 * @return 结果 */ @@ -91,7 +93,7 @@ public class MesOutorderMiddleServiceImpl implements IMesOutorderMiddleService /** * 修改mes出库单中间表 - * + * * @param mesOutorderMiddle mes出库单中间表 * @return 结果 */ @@ -103,7 +105,7 @@ public class MesOutorderMiddleServiceImpl implements IMesOutorderMiddleService /** * 批量删除mes出库单中间表 - * + * * @param ids 需要删除的mes出库单中间表主键 * @return 结果 */ @@ -115,7 +117,7 @@ public class MesOutorderMiddleServiceImpl implements IMesOutorderMiddleService /** * 删除mes出库单中间表信息 - * + * * @param id mes出库单中间表主键 * @return 结果 */ @@ -126,7 +128,7 @@ public class MesOutorderMiddleServiceImpl implements IMesOutorderMiddleService } @Override - public AjaxResult insertMesOutorder(MesOutorderMiddleVo mesOutorderMiddleVo) { + public AjaxResult insertMesOutorder(MesOutorderMiddleVo mesOutorderMiddleVo,String createType) { try { MesOutorderMiddle mesOutorderMiddle = mesOutorderMiddleVo.getMesOutorderMiddle(); mesOutorderMiddle.setId(UUID.randomUUID().toString()); @@ -138,6 +140,7 @@ public class MesOutorderMiddleServiceImpl implements IMesOutorderMiddleService userName = user.getUserName(); mesOutorderMiddle.setConstructor(userName); mesOutorderMiddle.setStatus("1"); + mesOutorderMiddle.setCreateType(createType); mesOutorderMiddleMapper.insertMesOutorderMiddle(mesOutorderMiddle); OutStockout outStockout = new OutStockout(); outStockout.setStockoutId(mesOutorderMiddle.getSaleOrder()); @@ -211,4 +214,41 @@ public class MesOutorderMiddleServiceImpl implements IMesOutorderMiddleService resultMap.put("errorInfo", builder.toString()); return resultMap; } + + @Override + public AjaxResult insertMesOutorderAuto(MesOutorderMiddleAutoVo mesOutorderMiddleAutoVo) { + ViewProductAndStock viewProductAndStock = mesOutorderMiddleAutoVo.getViewProductAndStock(); + List viewProductAndStocks = viewProductAndStockService.selectViewProductAndStockList(viewProductAndStock); + MesOutorderMiddleVo mesOutorderMiddleVo = new MesOutorderMiddleVo(); + MesOutorderMiddle mesOutorderMiddle = new MesOutorderMiddle(); + List mesOutorderDetailMiddleList = new ArrayList<>(); + BigDecimal quantity = viewProductAndStock.getBhQuantity(); + //拼接数据 + for (ViewProductAndStock viewProductAndStock1 : viewProductAndStocks) { + if (quantity.compareTo(BigDecimal.valueOf(0))==0){ + break; + } + MesOutorderDetailMiddle mesOutorderDetailMiddle = new MesOutorderDetailMiddle(); + mesOutorderDetailMiddle.setErpCode(viewProductAndStock1.getProductId()); + mesOutorderDetailMiddle.setProductName(viewProductAndStock1.getProductName()); + mesOutorderDetailMiddle.setProduceDate(viewProductAndStock1.getInClassName()); + mesOutorderDetailMiddle.setProductBatch(viewProductAndStock1.getLotNo()); + mesOutorderDetailMiddle.setMaterialCode(viewProductAndStock1.getClassgroupNumber()); + mesOutorderDetailMiddle.setShape(viewProductAndStock1.getProductDetailId()); + mesOutorderDetailMiddle.setPrintDate(viewProductAndStock1.getPrintDate()); + //mesOutorderDetailMiddle.setQuantity(viewProductAndStock1.getMaterialCode()); + //mesOutorderDetailMiddle.setRemark(viewProductAndStock1.getMaterialCode()); + if (quantity.compareTo(viewProductAndStock1.getQuantity())>=0){ + mesOutorderDetailMiddle.setPlanInQuantity(viewProductAndStock1.getQuantity()); + quantity = quantity.subtract(viewProductAndStock1.getQuantity()); + }else { + mesOutorderDetailMiddle.setPlanInQuantity(quantity); + quantity = BigDecimal.ZERO; + } + mesOutorderDetailMiddleList.add(mesOutorderDetailMiddle); + } + mesOutorderMiddleVo.setMesOutorderMiddle(mesOutorderMiddle); + mesOutorderMiddleVo.setMesOutorderDetailMiddleList(mesOutorderDetailMiddleList); + return insertMesOutorder(mesOutorderMiddleVo, "2"); + } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/project/out/outStock/service/impl/OutStockoutServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/project/out/outStock/service/impl/OutStockoutServiceImpl.java index 5e1e07b..51a3ee2 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/project/out/outStock/service/impl/OutStockoutServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/project/out/outStock/service/impl/OutStockoutServiceImpl.java @@ -472,7 +472,7 @@ public class OutStockoutServiceImpl implements IOutStockoutService { List mesOutorderDetailMiddles = mesOutorderDetailMiddleMapper.selectMesOutorderDetailMiddleList(mesOutorderDetailMiddle2); //只要有=备注不为空,就循环主单下的整个子单 - + // for(int i=0;i - + @@ -16,10 +16,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + - select mom.id, order_id, constructor, operation_type, create_time, xf_time, order_type,sale_unit,status,sale_order,customer_name as sale_name from mes_outorder_middle mom + select mom.id, order_id, constructor, operation_type, create_time, xf_time, order_type,sale_unit,status,sale_order,customer_name as sale_name,mom.create_type from mes_outorder_middle mom left join bas_customer bc on bc.customer_no = mom.sale_unit @@ -28,7 +29,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + - + insert into mes_outorder_middle @@ -78,6 +79,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" sale_unit, status, sale_order, + create_type, #{id}, @@ -90,6 +92,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{saleUnit}, #{status}, #{saleOrder}, + #{createType}, @@ -114,7 +117,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - delete from mes_outorder_middle where id in + delete from mes_outorder_middle where id in #{id} @@ -123,4 +126,4 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" {call proc_updateMsedjStatus_out( #{orderId},#{status},#{newStatus},#{v_result,mode=OUT,jdbcType=VARCHAR},#{v_resultString,mode=OUT,jdbcType=VARCHAR})} - \ No newline at end of file + diff --git a/ruoyi-admin/src/main/resources/templates/out/addSalePlan.html b/ruoyi-admin/src/main/resources/templates/out/addSalePlan.html index 2a8cc2c..c58763a 100644 --- a/ruoyi-admin/src/main/resources/templates/out/addSalePlan.html +++ b/ruoyi-admin/src/main/resources/templates/out/addSalePlan.html @@ -66,6 +66,9 @@ 继续建单 + + 自动建单 + 删除物资 @@ -482,6 +485,104 @@ $.form.reset() } + // 自动建单弹窗 + function openAutoCreateModal() { + var html = '
' + + '
' + + '
' + + '' + + '
' + + '' + + '
' + + '
' + + '
' + + '' + + '
' + + '' + + '
' + + '
' + + '
' + + '' + + '
' + + '' + + '
' + + '
' + + '
' + + '
'; + + layer.open({ + type: 1, + title: '自动建单', + area: ['500px', '320px'], + content: html, + btn: ['确定', '取消'], + yes: function (index, layero) { + var materialCode = $("#auto_materialCode").val(); + var produceDate = $("#auto_produceDate").val(); + var planInQuantity = $("#auto_planInQuantity").val(); + + if ($.common.isEmpty(materialCode) || $.common.isEmpty(planInQuantity)) { + $.modal.alertWarning("物料牌号和备货数量为必填项"); + return; + } + + if (planInQuantity <= 0) { + $.modal.alertWarning("备货数量必须大于0"); + return; + } + + var loadIndex = layer.load(2); + + // 组装参数,保持与 /mes/mesOutorder/addSave 的 mesOutorderMiddle 一致 + var params = new Object(); + var o = {}; + var a = $("#formId").serializeArray(); + $.each(a, function() { + if (o[this.name]) { + if (!o[this.name].push) { + o[this.name] = [o[this.name]]; + } + o[this.name].push(this.value || ''); + } else { + o[this.name] = this.value || ''; + } + }); + + // 将弹窗中的内容加入 viewProductAndStock + var viewProductAndStock = { + classgroupNumber: materialCode, + inClassName: produceDate, + bhQuantity: planInQuantity + }; + + params.mesOutorderMiddle = o; + params.viewProductAndStock = viewProductAndStock; + + // 调用正式接口 + $.ajax({ + url: 'http://localhost:8090/mes/mesOutorder/addSaveAuto', + type: 'post', + contentType: 'application/json', + data: JSON.stringify(params), + dataType: 'json', + success: function(result) { + layer.close(loadIndex); + if (result.code == web_status.SUCCESS) { + layer.close(index); + $.modal.msgSuccess("自动建单成功"); + } else { + $.modal.alertError(result.msg || "接口调用失败"); + } + }, + error: function(XMLHttpRequest, textStatus, error) { + layer.close(loadIndex); + $.modal.alertError("网络错误,设置失败"); + } + }); + } + }); + } + //删除物资 function deleteProduct() { //获取选中行的内容 diff --git a/ruoyi-admin/src/main/resources/templates/out/salePlan.html b/ruoyi-admin/src/main/resources/templates/out/salePlan.html index 25f3d1d..ad561a5 100644 --- a/ruoyi-admin/src/main/resources/templates/out/salePlan.html +++ b/ruoyi-admin/src/main/resources/templates/out/salePlan.html @@ -927,6 +927,19 @@ title: '销售单位', align: 'center' }, + { + field: 'createType', + title: '建单类型', + align: 'center', + formatter: function (value, row, index) { + // return $.table.selectDictLabel(djstatus, value); + if (value === "1") { + return "人工建单" + } else if (value == "2") { + return "自动建单" + } + } + }, { field: 'createTime',