采购退货订单修改

jg-waiwang-pro
vayne 6 months ago
parent 8a23fdc2f5
commit c81d7fc8a9

@ -660,7 +660,8 @@
FROM
`jg_voucher_product` a
LEFT JOIN jg_product b ON a.product_id = b.id AND b.f_delete_mark IS NULL
WHERE a.voucher_id in
WHERE a._delete_mark is null
AND a.voucher_id in
<foreach collection="voucherIds" item="id" open="(" close=")" separator=",">
#{id}
</foreach>

@ -211,4 +211,12 @@
</if>
</select>
<select id="queryReturnOrderById" resultMap="returnCargoOrder">
select a.* from jg_return_cargo_order a
left join jg_business_order b on a.business_id = b.id and b.f_delete_mark s null
where a.f_delete_mark is null
and a.id = #{id}
and b.delivery_type = '1'
</select>
</mapper>

@ -26,4 +26,6 @@ public interface ReturnCargoOrderMapper extends BaseMapper<ReturnCargoOrderEntit
BigDecimal queryTransitInventory(@Param("inventoryEntity") InventoryEntity inventoryEntity);
BigDecimal queryOccupyInventory(@Param("inventoryEntity") InventoryEntity entity);
ReturnCargoOrderEntity queryReturnOrderById(String id);
}

@ -45,4 +45,7 @@ public interface ReturnCargoOrderService extends IService<ReturnCargoOrderEntity
BigDecimal queryTransitInventory(InventoryEntity entity);
BigDecimal queryOccupyInventory(InventoryEntity entity);
ReturnCargoOrderEntity queryReturnOrderByIdInfo(String id);
}

@ -818,6 +818,9 @@ public class BusinessOrderServiceImpl extends ServiceImpl<BusinessOrderMapper, B
List<ProductWarehouseEntity> productWarehouseEntityList = businessOrderMapper.orderByVoucher(voucherIds);
productWarehouseEntityList = productWarehouseEntityList.stream().collect(Collectors.toMap(s-> s.getId()+";"+s.getUnit(),a->a,(o1,o2) -> {
o1.setNetWeight(o1.getNetWeight().add(o2.getNetWeight()));
o1.setGrossWeight(o1.getGrossWeight().add(o2.getGrossWeight()));
o1.setTareWeight(o1.getTareWeight().add(o2.getTareWeight()));
o1.setBuckleWeight(o1.getBuckleWeight().add(o2.getBuckleWeight()));
return o1;
})).values().stream().collect(Collectors.toList());
return productWarehouseEntityList;

@ -516,4 +516,9 @@ public class ReturnCargoOrderServiceImpl extends ServiceImpl<ReturnCargoOrderMap
return returnCargoOrderMapper.queryOccupyInventory(entity);
}
@Override
public ReturnCargoOrderEntity queryReturnOrderByIdInfo(String id) {
return returnCargoOrderMapper.queryReturnOrderById(id);
}
}

@ -6,6 +6,9 @@ import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jnpf.base.ActionResult;
import jnpf.base.UserInfo;
import jnpf.engine.entity.FlowTaskNodeEntity;
import jnpf.engine.service.FlowTaskNodeService;
import jnpf.engine.service.FlowTaskService;
import jnpf.exception.DataException;
import jnpf.permission.entity.UserEntity;
import jnpf.service.*;
@ -16,6 +19,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.math.BigDecimal;
import java.util.*;
import jnpf.annotation.JnpfField;
import jnpf.base.vo.PageListVO;
@ -75,6 +79,10 @@ public class ReturnCargoOrderController {
private DeliveryVoucherRelationService deliveryVoucherRelationService;
@Autowired
private DeliveryProductRelationService deliveryProductRelationService;
@Autowired
private FlowTaskService flowTaskService;
@Autowired
private FlowTaskNodeService flowTaskNodeService;
@Autowired
@ -86,6 +94,8 @@ public class ReturnCargoOrderController {
private SubjectbasicService subjectbasicService;
@Autowired
private BusinessLineService businessLineService;
@Autowired
private WarehousingNotificationService warehousingNotificationService;
/**
*
@ -471,6 +481,17 @@ public class ReturnCargoOrderController {
if(entity!=null){
try{
returnCargoOrderService.saveOrUpdate(returnCargoOrderForm,id,false);
FlowTaskEntity flowTaskEntity = flowTaskService.getById(id);
if (flowTaskEntity!=null){
QueryWrapper<FlowTaskNodeEntity> flowTaskNodeEntityQueryWrapper = new QueryWrapper<>();
flowTaskNodeEntityQueryWrapper.lambda().eq(FlowTaskNodeEntity::getNodeCode, flowTaskEntity.getThisStepId());
flowTaskNodeEntityQueryWrapper.lambda().eq(FlowTaskNodeEntity::getTaskId, flowTaskEntity.getId());
List<FlowTaskNodeEntity> flowTaskNodeEntityList = flowTaskNodeService.list(flowTaskNodeEntityQueryWrapper);
if(flowTaskNodeEntityList != null && flowTaskNodeEntityList.size()>0 && "end".equals(flowTaskNodeEntityList.get(0).getNodeNext())) {
entity.setDocumentStatus("3");
returnCargoOrderService.saveOrUpdate(entity);
}
}
}catch(Exception e){
return ActionResult.fail("修改数据失败");
}
@ -599,6 +620,8 @@ public class ReturnCargoOrderController {
entity.setCarrier(businessOrderEntity.getCarrier());
entity.setBusinessLineId(businessOrderEntity.getBusinessLineId());
}
List<SettlementInfoEntity> settlementInfoList = businessOrderService.getSettlementInfoList(entity.getBusinessId());
entity.setSettlementInfoList(settlementInfoList);
}
//副表数据
//子表数据
@ -686,5 +709,66 @@ public class ReturnCargoOrderController {
return ActionResult.success(list);
}
/**
* 退
*
* @return
*/
@Operation(summary = "采购退货出库通知订单列表")
@GetMapping("/inBoundPurchaseOrderList")
public ActionResult outBoundPurchaseOrderList(@RequestParam("id") String id)throws IOException{
ReturnCargoOrderEntity returnCargoOrderEntity = returnCargoOrderService.queryReturnOrderByIdInfo(id);
List<SettlementInfoEntity> settlementInfoEntityList = businessOrderService.getSettlementInfoList(returnCargoOrderEntity.getBusinessId());
returnCargoOrderEntity.setSettlementInfoList(settlementInfoEntityList);
BusinessOrderEntity businessOrderEntity = businessOrderService.getInfo(id);
//二级供应商名字
if (StringUtil.isNotEmpty(businessOrderEntity.getSecondSubjectBasicId())){
SubjectbasicEntity subjectbasicEntity = subjectbasicService.getInfo(businessOrderEntity.getSecondSubjectBasicId());
if (subjectbasicEntity != null) {
businessOrderEntity.setSecondSupplyName(subjectbasicEntity.getName());
}
}
//三级供应商名字
if (StringUtil.isNotEmpty(businessOrderEntity.getThirdSubjectBasicId())){
SubjectbasicEntity subjectbasicEntity = subjectbasicService.getInfo(businessOrderEntity.getThirdSubjectBasicId());
if (subjectbasicEntity != null) {
businessOrderEntity.setThirdSupplyName(subjectbasicEntity.getName());
}
}
//业务线名字
if (StringUtil.isNotEmpty(businessOrderEntity.getBusinessLineId())){
BusinessLineEntity businessLineEntity = businessLineService.getInfo(businessOrderEntity.getBusinessLineId());
if (businessLineEntity != null){
businessOrderEntity.setBusinessLineName(businessLineEntity.getName());
}
}
//结算信息
List<SettlementInfoEntity> settlementInfoList = businessOrderService.getSettlementInfoList(businessOrderEntity.getId());
//查询订单下面的商品
List<BusinessOrderProductRelationalEntity> businessOrderProductRelationalList = businessOrderService.getBusinessOrderProductRelationalList(businessOrderEntity.getId());
//查询已经生成的入库通知
List<WarehousingProductEntity> list = warehousingNotificationService.queryInBoundNoticeInfo(businessOrderEntity.getId(),"1");
if (list != null && list.size()>0) {
//对入库通知中相同的商品进行通知数量合并
List<WarehousingProductEntity> warehousingProductEntityList = list.stream().collect(Collectors.toMap(WarehousingProductEntity::getProductId, a -> a, (o1, o2) -> {
o1.setNotificationStorageNumber(o1.getNotificationStorageNumber().add(o2.getNotificationStorageNumber()));
return o1;
})).values().stream().collect(Collectors.toList());
for (int i = 0; i < businessOrderProductRelationalList.size(); i++) {
for (int j = 0; j < warehousingProductEntityList.size(); j++) {
if (businessOrderProductRelationalList.get(i).getProductId().equals(warehousingProductEntityList.get(j).getProductId())) {
BigDecimal num = businessOrderProductRelationalList.get(i).getBusinessNum().subtract(warehousingProductEntityList.get(j).getNotificationStorageNumber());
businessOrderProductRelationalList.get(i).setRemainingStockableQuantity(num);
businessOrderProductRelationalList.get(i).setNotificationStorageNumber(num);
}
}
}
}
businessOrderEntity.setSettlementInfoList(settlementInfoList);
businessOrderEntity.setBusinessOrderProductRelationalList(businessOrderProductRelationalList);
return ActionResult.success(returnCargoOrderEntity);
}
}

@ -96,6 +96,8 @@ public class ReturnCargoOrderEntity {
@TableField(exist = false)
private List<DeliveryProductRelationEntity> deliveryProductRelationEntityList;
@TableField(exist = false)
private List<SettlementInfoEntity> settlementInfoList;
@TableField(exist = false)
private Date expectArriveDateStart;
@TableField(exist = false)
private Date expectArriveDateEnd;

@ -37,8 +37,8 @@ public class DeliveryVoucherRelationModel {
private Long poundlistTime;
/** 车牌号 **/
@JSONField(name = "vehicleName")
private String vehicleName;
@JSONField(name = "vehicleId")
private String vehicleId;
/** 商品名称 **/
@JSONField(name = "productId")
private String productId;

@ -746,7 +746,7 @@ export default {
id: data.id
}
request({
url: `/api/scm/BusinessOrder/inBoundPurchaseOrderList`,
url: `/api/scm/BusinessOrder/outBoundPurchaseOrderList`,
method: 'get',
data: id
}).then(res => {

@ -48,6 +48,7 @@
<jnpf-form-tip-item label="对方订单号" v-if="judgeShow('counterpartOrderCode')"
prop="counterpartOrderCode">
<JnpfInput v-model="dataForm.counterpartOrderId"
:disabled="judgeWrite('counterpartOrderCode')"
@change="changeData('counterpartOrderCode', -1)" placeholder="请输入" clearable
:style='{ "width": "100%" }'>
</JnpfInput>
@ -58,6 +59,7 @@
prop="expectArriveDateStart">
<JnpfDatePicker v-model="dataForm.expectReturnCargoTimeStart"
@change="changeData('expectArriveDateStart', -1)"
:disabled="judgeWrite('expectArriveDateStart')"
:startTime="dateTime(false, 1, 1, '', '')" :endTime="dateTime(false, 1, 1, '', '')"
placeholder="请选择" clearable :style='{ "width": "100%" }' type="date"
format="yyyy-MM-dd">
@ -68,7 +70,8 @@
<jnpf-form-tip-item label="退货方式" v-if="judgeShow('deliveryType')" prop="deliveryType">
<JnpfSelect v-model="dataForm.returnCargoWay" @change="changeData('deliveryType', -1)"
placeholder="请选择" clearable :style='{ "width": "100%" }'
:options="returnCargoWayOptions" :props="returnCargoWayProps">
:disabled="judgeWrite('deliveryType')" :options="returnCargoWayOptions"
:props="returnCargoWayProps">
</JnpfSelect>
</jnpf-form-tip-item>
</el-col>
@ -621,7 +624,7 @@
<el-table :data="dataForm.deliveryProductRelationList" size='mini'>
<el-table-column type="index" width="50" label="序号" align="center" />
<el-table-column label="商品名称" v-if="judgeShow('deliveryproductrelation-productId')"
prop="productId">
prop="productId" width="200">
<template slot="header">
<span class="required-sign"
v-if="judgeRequired('deliveryproductrelationList-productId')">*</span>商品名称
@ -710,14 +713,20 @@
v-if="judgeRequired('deliveryproductrelationList-deliveryUnit')">*</span>退货单位
</template>
<template slot-scope="scope">
<JnpfSelect v-model="scope.row.deliveryUnit"
<!-- <JnpfSelect v-model="scope.row.deliveryUnit"
@change="changeData('deliveryproductrelation-deliveryUnit', scope.$index)"
placeholder="请选择"
:disabled="judgeWrite('deliveryproductrelationList') || judgeWrite('deliveryproductrelationList-deliveryUnit')"
clearable :style='{ "width": "100%" }'
:options="scope.row.deliveryproductrelationdeliveryUnitOptions"
:props="deliveryproductrelationdeliveryUnitProps">
</JnpfSelect>
</JnpfSelect> -->
<JnpfInput v-model="scope.row.deliveryUnit"
@change="changeData('deliveryproductrelation-deliveryUnit', scope.$index)"
placeholder="请输入"
:disabled="judgeWrite('deliveryproductrelationList') || judgeWrite('deliveryproductrelationList-deliveryUnit')"
clearable :style='{ "width": "100%" }'>
</JnpfInput>
</template>
</el-table-column>
<el-table-column label="毛重" v-if="judgeShow('deliveryproductrelation-grossWeight')"
@ -869,8 +878,7 @@
v-if="judgeRequired('deliveryproductrelationList-returnUnit')">*</span>退货单价
</template>
<template slot-scope="scope">
<JnpfInput v-model="scope.row.returnUnit"
@change="changeData('deliveryproductrelation-returnUnit', scope.$index)"
<JnpfInput v-model="scope.row.returnUnit" @input="priceCount(scope.row)"
placeholder="请输入"
:disabled="judgeWrite('deliveryproductrelationList') || judgeWrite('deliveryproductrelationList-returnUnit')"
clearable :style='{ "width": "100%" }'>
@ -1271,6 +1279,14 @@ export default {
this.initPurchaseData();
},
methods: {
//退
priceCount(row) {
if (row.deliveryNum) {
row.taxCount = this.jnpf.floatMul(row.deliveryNum, row.returnUnit).toFixed(2) //
row.notTaxPrice = this.jnpf.floatDiv(row.returnUnit, this.jnpf.floatAdd(1, this.jnpf.floatDiv(row.tax, 100))).toFixed(6) //
row.notTaxCount = this.jnpf.floatMul(row.deliveryNum, row.notTaxPrice).toFixed(2) //
}
},
//
choiceProduct() {
this.BomgoodsBoxVisible = true
@ -1350,24 +1366,16 @@ export default {
this.dataForm.deliveryVoucherRelationList.push(item)
let productEntity = {}
e.warehousingStorageProductEntityList.forEach(item => {
debugger
if (item.orderMainUnitIds) {
var unitName = JSON.parse(item.orderMainUnitIds);
var optArray = [];
for (let i = 0; i < unitName.length; i++) {
item.deliveryUnit = unitName[0];
var opt = {};
opt.fullName = unitName[i];
opt.id = unitName[i];
optArray.push(opt);
}
item.deliveryproductrelationdeliveryUnitOptions = optArray;
}
const obj = this.productByOrderList.find(e => e.productId == item.id) || {}
const obj = this.productByOrderList.find(e => e.productId == item.productId) || {}
item.salesMainUnitId = obj.salesMainUnitId
item.saleNum = obj.businessNum
item.receivedQuantity = obj.receivedQuantity
item.inventoryUnitId = item.inventoryUnitIds
item.tax = obj.tax
item.receivedQuantity = item.netWeight
item.deliveryNum = item.netWeight
item.cargoId = item.storageAreaId
item.batchNo = item.batchNumber
item.produceTime = item.dateManufacture
item.deliveryUnit = item.storageUnit
item.businessType = "2"
productEntity = item
})
@ -1408,10 +1416,6 @@ export default {
this.dataForm.reservedFields1 = val2.businessLineId
val2.businessOrderProductRelationalList.forEach((item, index) => {
this.productIdList.push(item.productId)
// item.productName = item.name
// item.purchaseUnitId = item.salesMainUnitId
// item.purchaseNum = item.businessNum
// item.businessType = "2"
})
this.productByOrderList = val2.businessOrderProductRelationalList
},

Loading…
Cancel
Save