Browse Source

[fix]

委外加工 委外订单
修改委外订单结案页面,添加供应商列表显示,修改提交函数;
新增委外订单结案service方法;
修改mapper,新增结案原因字段;
新增修改保存委外订单结案controller方法;
修改委外订单列表页面,添加复选框可选条件;
修改委外计划mapper,根据创建时间排序;
dev
王晓迪 1 month ago
parent
commit
6ec195232e
  1. 11
      ruoyi-admin/src/main/java/com/ruoyi/system/controller/OutsourceOrderController.java
  2. 2
      ruoyi-admin/src/main/java/com/ruoyi/system/service/IOutsourceOrderService.java
  3. 42
      ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/OutsourceOrderServiceImpl.java
  4. 6
      ruoyi-admin/src/main/resources/mapper/system/OutsourceOrderMapper.xml
  5. 9
      ruoyi-admin/src/main/resources/mapper/system/OutsourcePlanMapper.xml
  6. 48
      ruoyi-admin/src/main/resources/templates/system/outsource_order/closed.html
  7. 10
      ruoyi-admin/src/main/resources/templates/system/outsource_order/outsource_order.html

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

@ -345,4 +345,15 @@ public class OutsourceOrderController extends BaseController
mmap.put("outsourceOrder", outsourceOrderVO.get(0));
return prefix + "/closed";
}
/**
* 修改保存委外订单结案
*/
@Log(title = "委外订单", businessType = BusinessType.UPDATE)
@PostMapping("/saveClosed")
@ResponseBody
public AjaxResult saveClosed(@RequestBody OutsourceOrderVO outsourceOrderVO)
{
return toAjax(outsourceOrderService.closeOutsourceOrder(outsourceOrderVO));
}
}

2
ruoyi-admin/src/main/java/com/ruoyi/system/service/IOutsourceOrderService.java

@ -99,4 +99,6 @@ public interface IOutsourceOrderService
ProcessInstance restoreOutsourceOrderById(Long id);
int insertFinancialAccountsPayable(OutsourceOrder outsourceOrder);
int closeOutsourceOrder(OutsourceOrderVO outsourceOrderVO);
}

42
ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/OutsourceOrderServiceImpl.java

@ -537,4 +537,46 @@ public class OutsourceOrderServiceImpl implements IOutsourceOrderService
}
return rows;
}
@Override
@Transactional(rollbackFor = Exception.class)
public int closeOutsourceOrder(OutsourceOrderVO outsourceOrderVO){
List<OutsourceOrderDetail> supplierList = outsourceOrderVO.getOutsourceOrderDetailList();
if(StringUtils.isEmpty(supplierList)){
throw new BusinessException("供应商列表为空!");
}
List<OutsourceOrderDetail> orderDetails = orderDetailMapper.selectOutsourceOrderDetailByCode(outsourceOrderVO.getOutsourceOrderNo());
if(StringUtils.isEmpty(orderDetails)){
throw new BusinessException("委外单关联详情列表为空!");
}
for (OutsourceOrderDetail detail: supplierList) {
String supplierCode = detail.getSupplierCode();
List<OutsourceOrderDetail> closeList = orderDetails.stream()
.filter(item -> item.getSupplierCode().equals(supplierCode)).collect(Collectors.toList());
if(StringUtils.isEmpty(closeList)){
throw new BusinessException("供应商列表为空!");
}
for (OutsourceOrderDetail updateDetail: closeList) {
updateDetail.setRemitStatus("4");
updateDetail.setClosedStatus("4");
updateDetail.setUpdateBy(ShiroUtils.getLoginName());
updateDetail.setUpdateTime(DateUtils.getNowDate());
int updateResult = orderDetailMapper.updateOutsourceOrderDetail(updateDetail);
if(updateResult<=0){
throw new BusinessException("更新供应商结案状态失败");
}
}
}
List<OutsourceOrderDetail> updateDetails = orderDetailMapper.selectOutsourceOrderDetailByCode(outsourceOrderVO.getOutsourceOrderNo());
boolean allClosed = updateDetails.stream().allMatch(item->item.getRemitStatus().equals("4"));
if(allClosed){
outsourceOrderVO.setRemitStatus("4");//已结案
outsourceOrderVO.setClosedStatus("4");
}
outsourceOrderVO.setUpdateBy(ShiroUtils.getLoginName());
outsourceOrderVO.setUpdateTime(DateUtils.getNowDate());
return outsourceOrderMapper.updateOutsourceOrder(outsourceOrderVO);
}
}

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

@ -44,6 +44,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="cancelInstanceId" column="cancel_instance_id" />
<result property="restoreInstanceId" column="restore_instance_id" />
<result property="cancelRemark" column="cancel_remark" />
<result property="remark" column="remark" />
</resultMap>
<!-- 委外物料-->
@ -67,7 +68,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
material_amount, outsource_material_amount, outsource_process_type, outsource_process_amount, outsource_total_price,
outsource_no_price, create_by, create_time, update_by, update_time, use_status, receive_status, warehouse_status, closed_status,
remit_status, audit_status, actual_material_amount, actual_process_amount, stock_no, stock_name, receive_person, receive_telephone,supplier_code, supplier_name,
receive_address,instance_id, instance_type, submit_instance_id, apply_title, apply_time, apply_user, cancel_instance_id, restore_instance_id, cancel_remark
receive_address,instance_id, instance_type, submit_instance_id, apply_title, apply_time, apply_user, cancel_instance_id, restore_instance_id, cancel_remark,remark
from outsource_order
</sql>
@ -159,6 +160,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="cancelInstanceId != null">cancel_instance_id,</if>
<if test="restoreInstanceId != null">restore_instance_id,</if>
<if test="cancelRemark != null">cancel_remark,</if>
<if test="remark != null">remark,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="outsourceOrderNo != null and outsourceOrderNo != ''">#{outsourceOrderNo},</if>
@ -197,6 +199,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="cancelInstanceId != null">#{cancelInstanceId},</if>
<if test="restoreInstanceId != null">#{restoreInstanceId},</if>
<if test="cancelRemark != null">#{cancelRemark},</if>
<if test="remark != null">#{remark},</if>
</trim>
</insert>
@ -239,6 +242,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="cancelInstanceId != null">cancel_instance_id = #{cancelInstanceId},</if>
<if test="restoreInstanceId != null">restore_instance_id = #{restoreInstanceId},</if>
<if test="cancelRemark != null">cancel_remark = #{cancelRemark},</if>
<if test="remark != null">remark = #{remark},</if>
</trim>
where outsource_order_id = #{outsourceOrderId}
</update>

9
ruoyi-admin/src/main/resources/mapper/system/OutsourcePlanMapper.xml

@ -37,6 +37,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="processMethod" column="process_method" />
<result property="unit" column="unit" />
<result property="plannedOutsourceAmount" column="planned_outsource_amount" />
<result property="actualOutsourceAmount" column="actual_outsource_amount" />
<result property="outPlanStatus" column="out_plan_status" />
<result property="outsourceProcessType" column="outsource_process_type" />
<result property="outsourceProcessAmount" column="outsource_process_amount" />
<result property="level" column="level" />
@ -56,7 +58,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
material_no, material_name, material_type, material_photoUrl,
description, brand, process_method, unit, planned_outsource_amount,
outsource_process_type, outsource_process_amount, `level`, parent_id,
create_by,create_time,update_by,update_time
create_by,create_time,update_by,update_time,actual_outsource_amount,out_plan_status
from outsource_plan_detail
</sql>
@ -71,6 +73,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="createTime != null "> and create_time = #{createTime}</if>
<if test="params.beginCreateTime != null and params.beginCreateTime != '' and params.endCreateTime != null and params.endCreateTime != ''"> and create_time between #{params.beginCreateTime} and #{params.endCreateTime}</if>
</where>
order by create_time desc
</select>
<select id="selectOutsourcePlanDetail" parameterType="OutsourcePlanDetail" resultMap="OutsourcePlanDetailResult">
@ -214,6 +217,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="processMethod != null">process_method,</if>
<if test="unit != null">unit,</if>
<if test="plannedOutsourceAmount != null">planned_outsource_amount,</if>
<if test="actualOutsourceAmount != null">actual_outsource_amount,</if>
<if test="outPlanStatus != null">out_plan_status,</if>
<if test="outsourceProcessType != null">outsource_process_type,</if>
<if test="outsourceProcessAmount != null">outsource_process_amount,</if>
<if test="level != null">`level`,</if>
@ -234,6 +239,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="processMethod != null">#{processMethod},</if>
<if test="unit != null">#{unit},</if>
<if test="plannedOutsourceAmount != null">#{plannedOutsourceAmount},</if>
<if test="actualOutsourceAmount != null">#{actualOutsourceAmount},</if>
<if test="outPlanStatus != null">#{outPlanStatus},</if>
<if test="outsourceProcessType != null">#{outsourceProcessType},</if>
<if test="outsourceProcessAmount != null">#{outsourceProcessAmount},</if>
<if test="level != null">#{level},</if>

48
ruoyi-admin/src/main/resources/templates/system/outsource_order/closed.html

@ -8,21 +8,28 @@
<form class="form-horizontal m" id="form-outsource_order_closed" th:object="${outsourceOrder}">
<input name="outsourceOrderId" th:field="*{outsourceOrderId}" type="hidden">
<div class="form-group">
<label class="col-sm-3 control-label is-required">委外单号:</label>
<div class="col-sm-6">
<input class="form-control" name="outsourceOrderCode" th:field="*{outsourceOrderNo}">
<label class="col-sm-4 control-label is-required">委外单号:</label>
<div class="col-sm-8">
<input class="form-control" name="outsourceOrderCode" th:field="*{outsourceOrderNo}" readonly>
</div>
</div>
<div class="form-group">
</div>
<div class="col-sm-8" style="padding-left: 80px;">
<h5>选择供应商:</h5>
<h5>选择供应商:</h5>
</div>
<div class="col-xs-8 table-striped" style="padding-left: 80px;">
<table id="bootstrap-table"></table>
</div>
<div class="form-group" style="padding-top: 20px;">
<label class="col-sm-4 control-label is-required">结案原因:</label>
<div class="col-sm-8">
<textarea class="form-control" name="remark" ></textarea>
</div>
</div>
</form>
</div>
<th:block th:include="include :: footer" />
@ -32,17 +39,30 @@
focusCleanup: true,
});
var closedStatusDatas = [[${@dict.getType('sys_pay_close')}]];
var outsourceOrder = [[${outsourceOrder}]];
$(function() {
// console.log(outsourceOrder);
var outsourceOrderId = $("#outsourceOrderId").val();
var options = {
data: [[${outsourceOrder.outsourceOrderDetailList}]],
url: prefix + "/sublist?outsourceOrderId=" + outsourceOrderId,
method: 'get',
pagination: false,
showSearch: false,
showRefresh: false,
showToggle: false,
showColumns: false,
columns: [
{
checkbox:true,
formatter: function(value, row, index) {
//已结案
if(row.remitStatus === "4"){
return { disabled : true,}
}
return { disabled : false,}
}
},
{
field: 'supplierCode',
title: '供应商编码',
@ -53,7 +73,10 @@
},
{
field: 'remitStatus',
title: '打款状态'
title: '打款状态',
formatter: function(value, row, index) {
return $.table.selectDictLabel(closedStatusDatas, value);
}
}
]
};
@ -62,7 +85,18 @@
function submitHandler() {
if ($.validate.form()) {
$.operate.save(prefix + "/closed", $('#form-outsource_order_closed').serialize());
var datas = $("#bootstrap-table").bootstrapTable("getSelections");
if(datas.length<=0){
$.modal.msgError("至少选择一个供应商结案");
return;
}
var outsourceOrder = {
outsourceOrderId: $("#outsourceOrderId").val(),
outsourceOrderNo: $("#outsourceOrderNo").val(),
remark: $("#remark").val(),
outsourceOrderDetailList: datas,
}
$.operate.saveJson(prefix + "/saveClosed", JSON.stringify(outsourceOrder));
}
}
</script>

10
ruoyi-admin/src/main/resources/templates/system/outsource_order/outsource_order.html

@ -124,11 +124,19 @@
restoreUrl: prefix + "/restore/{id}",
modalName: "委外订单",
detailView: true,
singleSelect: true,
onExpandRow : function(index, row, $detail) {
initChildTable(index, row, $detail);
},
columns: [{
checkbox: true
checkbox: true,
formatter: function(value, row, index) {
//待结案
if(row.closedStatus === "3"||row.closedStatus === "1"){
return { disabled : false,}
}
return { disabled : true,}
}
},
{
field: 'outsourceOrderId',

Loading…
Cancel
Save