package doumeemes.api.ext;
|
import com.alibaba.fastjson.JSONObject;
|
import doumeemes.config.rocketmq.MqConfig;
|
import doumeemes.config.rocketmq.RocketMessageProducer;
|
import doumeemes.core.utils.DateUtil;
|
import doumeemes.dao.business.dto.AutoWorkReportDTO;
|
import doumeemes.dao.business.model.Workorder;
|
import doumeemes.dao.ext.vo.PlansExtListCountVO;
|
import doumeemes.dao.ext.vo.PlansExtListH5VO;
|
import doumeemes.service.ext.WorkorderExtService;
|
import org.apache.poi.ss.usermodel.Cell;
|
import doumeemes.api.BaseController;
|
import doumeemes.core.annotation.excel.ExcelExporter;
|
import doumeemes.core.annotation.pr.PreventRepeat;
|
import doumeemes.core.model.ApiResponse;
|
import doumeemes.core.model.PageWrap;
|
import doumeemes.core.model.PageData;
|
import doumeemes.core.utils.Constants;
|
import doumeemes.dao.business.model.Plans;
|
import doumeemes.dao.ext.dto.QueryPlansExtDTO;
|
import doumeemes.dao.ext.vo.PlansExtListVO;
|
import doumeemes.service.business.PlansService;
|
import doumeemes.service.ext.PlansExtService;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParams;
|
import io.swagger.annotations.ApiOperation;
|
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartHttpServletRequest;
|
import org.springframework.web.multipart.commons.CommonsMultipartResolver;
|
|
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletResponse;
|
|
import java.util.ArrayList;
|
import java.util.Iterator;
|
import java.util.List;
|
|
/**
|
* 生产计划接口
|
* @author 江蹄蹄
|
* @date 2022/04/20 11:01
|
*/
|
@RestController
|
@RequestMapping("/ext/plansExt")
|
@Api(tags = "生产计划接口")
|
public class PlansExtController extends BaseController {
|
|
@Autowired
|
private PlansExtService plansExtService;
|
@Autowired
|
private WorkorderExtService workorderExtService;
|
@Autowired
|
private PlansService plansService;
|
|
@PreventRepeat
|
@ApiOperation("新建")
|
@PostMapping("/create")
|
@RequiresPermissions("ext:plansext:create")
|
public ApiResponse create(@RequestBody Plans plans) {
|
return ApiResponse.success(plansExtService.create(plans));
|
}
|
|
@ApiOperation("根据ID删除")
|
@GetMapping("/delete/{id}")
|
@RequiresPermissions("ext:plansext:delete")
|
public ApiResponse deleteById(@PathVariable Integer id) {
|
plansExtService.deleteById(id);
|
return ApiResponse.success(null);
|
}
|
|
@ApiOperation("批量删除")
|
@GetMapping("/delete/batch")
|
@RequiresPermissions("ext:plansext:delete")
|
public ApiResponse deleteByIds(@RequestParam String ids) {
|
String [] idArray = ids.split(",");
|
List<Integer> idList = new ArrayList<>();
|
for (String id : idArray) {
|
idList.add(Integer.valueOf(id));
|
}
|
plansExtService.deleteByIdInBatch(idList);
|
return ApiResponse.success(null);
|
}
|
|
@ApiOperation("根据ID修改")
|
@PostMapping("/updateById")
|
@RequiresPermissions("ext:plansext:update")
|
public ApiResponse updateById(@RequestBody Plans plans) {
|
plansExtService.updateById(plans);
|
return ApiResponse.success(null);
|
}
|
@ApiOperation("根据ID关闭计划")
|
@PostMapping("/closeById")
|
@RequiresPermissions("ext:plansext:control")
|
public ApiResponse closeById(@RequestBody Plans plans) {
|
plansExtService.closeById(plans);
|
return ApiResponse.success(null);
|
}
|
@ApiOperation("根据ID分配计划")
|
@PostMapping("/distributeById")
|
@RequiresPermissions("ext:plansext:distribute")
|
public ApiResponse distributeById(@RequestBody Workorder order) {
|
plansExtService.distributeById(order);
|
//发送消息队列处理分享操作
|
workorderExtService.statisticNum(order);
|
// RocketMessageProducer.producerMsg(Constants.MQ_TAG.statistics,null, JSONObject.toJSONString(order));
|
// rabbitTemplate.convertAndSend(Constants.MqTopicKeys.TOPIC_STATISTIC_NUM, Constants.MqTopicKeys.TOPIC_STATISTIC_NUM, JSONObject.toJSONString(order));
|
return ApiResponse.success(null);
|
}
|
@ApiOperation("根据ID发布计划")
|
@PostMapping("/publishById")
|
@RequiresPermissions("ext:plansext:publish")
|
public ApiResponse publishById(@RequestBody Plans plans) {
|
plansExtService.publishById(plans);
|
return ApiResponse.success(null);
|
}
|
@ApiOperation("根据ID撤回计划")
|
@PostMapping("/backById")
|
@RequiresPermissions("ext:plansext:control")
|
public ApiResponse backById(@RequestBody Plans plans) {
|
plansExtService.backById(plans);
|
return ApiResponse.success(null);
|
}
|
@ApiOperation("根据ID暂停计划")
|
@PostMapping("/pauseById")
|
@RequiresPermissions("ext:plansext:control")
|
public ApiResponse pauseById(@RequestBody Plans plans) {
|
plansExtService.pauseById(plans);
|
return ApiResponse.success(null);
|
}
|
@ApiOperation("根据ID恢复计划")
|
@PostMapping("/regainById")
|
@RequiresPermissions("ext:plansext:control")
|
public ApiResponse regainById(@RequestBody Plans plans) {
|
plansExtService.regainById(plans);
|
return ApiResponse.success(null);
|
}
|
|
@ApiOperation("根据ID取消计划")
|
@PostMapping("/cancelById")
|
@RequiresPermissions("ext:plansext:control")
|
public ApiResponse cancelById(@RequestBody Plans plans) {
|
plansExtService.cancelById(plans);
|
return ApiResponse.success(null);
|
}
|
|
|
@ApiOperation("批量发布计划")
|
@GetMapping("/publish/batch")
|
@RequiresPermissions("ext:plansext:publish")
|
public ApiResponse publishByIds(@RequestParam String ids) {
|
String [] idArray = ids.split(",");
|
List<Integer> idList = new ArrayList<>();
|
for (String id : idArray) {
|
idList.add(Integer.valueOf(id));
|
}
|
plansExtService.publishByIdInBatch(idList);
|
return ApiResponse.success(null);
|
}
|
|
@ApiOperation("批量分配计划")
|
@PostMapping("/distribute/batch")
|
@RequiresPermissions("ext:plansext:distribute")
|
public ApiResponse distributeByOrders(@RequestBody List<Workorder> orders) {
|
plansExtService.distributeByBatch(orders);
|
if(orders!=null){
|
for(Workorder order :orders){
|
//发送消息队列处理分享操作
|
workorderExtService.statisticNum(order);
|
// RocketMessageProducer.producerMsg(Constants.MQ_TAG.statistics,null, JSONObject.toJSONString(order));
|
// rabbitTemplate.convertAndSend(Constants.MqTopicKeys.TOPIC_STATISTIC_NUM, Constants.MqTopicKeys.TOPIC_STATISTIC_NUM, JSONObject.toJSONString(order));
|
}
|
}
|
return ApiResponse.success(null);
|
}
|
@ApiOperation("批量撤回计划")
|
@GetMapping("/back/batch")
|
@RequiresPermissions("ext:plansext:control")
|
public ApiResponse backByIds(@RequestParam String ids) {
|
String [] idArray = ids.split(",");
|
List<Integer> idList = new ArrayList<>();
|
for (String id : idArray) {
|
idList.add(Integer.valueOf(id));
|
}
|
plansExtService.backByIdInBatch(idList);
|
return ApiResponse.success(null);
|
}
|
|
@ApiOperation("分页查询")
|
@PostMapping("/page")
|
@RequiresPermissions("ext:plansext:query")
|
public ApiResponse<PageData<PlansExtListVO>> findPage (@RequestBody PageWrap<QueryPlansExtDTO> pageWrap) {
|
return ApiResponse.success(plansExtService.findPage(pageWrap));
|
}
|
|
@ApiOperation("导出Excel")
|
@PostMapping("/exportExcel")
|
@RequiresPermissions("ext:plansext:exportExcel")
|
public void exportExcel (@RequestBody PageWrap<QueryPlansExtDTO> pageWrap, HttpServletResponse response) throws Exception{
|
ExcelExporter.build(PlansExtListVO.class).export(plansExtService.findPage(pageWrap).getRecords(), "生产计划"+ DateUtil.getNowLongTime(), response);
|
}
|
|
@ApiOperation("根据ID查询")
|
@GetMapping("/{id}")
|
@RequiresPermissions("ext:plansext:query")
|
public ApiResponse<PlansExtListVO> findById(@PathVariable Integer id) {
|
return ApiResponse.success(plansExtService.findById(id));
|
}
|
@ApiOperation("根据ID查询(H5端)")
|
@GetMapping("/h5/{id}")
|
@RequiresPermissions("ext:plansext:query")
|
public ApiResponse<PlansExtListH5VO> findByIdH5(@PathVariable Integer id) {
|
return ApiResponse.success(plansExtService.findByIdH5(id));
|
}
|
|
@ApiOperation("查询统计列表数量")
|
@PostMapping("/pageCount")
|
@RequiresPermissions("ext:plansext:query")
|
public ApiResponse<PlansExtListCountVO> pageCount (@RequestBody QueryPlansExtDTO param) {
|
return ApiResponse.success(plansExtService.pageCount(param));
|
}
|
|
@ApiOperation("一键报工")
|
@PostMapping("/autoWorkReport")
|
public ApiResponse autoWorkReport (@RequestBody AutoWorkReportDTO autoWorkReportDTO) {
|
plansExtService.autoWorkReport(getLoginUser(),autoWorkReportDTO);
|
return ApiResponse.success("操作成功");
|
}
|
|
/**
|
* 批量导入计划
|
*
|
* @param request
|
* @param response
|
* @throws Exception
|
*/
|
@ApiOperation(value = "批量导入计划", notes = "批量导入计划", httpMethod = "POST", position = 6)
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "folder", value = "文件夹", required = true, paramType = "query", dataType = "String", dataTypeClass = String.class),
|
})
|
@PostMapping(value = "/importBatch", headers = "content-type=multipart/form-data")
|
@RequiresPermissions("ext:plansext:create")
|
public ApiResponse importBatch(String folder,HttpServletRequest request, HttpServletResponse response) throws Exception {
|
CommonsMultipartResolver multipartResovler = new CommonsMultipartResolver();
|
if (multipartResovler.isMultipart(request)) {
|
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
|
Iterator<String> it = multipartRequest.getFileNames();
|
while (it.hasNext()) {
|
MultipartFile file = multipartRequest.getFile((String) it.next());// file
|
plansExtService.importPlans(file);
|
break;
|
}
|
}
|
|
return ApiResponse.success( null);
|
}
|
}
|