123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193 |
- package com.steerinfo.dil.service.impl;
- import com.steerinfo.dil.mapper.AmsSaleMaterialMapper;
- import com.steerinfo.dil.mapper.AmsSaleOrderMapper;
- import com.steerinfo.dil.model.AmsSaleMaterial;
- import com.steerinfo.dil.model.AmsSaleOrder;
- import com.steerinfo.dil.service.IAmsSaleOrderService;
- import com.steerinfo.dil.util.DataChange;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import java.math.BigDecimal;
- import java.util.Date;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- /**
- * AmsSaleOrder服务实现:
- * @author generator
- * @version 1.0-SNAPSHORT 2021-10-26 07:26
- * 类描述
- * 修订历史:
- * 日期:2021-10-26
- * 作者:generator
- * 参考:
- * 描述:AmsSaleOrder服务实现
- * @see null
- * @Copyright 湖南视拓信息技术股份有限公司. All rights reserved.
- */
- @Service(value = "amsSaleOrderService")
- public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
- @Autowired
- private AmsSaleOrderMapper amsSaleOrderMapper;
- @Autowired
- AmsSaleMaterialMapper amsSaleMaterialMapper;
- /**
- * 查询销售订单
- * @param saleOrderId
- * @return
- */
- @Override
- public Map<String, Object> getSaleOrder(BigDecimal saleOrderId) {
- List<Map<String,Object>> entries = amsSaleOrderMapper.getMaterialMessages(saleOrderId);
- Map<String,Object> head = amsSaleOrderMapper.getSaleOrderMessage(saleOrderId);
- for (Map<String, Object> entry : entries) {
- BigDecimal qty = null;
- BigDecimal materialNumber = (BigDecimal) entry.get("materialNumber");
- BigDecimal materialWeight = (BigDecimal) entry.get("materialWeight");
- if (materialNumber != null && materialNumber.toString().length() != 0) {
- qty = materialNumber;
- }
- if (materialWeight != null && materialWeight.toString().length() != 0) {
- qty = materialWeight;
- }
- entry.put("qty",qty);
- entry.remove("materialNumber");
- entry.remove("materialWeight");
- }
- Map<String,Object> input = new HashMap<>();
- input.put("head",head);
- input.put("entries",entries);
- return input;
- }
- /**
- * 修改销售订单
- * @param mapVal
- * @return
- */
- @Transactional
- @Override
- public int operationSaleOrder(Map<String, Object> mapVal) {
- int result = 0;
- // 审批状态
- String orderStatus = (String) mapVal.get("orderStatus");
- // 得到销售订单号
- String saleNumber = (String) mapVal.get("saleNumber");
- Map<String,Object> map = new HashMap<>();
- map.put("saleNumber",saleNumber);
- List<AmsSaleOrder> amsSaleOrders = amsSaleOrderMapper.selectByParameters(map);
- if (orderStatus.equals("4")) {
- AmsSaleOrder amsSaleOrder = amsSaleOrders.get(0);
- amsSaleOrder.setSaleOrderStatus(new BigDecimal(4));
- result = amsSaleOrderMapper.updateByPrimaryKeySelective(amsSaleOrder);
- }
- else {
- // 得到账户余额
- String saleAccountBalance = (String) mapVal.get("saleAccountBalance");
- // 得到当前订单金额
- String saleCurrentOrderAmount = (String) mapVal.get("saleCurrentOrderAmount");
- // 得到历史订单金额
- String saleHistoricalOrderAmount = (String) mapVal.get("saleHistoricalOrderAmount");
- // 得到订单备注
- String saleRemark = (String) mapVal.get("saleRemark");
- // 得到是否自提
- String isSelfMention = (String) mapVal.get("isSelfMention");
- // 得到收货单位
- String receiveUnit = (String) mapVal.get("receiveUnit");
- BigDecimal receiveId = amsSaleOrderMapper.getReceiveId(receiveUnit);
- // 得到发货单位
- String shipperUnit = (String) mapVal.get("shipperUnit");
- BigDecimal shipperId = amsSaleOrderMapper.getShipperId(shipperUnit);
- // 得到收款客户
- String saleOrderReceiveCustomer = (String) mapVal.get("receiveCustomer");
- // 得到物资信息
- List<Map<String, Object>> mapList = (List<Map<String, Object>>) mapVal.get("mapList");
- // 如果不存在则自己新增(使用金蝶销售订单号)
- if (amsSaleOrders.size() == 0) {
- AmsSaleOrder amsSaleOrder = new AmsSaleOrder();
- BigDecimal saleOrderId = amsSaleOrderMapper.getSaleOrderId();
- amsSaleOrder.setSaleOrderId(saleOrderId);
- amsSaleOrder.setSaleNumber(saleNumber);
- amsSaleOrder.setDeleted(new BigDecimal(0));
- amsSaleOrder.setInsertTime(new Date());
- amsSaleOrder.setUpdateTime(new Date());
- amsSaleOrder.setInsertUsername("admin");
- amsSaleOrder.setInsertUpdateRemark("金蝶采集销售订单");
- amsSaleOrder.setUpdateUsername("admin");
- amsSaleOrder.setReceiveId(receiveId);
- amsSaleOrder.setShipperId(shipperId);
- if (isSelfMention != null) {
- if (isSelfMention.equals("CARRY")) {
- amsSaleOrder.setSaleOrderIsselfMention("是");
- } else {
- amsSaleOrder.setSaleOrderIsselfMention("否");
- }
- }
- amsSaleOrder.setSaleOrderTax("13%");
- amsSaleOrder.setSaleUnitPrice(new BigDecimal(4000));
- amsSaleOrder.setSaleRemark(saleRemark);
- amsSaleOrder.setSaleOrderReceiveCustomer(saleOrderReceiveCustomer);
- amsSaleOrder.setSaleAccountBalance(new BigDecimal(saleAccountBalance));
- amsSaleOrder.setSaleCurrentOrderAmount(new BigDecimal(saleCurrentOrderAmount));
- if (saleHistoricalOrderAmount != null && saleHistoricalOrderAmount.length() != 0) {
- amsSaleOrder.setSaleHistoricalOrderAmount(new BigDecimal(saleHistoricalOrderAmount));
- }
- amsSaleOrder.setSaleOrderStatus(new BigDecimal(2));
- // 遍历物资分录,新增销售订单与物资中间表
- for (Map<String, Object> materialMap : mapList) {
- AmsSaleMaterial amsSaleMaterial = new AmsSaleMaterial();
- BigDecimal saleMaterialId = amsSaleMaterialMapper.getSaleMaterialId();
- amsSaleMaterial.setSaleMaterialId(saleMaterialId);
- amsSaleMaterial.setSaleOrderId(saleOrderId);
- // 得到物资编码
- String materialCode = (String) materialMap.get("materialCode");
- BigDecimal materialId = amsSaleMaterialMapper.getMaterialId(materialCode);
- // 得到金蝶分录主键
- String easPrimaryId = (String) materialMap.get("easPrimaryId");
- // 得到物资数量
- String materialNumber = (String) materialMap.get("materialNumber");
- // 得到计量单位
- String materialUnit = (String) materialMap.get("materialUnit");
- amsSaleMaterial.setEasPrimaryId(easPrimaryId);
- amsSaleMaterial.setMaterialId(materialId);
- amsSaleMaterial.setInsertTime(new Date());
- amsSaleMaterial.setInsertUsername("金蝶");
- amsSaleMaterial.setInsertUpdateRemark("采集金蝶销售订单");
- if (materialUnit.equals("件")) {
- amsSaleMaterial.setMaterialNumber(new BigDecimal(materialNumber));
- } else {
- amsSaleMaterial.setMaterialWeight(new BigDecimal(materialNumber));
- }
- result += amsSaleMaterialMapper.insertSelective(amsSaleMaterial);
- }
- result += amsSaleOrderMapper.insertSelective(amsSaleOrder);
- } else {
- AmsSaleOrder amsSaleOrder = amsSaleOrders.get(0);
- amsSaleOrder.setSaleNumber(saleNumber);
- amsSaleOrder.setSaleAccountBalance(new BigDecimal(saleAccountBalance));
- amsSaleOrder.setSaleCurrentOrderAmount(new BigDecimal(saleCurrentOrderAmount));
- if (saleHistoricalOrderAmount != null && saleHistoricalOrderAmount.length() != 0) {
- amsSaleOrder.setSaleHistoricalOrderAmount(new BigDecimal(saleHistoricalOrderAmount));
- }
- amsSaleOrder.setSaleOrderStatus(new BigDecimal(orderStatus));
- for (Map<String, Object> materialMap : mapList) {
- // 得到中间表主键id
- String saleMaterialId = (String) materialMap.get("saleMaterialId");
- // 得到金蝶分录id
- String easPrimaryId = (String) materialMap.get("easPrimaryId");
- AmsSaleMaterial amsSaleMaterial = amsSaleMaterialMapper.selectByPrimaryKey(new BigDecimal(saleMaterialId));
- amsSaleMaterial.setEasPrimaryId(easPrimaryId);
- result += amsSaleMaterialMapper.updateByPrimaryKeySelective(amsSaleMaterial);
- }
- result += amsSaleOrderMapper.updateByPrimaryKeySelective(amsSaleOrder);
- }
- }
- return result;
- }
- }
|