From 23855599412c4d61b38d78f0f3abd3430a48b5b1 Mon Sep 17 00:00:00 2001 From: zhangherong <571457620@qq.com> Date: 星期三, 25 六月 2025 11:51:38 +0800 Subject: [PATCH] Merge branch 'mdc_hyjs_master' --- lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/InboundOrderController.java | 268 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 268 insertions(+), 0 deletions(-) diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/InboundOrderController.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/InboundOrderController.java new file mode 100644 index 0000000..679a554 --- /dev/null +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/InboundOrderController.java @@ -0,0 +1,268 @@ +package org.jeecg.modules.tms.controller; + +import java.math.BigDecimal; +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLDecoder; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import org.apache.shiro.SecurityUtils; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.system.query.QueryGenerator; +import org.jeecg.common.system.vo.LoginUser; +import org.jeecg.common.util.oConvertUtils; +import org.jeecg.modules.system.service.ISysBusinessCodeRuleService; +import org.jeecg.modules.tms.entity.InboundDetail; +import org.jeecg.modules.tms.entity.InboundOrder; +import org.jeecg.modules.tms.entity.dto.InboundOrderFlowDto; +import org.jeecg.modules.tms.entity.dto.OutBoundOrderFlowDto; +import org.jeecg.modules.tms.service.IInboundDetailService; +import org.jeecg.modules.tms.service.IInboundOrderService; + +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.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.jeecg.common.system.base.controller.JeecgController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springframework.web.servlet.ModelAndView; +import com.alibaba.fastjson.JSON; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.jeecg.common.aspect.annotation.AutoLog; + + /** + * @Description: 鍏ュ簱鐢宠鍗� + * @Author: jeecg-boot + * @Date: 2025-05-19 + * @Version: V1.0 + */ +@Api(tags="鍏ュ簱鐢宠鍗�") +@RestController +@RequestMapping("/tms/inboundOrder") +@Slf4j +public class InboundOrderController extends JeecgController<InboundOrder, IInboundOrderService> { + @Autowired + private IInboundOrderService inboundOrderService; + + @Autowired + private IInboundDetailService inboundDetailService; + + + @Autowired + private ISysBusinessCodeRuleService businessCodeRuleService; + + /** + * 鍒嗛〉鍒楄〃鏌ヨ + * + * @param inboundOrder + * @param pageNo + * @param pageSize + * @param req + * @return + */ + //@AutoLog(value = "鍏ュ簱鐢宠鍗�-鍒嗛〉鍒楄〃鏌ヨ") + @ApiOperation(value="鍏ュ簱鐢宠鍗�-鍒嗛〉鍒楄〃鏌ヨ", notes="鍏ュ簱鐢宠鍗�-鍒嗛〉鍒楄〃鏌ヨ") + @GetMapping(value = "/list") + public Result<IPage<InboundOrder>> queryPageList(InboundOrder inboundOrder, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + QueryWrapper<InboundOrder> queryWrapper = QueryGenerator.initQueryWrapper(inboundOrder, req.getParameterMap()); + Page<InboundOrder> page = new Page<InboundOrder>(pageNo, pageSize); + IPage<InboundOrder> pageList = inboundOrderService.page(page, queryWrapper); + return Result.OK(pageList); + } + + /** + * 娣诲姞 + * + * @param jSONObject + * @return + */ + @AutoLog(value = "鍏ュ簱鐢宠鍗�-娣诲姞") + @ApiOperation(value="鍏ュ簱鐢宠鍗�-娣诲姞", notes="鍏ュ簱鐢宠鍗�-娣诲姞") + //@RequiresPermissions("org.jeecg.modules:tms_inbound_order:add") + @PostMapping(value = "/add") + public Result<?> add(@RequestBody JSONObject jSONObject) { + InboundOrder inboundOrder = jSONObject.toJavaObject(InboundOrder.class); + inboundOrder.setOrderStatus("1"); + inboundOrder.setInStatus("1"); + LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + inboundOrder.setHandler(user.getUsername()); + inboundOrder.setInboundNum(businessCodeRuleService.generateBusinessCodeSeq("InBoundOrder")); + inboundOrderService.save(inboundOrder); + // 淇濆瓨鍏ュ簱鐢宠鍗曟槑缁嗘暟鎹� + JSONArray jsonArray = jSONObject.getJSONArray("detailData"); + List<InboundDetail> list = jsonArray.toJavaList(InboundDetail.class); + for (int i = 0; i < list.size(); i++) { + InboundDetail temp = list.get(i); + temp.setId(null); + temp.setInStorehouseId(inboundOrder.getId()); + temp.setInActualCount(BigDecimal.ZERO); + temp.setInStatus("1"); + temp.setToolId(temp.getOnlyCode()); + temp.setToolCode(temp.getToolCodeId()); + } + inboundDetailService.saveBatch(list); + return Result.OK("娣诲姞鎴愬姛锛�"); + } + + /** + * 缂栬緫 + * + * @param jSONObject + * @return + */ + @AutoLog(value = "鍏ュ簱鐢宠鍗�-缂栬緫") + @ApiOperation(value="鍏ュ簱鐢宠鍗�-缂栬緫", notes="鍏ュ簱鐢宠鍗�-缂栬緫") + //@RequiresPermissions("org.jeecg.modules:tms_inbound_order:edit") + @PostMapping(value = "/edit") + public Result<?> edit(@RequestBody JSONObject jSONObject) { + InboundOrder inboundOrder = jSONObject.toJavaObject(InboundOrder.class); + inboundOrderService.updateById(inboundOrder); + // 鍒犻櫎鐢宠鍗曟槑缁嗘暟鎹� + inboundDetailService.deleteByInboundOrderId(inboundOrder.getId()); + // 淇濆瓨鍏ュ簱鐢宠鍗曟槑缁嗘暟鎹� + JSONArray jsonArray = jSONObject.getJSONArray("detailData"); + List<InboundDetail> list = jsonArray.toJavaList(InboundDetail.class); + for (int i = 0; i < list.size(); i++) { + InboundDetail temp = list.get(i); + temp.setId(null); + temp.setInStorehouseId(inboundOrder.getId()); + temp.setInStatus("1"); + temp.setInActualCount(BigDecimal.ZERO); + temp.setToolId(temp.getOnlyCode()); + temp.setToolCode(temp.getToolCodeId()); + } + inboundDetailService.saveOrUpdateBatch(list); + return Result.OK("鎿嶄綔鎴愬姛!"); + } + + /** + * 閫氳繃id鍒犻櫎 + * + * @param id + * @return + */ + @AutoLog(value = "鍏ュ簱鐢宠鍗�-閫氳繃id鍒犻櫎") + @ApiOperation(value="鍏ュ簱鐢宠鍗�-閫氳繃id鍒犻櫎", notes="鍏ュ簱鐢宠鍗�-閫氳繃id鍒犻櫎") + //@RequiresPermissions("org.jeecg.modules:tms_inbound_order:delete") + @DeleteMapping(value = "/delete") + public Result<String> delete(@RequestParam(name="id",required=true) String id) { + inboundOrderService.removeById(id); + return Result.OK("鍒犻櫎鎴愬姛!"); + } + + /** + * 鎵归噺鍒犻櫎 + * + * @param ids + * @return + */ + @AutoLog(value = "鍏ュ簱鐢宠鍗�-鎵归噺鍒犻櫎") + @ApiOperation(value="鍏ュ簱鐢宠鍗�-鎵归噺鍒犻櫎", notes="鍏ュ簱鐢宠鍗�-鎵归噺鍒犻櫎") + //@RequiresPermissions("org.jeecg.modules:tms_inbound_order:deleteBatch") + @DeleteMapping(value = "/deleteBatch") + public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) { + this.inboundOrderService.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<InboundOrder> queryById(@RequestParam(name="id",required=true) String id) { + InboundOrder inboundOrder = inboundOrderService.getById(id); + if(inboundOrder==null) { + return Result.error("鏈壘鍒板搴旀暟鎹�"); + } + return Result.OK(inboundOrder); + } + + /** + * 瀵煎嚭excel + * + * @param request + * @param inboundOrder + */ + //@RequiresPermissions("org.jeecg.modules:tms_inbound_order:exportXls") + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, InboundOrder inboundOrder) { + return super.exportXls(request, inboundOrder, InboundOrder.class, "鍏ュ簱鐢宠鍗�"); + } + + /** + * 閫氳繃excel瀵煎叆鏁版嵁 + * + * @param request + * @param response + * @return + */ + //@RequiresPermissions("tms_inbound_order:importExcel") + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, InboundOrder.class); + } + + /** + * 鎻愪氦 + * + * @param id + * @return + */ + @AutoLog(value = "鍏ュ簱鐢宠鍗�-鎻愪氦") + @GetMapping(value = "/submit") + public Result<String> submit(@RequestParam(name = "id") String id) { + inboundOrderService.submit(id); + return Result.OK("鎻愪氦鎴愬姛!"); + } + + @AutoLog(value = "瀹℃壒娴佺▼") + @ApiOperation(value = "鍏ュ簱鐢宠鍗�-瀹℃壒娴佺▼", notes = "鍏ュ簱鐢宠鍗�-瀹℃壒娴佺▼") + @PostMapping("/approval") + public Result<?> approval(@RequestBody InboundOrderFlowDto inboundOrderFlowDto) { + inboundOrderService.approvalProcess(inboundOrderFlowDto); + return Result.OK("鎿嶄綔鎴愬姛"); + } + + + @AutoLog(value = "宸ュ叿鍏ュ簱-鏂板鍏ュ簱") + @ApiOperation(value = "宸ュ叿鍏ュ簱-鏂板鍏ュ簱", notes = "宸ュ叿鍏ュ簱-鏂板鍏ュ簱") + @PostMapping("/addInStorage") + public Result<List<Map<String,String>>> addInStorage(@RequestBody JSONObject jSONObject) { + List<Map<String,String>> result = inboundOrderService.addInStorage(jSONObject); + return Result.OK(result); + } + + @AutoLog(value = "宸ュ叿鍏ュ簱-鐢宠鍗曞叆搴�") + @ApiOperation(value = "宸ュ叿鍏ュ簱-鐢宠鍗曞叆搴�", notes = "宸ュ叿鍏ュ簱-鐢宠鍗曞叆搴�") + @PostMapping("/addApplyInStorage") + public Result<List<Map<String,String>>> addApplyInStorage(@RequestBody JSONObject jSONObject) { + List<Map<String,String>> result = inboundOrderService.addApplyInStorage(jSONObject); + return Result.OK(result); + } + +} -- Gitblit v1.9.3