| | |
| | | package org.jeecg.modules.cms.controller; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Arrays; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.stream.Collectors; |
| | | import java.io.IOException; |
| | | import java.io.UnsupportedEncodingException; |
| | | import java.net.URLDecoder; |
| | | import java.util.*; |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | |
| | |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import org.jeecg.common.api.vo.Result; |
| | | import org.jeecg.common.system.query.QueryGenerator; |
| | | import org.jeecg.common.util.oConvertUtils; |
| | | import org.jeecg.modules.cms.entity.CuttingInbound; |
| | | import org.jeecg.modules.cms.entity.CuttingInboundDetail; |
| | | import org.jeecg.modules.cms.mapper.CuttingInboundMapper; |
| | | import org.jeecg.modules.cms.service.ICuttingInboundDetailService; |
| | | import org.jeecg.modules.cms.service.ICuttingInboundService; |
| | | |
| | |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | |
| | | import org.jeecgframework.poi.excel.ExcelImportUtil; |
| | | import org.jeecg.modules.cms.vo.CuttingInboundExportVo; |
| | | import org.jeecgframework.poi.excel.def.NormalExcelConstants; |
| | | import org.jeecgframework.poi.excel.entity.ExportParams; |
| | | import org.jeecgframework.poi.excel.entity.ImportParams; |
| | | import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; |
| | | import org.jeecg.common.system.base.controller.JeecgController; |
| | | 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.servlet.ModelAndView; |
| | | import com.alibaba.fastjson.JSON; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.jeecg.common.aspect.annotation.AutoLog; |
| | | |
| | | /** |
| | | /** |
| | | * @Description: åå
·å
¥åºå |
| | | * @Author: jeecg-boot |
| | | * @Date: 2025-07-28 |
| | | * @Date: 2025-07-28 |
| | | * @Version: V1.0 |
| | | */ |
| | | @Api(tags="åå
·å
¥åºå") |
| | | @Api(tags = "åå
·å
¥åºå") |
| | | @RestController |
| | | @RequestMapping("/cms/cuttingInbound") |
| | | @Slf4j |
| | | public class CuttingInboundController extends JeecgController<CuttingInbound, ICuttingInboundService> { |
| | | @Autowired |
| | | private ICuttingInboundService cuttingInboundService; |
| | | @Autowired |
| | | private ICuttingInboundService cuttingInboundService; |
| | | |
| | | @Autowired |
| | | private ICuttingInboundDetailService cuttingInboundDetailService; |
| | | |
| | | /** |
| | | * å页å表æ¥è¯¢ |
| | | * |
| | | * @param cuttingInbound |
| | | * @param pageNo |
| | | * @param pageSize |
| | | * @param req |
| | | * @return |
| | | */ |
| | | //@AutoLog(value = "åå
·å
¥åºå-å页å表æ¥è¯¢") |
| | | @ApiOperation(value="åå
·å
¥åºå-å页å表æ¥è¯¢", notes="åå
·å
¥åºå-å页å表æ¥è¯¢") |
| | | @GetMapping(value = "/list") |
| | | public Result<IPage<CuttingInbound>> queryPageList(CuttingInbound cuttingInbound, |
| | | @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, |
| | | @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, |
| | | HttpServletRequest req) { |
| | | QueryWrapper<CuttingInbound> queryWrapper = QueryGenerator.initQueryWrapper(cuttingInbound, req.getParameterMap()); |
| | | Page<CuttingInbound> page = new Page<CuttingInbound>(pageNo, pageSize); |
| | | IPage<CuttingInbound> pageList = cuttingInboundService.page(page, queryWrapper); |
| | | return Result.OK(pageList); |
| | | } |
| | | |
| | | /** |
| | | * æ·»å |
| | | * |
| | | * @param jSONObject |
| | | * @return |
| | | */ |
| | | @AutoLog(value = "åå
·å
¥åºå-æ·»å ") |
| | | @ApiOperation(value="åå
·å
¥åºå-æ·»å ", notes="åå
·å
¥åºå-æ·»å ") |
| | | //@RequiresPermissions("org.jeecg.modules:cms_cutting_inbound:add") |
| | | @PostMapping(value = "/add") |
| | | public Result<String> add(@RequestBody JSONObject jSONObject) { |
| | | CuttingInbound cuttingInbound = jSONObject.toJavaObject(CuttingInbound.class); |
| | | cuttingInbound.setOrderStatus("1"); |
| | | cuttingInboundService.saveOrUpdate(cuttingInbound); |
| | | //å é¤åå
³èæ°æ® |
| | | List<CuttingInboundDetail> cuttingInboundDetailList = cuttingInboundDetailService.lambdaQuery().eq(CuttingInboundDetail::getOrderId,cuttingInbound.getId()).list(); |
| | | cuttingInboundDetailService.removeBatchByIds(cuttingInboundDetailList); |
| | | //æ·»å æ°å
³èæ°æ® |
| | | JSONArray jsonArray = jSONObject.getJSONArray("detailData"); |
| | | List<CuttingInboundDetail> list = jsonArray.toJavaList(CuttingInboundDetail.class); |
| | | for (int i = 0; i < list.size(); i++) { |
| | | CuttingInboundDetail temp = list.get(i); |
| | | temp.setOrderId(cuttingInbound.getId()); |
| | | cuttingInboundDetailService.save(temp); |
| | | } |
| | | return Result.OK("å
¥åºæåï¼"); |
| | | } |
| | | |
| | | /** |
| | | * ç¼è¾ |
| | | * |
| | | * @param cuttingInbound |
| | | * @return |
| | | */ |
| | | @AutoLog(value = "åå
·å
¥åºå-ç¼è¾") |
| | | @ApiOperation(value="åå
·å
¥åºå-ç¼è¾", notes="åå
·å
¥åºå-ç¼è¾") |
| | | //@RequiresPermissions("org.jeecg.modules:cms_cutting_inbound:edit") |
| | | @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) |
| | | public Result<String> edit(@RequestBody CuttingInbound cuttingInbound) { |
| | | cuttingInboundService.updateById(cuttingInbound); |
| | | return Result.OK("ç¼è¾æå!"); |
| | | } |
| | | |
| | | /** |
| | | * éè¿idå é¤ |
| | | * |
| | | * @param id |
| | | * @return |
| | | */ |
| | | @AutoLog(value = "åå
·å
¥åºå-éè¿idå é¤") |
| | | @ApiOperation(value="åå
·å
¥åºå-éè¿idå é¤", notes="åå
·å
¥åºå-éè¿idå é¤") |
| | | //@RequiresPermissions("org.jeecg.modules:cms_cutting_inbound:delete") |
| | | @DeleteMapping(value = "/delete") |
| | | public Result<String> delete(@RequestParam(name="id",required=true) String id) { |
| | | cuttingInboundService.removeById(id); |
| | | return Result.OK("å 餿å!"); |
| | | } |
| | | |
| | | /** |
| | | * æ¹éå é¤ |
| | | * |
| | | * @param ids |
| | | * @return |
| | | */ |
| | | @AutoLog(value = "åå
·å
¥åºå-æ¹éå é¤") |
| | | @ApiOperation(value="åå
·å
¥åºå-æ¹éå é¤", notes="åå
·å
¥åºå-æ¹éå é¤") |
| | | //@RequiresPermissions("org.jeecg.modules:cms_cutting_inbound:deleteBatch") |
| | | @DeleteMapping(value = "/deleteBatch") |
| | | public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) { |
| | | this.cuttingInboundService.removeByIds(Arrays.asList(ids.split(","))); |
| | | return Result.OK("æ¹éå 餿å!"); |
| | | } |
| | | |
| | | /** |
| | | * éè¿idæ¥è¯¢ |
| | | * |
| | | * @param id |
| | | * @return |
| | | */ |
| | | //@AutoLog(value = "åå
·å
¥åºå-éè¿idæ¥è¯¢") |
| | | @ApiOperation(value="åå
·å
¥åºå-éè¿idæ¥è¯¢", notes="åå
·å
¥åºå-éè¿idæ¥è¯¢") |
| | | @GetMapping(value = "/queryById") |
| | | public Result<CuttingInbound> queryById(@RequestParam(name="id",required=true) String id) { |
| | | CuttingInbound cuttingInbound = cuttingInboundService.getById(id); |
| | | if(cuttingInbound==null) { |
| | | return Result.error("æªæ¾å°å¯¹åºæ°æ®"); |
| | | } |
| | | return Result.OK(cuttingInbound); |
| | | } |
| | | @Autowired |
| | | private ICuttingInboundDetailService cuttingInboundDetailService; |
| | | |
| | | @Autowired |
| | | private CuttingInboundMapper cuttingInboundMapper; |
| | | |
| | | /** |
| | | * 导åºexcel |
| | | * |
| | | * @param request |
| | | * @param cuttingInbound |
| | | */ |
| | | //@RequiresPermissions("org.jeecg.modules:cms_cutting_inbound:exportXls") |
| | | @RequestMapping(value = "/exportXls") |
| | | public ModelAndView exportXls(HttpServletRequest request, CuttingInbound cuttingInbound) { |
| | | return super.exportXls(request, cuttingInbound, CuttingInbound.class, "åå
·å
¥åºå"); |
| | | * å页å表æ¥è¯¢ |
| | | * |
| | | * @param cuttingInbound |
| | | * @param pageNo |
| | | * @param pageSize |
| | | * @param req |
| | | * @return |
| | | */ |
| | | //@AutoLog(value = "åå
·å
¥åºå-å页å表æ¥è¯¢") |
| | | @ApiOperation(value = "åå
·å
¥åºå-å页å表æ¥è¯¢", notes = "åå
·å
¥åºå-å页å表æ¥è¯¢") |
| | | @GetMapping(value = "/list") |
| | | public Result<IPage<CuttingInbound>> queryPageList(CuttingInbound cuttingInbound, |
| | | @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, |
| | | @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, |
| | | HttpServletRequest req) { |
| | | QueryWrapper<CuttingInbound> queryWrapper = QueryGenerator.initQueryWrapper(cuttingInbound, req.getParameterMap()); |
| | | Page<CuttingInbound> page = new Page<CuttingInbound>(pageNo, pageSize); |
| | | IPage<CuttingInbound> pageList = cuttingInboundService.page(page, queryWrapper); |
| | | return Result.OK(pageList); |
| | | } |
| | | |
| | | /** |
| | | * éè¿excel导å
¥æ°æ® |
| | | * |
| | | * @param request |
| | | * @param response |
| | | * @return |
| | | */ |
| | | * æ·»å |
| | | * |
| | | * @param jSONObject |
| | | * @return |
| | | */ |
| | | @AutoLog(value = "åå
·å
¥åºå-æ·»å ") |
| | | @ApiOperation(value = "åå
·å
¥åºå-æ·»å ", notes = "åå
·å
¥åºå-æ·»å ") |
| | | //@RequiresPermissions("org.jeecg.modules:cms_cutting_inbound:add") |
| | | @PostMapping(value = "/add") |
| | | public Result<String> add(@RequestBody JSONObject jSONObject) { |
| | | CuttingInbound cuttingInbound = jSONObject.toJavaObject(CuttingInbound.class); |
| | | cuttingInbound.setOrderStatus("1"); |
| | | cuttingInboundService.saveOrUpdate(cuttingInbound); |
| | | //å é¤åå
³èæ°æ® |
| | | List<CuttingInboundDetail> cuttingInboundDetailList = cuttingInboundDetailService.lambdaQuery().eq(CuttingInboundDetail::getOrderId, cuttingInbound.getId()).list(); |
| | | cuttingInboundDetailService.removeBatchByIds(cuttingInboundDetailList); |
| | | //æ·»å æ°å
³èæ°æ® |
| | | JSONArray jsonArray = jSONObject.getJSONArray("detailData"); |
| | | List<CuttingInboundDetail> list = jsonArray.toJavaList(CuttingInboundDetail.class); |
| | | for (int i = 0; i < list.size(); i++) { |
| | | CuttingInboundDetail temp = list.get(i); |
| | | temp.setOrderId(cuttingInbound.getId()); |
| | | cuttingInboundDetailService.save(temp); |
| | | } |
| | | return Result.OK("å
¥åºæåï¼"); |
| | | } |
| | | |
| | | /** |
| | | * ç¼è¾ |
| | | * |
| | | * @param cuttingInbound |
| | | * @return |
| | | */ |
| | | @AutoLog(value = "åå
·å
¥åºå-ç¼è¾") |
| | | @ApiOperation(value = "åå
·å
¥åºå-ç¼è¾", notes = "åå
·å
¥åºå-ç¼è¾") |
| | | //@RequiresPermissions("org.jeecg.modules:cms_cutting_inbound:edit") |
| | | @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST}) |
| | | public Result<String> edit(@RequestBody CuttingInbound cuttingInbound) { |
| | | cuttingInboundService.updateById(cuttingInbound); |
| | | return Result.OK("ç¼è¾æå!"); |
| | | } |
| | | |
| | | /** |
| | | * éè¿idå é¤ |
| | | * |
| | | * @param id |
| | | * @return |
| | | */ |
| | | @AutoLog(value = "åå
·å
¥åºå-éè¿idå é¤") |
| | | @ApiOperation(value = "åå
·å
¥åºå-éè¿idå é¤", notes = "åå
·å
¥åºå-éè¿idå é¤") |
| | | //@RequiresPermissions("org.jeecg.modules:cms_cutting_inbound:delete") |
| | | @DeleteMapping(value = "/delete") |
| | | public Result<String> delete(@RequestParam(name = "id", required = true) String id) { |
| | | cuttingInboundService.removeById(id); |
| | | return Result.OK("å 餿å!"); |
| | | } |
| | | |
| | | /** |
| | | * æ¹éå é¤ |
| | | * |
| | | * @param ids |
| | | * @return |
| | | */ |
| | | @AutoLog(value = "åå
·å
¥åºå-æ¹éå é¤") |
| | | @ApiOperation(value = "åå
·å
¥åºå-æ¹éå é¤", notes = "åå
·å
¥åºå-æ¹éå é¤") |
| | | //@RequiresPermissions("org.jeecg.modules:cms_cutting_inbound:deleteBatch") |
| | | @DeleteMapping(value = "/deleteBatch") |
| | | public Result<String> deleteBatch(@RequestParam(name = "ids", required = true) String ids) { |
| | | this.cuttingInboundService.removeByIds(Arrays.asList(ids.split(","))); |
| | | return Result.OK("æ¹éå 餿å!"); |
| | | } |
| | | |
| | | /** |
| | | * éè¿idæ¥è¯¢ |
| | | * |
| | | * @param id |
| | | * @return |
| | | */ |
| | | //@AutoLog(value = "åå
·å
¥åºå-éè¿idæ¥è¯¢") |
| | | @ApiOperation(value = "åå
·å
¥åºå-éè¿idæ¥è¯¢", notes = "åå
·å
¥åºå-éè¿idæ¥è¯¢") |
| | | @GetMapping(value = "/queryById") |
| | | public Result<CuttingInbound> queryById(@RequestParam(name = "id", required = true) String id) { |
| | | CuttingInbound cuttingInbound = cuttingInboundService.getById(id); |
| | | if (cuttingInbound == null) { |
| | | return Result.error("æªæ¾å°å¯¹åºæ°æ®"); |
| | | } |
| | | return Result.OK(cuttingInbound); |
| | | } |
| | | |
| | | /** |
| | | * 导åºexcel |
| | | * |
| | | * @param request |
| | | * @param cuttingInbound |
| | | */ |
| | | //@RequiresPermissions("org.jeecg.modules:cms_cutting_inbound:exportXls") |
| | | @RequestMapping(value = "/exportXls") |
| | | public ModelAndView exportXls(CuttingInbound cuttingInbound, HttpServletRequest request) { |
| | | // return super.exportXls(request, cuttingInbound, CuttingInbound.class, "åå
·å
¥åºå"); |
| | | // è·åæ¥è¯¢æ¡ä»¶ |
| | | QueryWrapper<CuttingInbound> queryWrapper = QueryGenerator.initQueryWrapper(cuttingInbound, request.getParameterMap()); |
| | | |
| | | // æ¥è¯¢ä¸»è¡¨æ°æ® |
| | | List<CuttingInbound> pageList = cuttingInboundService.list(queryWrapper); |
| | | |
| | | // 为æ¯ä¸ªä¸»è¡¨æ°æ®è®¾ç½®æç»æ°æ® |
| | | List<CuttingInboundExportVo> exportList = new ArrayList<>(); |
| | | for (CuttingInbound item : pageList) { |
| | | CuttingInboundExportVo exportVo = new CuttingInboundExportVo(); |
| | | // å¤å¶ä¸»è¡¨å段 |
| | | exportVo.setId(item.getId()); |
| | | exportVo.setReceiver(item.getReceiver()); |
| | | exportVo.setReceiveTime(item.getReceiveTime()); |
| | | exportVo.setReceiveComment(item.getReceiveComment()); |
| | | exportVo.setConfirmer(item.getConfirmer()); |
| | | exportVo.setConfirmTime(item.getConfirmTime()); |
| | | exportVo.setConfirmComment(item.getConfirmComment()); |
| | | exportVo.setOrderStatus(item.getOrderStatus()); |
| | | |
| | | // æ¥è¯¢å¹¶è®¾ç½®æç»æ°æ® |
| | | List<CuttingInboundDetail> details = cuttingInboundDetailService.lambdaQuery() |
| | | .eq(CuttingInboundDetail::getOrderId, item.getId()) |
| | | .list(); |
| | | exportVo.setDetailList(details); |
| | | |
| | | exportList.add(exportVo); |
| | | } |
| | | |
| | | // 设置导åºåæ° |
| | | ExportParams params = new ExportParams("åå
·å
¥åºå", "å¯¼åºæ°æ®"); |
| | | |
| | | // è¿åExcelè§å¾ |
| | | ModelAndView mv = new ModelAndView(new JeecgEntityExcelView()); |
| | | mv.addObject(NormalExcelConstants.PARAMS, params); |
| | | mv.addObject(NormalExcelConstants.DATA_LIST, exportList); |
| | | mv.addObject(NormalExcelConstants.CLASS, CuttingInboundExportVo.class); |
| | | |
| | | return mv; |
| | | } |
| | | |
| | | /** |
| | | * éè¿excel导å
¥æ°æ® |
| | | * |
| | | * @param request |
| | | * @param response |
| | | * @return |
| | | */ |
| | | //@RequiresPermissions("cms_cutting_inbound:importExcel") |
| | | @RequestMapping(value = "/importExcel", method = RequestMethod.POST) |
| | | public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) { |
| | | return super.importExcel(request, response, CuttingInbound.class); |
| | | // MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; |
| | | // Map<String, MultipartFile> fileMap = multipartRequest.getFileMap(); |
| | | // |
| | | // for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) { |
| | | // MultipartFile file = entity.getValue(); |
| | | // ImportParams params = new ImportParams(); |
| | | // params.setTitleRows(1); |
| | | // params.setHeadRows(1); |
| | | // try { |
| | | // // è§£æExcelæä»¶ |
| | | // List<CuttingInbound> list = ExcelImportUtil.importExcel(file.getInputStream(), CuttingInbound.class, params); |
| | | // |
| | | // for (CuttingInbound cuttingInbound : list) { |
| | | // // ä¿åä¸»è¡¨æ°æ® |
| | | // cuttingInboundService.save(cuttingInbound); |
| | | // |
| | | // // è·å主表ID |
| | | // String orderId = cuttingInbound.getId(); |
| | | // |
| | | // // å¤çä»è¡¨æ°æ® |
| | | // List<CuttingInboundDetail> detailList = cuttingInbound.getDetailList(); // å设主表å®ä½ä¸æä»è¡¨æ°æ®å表 |
| | | // if (detailList != null && !detailList.isEmpty()) { |
| | | // for (CuttingInboundDetail detail : detailList) { |
| | | // detail.setOrderId(orderId); // 设置å¤é®å
³è |
| | | // cuttingInboundDetailService.save(detail); |
| | | // } |
| | | // } |
| | | // } |
| | | // return Result.ok("导å
¥æå"); |
| | | // } catch (Exception e) { |
| | | // log.error("导å
¥å¤±è´¥", e); |
| | | // return Result.error("导å
¥å¤±è´¥"); |
| | | // } |
| | | // } |
| | | // return Result.error("导å
¥å¤±è´¥"); |
| | | } |
| | | |
| | | /** |
| | | * æ ¹æ®å
¥åºidæ¥è¯¢å
¥åºæç» |
| | | * |
| | | * @param orderId |
| | | * @return |
| | | */ |
| | | @GetMapping("/detailList") |
| | | public Result<?> detailList(@RequestParam("orderId") String orderId) { |
| | | List<Map<String, Object>> list = cuttingInboundDetailService.detailList(orderId); |
| | | return Result.ok(list); |
| | | } |
| | | |
| | | /** |
| | | * æ ¹æ®å
¥åºidæ¥è¯¢å
¥åºæç» |
| | | * |
| | | * @param orderId |
| | | * @return |
| | | */ |
| | | @GetMapping("/detailList") |
| | | public Result<?> detailList(@RequestParam("orderId") String orderId) { |
| | | List<Map<String, Object>> list = cuttingInboundDetailService.detailList(orderId); |
| | | return Result.ok(list); |
| | | } |
| | | |
| | | } |