初始版本

This commit is contained in:
suncz
2024-04-29 17:04:35 +08:00
commit b174c04733
1701 changed files with 349852 additions and 0 deletions

View File

@@ -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;
}
}