Sfoglia il codice sorgente

1.确认派车自动生成运费付费明细
2.撤销派车自动删除运费付费明细

纪新园 7 mesi fa
parent
commit
3c893c459f

+ 10 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/business/sea/entity/Bills.java

@@ -1120,6 +1120,16 @@ public class Bills implements Serializable {
 	@TableField(updateStrategy = FieldStrategy.IGNORED)
 	private Date cyReturnTime;
 	/**
+	 * 实际开船日期
+	 */
+	@TableField(exist = false)
+	private Date actualEtd;
+	/**
+	 * 实际到港日期
+	 */
+	@TableField(exist = false)
+	private Date actualEta;
+	/**
 	 * IEIEC
 	 */
 	@TableField(exist = false)

+ 40 - 4
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/controller/BillsController.java

@@ -201,11 +201,23 @@ public class BillsController extends BladeController {
 			.eq(ObjectUtils.isNotNull(bills.getBillType()), Bills::getBillType, bills.getBillType())
 			.eq(ObjectUtils.isNotNull(bills.getBusinessType()), Bills::getBusinessType, bills.getBusinessType())
 			.eq(ObjectUtils.isNotNull(bills.getSeaType()), Bills::getSeaType, bills.getSeaType())
-			.eq(ObjectUtils.isNotNull(bills.getBillStatus()), Bills::getBillStatus, bills.getBillStatus())
 			.eq(ObjectUtils.isNotNull(bills.getStlDrStatusDescr()), Bills::getStlDrStatusDescr, bills.getStlDrStatusDescr())
 			.eq(ObjectUtils.isNotNull(bills.getStlCrStatusDescr()), Bills::getStlCrStatusDescr, bills.getStlCrStatusDescr())
 			.eq(ObjectUtils.isNotNull(bills.getAccountStatus()), Bills::getAccountStatus, bills.getAccountStatus())
 			.eq(ObjectUtils.isNotNull(bills.getStatus()), Bills::getStatus, bills.getStatus());
+		if (ObjectUtils.isNotNull(bills.getBillStatus())){
+			if ("1,2,3".contains(bills.getBillStatus()+"")){
+				lambdaQueryWrapper.eq(Bills::getBillStatus, bills.getBillStatus());
+			}else if (0 == bills.getBillStatus()){
+				lambdaQueryWrapper.isNull(Bills::getMblno);
+			}else if (4 == bills.getBillStatus()){
+				lambdaQueryWrapper.isNotNull(Bills::getMblno);
+			}else if (5 == bills.getBillStatus()){
+				lambdaQueryWrapper.isNotNull(Bills::getActualEtd);
+			}else if (6 == bills.getBillStatus()){
+				lambdaQueryWrapper.isNotNull(Bills::getActualEta);
+			}
+		}
 		if ("SE".equals(bills.getBusinessType())) {
 			if ("1".equals(bills.getBillSort())) {
 				lambdaQueryWrapper.orderByDesc(Bills::getEtd);
@@ -337,8 +349,20 @@ public class BillsController extends BladeController {
 			.eq(ObjectUtils.isNotNull(bills.getSeaType()), Bills::getSeaType, bills.getSeaType())
 
 			.eq(ObjectUtils.isNotNull(bills.getMasterBillNo()), Bills::getMasterBillNo, bills.getMasterBillNo())
-			.eq(ObjectUtils.isNotNull(bills.getMasterId()), Bills::getMasterId, bills.getMasterId())
-			.eq(ObjectUtils.isNotNull(bills.getBillStatus()), Bills::getBillStatus, bills.getBillStatus());
+			.eq(ObjectUtils.isNotNull(bills.getMasterId()), Bills::getMasterId, bills.getMasterId());
+		if (ObjectUtils.isNotNull(bills.getBillStatus())){
+			if ("1,2,3".contains(bills.getBillStatus()+"")){
+				lambdaQueryWrapper.eq(Bills::getBillStatus, bills.getBillStatus());
+			}else if (0 == bills.getBillStatus()){
+				lambdaQueryWrapper.isNull(Bills::getMblno);
+			}else if (4 == bills.getBillStatus()){
+				lambdaQueryWrapper.isNotNull(Bills::getMblno);
+			}else if (5 == bills.getBillStatus()){
+				lambdaQueryWrapper.isNotNull(Bills::getActualEtd);
+			}else if (6 == bills.getBillStatus()){
+				lambdaQueryWrapper.isNotNull(Bills::getActualEta);
+			}
+		}
 		if ("SE".equals(bills.getBusinessType())) {
 			if ("1".equals(bills.getBillSort())) {
 				lambdaQueryWrapper.orderByDesc(Bills::getEtd);
@@ -705,9 +729,21 @@ public class BillsController extends BladeController {
 			.eq(ObjectUtils.isNotNull(bills.getBillType()), Bills::getBillType, bills.getBillType())
 			.eq(ObjectUtils.isNotNull(bills.getBusinessType()), Bills::getBusinessType, bills.getBusinessType())
 			.eq(ObjectUtils.isNotNull(bills.getSeaType()), Bills::getSeaType, bills.getSeaType())
-			.eq(ObjectUtils.isNotNull(bills.getBillStatus()), Bills::getBillStatus, bills.getBillStatus())
 			.eq(ObjectUtils.isNotNull(bills.getStatus()), Bills::getStatus, bills.getStatus())
 			.orderByDesc(Bills::getCreateTime);
+		if (ObjectUtils.isNotNull(bills.getBillStatus())){
+			if ("1,2,3".contains(bills.getBillStatus()+"")){
+				lambdaQueryWrapper.eq(Bills::getBillStatus, bills.getBillStatus());
+			}else if (0 == bills.getBillStatus()){
+				lambdaQueryWrapper.isNull(Bills::getMblno);
+			}else if (4 == bills.getBillStatus()){
+				lambdaQueryWrapper.isNotNull(Bills::getMblno);
+			}else if (5 == bills.getBillStatus()){
+				lambdaQueryWrapper.isNotNull(Bills::getActualEtd);
+			}else if (6 == bills.getBillStatus()){
+				lambdaQueryWrapper.isNotNull(Bills::getActualEta);
+			}
+		}
 		List<Bills> list = billsService.list(lambdaQueryWrapper);
 		List<BillsExcel> billsExcelList = new ArrayList<>();
 		R<List<DictBiz>> res1 = dictBizClient.getList("account_status");

+ 77 - 0
blade-service/blade-los/src/main/java/org/springblade/los/trade/service/impl/DispatchVehiclesServiceImpl.java

@@ -24,8 +24,12 @@ import lombok.AllArgsConstructor;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.los.Util.IDeptUtils;
+import org.springblade.los.basic.fees.entity.BFees;
+import org.springblade.los.basic.fees.service.IBFeesService;
 import org.springblade.los.business.sea.entity.Bills;
 import org.springblade.los.business.sea.mapper.BillsMapper;
+import org.springblade.los.finance.fee.entity.FeeCenter;
+import org.springblade.los.finance.fee.mapper.FeeCenterMapper;
 import org.springblade.los.trade.entity.AgentItems;
 import org.springblade.los.trade.entity.DispatchVehicles;
 import org.springblade.los.trade.entity.InOutStorage;
@@ -39,6 +43,8 @@ import org.springblade.system.feign.ISysClient;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -64,6 +70,10 @@ public class DispatchVehiclesServiceImpl extends ServiceImpl<DispatchVehiclesMap
 
 	private final AgentItemsMapper agentItemsMapper;
 
+	private final FeeCenterMapper feeCenterMapper;
+
+	private final IBFeesService bFeesService;
+
 	@Override
 	public IPage<DispatchVehiclesVO> selectDispatchVehiclesPage(IPage<DispatchVehiclesVO> page, DispatchVehiclesVO dispatchVehicles) {
 		return page.setRecords(baseMapper.selectDispatchVehiclesPage(page, dispatchVehicles));
@@ -178,6 +188,60 @@ public class DispatchVehiclesServiceImpl extends ServiceImpl<DispatchVehiclesMap
 		dispatchVehicles.setUpdateUserName(AuthUtil.getUserName());
 		dispatchVehicles.setDispatchVehiclesDate(new Date());
 		baseMapper.updateById(dispatchVehicles);
+		if (ObjectUtils.isNotNull(dispatchVehicles.getFreightPrice())
+			&& new BigDecimal("0.00").compareTo(dispatchVehicles.getFreightPrice()) != 0) {
+			BFees fees = bFeesService.getOne(new LambdaQueryWrapper<BFees>()
+				.eq(BFees::getTenantId, AuthUtil.getTenantId())
+				.eq(BFees::getIsDeleted, 0)
+				.eq(BFees::getCode, "LYF"));
+			if (fees == null) {
+				throw new RuntimeException("请先维护仓储费用基础信息");
+			}
+			FeeCenter feeCenter = new FeeCenter();
+			feeCenter.setCreateTime(new Date());
+			feeCenter.setCreateUser(AuthUtil.getUserId());
+			feeCenter.setCreateUserName(AuthUtil.getUserName());
+			if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
+				feeCenter.setCreateDept(bills.getCreateDept());
+				feeCenter.setBranchId(bills.getBranchId());
+				feeCenter.setCreateDeptName(bills.getCreateDeptName());
+			}
+			feeCenter.setBusinessType(bills.getBusinessType());
+			feeCenter.setPid(bills.getId());
+			feeCenter.setLineNo(1L);
+			feeCenter.setBillNo(bills.getBillNo());
+			feeCenter.setBillDate(bills.getBillDate());
+			feeCenter.setCorpId(dispatchVehicles.getFleetId());
+			feeCenter.setCorpCnName(dispatchVehicles.getFleetName());
+			feeCenter.setBillCorpId(bills.getCorpId());
+			feeCenter.setBillCorpCnName(bills.getCorpCnName());
+			feeCenter.setMblno(bills.getMblno());
+			feeCenter.setPolId(bills.getPolId());
+			feeCenter.setPolCode(bills.getPolCode());
+			feeCenter.setPolCnName(bills.getPolCnName());
+			feeCenter.setPolEnName(bills.getPolEnName());
+			feeCenter.setPodId(bills.getPodId());
+			feeCenter.setPodCode(bills.getPodCode());
+			feeCenter.setPodCnName(bills.getPodCnName());
+			feeCenter.setPodEnName(bills.getPodEnName());
+			feeCenter.setFeeId(fees.getId());
+			feeCenter.setFeeCode(fees.getCode());
+			feeCenter.setFeeCnName(fees.getCnName());
+			feeCenter.setFeeEnName(fees.getEnName());
+			feeCenter.setDc("C");
+			feeCenter.setCurCode(fees.getCurNo());
+			feeCenter.setSort(1);
+			feeCenter.setElementsId(fees.getAccElementId());
+			feeCenter.setElementsCode(fees.getElementsCode());
+			feeCenter.setElementsCnName(fees.getAccElementName());
+			feeCenter.setElementsEnName(fees.getElementsEnName());
+			feeCenter.setUnitNo("JOB");
+			feeCenter.setQuantity(new BigDecimal("1.00"));
+			feeCenter.setPrice(dispatchVehicles.getFreightPrice());
+			feeCenter.setAmount(dispatchVehicles.getFreightPrice());
+			feeCenter.setSrcItemId(dispatchVehicles.getId());
+			feeCenterMapper.insert(feeCenter);
+		}
 		return R.data(dispatchVehicles);
 	}
 
@@ -208,6 +272,19 @@ public class DispatchVehiclesServiceImpl extends ServiceImpl<DispatchVehiclesMap
 		dispatchVehicles.setUpdateUserName(AuthUtil.getUserName());
 		dispatchVehicles.setDispatchVehiclesDate(new Date());
 		baseMapper.updateById(dispatchVehicles);
+		if (ObjectUtils.isNotNull(dispatchVehicles.getFreightPrice())
+			&& new BigDecimal("0.00").compareTo(dispatchVehicles.getFreightPrice()) != 0) {
+			FeeCenter feeCenter = feeCenterMapper.selectOne(new LambdaQueryWrapper<FeeCenter>()
+				.eq(FeeCenter::getTenantId,AuthUtil.getTenantId())
+				.eq(FeeCenter::getIsDeleted,0)
+				.eq(FeeCenter::getPid,bills.getId())
+				.eq(FeeCenter::getFeeCode,"LYF")
+				.eq(FeeCenter::getSrcItemId,dispatchVehicles.getId())
+				.eq(FeeCenter::getDc,"C"));
+			if (feeCenter != null){
+				feeCenterMapper.deleteById(feeCenter.getId());
+			}
+		}
 		return R.data(dispatchVehicles);
 	}