From c5daf9399f292e5b21deff9d5a8ac60fb4c377ab Mon Sep 17 00:00:00 2001 From: Houjie <714924425@qq.com> Date: 星期五, 23 五月 2025 18:18:43 +0800 Subject: [PATCH] 库存预警/刀具刃磨、工具盘点、工具报损 --- lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolsStocktakingBoundController.java | 273 +++++ lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolsStocktakingBoundDetailService.java | 31 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolsStoreEarlyWarningMapper.xml | 5 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolSharpeningController.java | 92 + lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolsStocktakingBoundDetailMapper.java | 41 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolsSharpeningMapper.xml | 5 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolsLossBoundDetailService.java | 22 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolsStocktakingBoundService.java | 56 + lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsLossBoundServiceImpl.java | 189 ++++ lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsSharpeningServiceImpl.java | 17 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ToolsStocktakingBoundDetail.java | 137 ++ lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolsLossBoundController.java | 316 ++++++ lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IBaseToolsService.java | 2 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ToolsStoreEarlyWarning.java | 109 ++ lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolsLossBoundMapper.java | 21 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolsStoreEarlyWarningMapper.java | 14 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/BaseToolsServiceImpl.java | 8 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ToolsStocktakingBound.java | 93 + lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolsLossBoundDetailMapper.xml | 84 + lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolsStocktakingBoundDetailMapper.xml | 91 + lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/StocktakingPoundVo.java | 35 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ToolsLossBoundDetail.java | 154 +++ lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ToolSharpening.java | 77 + lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsStocktakingBoundDetailServiceImpl.java | 39 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/ToolsStocktakingVo.java | 87 + lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolsSharpeningService.java | 13 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolsLossBoundDetailMapper.java | 41 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolsStoreEarlyWarningController.java | 159 +++ lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/BaseToolsController.java | 13 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolsStocktakingBoundMapper.java | 14 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolsSharpeningMapper.java | 13 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolsLossBoundService.java | 49 + lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsStoreEarlyWarningServiceImpl.java | 18 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ToolsLossBound.java | 150 +++ lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolsStocktakingBoundMapper.xml | 5 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolsLossBoundMapper.xml | 10 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsStocktakingBoundServiceImpl.java | 168 +++ lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsLossBoundDetailServiceImpl.java | 38 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/BaseToolsMapper.java | 1 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/BaseToolsMapper.xml | 93 + lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolsStoreEarlyWarningService.java | 14 41 files changed, 2,794 insertions(+), 3 deletions(-) diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/BaseToolsController.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/BaseToolsController.java index 022303c..66165f8 100644 --- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/BaseToolsController.java +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/BaseToolsController.java @@ -493,5 +493,18 @@ return Result.OK(""); } } + @GetMapping("/listWithLedgerAndConfig") + public Result<IPage<StocktakingPoundVo>> listWithLedgerAndConfig( + StocktakingPoundVo stocktakingPoundVo, + @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, + HttpServletRequest req) { + // 浣跨敤 QueryGenerator 鏋勫缓 QueryWrapper + QueryWrapper<StocktakingPoundVo> queryWrapper = QueryGenerator.initQueryWrapper(stocktakingPoundVo, req.getParameterMap()); + + Page<StocktakingPoundVo> page = new Page<>(pageNo, pageSize); + IPage<StocktakingPoundVo> resultPage = baseToolsService.pageWithLedgerAndConfig(page, queryWrapper); + return Result.OK(resultPage); + } } diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolSharpeningController.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolSharpeningController.java new file mode 100644 index 0000000..fde6ac2 --- /dev/null +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolSharpeningController.java @@ -0,0 +1,92 @@ +package org.jeecg.modules.tms.controller; + +import java.util.List; +import org.jeecg.common.api.vo.Result; +import org.jeecg.modules.tms.entity.ToolSharpening; +import org.jeecg.modules.tms.service.IToolsSharpeningService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +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; + +/** + * @Description: 鍒�鍏峰垉纾ㄨ褰� 鎺у埗鍣� + * @Author: houjie + * @Date: 2025-05-10 + */ +@RestController +@RequestMapping("/tms/toolSharpening") +@Api(tags = "鍒�鍏峰垉纾ㄨ褰曠鐞�") +public class ToolSharpeningController { + + @Autowired + private IToolsSharpeningService toolSharpeningService; + + /** + * 鍒嗛〉鏌ヨ + */ + @GetMapping("/list") + @ApiOperation(value = "鍒嗛〉鏌ヨ", notes = "鍒嗛〉鏌ヨ") + public Result<IPage<ToolSharpening>> queryPageList(ToolSharpening toolSharpening, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize) { + Page<ToolSharpening> page = new Page<>(pageNo, pageSize); + QueryWrapper<ToolSharpening> queryWrapper = new QueryWrapper<>(toolSharpening); + IPage<ToolSharpening> iPage = toolSharpeningService.page(page, queryWrapper); + return Result.OK(iPage); + } + + /** + * 鏌ヨ鎵�鏈夋暟鎹� + */ + @GetMapping("/all") + @ApiOperation(value = "鏌ヨ鎵�鏈夋暟鎹�", notes = "鏌ヨ鎵�鏈夋暟鎹�") + public Result<List<ToolSharpening>> queryAll() { + List<ToolSharpening> list = toolSharpeningService.list(); + return Result.OK(list); + } + + /** + * 鏍规嵁ID鏌ヨ + */ + @GetMapping("/{id}") + @ApiOperation(value = "鏍规嵁ID鏌ヨ", notes = "鏍规嵁ID鏌ヨ") + public Result<ToolSharpening> queryById(@PathVariable String id) { + ToolSharpening entity = toolSharpeningService.getById(id); + return Result.OK(entity); + } + + /** + * 鏂板 + */ + @PostMapping + @ApiOperation(value = "鏂板", notes = "鏂板") + public Result<ToolSharpening> add(@RequestBody ToolSharpening toolSharpening) { + toolSharpeningService.save(toolSharpening); + return Result.OK(toolSharpening); + } + + /** + * 淇敼 + */ + @PutMapping + @ApiOperation(value = "淇敼", notes = "淇敼") + public Result<ToolSharpening> edit(@RequestBody ToolSharpening toolSharpening) { + toolSharpeningService.updateById(toolSharpening); + return Result.OK(toolSharpening); + } + + /** + * 鍒犻櫎 + */ + @DeleteMapping("/{id}") + @ApiOperation(value = "鍒犻櫎", notes = "鍒犻櫎") + public Result<String> delete(@PathVariable String id) { + toolSharpeningService.removeById(id); + return Result.OK("鍒犻櫎鎴愬姛"); + } +} 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..68f23ea --- /dev/null +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolsLossBoundController.java @@ -0,0 +1,316 @@ +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.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("鎻愪氦鎴愬姛"); + } + + /** + * 鎵归噺鍒犻櫎 + * @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); + } + + + /*--------------------------------瀛愯〃澶勭悊-鍑哄簱鐢宠鍗曟槑缁�-begin----------------------------------------------*/ + /** + * 閫氳繃涓昏〃ID鏌ヨ + * @return + */ + //@AutoLog(value = "鍑哄簱鐢宠鍗曟槑缁�-閫氳繃涓昏〃ID鏌ヨ") + @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); + } +} diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolsStocktakingBoundController.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolsStocktakingBoundController.java new file mode 100644 index 0000000..a8da7df --- /dev/null +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolsStocktakingBoundController.java @@ -0,0 +1,273 @@ +package org.jeecg.modules.tms.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +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.query.QueryGenerator; +import org.jeecg.common.system.vo.LoginUser; +import org.jeecg.modules.system.service.ISysBusinessCodeRuleService; +import org.jeecg.modules.tms.entity.BaseTools; +import org.jeecg.modules.tms.entity.ToolsStocktakingBound; +import org.jeecg.modules.tms.entity.ToolsStocktakingBoundDetail; +import org.jeecg.modules.tms.entity.vo.ToolsStocktakingVo; +import org.jeecg.modules.tms.enums.OutBillStatus; +import org.jeecg.modules.tms.mapper.ToolsStocktakingBoundMapper; +import org.jeecg.modules.tms.service.IToolsStocktakingBoundDetailService; +import org.jeecg.modules.tms.service.IToolsStocktakingBoundService; +import org.jeecgframework.poi.excel.ExcelImportUtil; +import org.jeecgframework.poi.excel.entity.ImportParams; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +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; + +/** + * @Description: 鐩樼偣鍗曡〃 + * @Author: houjie + * @Date: 2025-05-16 + * @Version: V1.0 + */ +@Api(tags = "鐩樼偣鍗曡〃") +@RestController +@RequestMapping("/tms/toolsStocktakingBound") +@Slf4j +public class ToolsStocktakingBoundController { + @Autowired + private IToolsStocktakingBoundService toolsStocktakingBoundService; + @Autowired + private IToolsStocktakingBoundDetailService toolsStocktakingBoundDetailService; + @Autowired + private ToolsStocktakingBoundMapper toolsStocktakingBoundMapper; + + @Autowired + private ISysBusinessCodeRuleService businessCodeRuleService; + + /** + * 鍒嗛〉鍒楄〃鏌ヨ + * + * @param toolsStocktakingBound + * @param pageNo + * @param pageSize + * @param req + * @return + */ + //@AutoLog(value = "鐩樼偣鍗曡〃-鍒嗛〉鍒楄〃鏌ヨ") + @ApiOperation(value = "鐩樼偣鍗曡〃-鍒嗛〉鍒楄〃鏌ヨ", notes = "鐩樼偣鍗曡〃-鍒嗛〉鍒楄〃鏌ヨ") + @GetMapping(value = "/list") + public Result<IPage<ToolsStocktakingBound>> queryPageList(ToolsStocktakingBound toolsStocktakingBound, + @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, + HttpServletRequest req) { + QueryWrapper<ToolsStocktakingBound> queryWrapper = QueryGenerator.initQueryWrapper(toolsStocktakingBound, req.getParameterMap()); + Page<ToolsStocktakingBound> page = new Page<ToolsStocktakingBound>(pageNo, pageSize); + IPage<ToolsStocktakingBound> pageList = toolsStocktakingBoundService.page(page, queryWrapper); + return Result.OK(pageList); + } + + + /** + * 娣诲姞 + * + * @param toolsStocktakingBound + * @return + */ + @AutoLog(value = "tms_stocktaking_bound-娣诲姞") + @ApiOperation(value = "tms_stocktaking_bound-娣诲姞", notes = "tms_stocktaking_bound-娣诲姞") + @PostMapping(value = "/add") + @Transactional(rollbackFor = {Exception.class}) + public Result<String> add(@RequestBody ToolsStocktakingBound toolsStocktakingBound) { + toolsStocktakingBound.setApprovalStatus(OutBillStatus.DRAFT.getValue()); + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + if (sysUser != null) { + toolsStocktakingBound.setHandler(sysUser.getId()); + } + toolsStocktakingBound.setOrderCode(businessCodeRuleService.generateBusinessCodeSeq("stocktakingBound")); + //鏍¢獙鐗╂枡鍦ㄥ師鏉愭枡鍛ㄨ浆搴撳瓨涓嶅瓨鍦� + List<ToolsStocktakingBoundDetail> toolsStocktakingBoundDetailList = toolsStocktakingBound.getToolsStocktakingBoundDetailList(); + + toolsStocktakingBoundService.save(toolsStocktakingBound); + for (int i = 0; i < toolsStocktakingBoundDetailList.size(); i++) { + ToolsStocktakingBoundDetail toolsStocktakingBoundDetail = toolsStocktakingBoundDetailList.get(i); + toolsStocktakingBoundDetail.setAvailableQuantity(toolsStocktakingBoundDetail.getBookQuantity()); + toolsStocktakingBoundDetail.setPracticalQuantity(toolsStocktakingBoundDetail.getPracticalQuantity()); + toolsStocktakingBoundDetail.setSurplusDeficit(toolsStocktakingBoundDetail.getSurplusDeficit()); + toolsStocktakingBoundDetail.setStocktakingDate(toolsStocktakingBoundDetail.getStocktakingDate()); + toolsStocktakingBoundDetail.setRemark(toolsStocktakingBoundDetail.getRemark()); + toolsStocktakingBoundDetail.setToolId(toolsStocktakingBoundDetail.getToolId()); + toolsStocktakingBoundDetail.setToolCode(toolsStocktakingBoundDetail.getToolCode()); + toolsStocktakingBoundDetail.setStocktakingBoundId(toolsStocktakingBound.getId()); + toolsStocktakingBoundDetailService.save(toolsStocktakingBoundDetail); + } + return Result.OK(); + + + } + + + @ApiOperation(value = "宸ュ叿鐩樼偣鏄庣粏-閫氳繃涓昏〃ID鏌ヨ", notes = "宸ュ叿鐩樼偣鏄庣粏-閫氳繃涓昏〃ID鏌ヨ") + @GetMapping(value = "/listToolsStocktakingBoundControllerDetailsByMainId") + public Result<IPage<ToolsStocktakingBoundDetail>> listToolsStocktakingBoundControllerDetailsByMainId(BaseTools baseTools, + @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, + HttpServletRequest req) { + Map<String, String[]> parameterMap = req.getParameterMap(); + Page<ToolsStocktakingBoundDetail> page = new Page<ToolsStocktakingBoundDetail>(pageNo, pageSize); + IPage<ToolsStocktakingBoundDetail> pageList = toolsStocktakingBoundDetailService.selectByMainId(page, parameterMap); + + return Result.OK(pageList); + } + + + @AutoLog(value = "tms_stocktaking_bound-鎻愪氦鐩樼偣鍗�") + @ApiOperation(value = "tms_stocktaking_bound-鎻愪氦鐩樼偣鍗�", notes = "tms_stocktaking_bound-鎻愪氦鐩樼偣鍗�") + @GetMapping(value = "/submit") + public Result<String> submit(@RequestParam(name = "id") String id) { + + + toolsStocktakingBoundService.submintOrder(id); + return Result.OK("鎻愪氦鎴愬姛"); + } + + + /** + * 缂栬緫 + * + * @param toolsStocktakingBound + * @return + */ + @AutoLog(value = "鐩樼偣鍗曡〃-缂栬緫") + @ApiOperation(value = "鐩樼偣鍗曡〃-缂栬緫", notes = "鐩樼偣鍗曡〃-缂栬緫") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST}) + @Transactional(rollbackFor = {Exception.class}) + public Result<String> edit(@RequestBody ToolsStocktakingBound toolsStocktakingBound) { + if (toolsStocktakingBound == null || StringUtils.isBlank(toolsStocktakingBound.getId())) { + return Result.error("鍙傛暟閿欒"); + } + + toolsStocktakingBoundDetailService.remove(new LambdaQueryWrapper<ToolsStocktakingBoundDetail>() + .eq(ToolsStocktakingBoundDetail::getStocktakingBoundId, toolsStocktakingBound.getId())); + + ToolsStocktakingBound stocktakingBound = new ToolsStocktakingBound(); + BeanUtils.copyProperties(stocktakingBound, toolsStocktakingBound); + toolsStocktakingBoundMapper.updateById(stocktakingBound); + + + List<ToolsStocktakingBoundDetail> detailList = toolsStocktakingBound.getToolsStocktakingBoundDetailList(); + if (CollectionUtils.isEmpty(detailList)) { + return Result.error("鏄庣粏涓嶈兘涓虹┖"); + } + + detailList.forEach(item -> item.setStocktakingBoundId(stocktakingBound.getId())); + toolsStocktakingBoundDetailService.saveBatch(detailList); + + return Result.OK("缂栬緫鎴愬姛"); + } + + + /** + * 閫氳繃id鍒犻櫎 + * + * @param id + * @return + */ + @AutoLog(value = "鐩樼偣鍗曡〃-閫氳繃id鍒犻櫎") + @ApiOperation(value = "鐩樼偣鍗曡〃-閫氳繃id鍒犻櫎", notes = "鐩樼偣鍗曡〃-閫氳繃id鍒犻櫎") + @DeleteMapping(value = "/delete") + public Result<String> delete(@RequestParam(name = "id", required = true) String id) { + toolsStocktakingBoundService.delMain(id); + return Result.OK("鍒犻櫎鎴愬姛!"); + } + + /** + * 鎵归噺鍒犻櫎 + * + * @param ids + * @return + */ + @AutoLog(value = "鐩樼偣鍗曡〃-鎵归噺鍒犻櫎") + @ApiOperation(value = "鐩樼偣鍗曡〃-鎵归噺鍒犻櫎", notes = "鐩樼偣鍗曡〃-鎵归噺鍒犻櫎") + + @DeleteMapping(value = "/deleteBatch") + public Result<String> deleteBatch(@RequestParam(name = "ids", required = true) String ids) { + this.toolsStocktakingBoundService.delBatchMain(Arrays.asList(ids.split(","))); + return Result.OK("鎵归噺鍒犻櫎鎴愬姛锛�"); + } + + /** + * 閫氳繃id鏌ヨ + * + * @param id + * @return + */ + //@AutoLog(value = "鐩樼偣鍗曡〃-閫氳繃id鏌ヨ") + @ApiOperation(value = "鐩樼偣鍗曡〃-閫氳繃id鏌ヨ", notes = "鐩樼偣鍗曡〃-閫氳繃id鏌ヨ") + @GetMapping(value = "/queryById") + public Result<ToolsStocktakingBound> queryById(@RequestParam(name = "id", required = true) String id) { + ToolsStocktakingBound toolsStocktakingBound = toolsStocktakingBoundService.getById(id); + if (toolsStocktakingBound == null) { + return Result.error("鏈壘鍒板搴旀暟鎹�"); + } + return Result.OK(toolsStocktakingBound); + + } + + + /** + * 閫氳繃excel瀵煎叆鏁版嵁 + * + * @param request + * @param response + * @return + */ + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) { + 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<ToolsStocktakingVo> list = ExcelImportUtil.importExcel(file.getInputStream(), ToolsStocktakingVo.class, params); + for (ToolsStocktakingVo page : list) { + ToolsStocktakingBound po = new ToolsStocktakingBound(); + BeanUtils.copyProperties(page, po); + toolsStocktakingBoundService.saveMain(po, page.getToolsStocktakingBoundDetailList()); + } + 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.OK("鏂囦欢瀵煎叆澶辫触锛�"); + } + +} diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolsStoreEarlyWarningController.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolsStoreEarlyWarningController.java new file mode 100644 index 0000000..e2a8f25 --- /dev/null +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolsStoreEarlyWarningController.java @@ -0,0 +1,159 @@ +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.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.modules.tms.entity.ToolsStoreEarlyWarning; +import org.jeecg.modules.tms.service.IToolsStoreEarlyWarningService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.ModelAndView; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.Arrays; + + /** + * @Description: tools_store_early warning + * @Author: houjie + * @Date: 2025-05-16 + * @Version: V1.0 + */ +@Api(tags="tools_store_early warning") +@RestController +@RequestMapping("/tms/toolsStoreEarlyWarning") +@Slf4j +public class ToolsStoreEarlyWarningController extends JeecgController<ToolsStoreEarlyWarning, IToolsStoreEarlyWarningService> { + @Autowired + private IToolsStoreEarlyWarningService toolsStoreEarlyWarningService; + + /** + * 鍒嗛〉鍒楄〃鏌ヨ + * + * @param tmsStoreEarlyWarning + * @param pageNo + * @param pageSize + * @param req + * @return + */ + //@AutoLog(value = "tools_store_early warning-鍒嗛〉鍒楄〃鏌ヨ") + @ApiOperation(value="tools_store_early warning-鍒嗛〉鍒楄〃鏌ヨ", notes="tools_store_early warning-鍒嗛〉鍒楄〃鏌ヨ") + @GetMapping(value = "/list") + public Result<IPage<ToolsStoreEarlyWarning>> queryPageList(ToolsStoreEarlyWarning tmsStoreEarlyWarning, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + QueryWrapper<ToolsStoreEarlyWarning> queryWrapper = QueryGenerator.initQueryWrapper(tmsStoreEarlyWarning, req.getParameterMap()); + Page<ToolsStoreEarlyWarning> page = new Page<ToolsStoreEarlyWarning>(pageNo, pageSize); + IPage<ToolsStoreEarlyWarning> pageList = toolsStoreEarlyWarningService.page(page, queryWrapper); + return Result.OK(pageList); + } + + /** + * 娣诲姞 + * + * @param toolsStoreEarlyWarning + * @return + */ + @AutoLog(value = "tools_store_early warning-娣诲姞") + @ApiOperation(value="tools_store_early warning-娣诲姞", notes="tools_store_early warning-娣诲姞") + @PostMapping(value = "/add") + public Result<String> add(@RequestBody ToolsStoreEarlyWarning toolsStoreEarlyWarning) { + toolsStoreEarlyWarningService.save(toolsStoreEarlyWarning); + return Result.OK("娣诲姞鎴愬姛锛�"); + } + + /** + * 缂栬緫 + * + * @param tmsStoreEarlyWarning + * @return + */ + @AutoLog(value = "tools_store_early warning-缂栬緫") + @ApiOperation(value="tools_store_early warning-缂栬緫", notes="tools_store_early warning-缂栬緫") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) + public Result<String> edit(@RequestBody ToolsStoreEarlyWarning tmsStoreEarlyWarning) { + toolsStoreEarlyWarningService.updateById(tmsStoreEarlyWarning); + return Result.OK("缂栬緫鎴愬姛!"); + } + + /** + * 閫氳繃id鍒犻櫎 + * + * @param id + * @return + */ + @AutoLog(value = "tools_store_early warning-閫氳繃id鍒犻櫎") + @ApiOperation(value="tools_store_early warning-閫氳繃id鍒犻櫎", notes="tools_store_early warning-閫氳繃id鍒犻櫎") + //@RequiresPermissions("org.jeecg.modules:tms_tools_config_property:delete") + @DeleteMapping(value = "/delete") + public Result<String> delete(@RequestParam(name="id",required=true) String id) { + toolsStoreEarlyWarningService.removeById(id); + return Result.OK("鍒犻櫎鎴愬姛!"); + } + + /** + * 鎵归噺鍒犻櫎 + * + * @param ids + * @return + */ + @AutoLog(value = "tools_store_early warning-鎵归噺鍒犻櫎") + @ApiOperation(value="tools_store_early warning-鎵归噺鍒犻櫎", notes="tools_store_early warning-鎵归噺鍒犻櫎") + //@RequiresPermissions("org.jeecg.modules:tms_tools_config_property:deleteBatch") + @DeleteMapping(value = "/deleteBatch") + public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) { + this.toolsStoreEarlyWarningService.removeByIds(Arrays.asList(ids.split(","))); + return Result.OK("鎵归噺鍒犻櫎鎴愬姛!"); + } + + /** + * 閫氳繃id鏌ヨ + * + * @param id + * @return + */ + //@AutoLog(value = "tools_store_early warning-閫氳繃id鏌ヨ") + @ApiOperation(value="tools_store_early warning-閫氳繃id鏌ヨ", notes="tools_store_early warning-閫氳繃id鏌ヨ") + @GetMapping(value = "/queryById") + public Result<ToolsStoreEarlyWarning> queryById(@RequestParam(name="id",required=true) String id) { + ToolsStoreEarlyWarning tmsStoreEarlyWarning = toolsStoreEarlyWarningService.getById(id); + if(tmsStoreEarlyWarning==null) { + return Result.error("鏈壘鍒板搴旀暟鎹�"); + } + return Result.OK(tmsStoreEarlyWarning); + } + + /** + * 瀵煎嚭excel + * + * @param request + * @param tmsStoreEarlyWarning + */ + //@RequiresPermissions("tools_tools_config_property:exportXls") + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, ToolsStoreEarlyWarning tmsStoreEarlyWarning) { + return super.exportXls(request, tmsStoreEarlyWarning, ToolsStoreEarlyWarning.class, "tools_store_early warning"); + } + + /** + * 閫氳繃excel瀵煎叆鏁版嵁 + * + * @param request + * @param response + * @return + */ + //@RequiresPermissions("tools_tools_config_property:importExcel") + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, ToolsStoreEarlyWarning.class); + } + +} diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ToolSharpening.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ToolSharpening.java new file mode 100644 index 0000000..f34ede7 --- /dev/null +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ToolSharpening.java @@ -0,0 +1,77 @@ +package org.jeecg.modules.tms.entity; + +import java.io.Serializable; +import java.util.Date; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + * @Description: tms_tool_sharpening + * @Author: houjie + * @Date: 2025-05-10 + * @Version: V1.0 + */ +@Data +@TableName("tms_tool_sharpening") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="ToolSharpening瀵硅薄", description="鍒�鍏峰垉纾ㄨ褰曞疄浣撶被") +public class ToolSharpening implements Serializable { + private static final long serialVersionUID = 1L; + + /** 涓婚敭ID */ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "涓婚敭ID") + private String id; + + /** 宸ュ叿缂栫爜 */ + @ApiModelProperty(value = "宸ュ叿缂栫爜") + private String toolCode; + + /** 宸ュ叿缂栧彿 */ + @ApiModelProperty(value = "宸ュ叿缂栧彿") + private String toolId; + + /** 鍒冪(鏃堕棿 */ + @ApiModelProperty(value = "鍒冪(鏃堕棿") + private Date sharpeningTime; + + /** 鍒冪(缁撴灉鍙婂缓璁� */ + @ApiModelProperty(value = "鍒冪(缁撴灉鍙婂缓璁�") + private String sharpeningResult; + + /** 璐d换浜� */ + @ApiModelProperty(value = "璐d换浜�") + private String responsiblePerson; + + /** 澶囨敞 */ + @ApiModelProperty(value = "澶囨敞") + private String remark; + + /** 绉熸埛鍙� */ + @ApiModelProperty(value = "绉熸埛鍙�") + private String tenantId; + + /** 鍒涘缓浜� */ + @ApiModelProperty(value = "鍒涘缓浜�") + private String createBy; + + /** 鍒涘缓鏃堕棿 */ + @ApiModelProperty(value = "鍒涘缓鏃堕棿") + private Date createTime; + + /** 鏇存柊浜� */ + @ApiModelProperty(value = "鏇存柊浜�") + private String updateBy; + + /** 鏇存柊鏃堕棿 */ + @ApiModelProperty(value = "鏇存柊鏃堕棿") + private Date updateTime; +} diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ToolsLossBound.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ToolsLossBound.java new file mode 100644 index 0000000..9eacee2 --- /dev/null +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ToolsLossBound.java @@ -0,0 +1,150 @@ +package org.jeecg.modules.tms.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.jeecg.common.aspect.annotation.Dict; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +/** + * @Description: 鎹熻�楀崟 + * @Author: jeecg-boot + * @Date: 2025-05-21 + * @Version: V1.0 + */ + +@ApiModel(value = "tms_loss_bound瀵硅薄", description = "鎹熻�楀崟") +@Data +@TableName("tms_loss_bound") +public class ToolsLossBound implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * 涓婚敭 + */ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "涓婚敭") + private String id; + + /** + * losser + */ + @Excel(name = "鎶ユ崯浜�", width = 15, dictTable = "sys_user", dicText = "realname", dicCode = "id") + @Dict(dictTable = "sys_user", dicText = "realname", dicCode = "id") + @ApiModelProperty(value = "losser") + private String losser; + + /** + * 鎶ユ崯鍗曞彿 + */ + @Excel(name = "orderCode", width = 15) + @ApiModelProperty(value = "orderCode") + private String orderCode; + + /** + * 缁忔墜浜� + */ + @Excel(name = "缁忔墜浜�", width = 15, dictTable = "sys_user", dicText = "realname", dicCode = "id") + @Dict(dictTable = "sys_user", dicText = "realname", dicCode = "id") + @ApiModelProperty(value = "缁忔墜浜�") + private String handler; + + /** + * 鎶ユ崯鏃堕棿 + */ + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "鎶ユ崯鏃堕棿") + private java.util.Date lossTime; + + /** + * 瀹℃牳浜� + */ + @Excel(name = "瀹℃牳浜�", width = 15, dictTable = "sys_user", dicText = "realname", dicCode = "id") + @ApiModelProperty(value = "reviewer") + @Dict(dictTable = "sys_user", dicText = "realname", dicCode = "id") + private String reviewer; + /** + * 瀹℃牳鏃堕棿 + */ + @Excel(name = "approvalDate", width = 20, format = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "瀹℃牳鏃堕棿") + private java.util.Date approvalDate; + /** + * 瀹℃牳鐘舵�� + */ + @Excel(name = "orderStatus", width = 15) + @ApiModelProperty(value = "orderStatus") + @Dict(dicCode = "out_bill_status") + private String orderStatus; + /** + * 瀹℃牳鎰忚 + */ + @Excel(name = "approvalOpinion", width = 15) + @ApiModelProperty(value = "approvalOpinion") + private String approvalOpinion; + /** + * 鎶ユ崯鍘熷洜 + */ + @Excel(name = "lossReason", width = 15) + @ApiModelProperty(value = "lossReason") + private String lossReason; + /** + * 澶囨敞 + */ + @Excel(name = "remark", width = 15) + @ApiModelProperty(value = "remark") + private String remark; + /** + * 绉熸埛鍙� + */ + @Excel(name = "tenantId", width = 15) + @ApiModelProperty(value = "tenantId") + private String tenantId; + + + /**鍒涘缓浜�*/ + @Excel(name = "createdBy", width = 15) + @ApiModelProperty(value = "鍒涘缓浜�") + private String createBy; + /** + * 鍒涘缓浜� + */ + @Excel(name = "createTime", width = 20, format = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "createTime") + private Date createTime; + /** + * 鏇存柊浜� + */ + @Excel(name = "updateBy", width = 15) + @ApiModelProperty(value = "updateBy") + private String updateBy; + /** + * 鏇存柊鏃堕棿 + */ + @Excel(name = "updateTime", width = 20, format = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "updateTime") + private Date updateTime; + + + @TableField(exist = false) + private List<ToolsLossBoundDetail> toolsLossBoundDetailList; + + +} diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ToolsLossBoundDetail.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ToolsLossBoundDetail.java new file mode 100644 index 0000000..553d673 --- /dev/null +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ToolsLossBoundDetail.java @@ -0,0 +1,154 @@ +package org.jeecg.modules.tms.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.jeecg.common.aspect.annotation.Dict; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + +/** + * @Description: 鎹熻�楀崟鏄庣粏 + * @Author: jeecg-boot + * @Date: 2025-05-21 + * @Version: V1.0 + */ + +@ApiModel(value = "tms_loss_bound_detail瀵硅薄", description = "鎹熻�楀崟鏄庣粏") +@Data +@TableName("tms_loss_bound_detail") +public class ToolsLossBoundDetail implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * 涓婚敭 + */ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "涓婚敭") + private String id; + + /** + * 宸ュ叿缂栫爜 + */ + @Excel(name = "toolCode", width = 15) + @ApiModelProperty(value = "toolCode") + private String toolCode; + /** + * 宸ュ叿缂栧彿 + */ + @Excel(name = "toolId", width = 15) + @ApiModelProperty(value = "toolId") + private String toolId; + /** + * 鎶ユ崯鍘熷洜 + */ + @Excel(name = "lossReason", width = 15) + @ApiModelProperty(value = "lossReason") + private String lossReason; + /** + * 鎶ユ崯鏁伴噺 + */ + @Excel(name = "lossNumber", width = 15) + @ApiModelProperty(value = "lossNumber") + private java.math.BigDecimal lossNumber; + /** + * 瀛樺偍浣嶇疆锛堝簱浣嶅彿锛� + */ + @Excel(name = "goodsShelvesId", width = 15) + @ApiModelProperty(value = "goodsShelvesId") + private String goodsShelvesId; + /** + * 鍏ュ簱鏃堕棿 + */ + @Excel(name = "inStoreDate", width = 20, format = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "inStoreDate") + private Date inStoreDate; + /** + * 绉熸埛鍙� + */ + @Excel(name = "tenantId", width = 15) + @ApiModelProperty(value = "tenantId") + private String tenantId; + /** + * 鍒涘缓浜� + */ + @Excel(name = "createBy", width = 15) + @ApiModelProperty(value = "createBy") + private String createBy; + /** + * 鍒涘缓鏃堕棿 + */ + @Excel(name = "createTime", width = 20, format = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "createTime") + private Date createTime; + /** + * 鏇存柊浜� + */ + @Excel(name = "updateBy", width = 15) + @ApiModelProperty(value = "updateBy") + private String updateBy; + /** + * 鏇存柊鏃堕棿 + */ + @Excel(name = "updateTime", width = 20, format = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "updateTime") + private Date updateTime; + /** + * 鎶ユ崯鍗曞彿 + */ + @Excel(name = "lossBoundId", width = 15) + @ApiModelProperty(value = "lossBoundId") + private String lossBoundId; + + + @Dict(dictTable = "tms_tools_classify" , dicText = "type_name", dicCode = "id") + @TableField(exist = false) + private String classifyId; + + @TableField(exist = false) + private String paramaTableName; + + @TableField(exist = false) + private String foreignLanguageName; + + @TableField(exist = false) + private String chineseName; + + @TableField(exist = false) + private String supplierId; + + @TableField(exist = false) + private String storageLocation; + + @TableField(exist = false) + private String toolMaterial; + + @TableField(exist = false) + private String toolModel; + /** + * 搴撲綅鍙� + */ + @TableField(exist = false) + private String positionCode; + + @TableField(exist = false) + @Dict(dicCode = "application_type") + private String applicationType; + +} diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ToolsStocktakingBound.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ToolsStocktakingBound.java new file mode 100644 index 0000000..076f61c --- /dev/null +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ToolsStocktakingBound.java @@ -0,0 +1,93 @@ +package org.jeecg.modules.tms.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.jeecg.common.aspect.annotation.Dict; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.List; + +/** + * @Description: 鐩樼偣鍗曡〃 + * @Author: houjie + * @Date: 2025-05-16 + * @Version: V1.0 + */ +@ApiModel(value="tms_stocktaking_bound瀵硅薄", description="鐩樼偣鍗曡〃") +@Data +@TableName("tms_stocktaking_bound") +public class ToolsStocktakingBound implements Serializable { + private static final long serialVersionUID = 1L; + + /**涓婚敭*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "涓婚敭") + private String id; + /**鍒涘缓浜�*/ + @ApiModelProperty(value = "鍒涘缓浜�") + private String createBy; + /**鍒涘缓鏃ユ湡*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "鍒涘缓鏃ユ湡") + private java.util.Date createTime; + /**鏇存柊浜�*/ + @ApiModelProperty(value = "鏇存柊浜�") + private String updateBy; + /**鏇存柊鏃ユ湡*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "鏇存柊鏃ユ湡") + private java.util.Date updateTime; + /**鐩樼偣绫诲瀷*/ + @Excel(name = "鐩樼偣绫诲瀷", width = 15) + @ApiModelProperty(value = "鐩樼偣绫诲瀷") + private Integer stocktakingType; + /**鐩樼偣鍗曞彿*/ + @Excel(name = "鐩樼偣鍗曞彿", width = 15) + @ApiModelProperty(value = "鐩樼偣鍗曞彿") + private String orderCode; + /**缁忔墜浜�*/ + @Excel(name = "缁忔墜浜�", width = 15) + @ApiModelProperty(value = "缁忔墜浜�") + @Dict(dicCode = "sys_user, realname, id") + private String handler; + /**瀹℃牳浜�*/ + @Excel(name = "瀹℃牳浜�", width = 15) + @ApiModelProperty(value = "瀹℃牳浜�") + @Dict(dicCode = "sys_user, realname, id") + private String reviewer; + /**鐩樼偣鍚嶇О*/ + @Excel(name = "鐩樼偣鍚嶇О", width = 15) + @ApiModelProperty(value = "鐩樼偣鍚嶇О") + private String stocktakingName; + /**澶囨敞*/ + @Excel(name = "澶囨敞", width = 15) + @ApiModelProperty(value = "澶囨敞") + private String remark; + /**瀹℃牳鐘舵��*/ + @Excel(name = "瀹℃牳鐘舵��", width = 15) + @ApiModelProperty(value = "瀹℃牳鐘舵��") + @Dict(dicCode = "approval_status") + private String approvalStatus; + /**瀹℃牳鎰忚*/ + @Excel(name = "瀹℃牳鎰忚", width = 15) + @ApiModelProperty(value = "瀹℃牳鎰忚") + private String approvalOpinion; + /**鐩樼偣鏃堕棿*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "鐩樼偣鏃堕棿") + private java.util.Date inventoryTime; + + @TableField(exist = false) + private List<ToolsStocktakingBoundDetail> toolsStocktakingBoundDetailList; +} diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ToolsStocktakingBoundDetail.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ToolsStocktakingBoundDetail.java new file mode 100644 index 0000000..9b22037 --- /dev/null +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ToolsStocktakingBoundDetail.java @@ -0,0 +1,137 @@ +package org.jeecg.modules.tms.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.jeecg.common.aspect.annotation.Dict; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * @Description: 鐩樼偣鍗曟槑缁� + * @Author: houjie + * @Date: 2025-05-16 + * @Version: V1.0 + */ +@ApiModel(value="tms_stocktaking_bound_detail瀵硅薄", description="鐩樼偣鍗曟槑缁�") +@Data +@TableName("tms_stocktaking_bound_detail") +public class ToolsStocktakingBoundDetail implements Serializable { + private static final long serialVersionUID = 1L; + + /**涓婚敭*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "涓婚敭") + private String id; + + /**鐩樼偣鍗昳d*/ + @ApiModelProperty(value = "鐩樼偣鍗昳d") + private String stocktakingBoundId; + + /**鍒涘缓浜�*/ + @ApiModelProperty(value = "鍒涘缓浜�") + private String createBy; + /**鍒涘缓鏃ユ湡*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "鍒涘缓鏃ユ湡") + private java.util.Date createTime; + /**鏇存柊浜�*/ + @ApiModelProperty(value = "鏇存柊浜�") + private String updateBy; + /**鏇存柊鏃ユ湡*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "鏇存柊鏃ユ湡") + private java.util.Date updateTime; + /**宸ュ叿缂栫爜*/ + @Excel(name = "宸ュ叿缂栫爜", width = 15) + @ApiModelProperty(value = "宸ュ叿缂栫爜") + private String toolCode; + /**宸ュ叿缂栧彿*/ + @Excel(name = "宸ュ叿缂栧彿", width = 15) + @ApiModelProperty(value = "宸ュ叿缂栧彿") + private String toolId; + /**搴撳瓨鍙�*/ + @ApiModelProperty(value = "搴撳瓨鍙�") + private String goodsShelvesId; + /**璐﹀彿鏁伴噺*/ + @Excel(name = "璐﹂潰鏁伴噺", width = 15) + @ApiModelProperty(value = "璐﹂潰鏁伴噺") + private java.math.BigDecimal bookQuantity; + /**鍙敤鏁伴噺*/ + @Excel(name = "鍙敤鏁伴噺", width = 15) + @ApiModelProperty(value = "鍙敤鏁伴噺") + private java.math.BigDecimal availableQuantity; + /**瀹炵洏鏁伴噺*/ + @Excel(name = "瀹炵洏鏁伴噺", width = 15) + @ApiModelProperty(value = "瀹炵洏鏁伴噺") + private java.math.BigDecimal practicalQuantity; + /**鐩樹簭鐩樼泩*/ + @Dict(dicCode = "surplusDeficit") + @Excel(name = "鐩樹簭鐩樼泩", width = 15) + @ApiModelProperty(value = "鐩樹簭鐩樼泩") + private String surplusDeficit; + /**鐩樺簱鏃堕棿*/ + @Excel(name = "鐩樺簱鏃堕棿", width = 20, format = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + @ApiModelProperty(value = "鐩樺簱鏃堕棿") + private java.util.Date stocktakingDate; + /**绉熸埛鍙�*/ + @Excel(name = "绉熸埛鍙�", width = 15) + @ApiModelProperty(value = "绉熸埛鍙�") + private String tenantId; + /**澶囨敞*/ + @Excel(name = "澶囨敞", width = 15) + @ApiModelProperty(value = "澶囨敞") + private String remark; + /**宸紓鍊�*/ + @Excel(name = "宸紓鍊�", width = 15) + @ApiModelProperty(value = "宸紓鍊�") + private String differenceValue; + + + @TableField(exist = false) + private String paramaTableName; + + @TableField(exist = false) + private String foreignLanguageName; + + @TableField(exist = false) + private String chineseName; + + @TableField(exist = false) + private String supplierId; + + @TableField(exist = false) + private String storageLocation; + + @TableField(exist = false) + private String toolMaterial; + + @TableField(exist = false) + private String toolModel; + /** + * 搴撲綅鍙� + */ + @TableField(exist = false) + private String positionCode; + + + @Dict(dictTable = "tms_tools_classify" , dicText = "type_name", dicCode = "id") + @TableField(exist = false) + private String classifyId; + + + + +} diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ToolsStoreEarlyWarning.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ToolsStoreEarlyWarning.java new file mode 100644 index 0000000..df4da66 --- /dev/null +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ToolsStoreEarlyWarning.java @@ -0,0 +1,109 @@ +package org.jeecg.modules.tms.entity; + +import java.io.Serializable; +import java.util.Date; +import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; +import org.jeecgframework.poi.excel.annotation.Excel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + * @Description: tools_store_early warning + * @Author: HOUJIE + * @Date: 2025-05-16 + * @Version: V1.0 + */ +@Data +@TableName("tools_store_early warning") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="tms_tools_config_property瀵硅薄", description="tools_store_early warning") +public class ToolsStoreEarlyWarning implements Serializable { + private static final long serialVersionUID = 1L; + + /**涓婚敭*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "涓婚敭") + private String id; + /**宸ュ叿缂栧彿*/ + @Excel(name = "宸ュ叿缂栧彿", width = 15) + @ApiModelProperty(value = "宸ュ叿缂栧彿") + private String toolId; + /**涓枃鍚嶇О*/ + @Excel(name = "宸ュ叿缂栫爜", width = 15) + @ApiModelProperty(value = "宸ュ叿缂栫爜") + private String toolCode; + + /**鍘傚*/ + @Excel(name = "鍘傚", width = 15) + @ApiModelProperty(value = "鍘傚") + private String supplierId; + + /**鏉愯川*/ + @Excel(name = "鏉愯川", width = 15) + @ApiModelProperty(value = "鏉愯川") + private String toolMaterial; + + + /**瀛樺偍浣嶇疆锛堝亸閭d釜鍘傚尯鐨勫簱锛�*/ + @Excel(name = "瀛樺偍浣嶇疆锛�", width = 15) + @ApiModelProperty(value = "瀛樺偍浣嶇疆") + private String goodsShelvesId; + + + /**鎬诲簱瀛樻暟閲�*/ + @Excel(name = "鎬诲簱瀛樻暟閲�", width = 15) + @ApiModelProperty(value = "鎬诲簱瀛樻暟閲�") + private BigDecimal totalCount; + + /**鍙敤搴撳瓨鏁伴噺*/ + @Excel(name = "鍙敤搴撳瓨鏁伴噺", width = 15) + @ApiModelProperty(value = "鍙敤搴撳瓨鏁伴噺") + private BigDecimal availableQuantity; + + /**搴撳瓨涓嬮檺*/ + @Excel(name = "搴撳瓨涓嬮檺", width = 15) + @ApiModelProperty(value = "搴撳瓨涓嬮檺") + private BigDecimal lowerInventory; + /**搴撳瓨涓婇檺*/ + @Excel(name = "搴撳瓨涓婇檺", width = 15) + @ApiModelProperty(value = "搴撳瓨涓婇檺") + private String highestInventory; + + + @Excel(name = "鐘舵��;1宸插鐞嗭紱2.鏈鐞�", width = 15) + @ApiModelProperty(value = "鐘舵��;1宸插鐞嗭紱2.鏈鐞�") + private String status; + /**澶囨敞*/ + @Excel(name = "澶囨敞", width = 15) + @ApiModelProperty(value = "澶囨敞") + private String remark; + /**绉熸埛鍙�*/ + @Excel(name = "绉熸埛鍙�", width = 15) + @ApiModelProperty(value = "绉熸埛鍙�") + private String tenantId; + /**鍒涘缓浜�*/ + @ApiModelProperty(value = "鍒涘缓浜�") + private String createBy; + /**鍒涘缓鏃堕棿*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + @ApiModelProperty(value = "鍒涘缓鏃堕棿") + private Date createTime; + /**鏇存柊浜�*/ + @ApiModelProperty(value = "鏇存柊浜�") + private String updateBy; + /**鏇存柊鏃堕棿*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + @ApiModelProperty(value = "鏇存柊鏃堕棿") + private Date updateTime; +} diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/StocktakingPoundVo.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/StocktakingPoundVo.java new file mode 100644 index 0000000..8142c4e --- /dev/null +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/StocktakingPoundVo.java @@ -0,0 +1,35 @@ +package org.jeecg.modules.tms.entity.vo; + +import com.baomidou.mybatisplus.annotation.TableField; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.jeecg.common.aspect.annotation.Dict; + +@Data +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +public class StocktakingPoundVo { + private String id; + private String classifyId; + private String toolCode; + private String foreignLanguageName; + private String standardLevel; + private String standardCode; + private String toolModel; + private String paramaTableName; + private Integer totalCount; + private Integer availableCount; + @Dict(dicCode = "application_type") + private String applicationType; + private String chineseName; + private String supplierId; + private String storageLocation; + private String mainUnit; + private String toolId; + private String positionCode; + // 鏉ヨ嚜涓嶅悓鍙傛暟琛ㄧ殑瀛楁 + private String toolMaterial; + private String partMaterial; + +} diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/ToolsStocktakingVo.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/ToolsStocktakingVo.java new file mode 100644 index 0000000..1e94d50 --- /dev/null +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/ToolsStocktakingVo.java @@ -0,0 +1,87 @@ +package org.jeecg.modules.tms.entity.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.jeecg.modules.tms.entity.ToolsStocktakingBoundDetail; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.jeecgframework.poi.excel.annotation.ExcelCollection; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; +import java.util.List; + +/** + * @Description: 鐩樼偣鍗曡〃 + * @Author: jeecg-boot + * @Date: 2025-05-16 + * @Version: V1.0 + */ +@Data +@ApiModel(value="tools_stocktaking_bound瀵硅薄", description="鐩樼偣鍗曡〃") +public class ToolsStocktakingVo { + + /**涓婚敭*/ + @ApiModelProperty(value = "涓婚敭") + private String id; + /**鍒涘缓浜�*/ + @ApiModelProperty(value = "鍒涘缓浜�") + private String createBy; + /**鍒涘缓鏃ユ湡*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "鍒涘缓鏃ユ湡") + private Date createTime; + /**鏇存柊浜�*/ + @ApiModelProperty(value = "鏇存柊浜�") + private String updateBy; + /**鏇存柊鏃ユ湡*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "鏇存柊鏃ユ湡") + private Date updateTime; + /**鐩樼偣绫诲瀷*/ + @Excel(name = "鐩樼偣绫诲瀷", width = 15) + @ApiModelProperty(value = "鐩樼偣绫诲瀷") + private Integer stocktakingType; + /**鐩樼偣鍗曞彿*/ + @Excel(name = "鐩樼偣鍗曞彿", width = 15) + @ApiModelProperty(value = "鐩樼偣鍗曞彿") + private String orderCode; + /**缁忔墜浜�*/ + @Excel(name = "缁忔墜浜�", width = 15) + @ApiModelProperty(value = "缁忔墜浜�") + private String handler; + /**瀹℃牳浜�*/ + @Excel(name = "瀹℃牳浜�", width = 15) + @ApiModelProperty(value = "瀹℃牳浜�") + private String reviewer; + /**鐩樼偣鍚嶇О*/ + @Excel(name = "鐩樼偣鍚嶇О", width = 15) + @ApiModelProperty(value = "鐩樼偣鍚嶇О") + private String stocktakingName; + /**澶囨敞*/ + @Excel(name = "澶囨敞", width = 15) + @ApiModelProperty(value = "澶囨敞") + private String remark; + /**瀹℃牳鐘舵��*/ + @Excel(name = "瀹℃牳鐘舵��", width = 15) + @ApiModelProperty(value = "瀹℃牳鐘舵��") + private String approvalStatus; + /**瀹℃牳鎰忚*/ + @Excel(name = "瀹℃牳鎰忚", width = 15) + @ApiModelProperty(value = "瀹℃牳鎰忚") + private String approvalOpinion; + /**鐩樼偣鏃堕棿*/ + @Excel(name = "鐩樼偣鏃堕棿", width = 15, format = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + @ApiModelProperty(value = "鐩樼偣鏃堕棿") + private Date inventoryTime; + + @ExcelCollection(name="鐩樼偣鍗曟槑缁�") + @ApiModelProperty(value = "鐩樼偣鍗曟槑缁�") + private List<ToolsStocktakingBoundDetail> toolsStocktakingBoundDetailList; + +} diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/BaseToolsMapper.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/BaseToolsMapper.java index 6a0ef0c..f5bb4bf 100644 --- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/BaseToolsMapper.java +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/BaseToolsMapper.java @@ -35,4 +35,5 @@ IPage<ParaBladeVo> paraBladeList(Page<ParaBladeVo> page, @Param(Constants.WRAPPER) Wrapper<ParaBladeVo> queryWrapper); + IPage<StocktakingPoundVo> pageWithLedgerAndConfig(Page<StocktakingPoundVo> page, @Param(Constants.WRAPPER) Wrapper<StocktakingPoundVo> wrapper); } diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolsLossBoundDetailMapper.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolsLossBoundDetailMapper.java new file mode 100644 index 0000000..0989e79 --- /dev/null +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolsLossBoundDetailMapper.java @@ -0,0 +1,41 @@ +package org.jeecg.modules.tms.mapper; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Param; +import org.jeecg.modules.tms.entity.ToolsLossBound; +import org.jeecg.modules.tms.entity.ToolsLossBoundDetail; + +import java.util.List; + +/** + * @Description: 鎹熻�楀崟鏄庣粏 + * @Author: jeecg-boot + * @Date: 2025-05-21 + * @Version: V1.0 + */ +public interface ToolsLossBoundDetailMapper extends BaseMapper<ToolsLossBoundDetail> { + + + /** + * 閫氳繃涓昏〃id鍒犻櫎瀛愯〃鏁版嵁 + * + * @param mainId 涓昏〃id + * @return boolean + */ + public boolean deleteByMainId(@Param("mainId") String mainId); + + /** + * 閫氳繃涓昏〃id鏌ヨ瀛愯〃鏁版嵁 + * + * @param mainId 涓昏〃id + * @return List<ToolsLossBoundDetail> + */ + public List<ToolsLossBoundDetail> selectByMainId(@Param("mainId") String mainId); + + IPage<ToolsLossBoundDetail> queryPageList(Page<ToolsLossBoundDetail> page, + @Param(Constants.WRAPPER) Wrapper<ToolsLossBoundDetail> queryWrapper); +} diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolsLossBoundMapper.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolsLossBoundMapper.java new file mode 100644 index 0000000..b41a156 --- /dev/null +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolsLossBoundMapper.java @@ -0,0 +1,21 @@ +package org.jeecg.modules.tms.mapper; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Param; +import org.jeecg.modules.tms.entity.ToolsLossBound; + +/** + * @Description: 鎹熻�楀崟 + * @Author: jeecg-boot + * @Date: 2025-05-21 + * @Version: V1.0 + */ +public interface ToolsLossBoundMapper extends BaseMapper<ToolsLossBound> { + + IPage<ToolsLossBound> queryPageList(Page<ToolsLossBound> page, + @Param(Constants.WRAPPER) Wrapper<ToolsLossBound> queryWrapper); +} diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolsSharpeningMapper.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolsSharpeningMapper.java new file mode 100644 index 0000000..458ed7e --- /dev/null +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolsSharpeningMapper.java @@ -0,0 +1,13 @@ +package org.jeecg.modules.tms.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.jeecg.modules.tms.entity.ToolSharpening; + +/** + * @Description: tms_tool_sharpening Mapper 鎺ュ彛 + * @Author: 渚澃 + * @Date: 2025-05-10 + */ +public interface ToolsSharpeningMapper extends BaseMapper<ToolSharpening> { + // 鍙嚜瀹氫箟鏌ヨ鏂规硶 +} diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolsStocktakingBoundDetailMapper.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolsStocktakingBoundDetailMapper.java new file mode 100644 index 0000000..06f3982 --- /dev/null +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolsStocktakingBoundDetailMapper.java @@ -0,0 +1,41 @@ +package org.jeecg.modules.tms.mapper; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Param; +import org.jeecg.modules.tms.entity.ToolsClassify; +import org.jeecg.modules.tms.entity.ToolsStocktakingBoundDetail; + +import java.util.List; + +public interface ToolsStocktakingBoundDetailMapper extends BaseMapper<ToolsStocktakingBoundDetail> { + + /** + * 閫氳繃涓昏〃id鍒犻櫎瀛愯〃鏁版嵁 + * + * @param mainId 涓昏〃id + * @return boolean + */ + public boolean deleteByMainId(@Param("mainId") String mainId); + + + /** + * 閫氳繃涓昏〃id鍒犻櫎瀛愯〃鏁版嵁 + * + * @param mainId 涓昏〃id + * @return boolean + */ + public String getParamaTableNameByMainId(@Param("mainId") String mainId); + /** + * 閫氳繃涓昏〃id鏌ヨ瀛愯〃鏁版嵁 + * + * @param + * @return List<ToolsStocktakingBoundDetail> + */ + IPage<ToolsStocktakingBoundDetail> selectByMainId(Page<ToolsStocktakingBoundDetail> page, + @Param(Constants.WRAPPER) Wrapper<ToolsStocktakingBoundDetail> queryWrapper); + +} diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolsStocktakingBoundMapper.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolsStocktakingBoundMapper.java new file mode 100644 index 0000000..3bdf757 --- /dev/null +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolsStocktakingBoundMapper.java @@ -0,0 +1,14 @@ +package org.jeecg.modules.tms.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.jeecg.modules.tms.entity.ToolsStocktakingBound; + +/** + * @Description: 鐩樼偣鍗曡〃 + * @Author: jeecg-boot + * @Date: 2025-05-16 + * @Version: V1.0 + */ +public interface ToolsStocktakingBoundMapper extends BaseMapper<ToolsStocktakingBound> { + +} diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolsStoreEarlyWarningMapper.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolsStoreEarlyWarningMapper.java new file mode 100644 index 0000000..588c7ad --- /dev/null +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolsStoreEarlyWarningMapper.java @@ -0,0 +1,14 @@ +package org.jeecg.modules.tms.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.jeecg.modules.tms.entity.ToolsStoreEarlyWarning; + +/** + * @Description: tools_store_early warning + * @Author: houjie + * @Date: 2025-05-16 + * @Version: V1.0 + */ +public interface ToolsStoreEarlyWarningMapper extends BaseMapper<ToolsStoreEarlyWarning> { + +} diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/BaseToolsMapper.xml b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/BaseToolsMapper.xml index 6cd55f0..a8d4349 100644 --- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/BaseToolsMapper.xml +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/BaseToolsMapper.xml @@ -343,4 +343,97 @@ LEFT JOIN tms_tools_classify t3 ON t3.id = t.classify_id ${ew.customSqlSegment} </select> + <select id="pageWithLedgerAndConfig" resultType="org.jeecg.modules.tms.entity.vo.StocktakingPoundVo"> + SELECT + t.id, + t.classify_id AS classifyId, + t.tool_code AS toolCode, + t.foreign_language_name AS foreignLanguageName, + t.standard_level AS standardLevel, + t.standard_code AS standardCode, + t.tool_model AS toolModel, + t.parama_table_name AS paramaTableName, + t.tool_id AS toolId, + t1.total_count AS totalCount, + t1.available_count AS availableCount, + t4.position_code AS positionCode, + t3.application_type AS applicationType, + t3.chinese_name AS chineseName, + t3.supplier_id AS supplierId, + t3.storage_location AS storageLocation, + t3.main_unit AS mainUnit, + + <!-- 鍔ㄦ�佸瓧娈甸�夋嫨锛屼娇鐢ㄨ〃鍒悕锛堥渶纭繚琛ㄥ凡鍏宠仈锛� --> + <choose> + <when test="ew.paramNameValuePairs.paramaTableName == '1'"> + c.tool_material AS toolMaterial, + c.part_material AS partMaterial + </when> + <when test="ew.paramNameValuePairs.paramaTableName == '2'"> + h.tool_material AS toolMaterial, + h.part_material AS partMaterial + </when> + <when test="ew.paramNameValuePairs.paramaTableName == '3'"> + th.tool_material AS toolMaterial, + th.part_material AS partMaterial + </when> + <when test="ew.paramNameValuePairs.paramaTableName == '4'"> + m.tool_material AS toolMaterial, + m.part_material AS partMaterial + </when> + <when test="ew.paramNameValuePairs.paramaTableName == '5'"> + tr.tool_material AS toolMaterial, + tr.part_material AS partMaterial + </when> + <when test="ew.paramNameValuePairs.paramaTableName == '6'"> + b.tool_material AS toolMaterial, + b.part_material AS partMaterial + </when> + <!-- 榛樿鎯呭喌锛歱aramaTableName 涓虹┖鎴栨湭浼犻�掓椂锛屽叧鑱� tms_para_common_tool 琛� --> + <otherwise> + c.tool_material AS toolMaterial, + c.part_material AS partMaterial + </otherwise> + </choose> + + FROM tms_base_tools t + LEFT JOIN tms_tool_ledger t1 ON t1.tool_id = t.id + LEFT JOIN tms_tools_config_property t3 ON t3.tool_code = t.id + LEFT JOIN tms_tool_ledger_detail t4 ON t4.tool_code = t.id + + <!-- 鍔ㄦ�佽〃鍏宠仈锛岀‘淇濇墍鏈夋儏鍐甸兘鏈夊搴旂殑 LEFT JOIN --> + <choose> + <when test="ew.paramNameValuePairs.paramaTableName == '1'"> + LEFT JOIN tms_para_common_tool c ON c.tool_code = t.id + </when> + <when test="ew.paramNameValuePairs.paramaTableName == '2'"> + LEFT JOIN tms_para_hole_tools h ON h.tool_code = t.id + </when> + <when test="ew.paramNameValuePairs.paramaTableName == '3'"> + LEFT JOIN tms_para_threading_tool th ON th.tool_code = t.id + </when> + <when test="ew.paramNameValuePairs.paramaTableName == '4'"> + LEFT JOIN tms_para_mill_tool m ON m.tool_code = t.id + </when> + <when test="ew.paramNameValuePairs.paramaTableName == '5'"> + LEFT JOIN tms_para_turning_tools tr ON tr.tool_code = t.id + </when> + <when test="ew.paramNameValuePairs.paramaTableName == '6'"> + LEFT JOIN tms_para_blade b ON b.tool_code = t.id + </when> + <!-- 榛樿鎯呭喌锛氭坊鍔� LEFT JOIN tms_para_common_tool c --> + <otherwise> + LEFT JOIN tms_para_common_tool c ON c.tool_code = t.id + </otherwise> + </choose> + + <where> + <if test="ew.paramNameValuePairs.toolCode != null and ew.paramNameValuePairs.toolCode != ''"> + AND t.tool_code LIKE CONCAT('%', #{ew.paramNameValuePairs.toolCode}, '%') + </if> + </where> + + ORDER BY t.create_time DESC + </select> + </mapper> \ No newline at end of file diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolsLossBoundDetailMapper.xml b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolsLossBoundDetailMapper.xml new file mode 100644 index 0000000..40abda6 --- /dev/null +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolsLossBoundDetailMapper.xml @@ -0,0 +1,84 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="org.jeecg.modules.tms.mapper.ToolsLossBoundDetailMapper"> + <delete id="deleteByMainId" parameterType="java.lang.String"> + DELETE + FROM tms_loss_bound_detail + WHERE loss_bound_id = #{mainId} + </delete> + + <select id="selectByMainId" parameterType="java.lang.String" + resultType="org.jeecg.modules.tms.entity.ToolsLossBoundDetail"> + SELECT * + FROM tms_loss_bound_detail + WHERE loss_bound_id = #{mainId} + </select> + <select id="queryPageList" resultType="org.jeecg.modules.tms.entity.ToolsLossBoundDetail"> + SELECT + t1.*, + t2.chinese_name chineseName, + t2.tool_model toolModel, + t2.classify_id classifyId, + t2.parama_table_name paramaTableName, + t3.application_type applicationType, + t3.supplier_id supplierId, + <choose> + <when test="ew.paramNameValuePairs.paramaTableName == '1'"> + t4.tool_material toolMaterial, + t4.part_material partMaterial + </when> + <when test="ew.paramNameValuePairs.paramaTableName == '2'"> + t5.tool_material toolMaterial, + t5.part_material partMaterial + </when> + <when test="ew.paramNameValuePairs.paramaTableName == '3'"> + t6.tool_material toolMaterial, + t6.part_material partMaterial + </when> + <when test="ew.paramNameValuePairs.paramaTableName == '4'"> + t7.tool_material toolMaterial, + t7.part_material partMaterial + </when> + <when test="ew.paramNameValuePairs.paramaTableName == '5'"> + t8.tool_material toolMaterial, + t8.part_material partMaterial + </when> + <when test="ew.paramNameValuePairs.paramaTableName == '6'"> + t9.tool_material toolMaterial, + t9.part_material partMaterial + </when> + <otherwise> + t10.tool_material toolMaterial, + t10.part_material partMaterial + </otherwise> + </choose> + FROM tms_loss_bound_detail t1 + LEFT JOIN tms_base_tools t2 on t1.tool_id = t2.id + LEFT JOIN tms_tools_config_property t3 on t3.tool_code = t2.id + + <choose> + <when test="ew.paramNameValuePairs.paramaTableName == '1'"> + LEFT JOIN tms_para_common_tool t4 on t4.tool_code = t2.id + </when> + <when test="ew.paramNameValuePairs.paramaTableName == '2'"> + LEFT JOIN tms_para_hole_tools t5 on t5.tool_code = t2.id + </when> + <when test="ew.paramNameValuePairs.paramaTableName == '3'"> + LEFT JOIN tms_para_threading_tool t6 on t6.tool_code = t2.id + </when> + <when test="ew.paramNameValuePairs.paramaTableName == '4'"> + LEFT JOIN tms_para_mill_tool t7 on t7.tool_code = t2.id + </when> + <when test="ew.paramNameValuePairs.paramaTableName == '5'"> + LEFT JOIN tms_para_turning_tools t8 on t8.tool_code = t2.id + </when> + <when test="ew.paramNameValuePairs.paramaTableName == '6'"> + LEFT JOIN tms_para_blade t9 on t9.tool_code = t2.id + </when> + <otherwise> + LEFT JOIN tms_para_common_tool t10 on t10.tool_code = t2.id + </otherwise> + </choose> + ${ew.customSqlSegment} + </select> +</mapper> \ No newline at end of file diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolsLossBoundMapper.xml b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolsLossBoundMapper.xml new file mode 100644 index 0000000..10f01fa --- /dev/null +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolsLossBoundMapper.xml @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="org.jeecg.modules.tms.mapper.ToolsLossBoundMapper"> + <select id="queryPageList" resultType="org.jeecg.modules.tms.entity.ToolsLossBound"> + SELECT + t.* + FROM tms_loss_bound t + ${ew.customSqlSegment} + </select> +</mapper> \ No newline at end of file diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolsSharpeningMapper.xml b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolsSharpeningMapper.xml new file mode 100644 index 0000000..481ae06 --- /dev/null +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolsSharpeningMapper.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="org.jeecg.modules.tms.mapper.ToolsSharpeningMapper"> + +</mapper> \ No newline at end of file diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolsStocktakingBoundDetailMapper.xml b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolsStocktakingBoundDetailMapper.xml new file mode 100644 index 0000000..214d4dd --- /dev/null +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolsStocktakingBoundDetailMapper.xml @@ -0,0 +1,91 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="org.jeecg.modules.tms.mapper.ToolsStocktakingBoundDetailMapper"> + + <delete id="deleteByMainId" parameterType="java.lang.String"> + DELETE + FROM tools_stocktaking_bound_detail + WHERE goods_shelves_id = #{mainId} + </delete> + <select id="getParamaTableNameByMainId" parameterType="string" resultType="string"> + SELECT t1.parama_table_name + FROM tools_stocktaking_bound_detail t + LEFT JOIN tms_base_tools t1 ON t1.tool_id = t.id + WHERE t.goods_shelves_id = #{mainId} + </select> + + <select id="selectByMainId" resultType="org.jeecg.modules.tms.entity.ToolsStocktakingBoundDetail"> + SELECT + t.*, + t2.tool_code AS toolCode, <!-- 淇锛氬皢t1鏀逛负t2 --> + t2.parama_table_name paramaTableName, + t2.classify_id AS classifyId, + t3.storage_location AS storageLocation, + t3.chinese_name AS chineseName, + t2.tool_model AS toolModel, + t3.supplier_id AS supplierId, + + <choose> + <when test="ew.paramNameValuePairs.paramaTableName == '1'"> + c.tool_material AS toolMaterial, + c.part_material AS partMaterial + </when> + <when test="ew.paramNameValuePairs.paramaTableName == '2'"> + h.tool_material AS toolMaterial, + h.part_material AS partMaterial + </when> + <when test="ew.paramNameValuePairs.paramaTableName == '3'"> + th.tool_material AS toolMaterial, + th.part_material AS partMaterial + </when> + <when test="ew.paramNameValuePairs.paramaTableName == '4'"> + m.tool_material AS toolMaterial, + m.part_material AS partMaterial + </when> + <when test="ew.paramNameValuePairs.paramaTableName == '5'"> + tr.tool_material AS toolMaterial, + tr.part_material AS partMaterial + </when> + <when test="ew.paramNameValuePairs.paramaTableName == '6'"> + b.tool_material AS toolMaterial, + b.part_material AS partMaterial + </when> + <!-- 榛樿鎯呭喌锛歱aramaTableName 涓虹┖鎴栨湭浼犻�掓椂锛屽叧鑱� tms_para_common_tool 琛� --> + <otherwise> + c.tool_material AS toolMaterial, + c.part_material AS partMaterial + </otherwise> + </choose> + FROM tms_stocktaking_bound_detail t + LEFT JOIN tms_base_tools t2 on t.tool_id = t2.id + LEFT JOIN tms_tools_config_property t3 on t3.tool_code = t2.id + + <choose> + <when test="ew.paramNameValuePairs.paramaTableName == '1'"> + LEFT JOIN tms_para_common_tool c ON c.tool_code = t.id + </when> + <when test="ew.paramNameValuePairs.paramaTableName == '2'"> + LEFT JOIN tms_para_hole_tools h ON h.tool_code = t.id + </when> + <when test="ew.paramNameValuePairs.paramaTableName == '3'"> + LEFT JOIN tms_para_threading_tool th ON th.tool_code = t.id + </when> + <when test="ew.paramNameValuePairs.paramaTableName == '4'"> + LEFT JOIN tms_para_mill_tool m ON m.tool_code = t.id + </when> + <when test="ew.paramNameValuePairs.paramaTableName == '5'"> + LEFT JOIN tms_para_turning_tools tr ON tr.tool_code = t.id + </when> + <when test="ew.paramNameValuePairs.paramaTableName == '6'"> + LEFT JOIN tms_para_blade b ON b.tool_code = t.id + </when> + <!-- 榛樿鎯呭喌锛氭坊鍔� LEFT JOIN tms_para_common_tool c --> + <otherwise> + LEFT JOIN tms_para_common_tool c ON c.tool_code = t.id + </otherwise> + </choose> + + ${ew.customSqlSegment} + + </select> +</mapper> \ No newline at end of file diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolsStocktakingBoundMapper.xml b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolsStocktakingBoundMapper.xml new file mode 100644 index 0000000..2014953 --- /dev/null +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolsStocktakingBoundMapper.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="org.jeecg.modules.tms.mapper.ToolsStocktakingBoundMapper"> + +</mapper> \ No newline at end of file diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolsStoreEarlyWarningMapper.xml b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolsStoreEarlyWarningMapper.xml new file mode 100644 index 0000000..72cacd0 --- /dev/null +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolsStoreEarlyWarningMapper.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="org.jeecg.modules.tms.mapper.ToolsStoreEarlyWarningMapper"> + +</mapper> \ No newline at end of file diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IBaseToolsService.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IBaseToolsService.java index 93291c0..eeb5752 100644 --- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IBaseToolsService.java +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IBaseToolsService.java @@ -1,5 +1,6 @@ package org.jeecg.modules.tms.service; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.jeecg.modules.tms.entity.BaseTools; @@ -28,4 +29,5 @@ IPage<ParaTurningToolsVo> paraTurningToolsList(Page<ParaTurningToolsVo> page, Map<String, String[]> parameterMap); IPage<ParaBladeVo> paraBladeList(Page<ParaBladeVo> page, Map<String, String[]> parameterMap); + IPage<StocktakingPoundVo> pageWithLedgerAndConfig(Page<StocktakingPoundVo> page, QueryWrapper<StocktakingPoundVo> queryWrapper); } diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolsLossBoundDetailService.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolsLossBoundDetailService.java new file mode 100644 index 0000000..30a5be5 --- /dev/null +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolsLossBoundDetailService.java @@ -0,0 +1,22 @@ +package org.jeecg.modules.tms.service; + + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.modules.tms.entity.OutboundDetail; +import org.jeecg.modules.tms.entity.ToolsLossBound; +import org.jeecg.modules.tms.entity.ToolsLossBoundDetail; +import org.jeecg.modules.tms.entity.vo.OutboundDetailVo; + +import java.util.Map; + +/** + * @Description: 鎹熻�楀崟鏄庣粏 + * @Author: jeecg-boot + * @Date: 2025-05-21 + * @Version: V1.0 + */ +public interface IToolsLossBoundDetailService extends IService<ToolsLossBoundDetail> { + IPage<ToolsLossBoundDetail> queryPageList(Page<ToolsLossBoundDetail> page, Map<String, String[]> parameterMap); +} diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolsLossBoundService.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolsLossBoundService.java new file mode 100644 index 0000000..a197313 --- /dev/null +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolsLossBoundService.java @@ -0,0 +1,49 @@ +package org.jeecg.modules.tms.service; + + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.modules.tms.entity.ToolsLossBound; + +import java.io.Serializable; +import java.util.Collection; +import java.util.Map; + +/** + * @Description: 鎹熻�楀崟鏄庣粏 + * @Author: jeecg-boot + * @Date: 2025-05-21 + * @Version: V1.0 + */ +public interface IToolsLossBoundService extends IService<ToolsLossBound> { + + + /** + * 鍒犻櫎涓�瀵瑰 + * + * @param id + */ + public void delMain (String id); + + /** + * 鎵归噺鍒犻櫎涓�瀵瑰 + * + * @param idList + */ + public void delBatchMain (Collection<? extends Serializable> idList); + + + void addTotal(ToolsLossBound toolsLossBound); + + IPage<ToolsLossBound> queryPageList(Page<ToolsLossBound> page, Map<String, String[]> parameterMap); + + void editTotal(ToolsLossBound toolsLossBound); + + /** + * 鎻愪氦鎶ユ崯鍗� + * @param id + * @return + */ + boolean submintOrder(String id); +} diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolsSharpeningService.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolsSharpeningService.java new file mode 100644 index 0000000..d06399d --- /dev/null +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolsSharpeningService.java @@ -0,0 +1,13 @@ +package org.jeecg.modules.tms.service; + +import org.jeecg.modules.tms.entity.ToolSharpening; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * @Description: 鍒�鍏峰垉纾ㄨ褰� Service 鎺ュ彛 + * @Author: 渚澃 + * @Date: 2025-05-10 + */ +public interface IToolsSharpeningService extends IService<ToolSharpening> { + +} diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolsStocktakingBoundDetailService.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolsStocktakingBoundDetailService.java new file mode 100644 index 0000000..da0bde5 --- /dev/null +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolsStocktakingBoundDetailService.java @@ -0,0 +1,31 @@ +package org.jeecg.modules.tms.service; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.modules.tms.entity.ToolsStocktakingBoundDetail; + +import java.util.List; +import java.util.Map; + +/** + * @Description: 鐩樼偣鍗曟槑缁� + * @Author: houjie + * @Date: 2025-05-16 + * @Version: V1.0 + */ +public interface IToolsStocktakingBoundDetailService extends IService<ToolsStocktakingBoundDetail> { + + + /** + * 閫氳繃涓昏〃id鏌ヨ瀛愯〃鏁版嵁 + * + * @param + * @return List<ToolsStocktakingBoundDetail> + */ + public IPage<ToolsStocktakingBoundDetail> selectByMainId(Page<ToolsStocktakingBoundDetail> page, Map<String, String[]> parameterMap); + + +} diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolsStocktakingBoundService.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolsStocktakingBoundService.java new file mode 100644 index 0000000..717c9b1 --- /dev/null +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolsStocktakingBoundService.java @@ -0,0 +1,56 @@ +package org.jeecg.modules.tms.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.modules.tms.entity.ToolsStocktakingBound; +import org.jeecg.modules.tms.entity.ToolsStocktakingBoundDetail; + +import java.io.Serializable; +import java.util.Collection; +import java.util.List; + +/** + * @Description: 鐩樼偣鍗曡〃 + * @Author: houjie + * @Date: 2025-05-16 + * @Version: V1.0 + */ +public interface IToolsStocktakingBoundService extends IService<ToolsStocktakingBound> { + + /** + * 娣诲姞涓�瀵瑰 + * + * @param toolsStocktakingBound + * @param toolsStocktakingBoundDetailList + */ + public void saveMain(ToolsStocktakingBound toolsStocktakingBound, List<ToolsStocktakingBoundDetail> toolsStocktakingBoundDetailList); + + /** + * 淇敼涓�瀵瑰 + * + * @param toolsStocktakingBound + * @param toolsStocktakingBoundDetailList + */ + public void updateMain(ToolsStocktakingBound toolsStocktakingBound, List<ToolsStocktakingBoundDetail> toolsStocktakingBoundDetailList); + + /** + * 鍒犻櫎涓�瀵瑰 + * + * @param id + */ + public void delMain(String id); + + /** + * 鎵归噺鍒犻櫎涓�瀵瑰 + * + * @param idList + */ + public void delBatchMain(Collection<? extends Serializable> idList); + + /** + * 鎻愪氦鐩樼偣鍗� + * @param id + * @return + */ + boolean submintOrder(String id); + +} diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolsStoreEarlyWarningService.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolsStoreEarlyWarningService.java new file mode 100644 index 0000000..24d4f3e --- /dev/null +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolsStoreEarlyWarningService.java @@ -0,0 +1,14 @@ +package org.jeecg.modules.tms.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.modules.tms.entity.ToolsStoreEarlyWarning; + +/** + * @Description: tools_store_early warning + * @Author: houjie + * @Date: 2025-05-16 + * @Version: V1.0 + */ +public interface IToolsStoreEarlyWarningService extends IService<ToolsStoreEarlyWarning> { + +} diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/BaseToolsServiceImpl.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/BaseToolsServiceImpl.java index 53466da..595cfcb 100644 --- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/BaseToolsServiceImpl.java +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/BaseToolsServiceImpl.java @@ -4,14 +4,12 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.jeecg.modules.tms.entity.BaseTools; -import org.jeecg.modules.tms.entity.ParaCommonTool; import org.jeecg.modules.tms.entity.vo.*; import org.jeecg.modules.tms.mapper.BaseToolsMapper; import org.jeecg.modules.tms.service.IBaseToolsService; import org.springframework.stereotype.Service; - -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import java.util.Map; @@ -137,4 +135,8 @@ queryWrapper.orderByDesc("t.create_time"); return this.baseMapper.paraBladeList(page, queryWrapper); } + @Override + public IPage<StocktakingPoundVo> pageWithLedgerAndConfig(Page<StocktakingPoundVo> page, QueryWrapper<StocktakingPoundVo> queryWrapper) { + return baseMapper.pageWithLedgerAndConfig(page, queryWrapper); + } } diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsLossBoundDetailServiceImpl.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsLossBoundDetailServiceImpl.java new file mode 100644 index 0000000..2d44481 --- /dev/null +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsLossBoundDetailServiceImpl.java @@ -0,0 +1,38 @@ +package org.jeecg.modules.tms.service.impl; + + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.jeecg.modules.tms.entity.OutboundDetail; +import org.jeecg.modules.tms.entity.ToolsLossBound; +import org.jeecg.modules.tms.entity.ToolsLossBoundDetail; +import org.jeecg.modules.tms.entity.vo.OutboundDetailVo; +import org.jeecg.modules.tms.mapper.ToolsLossBoundDetailMapper; +import org.jeecg.modules.tms.service.IToolsLossBoundDetailService; +import org.springframework.stereotype.Service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +import java.util.Map; + +/** + * @Description: 鎹熻�楀崟鏄庣粏 + * @Author: jeecg-boot + * @Date: 2025-05-21 + * @Version: V1.0 + */ +@Service +public class ToolsLossBoundDetailServiceImpl extends ServiceImpl<ToolsLossBoundDetailMapper, ToolsLossBoundDetail> implements IToolsLossBoundDetailService { + + @Override + public IPage<ToolsLossBoundDetail> queryPageList(Page<ToolsLossBoundDetail> page, Map<String, String[]> parameterMap) { + QueryWrapper<ToolsLossBoundDetail> queryWrapper = Wrappers.query(); + String[] outStorehouseIds = parameterMap.get("lossBoundId"); + if (outStorehouseIds != null && outStorehouseIds.length > 0) { + queryWrapper.eq("t1.loss_bound_id", outStorehouseIds[0]); + } + return this.baseMapper.queryPageList(page, queryWrapper); + } +} diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsLossBoundServiceImpl.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsLossBoundServiceImpl.java new file mode 100644 index 0000000..b789be8 --- /dev/null +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsLossBoundServiceImpl.java @@ -0,0 +1,189 @@ +package org.jeecg.modules.tms.service.impl; + + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.apache.shiro.SecurityUtils; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.system.vo.LoginUser; +import org.jeecg.modules.flowable.apithird.business.entity.FlowMyBusiness; +import org.jeecg.modules.flowable.apithird.service.FlowCallBackServiceI; +import org.jeecg.modules.flowable.apithird.service.FlowCommonService; +import org.jeecg.modules.flowable.service.IFlowDefinitionService; +import org.jeecg.modules.flowable.service.IFlowTaskService; +import org.jeecg.modules.system.service.ISysBusinessCodeRuleService; +import org.jeecg.modules.tms.entity.ToolsLossBound; +import org.jeecg.modules.tms.entity.ToolsLossBoundDetail; +import org.jeecg.modules.tms.enums.OutBillStatus; +import org.jeecg.modules.tms.mapper.ToolsLossBoundDetailMapper; +import org.jeecg.modules.tms.mapper.ToolsLossBoundMapper; +import org.jeecg.modules.tms.service.IToolsLossBoundDetailService; +import org.jeecg.modules.tms.service.IToolsLossBoundService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.io.Serializable; +import java.util.*; + +/** + * @Description: 鎹熻�楀崟 + * @Author: jeecg-boot + * @Date: 2025-05-21 + * @Version: V1.0 + */ +@Service("IToolsLossBoundService") +public class ToolsLossBoundServiceImpl extends ServiceImpl<ToolsLossBoundMapper, ToolsLossBound> implements IToolsLossBoundService, FlowCallBackServiceI { + + @Autowired + private ToolsLossBoundMapper baseMapper; + + @Autowired + private ToolsLossBoundDetailMapper baseDetailMapper; + @Autowired + private IToolsLossBoundDetailService toolsLossBoundDetailService; + @Resource + private FlowCommonService flowCommonService; + @Resource + private IFlowDefinitionService flowDefinitionService; + @Autowired + private IFlowTaskService flowTaskService; + @Autowired + private ISysBusinessCodeRuleService businessCodeRuleService; + + + @Override + public void delMain(String id) { + baseDetailMapper.deleteByMainId(id); + baseMapper.deleteById(id); + } + + @Override + public void delBatchMain(Collection<? extends Serializable> idList) { + for (Serializable id : idList) { + baseDetailMapper.deleteByMainId(id.toString()); + baseMapper.deleteById(id); + } + } + + @Override + public void addTotal(ToolsLossBound toolsLossBound) { + LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + if (loginUser != null){ + toolsLossBound.setHandler(loginUser.getId()); + } + toolsLossBound.setOrderCode(businessCodeRuleService.generateBusinessCodeSeq("LossBound")); + toolsLossBound.setOrderStatus(OutBillStatus.DRAFT.getValue()); + save(toolsLossBound); + + List<ToolsLossBoundDetail> detailList = toolsLossBound.getToolsLossBoundDetailList(); + List<ToolsLossBoundDetail> newDetailList = new ArrayList<>(); + + if (CollectionUtils.isNotEmpty(detailList)) { + detailList.forEach(item -> { + item.setLossBoundId(toolsLossBound.getId()); + newDetailList.add(item); + }); + + toolsLossBoundDetailService.saveBatch(newDetailList); + } + } + + + @Override + public IPage<ToolsLossBound> queryPageList(Page<ToolsLossBound> page, Map<String, String[]> parameterMap) { + QueryWrapper<ToolsLossBound> queryWrapper = Wrappers.query(); + String[] orderCode = parameterMap.get("orderCode"); + if (orderCode != null && orderCode.length > 0) { + queryWrapper.like("t.order_code", orderCode[0]); + } + String[] statuses = parameterMap.get("orderStatus"); + if (statuses != null && statuses.length > 0) { + queryWrapper.eq("t.order_status", statuses[0]); + } + return this.baseMapper.queryPageList(page, queryWrapper); + } + + @Override + public void editTotal(ToolsLossBound toolsLossBound) { + //鍒犻櫎鎵�鏈夋槑缁� + toolsLossBoundDetailService.remove(new LambdaQueryWrapper<ToolsLossBoundDetail>() + .eq(ToolsLossBoundDetail::getLossBoundId, toolsLossBound.getId())); + ToolsLossBound toolsLossBound1 = BeanUtil.copyProperties(toolsLossBound, ToolsLossBound.class); + this.baseMapper.updateById(toolsLossBound1); + List<ToolsLossBoundDetail> detailList = CollectionUtil.newArrayList(); + toolsLossBound.getToolsLossBoundDetailList().forEach(item -> { + item.setLossBoundId(toolsLossBound1.getId()); + detailList.add(item); + }); + toolsLossBoundDetailService.saveBatch(detailList); + + } + + @Override + public boolean submintOrder(String id) { + + ToolsLossBound toolsLossBound = this.getById(id); + if (toolsLossBound == null) { + return false; + } else { + toolsLossBound.setReviewer(toolsLossBound.getReviewer()); + + flowCommonService.initActBusiness("鎶ユ崯鍗曞彿:" + toolsLossBound.getOrderCode() + ";鎶ユ崯浜�: " + toolsLossBound.getLosser() + ";杩涜鎶ユ崯", + toolsLossBound.getId(), "IToolsStocktakingBoundService", "tools_Loss_Approval", null); + Map<String, Object> variables = new HashMap<>(); + variables.put("dataId", toolsLossBound.getId()); + if (StrUtil.isEmpty(toolsLossBound.getReviewer())) { + variables.put("organization", "鏂板宸ュ叿鎶ユ崯鍗曢粯璁ゅ惎鍔ㄦ祦绋�"); + variables.put("comment", "鏂板宸ュ叿鎶ユ崯鍗曢粯璁ゅ惎鍔ㄦ祦绋�"); + } else { + variables.put("organization", toolsLossBound.getLossReason()); + variables.put("comment", toolsLossBound.getLossReason()); + } + variables.put("proofreading", true); + List<String> usernames = new ArrayList<>(); + usernames.add(toolsLossBound.getReviewer()); + variables.put("NextAssignee", usernames); + Result result = flowDefinitionService.startProcessInstanceByKey("tools_Loss_Approval", variables); + if (result != null) { + toolsLossBound.setLossTime(new Date()); + toolsLossBound.setOrderStatus(OutBillStatus.SUBMITTED.getValue()); + //淇濆瓨宸ュ崟 + baseMapper.updateById(toolsLossBound); + return result.isSuccess(); + } + return true; + } + } + + @Override + public void afterFlowHandle(FlowMyBusiness business) { + business.getTaskNameId();//鎺ヤ笅鏉ュ鎵圭殑鑺傜偣 + business.getValues();//鍓嶇浼犺繘鏉ョ殑鍙傛暟 + business.getActStatus(); + } + + @Override + public Object getBusinessDataById(String dataId) { + return this.getById(dataId); + } + + @Override + public Map<String, Object> flowValuesOfTask(String taskNameId, Map<String, Object> values) { + return null; + } + + @Override + public List<String> flowCandidateUsernamesOfTask(String taskNameId, Map<String, Object> values) { + Object object = values.get("NextAssignee"); + return (List<String>) object; + } +} diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsSharpeningServiceImpl.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsSharpeningServiceImpl.java new file mode 100644 index 0000000..3831e2d --- /dev/null +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsSharpeningServiceImpl.java @@ -0,0 +1,17 @@ +package org.jeecg.modules.tms.service.impl; + +import org.jeecg.modules.tms.entity.ToolSharpening; +import org.jeecg.modules.tms.mapper.ToolsSharpeningMapper; +import org.jeecg.modules.tms.service.IToolsSharpeningService; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +/** + * @Description: 鍒�鍏峰垉纾ㄨ褰� Service 瀹炵幇绫� + * @Author: yourName + * @Date: 2025-05-10 + */ +@Service +public class ToolsSharpeningServiceImpl extends ServiceImpl<ToolsSharpeningMapper, ToolSharpening> implements IToolsSharpeningService { + // 濡傞渶鎵╁睍閫昏緫鍙湪姝ゆ坊鍔� +} diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsStocktakingBoundDetailServiceImpl.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsStocktakingBoundDetailServiceImpl.java new file mode 100644 index 0000000..d3e4149 --- /dev/null +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsStocktakingBoundDetailServiceImpl.java @@ -0,0 +1,39 @@ +package org.jeecg.modules.tms.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.jeecg.modules.tms.entity.ToolsStocktakingBoundDetail; +import org.jeecg.modules.tms.mapper.ToolsStocktakingBoundDetailMapper; +import org.jeecg.modules.tms.service.IToolsStocktakingBoundDetailService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; + +/** + * @Description: 鐩樼偣鍗曟槑缁� + * @Author: houjie + * @Date: 2025-05-16 + * @Version: V1.0 + */ +@Service +public class ToolsStocktakingBoundDetailServiceImpl extends ServiceImpl<ToolsStocktakingBoundDetailMapper, ToolsStocktakingBoundDetail> implements IToolsStocktakingBoundDetailService { + + @Autowired + private ToolsStocktakingBoundDetailMapper toolsStocktakingBoundDetailMapper; + + public IPage<ToolsStocktakingBoundDetail> selectByMainId(Page<ToolsStocktakingBoundDetail> page, Map<String, String[]> parameterMap) { + QueryWrapper<ToolsStocktakingBoundDetail> queryWrapper = Wrappers.query(); + + String[] stocktakingBoundIds = parameterMap.get("stocktakingBoundId"); + if (stocktakingBoundIds != null && stocktakingBoundIds.length > 0) { + queryWrapper.eq("t.stocktaking_bound_id", stocktakingBoundIds[0]); + } + return toolsStocktakingBoundDetailMapper.selectByMainId(page, queryWrapper); + } + +} diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsStocktakingBoundServiceImpl.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsStocktakingBoundServiceImpl.java new file mode 100644 index 0000000..1548e1d --- /dev/null +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsStocktakingBoundServiceImpl.java @@ -0,0 +1,168 @@ +package org.jeecg.modules.tms.service.impl; + + +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.apache.shiro.SecurityUtils; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.exception.JeecgBootException; +import org.jeecg.common.system.vo.LoginUser; +import org.jeecg.modules.flowable.apithird.business.entity.FlowMyBusiness; +import org.jeecg.modules.flowable.apithird.service.FlowCallBackServiceI; +import org.jeecg.modules.flowable.apithird.service.FlowCommonService; +import org.jeecg.modules.flowable.service.IFlowDefinitionService; +import org.jeecg.modules.flowable.service.IFlowTaskService; +import org.jeecg.modules.system.entity.SysUser; +import org.jeecg.modules.system.service.ISysUserService; +import org.jeecg.modules.tms.entity.BaseTools; +import org.jeecg.modules.tms.entity.ToolsStocktakingBound; +import org.jeecg.modules.tms.entity.ToolsStocktakingBoundDetail; +import org.jeecg.modules.tms.enums.OutBillStatus; +import org.jeecg.modules.tms.mapper.ToolsStocktakingBoundDetailMapper; +import org.jeecg.modules.tms.mapper.ToolsStocktakingBoundMapper; +import org.jeecg.modules.tms.service.IToolsStocktakingBoundService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.io.Serializable; +import java.util.*; + +/** + * @Description: 鐩樼偣鍗曡〃 + * @Author: jeecg-boot + * @Date: 2025-05-16 + * @Version: V1.0 + */ + +@Service("IToolsStocktakingBoundService") +public class ToolsStocktakingBoundServiceImpl extends ServiceImpl<ToolsStocktakingBoundMapper, ToolsStocktakingBound> implements IToolsStocktakingBoundService, FlowCallBackServiceI { + + + @Autowired + private ISysUserService systemUserService; + @Autowired + private ToolsStocktakingBoundMapper toolsStocktakingBoundMapper; + @Autowired + private ToolsStocktakingBoundDetailMapper toolsStocktakingBoundDetailMapper; + @Resource + private FlowCommonService flowCommonService; + @Resource + private IFlowDefinitionService flowDefinitionService; + @Autowired + private IFlowTaskService flowTaskService; + @Override + @Transactional(rollbackFor = Exception.class) + public void saveMain(ToolsStocktakingBound toolsStocktakingBound, List<ToolsStocktakingBoundDetail> toolsStocktakingBoundDetailList) { + toolsStocktakingBoundMapper.insert(toolsStocktakingBound); + if (toolsStocktakingBoundDetailList != null && toolsStocktakingBoundDetailList.size() > 0) { + for (ToolsStocktakingBoundDetail entity : toolsStocktakingBoundDetailList) { + //澶栭敭璁剧疆 + entity.setGoodsShelvesId(toolsStocktakingBound.getId()); + toolsStocktakingBoundDetailMapper.insert(entity); + } + } + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void updateMain(ToolsStocktakingBound toolsStocktakingBound, List<ToolsStocktakingBoundDetail> toolsStocktakingBoundDetailList) { + toolsStocktakingBoundMapper.updateById(toolsStocktakingBound); + + //1.鍏堝垹闄ゅ瓙琛ㄦ暟鎹� + toolsStocktakingBoundDetailMapper.deleteByMainId(toolsStocktakingBound.getId()); + + //2.瀛愯〃鏁版嵁閲嶆柊鎻掑叆 + if (toolsStocktakingBoundDetailList != null && toolsStocktakingBoundDetailList.size() > 0) { + for (ToolsStocktakingBoundDetail entity : toolsStocktakingBoundDetailList) { + //澶栭敭璁剧疆 + entity.setGoodsShelvesId(toolsStocktakingBound.getId()); + toolsStocktakingBoundDetailMapper.insert(entity); + } + } + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void delMain(String id) { + toolsStocktakingBoundDetailMapper.deleteByMainId(id); + toolsStocktakingBoundMapper.deleteById(id); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void delBatchMain(Collection<? extends Serializable> idList) { + for (Serializable id : idList) { + toolsStocktakingBoundDetailMapper.deleteByMainId(id.toString()); + toolsStocktakingBoundMapper.deleteById(id); + } + } + @Override + @Transactional(rollbackFor = Exception.class) + public boolean submintOrder(String id) { + + ToolsStocktakingBound toolsStocktakingBound = this.getById(id); + if (toolsStocktakingBound == null) { + return false; + } else { + toolsStocktakingBound.setReviewer(toolsStocktakingBound.getReviewer()); + //淇敼鐘舵�� +// toolsStocktakingBound.setApprovalStatus(OutBillStatus.SUBMITTED.getValue()); + flowCommonService.initActBusiness("鐩樼偣鍗曞彿:" + toolsStocktakingBound.getOrderCode() + ";鐩樼偣鍚嶇О: " + toolsStocktakingBound.getStocktakingName() + ";杩涜鐩樼偣", + toolsStocktakingBound.getId(), "IToolsStocktakingBoundService", "tools_stocktaking_bound", null); + Map<String, Object> variables = new HashMap<>(); + variables.put("dataId", toolsStocktakingBound.getId()); + if (StrUtil.isEmpty(toolsStocktakingBound.getReviewer())) { + variables.put("organization", "鏂板宸ュ叿鐩樼偣鍗曢粯璁ゅ惎鍔ㄦ祦绋�"); + variables.put("comment", "鏂板宸ュ叿鐩樼偣鍗曢粯璁ゅ惎鍔ㄦ祦绋�"); + } else { + variables.put("organization", toolsStocktakingBound.getRemark()); + variables.put("comment", toolsStocktakingBound.getRemark()); + } + variables.put("proofreading", true); + List<String> usernames = new ArrayList<>(); + usernames.add(toolsStocktakingBound.getReviewer()); + variables.put("NextAssignee", usernames); + Result result = flowDefinitionService.startProcessInstanceByKey("tools_stocktaking_bound", variables); + if (result != null) { + toolsStocktakingBound.setInventoryTime(new Date()); + toolsStocktakingBound.setApprovalStatus(OutBillStatus.SUBMITTED.getValue()); + //淇濆瓨宸ュ崟 + toolsStocktakingBoundMapper.updateById(toolsStocktakingBound); + return result.isSuccess(); + } + return true; + } + + + } + + + + + + @Override + public void afterFlowHandle(FlowMyBusiness business) { + business.getTaskNameId();//鎺ヤ笅鏉ュ鎵圭殑鑺傜偣 + business.getValues();//鍓嶇浼犺繘鏉ョ殑鍙傛暟 + business.getActStatus(); + } + + @Override + public Object getBusinessDataById(String dataId) { + return this.getById(dataId); + } + + @Override + public Map<String, Object> flowValuesOfTask(String taskNameId, Map<String, Object> values) { + return null; + } + + @Override + public List<String> flowCandidateUsernamesOfTask(String taskNameId, Map<String, Object> values) { + Object object = values.get("NextAssignee"); + return (List<String>) object; + } +} diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsStoreEarlyWarningServiceImpl.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsStoreEarlyWarningServiceImpl.java new file mode 100644 index 0000000..6d29a80 --- /dev/null +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsStoreEarlyWarningServiceImpl.java @@ -0,0 +1,18 @@ +package org.jeecg.modules.tms.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.jeecg.modules.tms.entity.ToolsStoreEarlyWarning; +import org.jeecg.modules.tms.mapper.ToolsStoreEarlyWarningMapper; +import org.jeecg.modules.tms.service.IToolsStoreEarlyWarningService; +import org.springframework.stereotype.Service; + +/** + * @Description: tools_store_early warning + * @Author: houjie + * @Date: 2025-05-16 + * @Version: V1.0 + */ +@Service +public class ToolsStoreEarlyWarningServiceImpl extends ServiceImpl<ToolsStoreEarlyWarningMapper, ToolsStoreEarlyWarning> implements IToolsStoreEarlyWarningService { + +} -- Gitblit v1.9.3