lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/OutboundOrderController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,338 @@ package org.jeecg.modules.tms.controller; import org.jeecg.common.system.query.QueryGenerator; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.extern.slf4j.Slf4j; import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.common.api.vo.Result; import org.jeecg.modules.tms.entity.dto.OutboundOrderAndDetailDto; import org.jeecg.modules.tms.entity.vo.OutboundDetailVo; import org.jeecg.modules.tms.enums.OutBillStatus; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.ModelAndView; import java.util.Arrays; 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.service.IOutboundOrderService; import org.jeecg.modules.tms.service.IOutboundDetailService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.jeecg.common.aspect.annotation.AutoLog; import org.apache.shiro.SecurityUtils; import org.jeecg.common.system.vo.LoginUser; 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.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; import java.io.IOException; import java.util.List; import java.util.Map; import java.util.stream.Collectors; /** * @Description: tms_outbound_order * @Author: jeecg-boot * @Date: 2025-05-16 * @Version: V1.0 */ @Api(tags="tms_outbound_order") @RestController @RequestMapping("/tms/outboundOrder") @Slf4j public class OutboundOrderController extends JeecgController<OutboundOrder, IOutboundOrderService> { @Autowired private IOutboundOrderService outboundOrderService; @Autowired private IOutboundDetailService outboundDetailService; /*---------------------------------主表å¤ç-begin-------------------------------------*/ /** * å页å表æ¥è¯¢ * @param outboundOrder * @param pageNo * @param pageSize * @param req * @return */ //@AutoLog(value = "tms_outbound_order-å页å表æ¥è¯¢") @ApiOperation(value="tms_outbound_order-å页å表æ¥è¯¢", notes="tms_outbound_order-å页å表æ¥è¯¢") @GetMapping(value = "/list") public Result<IPage<OutboundOrder>> queryPageList(OutboundOrder outboundOrder, @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, HttpServletRequest req) { Map<String, String[]> parameterMap = req.getParameterMap(); QueryWrapper<OutboundOrder> queryWrapper = QueryGenerator.initQueryWrapper(outboundOrder, parameterMap); Page<OutboundOrder> page = new Page<OutboundOrder>(pageNo, pageSize); IPage<OutboundOrder> pageList = outboundOrderService.queryPageList(page, parameterMap); return Result.OK(pageList); } /** * æ·»å * @param outboundOrder * @return */ @AutoLog(value = "tms_outbound_order-æ·»å ") @ApiOperation(value="tms_outbound_order-æ·»å ", notes="tms_outbound_order-æ·»å ") //@RequiresPermissions("org.jeecg.modules:tms_outbound_order:add") @PostMapping(value = "/add") public Result<String> add(@RequestBody OutboundOrder outboundOrder) { outboundOrderService.save(outboundOrder); return Result.OK("æ·»å æåï¼"); } @AutoLog(value = "tms_outbound_order-æ·»å åºåºç³è¯·å主表åæç»ä¿¡æ¯") @ApiOperation(value="tms_outbound_order-æ·»å åºåºç³è¯·å主表åæç»ä¿¡æ¯", notes="tms_outbound_order-æ·»å åºåºç³è¯·å主表åæç»ä¿¡æ¯") @PostMapping(value = "/addTotal") public Result<String> addTotal(@RequestBody OutboundOrderAndDetailDto outboundOrder) { outboundOrderService.addTotal(outboundOrder); return Result.OK("æ·»å æåï¼"); } @AutoLog(value = "tms_outbound_order-ç¼è¾åºåºç³è¯·å主表åæç»ä¿¡æ¯") @ApiOperation(value="tms_outbound_order-ç¼è¾åºåºç³è¯·å主表åæç»ä¿¡æ¯", notes="tms_outbound_order-ç¼è¾åºåºç³è¯·å主表åæç»ä¿¡æ¯") //@RequiresPermissions("org.jeecg.modules:tms_outbound_order:edit") @RequestMapping(value = "/editTotal", method = {RequestMethod.PUT,RequestMethod.POST}) public Result<String> editTotal(@RequestBody OutboundOrderAndDetailDto outboundOrder) { outboundOrderService.editTotal(outboundOrder); return Result.OK("ç¼è¾æåï¼"); } /** * ç¼è¾ * @param outboundOrder * @return */ @AutoLog(value = "tms_outbound_order-ç¼è¾") @ApiOperation(value="tms_outbound_order-ç¼è¾", notes="tms_outbound_order-ç¼è¾") //@RequiresPermissions("org.jeecg.modules:tms_outbound_order:edit") @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) public Result<String> edit(@RequestBody OutboundOrder outboundOrder) { outboundOrderService.updateById(outboundOrder); return Result.OK("ç¼è¾æå!"); } @AutoLog(value = "tms_outbound_order-æäº¤åºåºç³è¯·å") @ApiOperation(value="tms_outbound_order-æäº¤åºåºç³è¯·å", notes="tms_outbound_order-æäº¤åºåºç³è¯·å") @GetMapping(value = "/submit") public Result<String> submit(@RequestParam(name="id") String id) { OutboundOrder order = new OutboundOrder(); order.setId(id); order.setOrderStatus(OutBillStatus.SUBMITTED.getValue()); outboundOrderService.updateById(order); //å¼å¯æµç¨ return Result.OK("æäº¤æå!"); } /** * éè¿idå é¤ * @param id * @return */ @AutoLog(value = "tms_outbound_order-éè¿idå é¤") @ApiOperation(value="tms_outbound_order-éè¿idå é¤", notes="tms_outbound_order-éè¿idå é¤") //@RequiresPermissions("org.jeecg.modules:tms_outbound_order:delete") @DeleteMapping(value = "/delete") public Result<String> delete(@RequestParam(name="id",required=true) String id) { outboundOrderService.delMain(id); return Result.OK("å 餿å!"); } /** * æ¹éå é¤ * @param ids * @return */ @AutoLog(value = "tms_outbound_order-æ¹éå é¤") @ApiOperation(value="tms_outbound_order-æ¹éå é¤", notes="tms_outbound_order-æ¹éå é¤") //@RequiresPermissions("org.jeecg.modules:tms_outbound_order:deleteBatch") @DeleteMapping(value = "/deleteBatch") public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) { this.outboundOrderService.delBatchMain(Arrays.asList(ids.split(","))); return Result.OK("æ¹éå 餿å!"); } /** * å¯¼åº * @return */ //@RequiresPermissions("org.jeecg.modules:tms_outbound_order:exportXls") @RequestMapping(value = "/exportXls") public ModelAndView exportXls(HttpServletRequest request, OutboundOrder outboundOrder) { return super.exportXls(request, outboundOrder, OutboundOrder.class, "tms_outbound_order"); } /** * å¯¼å ¥ * @return */ //@RequiresPermissions("org.jeecg.modules:tms_outbound_order:importExcel") @RequestMapping(value = "/importExcel", method = RequestMethod.POST) public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) { return super.importExcel(request, response, OutboundOrder.class); } /*---------------------------------主表å¤ç-end-------------------------------------*/ /*--------------------------------å表å¤ç-åºåºç³è¯·åæç»-begin----------------------------------------------*/ /** * éè¿ä¸»è¡¨IDæ¥è¯¢ * @return */ //@AutoLog(value = "åºåºç³è¯·åæç»-éè¿ä¸»è¡¨IDæ¥è¯¢") @ApiOperation(value="åºåºç³è¯·åæç»-éè¿ä¸»è¡¨IDæ¥è¯¢", notes="åºåºç³è¯·åæç»-éè¿ä¸»è¡¨IDæ¥è¯¢") @GetMapping(value = "/listOutboundDetailByMainId") public Result<IPage<OutboundDetailVo>> listOutboundDetailByMainId(OutboundDetail outboundDetail, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) { Map<String, String[]> parameterMap = req.getParameterMap(); QueryWrapper<OutboundDetail> queryWrapper = QueryGenerator.initQueryWrapper(outboundDetail, parameterMap); Page<OutboundDetail> page = new Page<OutboundDetail>(pageNo, pageSize); IPage<OutboundDetailVo> pageList = outboundDetailService.queryPageList(page, parameterMap); return Result.OK(pageList); } /** * æ·»å * @param outboundDetail * @return */ @AutoLog(value = "åºåºç³è¯·åæç»-æ·»å ") @ApiOperation(value="åºåºç³è¯·åæç»-æ·»å ", notes="åºåºç³è¯·åæç»-æ·»å ") @PostMapping(value = "/addOutboundDetail") public Result<String> addOutboundDetail(@RequestBody OutboundDetail outboundDetail) { outboundDetailService.save(outboundDetail); return Result.OK("æ·»å æåï¼"); } /** * ç¼è¾ * @param outboundDetail * @return */ @AutoLog(value = "åºåºç³è¯·åæç»-ç¼è¾") @ApiOperation(value="åºåºç³è¯·åæç»-ç¼è¾", notes="åºåºç³è¯·åæç»-ç¼è¾") @RequestMapping(value = "/editOutboundDetail", method = {RequestMethod.PUT,RequestMethod.POST}) public Result<String> editOutboundDetail(@RequestBody OutboundDetail outboundDetail) { outboundDetailService.updateById(outboundDetail); return Result.OK("ç¼è¾æå!"); } /** * éè¿idå é¤ * @param id * @return */ @AutoLog(value = "åºåºç³è¯·åæç»-éè¿idå é¤") @ApiOperation(value="åºåºç³è¯·åæç»-éè¿idå é¤", notes="åºåºç³è¯·åæç»-éè¿idå é¤") @DeleteMapping(value = "/deleteOutboundDetail") public Result<String> deleteOutboundDetail(@RequestParam(name="id",required=true) String id) { outboundDetailService.removeById(id); return Result.OK("å 餿å!"); } /** * æ¹éå é¤ * @param ids * @return */ @AutoLog(value = "åºåºç³è¯·åæç»-æ¹éå é¤") @ApiOperation(value="åºåºç³è¯·åæç»-æ¹éå é¤", notes="åºåºç³è¯·åæç»-æ¹éå é¤") @DeleteMapping(value = "/deleteBatchOutboundDetail") public Result<String> deleteBatchOutboundDetail(@RequestParam(name="ids",required=true) String ids) { this.outboundDetailService.removeByIds(Arrays.asList(ids.split(","))); return Result.OK("æ¹éå 餿å!"); } /** * å¯¼åº * @return */ @RequestMapping(value = "/exportOutboundDetail") public ModelAndView exportOutboundDetail(HttpServletRequest request, OutboundDetail outboundDetail) { // Step.1 ç»è£ æ¥è¯¢æ¡ä»¶ QueryWrapper<OutboundDetail> queryWrapper = QueryGenerator.initQueryWrapper(outboundDetail, request.getParameterMap()); LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); // Step.2 è·åå¯¼åºæ°æ® List<OutboundDetail> pageList = outboundDetailService.list(queryWrapper); List<OutboundDetail> 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()); //æ¤å¤è®¾ç½®çfilenameæ æ,å端ä¼éæ´æ°è®¾ç½®ä¸ä¸ 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 = "/importOutboundDetail/{mainId}") public Result<?> importOutboundDetail(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<OutboundDetail> list = ExcelImportUtil.importExcel(file.getInputStream(), OutboundDetail.class, params); for (OutboundDetail temp : list) { temp.setOutStorehouseId(mainId); } long start = System.currentTimeMillis(); outboundDetailService.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("æä»¶å¯¼å ¥å¤±è´¥ï¼"); } /*--------------------------------å表å¤ç-åºåºç³è¯·åæç»-end----------------------------------------------*/ } lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/OutboundDetail.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,93 @@ package org.jeecg.modules.tms.entity; import java.io.Serializable; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableLogic; import org.jeecg.common.aspect.annotation.Dict; import lombok.Data; import com.fasterxml.jackson.annotation.JsonFormat; import org.springframework.format.annotation.DateTimeFormat; import org.jeecgframework.poi.excel.annotation.Excel; import java.util.Date; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import java.io.UnsupportedEncodingException; /** * @Description: åºåºç³è¯·åæç» * @Author: jeecg-boot * @Date: 2025-05-16 * @Version: V1.0 */ @Data @TableName("tms_outbound_detail") @ApiModel(value="tms_outbound_detail对象", description="åºåºç³è¯·åæç»") public class OutboundDetail implements Serializable { private static final long serialVersionUID = 1L; /**主é®*/ @TableId(type = IdType.ASSIGN_ID) @ApiModelProperty(value = "主é®") private String id; /**åºåºåå·*/ @ApiModelProperty(value = "åºåºåå·") private String outStorehouseId; /**åå ·ç¼ç */ @Excel(name = "åå ·ç¼ç ", width = 15) @ApiModelProperty(value = "åå ·ç¼ç ") private String toolCode; /**åå ·ç¼å·*/ @Excel(name = "åå ·ç¼å·", width = 15) @ApiModelProperty(value = "åå ·ç¼å·") private String toolId; /**ç³è¯·åºåºæ°é*/ @Excel(name = "ç³è¯·åºåºæ°é", width = 15) @ApiModelProperty(value = "ç³è¯·åºåºæ°é") private java.math.BigDecimal outboundQuantity; /**å®é åºåºæ°é*/ @Excel(name = "å®é åºåºæ°é", width = 15) @ApiModelProperty(value = "å®é åºåºæ°é") private java.math.BigDecimal outActualCount; /**åºåºæ¶é´*/ @Excel(name = "åºåºæ¶é´", width = 15, format = "yyyy-MM-dd HH:mm") @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm") @ApiModelProperty(value = "åºåºæ¶é´") private Date outboundTime; /**ä»åº*/ @Excel(name = "ä»åº", width = 15) @ApiModelProperty(value = "ä»åº") @Dict(dictTable = "tms_warehouse", dicCode = "id", dicText = "warehouse_name") private String storageLocation; /**åºåºåºä½*/ @Excel(name = "åºåºåºä½", width = 15) @ApiModelProperty(value = "åºåºåºä½") private String outboundLocation; /**åºåºç¶æ;1.æªåºåºï¼2.é¨ååºåºï¼3.åºåºå®æ*/ @Excel(name = "åºåºç¶æ;1.æªåºåºï¼2.é¨ååºåºï¼3.åºåºå®æ", width = 15) @ApiModelProperty(value = "åºåºç¶æ;1.æªåºåºï¼2.é¨ååºåºï¼3.åºåºå®æ") @Dict(dicCode = "out_storehouse_status") private Integer status; /**ç§æ·å·*/ @Excel(name = "ç§æ·å·", width = 15) @ApiModelProperty(value = "ç§æ·å·") private String tenantId; /**æä½å*/ @ApiModelProperty(value = "æä½å") private String createBy; /**å建æ¶é´*/ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm") @ApiModelProperty(value = "å建æ¶é´") private Date createTime; /**æ´æ°äºº*/ @ApiModelProperty(value = "æ´æ°äºº") private String updateBy; /**æ´æ°æ¶é´*/ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm") @ApiModelProperty(value = "æ´æ°æ¶é´") private Date updateTime; } lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/OutboundOrder.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,121 @@ package org.jeecg.modules.tms.entity; import java.io.Serializable; import java.io.UnsupportedEncodingException; import java.util.Date; import com.baomidou.mybatisplus.annotation.*; import org.jeecgframework.poi.excel.annotation.Excel; import lombok.Data; import com.fasterxml.jackson.annotation.JsonFormat; import org.springframework.format.annotation.DateTimeFormat; import org.jeecg.common.aspect.annotation.Dict; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; /** * @Description: tms_outbound_order * @Author: jeecg-boot * @Date: 2025-05-16 * @Version: V1.0 */ @Data @TableName("tms_outbound_order") @ApiModel(value="tms_outbound_order对象", description="tms_outbound_order") public class OutboundOrder implements Serializable { private static final long serialVersionUID = 1L; /**主é®id*/ @TableId(type = IdType.ASSIGN_ID) @ApiModelProperty(value = "主é®id") private String id; /**åºåºåç¼å·*/ @Excel(name = "åºåºåç¼å·", width = 15) @ApiModelProperty(value = "åºåºåç¼å·") private String outNum; /**åºåºç±»å*/ @Excel(name = "åºåºç±»å", width = 15, dicCode = "out_storehouse_type") @Dict(dicCode = "out_storehouse_type") @ApiModelProperty(value = "åºåºç±»å") private String outStorehouseType; /**æ¯å¦å½è¿;1æªå½è¿ï¼é»è®¤ï¼ï¼2.å·²å½è¿*/ @Excel(name = "æ¯å¦å½è¿;1æªå½è¿ï¼é»è®¤ï¼ï¼2.å·²å½è¿", width = 15) @ApiModelProperty(value = "æ¯å¦å½è¿;1æªå½è¿ï¼é»è®¤ï¼ï¼2.å·²å½è¿") private Integer isReturn; /**ç»æäºº*/ @Excel(name = "ç»æäºº", width = 15, dictTable = "sys_user", dicText = "realname", dicCode = "id") @Dict(dictTable = "sys_user", dicText = "realname", dicCode = "id") @ApiModelProperty(value = "ç»æäºº") private String handler; /**å®¡æ ¸äºº*/ @Excel(name = "å®¡æ ¸äºº", width = 15, dictTable = "sys_user", dicText = "realname", dicCode = "id") @Dict(dictTable = "sys_user", dicText = "realname", dicCode = "id") @ApiModelProperty(value = "å®¡æ ¸äºº") private String reviewer; /**ååç¶æ*/ @Excel(name = "ååç¶æ", width = 15) @ApiModelProperty(value = "ååç¶æ") @Dict(dicCode = "out_bill_status") private String orderStatus; /**åºåºç¶æ*/ @Excel(name = "åºåºç¶æ", width = 15) @ApiModelProperty(value = "åºåºç¶æ") @Dict(dicCode = "out_storehouse_status") private String outStatus; /**å®¡æ ¸æ¶é´*/ @Excel(name = "å®¡æ ¸æ¶é´", width = 15, format = "yyyy-MM-dd HH:mm") @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm") @ApiModelProperty(value = "å®¡æ ¸æ¶é´") private Date auditDate; /**å¼å§æ¶é´*/ @TableField(exist = false) @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm") @ApiModelProperty(value = "å¼å§æ¶é´") private Date startTime; /**ç»ææ¶é´*/ @TableField(exist = false) @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm") @ApiModelProperty(value = "ç»ææ¶é´") private Date endTime; /**å®¡æ ¸æè§*/ @Excel(name = "å®¡æ ¸æè§", width = 15) @ApiModelProperty(value = "å®¡æ ¸æè§") private String approvalOpinion; /**é¢ç¨äºç±*/ @Excel(name = "é¢ç¨äºç±", width = 15) @ApiModelProperty(value = "é¢ç¨äºç±") private String subjectMatter; /**åºåºæ¶é´*/ @Excel(name = "åºåºæ¶é´", width = 15, format = "yyyy-MM-dd HH:mm") @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm") @ApiModelProperty(value = "åºåºæ¶é´") private Date outboundTime; /**夿³¨*/ @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 HH:mm") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm") @ApiModelProperty(value = "å建æ¶é´") private Date createTime; /**æ´æ°äºº*/ @ApiModelProperty(value = "æ´æ°äºº") private String updateBy; /**æ´æ°æ¶é´*/ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm") @ApiModelProperty(value = "æ´æ°æ¶é´") private Date updateTime; } lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/dto/OutboundOrderAndDetailDto.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,77 @@ package org.jeecg.modules.tms.entity.dto; import com.baomidou.mybatisplus.annotation.IdType; 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.experimental.Accessors; import org.jeecg.common.aspect.annotation.Dict; import org.jeecg.modules.tms.entity.OutboundDetail; 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: tms_outbound_order * @Author: jeecg-boot * @Date: 2025-05-16 * @Version: V1.0 */ @Data @Accessors(chain = true) @ApiModel(value="tms_outbound_order对象", description="tms_outbound_order") public class OutboundOrderAndDetailDto implements Serializable { private static final long serialVersionUID = 1L; /**主é®id*/ @ApiModelProperty(value = "主é®id") private String id; /**åºåºåç¼å·*/ @ApiModelProperty(value = "åºåºåç¼å·") private String outNum; /**åºåºç±»å*/ @Dict(dicCode = "out_storehouse_type") @ApiModelProperty(value = "åºåºç±»å") private String outStorehouseType; /**æ¯å¦å½è¿;1æªå½è¿ï¼é»è®¤ï¼ï¼2.å·²å½è¿*/ @ApiModelProperty(value = "æ¯å¦å½è¿;1æªå½è¿ï¼é»è®¤ï¼ï¼2.å·²å½è¿") private Integer isReturn; /**ç»æäºº*/ @ApiModelProperty(value = "ç»æäºº") private String handler; /**å®¡æ ¸äºº*/ @Dict(dictTable = "sys_user", dicText = "realname", dicCode = "username") @ApiModelProperty(value = "å®¡æ ¸äºº") private String reviewer; /**ååç¶æ*/ @ApiModelProperty(value = "ååç¶æ") private String orderStatus; /**å®¡æ ¸æ¶é´*/ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") @DateTimeFormat(pattern="yyyy-MM-dd") @ApiModelProperty(value = "å®¡æ ¸æ¶é´") private Date auditDate; /**å®¡æ ¸æè§*/ @ApiModelProperty(value = "å®¡æ ¸æè§") private String approvalOpinion; /**é¢ç¨äºç±*/ @ApiModelProperty(value = "é¢ç¨äºç±") private String subjectMatter; /**åºåºæ¶é´*/ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm") @ApiModelProperty(value = "åºåºæ¶é´") private Date outboundTime; /**夿³¨*/ @ApiModelProperty(value = "夿³¨") private String remark; /**åºåºç³è¯·åæç»*/ @ApiModelProperty(value = "åºåºç³è¯·åæç»") private List<OutboundDetail> outboundDetailList; } lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/OutboundDetailVo.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,96 @@ 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.common.aspect.annotation.Dict; import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; import java.util.Date; /** * @Description: åºåºç³è¯·åæç» * @Author: jeecg-boot * @Date: 2025-05-16 * @Version: V1.0 */ @Data @ApiModel(value="åºåºç³è¯·åæç»é¡µé¢å±ç¤ºå¯¹è±¡å°è£ ", description="åºåºç³è¯·åæç»é¡µé¢å±ç¤ºå¯¹è±¡å°è£ ") public class OutboundDetailVo implements Serializable { private static final long serialVersionUID = 1L; /**主é®*/ @ApiModelProperty(value = "主é®") private String id; /**åºåºåå·*/ @ApiModelProperty(value = "åºåºåå·") private String outStorehouseId; /**åå ·ç¼ç */ @ApiModelProperty(value = "åå ·ç¼ç (tms_base_tool表主é®id)") private String toolCode; /**åå ·ç¼å·*/ @ApiModelProperty(value = "åå ·ç¼å·") private String toolId; /**åå ·ç¼ç */ @ApiModelProperty(value = "åå ·ç¼ç (tms_base_tool表tool_codeåæ®µ)") private String toolNum; /**ç³è¯·åºåºæ°é*/ @ApiModelProperty(value = "ç³è¯·åºåºæ°é") private java.math.BigDecimal outboundQuantity; /**å®é åºåºæ°é*/ @ApiModelProperty(value = "å®é åºåºæ°é") private java.math.BigDecimal outActualCount; /**åºåºæ¶é´*/ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm") @ApiModelProperty(value = "åºåºæ¶é´") private Date outboundTime; /**ä»åº*/ @ApiModelProperty(value = "ä»åº") @Dict(dictTable = "tms_warehouse", dicCode = "id", dicText = "warehouse_name") private String storageLocation; /**åºåºåºä½*/ @ApiModelProperty(value = "åºåºåºä½") private String outboundLocation; /**åºåºç¶æ;1.æªåºåºï¼2.é¨ååºåºï¼3.åºåºå®æ*/ @ApiModelProperty(value = "åºåºç¶æ;1.æªåºåºï¼2.é¨ååºåºï¼3.åºåºå®æ") @Dict(dicCode = "out_storehouse_status") private Integer status; /**æä½å*/ @ApiModelProperty(value = "æä½å") private String createBy; /**å建æ¶é´*/ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm") @ApiModelProperty(value = "å建æ¶é´") private Date createTime; /**å·¥å ·ç±»å*/ @Dict(dicCode = "application_type") @ApiModelProperty(value = "å·¥å ·ç±»å") private String applicationType; /**䏿åç§°*/ @ApiModelProperty(value = "䏿åç§°") private String chineseName; /**åå·/å¾å·*/ @ApiModelProperty(value = "åå·/å¾å·") private String toolModel; /**åå ·ææ*/ @ApiModelProperty(value = "åå ·ææ") private String toolMaterial; /**é¶ä»¶ææ*/ @ApiModelProperty(value = "é¶ä»¶ææ") private String partMaterial; /**åå®¶*/ @ApiModelProperty(value = "åå®¶") private String supplierId; /**å¯ç¨åºåæ°é*/ @ApiModelProperty(value = "å¯ç¨åºåæ°é") private java.math.BigDecimal quantity; /**ä»åºåç§°*/ @ApiModelProperty(value = "ä»åºåç§°") private String warehouseName; /**å°è´¦æç»è¡¨ä¸»é®id*/ @ApiModelProperty(value = "å°è´¦æç»è¡¨ä¸»é®id,å·¥å ·éæ©æ¶å»éç¨") private String toolLedgerDetailId; } lxzn-module-tms/src/main/java/org/jeecg/modules/tms/enums/OutBillStatus.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,76 @@ package org.jeecg.modules.tms.enums; import java.util.Objects; /** * åºåºåç¶ææä¸¾ç±» */ public enum OutBillStatus { /** * èç¨¿ç¶æï¼å¼ä¸º1 */ DRAFT("1", "è稿"), /** * å·²æäº¤ç¶æï¼å¼ä¸º2 */ SUBMITTED("2", "å·²æäº¤"), /** * 审æ¹éè¿ç¶æï¼å¼ä¸º3 */ APPROVED("3", "审æ¹éè¿"), /** * 审æ¹é©³åç¶æï¼å¼ä¸º4 */ REJECTED("4", "审æ¹é©³å"); private final String value; private final String description; /** * æé æ¹æ³ * * @param value ç¶æå¼ * @param description ç¶ææè¿° */ OutBillStatus(String value, String description) { this.value = value; this.description = description; } /** * è·åç¶æå¼ * * @return ç¶æå¼ */ public String getValue() { return value; } /** * è·åç¶ææè¿° * * @return ç¶ææè¿° */ public String getDescription() { return description; } /** * æ ¹æ®ç¶æå¼è·å对åºçæä¸¾å®ä¾ * * @param value ç¶æå¼ * @return 对åºçæä¸¾å®ä¾ï¼å¦ææ¾ä¸å°å¹é çå¼åè¿ånull */ public static OutBillStatus fromValue(String value) { for (OutBillStatus status : values()) { if (Objects.equals(status.getValue(), value)) { return status; } } return null; } } lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/OutboundDetailMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,41 @@ package org.jeecg.modules.tms.mapper; import java.util.List; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Constants; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.jeecg.modules.tms.entity.OutboundDetail; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.jeecg.modules.tms.entity.vo.OutboundDetailVo; /** * @Description: åºåºç³è¯·åæç» * @Author: jeecg-boot * @Date: 2025-05-16 * @Version: V1.0 */ public interface OutboundDetailMapper extends BaseMapper<OutboundDetail> { /** * éè¿ä¸»è¡¨idå é¤åè¡¨æ°æ® * * @param mainId 主表id * @return boolean */ public boolean deleteByMainId(@Param("mainId") String mainId); /** * éè¿ä¸»è¡¨idæ¥è¯¢åè¡¨æ°æ® * * @param mainId 主表id * @return List<OutboundDetail> */ public List<OutboundDetail> selectByMainId(@Param("mainId") String mainId); IPage<OutboundDetailVo> queryPageList(Page<OutboundDetail> page, @Param(Constants.WRAPPER) Wrapper<OutboundDetail> queryWrapper); } lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/OutboundOrderMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,21 @@ package org.jeecg.modules.tms.mapper; import com.baomidou.mybatisplus.core.conditions.Wrapper; 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.OutboundOrder; import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** * @Description: tms_outbound_order * @Author: jeecg-boot * @Date: 2025-05-16 * @Version: V1.0 */ public interface OutboundOrderMapper extends BaseMapper<OutboundOrder> { IPage<OutboundOrder> queryPageList(Page<OutboundOrder> page, @Param(Constants.WRAPPER) Wrapper<OutboundOrder> queryWrapper); } lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/OutboundDetailMapper.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,101 @@ <?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.OutboundDetailMapper"> <delete id="deleteByMainId" parameterType="java.lang.String"> DELETE FROM tms_outbound_detail WHERE out_storehouse_id = #{mainId} </delete> <select id="selectByMainId" parameterType="java.lang.String" resultType="org.jeecg.modules.tms.entity.OutboundDetail"> SELECT * FROM tms_outbound_detail WHERE out_storehouse_id = #{mainId} </select> <select id="queryPageList" resultType="org.jeecg.modules.tms.entity.vo.OutboundDetailVo"> SELECT t1.id, t1.out_storehouse_id outStorehouseId, t1.tool_code toolCode, t1.tool_id toolId, t2.tool_code toolNum, t1.outbound_quantity outboundQuantity, t1.out_actual_count outActualCount, t1.outbound_time outboundTime, t1.storage_location storageLocation, t1.outbound_location outboundLocation, t1.status, t1.create_by createBy, t1.create_time createTime, t2.chinese_name chineseName, t2.tool_model toolModel, t2.parama_table_name paramaTableName, t3.application_type applicationType, t3.supplier_id supplierId, t11.id toolLedgerDetailId, t11.quantity, ISNULL(t12.warehouse_id, '') + '/' + ISNULL(t12.warehouse_name, '') warehouseName, <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_outbound_detail t1 LEFT JOIN tms_base_tools t2 on t1.tool_code = t2.id LEFT JOIN tms_tools_config_property t3 on t3.tool_code = t2.id LEFT JOIN tms_tool_ledger_detail t11 on t1.tool_code = t11.tool_code and t1.tool_id = t11.tool_id LEFT JOIN tms_warehouse t12 on t1.storage_location = t12.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> lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/OutboundOrderMapper.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,25 @@ <?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.OutboundOrderMapper"> <select id="queryPageList" resultType="org.jeecg.modules.tms.entity.OutboundOrder"> SELECT t.id, t.out_num outNum, t.out_storehouse_type outStorehouseType, t.is_return isReturn, t.handler, t.reviewer, t.order_status orderStatus, t.out_status outStatus, t.audit_date auditDate, t.approval_opinion approvalOpinion, t.subject_matter subjectMatter, t.outbound_time outboundTime, t.remark, t.create_by createBy, t.create_time createTime FROM tms_outbound_order t ${ew.customSqlSegment} </select> </mapper> lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IOutboundDetailService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,29 @@ package org.jeecg.modules.tms.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.jeecg.modules.tms.entity.OutboundDetail; import com.baomidou.mybatisplus.extension.service.IService; import org.jeecg.modules.tms.entity.vo.OutboundDetailVo; import java.util.List; import java.util.Map; /** * @Description: åºåºç³è¯·åæç» * @Author: jeecg-boot * @Date: 2025-05-16 * @Version: V1.0 */ public interface IOutboundDetailService extends IService<OutboundDetail> { /** * éè¿ä¸»è¡¨idæ¥è¯¢åè¡¨æ°æ® * * @param mainId * @return List<OutboundDetail> */ public List<OutboundDetail> selectByMainId(String mainId); IPage<OutboundDetailVo> queryPageList(Page<OutboundDetail> page, Map<String, String[]> parameterMap); } lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IOutboundOrderService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,43 @@ package org.jeecg.modules.tms.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.jeecg.modules.tms.entity.OutboundDetail; import org.jeecg.modules.tms.entity.OutboundOrder; import com.baomidou.mybatisplus.extension.service.IService; import org.jeecg.modules.tms.entity.dto.OutboundOrderAndDetailDto; import org.springframework.beans.factory.annotation.Autowired; import java.io.Serializable; import java.util.Collection; import java.util.List; import java.util.Map; /** * @Description: tms_outbound_order * @Author: jeecg-boot * @Date: 2025-05-16 * @Version: V1.0 */ public interface IOutboundOrderService extends IService<OutboundOrder> { /** * å é¤ä¸å¯¹å¤ * * @param id */ public void delMain (String id); /** * æ¹éå é¤ä¸å¯¹å¤ * * @param idList */ public void delBatchMain (Collection<? extends Serializable> idList); void addTotal(OutboundOrderAndDetailDto outboundOrder); IPage<OutboundOrder> queryPageList(Page<OutboundOrder> page, Map<String, String[]> parameterMap); void editTotal(OutboundOrderAndDetailDto outboundOrder); } lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/OutboundDetailServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,44 @@ 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.vo.OutboundDetailVo; import org.jeecg.modules.tms.mapper.OutboundDetailMapper; import org.jeecg.modules.tms.service.IOutboundDetailService; import org.springframework.stereotype.Service; import java.util.List; import java.util.Map; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; /** * @Description: åºåºç³è¯·åæç» * @Author: jeecg-boot * @Date: 2025-05-16 * @Version: V1.0 */ @Service public class OutboundDetailServiceImpl extends ServiceImpl<OutboundDetailMapper, OutboundDetail> implements IOutboundDetailService { @Autowired private OutboundDetailMapper outboundDetailMapper; @Override public List<OutboundDetail> selectByMainId(String mainId) { return outboundDetailMapper.selectByMainId(mainId); } @Override public IPage<OutboundDetailVo> queryPageList(Page<OutboundDetail> page, Map<String, String[]> parameterMap) { QueryWrapper<OutboundDetail> queryWrapper = Wrappers.query(); String[] outStorehouseIds = parameterMap.get("outStorehouseId"); if (outStorehouseIds != null && outStorehouseIds.length > 0) { queryWrapper.eq("t1.out_storehouse_id", outStorehouseIds[0]); } return this.baseMapper.queryPageList(page, queryWrapper); } } lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/OutboundOrderServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,136 @@ package org.jeecg.modules.tms.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollectionUtil; 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.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.shiro.SecurityUtils; import org.apache.shiro.subject.Subject; import org.jeecg.common.system.vo.LoginUser; import org.jeecg.modules.system.service.ISysBusinessCodeRuleService; import org.jeecg.modules.tms.entity.OutboundOrder; import org.jeecg.modules.tms.entity.OutboundDetail; import org.jeecg.modules.tms.entity.dto.OutboundOrderAndDetailDto; import org.jeecg.modules.tms.enums.OutBillStatus; import org.jeecg.modules.tms.mapper.OutboundDetailMapper; import org.jeecg.modules.tms.mapper.OutboundOrderMapper; import org.jeecg.modules.tms.service.IOutboundDetailService; import org.jeecg.modules.tms.service.IOutboundOrderService; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import java.io.Serializable; import java.util.List; import java.util.Collection; import java.util.Map; import java.util.Objects; /** * @Description: tms_outbound_order * @Author: jeecg-boot * @Date: 2025-05-16 * @Version: V1.0 */ @Service public class OutboundOrderServiceImpl extends ServiceImpl<OutboundOrderMapper, OutboundOrder> implements IOutboundOrderService { @Autowired private IOutboundDetailService outboundDetailService; @Autowired private ISysBusinessCodeRuleService businessCodeRuleService; @Autowired private OutboundOrderMapper outboundOrderMapper; @Autowired private OutboundDetailMapper outboundDetailMapper; @Override @Transactional(rollbackFor = Exception.class) public void delMain(String id) { outboundDetailMapper.deleteByMainId(id); outboundOrderMapper.deleteById(id); } @Override @Transactional(rollbackFor = Exception.class) public void delBatchMain(Collection<? extends Serializable> idList) { for(Serializable id:idList) { outboundDetailMapper.deleteByMainId(id.toString()); outboundOrderMapper.deleteById(id); } } @Override @Transactional(rollbackFor = Exception.class) public void addTotal(OutboundOrderAndDetailDto outboundOrder) { OutboundOrder order = BeanUtil.copyProperties(outboundOrder, OutboundOrder.class); order.setHandler(Objects.requireNonNull(getCurrentUser()).getId()); order.setOutNum(businessCodeRuleService.generateBusinessCodeSeq("outBoundOrder")); order.setOrderStatus(OutBillStatus.DRAFT.getValue()); save(order); List<OutboundDetail> detailList = CollectionUtil.newArrayList(); outboundOrder.getOutboundDetailList().forEach(item->{ item.setOutStorehouseId(order.getId()); detailList.add(item); }); outboundDetailService.saveBatch(detailList); } @Override public IPage<OutboundOrder> queryPageList(Page<OutboundOrder> page, Map<String, String[]> parameterMap) { QueryWrapper<OutboundOrder> queryWrapper = Wrappers.query(); String[] outNums = parameterMap.get("outNum"); if (outNums != null && outNums.length > 0) { queryWrapper.like("t.out_num", outNums[0]); } String[] outStorehouseTypes = parameterMap.get("outStorehouseType"); if (outStorehouseTypes != null && outStorehouseTypes.length > 0) { queryWrapper.eq("t.out_storehouse_type", outStorehouseTypes[0]); } String[] statuses = parameterMap.get("orderStatus"); if (statuses != null && statuses.length > 0) { queryWrapper.eq("t.order_status", statuses[0]); } String[] startTimes = parameterMap.get("startTime"); if (startTimes != null && startTimes.length > 0) { queryWrapper.ge("t.create_time", startTimes[0]); } String[] endTimes = parameterMap.get("endTime"); if (endTimes != null && endTimes.length > 0) { queryWrapper.le("t.create_time", endTimes[0]); } queryWrapper.orderByDesc("t.create_time"); return this.baseMapper.queryPageList(page, queryWrapper); } @Override @Transactional(rollbackFor = Exception.class) public void editTotal(OutboundOrderAndDetailDto outboundOrder) { //å 餿ææç» outboundDetailService.remove(new LambdaQueryWrapper<OutboundDetail>() .eq(OutboundDetail::getOutStorehouseId, outboundOrder.getId())); OutboundOrder outboundOrderUpdate = BeanUtil.copyProperties(outboundOrder, OutboundOrder.class); outboundOrderMapper.updateById(outboundOrderUpdate); List<OutboundDetail> detailList = CollectionUtil.newArrayList(); outboundOrder.getOutboundDetailList().forEach(item->{ item.setOutStorehouseId(outboundOrderUpdate.getId()); detailList.add(item); }); outboundDetailService.saveBatch(detailList); } private LoginUser getCurrentUser() { // è·åå½å认è¯çç»å½ç¨æ·ä¿¡æ¯ Subject currentUser = SecurityUtils.getSubject(); if (currentUser != null && currentUser.isAuthenticated()) { Object principal = currentUser.getPrincipal(); if (principal instanceof LoginUser) { return (LoginUser) principal; } } return null; } } lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolLedgerDetailServiceImpl.java
@@ -8,9 +8,7 @@ import org.jeecg.modules.tms.mapper.ToolLedgerDetailMapper; import org.jeecg.modules.tms.service.IToolLedgerDetailService; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import java.util.Map; /** @@ -33,6 +31,11 @@ if (statuses != null && statuses.length > 0) { queryWrapper.eq("t.status", statuses[0]); } String[] excludeIds = parameterMap.get("excludeIds"); if (excludeIds != null && excludeIds.length > 0) { String[] idArray = excludeIds[0].split(","); queryWrapper.notIn("t.id", idArray); } return this.baseMapper.queryPageList(page, queryWrapper); } }