| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271 |
- package com.steerinfo.dil.service.impl;
- import com.steerinfo.dil.feign.JoinApiFeign;
- import com.steerinfo.dil.mapper.BmsshipStatementMapper;
- import com.steerinfo.dil.model.BmsshipDetailsOrder;
- import com.steerinfo.dil.model.BmsshipDetailsStatement;
- import com.steerinfo.dil.model.BmsshipStatement;
- import com.steerinfo.dil.service.IBmsshipStatementService;
- import com.steerinfo.dil.util.EASUtil;
- import com.steerinfo.dil.util.NoUtil;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import java.math.BigDecimal;
- import java.text.DecimalFormat;
- import java.util.*;
- /**
- * @Description:
- * @Author:HuJianGuo
- * @GreateTime:2021/9/8 19:26
- * @Version:V2.0
- */
- @Service
- public class BmsshipStatementServiceImpl implements IBmsshipStatementService {
- @Autowired
- BmsshipStatementMapper bmsshipStatementMapper;
- @Autowired
- BmsshipDetailsStatementServiceImpl bmsshipDetailsStatementService;
- @Autowired
- BmsshipDetailsOrderSerivceImpl bmsshipDetailsOrderSerivce;
- @Autowired
- BmstruckFormulaServiceImpl bmstruckFormulaService;
- @Autowired
- NoUtil noUtil;
- @Autowired
- JoinApiFeign joinApiFeign;
- @Autowired
- EASUtil easUtil;
- /**
- * 生成水运费账单
- * @param listMap
- * @return
- */
- @Transactional
- @Override
- public int insertSelective(List<Map<String, Object>> listMap) throws Exception {
- // 生成水运费账单
- BmsshipStatement bmsshipStatement = new BmsshipStatement();
- BigDecimal statementId = selectMaxId();
- bmsshipStatement.setStatementId(statementId);
- String statementNo = noUtil.setResultNo("CYZD",statementId);
- bmsshipStatement.setStatementNo(statementNo);
- BigDecimal statementShipperId = new BigDecimal((Integer) listMap.get(0).get("statementShipperId"));
- bmsshipStatement.setStatementShipperId(statementShipperId);
- bmsshipStatement.setStatementDate(new Date());
- // 设置常规字段
- bmsshipStatement.setInsertTime(new Date());
- bmsshipStatement.setInsertUsername("admin");
- bmsshipStatement.setUpdateTime(new Date());
- bmsshipStatement.setUpdateUsername("admin");
- bmsshipStatement.setInsertUpdateRemark("无");
- Double doubleTotalAmount = new Double(0);
- // 详单-账单
- List<BmsshipDetailsStatement> list = new LinkedList<>();
- for (int i = 0;i < listMap.size(); i++) {
- BigDecimal detailsStatementId = bmsshipDetailsStatementService.selectMaxId();
- BigDecimal detailsId = new BigDecimal((Integer) listMap.get(i).get("detailsId"));
- BmsshipDetailsOrder bmsshipDetailsOrder = bmsshipDetailsOrderSerivce.selectByPrimaryKey(detailsId);
- bmsshipDetailsOrder.setWetherToStatement(new BigDecimal(1));
- bmsshipDetailsOrderSerivce.updateByPrimaryKeySelective(bmsshipDetailsOrder);
- BmsshipDetailsStatement bmsshipDetailsStatement = new BmsshipDetailsStatement();
- bmsshipDetailsStatement.setDetailsStatementId(detailsStatementId);
- bmsshipDetailsStatement.setStatementId(statementId);
- bmsshipDetailsStatement.setDetailsId(detailsId);
- // 设置常规字段
- bmsshipDetailsStatement.setInsertTime(new Date());
- bmsshipDetailsStatement.setInsertUsername("admin");
- bmsshipDetailsStatement.setUpdateTime(new Date());
- bmsshipDetailsStatement.setUpdateUsername("admin");
- bmsshipDetailsStatement.setInsertUpdateRemark("无");
- list.add(bmsshipDetailsStatement);
- Object detailsAmount = listMap.get(i).get("detailsAmount");
- Double detailsAmountDouble = Double.valueOf(detailsAmount.toString());
- doubleTotalAmount += detailsAmountDouble;
- bmsshipDetailsStatementService.insertSelective(bmsshipDetailsStatement);
- }
- DecimalFormat df = new DecimalFormat("0.00");
- String statementTotalAmount = df.format(doubleTotalAmount);
- bmsshipStatement.setStatementTotalAmount(new BigDecimal(statementTotalAmount));
- bmsshipStatement.setStatementType("水运费");
- int code = bmsshipStatementMapper.insertSelective(bmsshipStatement);
- // 调用金蝶接口
- List<Map<String,Object>> entries = joinApiFeign.getPurchaseShipDetails(statementId.intValue());
- Map<String,Object> head = joinApiFeign.getShipStatement(statementId.intValue());
- Map<String,Object> input = new HashMap<>();
- input.put("head",head);
- input.put("entries",entries);
- Map<String, Object> totalMap = easUtil.getTotalMap();
- totalMap.put("input",input);
- joinApiFeign.WSFaceWay(totalMap);
- return code;
- }
- /**
- * 生成质检费账单
- * @param mapList
- * @return
- */
- public int insertWaterFeesStatement(List<Map<String,Object>> mapList) throws Exception {
- // 生成水运费账单
- BmsshipStatement bmsshipStatement = new BmsshipStatement();
- Map<String, Object> map = mapList.get(0);
- BigDecimal batchId = new BigDecimal((Integer) map.get("batchId"));
- BigDecimal statementId = selectMaxId();
- bmsshipStatement.setStatementId(statementId);
- bmsshipStatement.setBatchId(batchId);
- String statementNo = noUtil.setResultNo("ZD",statementId);
- bmsshipStatement.setStatementNo(statementNo);
- bmsshipStatement.setStatementDate(new Date());
- BigDecimal doubleTotalAmount = bmstruckFormulaService.generateWaterFees(mapList);
- // 详单-账单
- DecimalFormat df = new DecimalFormat("0.00");
- String statementTotalAmount = df.format(doubleTotalAmount.doubleValue());
- bmsshipStatement.setStatementTotalAmount(new BigDecimal(statementTotalAmount));
- bmsshipStatement.setStatementType("水分检测费");
- // 设置常规字段
- bmsshipStatement.setInsertTime(new Date());
- bmsshipStatement.setInsertUsername("admin");
- bmsshipStatement.setUpdateTime(new Date());
- bmsshipStatement.setUpdateUsername("admin");
- bmsshipStatement.setInsertUpdateRemark("无");
- bmsshipStatement.setStatementShipperId(new BigDecimal(1));
- int code = bmsshipStatementMapper.insertSelective(bmsshipStatement);
- // 调用金蝶接口
- Map<String, Object> totalMap = easUtil.getTotalMap();
- Map<String, Object> input = joinApiFeign.getShipStatement(statementId.intValue());
- totalMap.put("input",input);
- joinApiFeign.WSFaceWay(totalMap);
- return code;
- }
- /**
- * 生成物流途损超标扣款账单
- * @param batchId
- * @return
- */
- public int insertLossStatement(BigDecimal batchId) throws Exception {
- // 生成水运费账单
- BmsshipStatement bmsshipStatement = new BmsshipStatement();
- BigDecimal statementId = selectMaxId();
- bmsshipStatement.setStatementId(statementId);
- String statementNo = noUtil.setResultNo("ZD",statementId);
- bmsshipStatement.setStatementNo(statementNo);
- bmsshipStatement.setStatementDate(new Date());
- BigDecimal statementShipperId = bmsshipStatementMapper.getCarrierId(batchId);
- bmsshipStatement.setStatementShipperId(statementShipperId);
- BigDecimal doubleTotalAmount = bmstruckFormulaService.generateLossCost(batchId);
- // 详单-账单
- DecimalFormat df = new DecimalFormat("0.00");
- String statementTotalAmount = df.format(doubleTotalAmount.doubleValue());
- bmsshipStatement.setStatementTotalAmount(new BigDecimal(statementTotalAmount));
- bmsshipStatement.setStatementType("物流途损超标扣款");
- bmsshipStatement.setBatchId(batchId);
- // 设置常规字段
- bmsshipStatement.setInsertTime(new Date());
- bmsshipStatement.setInsertUsername("admin");
- bmsshipStatement.setUpdateTime(new Date());
- bmsshipStatement.setUpdateUsername("admin");
- bmsshipStatement.setInsertUpdateRemark("无");
- int code = bmsshipStatementMapper.insertSelective(bmsshipStatement);
- // 调用金蝶接口
- Map<String, Object> totalMap = easUtil.getTotalMap();
- Map<String, Object> input = joinApiFeign.getShipStatement(statementId.intValue());
- totalMap.put("input",input);
- joinApiFeign.WSFaceWay(totalMap);
- return code;
- }
- /**
- * 得到最大id
- * @return
- */
- @Override
- public BigDecimal selectMaxId() {
- return bmsshipStatementMapper.selectStatementId();
- }
- /**
- * 展示账单信息
- * @param mapValue
- * @return
- */
- @Override
- public List<Map<String, Object>> getStatementList(Map<String, Object> mapValue) {
- return bmsshipStatementMapper.getStatementList(mapValue);
- }
- /**
- * 展示账单中的详单
- * @param mapValue
- * @return
- */
- @Override
- public List<Map<String, Object>> getDetailsOrder(Map<String, Object> mapValue) {
- return bmsshipStatementMapper.getDetailsOrder(mapValue);
- }
- /**
- * 得到总金额和支付单位
- * @param batchId
- * @return
- */
- @Override
- public List<Map<String, Object>> getShipperAndAmount(BigDecimal batchId) {
- return bmsshipStatementMapper.getShipperAndAmount(batchId);
- }
- /**
- * 得到汽运实绩
- * @param batchId
- * @return
- */
- @Override
- public List<Map<String, Object>> getTruckResult(BigDecimal batchId) {
- return bmsshipStatementMapper.getTruckResult(batchId);
- }
- /**
- * 得到船运实绩
- * @param mapVal
- * @return
- */
- @Override
- public List<Map<String, Object>> getShipResult(Map<String,Object> mapVal) {
- return bmsshipStatementMapper.getShipResult(mapVal);
- }
- /**
- * 展示途损费账单列表
- * @param mapValue
- * @return
- */
- @Override
- public List<Map<String, Object>> getLossStatementList(Map<String, Object> mapValue) {
- return bmsshipStatementMapper.getLossStatementList(mapValue);
- }
- /**
- * 展示水分检测实绩
- * @param mapValue
- * @return
- */
- @Override
- public List<Map<String, Object>> getWaterResult(Map<String, Object> mapValue) {
- return bmsshipStatementMapper.getWaterResult(mapValue);
- }
- /**
- * 得到批次信息
- * @param mapVal
- * @return
- */
- @Override
- public List<Map<String, Object>> getBatch(Map<String, Object> mapVal) {
- return bmsshipStatementMapper.getBatch(mapVal);
- }
- }
|