Browse Source

[feat]

生产管理 生产退料
修改生产退料列表页面,新增表格行样式,修改搜索栏输入,新增导出方法;
修改生产退料详情页面,修改已退料数字段名称;
新增获取生产退料单导出列表service方法;
修改生产退料mapper,修改列表查询,时间区间查询,添加排序,新增根据退料单号批量查询退料单方法;
新增根据退料单号和料号查询退料单详情mapper方法;
dev
王晓迪 2 months ago
parent
commit
62fdc8b154
  1. 11
      ruoyi-admin/src/main/java/com/ruoyi/system/controller/MakeReturnOrderController.java
  2. 108
      ruoyi-admin/src/main/java/com/ruoyi/system/domain/exportDto/MakeReturnOrderDto.java
  3. 4
      ruoyi-admin/src/main/java/com/ruoyi/system/mapper/MakeReturnOrderDetailMapper.java
  4. 3
      ruoyi-admin/src/main/java/com/ruoyi/system/mapper/MakeReturnOrderMapper.java
  5. 61
      ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/MakeReturnOrderServiceImpl.java
  6. 6
      ruoyi-admin/src/main/resources/mapper/system/MakeReturnOrderDetailMapper.xml
  7. 13
      ruoyi-admin/src/main/resources/mapper/system/MakeReturnOrderMapper.xml
  8. 2
      ruoyi-admin/src/main/resources/templates/quality/refundsExchanges/refundsExchanges.html
  9. 2
      ruoyi-admin/src/main/resources/templates/system/makeReturnOrder/detail.html
  10. 43
      ruoyi-admin/src/main/resources/templates/system/makeReturnOrder/makeReturnOrder.html

11
ruoyi-admin/src/main/java/com/ruoyi/system/controller/MakeReturnOrderController.java

@ -8,8 +8,10 @@ import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.process.general.service.IProcessService;
import com.ruoyi.system.domain.MakeReturnOrderDetail;
import com.ruoyi.system.domain.Vo.MakeReturnOrderVO;
import com.ruoyi.system.domain.exportDto.MakeReturnOrderDto;
import com.ruoyi.system.service.IMakeReturnOrderDetailService;
import com.ruoyi.warehouse.domain.VO.WarehouseInventoryReportDamageVo;
import com.ruoyi.warehouse.domain.WarehouseInventoryReportDamage;
import com.ruoyi.warehouse.domain.WarehouseInventoryReportDamageChild;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService;
@ -20,6 +22,7 @@ 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.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.enums.BusinessType;
@ -87,10 +90,10 @@ public class MakeReturnOrderController extends BaseController
@Log(title = "生产退料单", businessType = BusinessType.EXPORT)
@PostMapping("/export")
@ResponseBody
public AjaxResult export(MakeReturnOrderVO makeReturnOrderVO)
public AjaxResult export(MakeReturnOrderVO makeReturnOrderVO, String ids)
{
List<MakeReturnOrderVO> list = makeReturnOrderService.selectMakeReturnOrderList(makeReturnOrderVO);
ExcelUtil<MakeReturnOrderVO> util = new ExcelUtil<MakeReturnOrderVO>(MakeReturnOrderVO.class);
List<MakeReturnOrderDto> list = makeReturnOrderService.getMakeReturnExportList(makeReturnOrderVO,ids);
ExcelUtil<MakeReturnOrderDto> util = new ExcelUtil<MakeReturnOrderDto>(MakeReturnOrderDto.class);
return util.exportExcel(list, "生产退料单数据");
}
@ -163,7 +166,7 @@ public class MakeReturnOrderController extends BaseController
String verifyName = task.getTaskDefinitionKey().substring(0, 1).toUpperCase() + task.getTaskDefinitionKey().substring(1);
boolean approvedFlag = processService.complete(taskId, instanceId, makeReturnOrderVO.getApplyTitle(), makeReturnOrderVO.getMakeReturnOrderCode(),
"makeorderPick", new HashMap<String, Object>(), request);
"makeorderReturn", new HashMap<String, Object>(), request);
if(!approvedFlag){
// 审核状态-审核拒绝
makeReturnOrderVO.setAuditStatus("2");

108
ruoyi-admin/src/main/java/com/ruoyi/system/domain/exportDto/MakeReturnOrderDto.java

@ -0,0 +1,108 @@
package com.ruoyi.system.domain.exportDto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
import java.util.Date;
/*
* 生产退料单导出对象*/
@Data
public class MakeReturnOrderDto extends BaseEntity {
/** 生产退料单号 */
@Excel(name = "生产退料单号")
private String makeReturnOrderCode;
/** 生产领料单号 */
@Excel(name = "生产领料单号")
private String pickNo;
/** 退料状态(0待退料,1部分退料,2全部退料) */
@Excel(name = "退料状态", dictType = "return_status")
private String returnStatus;
/** 物料合计 */
@Excel(name = "物料合计")
private Integer materialSum;
/** 退料数量合计 */
@Excel(name = "退料数合计")
private Integer returnSum;
/** 合格数 */
@Excel(name = "合格数")
private Integer qualifiedNum;
/** 不良数 */
@Excel(name = "不良数")
private Integer unqualifiedNum;
/** 入库数 */
@Excel(name = "入库数")
private Integer storageNum;
/** 申请人 */
@Excel(name = "申请人")
private String applyUser;
/** 申请时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "申请时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date applyTime;
/** 审核状态(0待审核,1审核通过,2审核拒绝) */
@Excel(name = "审核状态", dictType = "auditStatus")
private String auditStatus;
/** 料号 */
@Excel(name = "料号")
private String materialNo;
/** 物料名称 */
@Excel(name = "物料名称")
private String materialName;
/** 图片 */
@Excel(name = "图片")
private String photoUrl;
/** 物料型号 */
@Excel(name = "物料型号")
private String materialModel;
/** 加工方式 */
@Excel(name = "加工方式",dictType = "processMethod")
private String processMethod;
/** 品牌 */
@Excel(name = "品牌 ")
private String brand;
/** 单位 */
@Excel(name = "单位")
private String unit;
/** 描述 */
@Excel(name = "描述")
private String describe;
/** 用量 */
@Excel(name = "用量")
private Integer useNum;
/** 已领料数 */
@Excel(name = "已领料数")
private Integer hasPickNum;
/** 已退料数 */
@Excel(name = "实际已退料数")
private Integer hasReturnNum;
/** 本次退料数 */
@Excel(name = "本次退料数")
private Integer returnNum;
}

4
ruoyi-admin/src/main/java/com/ruoyi/system/mapper/MakeReturnOrderDetailMapper.java

@ -74,4 +74,8 @@ public interface MakeReturnOrderDetailMapper
* @return 结果
*/
public int restoreMakeReturnOrderDetailById(Long id);
/*
* 根据退料单号和料号查询退料单详情*/
public MakeReturnOrderDetail selectMakeReturnOrderDetailByNos(MakeReturnOrderDetail returnOrderDetail);
}

3
ruoyi-admin/src/main/java/com/ruoyi/system/mapper/MakeReturnOrderMapper.java

@ -78,4 +78,7 @@ public interface MakeReturnOrderMapper
/*根据退料单号查询退料单*/
public MakeReturnOrder selectMakeReturnOrderByCode(String code);
/*根据退料单号批量查询退料单*/
public List<MakeReturnOrderVO> selectMakeReturnOrderByCodes(String[] code);
}

61
ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/MakeReturnOrderServiceImpl.java

@ -1,9 +1,6 @@
package com.ruoyi.system.service.impl;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.*;
import com.github.pagehelper.Page;
import com.ruoyi.common.core.domain.entity.SysUser;
@ -22,6 +19,7 @@ import com.ruoyi.quality.mapper.QualityOrderDetailMapper;
import com.ruoyi.quality.mapper.QualityOrderMapper;
import com.ruoyi.system.domain.*;
import com.ruoyi.system.domain.Vo.MakeReturnOrderVO;
import com.ruoyi.system.domain.exportDto.MakeReturnOrderDto;
import com.ruoyi.system.mapper.MakeReturnOrderDetailMapper;
import com.ruoyi.system.mapper.SysUserMapper;
import com.ruoyi.system.service.ISysRoleService;
@ -184,6 +182,7 @@ public class MakeReturnOrderServiceImpl implements IMakeReturnOrderService
detail.setMakeReturnOrderCode(code);
detail.setPickNo(pickNo);
detail.setAuditStatus("0");
detail.setHasReturnNum(0);
detail.setCreateBy(loginName);
detail.setCreateTime(DateUtils.getNowDate());
int insertResult = returnOrderDetailMapper.insertMakeReturnOrderDetail(detail);
@ -253,7 +252,7 @@ public class MakeReturnOrderServiceImpl implements IMakeReturnOrderService
private ProcessInstance startProcessInstance(String applyTitle, String instanceType, MakeReturnOrder makeReturnOrder, SysUser user) {
Long pickId = makeReturnOrder.getId();
String businessKey = pickId.toString(); // 实体类 ID,作为流程的业务 key
String key = "makeorderpick";
String key = "makeorderReturn";
Map<String,Object> variables = new HashMap<>();
// 构造authority传参
buildAuthority(user, variables);
@ -384,4 +383,56 @@ public class MakeReturnOrderServiceImpl implements IMakeReturnOrderService
return makeReturnOrderMapper.updateMakeReturnOrder(makeReturnOrderVO);
}
/**
* 获取生产退料单导出列表
*/
public List<MakeReturnOrderDto> getMakeReturnExportList(MakeReturnOrderVO makeReturnOrderVO, String ids){
List<MakeReturnOrderDto> list = new ArrayList<>();
List<MakeReturnOrderVO> makeReturnOrders = new ArrayList<>();
if(ids == null){
makeReturnOrders = makeReturnOrderMapper.selectMakeReturnOrderList(makeReturnOrderVO);
}else{
makeReturnOrders = makeReturnOrderMapper.selectMakeReturnOrderByCodes(Convert.toStrArray(ids));
}
if(StringUtils.isNotEmpty(makeReturnOrders)){
for (MakeReturnOrderVO returnOrder: makeReturnOrders) {
String returnOrderCode = returnOrder.getMakeReturnOrderCode();
MakeReturnOrderDetail tempDetail = new MakeReturnOrderDetail();
tempDetail.setMakeReturnOrderCode(returnOrderCode);
List<MakeReturnOrderDetail> orderDetails = returnOrderDetailMapper.selectMakeReturnOrderDetailList(tempDetail);
if(StringUtils.isNotEmpty(orderDetails)){
for (MakeReturnOrderDetail detail: orderDetails) {
MakeReturnOrderDto returnDto = new MakeReturnOrderDto();
returnDto.setMakeReturnOrderCode(returnOrderCode);
returnDto.setPickNo(returnOrder.getPickNo());
returnDto.setReturnStatus(returnOrder.getReturnStatus());
returnDto.setMaterialSum(returnOrder.getMaterialSum());
returnDto.setReturnSum(returnOrder.getReturnSum());
returnDto.setQualifiedNum(returnOrder.getQualifiedNum());
returnDto.setUnqualifiedNum(returnOrder.getUnqualifiedNum());
returnDto.setStorageNum(returnOrder.getStorageNum());
returnDto.setAuditStatus(returnOrder.getAuditStatus());
returnDto.setApplyUser(returnOrder.getApplyUser());
returnDto.setApplyTime(returnOrder.getApplyTime());
returnDto.setMaterialNo(detail.getMaterialNo());
returnDto.setMaterialName(detail.getMaterialName());
returnDto.setMaterialModel(detail.getMaterialModel());
returnDto.setPhotoUrl(detail.getPhotoUrl());
returnDto.setProcessMethod(detail.getProcessMethod());
returnDto.setUnit(detail.getUnit());
returnDto.setBrand(detail.getBrand());
returnDto.setDescribe(detail.getDescribe());
returnDto.setUseNum(detail.getUseNum());
returnDto.setHasPickNum(detail.getHasPickNum());
returnDto.setHasReturnNum(detail.getHasReturnNum());
returnDto.setReturnNum(detail.getReturnNum());
list.add(returnDto);
}
}
}
}
return list;
}
}

6
ruoyi-admin/src/main/resources/mapper/system/MakeReturnOrderDetailMapper.xml

@ -150,4 +150,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
update make_return_order_detail set del_flag = '0' where id = #{id}
</update>
<select id="selectMakeReturnOrderDetailByNos" parameterType="MakeReturnOrderDetail" resultMap="MakeReturnOrderDetailResult">
<include refid="selectMakeReturnOrderDetailVo"/>
where make_return_order_code = #{makeReturnOrderCode}
and material_no = #{materialNo}
</select>
</mapper>

13
ruoyi-admin/src/main/resources/mapper/system/MakeReturnOrderMapper.xml

@ -55,7 +55,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="applyTitle != null and applyTitle != ''"> and apply_title = #{applyTitle}</if>
<if test="applyUser != null and applyUser != ''"> and apply_user = #{applyUser}</if>
<if test="applyTime != null "> and apply_time = #{applyTime}</if>
<if test="params.beginApplyTime != null and params.beginApplyTime != '' and params.endApplyTime != null and params.endApplyTime != ''">
and Date(apply_time) between #{params.beginApplyTime} and #{params.endApplyTime}
</if>
</where>
order by create_time desc , audit_status asc
</select>
<select id="selectMakeReturnOrderById" parameterType="Long" resultMap="MakeReturnOrderResult">
@ -167,4 +171,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<include refid="selectMakeReturnOrderVo"/>
where make_return_order_code = #{makeReturnOrderCode}
</select>
<select id="selectMakeReturnOrderByCodes" parameterType="String" resultMap="MakeReturnOrderResult">
<include refid="selectMakeReturnOrderVo"/>
where make_return_order_code in
<foreach item="makeReturnOrderCode" collection="array" open="(" separator="," close=")">
#{makeReturnOrderCode}
</foreach>
</select>
</mapper>

2
ruoyi-admin/src/main/resources/templates/quality/refundsExchanges/refundsExchanges.html

@ -220,7 +220,7 @@
}
/*入库后退货-确认供应商-没有供应商*/
if (row.qualityReturnNode == 1 && row.qualityPurchaseStatus == 0 && row.qualityWarehouseStatus == 1){
if (row.qualityReturnNode == 1 && row.qualityPurchaseStatus == 0 && row.qualityWarehouseStatus == 0){
actions.push('<a class="btn btn-success btn-xs ' + afterNoConfirmSupplierFlag + '" href="javascript:void(0)" onclick="afterNoConfirmSupplier(\'' + row.refundsExchangesId + '\')"><i class="fa fa-edit"></i>确认供应商</a> ');
}
/*入库前退换货-确认收货-已有供应商*/

2
ruoyi-admin/src/main/resources/templates/system/makeReturnOrder/detail.html

@ -171,7 +171,7 @@
{
field: 'hasReturnNum',
align: 'center',
title: '已退料数',
title: '实际已退料数',
formatter: function (value,row,index){
if (value == null || value == ''){
return 0;

43
ruoyi-admin/src/main/resources/templates/system/makeReturnOrder/makeReturnOrder.html

@ -38,7 +38,9 @@
</li>
<li>
<label>申请时间:</label>
<input type="text" class="time-input" placeholder="请选择申请时间" name="applyTime"/>
<input type="text" class="time-input" id="startTime" placeholder="开始时间" name="params[beginApplyTime]"/>
<span>-</span>
<input type="text" class="time-input" id="endTime" placeholder="结束时间" name="params[endApplyTime]"/>
</li>
<li>
<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
@ -148,7 +150,7 @@
{title: '流程作废实例ID',field: 'cancelInstanceId',visible: false,align: 'center',},
{title: '流程恢复实例ID',field: 'restoreInstanceId', visible: false,align: 'center',},
{title: '流程实例类型', field: 'instanceTypeName',visible: false,align: 'center',},
{title: '申请人',field: 'applyUserName', align: 'center',
{title: '申请人',field: 'applyUser', align: 'center',
// formatter: function(value, row, index) {return '<span style="color: red;">' + (value ? value : "-") + '</span>';}
},
{title: '当前任务ID',field: 'taskId',visible: false,align: 'center',},
@ -195,12 +197,45 @@
}
// actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
actions.push('<a href="javascript:void(0)" onclick="$.operate.detail(\'' + row.id + '\')"><i class="fa fa-eye"></i>详情</a> ');
return actions.join('');
var actionLinks = actions.join('');
return $.table.dropdownToggle(actionLinks);
}
}]
}],
rowStyle: function (row, index) {
if (row.auditStatus=="0") {
// 如果审核状态为待审核,则设置为红色
return {css:{"color":"red"}};
}
// 否则使用默认样式
return {};
}
};
$.table.init(options);
});
// 导出
function exportExcel() {
var ids = $.table.selectColumns("makeReturnOrderCode");
var dataParam = $("#formId").serializeArray();
let tipMsg = "确定导出当前所有数据吗?";
if ($.common.isNotEmpty(ids)) {
tipMsg = `确定导出 ${ids} 数据吗?`;
dataParam.push({ "name": "ids", "value": ids });
}
$.modal.confirm(tipMsg, function () {
$.modal.loading("正在导出数据,请稍后...");
$.post( prefix + "/export", dataParam, function (result) {
if (result.code === web_status.SUCCESS) {
window.location.href = ctx + "common/download?fileName="+ encodeURI(result.msg) + "&delete=" + true;
} else {
$.modal.alertError(result.msg);
}
$.modal.closeLoading();
});
});
}
</script>
</body>
</html>
Loading…
Cancel
Save