初始版本
This commit is contained in:
@@ -0,0 +1,214 @@
|
||||
package com.vverp.controller.api;
|
||||
|
||||
import com.vverp.util.DateUtil;
|
||||
import com.vverp.base.Setting;
|
||||
import com.vverp.dto.OrderQuery;
|
||||
import com.vverp.entity.*;
|
||||
import com.vverp.enums.OrderStatus;
|
||||
import com.vverp.form.OrderForm;
|
||||
import com.vverp.form.PurchaseOrderForm;
|
||||
import com.vverp.moli.util.Page;
|
||||
import com.vverp.moli.util.Pageable;
|
||||
import com.vverp.moli.util.RespData;
|
||||
import com.vverp.service.*;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* @author dealsky
|
||||
* @date 2020/1/10 3:41 下午
|
||||
*/
|
||||
@RestController("apiPurchaseOrderController")
|
||||
@RequestMapping("/api/purchaseOrder")
|
||||
public class PurchaseOrderController extends BaseController {
|
||||
|
||||
@Resource
|
||||
private AdminService adminService;
|
||||
|
||||
@Resource
|
||||
private ProductService productService;
|
||||
|
||||
@Resource
|
||||
private PurchaseOrderService purchaseOrderService;
|
||||
|
||||
@Resource
|
||||
private AttachFileService attachFileService;
|
||||
|
||||
@RequestMapping(value = "/save", method = RequestMethod.POST)
|
||||
public RespData save(@RequestBody PurchaseOrderForm form) {
|
||||
return respDataWithHandle(() -> {
|
||||
PurchaseOrder purchaseOrder = fromForm(form);
|
||||
purchaseOrderService.savePurchaseOrder(purchaseOrder);
|
||||
});
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/update", method = RequestMethod.POST)
|
||||
public RespData update(@RequestBody PurchaseOrderForm form) {
|
||||
return respDataWithHandle(() -> {
|
||||
PurchaseOrder purchaseOrder = fromForm(form);
|
||||
PurchaseOrder source = purchaseOrderService.find(form.getId());
|
||||
purchaseOrderService.updatePurchaseOrder(purchaseOrder);
|
||||
if (source.getStatus().equals(OrderStatus.approved)) {
|
||||
purchaseOrderService.approveApplyForEdit(source);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/list", method = RequestMethod.GET)
|
||||
public RespData list(Pageable pageable, OrderQuery orderQuery) {
|
||||
Admin admin = adminService.getApp();
|
||||
orderQuery.setVisibleCompanyIdsStr(admin.getVisibleCompanyIdsStr());
|
||||
orderQuery.setVisibleDepartmentIdsStr(admin.getVisibleDepartmentIdsStr());
|
||||
Page<PurchaseOrder> page = purchaseOrderService.findPage(pageable, orderQuery);
|
||||
List<Map<String, Object>> list = getMapList(page.getContent());
|
||||
return RespData.success(new Page<>(list, page.getTotal(), page.getPageable()));
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/listAll", method = RequestMethod.GET)
|
||||
public RespData listAll(OrderQuery orderQuery) {
|
||||
List<PurchaseOrder> purchaseOrderList = purchaseOrderService.findList(orderQuery);
|
||||
List<Map<String, Object>> list = getMapList(purchaseOrderList);
|
||||
return RespData.success(list);
|
||||
}
|
||||
|
||||
public List<Map<String, Object>> getMapList(List<PurchaseOrder> purchaseOrderList) {
|
||||
List<Map<String, Object>> list = new ArrayList<>();
|
||||
for (PurchaseOrder purchaseOrder : purchaseOrderList) {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("id", purchaseOrder.getId());
|
||||
map.put("sn", purchaseOrder.getSn());
|
||||
map.put("supplierId", purchaseOrder.getOwnerId());
|
||||
map.put("supplierName", purchaseOrder.getOwnerName());
|
||||
map.put("amount", purchaseOrder.getTotalAmount());
|
||||
map.put("status", purchaseOrder.getStatus().getName());
|
||||
map.put("createDate", DateUtil.formatDate(purchaseOrder.getCreateDate()));
|
||||
list.add(map);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
@RequestMapping(value = "view", method = RequestMethod.GET)
|
||||
public RespData view(Long id) {
|
||||
PurchaseOrder purchaseOrder = purchaseOrderService.find(id);
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("id", purchaseOrder.getId());
|
||||
map.put("sn", purchaseOrder.getSn());
|
||||
map.put("supplierName", purchaseOrder.getOwnerName());
|
||||
map.put("amount", purchaseOrder.getTotalAmount());
|
||||
map.put("count", purchaseOrder.getTotalCount());
|
||||
map.put("orderDate", DateUtil.formatDate(purchaseOrder.getOrderDate()));
|
||||
map.put("contractDeadline", DateUtil.formatDate(purchaseOrder.getContractDeadline()));
|
||||
map.put("creator", purchaseOrder.getAdminName());
|
||||
map.put("status", purchaseOrder.getStatus());
|
||||
map.put("departmentId", purchaseOrder.getDepartmentId());
|
||||
map.put("departmentName", purchaseOrder.getDepartmentName());
|
||||
map.put("companyId", purchaseOrder.getCompanyId());
|
||||
map.put("companyName", purchaseOrder.getCompanyName());
|
||||
map.put("deliveryType", purchaseOrder.getDeliveryType() != null ? purchaseOrder.getDeliveryType().getName() : "");
|
||||
map.put("deliveryTypeValue", purchaseOrder.getDeliveryType());
|
||||
map.put("remark", purchaseOrder.getRemark());
|
||||
map.put("ownerId", purchaseOrder.getOwnerId());
|
||||
map.put("ownerName", purchaseOrder.getOwnerName());
|
||||
map.put("adminName", purchaseOrder.getAdminName());
|
||||
map.put("adminId", purchaseOrder.getAdminId());
|
||||
map.put("payMethod", purchaseOrder.getPayMethod());
|
||||
map.put("lossType", purchaseOrder.getLossType() != null ? purchaseOrder.getLossType().getName() : "");
|
||||
map.put("lossTypeValue", purchaseOrder.getLossType());
|
||||
map.put("contractType", purchaseOrder.getContractType() != null ? purchaseOrder.getContractType().getName() : "");
|
||||
map.put("contractValue", purchaseOrder.getContractType());
|
||||
map.put("reservoir", purchaseOrder.getReservoir().getName());
|
||||
map.put("reservoirValue", purchaseOrder.getReservoir());
|
||||
map.put("settlement", purchaseOrder.getSettlement());
|
||||
map.put("settlementAmount", purchaseOrder.getSettlementAmount());
|
||||
map.put("amountPayable", purchaseOrder.getAmountPayable());
|
||||
map.put("rationalLossRatio", purchaseOrder.getRationalLossRatio());
|
||||
map.put("writeAddress", purchaseOrder.getWriteAddress());
|
||||
map.put("attachFiles", attachFileService.getMapList(purchaseOrder.getAttachFileIds()));
|
||||
map.put("internationalTradeFlag", purchaseOrder.getInternationalTradeFlag());
|
||||
map.put("tariffs", purchaseOrder.getTariffs());
|
||||
map.put("exchangeRate", Setting.getData().getUsdToCnyExchange().add(new BigDecimal("0.06")));
|
||||
map.put("pricingDiscount", purchaseOrder.getPricingDiscount());
|
||||
map.put("agencyFee", purchaseOrder.getAgencyFee());
|
||||
map.put("miscellaneousFee", purchaseOrder.getMiscellaneousFee());
|
||||
map.put("pickupCount", purchaseOrder.getPickupCount());
|
||||
map.put("pickupBarrel", purchaseOrder.getPickupBarrel());
|
||||
map.put("pickupDate", DateUtil.formatDate(purchaseOrder.getPickupDate()));
|
||||
map.put("letterCreditDate", DateUtil.formatDate(purchaseOrder.getLetterCreditDate()));
|
||||
map.put("letterCreditAmount", purchaseOrder.getLetterCreditAmount());
|
||||
map.put("letterCreditAcceptanceDate", DateUtil.formatDate(purchaseOrder.getLetterCreditAcceptanceDate()));
|
||||
map.put("letterCreditFee", purchaseOrder.getLetterCreditFee());
|
||||
map.put("zijStartDate", DateUtil.formatDate(purchaseOrder.getZijStartDate()));
|
||||
map.put("zijRate", purchaseOrder.getZijRate());
|
||||
map.put("zijTakeUpMoney", purchaseOrder.getZijTakeUpMoney());
|
||||
map.put("zijInterest", purchaseOrder.getZijInterest());
|
||||
|
||||
List<Map<String, Object>> list = new ArrayList<>();
|
||||
for (PurchaseOrderItem item : purchaseOrder.getPurchaseOrderItemList()) {
|
||||
Map<String, Object> data = new HashMap<>();
|
||||
data.put("id", item.getProductId());
|
||||
data.put("name", item.getName());
|
||||
data.put("price", item.getTaxPrice());
|
||||
data.put("count", item.getCount());
|
||||
data.put("itemId", item.getId());
|
||||
data.put("realName", item.getRealName());
|
||||
list.add(data);
|
||||
}
|
||||
map.put("list", list);
|
||||
|
||||
return RespData.success(map);
|
||||
}
|
||||
|
||||
@RequestMapping("/approve")
|
||||
public RespData approve(Long id) {
|
||||
PurchaseOrder purchaseOrder = purchaseOrderService.find(id);
|
||||
try {
|
||||
purchaseOrderService.approve(purchaseOrder);
|
||||
return RespData.success();
|
||||
} catch (RuntimeException e) {
|
||||
return RespData.error(e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@RequestMapping("/statistics")
|
||||
public RespData statistics(Pageable pageable, OrderQuery query) {
|
||||
Page<PurchaseOrder> page = purchaseOrderService.findPage(pageable, query);
|
||||
List<Map<String, Object>> list = purchaseOrderService.statistics(page.getContent());
|
||||
return RespData.success(new Page<>(list, page.getTotal(), page.getPageable()));
|
||||
}
|
||||
|
||||
private PurchaseOrder fromForm(PurchaseOrderForm form) {
|
||||
PurchaseOrder purchaseOrder = new PurchaseOrder();
|
||||
BeanUtils.copyProperties(form, purchaseOrder);
|
||||
purchaseOrder.setId(form.getId());
|
||||
|
||||
Admin admin = adminService.getApp();
|
||||
purchaseOrder.setAdminId(admin.getId());
|
||||
purchaseOrder.setAdminName(admin.getName());
|
||||
|
||||
if (purchaseOrder.getReservoir() == null) {
|
||||
throw new RuntimeException("库区不能为空");
|
||||
}
|
||||
List<PurchaseOrderItem> list = new ArrayList<>();
|
||||
for (OrderForm.Item item : form.getList()) {
|
||||
PurchaseOrderItem purchaseOrderItem = new PurchaseOrderItem();
|
||||
BeanUtils.copyProperties(item, purchaseOrderItem);
|
||||
purchaseOrderItem.setId(item.getItemId());
|
||||
Product product = productService.find(item.getProductId());
|
||||
purchaseOrderItem.setProductId(product.getId());
|
||||
purchaseOrderItem.setTaxPrice(item.getPrice());
|
||||
purchaseOrderItem.setRealName(item.getRealName());
|
||||
purchaseOrderItem.setCount(item.getCount());
|
||||
list.add(purchaseOrderItem);
|
||||
}
|
||||
purchaseOrder.setPurchaseOrderItemList(list);
|
||||
return purchaseOrder;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user