Browse Source

Merge remote-tracking branch 'origin/dev' into dev

dev
王晓迪 2 weeks ago
parent
commit
23108a6844
  1. 5
      ruoyi-admin/src/main/java/com/ruoyi/erp/mapper/ErpMaterialMapper.java
  2. 8
      ruoyi-admin/src/main/java/com/ruoyi/erp/service/IErpMaterialService.java
  3. 9
      ruoyi-admin/src/main/java/com/ruoyi/erp/service/impl/ErpMaterialServiceImpl.java
  4. 4
      ruoyi-admin/src/main/java/com/ruoyi/sales/controller/SalesEstimateController.java
  5. 7
      ruoyi-admin/src/main/java/com/ruoyi/system/controller/SysSalesOrderController.java
  6. 25
      ruoyi-admin/src/main/java/com/ruoyi/system/domain/SysSalesOrder.java
  7. 8
      ruoyi-admin/src/main/java/com/ruoyi/system/service/ISysSalesOrderService.java
  8. 14
      ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysSalesOrderServiceImpl.java
  9. 9
      ruoyi-admin/src/main/resources/mapper/erp/ErpMaterialMapper.xml
  10. 7
      ruoyi-admin/src/main/resources/mapper/system/SysCustomerQuoteMapper.xml
  11. 37
      ruoyi-admin/src/main/resources/mapper/system/SysSalesOrderMapper.xml
  12. 57
      ruoyi-admin/src/main/resources/templates/sales/estimate/add.html
  13. 1
      ruoyi-admin/src/main/resources/templates/sales/estimate/estimateMaterialSelect.html
  14. 6
      ruoyi-admin/src/main/resources/templates/system/salesOrder/salesOrder.html

5
ruoyi-admin/src/main/java/com/ruoyi/erp/mapper/ErpMaterialMapper.java

@ -117,4 +117,9 @@ public interface ErpMaterialMapper
//根据料号前缀查询匹配物料 //根据料号前缀查询匹配物料
List<ErpMaterialVo> searchMaterialsByPrefix(String prefix); List<ErpMaterialVo> searchMaterialsByPrefix(String prefix);
/**
* 通过materialVo查询物料信息
* */
List<ErpMaterialVo> selectAllErpMaterialListByMaterialVo(ErpMaterialVo erpMaterialVo);
} }

8
ruoyi-admin/src/main/java/com/ruoyi/erp/service/IErpMaterialService.java

@ -127,4 +127,12 @@ public interface IErpMaterialService
public ProcessInstance submitApply(ErpMaterial erpMaterial); public ProcessInstance submitApply(ErpMaterial erpMaterial);
Integer addStockMaterial(ErpMaterialVo erpMaterialVo); Integer addStockMaterial(ErpMaterialVo erpMaterialVo);
/**
* 通过materialVo查询物料信息
* */
List<ErpMaterialVo> selectAllErpMaterialListByMaterialVo(ErpMaterialVo erpMaterialVo);
} }

9
ruoyi-admin/src/main/java/com/ruoyi/erp/service/impl/ErpMaterialServiceImpl.java

@ -465,4 +465,13 @@ public class ErpMaterialServiceImpl implements IErpMaterialService
warehouseInventoryInquiry.setUpdateTime(DateUtils.getNowDate()); warehouseInventoryInquiry.setUpdateTime(DateUtils.getNowDate());
return inventoryInquiryMapper.insertWarehouseInventoryInquiry(warehouseInventoryInquiry); return inventoryInquiryMapper.insertWarehouseInventoryInquiry(warehouseInventoryInquiry);
} }
/**
* 通过materialVo查询物料信息
* */
@Override
public List<ErpMaterialVo> selectAllErpMaterialListByMaterialVo(ErpMaterialVo erpMaterialVo) {
return erpMaterialMapper.selectAllErpMaterialListByMaterialVo(erpMaterialVo);
}
} }

4
ruoyi-admin/src/main/java/com/ruoyi/sales/controller/SalesEstimateController.java

@ -387,10 +387,10 @@ public class SalesEstimateController extends BaseController
*/ */
@ResponseBody @ResponseBody
@PostMapping("/getEstimateMaterialList") @PostMapping("/getEstimateMaterialList")
public TableDataInfo getEstimateMaterialList( ) public TableDataInfo getEstimateMaterialList(ErpMaterialVo erpMaterialVo)
{ {
startPage(); startPage();
List<ErpMaterialVo> erpMaterialVos = materialService.selectAllErpMaterialList(); List<ErpMaterialVo> erpMaterialVos = materialService.selectAllErpMaterialListByMaterialVo(erpMaterialVo);
return getDataTable(erpMaterialVos); return getDataTable(erpMaterialVos);
} }

7
ruoyi-admin/src/main/java/com/ruoyi/system/controller/SysSalesOrderController.java

@ -144,6 +144,9 @@ public class SysSalesOrderController extends BaseController
if (roleKeys.contains("ywyRole")) { if (roleKeys.contains("ywyRole")) {
sysSalesOrderVo.setApplyUser(loginName); sysSalesOrderVo.setApplyUser(loginName);
} }
//通过用户名找到业务登录名,重新给业务员赋值
String tempLoginName = sysSalesOrderService.convertName(sysSalesOrderVo);
sysSalesOrderVo.setBusinessMembers(tempLoginName);
List<SysSalesOrderVo> list = sysSalesOrderService.selectSysSalesOrderList(sysSalesOrderVo); List<SysSalesOrderVo> list = sysSalesOrderService.selectSysSalesOrderList(sysSalesOrderVo);
return getDataTable(list); return getDataTable(list);
} }
@ -158,6 +161,10 @@ public class SysSalesOrderController extends BaseController
@ResponseBody @ResponseBody
public AjaxResult exportAll(SysSalesOrderVo sysSalesOrder) public AjaxResult exportAll(SysSalesOrderVo sysSalesOrder)
{ {
//通过用户名找到业务登录名,重新给业务员赋值
String tempLoginName = sysSalesOrderService.convertName(sysSalesOrder);
sysSalesOrder.setBusinessMembers(tempLoginName);
List<SysSalesOrderVo> list = sysSalesOrderService.selectSysSalesOrderAllList(sysSalesOrder); List<SysSalesOrderVo> list = sysSalesOrderService.selectSysSalesOrderAllList(sysSalesOrder);
ExcelUtil<SysSalesOrderVo> util = new ExcelUtil<SysSalesOrderVo>(SysSalesOrderVo.class); ExcelUtil<SysSalesOrderVo> util = new ExcelUtil<SysSalesOrderVo>(SysSalesOrderVo.class);
return util.exportExcel(list, "销售订单数据"); return util.exportExcel(list, "销售订单数据");

25
ruoyi-admin/src/main/java/com/ruoyi/system/domain/SysSalesOrder.java

@ -207,6 +207,15 @@ public class SysSalesOrder extends BaseEntity {
private List<SelectAftersalesNoticeVO> selectAftersalesNoticeVOList; private List<SelectAftersalesNoticeVO> selectAftersalesNoticeVOList;
//销售子表物料号
private String materialCode;
//销售子表物料名称
private String materialName;
public Long getSalesOrderId() { public Long getSalesOrderId() {
return salesOrderId; return salesOrderId;
} }
@ -744,6 +753,22 @@ public class SysSalesOrder extends BaseEntity {
this.deliveryAddressBillto = deliveryAddressBillto; this.deliveryAddressBillto = deliveryAddressBillto;
} }
public String getMaterialCode() {
return materialCode;
}
public void setMaterialCode(String materialCode) {
this.materialCode = materialCode;
}
public String getMaterialName() {
return materialName;
}
public void setMaterialName(String materialName) {
this.materialName = materialName;
}
@Override @Override
public String toString() { public String toString() {
return Objects.toStringHelper(this) return Objects.toStringHelper(this)

8
ruoyi-admin/src/main/java/com/ruoyi/system/service/ISysSalesOrderService.java

@ -1,5 +1,6 @@
package com.ruoyi.system.service; package com.ruoyi.system.service;
import com.ruoyi.system.domain.SysCustomerQuoteVo;
import com.ruoyi.system.domain.SysSalesOrderVo; import com.ruoyi.system.domain.SysSalesOrderVo;
import com.ruoyi.system.domain.SysSalesOrder; import com.ruoyi.system.domain.SysSalesOrder;
import com.ruoyi.system.domain.SysSalesOrderVo; import com.ruoyi.system.domain.SysSalesOrderVo;
@ -125,4 +126,11 @@ public interface ISysSalesOrderService
* 查询所有可使用的销售订单 * 查询所有可使用的销售订单
* */ * */
List<SysSalesOrderVo> selectSysSalesOrderAllList(SysSalesOrderVo sysSalesOrder); List<SysSalesOrderVo> selectSysSalesOrderAllList(SysSalesOrderVo sysSalesOrder);
/**
* 通过用户名找到业务登录名重新给业务员赋值
* */
String convertName(SysSalesOrderVo sysSalesOrder);
} }

14
ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysSalesOrderServiceImpl.java

@ -223,6 +223,20 @@ public class SysSalesOrderServiceImpl implements ISysSalesOrderService
return sysSalesOrderMapper.selectSysSalesOrderAllList(sysSalesOrder); return sysSalesOrderMapper.selectSysSalesOrderAllList(sysSalesOrder);
} }
/**
* 通过用户名找到业务登录名重新给业务员赋值
* */
@Override
public String convertName(SysSalesOrderVo sysSalesOrder) {
String businessMembers = sysSalesOrder.getBusinessMembers();
if (StringUtils.isNotEmpty(businessMembers)){
String loginName = userMapper.selectLoginNameByUserName(businessMembers);
return loginName;
}
return businessMembers;
}
/** /**
* 新增销售订单 * 新增销售订单
* *

9
ruoyi-admin/src/main/resources/mapper/erp/ErpMaterialMapper.xml

@ -185,6 +185,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
and erp.del_flag = '0' and erp.audit_status = '1' and erp.del_flag = '0' and erp.audit_status = '1'
</select> </select>
<select id="selectAllErpMaterialListByMaterialVo" parameterType="ErpMaterial" resultMap="ErpMaterialResult">
<include refid="selectErpMaterialVo"/>
<where>
<if test="materialNo != null and materialNo != ''"> and material_no like concat(#{materialNo}, '%')</if>
</where>
</select>
<insert id="insertErpMaterial" parameterType="ErpMaterial" useGeneratedKeys="true" keyProperty="id"> <insert id="insertErpMaterial" parameterType="ErpMaterial" useGeneratedKeys="true" keyProperty="id">
insert into erp_material insert into erp_material
<trim prefix="(" suffix=")" suffixOverrides=","> <trim prefix="(" suffix=")" suffixOverrides=",">
@ -342,4 +350,5 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
and erp.del_flag = '0' and erp.audit_status = '1' and erp.del_flag = '0' and erp.audit_status = '1'
and material_no like concat(#{prefix}, '%') escape '\\' and material_no like concat(#{prefix}, '%') escape '\\'
</select> </select>
</mapper> </mapper>

7
ruoyi-admin/src/main/resources/mapper/system/SysCustomerQuoteMapper.xml

@ -101,12 +101,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
and c.materialName like concat('%',#{materialName},'%') and c.materialName like concat('%',#{materialName},'%')
</if> </if>
</where> </where>
group by s.id, s.supplierCode, s.customerCode, s.customerName, s.pricingDate, s.enterprise, s.enterpriseSum, s.common_currency, group by s.id
s.confirm_tax, s.rmbTax, s.usdTax, s.noRmb, s.noRmbSum, s.rmb, s.rmbSum, s.noUsd, s.noUsdSum, s.usd, s.usdSum, s.business_members,
s.degin_flag, s.del_flag, s.create_by, s.create_time, s.update_by, s.update_time, s.remark,
s.audit_status, s.use_status, s.instance_id, s.instance_type,
s.submit_instance_id, s.cancel_instance_id, s.restore_instance_id, s.apply_time, s.apply_user, s.apply_title,
p.dict_value
order by s.audit_status asc, s.create_time desc order by s.audit_status asc, s.create_time desc
</select> </select>

37
ruoyi-admin/src/main/resources/mapper/system/SysSalesOrderMapper.xml

@ -72,6 +72,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="applyTitle" column="apply_title" /> <result property="applyTitle" column="apply_title" />
<result property="applyUser" column="apply_user" /> <result property="applyUser" column="apply_user" />
<result property="applyTime" column="apply_time" /> <result property="applyTime" column="apply_time" />
<result property="materialCode" column="materialCode" />
<result property="materialName" column="materialName" />
</resultMap> </resultMap>
<sql id="selectSysSalesOrderVo"> <sql id="selectSysSalesOrderVo">
@ -108,8 +111,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where dict_type = 'processType' where dict_type = 'processType'
) as p ) as p
on s.instance_type = p.dict_value on s.instance_type = p.dict_value
left join sys_sales_order_child as c on s.sales_order_code = c.quoteId
<where> <where>
<if test="createBy != null and createBy !=''"> and s.create_by = #{createBy}</if>
<if test="salesOrderCode != null and salesOrderCode != ''"> and s.sales_order_code like concat('%', #{salesOrderCode}, '%')</if> <if test="salesOrderCode != null and salesOrderCode != ''"> and s.sales_order_code like concat('%', #{salesOrderCode}, '%')</if>
<if test="salesOrderNumber != null and salesOrderNumber != ''"> and s.sales_order_number like concat('%', #{salesOrderNumber}, '%')</if> <if test="salesOrderNumber != null and salesOrderNumber != ''"> and s.sales_order_number like concat('%', #{salesOrderNumber}, '%')</if>
<if test="enterpriseCode != null and enterpriseCode != ''"> and s.enterprise_code like concat('%', #{enterpriseCode}, '%')</if> <if test="enterpriseCode != null and enterpriseCode != ''"> and s.enterprise_code like concat('%', #{enterpriseCode}, '%')</if>
@ -124,18 +127,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="deliveryStatus != null and deliveryStatus != ''"> and s.delivery_status = #{deliveryStatus}</if> <if test="deliveryStatus != null and deliveryStatus != ''"> and s.delivery_status = #{deliveryStatus}</if>
<if test="closeStatus != null and closeStatus != ''"> and s.close_status = #{closeStatus}</if> <if test="closeStatus != null and closeStatus != ''"> and s.close_status = #{closeStatus}</if>
<if test="invoice != null and invoice != ''"> and s.invoice = #{invoice}</if> <if test="invoice != null and invoice != ''"> and s.invoice = #{invoice}</if>
<if test="instanceType != null and instanceType != ''"> and s.instance_type = #{instanceType}</if> <if test="materialCode != null and materialCode != ''"> and c.materialCode like concat('%', #{materialCode}, '%')</if>
<if test="instanceId != null and instanceId != ''"> and s.instance_id = #{instanceId}</if> <if test="materialName != null and materialName != ''">
<if test="applyUser != null and applyUser != ''"> and s.apply_user = #{applyUser}</if> and c.materialName like concat('%',#{materialName},'%')
<if test="applyTime != null and applyTime != ''"> and s.apply_time = #{applyTime}</if>
<if test="applyTitle != null and applyTitle != ''"> and s.apply_title = #{applyTitle}</if>
<if test="applyUsers != null and applyUsers != ''"> and s.apply_user in
<foreach item="user" index="index" collection="applyUsers" open="(" separator="," close=")">
#{user}
</foreach>
</if> </if>
</where> </where>
order by s.audit_status,s.create_time desc group by s.sales_order_id
order by s.audit_status asc,s.create_time desc
</select> </select>
<select id="selectSysSalesOrderById" parameterType="Long" resultMap="SysSalesOrderResult"> <select id="selectSysSalesOrderById" parameterType="Long" resultMap="SysSalesOrderResult">
<include refid="selectSysSalesOrderVo"/> <include refid="selectSysSalesOrderVo"/>
@ -173,8 +171,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where dict_type = 'processType' where dict_type = 'processType'
) as p ) as p
on s.instance_type = p.dict_value on s.instance_type = p.dict_value
left join sys_sales_order_child as c on s.sales_order_code = c.quoteId
<where> <where>
<if test="createBy != null and createBy !=''"> and s.create_by = #{createBy}</if>
<if test="salesOrderCode != null and salesOrderCode != ''"> and s.sales_order_code like concat('%', #{salesOrderCode}, '%')</if> <if test="salesOrderCode != null and salesOrderCode != ''"> and s.sales_order_code like concat('%', #{salesOrderCode}, '%')</if>
<if test="salesOrderNumber != null and salesOrderNumber != ''"> and s.sales_order_number like concat('%', #{salesOrderNumber}, '%')</if> <if test="salesOrderNumber != null and salesOrderNumber != ''"> and s.sales_order_number like concat('%', #{salesOrderNumber}, '%')</if>
<if test="enterpriseCode != null and enterpriseCode != ''"> and s.enterprise_code like concat('%', #{enterpriseCode}, '%')</if> <if test="enterpriseCode != null and enterpriseCode != ''"> and s.enterprise_code like concat('%', #{enterpriseCode}, '%')</if>
@ -189,18 +187,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="deliveryStatus != null and deliveryStatus != ''"> and s.delivery_status = #{deliveryStatus}</if> <if test="deliveryStatus != null and deliveryStatus != ''"> and s.delivery_status = #{deliveryStatus}</if>
<if test="closeStatus != null and closeStatus != ''"> and s.close_status = #{closeStatus}</if> <if test="closeStatus != null and closeStatus != ''"> and s.close_status = #{closeStatus}</if>
<if test="invoice != null and invoice != ''"> and s.invoice = #{invoice}</if> <if test="invoice != null and invoice != ''"> and s.invoice = #{invoice}</if>
<if test="instanceType != null and instanceType != ''"> and s.instance_type = #{instanceType}</if> <if test="materialCode != null and materialCode != ''"> and c.materialCode like concat('%', #{materialCode}, '%')</if>
<if test="instanceId != null and instanceId != ''"> and s.instance_id = #{instanceId}</if> <if test="materialName != null and materialName != ''">
<if test="applyUser != null and applyUser != ''"> and s.apply_user = #{applyUser}</if> and c.materialName like concat('%',#{materialName},'%')
<if test="applyTime != null and applyTime != ''"> and s.apply_time = #{applyTime}</if>
<if test="applyTitle != null and applyTitle != ''"> and s.apply_title = #{applyTitle}</if>
<if test="applyUsers != null and applyUsers != ''"> and s.apply_user in
<foreach item="user" index="index" collection="applyUsers" open="(" separator="," close=")">
#{user}
</foreach>
</if> </if>
</where> </where>
order by s.audit_status,s.create_time desc group by s.sales_order_id
order by s.audit_status asc,s.create_time desc
</select> </select>

57
ruoyi-admin/src/main/resources/templates/sales/estimate/add.html

@ -356,29 +356,40 @@
$.table.init(options); $.table.init(options);
}); });
//逻辑新增一行物料数据
function estimateDoSubmit(index, layero,uniqueId){ function estimateDoSubmit(index, layero, uniqueId) {
console.log(uniqueId); console.log(uniqueId);
var iframeWin = window[layero.find('iframe')[0]['name']]; var iframeWin = window[layero.find('iframe')[0]['name']];
var rowData = iframeWin.$('#bootstrap-estimateMaterialSelect-table').bootstrapTable('getSelections')[0]; var selectedRows = iframeWin.$('#bootstrap-estimateMaterialSelect-table').bootstrapTable('getSelections');
//判断是否重复
var rows = $("#bootstrap-table").bootstrapTable('getData').length;
for(var i=0;i<rows;i++){
var data = $("#bootstrap-table").bootstrapTable('getData')[i];
if(data.materialNo == rowData.materialNo){ if (selectedRows.length === 0) {
$.modal.alertError("不能选择已添加过的相同物料"); $.modal.alertError("请选择至少一条物料信息");
return; return;
} }
var existingData = $("#bootstrap-table").bootstrapTable('getData');
// 存储要插入的新行
var newRows = [];
// 遍历选中的每一行物料信息
for (var i = 0; i < selectedRows.length; i++) {
var rowData = selectedRows[i];
// 检查是否已经存在相同的物料
var isDuplicate = false;
for (var j = 0; j < existingData.length; j++) {
if (existingData[j].materialNo === rowData.materialNo) {
isDuplicate = true;
break;
}
} }
console.log("rowData: "+rowData); if (!isDuplicate) {
$("#bootstrap-table").bootstrapTable('insertRow', { // 如果不存在,则准备插入新行
index:1, newRows.push({
row: { materialNo: rowData.materialNo,
materialNo:rowData.materialNo, materialPhotourl: rowData.photoUrl,
materialPhotourl:rowData.photoUrl,
materialName: rowData.materialName, materialName: rowData.materialName,
materialType: rowData.materialType, materialType: rowData.materialType,
materialDescribe: rowData.describe, materialDescribe: rowData.describe,
@ -387,8 +398,20 @@
materialProcessMethod: rowData.processMethod, materialProcessMethod: rowData.processMethod,
materialDeptType: rowData.warehouseDept, materialDeptType: rowData.warehouseDept,
materialNum: 0 materialNum: 0
});
} else {
$.modal.alertError("不能选择已添加过的相同物料");
} }
}) }
// 批量插入新行
if (newRows.length > 0) {
$("#bootstrap-table").bootstrapTable('insertRow', { index: 1, row: newRows[0] });
for (var k = 1; k < newRows.length; k++) {
$("#bootstrap-table").bootstrapTable('insertRow', { index: 1, row: newRows[k] });
}
}
getTotalAmount(); getTotalAmount();
layer.close(index); layer.close(index);
} }

1
ruoyi-admin/src/main/resources/templates/sales/estimate/estimateMaterialSelect.html

@ -42,7 +42,6 @@
showRefresh: false, showRefresh: false,
showToggle: false, showToggle: false,
clickToSelect: true, // 点击选中行 clickToSelect: true, // 点击选中行
singleSelect: true, // 单选
url: prefix + "/getEstimateMaterialList", url: prefix + "/getEstimateMaterialList",
modalName: "物料信息", modalName: "物料信息",
columns: [{ columns: [{

6
ruoyi-admin/src/main/resources/templates/system/salesOrder/salesOrder.html

@ -133,7 +133,7 @@
</li> </li>
<li> <li>
<label>生产状态:</label> <label>生产状态:</label>
<select name="makeStatus" th:with="type=${@dict.getType('sys_make_status')}"> <select name="makeStatus" th:with="type=${@dict.getType('sys_erp_makeStatus')}">
<option value="">所有</option> <option value="">所有</option>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option> <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select> </select>
@ -461,7 +461,7 @@
var salesOrderCodeData = []; var salesOrderCodeData = [];
var selections = $("#bootstrap-table").bootstrapTable("getSelections"); var selections = $("#bootstrap-table").bootstrapTable("getSelections");
if(selections.length === 0){ if(selections.length === 0){
$.modal.confirm("确定导出所有出货通知吗?", function() { $.modal.confirm("确定导出所有销售订单吗?", function() {
var currentId = $.common.isEmpty(formId) ? $('form').attr('id') : formId; var currentId = $.common.isEmpty(formId) ? $('form').attr('id') : formId;
var params = $("#bootstrap-table").bootstrapTable('getOptions'); var params = $("#bootstrap-table").bootstrapTable('getOptions');
var dataParam = $("#" + currentId).serializeArray(); var dataParam = $("#" + currentId).serializeArray();
@ -480,7 +480,7 @@
}); });
}); });
}else { }else {
$.modal.confirm("确定导出选中的所有出货通知吗?", function () { $.modal.confirm("确定导出选中的所有销售订单吗?", function () {
//·拼接单号 //·拼接单号
for(let i=0;i<selections.length;i++){ for(let i=0;i<selections.length;i++){
salesOrderCodeData.push(selections[i].salesOrderCode); salesOrderCodeData.push(selections[i].salesOrderCode);

Loading…
Cancel
Save