|
@@ -73,6 +73,8 @@ public class PaymentManagementServiceImpl extends ServiceImpl<PaymentManagementM
|
|
|
private IWeightedDetailsService weightedDetailsService;
|
|
|
@Autowired
|
|
|
private ICostManagementInfoService costManagementInfoService;
|
|
|
+ @Autowired
|
|
|
+ private ICommonSysParameterService iCommonSysParameterService;
|
|
|
/**
|
|
|
* 付款管理列表
|
|
|
* @param paymentManagement
|
|
@@ -193,151 +195,135 @@ public class PaymentManagementServiceImpl extends ServiceImpl<PaymentManagementM
|
|
|
//查询关联流转记录
|
|
|
QualityInspectionManagement qualityInspectionManagement = qualityInspectionManagementService.selectOne(new EntityWrapper<QualityInspectionManagement>()
|
|
|
.eq("relation_id",paymentManagement1.getRelationId()));
|
|
|
- WarehouseInOutInfo warehouseInOutInfo = warehouseInOutInfoService.selectOne(new EntityWrapper<WarehouseInOutInfo>()
|
|
|
+ WarehouseInOutInfo warehouseInOutInfo1 = new WarehouseInOutInfo();
|
|
|
+ WarehouseBaseInfo warehouseBaseInfo = warehouseBaseInfoService.selectOne(new EntityWrapper<WarehouseBaseInfo>()
|
|
|
.eq("warehouse_name",paymentManagement1.getWarehouseName())
|
|
|
+ .eq("comp_id",qualityInspectionManagement.getCompId()));
|
|
|
+ //生成流转信息
|
|
|
+ warehouseInOutInfo1.setId(IdGenerator.generateUUID());
|
|
|
+ warehouseInOutInfo1.setWarehouseName(paymentManagement1.getWarehouseName());
|
|
|
+
|
|
|
+ warehouseInOutInfo1.setBaseId(warehouseBaseInfo.getId());
|
|
|
+ //查到仓位编号
|
|
|
+ WarehousePositionInfo warehousePositionInfo = warehousePositionInfoService.selectOne(new EntityWrapper<WarehousePositionInfo>()
|
|
|
+ .eq("base_id",warehouseBaseInfo.getId())
|
|
|
.eq("bin_number",qualityInspectionManagement.getBinNumber()));
|
|
|
- //不为空修改流转信息
|
|
|
- if(warehouseInOutInfo != null){
|
|
|
- warehouseInOutInfoService.updateById(warehouseInOutInfo);
|
|
|
+ warehouseInOutInfo1.setPositionId(warehousePositionInfo.getId());
|
|
|
+ warehouseInOutInfo1.setBinNumber(qualityInspectionManagement.getBinNumber());
|
|
|
+ warehouseInOutInfo1.setGoodsName(paymentManagement1.getGoodsName());
|
|
|
+ CommonSysParameter commonSysParameter = iCommonSysParameterService.selectOne(new EntityWrapper<CommonSysParameter>().eq("const_id","CON2").eq("const_value",paymentManagement1.getGoodsName()));
|
|
|
+ warehouseInOutInfo1.setGoodsNameKey(commonSysParameter.getConstKey());
|
|
|
+ warehouseInOutInfo1.setGrossWeight(paymentManagement1.getGrossWeight());
|
|
|
+ warehouseInOutInfo1.setTare(paymentManagement1.getTare());
|
|
|
+ warehouseInOutInfo1.setInOutType("收购入库");
|
|
|
+ warehouseInOutInfo1.setInOutFlag("2");
|
|
|
+ warehouseInOutInfo1.setCarNo(paymentManagement1.getCarNo());
|
|
|
+ warehouseInOutInfo1.setContractNo(paymentManagement1.getPaymentNo());
|
|
|
+ warehouseInOutInfo1.setAgent(paymentManagement.getSettlementClerk());
|
|
|
+ warehouseInOutInfo1.setInOutDate(new Date());
|
|
|
+ warehouseInOutInfo1.setGrade(qualityInspectionManagement.getGrade());
|
|
|
+ //潮粮取纯重,干粮取净重
|
|
|
+ if("潮粮".equals(paymentManagement1.getType())){
|
|
|
+ warehouseInOutInfo1.setPureWeight(paymentManagement.getPureWeight());
|
|
|
+ warehouseInOutInfo1.setNetWeight(paymentManagement.getPureWeight());
|
|
|
+ }else{
|
|
|
+ warehouseInOutInfo1.setNetWeight(paymentManagement.getNetWeight());
|
|
|
}
|
|
|
- else{
|
|
|
- //生成流转信息
|
|
|
- WarehouseInOutInfo warehouseInOutInfo1 = new WarehouseInOutInfo();
|
|
|
- warehouseInOutInfo1.setId(IdGenerator.generateUUID());
|
|
|
- warehouseInOutInfo1.setWarehouseName(paymentManagement1.getWarehouseName());
|
|
|
- WarehouseBaseInfo warehouseBaseInfo = warehouseBaseInfoService.selectOne(new EntityWrapper<WarehouseBaseInfo>()
|
|
|
- .eq("warehouse_name",paymentManagement1.getWarehouseName())
|
|
|
- .eq("comp_id",qualityInspectionManagement.getCompId()));
|
|
|
- warehouseInOutInfo1.setBaseId(warehouseBaseInfo.getId());
|
|
|
- //查到仓位编号
|
|
|
- WarehousePositionInfo warehousePositionInfo = warehousePositionInfoService.selectOne(new EntityWrapper<WarehousePositionInfo>()
|
|
|
- .eq("base_id",warehouseBaseInfo.getId())
|
|
|
- .eq("bin_number",qualityInspectionManagement.getBinNumber()));
|
|
|
- warehouseInOutInfo1.setPositionId(warehousePositionInfo.getId());
|
|
|
- warehouseInOutInfo1.setBinNumber(qualityInspectionManagement.getBinNumber());
|
|
|
- warehouseInOutInfo1.setGoodsName(paymentManagement1.getGoodsName());
|
|
|
- warehouseInOutInfo1.setGrossWeight(paymentManagement1.getGrossWeight());
|
|
|
- warehouseInOutInfo1.setTare(paymentManagement1.getTare());
|
|
|
- warehouseInOutInfo1.setInOutType("收购入库");
|
|
|
- warehouseInOutInfo1.setInOutFlag("2");
|
|
|
- warehouseInOutInfo1.setCarNo(paymentManagement1.getCarNo());
|
|
|
- warehouseInOutInfo1.setContractNo(paymentManagement1.getPaymentNo());
|
|
|
- warehouseInOutInfo1.setAgent(paymentManagement.getSettlementClerk());
|
|
|
- warehouseInOutInfo1.setInOutDate(paymentManagement1.getCreateDate());
|
|
|
- warehouseInOutInfo1.setGrade(qualityInspectionManagement.getGrade());
|
|
|
- //潮粮取纯重,干粮取净重
|
|
|
- if("潮粮".equals(paymentManagement1.getType())){
|
|
|
- warehouseInOutInfo1.setPureWeight(paymentManagement1.getPureWeight());
|
|
|
- warehouseInOutInfo1.setNetWeight(paymentManagement1.getPureWeight());
|
|
|
- }else{
|
|
|
- warehouseInOutInfo1.setNetWeight(paymentManagement1.getNetWeight());
|
|
|
- }
|
|
|
- float original = 0f;
|
|
|
- // 查询库位
|
|
|
- if (warehousePositionInfo != null) {
|
|
|
- // 查询货物库存量
|
|
|
- WarehousePositionStorageInfo warehousePositionStorageInfo = warehousePositionStorageInfoService.selectOne(new EntityWrapper<WarehousePositionStorageInfo>()
|
|
|
- .eq("position_id", warehouseInOutInfo1.getPositionId())
|
|
|
- .eq("goods_name", warehouseInOutInfo1.getGoodsName())
|
|
|
- .eq("delete_flag", "0"));
|
|
|
- // 判断是否有货
|
|
|
- if (warehousePositionStorageInfo != null) {
|
|
|
- original = warehousePositionStorageInfo.getStorage() + warehouseInOutInfo1.getNetWeight();
|
|
|
- // 更新库存量
|
|
|
- warehousePositionStorageInfo.setStorage(warehousePositionStorageInfo.getStorage() + warehouseInOutInfo1.getNetWeight());
|
|
|
- warehousePositionStorageInfoService.updateById(warehousePositionStorageInfo);
|
|
|
- }
|
|
|
- // 没有货
|
|
|
- else {
|
|
|
- original=0f;
|
|
|
- WarehousePositionStorageInfo warehousePositionStorageInfo1 = new WarehousePositionStorageInfo();
|
|
|
- warehousePositionStorageInfo1.setId(IdGenerator.generateUUID());
|
|
|
- warehousePositionStorageInfo1.setPositionId(warehouseInOutInfo1.getPositionId());
|
|
|
- warehousePositionStorageInfo1.setBinNumber(warehouseInOutInfo1.getBinNumber());
|
|
|
- warehousePositionStorageInfo1.setGoodsName(warehouseInOutInfo1.getGoodsName());
|
|
|
- warehousePositionStorageInfo1.setStorage(warehouseInOutInfo1.getNetWeight());
|
|
|
- warehousePositionStorageInfoService.insert(warehousePositionStorageInfo1);
|
|
|
- }
|
|
|
- }
|
|
|
- warehouseInOutInfo1.setStatusFlag("3");
|
|
|
- warehouseInOutInfoService.insert(warehouseInOutInfo1);
|
|
|
- WarehouseInOutDetail warehouseInOutDetail = new WarehouseInOutDetail();
|
|
|
- warehouseInOutDetail.setId(IdGenerator.generateUUID());
|
|
|
- warehouseInOutDetail.setInfoId(warehouseInOutInfo1.getId());
|
|
|
- warehouseInOutDetail.setQualityInspector(qualityInspectionManagement.getQualityInspector());
|
|
|
- warehouseInOutDetail.setWaterContent(qualityInspectionManagement.getWaterContent());
|
|
|
- warehouseInOutDetail.setImpurity(qualityInspectionManagement.getImpurity());
|
|
|
- warehouseInOutDetail.setBulkDensity(qualityInspectionManagement.getBulkDensity());
|
|
|
- warehouseInOutDetail.setMildewGrain(qualityInspectionManagement.getMildewGrain());
|
|
|
- warehouseInOutDetail.setJiaorenli(qualityInspectionManagement.getJiaorenli());
|
|
|
- warehouseInOutDetail.setImperfectGrain(qualityInspectionManagement.getImperfectGrain());
|
|
|
- warehouseInOutDetailService.insert(warehouseInOutDetail);
|
|
|
- WeightedDetails weightedDetails = new WeightedDetails();
|
|
|
- weightedDetails.setCompId(AuthSecurityUtils.getCurrentUserInfo().getCompId());
|
|
|
- weightedDetails.setId(IdGenerator.generateUUID());
|
|
|
- weightedDetails.setWarehouseId(warehouseInOutInfo1.getBaseId());
|
|
|
- weightedDetails.setWarehouseName(warehouseInOutInfo1.getWarehouseName());
|
|
|
- weightedDetails.setGoodsNameKey(warehouseInOutInfo1.getGoodsNameKey());
|
|
|
- weightedDetails.setGoodsName(warehouseInOutInfo1.getGoodsName());
|
|
|
- weightedDetails.setGrainType(warehouseInOutInfo1.getType());
|
|
|
- weightedDetails.setInTypeKey(warehouseInOutInfo1.getTaskTypeKey());
|
|
|
- weightedDetails.setInType(warehouseInOutInfo1.getTaskType());
|
|
|
- weightedDetails.setNetWeight(warehouseInOutInfo1.getNetWeight());
|
|
|
- weightedDetails.setPureWeight(warehouseInOutInfo1.getPureWeight());
|
|
|
- weightedDetails.setUnitPrice(warehouseInOutInfo1.getUnitPrice());
|
|
|
- weightedDetails.setDeductionAmount(warehouseInOutInfo1.getDeductionAmount());
|
|
|
- weightedDetails.setFreight(warehouseInOutInfo1.getFreight());
|
|
|
- weightedDetails.setOriginalStock(original);
|
|
|
- // 查询入库全加权成本
|
|
|
- List<WeightedDetails> weightedDetailsList = weightedDetailsService.selectList(new EntityWrapper<WeightedDetails>().eq("warehouse_id", warehouseInOutInfo1.getWarehouseName())
|
|
|
- .eq("goods_name_key", warehouseInOutInfo1.getGoodsNameKey()).orderBy("update_date", false));
|
|
|
- if (CollectionUtils.isEmpty(weightedDetailsList)) {
|
|
|
- weightedDetails.setCostBefore(0f);
|
|
|
- } else {
|
|
|
- weightedDetails.setCostBefore(weightedDetailsList.get(0).getCostBefore());
|
|
|
- }
|
|
|
- // 计算新加权成本
|
|
|
- Float newCost = 0f;
|
|
|
- if ("干粮".equals(warehouseInOutInfo1.getTaskType())) {
|
|
|
- newCost = ((warehouseInOutInfo1.getCost() + warehouseInOutInfo1.getFreight()) * warehouseInOutInfo1.getNetWeight() + original * weightedDetails.getCostBefore()) / (warehouseInOutInfo1.getNetWeight() + original);
|
|
|
-
|
|
|
- } else {
|
|
|
- newCost = ((warehouseInOutInfo1.getCost() + warehouseInOutInfo1.getFreight()) * warehouseInOutInfo1.getNetWeight() + original * weightedDetails.getCostBefore()) / (warehouseInOutInfo1.getPureWeight() + original);
|
|
|
-
|
|
|
- }
|
|
|
- weightedDetails.setCostAfter(newCost);
|
|
|
+ warehouseInOutInfo1.setStatusFlag("3");
|
|
|
+ warehouseInOutInfoService.insert(warehouseInOutInfo1);
|
|
|
+ float original = 0f;
|
|
|
+ // 查询货物库存量
|
|
|
+ WarehousePositionStorageInfo warehousePositionStorageInfo = warehousePositionStorageInfoService.selectOne(new EntityWrapper<WarehousePositionStorageInfo>()
|
|
|
+ .eq("position_id", warehouseInOutInfo1.getPositionId())
|
|
|
+ .eq("goods_name", warehouseInOutInfo1.getGoodsName())
|
|
|
+ .eq("delete_flag", "0"));
|
|
|
+ // 判断是否有货
|
|
|
+ if (warehousePositionStorageInfo != null) {
|
|
|
+ original = warehousePositionStorageInfo.getStorage();
|
|
|
+ // 更新库存量
|
|
|
+ warehousePositionStorageInfo.setStorage(warehousePositionStorageInfo.getStorage() + warehouseInOutInfo1.getNetWeight());
|
|
|
+ warehousePositionStorageInfoService.updateById(warehousePositionStorageInfo);
|
|
|
+ }
|
|
|
+ // 没有货
|
|
|
+ else {
|
|
|
+ original=0f;
|
|
|
+ WarehousePositionStorageInfo warehousePositionStorageInfo1 = new WarehousePositionStorageInfo();
|
|
|
+ warehousePositionStorageInfo1.setId(IdGenerator.generateUUID());
|
|
|
+ warehousePositionStorageInfo1.setPositionId(warehouseInOutInfo1.getPositionId());
|
|
|
+ warehousePositionStorageInfo1.setBinNumber(warehouseInOutInfo1.getBinNumber());
|
|
|
+ warehousePositionStorageInfo1.setGoodsName(warehouseInOutInfo1.getGoodsName());
|
|
|
+ warehousePositionStorageInfo1.setStorage(warehouseInOutInfo1.getNetWeight());
|
|
|
+ warehousePositionStorageInfoService.insert(warehousePositionStorageInfo1);
|
|
|
+ }
|
|
|
+ WarehouseInOutDetail warehouseInOutDetail = new WarehouseInOutDetail();
|
|
|
+ warehouseInOutDetail.setId(IdGenerator.generateUUID());
|
|
|
+ warehouseInOutDetail.setInfoId(warehouseInOutInfo1.getId());
|
|
|
+ warehouseInOutDetail.setQualityInspector(qualityInspectionManagement.getQualityInspector());
|
|
|
+ warehouseInOutDetail.setWaterContent(qualityInspectionManagement.getWaterContent());
|
|
|
+ warehouseInOutDetail.setImpurity(qualityInspectionManagement.getImpurity());
|
|
|
+ warehouseInOutDetail.setBulkDensity(qualityInspectionManagement.getBulkDensity());
|
|
|
+ warehouseInOutDetail.setMildewGrain(qualityInspectionManagement.getMildewGrain());
|
|
|
+ warehouseInOutDetail.setJiaorenli(qualityInspectionManagement.getJiaorenli());
|
|
|
+ warehouseInOutDetail.setImperfectGrain(qualityInspectionManagement.getImperfectGrain());
|
|
|
+ warehouseInOutDetailService.insert(warehouseInOutDetail);
|
|
|
+ WeightedDetails weightedDetails = new WeightedDetails();
|
|
|
+ weightedDetails.setCompId(AuthSecurityUtils.getCurrentUserInfo().getCompId());
|
|
|
+ weightedDetails.setId(IdGenerator.generateUUID());
|
|
|
+ weightedDetails.setWarehouseId(warehouseInOutInfo1.getBaseId());
|
|
|
+ weightedDetails.setWarehouseName(warehouseInOutInfo1.getWarehouseName());
|
|
|
+ weightedDetails.setGoodsNameKey(warehouseInOutInfo1.getGoodsNameKey());
|
|
|
+ weightedDetails.setGoodsName(warehouseInOutInfo1.getGoodsName());
|
|
|
+ weightedDetails.setGrainType(warehouseInOutInfo1.getType());
|
|
|
+ weightedDetails.setInTypeKey(warehouseInOutInfo1.getTaskTypeKey());
|
|
|
+ weightedDetails.setInType(warehouseInOutInfo1.getTaskType());
|
|
|
+ weightedDetails.setNetWeight(warehouseInOutInfo1.getNetWeight());
|
|
|
+ weightedDetails.setPureWeight(warehouseInOutInfo1.getPureWeight());
|
|
|
+ weightedDetails.setUnitPrice(warehouseInOutInfo1.getUnitPrice());
|
|
|
+ weightedDetails.setDeductionAmount(warehouseInOutInfo1.getDeductionAmount());
|
|
|
+ weightedDetails.setFreight(warehouseInOutInfo1.getFreight());
|
|
|
+ weightedDetails.setOriginalStock(original);
|
|
|
+ // 查询入库全加权成本
|
|
|
+ List<WeightedDetails> weightedDetailsList = weightedDetailsService.selectList(new EntityWrapper<WeightedDetails>().eq("warehouse_id", warehouseInOutInfo1.getWarehouseName())
|
|
|
+ .eq("goods_name_key", warehouseInOutInfo1.getGoodsNameKey()).orderBy("update_date", false));
|
|
|
+ if (CollectionUtils.isEmpty(weightedDetailsList)) {
|
|
|
+ weightedDetails.setCostBefore(0f);
|
|
|
+ } else {
|
|
|
+ weightedDetails.setCostBefore(weightedDetailsList.get(0).getCostBefore());
|
|
|
+ }
|
|
|
+ // 计算新加权成本
|
|
|
+ Float newCost = (paymentManagement.getActualPayment() + original * weightedDetails.getCostBefore()) / (warehouseInOutInfo1.getNetWeight() + original);
|
|
|
|
|
|
- weightedDetailsService.insert(weightedDetails);
|
|
|
- // 修改成本信息表
|
|
|
- CostManagementInfo costManagementInfo = costManagementInfoService.selectOne(new EntityWrapper<CostManagementInfo>().eq("warehouse_id", weightedDetails.getWarehouseId())
|
|
|
- .eq("goods_name_key", weightedDetails.getGoodsNameKey()));
|
|
|
- List<WeightedDetails> weightedDetailsLists = weightedDetailsService.selectList(new EntityWrapper<WeightedDetails>().eq("warehouse_id", warehouseInOutInfo1.getWarehouseName())
|
|
|
- .eq("goods_name_key", warehouseInOutInfo1.getGoodsNameKey()).orderBy("update_date", false));
|
|
|
- Float net = 0f;
|
|
|
- for(int i=0;i<weightedDetailsLists.size();i++){
|
|
|
- net = net +weightedDetailsLists.get(i).getNetWeight();
|
|
|
- }
|
|
|
- if(costManagementInfo ==null){
|
|
|
- CostManagementInfo costManagementInfo1= new CostManagementInfo();
|
|
|
- costManagementInfo1.setCompId(AuthSecurityUtils.getCurrentUserInfo().getCompId());
|
|
|
- costManagementInfo1.setId(IdGenerator.generateUUID());
|
|
|
- costManagementInfo1.setWarehouseId(weightedDetails.getWarehouseId());
|
|
|
- costManagementInfo1.setWarehouseName(weightedDetails.getWarehouseName());
|
|
|
- costManagementInfo1.setGoodsNameKey(weightedDetails.getGoodsNameKey());
|
|
|
- costManagementInfo1.setGoodsName(weightedDetails.getGoodsName());
|
|
|
- costManagementInfo1.setWarehouseType(warehouseBaseInfo.getWarehouseType());
|
|
|
+ weightedDetails.setCostAfter(newCost);
|
|
|
|
|
|
- costManagementInfo1.setStorage(net);
|
|
|
- costManagementInfo1.setCost(weightedDetails.getCostAfter());
|
|
|
- costManagementInfoService.insert(costManagementInfo1);
|
|
|
- }
|
|
|
- else{
|
|
|
- costManagementInfo.setCost(weightedDetails.getCostAfter());
|
|
|
- costManagementInfo.setStorage(net);
|
|
|
- costManagementInfoService.updateById(costManagementInfo);
|
|
|
- }
|
|
|
+ weightedDetailsService.insert(weightedDetails);
|
|
|
+ // 修改成本信息表
|
|
|
+ CostManagementInfo costManagementInfo = costManagementInfoService.selectOne(new EntityWrapper<CostManagementInfo>().eq("warehouse_id", weightedDetails.getWarehouseId())
|
|
|
+ .eq("goods_name_key", weightedDetails.getGoodsNameKey()));
|
|
|
+ List<WeightedDetails> weightedDetailsLists = weightedDetailsService.selectList(new EntityWrapper<WeightedDetails>().eq("warehouse_id", warehouseInOutInfo1.getWarehouseName())
|
|
|
+ .eq("goods_name_key", warehouseInOutInfo1.getGoodsNameKey()).orderBy("update_date", false));
|
|
|
+ Float net = 0f;
|
|
|
+ for(int i=0;i<weightedDetailsLists.size();i++){
|
|
|
+ net = net +weightedDetailsLists.get(i).getNetWeight();
|
|
|
}
|
|
|
+ if(costManagementInfo ==null){
|
|
|
+ CostManagementInfo costManagementInfo1= new CostManagementInfo();
|
|
|
+ costManagementInfo1.setCompId(AuthSecurityUtils.getCurrentUserInfo().getCompId());
|
|
|
+ costManagementInfo1.setId(IdGenerator.generateUUID());
|
|
|
+ costManagementInfo1.setWarehouseId(weightedDetails.getWarehouseId());
|
|
|
+ costManagementInfo1.setWarehouseName(weightedDetails.getWarehouseName());
|
|
|
+ costManagementInfo1.setGoodsNameKey(weightedDetails.getGoodsNameKey());
|
|
|
+ costManagementInfo1.setGoodsName(weightedDetails.getGoodsName());
|
|
|
+ costManagementInfo1.setWarehouseType(warehouseBaseInfo.getWarehouseType());
|
|
|
|
|
|
+ costManagementInfo1.setStorage(net);
|
|
|
+ costManagementInfo1.setCost(weightedDetails.getCostAfter());
|
|
|
+ costManagementInfoService.insert(costManagementInfo1);
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ costManagementInfo.setCost(weightedDetails.getCostAfter());
|
|
|
+ costManagementInfo.setStorage(net);
|
|
|
+ costManagementInfoService.updateById(costManagementInfo);
|
|
|
+ }
|
|
|
|
|
|
this.updateById(paymentManagement);
|
|
|
return "OK";
|