123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251 |
- package com.steerinfo.dil.service.impl;
- import com.steerinfo.dil.mapper.BmstruckCheckMapper;
- import com.steerinfo.dil.mapper.BmstruckDetailsOrderMapper;
- import com.steerinfo.dil.mapper.BmstruckDetailsStatementMapper;
- import com.steerinfo.dil.model.BmstruckCheck;
- import com.steerinfo.dil.model.BmstruckDetailsOrder;
- import com.steerinfo.dil.model.BmstruckDetailsStatement;
- import com.steerinfo.dil.util.NoUtil;
- import com.steerinfo.dil.model.BmstruckStatement;
- import com.steerinfo.dil.mapper.BmstruckStatementMapper;
- import com.steerinfo.dil.service.IBmstruckStatementService;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import java.text.DecimalFormat;
- import java.util.Date;
- import java.math.BigDecimal;
- import java.util.List;
- import java.util.Map;
- /**
- * BmstruckStatement服务实现:
- *
- * @author generator
- * @version 1.0-SNAPSHORT 2021-10-15 06:20
- * 类描述
- * 修订历史:
- * 日期:2021-10-15
- * 作者:generator
- * 参考:
- * 描述:BmstruckStatement服务实现
- * @Copyright 湖南视拓信息技术股份有限公司. All rights reserved.
- * @see null
- */
- @Service(value = "bmstruckStatementService")
- public class BmstruckStatementServiceImpl implements IBmstruckStatementService {
- @Autowired
- BmstruckStatementMapper bmstruckStatementMapper;
- @Autowired
- BmstruckDetailsStatementMapper bmstruckDetailsStatementMapper;
- @Autowired
- BmstruckDetailsOrderMapper bmstruckDetailsOrderMapper;
- @Autowired
- BmstruckCheckMapper bmstruckCheckMapper;
- @Autowired
- NoUtil noUtil;
- /**
- * 展示计费账单
- *
- * @param mapValue
- * @return
- */
- @Override
- public List<Map<String, Object>> getTruckStatementList(Map<String, Object> mapValue) {
- List<Map<String, Object>> mapList = bmstruckStatementMapper.getTruckStatementList(mapValue);
- String checkStatus = "";
- for (Map<String, Object> map : mapList) {
- BigDecimal checkCarrierStatus = (BigDecimal) map.get("checkCarrierStatus");
- BigDecimal checkReceiveCustomerStatus = (BigDecimal) map.get("checkReceiveCustomerStatus");
- BigDecimal checkShipperStatus = (BigDecimal) map.get("checkShipperStatus");
- if (checkCarrierStatus.intValue() == 1 || checkReceiveCustomerStatus.intValue() == 1 || checkShipperStatus.intValue() == 1) {
- checkStatus = "未通过审核";
- }
- // 全部通过:已通过审核
- if (checkCarrierStatus.intValue() == 2 && checkReceiveCustomerStatus.intValue() == 2 && checkShipperStatus.intValue() == 2) {
- checkStatus = "已通过审核";
- }
- // 有人未审核,且没人拒绝:审核中
- if (checkStatus != "未审核通过" && checkCarrierStatus.intValue() == 0 || checkReceiveCustomerStatus.intValue() == 0 || checkShipperStatus.intValue() == 0) {
- checkStatus = "审核中";
- }
- // 全部都没审核:待审核
- if (checkCarrierStatus.intValue() == 0 && checkReceiveCustomerStatus.intValue() == 0 && checkShipperStatus.intValue() == 0) {
- checkStatus = "待审核";
- }
- map.put("checkStatus", checkStatus);
- }
- return mapList;
- }
- /**
- * 生成汽运账单
- *
- * @param mapList
- * @return
- */
- @Transactional
- @Override
- public int addTruckStatement(List<Map<String, Object>> mapList) {
- BmstruckStatement bmstruckStatement = new BmstruckStatement();
- BmstruckCheck bmstruckCheck = new BmstruckCheck();
- // 汽运账单主键
- BigDecimal statementId = bmstruckStatementMapper.selectStatementId();
- bmstruckStatement.setStatementId(statementId);
- BigDecimal checkId = bmstruckCheckMapper.selectCheckId();
- bmstruckCheck.setCheckId(checkId);
- bmstruckCheck.setStatementId(statementId);
- bmstruckCheck.setCheckCarrierStatus(new BigDecimal(0));
- bmstruckCheck.setCheckShipperStatus(new BigDecimal(0));
- bmstruckCheck.setCheckReceiveCustomerStatus(new BigDecimal(0));
- bmstruckCheckMapper.insertSelective(bmstruckCheck);
- // 汽运账单编号
- String statementNumber = noUtil.setResultNo("QYZD", statementId);
- bmstruckStatement.setStatementNumber(statementNumber);
- // 支付单位
- bmstruckStatement.setStatementPaymentUnit("四川达州钢铁集团有限责任公司");
- // 备注
- bmstruckStatement.setStatementRemark("汽运费账单");
- // 常规字段
- bmstruckStatement.setInsertTime(new Date());
- bmstruckStatement.setInsertUsername("admin");
- bmstruckStatement.setUpdateTime(new Date());
- bmstruckStatement.setUpdateUsername("admin");
- bmstruckStatement.setInsertUpdateRemark("无");
- Double doubleTotalAmount = new Double(0);
- for (Map<String, Object> map : mapList) {
- // 中间表主键
- BigDecimal detailsStatementId = bmstruckDetailsStatementMapper.selectDetailsStatementId();
- // 详单id
- BigDecimal detailsId = new BigDecimal((Integer) map.get("detailsId"));
- BmstruckDetailsOrder bmstruckDetailsOrder = bmstruckDetailsOrderMapper.selectByPrimaryKey(detailsId);
- bmstruckDetailsOrder.setWetherToStatement(new BigDecimal(1));
- bmstruckDetailsOrderMapper.updateByPrimaryKeySelective(bmstruckDetailsOrder);
- BmstruckDetailsStatement bmstruckDetailsStatement = new BmstruckDetailsStatement();
- bmstruckDetailsStatement.setDetailsStatementId(detailsStatementId);
- bmstruckDetailsStatement.setStatementId(statementId);
- bmstruckDetailsStatement.setDetailsId(detailsId);
- // 设置常规字段
- bmstruckDetailsStatement.setInsertTime(new Date());
- bmstruckDetailsStatement.setInsertUsername("admin");
- bmstruckDetailsStatement.setUpdateTime(new Date());
- bmstruckDetailsStatement.setUpdateUsername("admin");
- bmstruckDetailsStatement.setInsertUpdateRemark("无");
- BigDecimal detailsAmount = new BigDecimal((Double) map.get("detailsAmount"));
- Double detailsAmountDouble = Double.valueOf(detailsAmount.toString());
- doubleTotalAmount += detailsAmountDouble;
- bmstruckDetailsStatementMapper.insertSelective(bmstruckDetailsStatement);
- }
- DecimalFormat df = new DecimalFormat("0.00");
- String statementTotalAmount = df.format(doubleTotalAmount);
- bmstruckStatement.setStatementExcludTax(new BigDecimal(statementTotalAmount));
- return bmstruckStatementMapper.insertSelective(bmstruckStatement);
- }
- /**
- * 展示账单下的详单
- *
- * @param mapVal
- * @return
- */
- @Override
- public List<Map<String, Object>> getSaleTruckStatementDetailsOrderList(Map<String, Object> mapVal) {
- return bmstruckStatementMapper.getSaleTruckStatementDetailsOrderList(mapVal);
- }
- /**
- * 新增内转汽运账单
- *
- * @param mapList
- * @param orderType
- * @return
- */
- @Override
- public int addConvertedTruckStatement(List<Map<String, Object>> mapList, Integer orderType) {
- //orderType:1:计时,2:计数,3:计重,4:包月
- // 生成汽运账单主键
- BigDecimal statementId = bmstruckStatementMapper.selectStatementId();
- // 创建账单实体
- BmstruckStatement bmstruckStatement = new BmstruckStatement();
- // 常规字段
- bmstruckStatement.setInsertTime(new Date());
- bmstruckStatement.setInsertUsername("admin");
- bmstruckStatement.setInsertUpdateRemark("无");
- // 计算账单总金额
- Double doubleTotalAmount = new Double(0);
- //将详单id与账单id绑定至中间表
- for (Map<String, Object> map : mapList) {
- // 中间表主键
- BigDecimal detailsStatementId = bmstruckDetailsStatementMapper.selectDetailsStatementId();
- // 详单id
- BigDecimal detailsId = new BigDecimal((Integer) map.get("detailsId"));
- // 获取详单信息
- BmstruckDetailsOrder bmstruckDetailsOrder = bmstruckDetailsOrderMapper.selectByPrimaryKey(detailsId);
- // 将该详单状态变为已生成账单
- bmstruckDetailsOrder.setWetherToStatement(new BigDecimal(1));
- bmstruckDetailsOrder.setUpdateTime(new Date());
- bmstruckDetailsOrder.setUpdateUsername("admin");
- // 修改详单信息
- bmstruckDetailsOrderMapper.updateByPrimaryKeySelective(bmstruckDetailsOrder);
- // 新增中间表实体
- BmstruckDetailsStatement bmstruckDetailsStatement = new BmstruckDetailsStatement();
- //设置主键
- bmstruckDetailsStatement.setDetailsStatementId(detailsStatementId);
- bmstruckDetailsStatement.setStatementId(statementId);
- bmstruckDetailsStatement.setDetailsId(detailsId);
- // 设置常规字段
- bmstruckDetailsStatement.setInsertTime(new Date());
- bmstruckDetailsStatement.setInsertUsername("admin");
- bmstruckDetailsStatement.setInsertUpdateRemark("无");
- BigDecimal detailsAmount = new BigDecimal((Double) map.get("detailsAmount"));
- Double detailsAmountDouble = Double.valueOf(detailsAmount.toString());
- doubleTotalAmount += detailsAmountDouble;
- bmstruckDetailsStatementMapper.insertSelective(bmstruckDetailsStatement);
- }
- if (orderType == 1) {
- // 备注
- bmstruckStatement.setStatementRemark("计时汽运费账单");
- } else if (orderType == 2) {
- // 备注
- bmstruckStatement.setStatementRemark("计数汽运费账单");
- } else if (orderType == 3) {
- // 备注
- bmstruckStatement.setStatementRemark("计重汽运费账单");
- } else if (orderType == 4) {
- // 备注
- bmstruckStatement.setStatementRemark("包月汽运费账单");
- }
- bmstruckStatement.setStatementExcludTax(new BigDecimal(doubleTotalAmount));
- return bmstruckStatementMapper.insertSelective(bmstruckStatement);
- }
- @Override
- public int delete(BigDecimal statementId) {
- //通过账单id获取详单
- List<BigDecimal> list = bmstruckStatementMapper.getDetailById(statementId);
- for (BigDecimal detailsId : list
- ) {
- BmstruckDetailsOrder bmstruckDetailsOrder = new BmstruckDetailsOrder();
- bmstruckDetailsOrder.setDetailsId(detailsId);
- bmstruckDetailsOrder.setWetherToStatement(new BigDecimal(0));
- bmstruckDetailsOrder.setUpdateTime(new Date());
- bmstruckDetailsOrder.setUpdateUsername("admin");
- bmstruckDetailsOrderMapper.updateByPrimaryKeySelective(bmstruckDetailsOrder);
- }
- return bmstruckStatementMapper.deleteByPrimaryKey(statementId);
- }
- @Override
- public int update(BigDecimal statementId) {
- BmstruckStatement bmstruckStatement = new BmstruckStatement();
- bmstruckStatement.setStatementType(new BigDecimal(1));
- bmstruckStatement.setUpdateTime(new Date());
- bmstruckStatement.setUpdateUsername("admin");
- return bmstruckStatementMapper.updateByPrimaryKeySelective(bmstruckStatement);
- }
- }
|