From 92bc6dca274eb45dc330f63b5a3f90a01458e157 Mon Sep 17 00:00:00 2001
From: zhangherong <571457620@qq.com>
Date: 星期二, 27 五月 2025 14:48:55 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolsLossBoundController.java |  327 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 327 insertions(+), 0 deletions(-)

diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolsLossBoundController.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolsLossBoundController.java
new file mode 100644
index 0000000..d610f05
--- /dev/null
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolsLossBoundController.java
@@ -0,0 +1,327 @@
+package org.jeecg.modules.tms.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.shiro.SecurityUtils;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.system.vo.LoginUser;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.tms.entity.OutboundDetail;
+import org.jeecg.modules.tms.entity.OutboundOrder;
+import org.jeecg.modules.tms.entity.ToolsLossBound;
+import org.jeecg.modules.tms.entity.ToolsLossBoundDetail;
+import org.jeecg.modules.tms.entity.dto.LossBoundFlowDto;
+import org.jeecg.modules.tms.entity.dto.OutBoundOrderFlowDto;
+import org.jeecg.modules.tms.entity.vo.OutboundDetailVo;
+import org.jeecg.modules.tms.enums.OutBillStatus;
+import org.jeecg.modules.tms.service.IToolsLossBoundDetailService;
+import org.jeecg.modules.tms.service.IToolsLossBoundService;
+import org.jeecgframework.poi.excel.ExcelImportUtil;
+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.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 javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * @Description: 鎹熻�楀崟
+ * @Author: jeecg-boot
+ * @Date:   2025-05-21
+ * @Version: V1.0
+ */
+@Slf4j
+@Api(tags="鎹熻�楀崟")
+@RestController
+	@RequestMapping("/tms/toolsLossBound")
+public class ToolsLossBoundController extends JeecgController<ToolsLossBound, IToolsLossBoundService> {
+	@Autowired
+	private IToolsLossBoundService toolsLossBoundService;
+	@Autowired
+	private IToolsLossBoundDetailService toolsLossBoundDetailService;
+	/**
+	 * 鍒嗛〉鍒楄〃鏌ヨ
+	 *
+	 * @param toolsLossBound
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	@AutoLog(value = "鎹熻�楀崟-鍒嗛〉鍒楄〃鏌ヨ")
+	@ApiOperation(value="鎹熻�楀崟-鍒嗛〉鍒楄〃鏌ヨ", notes="鎹熻�楀崟-鍒嗛〉鍒楄〃鏌ヨ")
+	@GetMapping(value = "/list")
+	public Result<?> queryPageList(ToolsLossBound toolsLossBound,
+								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+								   HttpServletRequest req) {
+		QueryWrapper<ToolsLossBound> queryWrapper = QueryGenerator.initQueryWrapper(toolsLossBound, req.getParameterMap());
+		Page<ToolsLossBound> page = new Page<ToolsLossBound>(pageNo, pageSize);
+		IPage<ToolsLossBound> pageList = toolsLossBoundService.page(page, queryWrapper);
+		return Result.OK(pageList);
+	}
+	
+
+
+	/**
+	 * 缂栬緫
+	 *
+	 * @param toolsLossBound
+	 * @return
+	 */
+	@AutoLog(value = "鎹熻�楀崟-缂栬緫")
+	@ApiOperation(value="鎹熻�楀崟-缂栬緫", notes="鎹熻�楀崟-缂栬緫")
+	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+	public Result<?> edit(@RequestBody ToolsLossBound toolsLossBound) {
+		toolsLossBoundService.updateById(toolsLossBound);
+		return Result.OK("缂栬緫鎴愬姛!");
+	}
+	 /**
+	  *   娣诲姞
+	  * @param toolsLossBound
+	  * @return
+	  */
+	 @AutoLog(value = "tms_loss_bound-娣诲姞")
+	 @ApiOperation(value="tms_loss_bound-娣诲姞", notes="tms_loss_bound-娣诲姞")
+	 @PostMapping(value = "/add")
+	 public Result<String> add(@RequestBody ToolsLossBound toolsLossBound) {
+		 toolsLossBoundService.save(toolsLossBound);
+		 return Result.OK("娣诲姞鎴愬姛锛�");
+	 }
+
+	 @AutoLog(value = "tms_loss_bound-娣诲姞鎶ユ崯鐢宠鍗曚富琛ㄥ強鏄庣粏淇℃伅")
+	 @ApiOperation(value="tms_loss_bound-娣诲姞鎶ユ崯鐢宠鍗曚富琛ㄥ強鏄庣粏淇℃伅", notes="tms_loss_bound-娣诲姞鎶ユ崯鐢宠鍗曚富琛ㄥ強鏄庣粏淇℃伅")
+	 @PostMapping(value = "/addTotal")
+	 public Result<String> addTotal(@RequestBody ToolsLossBound toolsLossBound) {
+		 toolsLossBoundService.addTotal(toolsLossBound);
+		 return Result.OK("娣诲姞鎴愬姛锛�");
+	 }
+
+	 @AutoLog(value = "tms_loss_bound-缂栬緫鎶ユ崯鍗曚富琛ㄥ強鏄庣粏淇℃伅")
+	 @ApiOperation(value="tms_loss_bound-缂栬緫鎶ユ崯鍗曚富琛ㄥ強鏄庣粏淇℃伅", notes="tms_loss_bound-缂栬緫鎶ユ崯鍗曚富琛ㄥ強鏄庣粏淇℃伅")
+	 @RequestMapping(value = "/editTotal", method = {RequestMethod.PUT,RequestMethod.POST})
+	 public Result<String> editTotal(@RequestBody ToolsLossBound toolsLossBound) {
+		 toolsLossBoundService.editTotal(toolsLossBound);
+		 return Result.OK("缂栬緫鎴愬姛锛�");
+	 }
+
+	/**
+	 * 閫氳繃id鍒犻櫎
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "鎶ユ崯鍗曟槑缁�-閫氳繃id鍒犻櫎")
+	@ApiOperation(value="鎶ユ崯鍗曟槑缁�-閫氳繃id鍒犻櫎", notes="鎶ユ崯鍗曟槑缁�-閫氳繃id鍒犻櫎")
+	@DeleteMapping(value = "/deleteLootboundDetail")
+	public Result<String> deleteLootboundDetail(@RequestParam(name="id",required=true) String id) {
+		toolsLossBoundService.removeById(id);
+		return Result.OK("鍒犻櫎鎴愬姛!");
+	}
+	/**
+	 * 閫氳繃id鍒犻櫎
+	 *
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "鎹熻�楀崟-閫氳繃id鍒犻櫎")
+	@ApiOperation(value="鎹熻�楀崟-閫氳繃id鍒犻櫎", notes="鎹熻�楀崟-閫氳繃id鍒犻櫎")
+	@DeleteMapping(value = "/delete")
+	public Result<?> delete(@RequestParam(name="id",required=true) String id) {
+		toolsLossBoundService.removeById(id);
+		return Result.OK("鍒犻櫎鎴愬姛!");
+	}
+
+	@AutoLog(value = "tms_loss_bound-鎻愪氦鎶ユ崯鍗�")
+	@ApiOperation(value="tms_loss_bound-鎻愪氦鎶ユ崯鍗�", notes="tms_loss_bound-鎻愪氦鎶ユ崯鍗�")
+	@GetMapping(value = "/submit")
+	public Result<String> submit(@RequestParam(name="id") String id) {
+
+
+		toolsLossBoundService.submintOrder(id);
+		return Result.OK("鎻愪氦鎴愬姛");
+	}
+
+
+
+	@AutoLog(value = "瀹℃壒娴佺▼")
+	@ApiOperation(value = "鎶ユ崯鍗�-瀹℃壒娴佺▼", notes = "鎶ユ崯鍗�-瀹℃壒娴佺▼")
+	@PostMapping("/approval")
+	public Result<?> approval(@RequestBody LossBoundFlowDto lossBoundFlowDto) {
+		toolsLossBoundService.approvalProcess(lossBoundFlowDto);
+		return Result.OK("鎿嶄綔鎴愬姛");
+	}
+	/**
+	 * 鎵归噺鍒犻櫎
+	 * @param ids
+	 * @return
+	 */
+	@AutoLog(value = "鎶ユ崯鍗曟槑缁�-鎵归噺鍒犻櫎")
+	@ApiOperation(value="鎶ユ崯鍗曟槑缁�-鎵归噺鍒犻櫎", notes="鎶ユ崯鍗曟槑缁�-鎵归噺鍒犻櫎")
+	@DeleteMapping(value = "/deleteBatchLossboundDetail")
+	public Result<String> deleteBatchLossboundDetail(@RequestParam(name="ids",required=true) String ids) {
+		this.toolsLossBoundDetailService.removeByIds(Arrays.asList(ids.split(",")));
+		return Result.OK("鎵归噺鍒犻櫎鎴愬姛!");
+	}
+	/**
+	 * 鎵归噺鍒犻櫎
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@AutoLog(value = "鎹熻�楀崟-鎵归噺鍒犻櫎")
+	@ApiOperation(value="鎹熻�楀崟-鎵归噺鍒犻櫎", notes="鎹熻�楀崟-鎵归噺鍒犻櫎")
+	@DeleteMapping(value = "/deleteBatch")
+	public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		this.toolsLossBoundService.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<?> queryById(@RequestParam(name="id",required=true) String id) {
+		ToolsLossBound toolsLossBound = toolsLossBoundService.getById(id);
+		return Result.OK(toolsLossBound);
+	}
+
+  /**
+   * 瀵煎嚭excel
+   *
+   * @param request
+   * @param toolsLossBound
+   */
+  @RequestMapping(value = "/exportXls")
+  public ModelAndView exportXls(HttpServletRequest request, ToolsLossBound toolsLossBound) {
+      return super.exportXls(request, toolsLossBound, ToolsLossBound.class, "鎹熻�楀崟");
+  }
+
+
+	/**
+	 * 瀵煎嚭
+	 * @return
+	 */
+	@RequestMapping(value = "/exportLossboundDetail")
+		public ModelAndView exportLossboundDetail(HttpServletRequest request, ToolsLossBoundDetail toolsLossBoundDetail) {
+		// Step.1 缁勮鏌ヨ鏉′欢
+		QueryWrapper<ToolsLossBoundDetail> queryWrapper = QueryGenerator.initQueryWrapper(toolsLossBoundDetail, request.getParameterMap());
+		LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+
+		// Step.2 鑾峰彇瀵煎嚭鏁版嵁
+		List<ToolsLossBoundDetail> pageList = toolsLossBoundDetailService.list(queryWrapper);
+		List<ToolsLossBoundDetail> exportList = null;
+
+		// 杩囨护閫変腑鏁版嵁
+		String selections = request.getParameter("selections");
+		if (oConvertUtils.isNotEmpty(selections)) {
+			List<String> selectionList = Arrays.asList(selections.split(","));
+			exportList = pageList.stream().filter(item -> selectionList.contains(item.getId())).collect(Collectors.toList());
+		} else {
+			exportList = pageList;
+		}
+
+		// Step.3 AutoPoi 瀵煎嚭Excel
+		ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
+		//姝ゅ璁剧疆鐨刦ilename鏃犳晥,鍓嶇浼氶噸鏇存柊璁剧疆涓�涓�
+		mv.addObject(NormalExcelConstants.FILE_NAME, "鎶ユ崯鍗曟槑缁�");
+		mv.addObject(NormalExcelConstants.CLASS, OutboundDetail.class);
+		mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("鎶ユ崯鍗曟槑缁嗘姤琛�", "瀵煎嚭浜�:" + sysUser.getRealname(), "鎶ユ崯鍗曟槑缁�"));
+		mv.addObject(NormalExcelConstants.DATA_LIST, exportList);
+		return mv;
+	}
+
+
+	/**
+	 * 瀵煎叆
+	 * @return
+	 */
+	@RequestMapping(value = "/importLossboundDetail/{mainId}")
+	public Result<?> importLossboundDetail(HttpServletRequest request, HttpServletResponse response, @PathVariable("mainId") String mainId) {
+		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(2);
+			params.setHeadRows(1);
+			params.setNeedSave(true);
+			try {
+				List<ToolsLossBoundDetail> list = ExcelImportUtil.importExcel(file.getInputStream(), ToolsLossBoundDetail.class, params);
+				for (ToolsLossBoundDetail temp : list) {
+					temp.setLossBoundId(mainId);
+				}
+				long start = System.currentTimeMillis();
+				toolsLossBoundDetailService.saveBatch(list);
+				log.info("娑堣�楁椂闂�" + (System.currentTimeMillis() - start) + "姣");
+				return Result.OK("鏂囦欢瀵煎叆鎴愬姛锛佹暟鎹鏁帮細" + list.size());
+			} catch (Exception e) {
+				log.error(e.getMessage(), e);
+				return Result.error("鏂囦欢瀵煎叆澶辫触:" + e.getMessage());
+			} finally {
+				try {
+					file.getInputStream().close();
+				} catch (IOException e) {
+					e.printStackTrace();
+				}
+			}
+		}
+		return Result.error("鏂囦欢瀵煎叆澶辫触锛�");
+	}
+
+
+  /**
+   * 閫氳繃excel瀵煎叆鏁版嵁
+   *
+   * @param request
+   * @param response
+   * @return
+   */
+  @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+  public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+      return super.importExcel(request, response, ToolsLossBound.class);
+  }
+
+
+
+	/**
+	 * 閫氳繃涓昏〃ID鏌ヨ
+	 * @return
+	 */
+
+	@ApiOperation(value="鎶ユ崯鐢宠鍗曟槑缁�-閫氳繃涓昏〃ID鏌ヨ", notes="鎶ユ崯鐢宠鍗曟槑缁�-閫氳繃涓昏〃ID鏌ヨ")
+	@GetMapping(value = "/listlossboundDetailByMainId")
+	public Result<IPage<ToolsLossBoundDetail>> listlossboundDetailByMainId(ToolsLossBoundDetail toolsLossBoundDetail,
+																	   @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
+																	   @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
+																	   HttpServletRequest req) {
+		Map<String, String[]> parameterMap = req.getParameterMap();
+		QueryWrapper<ToolsLossBoundDetail> queryWrapper = QueryGenerator.initQueryWrapper(toolsLossBoundDetail, parameterMap);
+		Page<ToolsLossBoundDetail> page = new Page<ToolsLossBoundDetail>(pageNo, pageSize);
+		IPage<ToolsLossBoundDetail> pageList = toolsLossBoundDetailService.queryPageList(page, parameterMap);
+		return Result.OK(pageList);
+	}
+}

--
Gitblit v1.9.3