package com.ruoyi.sales.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.framework.web.controller.BaseController; import com.ruoyi.framework.web.domain.AjaxResult; import com.ruoyi.procurementrecord.dto.ProcurementAddDto; import com.ruoyi.procurementrecord.dto.ProcurementRecordOutAdd; import com.ruoyi.procurementrecord.pojo.ProcurementRecordOut; import com.ruoyi.procurementrecord.service.ProcurementRecordOutService; import com.ruoyi.sales.mapper.ShipmentApprovalMapper; import com.ruoyi.sales.mapper.ShippingInfoMapper; import com.ruoyi.sales.pojo.SalesLedgerProduct; import com.ruoyi.sales.pojo.ShipmentApproval; import com.ruoyi.sales.pojo.ShippingInfo; import com.ruoyi.sales.service.ISalesLedgerProductService; import com.ruoyi.sales.service.ShipmentApprovalService; import com.ruoyi.sales.service.ShippingInfoService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.List; @RestController @RequestMapping("/shipmentApproval") @Api(tags = "发货审批管理") public class ShipmentApprovalController extends BaseController { @Autowired private ShipmentApprovalService shipmentApprovalService; @Autowired private ShipmentApprovalMapper shipmentApprovalMapper; @Autowired private ISalesLedgerProductService salesLedgerProductService; @Autowired private ProcurementRecordOutService procurementRecordOutService; @GetMapping("/listPage") @ApiOperation("发货审批列表") public AjaxResult listPage(Page page, ShipmentApproval req) { IPage listPage = shipmentApprovalService.listPage(page,req); return AjaxResult.success(listPage); } @PostMapping("/update") @ApiOperation("发货审批,更新发货审批状态") @Transactional(rollbackFor = Exception.class) public AjaxResult update(@RequestBody ShipmentApproval req) { ShipmentApproval shipmentApproval = shipmentApprovalMapper.selectById(req.getId()); if (shipmentApproval == null) { return AjaxResult.error("发货审批不存在"); } shipmentApproval.setApproveStatus(req.getApproveStatus()); boolean update = shipmentApprovalService.updateById(shipmentApproval); if(update){ SalesLedgerProduct salesLedgerProduct = salesLedgerProductService.getById(shipmentApproval.getSalesLedgerProductId()); salesLedgerProduct.setApproveStatus(req.getApproveStatus()); salesLedgerProductService.updateById(salesLedgerProduct); if(req.getApproveStatus()==3){ //发货审批通过,生产该订单出库记录 ProcurementRecordOutAdd procurementRecordOutAdd = new ProcurementRecordOutAdd(); procurementRecordOutAdd.setSalesLedgerProductId(Math.toIntExact(salesLedgerProduct.getId())); procurementRecordOutAdd.setType(2); procurementRecordOutAdd.setUserId(Math.toIntExact(getUserId())); procurementRecordOutAdd.setQuantity(String.valueOf(salesLedgerProduct.getQuantity())); //获取当前时间 LocalDateTime now = LocalDateTime.now(); procurementRecordOutAdd.setTime(now.toString()); procurementRecordOutService.stockout(procurementRecordOutAdd); } } return update ? AjaxResult.success() : AjaxResult.error(); } /** * 导出发货信息管理 */ @PostMapping("/export") @ApiOperation("导出发货审批") public void export(HttpServletResponse response) { List list = shipmentApprovalService.list(null); ExcelUtil util = new ExcelUtil(ShipmentApproval.class); util.exportExcel(response, list, "发货审批"); } }