| | |
| | | package com.ruoyi.production.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.aspectj.lang.annotation.Log; |
| | | import com.ruoyi.framework.aspectj.lang.enums.BusinessType; |
| | | import com.ruoyi.framework.web.controller.BaseController; |
| | |
| | | import com.ruoyi.production.dto.ProductionDispatchAddDto; |
| | | import com.ruoyi.production.dto.SalesLedgerSchedulingDto; |
| | | import com.ruoyi.production.dto.SalesLedgerSchedulingProcessDto; |
| | | import com.ruoyi.production.mapper.SpeculativeTradingInfoMapper; |
| | | import com.ruoyi.production.pojo.SpeculativeTradingInfo; |
| | | import com.ruoyi.production.service.impl.SalesLedgerSchedulingServiceImpl; |
| | | import com.ruoyi.sales.mapper.LossMapper; |
| | | import com.ruoyi.sales.pojo.Loss; |
| | | 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.util.CollectionUtils; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.math.BigDecimal; |
| | | import java.math.RoundingMode; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | /** |
| | |
| | | |
| | | @Autowired |
| | | private SalesLedgerSchedulingServiceImpl salesLedgerSchedulingService; |
| | | |
| | | |
| | | @Autowired |
| | | private SpeculativeTradingInfoMapper speculativeTradingInfoMapper; |
| | | |
| | | @Autowired |
| | | private LossMapper lossMapper; |
| | | |
| | | @GetMapping("/loss") |
| | | @Log(title = "生产管理-生产派工-损耗率", businessType = BusinessType.OTHER) |
| | | @ApiOperation("生产管理-生产派工-损耗率") |
| | | public AjaxResult loss() { |
| | | return AjaxResult.success(lossMapper.selectOne(new LambdaQueryWrapper<Loss>().last("limit 1"))); |
| | | } |
| | | |
| | | @PostMapping("/addLoss") |
| | | @Log(title = "生产管理-生产派工-添加损耗率", businessType = BusinessType.INSERT) |
| | | @ApiOperation("生产管理-生产派工-添加损耗率") |
| | | public AjaxResult addLoss(@RequestBody Loss loss) { |
| | | lossMapper.insert(loss); |
| | | return AjaxResult.success("添加损耗率成功"); |
| | | } |
| | | |
| | | @PostMapping("/updateLoss") |
| | | @Log(title = "生产管理-生产派工-修改损耗率", businessType = BusinessType.UPDATE) |
| | | @ApiOperation("生产管理-生产派工-修改损耗率") |
| | | public AjaxResult updateLoss(@RequestBody Loss loss) { |
| | | lossMapper.updateById(loss); |
| | | return AjaxResult.success("修改损耗率成功"); |
| | | } |
| | | |
| | | @GetMapping("/list") |
| | | @Log(title = "生产管理-生产派工-炒机信息", businessType = BusinessType.OTHER) |
| | | @ApiOperation("生产管理-生产派工-炒机信息") |
| | | public AjaxResult list() { |
| | | List<SpeculativeTradingInfo> result = speculativeTradingInfoMapper.selectList(null); |
| | | result.forEach(item -> { |
| | | item.setCurrentWorkLoad(salesLedgerSchedulingService.getSchedulingNumBySpeculativeTradingName(item.getName()).divide(new BigDecimal(1000),2, RoundingMode.CEILING)); |
| | | item.setVacant(item.getWorkLoad().subtract(item.getCurrentWorkLoad()).setScale(2, RoundingMode.HALF_UP)); //保留两位小数 |
| | | }); |
| | | return AjaxResult.success(result); |
| | | } |
| | | |
| | | @PostMapping("/addSpeculatTrading") |
| | | @Log(title = "生产管理-生产派工-添加炒机信息", businessType = BusinessType.INSERT) |
| | | @ApiOperation("生产管理-生产派工-添加炒机信息") |
| | | public AjaxResult addSpeculatTrading(@RequestBody List<SpeculativeTradingInfo> speculativeTradingInfo) { |
| | | if(CollectionUtils.isEmpty(speculativeTradingInfo)) return AjaxResult.error("数据组不能为空"); |
| | | speculativeTradingInfo.forEach(item -> { |
| | | speculativeTradingInfoMapper.insert(item); |
| | | }); |
| | | return AjaxResult.success("添加炒机信息成功"); |
| | | } |
| | | |
| | | @PostMapping("/updateSpeculatTrading") |
| | | @Log(title = "生产管理-生产派工-修改炒机信息", businessType = BusinessType.UPDATE) |
| | | @ApiOperation("生产管理-生产派工-修改炒机信息") |
| | | public AjaxResult updateSpeculatTrading(@RequestBody List<SpeculativeTradingInfo> speculativeTradingInfo) { |
| | | if(CollectionUtils.isEmpty(speculativeTradingInfo)) return AjaxResult.error("数据组不能为空"); |
| | | speculativeTradingInfo.forEach(item -> { |
| | | speculativeTradingInfoMapper.updateById(item); |
| | | }); |
| | | return AjaxResult.success("修改炒机信息成功"); |
| | | } |
| | | |
| | | |
| | | @GetMapping("/listPage") |
| | |
| | | salesLedgerSchedulingService.export(response); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 导出 |
| | | * @param response |
| | | */ |
| | | @PostMapping("/exportOne") |
| | | @ApiOperation("生产管理-生产派工-导出") |
| | | public void exportOne(HttpServletResponse response) { |
| | | salesLedgerSchedulingService.exportOne(response); |
| | | } |
| | | |
| | | @PostMapping("/productionDispatch") |
| | | @Log(title = "生产管理-生产订单-生产派工", businessType = BusinessType.INSERT) |
| | | @ApiOperation("生产管理-生产订单-生产派工") |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public AjaxResult productionDispatch(@RequestBody ProductionDispatchAddDto productionDispatchAddDto) { |
| | | int result = salesLedgerSchedulingService.productionDispatch(productionDispatchAddDto); |
| | | List<ProductionDispatchAddDto> productionDispatchAddDtoList = new ArrayList<>(); |
| | | productionDispatchAddDtoList.add(productionDispatchAddDto); |
| | | String result = salesLedgerSchedulingService.productionDispatch(productionDispatchAddDtoList); |
| | | return AjaxResult.success(result); |
| | | } |
| | | |
| | | @PostMapping("/productionDispatchList") |
| | | @Log(title = "生产管理-生产订单-自动派工", businessType = BusinessType.INSERT) |
| | | @ApiOperation("生产管理-生产订单-自动派工") |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public AjaxResult productionDispatchList(@RequestBody List<ProductionDispatchAddDto> productionDispatchAddDto) { |
| | | String result = salesLedgerSchedulingService.productionDispatch(productionDispatchAddDto); |
| | | return AjaxResult.success(result); |
| | | } |
| | | |
| | |
| | | return AjaxResult.success(result); |
| | | } |
| | | |
| | | /** |
| | | * 导出 |
| | | * @param response |
| | | */ |
| | | @PostMapping("/exportTwo") |
| | | @ApiOperation("生产管理-工序排产-导出") |
| | | public void exportTwo(HttpServletResponse response) { |
| | | Page page = new Page(-1,-1); |
| | | SalesLedgerSchedulingProcessDto salesLedgerSchedulingDto = new SalesLedgerSchedulingProcessDto(); |
| | | IPage<SalesLedgerSchedulingProcessDto> result = salesLedgerSchedulingService.listPageProcess(page,salesLedgerSchedulingDto); |
| | | result.getRecords().forEach(item -> { |
| | | item.setStatusName(item.getStatus().toString()); |
| | | }); |
| | | ExcelUtil<SalesLedgerSchedulingProcessDto> util = new ExcelUtil<>(SalesLedgerSchedulingProcessDto.class); |
| | | util.exportExcel(response, result.getRecords(), "工序排产"); |
| | | } |
| | | |
| | | |
| | | @DeleteMapping("/productionDispatchDelete") |
| | | @Log(title = "生产管理-工序排产-取消排产", businessType = BusinessType.DELETE) |