lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/PreparationOrderController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,314 @@ 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.PreparationOrderAndDetailDto; 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.PreparationOrderDetail; import org.jeecg.modules.tms.entity.PreparationOrder; import org.jeecg.modules.tms.service.IPreparationOrderService; import org.jeecg.modules.tms.service.IPreparationOrderDetailService; 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: åå ·åå¤å * @Author: jeecg-boot * @Date: 2025-06-09 * @Version: V1.0 */ @Api(tags="åå ·åå¤å") @RestController @RequestMapping("/tms/preparationOrder") @Slf4j public class PreparationOrderController extends JeecgController<PreparationOrder, IPreparationOrderService> { @Autowired private IPreparationOrderService preparationOrderService; @Autowired private IPreparationOrderDetailService preparationOrderDetailService; /*---------------------------------主表å¤ç-begin-------------------------------------*/ /** * å页å表æ¥è¯¢ * @param preparationOrder * @param pageNo * @param pageSize * @param req * @return */ //@AutoLog(value = "åå ·åå¤å-å页å表æ¥è¯¢") @ApiOperation(value="åå ·åå¤å-å页å表æ¥è¯¢", notes="åå ·åå¤å-å页å表æ¥è¯¢") @GetMapping(value = "/list") public Result<IPage<PreparationOrder>> queryPageList(PreparationOrder preparationOrder, @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, HttpServletRequest req) { QueryWrapper<PreparationOrder> queryWrapper = QueryGenerator.initQueryWrapper(preparationOrder, req.getParameterMap()); Page<PreparationOrder> page = new Page<PreparationOrder>(pageNo, pageSize); IPage<PreparationOrder> pageList = preparationOrderService.page(page, queryWrapper); return Result.OK(pageList); } /** * æ·»å * @param preparationOrder * @return */ @AutoLog(value = "åå ·åå¤å-æ·»å ") @ApiOperation(value="åå ·åå¤å-æ·»å ", notes="åå ·åå¤å-æ·»å ") //@RequiresPermissions("org.jeecg.modules:tms_preparation_order:add") @PostMapping(value = "/add") public Result<String> add(@RequestBody PreparationOrder preparationOrder) { preparationOrderService.save(preparationOrder); return Result.OK("æ·»å æåï¼"); } /** * ç¼è¾ * @param preparationOrder * @return */ @AutoLog(value = "åå ·åå¤å-ç¼è¾") @ApiOperation(value="åå ·åå¤å-ç¼è¾", notes="åå ·åå¤å-ç¼è¾") //@RequiresPermissions("org.jeecg.modules:tms_preparation_order:edit") @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) public Result<String> edit(@RequestBody PreparationOrder preparationOrder) { preparationOrderService.updateById(preparationOrder); return Result.OK("ç¼è¾æå!"); } @AutoLog(value = "åå ·åå¤å-ç¡®è®¤å®æ") @ApiOperation(value="åå ·åå¤å-è°æºåä¿®æ£ç¡®è®¤", notes = "åå ·åå¤å-è°æºåä¿®æ£ç¡®è®¤") @RequestMapping(value = "/editTotal", method = {RequestMethod.PUT,RequestMethod.POST}) public Result<String> editTotal(@RequestBody PreparationOrderAndDetailDto preparationOrderAndDetailDto) { preparationOrderService.editTotal(preparationOrderAndDetailDto); return Result.OK("ç¡®è®¤å®æï¼"); } /** * éè¿idå é¤ * @param id * @return */ @AutoLog(value = "åå ·åå¤å-éè¿idå é¤åå¤ååæç»") @ApiOperation(value="åå ·åå¤å-éè¿idå é¤åå¤ååæç»", notes="åå ·åå¤å-éè¿idå é¤åå¤ååæç»") //@RequiresPermissions("org.jeecg.modules:tms_preparation_order:delete") @DeleteMapping(value = "/delete") public Result<String> delete(@RequestParam(name="id",required=true) String id) { preparationOrderService.delMain(id); return Result.OK("å 餿å!"); } /** * æ¹éå é¤ * @param ids * @return */ @AutoLog(value = "åå ·åå¤å-æ¹éå é¤") @ApiOperation(value="åå ·åå¤å-æ¹éå é¤", notes="åå ·åå¤å-æ¹éå é¤") //@RequiresPermissions("org.jeecg.modules:tms_preparation_order:deleteBatch") @DeleteMapping(value = "/deleteBatch") public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) { this.preparationOrderService.delBatchMain(Arrays.asList(ids.split(","))); return Result.OK("æ¹éå 餿å!"); } /** * å¯¼åº * @return */ //@RequiresPermissions("org.jeecg.modules:tms_preparation_order:exportXls") @RequestMapping(value = "/exportXls") public ModelAndView exportXls(HttpServletRequest request, PreparationOrder preparationOrder) { return super.exportXls(request, preparationOrder, PreparationOrder.class, "åå ·åå¤å"); } /** * å¯¼å ¥ * @return */ //@RequiresPermissions("org.jeecg.modules:tms_preparation_order:importExcel") @RequestMapping(value = "/importExcel", method = RequestMethod.POST) public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) { return super.importExcel(request, response, PreparationOrder.class); } /*---------------------------------主表å¤ç-end-------------------------------------*/ /*--------------------------------å表å¤ç-åå ·åå¤åæç»-begin----------------------------------------------*/ /** * éè¿ä¸»è¡¨IDæ¥è¯¢ * @return */ //@AutoLog(value = "åå ·åå¤åæç»-éè¿ä¸»è¡¨IDæ¥è¯¢") @ApiOperation(value="åå ·åå¤åæç»-éè¿ä¸»è¡¨IDæ¥è¯¢", notes="åå ·åå¤åæç»-éè¿ä¸»è¡¨IDæ¥è¯¢") @GetMapping(value = "/listPreparationOrderDetailByMainId") public Result<IPage<PreparationOrderDetail>> listPreparationOrderDetailByMainId(PreparationOrderDetail preparationOrderDetail, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) { QueryWrapper<PreparationOrderDetail> queryWrapper = QueryGenerator.initQueryWrapper(preparationOrderDetail, req.getParameterMap()); Page<PreparationOrderDetail> page = new Page<PreparationOrderDetail>(pageNo, pageSize); IPage<PreparationOrderDetail> pageList = preparationOrderDetailService.page(page, queryWrapper); return Result.OK(pageList); } /** * æ·»å * @param preparationOrderDetail * @return */ @AutoLog(value = "åå ·åå¤åæç»-æ·»å ") @ApiOperation(value="åå ·åå¤åæç»-æ·»å ", notes="åå ·åå¤åæç»-æ·»å ") @PostMapping(value = "/addPreparationOrderDetail") public Result<String> addPreparationOrderDetail(@RequestBody PreparationOrderDetail preparationOrderDetail) { preparationOrderDetailService.save(preparationOrderDetail); return Result.OK("æ·»å æåï¼"); } /** * ç¼è¾ * @param preparationOrderDetail * @return */ @AutoLog(value = "åå ·åå¤åæç»-ç¼è¾") @ApiOperation(value="åå ·åå¤åæç»-ç¼è¾", notes="åå ·åå¤åæç»-ç¼è¾") @RequestMapping(value = "/editPreparationOrderDetail", method = {RequestMethod.PUT,RequestMethod.POST}) public Result<String> editPreparationOrderDetail(@RequestBody PreparationOrderDetail preparationOrderDetail) { preparationOrderDetailService.updateById(preparationOrderDetail); return Result.OK("ç¼è¾æå!"); } /** * éè¿idå é¤ * @param id * @return */ @AutoLog(value = "åå ·åå¤åæç»-éè¿idå é¤") @ApiOperation(value="åå ·åå¤åæç»-éè¿idå é¤", notes="åå ·åå¤åæç»-éè¿idå é¤") @DeleteMapping(value = "/deletePreparationOrderDetail") public Result<String> deletePreparationOrderDetail(@RequestParam(name="id",required=true) String id) { preparationOrderDetailService.removeById(id); return Result.OK("å 餿å!"); } /** * æ¹éå é¤ * @param ids * @return */ @AutoLog(value = "åå ·åå¤åæç»-æ¹éå é¤") @ApiOperation(value="åå ·åå¤åæç»-æ¹éå é¤", notes="åå ·åå¤åæç»-æ¹éå é¤") @DeleteMapping(value = "/deleteBatchPreparationOrderDetail") public Result<String> deleteBatchPreparationOrderDetail(@RequestParam(name="ids",required=true) String ids) { this.preparationOrderDetailService.removeByIds(Arrays.asList(ids.split(","))); return Result.OK("æ¹éå 餿å!"); } /** * å¯¼åº * @return */ @RequestMapping(value = "/exportPreparationOrderDetail") public ModelAndView exportPreparationOrderDetail(HttpServletRequest request, PreparationOrderDetail preparationOrderDetail) { // Step.1 ç»è£ æ¥è¯¢æ¡ä»¶ QueryWrapper<PreparationOrderDetail> queryWrapper = QueryGenerator.initQueryWrapper(preparationOrderDetail, request.getParameterMap()); LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); // Step.2 è·åå¯¼åºæ°æ® List<PreparationOrderDetail> pageList = preparationOrderDetailService.list(queryWrapper); List<PreparationOrderDetail> 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, PreparationOrderDetail.class); mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("åå ·åå¤åæç»æ¥è¡¨", "导åºäºº:" + sysUser.getRealname(), "åå ·åå¤åæç»")); mv.addObject(NormalExcelConstants.DATA_LIST, exportList); return mv; } /** * å¯¼å ¥ * @return */ @RequestMapping(value = "/importPreparationOrderDetail/{mainId}") public Result<?> importPreparationOrderDetail(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<PreparationOrderDetail> list = ExcelImportUtil.importExcel(file.getInputStream(), PreparationOrderDetail.class, params); for (PreparationOrderDetail temp : list) { temp.setPreparationOrderId(mainId); } long start = System.currentTimeMillis(); preparationOrderDetailService.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/convert/PreparationOrderConvert.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,18 @@ package org.jeecg.modules.tms.convert; import org.jeecg.modules.tms.entity.PreparationOrder; import org.jeecg.modules.tms.entity.dto.PreparationOrderAndDetailDto; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; /** * ä½¿ç¨ MapStruct æ¹å¼è¿è¡å±æ§å¤å¶ * 注æä¸è½æ¾å¨ mybatisæ«æçmapperå ä¸é¢ï¼å¦å伿¥é */ @Mapper public interface PreparationOrderConvert { PreparationOrderConvert INSTANCE = Mappers.getMapper(PreparationOrderConvert.class); PreparationOrder convert(PreparationOrderAndDetailDto dto); } lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/PreparationOrder.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,108 @@ package org.jeecg.modules.tms.entity; import java.io.Serializable; import java.io.UnsupportedEncodingException; import java.util.Date; 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.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: åå ·åå¤å * @Author: jeecg-boot * @Date: 2025-06-09 * @Version: V1.0 */ @Data @TableName("tms_preparation_order") @ApiModel(value="tms_preparation_order对象", description="åå ·åå¤å") public class PreparationOrder 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 preparationOrderNum; /**é¶ä»¶å¾å·*/ @Excel(name = "é¶ä»¶å¾å·", width = 15) @ApiModelProperty(value = "é¶ä»¶å¾å·") private String partDrawingNo; /**é¶ä»¶åç§°*/ @Excel(name = "é¶ä»¶åç§°", width = 15) @ApiModelProperty(value = "é¶ä»¶åç§°") private String partName; /**é¶ä»¶ææ*/ @Excel(name = "é¶ä»¶ææ", width = 15) @ApiModelProperty(value = "é¶ä»¶ææ") private String partMaterial; /**å·¥åºï¼å·¥æ¥å·ï¼*/ @Excel(name = "å·¥åºï¼å·¥æ¥å·ï¼", width = 15) @ApiModelProperty(value = "å·¥åºï¼å·¥æ¥å·ï¼") private String productionProcessesNo; /**å å·¥æ¹æ¬¡*/ @Excel(name = "å å·¥æ¹æ¬¡", width = 15) @ApiModelProperty(value = "å å·¥æ¹æ¬¡") private String batchCode; /**å å·¥æ°é*/ @Excel(name = "å å·¥æ°é", width = 15) @ApiModelProperty(value = "å å·¥æ°é") private String machiningCount; /**å 工设å¤*/ @Excel(name = "å 工设å¤", width = 15) @ApiModelProperty(value = "å 工设å¤") private String equipmentCode; /**ç¨åºå*/ @Excel(name = "ç¨åºå", width = 15) @ApiModelProperty(value = "ç¨åºå") private String ncName; /**åå¤ååºåºæ°é*/ @Excel(name = "åå¤ååºåºæ°é", width = 15) @ApiModelProperty(value = "åå¤ååºåºæ°é") private java.math.BigDecimal outboundQuantity; /**ååç¶æ;1.æªå®¡æ ¸ï¼2.è°æºåå·²å®¡æ ¸ï¼3.已转åºåºç³è¯·*/ @Excel(name = "ååç¶æ;1.æªå®¡æ ¸ï¼2.è°æºåå·²å®¡æ ¸ï¼3.已转åºåºç³è¯·", width = 15) @ApiModelProperty(value = "ååç¶æ;1.æªå®¡æ ¸ï¼2.è°æºåå·²å®¡æ ¸ï¼3.已转åºåºç³è¯·") private String orderStatus; /**åå¤åæäº¤æ¶é´;æäº¤è³åºåºç³è¯·åçæ¶é´*/ @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; /**å建æ¶é´;DNCæ¨éæ°æ®æ¶é´*/ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm") @ApiModelProperty(value = "å建æ¶é´;DNCæ¨éæ°æ®æ¶é´") 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/PreparationOrderDetail.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,66 @@ 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 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; /** * @Description: åå ·åå¤åæç» * @Author: jeecg-boot * @Date: 2025-06-09 * @Version: V1.0 */ @Data @TableName("tms_preparation_order_detail") @ApiModel(value="tms_preparation_order_detail对象", description="åå ·åå¤åæç»") public class PreparationOrderDetail implements Serializable { private static final long serialVersionUID = 1L; /**主é®*/ @TableId(type = IdType.ASSIGN_ID) @ApiModelProperty(value = "主é®") private String id; /**åå¤åå·*/ @ApiModelProperty(value = "åå¤åå·") private String preparationOrderId; /**åå ·ç¼ç */ @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 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; } lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/dto/PreparationOrderAndDetailDto.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,61 @@ package org.jeecg.modules.tms.entity.dto; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import org.jeecg.modules.tms.entity.PreparationOrderDetail; import org.springframework.format.annotation.DateTimeFormat; import java.util.Date; import java.util.List; @Data public class PreparationOrderAndDetailDto { /**主é®*/ @ApiModelProperty(value = "主é®") private String id; /**åå¤åç¼å·*/ @ApiModelProperty(value = "åå¤åç¼å·") private String preparationOrderNum; /**é¶ä»¶å¾å·*/ @ApiModelProperty(value = "é¶ä»¶å¾å·") private String partDrawingNo; /**é¶ä»¶åç§°*/ @ApiModelProperty(value = "é¶ä»¶åç§°") private String partName; /**é¶ä»¶ææ*/ @ApiModelProperty(value = "é¶ä»¶ææ") private String partMaterial; /**å·¥åºï¼å·¥æ¥å·ï¼*/ @ApiModelProperty(value = "å·¥åºï¼å·¥æ¥å·ï¼") private String productionProcessesNo; /**å å·¥æ¹æ¬¡*/ @ApiModelProperty(value = "å å·¥æ¹æ¬¡") private String batchCode; /**å å·¥æ°é*/ @ApiModelProperty(value = "å å·¥æ°é") private String machiningCount; /**å 工设å¤*/ @ApiModelProperty(value = "å 工设å¤") private String equipmentCode; /**ç¨åºå*/ @ApiModelProperty(value = "ç¨åºå") private String ncName; /**åå¤ååºåºæ°é*/ @ApiModelProperty(value = "åå¤ååºåºæ°é") private java.math.BigDecimal outboundQuantity; /**ååç¶æ;1.æªå®¡æ ¸ï¼2.è°æºåå·²å®¡æ ¸ï¼3.已转åºåºç³è¯·*/ @ApiModelProperty(value = "ååç¶æ;1.æªå®¡æ ¸ï¼2.è°æºåå·²å®¡æ ¸ï¼3.已转åºåºç³è¯·") private String orderStatus; /**åå¤åæäº¤æ¶é´;æäº¤è³åºåºç³è¯·åçæ¶é´*/ @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<PreparationOrderDetail> preparationOrderDetailList; } lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/PreparationOrderDetailMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,32 @@ package org.jeecg.modules.tms.mapper; import java.util.List; import org.jeecg.modules.tms.entity.PreparationOrderDetail; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; /** * @Description: åå ·åå¤åæç» * @Author: jeecg-boot * @Date: 2025-06-09 * @Version: V1.0 */ public interface PreparationOrderDetailMapper extends BaseMapper<PreparationOrderDetail> { /** * éè¿ä¸»è¡¨idå é¤åè¡¨æ°æ® * * @param mainId 主表id * @return boolean */ public boolean deleteByMainId(@Param("mainId") String mainId); /** * éè¿ä¸»è¡¨idæ¥è¯¢åè¡¨æ°æ® * * @param mainId 主表id * @return List<PreparationOrderDetail> */ public List<PreparationOrderDetail> selectByMainId(@Param("mainId") String mainId); } lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/PreparationOrderMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,17 @@ package org.jeecg.modules.tms.mapper; import java.util.List; import org.apache.ibatis.annotations.Param; import org.jeecg.modules.tms.entity.PreparationOrder; import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** * @Description: åå ·åå¤å * @Author: jeecg-boot * @Date: 2025-06-09 * @Version: V1.0 */ public interface PreparationOrderMapper extends BaseMapper<PreparationOrder> { } lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/PreparationOrderDetailMapper.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,18 @@ <?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.PreparationOrderDetailMapper"> <delete id="deleteByMainId" parameterType="java.lang.String"> DELETE FROM tms_preparation_order_detail WHERE preparation_order_id = #{mainId} </delete> <select id="selectByMainId" parameterType="java.lang.String" resultType="org.jeecg.modules.tms.entity.PreparationOrderDetail"> SELECT * FROM tms_preparation_order_detail WHERE preparation_order_id = #{mainId} </select> </mapper> lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/PreparationOrderMapper.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.PreparationOrderMapper"> </mapper> lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IPreparationOrderDetailService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,22 @@ package org.jeecg.modules.tms.service; import org.jeecg.modules.tms.entity.PreparationOrderDetail; import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; /** * @Description: åå ·åå¤åæç» * @Author: jeecg-boot * @Date: 2025-06-09 * @Version: V1.0 */ public interface IPreparationOrderDetailService extends IService<PreparationOrderDetail> { /** * éè¿ä¸»è¡¨idæ¥è¯¢åè¡¨æ°æ® * * @param mainId * @return List<PreparationOrderDetail> */ public List<PreparationOrderDetail> selectByMainId(String mainId); } lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IPreparationOrderService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,36 @@ package org.jeecg.modules.tms.service; import org.jeecg.modules.tms.entity.PreparationOrderDetail; import org.jeecg.modules.tms.entity.PreparationOrder; import com.baomidou.mybatisplus.extension.service.IService; import org.jeecg.modules.tms.entity.dto.PreparationOrderAndDetailDto; import org.springframework.beans.factory.annotation.Autowired; import java.io.Serializable; import java.util.Collection; import java.util.List; /** * @Description: åå ·åå¤å * @Author: jeecg-boot * @Date: 2025-06-09 * @Version: V1.0 */ public interface IPreparationOrderService extends IService<PreparationOrder> { /** * å é¤ä¸å¯¹å¤ * * @param id */ public void delMain (String id); /** * æ¹éå é¤ä¸å¯¹å¤ * * @param idList */ public void delBatchMain (Collection<? extends Serializable> idList); void editTotal(PreparationOrderAndDetailDto preparationOrderAndDetailDto); } lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/OutboundOrderServiceImpl.java
@@ -155,7 +155,7 @@ //å 餿ææç» outboundDetailService.remove(new LambdaQueryWrapper<OutboundDetail>() .eq(OutboundDetail::getOutStorehouseId, outboundOrder.getId())); OutboundOrder outboundOrderUpdate = BeanUtil.copyProperties(outboundOrder, OutboundOrder.class); OutboundOrder outboundOrderUpdate = OutboundOrderConvert.INSTANCE.convert(outboundOrder); outboundOrderMapper.updateById(outboundOrderUpdate); List<OutboundDetail> detailList = CollectionUtil.newArrayList(); outboundOrder.getOutboundDetailList().forEach(item->{ lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/PreparationOrderDetailServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,27 @@ package org.jeecg.modules.tms.service.impl; import org.jeecg.modules.tms.entity.PreparationOrderDetail; import org.jeecg.modules.tms.mapper.PreparationOrderDetailMapper; import org.jeecg.modules.tms.service.IPreparationOrderDetailService; import org.springframework.stereotype.Service; import java.util.List; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; /** * @Description: åå ·åå¤åæç» * @Author: jeecg-boot * @Date: 2025-06-09 * @Version: V1.0 */ @Service public class PreparationOrderDetailServiceImpl extends ServiceImpl<PreparationOrderDetailMapper, PreparationOrderDetail> implements IPreparationOrderDetailService { @Autowired private PreparationOrderDetailMapper preparationOrderDetailMapper; @Override public List<PreparationOrderDetail> selectByMainId(String mainId) { return preparationOrderDetailMapper.selectByMainId(mainId); } } lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/PreparationOrderServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,69 @@ package org.jeecg.modules.tms.service.impl; import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import org.jeecg.modules.tms.convert.PreparationOrderConvert; import org.jeecg.modules.tms.entity.PreparationOrder; import org.jeecg.modules.tms.entity.PreparationOrderDetail; import org.jeecg.modules.tms.entity.dto.PreparationOrderAndDetailDto; import org.jeecg.modules.tms.mapper.PreparationOrderDetailMapper; import org.jeecg.modules.tms.mapper.PreparationOrderMapper; import org.jeecg.modules.tms.service.IPreparationOrderDetailService; import org.jeecg.modules.tms.service.IPreparationOrderService; 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; /** * @Description: åå ·åå¤å * @Author: jeecg-boot * @Date: 2025-06-09 * @Version: V1.0 */ @Service public class PreparationOrderServiceImpl extends ServiceImpl<PreparationOrderMapper, PreparationOrder> implements IPreparationOrderService { @Autowired private PreparationOrderMapper preparationOrderMapper; @Autowired private PreparationOrderDetailMapper preparationOrderDetailMapper; @Autowired private IPreparationOrderDetailService preparationOrderDetailService; @Override @Transactional(rollbackFor = Exception.class) public void delMain(String id) { preparationOrderDetailMapper.deleteByMainId(id); preparationOrderMapper.deleteById(id); } @Override @Transactional(rollbackFor = Exception.class) public void delBatchMain(Collection<? extends Serializable> idList) { for(Serializable id:idList) { preparationOrderDetailMapper.deleteByMainId(id.toString()); preparationOrderMapper.deleteById(id); } } @Override @Transactional(rollbackFor = Exception.class) public void editTotal(PreparationOrderAndDetailDto preparationOrderAndDetailDto) { //å å 餿ææç» preparationOrderDetailMapper.delete(new LambdaQueryWrapper<PreparationOrderDetail>() .eq(PreparationOrderDetail::getPreparationOrderId, preparationOrderAndDetailDto.getId())); PreparationOrder preparationOrder = PreparationOrderConvert.INSTANCE.convert(preparationOrderAndDetailDto); updateById(preparationOrder); List<PreparationOrderDetail> detailUpdateList = CollectionUtil.newArrayList(); preparationOrderAndDetailDto.getPreparationOrderDetailList().forEach(item->{ item.setPreparationOrderId(preparationOrder.getId()); detailUpdateList.add(item); }); preparationOrderDetailService.saveBatch(detailUpdateList); } }