Browse Source

[fix]

委外加工 委外订单
修改委外订单审批controller方法,驳回申请后调用更新订单service方法;
修改委外订单详情类,修改数量有关字段类型为Integer,新增通知已到货数和已入库数字段;
修改委外订单mapper,新增字段,新增根据委外订单号和料号查询委外订单详情列表方法;
修改新增委外订单service方法和更新审批通过service方法,更新关联委外计划状态;
dev
王晓迪 2 months ago
parent
commit
ff91704a09
  1. 2
      ruoyi-admin/src/main/java/com/ruoyi/system/controller/OutsourceOrderController.java
  2. 28
      ruoyi-admin/src/main/java/com/ruoyi/system/domain/OutsourceOrderDetail.java
  3. 4
      ruoyi-admin/src/main/java/com/ruoyi/system/mapper/OutsourceOrderDetailMapper.java
  4. 42
      ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/OutsourceOrderServiceImpl.java
  5. 19
      ruoyi-admin/src/main/resources/mapper/system/OutsourceOrderDetailMapper.xml
  6. 54
      ruoyi-admin/src/main/resources/templates/system/outsource_order/addStorage.html

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

@ -249,7 +249,7 @@ public class OutsourceOrderController extends BaseController
if (saveEntityBoolean) {
outsourceOrderVO.setAuditStatus("0");
outsourceOrderVO.setUseStatus("0");
outsourceOrderService.updateAuditOutsourceOrder(outsourceOrderVO);
outsourceOrderService.updateOutsourceOrder(outsourceOrderVO);
}
return success("任务已完成");
}

28
ruoyi-admin/src/main/java/com/ruoyi/system/domain/OutsourceOrderDetail.java

@ -54,7 +54,7 @@ public class OutsourceOrderDetail extends BaseEntity
/** 实际委外数 */
@Excel(name = "实际委外数")
private BigDecimal actualOutsourceAmount;
private Integer actualOutsourceAmount;
@Excel(name = "含税委外单价(RMB) ")
private BigDecimal materialRmb;
@ -81,6 +81,12 @@ public class OutsourceOrderDetail extends BaseEntity
// 关联单号
private String correlationCodes;
/** 通知已到货数*/
private Integer notifyHasArrivedNum;
/** 已入库数*/
private Integer hasStorageNum;
OutsourceMaterial outsourcematerial;
/** 含税委外总价(RMB) */
@ -175,12 +181,12 @@ public class OutsourceOrderDetail extends BaseEntity
}
public void setActualOutsourceAmount(BigDecimal actualOutsourceAmount)
public void setActualOutsourceAmount(Integer actualOutsourceAmount)
{
this.actualOutsourceAmount = actualOutsourceAmount;
}
public BigDecimal getActualOutsourceAmount()
public Integer getActualOutsourceAmount()
{
return actualOutsourceAmount;
}
@ -311,6 +317,22 @@ public class OutsourceOrderDetail extends BaseEntity
this.planDetailId = planDetailId;
}
public Integer getNotifyHasArrivedNum() {
return notifyHasArrivedNum;
}
public void setNotifyHasArrivedNum(Integer notifyHasArrivedNum) {
this.notifyHasArrivedNum = notifyHasArrivedNum;
}
public Integer getHasStorageNum() {
return hasStorageNum;
}
public void setHasStorageNum(Integer hasStorageNum) {
this.hasStorageNum = hasStorageNum;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)

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

@ -96,4 +96,8 @@ public interface OutsourceOrderDetailMapper
/*
* 根据委外订单号查询委外订单详情列表*/
public List<OutsourceOrderDetail> selectOutsourceOrderDetailByCode(String outsourceOrderNo);
/*
* 根据委外订单号和料号查询委外订单详情列表*/
public List<OutsourceOrderDetail> selectOutsourceOrderDetailByNos(OutsourceOrderDetail orderDetail);
}

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

@ -20,10 +20,7 @@ import com.ruoyi.process.todoitem.mapper.BizTodoItemMapper;
import com.ruoyi.system.domain.*;
import com.ruoyi.system.domain.Vo.OutsourceOrderVO;
import com.ruoyi.system.domain.Vo.OutsourceRequisitionVO;
import com.ruoyi.system.mapper.OutsourceOrderDetailMapper;
import com.ruoyi.system.mapper.OutsourceOrderMapper;
import com.ruoyi.system.mapper.SysSupplierMapper;
import com.ruoyi.system.mapper.SysUserMapper;
import com.ruoyi.system.mapper.*;
import com.ruoyi.system.service.IOutsourceOrderService;
import com.ruoyi.system.service.IOutsourcePlanService;
import org.activiti.engine.RuntimeService;
@ -64,6 +61,9 @@ public class OutsourceOrderServiceImpl implements IOutsourceOrderService
@Autowired
private IOutsourcePlanService outsourcePlanService;
@Autowired
private OutsourcePlanMapper outsourcePlanMapper;
@Autowired
private RedisCache redisCache;
@ -206,6 +206,18 @@ public class OutsourceOrderServiceImpl implements IOutsourceOrderService
outsourceOrderVO.setWarehouseStatus("0");
int rows = outsourceOrderMapper.insertOutsourceOrder(outsourceOrderVO);
insertOutsourceOrderDetail(outsourceOrderVO);
String planCodes = outsourceOrderVO.getOutsourcePlanCode();
List<OutsourcePlan> outsourcePlans = outsourcePlanService.selectOutsourcePlanByCodes(planCodes);
if(StringUtils.isEmpty(outsourcePlans)){
throw new BusinessException("关联委外计划为空,新增委外订单失败");
}
for (OutsourcePlan plan: outsourcePlans) {
plan.setStatus("1");//申请中
plan.setUpdateBy(loginName);
plan.setUpdateTime(DateUtils.getNowDate());
outsourcePlanMapper.updateOutsourcePlan(plan);
}
return rows;
}
/**
@ -294,14 +306,26 @@ public class OutsourceOrderServiceImpl implements IOutsourceOrderService
return rows;
}
// 审批更新委外订单
// 审批更新委外订单(审批通过)
@Override
public int updateAuditOutsourceOrder(OutsourceOrderVO outsourceOrderVO)
{
outsourceOrderVO.setUpdateTime(DateUtils.getNowDate());
OutsourceOrderVO orderVO = outsourceOrderMapper.selectOutsourceOrderByOutsourceOrderId(outsourceOrderVO.getOutsourceOrderId());
orderVO.setUpdateTime(DateUtils.getNowDate());
String loginName = ShiroUtils.getLoginName();
outsourceOrderVO.setUpdateBy(loginName);
int rows = outsourceOrderMapper.updateOutsourceOrder(outsourceOrderVO);
orderVO.setUpdateBy(loginName);
String planCodes = orderVO.getOutsourcePlanCode();
List<OutsourcePlan> outsourcePlans = outsourcePlanService.selectOutsourcePlanByCodes(planCodes);
if(StringUtils.isEmpty(outsourcePlans)){
throw new BusinessException("关联委外计划为空,新增委外订单失败");
}
for (OutsourcePlan plan: outsourcePlans) {
plan.setStatus("2");//申请通过
plan.setUpdateBy(loginName);
plan.setUpdateTime(DateUtils.getNowDate());
outsourcePlanMapper.updateOutsourcePlan(plan);
}
int rows = outsourceOrderMapper.updateOutsourceOrder(orderVO);
return rows;
}
// 根据订单号查询委外订单(用以委外领料或入库)
@ -376,6 +400,8 @@ public class OutsourceOrderServiceImpl implements IOutsourceOrderService
outsourceOrderDetail.setOutsourceOrderNo(OutsourceOrderNo);
outsourceOrderDetail.setRemitStatus("0");
outsourceOrderDetail.setClosedStatus("0");
outsourceOrderDetail.setNotifyHasArrivedNum(0);
outsourceOrderDetail.setHasStorageNum(0);
outsourceOrderDetail.setCreateBy(ShiroUtils.getLoginName());
outsourceOrderDetail.setCreateTime(DateUtils.getNowDate());
orderDetailMapper.insertOutsourceOrderDetail(outsourceOrderDetail);

19
ruoyi-admin/src/main/resources/mapper/system/OutsourceOrderDetailMapper.xml

@ -24,6 +24,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="noRmbSum" column="no_rmb_sum" />
<result property="correlationCodes" column="correlation_codes" />
<result property="plannedOutsourceAmount" column="planned_outsource_amount" />
<result property="notifyHasArrivedNum" column="notify_has_arrived_num" />
<result property="hasStorageNum" column="has_storage_num" />
<result property="planDetailId" column="plan_detail_id" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
@ -35,8 +37,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
select outsource_order_detail_id, outsource_order_no, material_no,
outsource_process_no, outsource_process_name, charge_unit,
single_material, delivery_time, actual_outsource_amount, material_rmb,
material_no_rmb, supplier_code, supplier_name, closed_status,
remit_status, rmb_sum, no_rmb_sum, correlation_codes,
material_no_rmb, supplier_code, supplier_name, closed_status,has_storage_num,
remit_status, rmb_sum, no_rmb_sum, correlation_codes,notify_has_arrived_num,
planned_outsource_amount ,plan_detail_id, create_by, create_time,
update_by, update_time from outsource_order_detail
</sql>
@ -92,6 +94,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="noRmbSum != null">no_rmb_sum,</if>
<if test="correlationCodes != null">correlation_codes,</if>
<if test="plannedOutsourceAmount != null">planned_outsource_amount,</if>
<if test="notifyHasArrivedNum != null">notify_has_arrived_num,</if>
<if test="hasStorageNum != null">has_storage_num,</if>
<if test="planDetailId != null">plan_detail_id,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
@ -117,6 +121,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="noRmbSum != null">#{noRmbSum},</if>
<if test="correlationCodes != null">#{correlationCodes},</if>
<if test="plannedOutsourceAmount != null">#{plannedOutsourceAmount},</if>
<if test="notifyHasArrivedNum != null">#{notifyHasArrivedNum},</if>
<if test="hasStorageNum != null">#{hasStorageNum},</if>
<if test="planDetailId != null">#{planDetailId},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
@ -146,6 +152,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="noRmbSum != null">no_rmb_sum = #{noRmbSum},</if>
<if test="correlationCodes != null">correlation_codes = #{correlationCodes},</if>
<if test="plannedOutsourceAmount != null">planned_outsource_amount = #{plannedOutsourceAmount},</if>
<if test="notifyHasArrivedNum != null">notify_has_arrived_num = #{notifyHasArrivedNum},</if>
<if test="hasStorageNum != null">has_storage_num = #{hasStorageNum},</if>
<if test="planDetailId != null">plan_detail_id = #{planDetailId},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
@ -211,4 +219,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where outsource_order_no = #{outsourceOrderNo}
</select>
<select id="selectOutsourceOrderDetailByNos" parameterType="OutsourceOrderDetail" resultMap="OutsourceOrderDetailResult">
<include refid="selectOutsourceOrderDetailVo"/>
where outsource_order_no = #{outsourceOrderNo}
and material_no = #{materialNo}
</select>
</mapper>

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

@ -46,7 +46,7 @@
</div>
</div>
<div class="col-sm-6">
<label for="nowStorageTotalAmount" class="col-sm-4 col-form-label">领料数量合计:</label>
<label for="nowStorageTotalAmount" class="col-sm-4 col-form-label">入库数量合计:</label>
<div class="col-sm-6">
<input type="text" class="form-control" value="0" id="nowStorageTotalAmount" disabled>
</div>
@ -123,7 +123,8 @@
correlationCodes: material.correlationCodes,
plannedOutsourceAmount: material.plannedOutsourceAmount,
actualOutsourceAmount: material.orderDetails[0].actualOutsourceAmount,
alreadyStorageAmount: 0,
hasStorageNum: material.orderDetails[0].hasStorageNum,
notifyHasArrivedNum: material.orderDetails[0].notifyHasArrivedNum,
nowStorageAmount: 0,
};
var materialData = [materialObj]; // Bootstrap Table需要一个数组作为数据源
@ -131,7 +132,7 @@
tables(materialTable, materialData);
var $MaterialNumDiv =
$('<div class="row" style="margin-top: 20px;margin-left: 10px;">' +
$('<div class="row" style="margin-top: 40px;margin-left: 10px;">' +
'<div class="form-group">' +
'<div class="col-xs-12">' +
'<h3>' +
@ -169,7 +170,7 @@
}
$processContent =
$('<div class="card-header process_card" id="process-' + tableId + '_' + (detailsIndex+1) + '" >' +
'<div class="row" style="margin-left: 25px;height: 20px">' +
'<div class="row" style="margin-left: 25px;height: 20px;">' +
'<div class="card-text">' +
'<h5>委外工序 ' + (detailsIndex+1) + ':' +
'<span style="color: blue" class="processNo">' + detail.outsourceProcessNo + '</span>' + '-' +
@ -236,27 +237,29 @@
showToggle: false,
data: data,
columns: [
{title: '料号', field: 'materialNo'},
{title: '图片', field: 'materialPhotourl', formatter: function (value, row, index) {
{title: '料号', field: 'materialNo',align: 'center',},
{title: '图片', field: 'materialPhotourl',align: 'center',
formatter: function (value, row, index) {
return $.table.imageView(value);
}
},
{title: '物料类型',field: 'materialType',
{title: '物料类型',field: 'materialType',align: 'center',
formatter: function(value, row, index) {return $.table.selectCategoryLabel(materialTypeDatas, value);}
},
{title: '物料名称', field: 'materialName'},
{title: '物料描述', field: 'description'},
{title: '品牌', field: 'brand'},
{title: '物料名称', field: 'materialName',align: 'center',},
{title: '物料描述', field: 'description',align: 'center',},
{title: '品牌', field: 'brand',align: 'center',},
{title: '单位', field: 'unit', align: 'center', },
{title: '加工方式', field: 'processMethod', align: 'center',
formatter: function (value, row, index) {
return $.table.selectDictLabel(processMethodDatas, value);
}
},
{title: '计划委外数', field: 'plannedOutsourceAmount'},
{title: '实际委外数', field: 'actualOutsourceAmount'},
{title: '已入库数', field: 'alreadyStorageAmount'},
{title: '本次入库数', field: 'nowStorageAmount',
{title: '计划委外数', field: 'plannedOutsourceAmount',align: 'center',},
{title: '实际委外数', field: 'actualOutsourceAmount',align: 'center',},
{title: '已入库数', field: 'hasStorageNum',align: 'center',},
{title: '通知已到货数', field: 'notifyHasArrivedNum',align: 'center',},
{title: '通知到货数', field: 'nowStorageAmount',align: 'center',
formatter: function(value, row, index) {
var html = $.common.sprintf("<input class='form-control' type='text' name='nowStorageAmount' value='' id='nowStorageAmount_"+tableId+"'>", index, value);
return html;
@ -303,6 +306,8 @@
processMethod: current.processMethod,
correlationCodes: current.correlationCodes,
plannedOutsourceAmount: current.plannedOutsourceAmount,
hasStorageNum: current.hasStorageNum,
notifyHasArrivedNum: current.notifyHasArrivedNum,
orderDetails: [
current.orderDetails[0],
]
@ -320,7 +325,6 @@
storageDetailList:[]
};
let storageSum = 0;
var hasError = false;
var hasValue = false;
$('.table-materialNo').each(function(index, tableElement) {
var tableId = tableIdList[index];
@ -330,17 +334,14 @@
var rows = $("#" + "bootstrap-table_" + tableId).bootstrapTable('getData').length;
if(rows != 0) {
var data = $("#" + "bootstrap-table_" + tableId).bootstrapTable('getData')[0];
if ($('[id^="nowStorageAmount_bootstrap-table_' + tableId + '"]').val() === "") {
var notifyValue = $('[id^="nowStorageAmount_bootstrap-table_' + tableId + '"]').val();
if (notifyValue === "" || Number(notifyValue) <= 0) {
return;
} else {
hasValue = true;
// materialAmount++;
let value = Number($('[id^="nowStorageAmount_bootstrap-table_' + tableId + '"]').val());
if (!isNaN(value)) {
var hasReValue = Number(data.alreadyStorageAmount);
if (hasReValue + value > data.actualOutsourceAmount) {
hasError = true;
}
storageSum += value;
}
var correlationCodes = $("#correlationCodes-" + tableId).text().trim();
@ -366,8 +367,9 @@
plannedOutsourceAmount: data.plannedOutsourceAmount,
actualOutsourceAmount: data.actualOutsourceAmount,
outsourceOrderNo: outsourceStorage.relatedOrderCode,
takenMaterial: data.alreadyStorageAmount,
takingMaterial: value,
hasStorageNum: data.hasStorageNum,
notifyHasArrivedNum: data.notifyHasArrivedNum,
notifyArrivedNum: value,
outsourceProcessInfo: processInfo,
chargeUnitInfo: chargeUnitInfo,
singleMaterialInfo: singleMaterialInfo,
@ -386,13 +388,7 @@
$.modal.msgError("入库数不能全为空!");
return;
}
if(!hasError){
console.log(outsourceStorage);
$.operate.saveJson(prefix + "/addStorage",JSON.stringify(outsourceStorage));
}else{
$.modal.msgError("累计入库数不能大于实际委外数!");
return;
}
$.operate.saveJson(prefix + "/addStorage",JSON.stringify(outsourceStorage));
}
</script>

Loading…
Cancel
Save