Quellcode durchsuchen

发运明细、预托书、订单接口

zengtx vor 3 Jahren
Ursprung
Commit
853051ee5d
24 geänderte Dateien mit 1784 neuen und 39 gelöschten Zeilen
  1. 385 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/letterDeposit/controller/SyLetterDepositController.java
  2. 167 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/letterDeposit/controller/SyLetterDepositItemController.java
  3. 236 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/letterDeposit/entity/SyLetterDeposit.java
  4. 193 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/letterDeposit/entity/SyLetterDepositItem.java
  5. 31 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/letterDeposit/entity/SyRmb.java
  6. 32 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/letterDeposit/entity/SyUsd.java
  7. 106 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/letterDeposit/entity/VO/SyPreAssembledPackingListVo.java
  8. 17 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/letterDeposit/mapper/SyLetterDepositItemMapper.java
  9. 37 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/letterDeposit/mapper/SyLetterDepositMapper.java
  10. 5 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/letterDeposit/mapper/xml/SyLetterDepositItemMapper.xml
  11. 63 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/letterDeposit/mapper/xml/SyLetterDepositMapper.xml
  12. 14 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/letterDeposit/service/ISyLetterDepositItemService.java
  13. 43 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/letterDeposit/service/ISyLetterDepositService.java
  14. 19 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/letterDeposit/service/impl/SyLetterDepositItemServiceImpl.java
  15. 225 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/letterDeposit/service/impl/SyLetterDepositServiceImpl.java
  16. 115 16
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/shippingDetails/controller/SyShippingDetailsController.java
  17. 3 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/shippingDetails/entity/VO/SyShippingDetailsVo.java
  18. 5 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/shippingDetails/mapper/SyShippingDetailsMapper.java
  19. 22 5
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/shippingDetails/mapper/xml/SyShippingDetailsMapper.xml
  20. 9 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/shippingDetails/service/ISyShippingDetailsService.java
  21. 39 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/shippingDetails/service/impl/SyShippingDetailsServiceImpl.java
  22. 3 3
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/openApi/controller/MOMainController.java
  23. 3 3
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/openApi/controller/POPomainController.java
  24. 12 12
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/util/JsonChangeUtils.java

+ 385 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/letterDeposit/controller/SyLetterDepositController.java

@@ -0,0 +1,385 @@
+package org.jeecg.modules.documents.letterDeposit.controller;
+
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.shiro.SecurityUtils;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.jeecg.common.system.vo.LoginUser;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.documents.letterDeposit.entity.SyLetterDeposit;
+import org.jeecg.modules.documents.letterDeposit.entity.SyLetterDepositItem;
+import org.jeecg.modules.documents.letterDeposit.entity.VO.SyPreAssembledPackingListVo;
+import org.jeecg.modules.documents.letterDeposit.service.ISyLetterDepositItemService;
+import org.jeecg.modules.documents.letterDeposit.service.ISyLetterDepositService;
+import java.util.Date;
+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.modules.documents.shippingDetails.entity.SyShippingDetails;
+import org.jeecg.modules.spapl.entity.SyPreAssembledPackingList;
+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 com.alibaba.fastjson.JSON;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+ /**
+ * @Description: 预托书主表
+ * @Author: jeecg-boot
+ * @Date:   2022-06-20
+ * @Version: V1.0
+ */
+@Slf4j
+@Api(tags="预托书主表")
+@RestController
+@RequestMapping("/letterDeposit/syLetterDeposit")
+public class SyLetterDepositController extends JeecgController<SyLetterDeposit, ISyLetterDepositService> {
+	@Autowired
+	private ISyLetterDepositService syLetterDepositService;
+	@Autowired
+	private ISyLetterDepositItemService syLetterDepositItemService;
+	
+	/**
+	 * 分页列表查询
+	 *
+	 * @param syLetterDeposit
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	@AutoLog(value = "预托书主表-分页列表查询")
+	@ApiOperation(value="预托书主表-分页列表查询", notes="预托书主表-分页列表查询")
+	@GetMapping(value = "/list")
+	public Result<IPage<SyLetterDeposit>> queryPageList(SyLetterDeposit syLetterDeposit,
+								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+								   HttpServletRequest req) {
+
+		Result<IPage<SyLetterDeposit>> result = new Result<IPage<SyLetterDeposit>>();
+		QueryWrapper<SyLetterDeposit> queryWrapper = QueryGenerator.initQueryWrapper(syLetterDeposit, req.getParameterMap());
+		Page<SyLetterDeposit> page = new Page<SyLetterDeposit>(pageNo, pageSize);
+		IPage<SyLetterDeposit> pageList = syLetterDepositService.page(page, queryWrapper);
+		result.setSuccess(true);
+		result.setMessage("查询成功!");
+		result.setResult(pageList);
+		return result;
+	}
+	
+	/**
+	 * 添加
+	 *
+	 * @param syLetterDeposit
+	 * @return
+	 */
+	@AutoLog(value = "预托书主表-添加")
+	@ApiOperation(value="预托书主表-添加", notes="预托书主表-添加")
+	@PostMapping(value = "/add")
+	public Result<SyLetterDeposit> add(@RequestBody SyLetterDeposit syLetterDeposit) throws ParseException {
+
+		Result<SyLetterDeposit> result = new Result<SyLetterDeposit>();
+
+		try {
+			if(oConvertUtils.isEmpty(syLetterDeposit)){
+				result.setSuccess(false);
+				result.setMessage("保存失败,对象对空!");
+				return result;
+			}
+			//设置创建人
+			//LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+			syLetterDeposit.setCreateBy("admin");//sysUser.getRealname()
+			//设置创建时间
+			SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+			String createTime = sf.format(new Date());
+			syLetterDeposit.setCreateTime(sf.parse(createTime));
+
+
+			List<SyLetterDepositItem> syLetterDepositItemList = syLetterDeposit.getSyLetterDepositItemList();
+			if(syLetterDepositItemList.size() == 0){
+				result.setSuccess(false);
+				result.setMessage("保存失败,表体数据不能为空!");
+				return result;
+			}
+			SyLetterDeposit entity = syLetterDepositService.syLetterDepositAdd(syLetterDeposit);
+			result.setSuccess(true);
+			result.setMessage("保存成功!");
+			result.setResult(entity);
+
+		}catch (Exception ex){
+			ex.printStackTrace();
+			log.error("保存失败:" + ex.getMessage());
+			result.error500("保存失败:" + ex.getMessage());
+		}
+		return result;
+	}
+	
+	/**
+	 * 编辑
+	 *
+	 * @param syLetterDeposit
+	 * @return
+	 */
+	@AutoLog(value = "预托书主表-编辑")
+	@ApiOperation(value="预托书主表-编辑", notes="预托书主表-编辑")
+	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+	public Result<SyLetterDeposit> edit(@RequestBody SyLetterDeposit syLetterDeposit) {
+
+		Result<SyLetterDeposit> result = new Result<SyLetterDeposit>();
+		try {
+			if(syLetterDeposit.getSyLetterDepositItemList().size()==0){
+				result.setSuccess(true);
+				result.setMessage("编辑失败,子表数据不能为空!");
+				return result;
+			}
+			//判断是否提交
+			String stuta = syLetterDeposit.getTheDocumentsState();
+			if(stuta.equals("1")){
+				result.setSuccess(true);
+				result.setMessage("编辑失败,该单据已提交,不能修改!");
+				return result;
+			}
+
+			SyLetterDeposit entity = syLetterDepositService.syLetterDepositEdit(syLetterDeposit);
+            result.setMessage("编辑成功!");
+            result.setSuccess(true);
+            result.setResult(entity);
+
+		}catch (Exception ex){
+			ex.printStackTrace();
+			log.error("保存失败:" + ex.getMessage());
+			result.error500("保存失败:" + ex.getMessage());
+		}
+		return result;
+	}
+	
+	/**
+	 * 通过id删除
+	 *
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "预托书主表-通过id删除")
+	@ApiOperation(value="预托书主表-通过id删除", notes="预托书主表-通过id删除")
+	@DeleteMapping(value = "/delete")
+	public Result<Integer> delete(@RequestParam(name="id",required=true) String id) {
+		Result<Integer> result = new Result<>();
+		try{
+		//判断ID是否为空
+		if(oConvertUtils.isEmpty(id)){
+			result.setSuccess(false);
+			result.setMessage("ID为空,删除失败!");
+			return result;
+		}
+		//判断是否已提交
+		SyLetterDeposit entity = syLetterDepositService.getById(id);
+		if(entity.getTheDocumentsState().equals("1")){
+			result.setSuccess(false);
+			result.setMessage("该单据已提交,删除失败!");
+			return result;
+		}
+		int i = syLetterDepositService.syLetterDepositDelete(id);
+		if(i>0){
+			result.setSuccess(true);
+			result.setMessage("删除成功");
+			result.setResult(i);
+		}
+	}catch (Exception ex){
+		 ex.printStackTrace();
+		 log.error("删除失败:" + ex.getMessage());
+		 result.error500("删除失败:" + ex.getMessage());
+	 }
+		return result;
+	}
+	
+	/**
+	 * 批量删除
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@AutoLog(value = "预托书主表-批量删除")
+	@ApiOperation(value="预托书主表-批量删除", notes="预托书主表-批量删除")
+	@DeleteMapping(value = "/deleteBatch")
+	public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		this.syLetterDepositService.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<SyLetterDeposit> queryById(@RequestParam(name="id",required=true) String id) {
+
+		Result<SyLetterDeposit> result = new Result<SyLetterDeposit>();
+
+		try {
+
+			if(oConvertUtils.isEmpty(id)){
+				result.setMessage("查询失败,未获取到ID!");
+				result.setSuccess(false);
+				return result;
+			}
+			SyLetterDeposit syLetterDeposit = syLetterDepositService.getById(id);
+			//查询子表信息
+			QueryWrapper<SyLetterDepositItem> queryWrapper = new QueryWrapper<>();
+			queryWrapper.eq("sy_letter_deposit_id",id).eq("del_flag",0);
+			List<SyLetterDepositItem> syLetterDepositItemList = syLetterDepositItemService.list(queryWrapper);
+            if(syLetterDepositItemList.size()!=0){
+				syLetterDeposit.setSyLetterDepositItemList(syLetterDepositItemList);
+			}
+
+            result.setSuccess(true);
+            result.setMessage("查询成功!");
+            result.setResult(syLetterDeposit);
+
+		}catch (Exception ex){
+			ex.printStackTrace();
+			log.error("保存失败:" + ex.getMessage());
+			result.error500("保存失败:" + ex.getMessage());
+		}
+
+		return result;
+	}
+
+  /**
+   * 导出excel
+   *
+   * @param request
+   * @param syLetterDeposit
+   */
+  @RequestMapping(value = "/exportXls")
+  public ModelAndView exportXls(HttpServletRequest request, SyLetterDeposit syLetterDeposit) {
+      return super.exportXls(request, syLetterDeposit, SyLetterDeposit.class, "预托书主表");
+  }
+
+  /**
+   * 通过excel导入数据
+   *
+   * @param request
+   * @param response
+   * @return
+   */
+  @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+  public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+      return super.importExcel(request, response, SyLetterDeposit.class);
+  }
+
+
+	 /**
+	  * 查询预装箱单
+	  * @param syPreAssembledPackingListVo
+	  * @param pageNo
+	  * @param pageSize
+	  * @param req
+	  * @return
+	  */
+	 @AutoLog(value = "预托书主表-查询预装箱单")
+	 @ApiOperation(value="预托书主表-查询预装箱单", notes="预托书主表-查询预装箱单")
+	 @GetMapping(value = "/querySyPreAssembledPackingList")
+	 public Result<IPage<SyPreAssembledPackingListVo>> querySyPreAssembledPackingList(SyPreAssembledPackingListVo syPreAssembledPackingListVo,
+									@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+									@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+									HttpServletRequest req) {
+
+		 Result<IPage<SyPreAssembledPackingListVo>> result = new Result<IPage<SyPreAssembledPackingListVo>>();
+		 QueryWrapper<SyPreAssembledPackingListVo> queryWrapper = new QueryWrapper<SyPreAssembledPackingListVo>();
+
+		 if(oConvertUtils.isNotEmpty(syPreAssembledPackingListVo.getItemNumber())){
+			 queryWrapper.eq("a.item_number",syPreAssembledPackingListVo.getItemNumber());
+		 }
+		 queryWrapper.eq("a.del_flag",0);
+		 Page<SyPreAssembledPackingListVo> page = new Page<SyPreAssembledPackingListVo>(pageNo, pageSize);
+		 IPage<SyPreAssembledPackingListVo> pageList = syLetterDepositService.querySyPreAssembledPackingList(page, queryWrapper);
+
+		 result.setSuccess(true);
+		 result.setMessage("查询成功!");
+		 result.setResult(pageList);
+		 return result;
+	 }
+
+
+	 /**
+	  * 预托书提交、取消提交
+	  * @param id
+	  * @param type
+	  * @return
+	  */
+	 @AutoLog(value = "预托书提交、取消提交,(提交:type=1,取消提交:type = 2)")
+	 @ApiOperation(value = "预托书提交、取消提交,(提交:type=1,取消提交:type = 2)", notes="预托书提交、取消提交,(提交:type=1,取消提交:type = 2)")
+	 @PostMapping(value = "/syShippingDetailsSubmit")
+	 public Result<Integer> syLetterDepositSubmit(String id, String type) {
+
+		 Result<Integer> result = new Result<Integer>();
+
+		 try {
+			 if(org.jeecg.modules.system.util.oConvertUtils.isEmpty(id)){
+				 result.setMessage("未拿到ID");
+				 result.setSuccess(false);
+				 return  result;
+			 }
+			 if(org.jeecg.modules.system.util.oConvertUtils.isEmpty(type)){
+				 result.setMessage("未拿到type");
+				 result.setSuccess(false);
+				 return  result;
+			 }
+
+			 //判断是否有该数据
+			 SyLetterDeposit shippingDetails = syLetterDepositService.getById(id);
+			 if(org.jeecg.modules.system.util.oConvertUtils.isEmpty(shippingDetails)){
+				 result.setMessage("未找到该数据!");
+				 result.setSuccess(false);
+				 return  result;
+			 }
+			 int i = syLetterDepositService.syLetterDepositSubmit(id, type);
+			 if(i>0){
+			 	if(type.equals("1")){
+					result.setSuccess(true);
+					result.setMessage("提交成功");
+					result.setResult(i);
+				}else{
+					result.setSuccess(true);
+					result.setMessage("取消提交成功");
+					result.setResult(i);
+				}
+
+			 }
+
+
+		 } catch (Exception ex) {
+			 ex.printStackTrace();
+			 log.error("提交失败:" + ex.getMessage());
+			 result.error500("提交失败:" + ex.getMessage());
+
+		 }
+		 return result;
+	 }
+}

+ 167 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/letterDeposit/controller/SyLetterDepositItemController.java

@@ -0,0 +1,167 @@
+package org.jeecg.modules.documents.letterDeposit.controller;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.documents.letterDeposit.entity.SyLetterDepositItem;
+import org.jeecg.modules.documents.letterDeposit.service.ISyLetterDepositItemService;
+import java.util.Date;
+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.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 com.alibaba.fastjson.JSON;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+ /**
+ * @Description: 预托书子表
+ * @Author: jeecg-boot
+ * @Date:   2022-06-20
+ * @Version: V1.0
+ */
+@Slf4j
+@Api(tags="预托书子表")
+@RestController
+@RequestMapping("/letterDeposit/syLetterDepositItem")
+public class SyLetterDepositItemController extends JeecgController<SyLetterDepositItem, ISyLetterDepositItemService> {
+	@Autowired
+	private ISyLetterDepositItemService syLetterDepositItemService;
+	
+	/**
+	 * 分页列表查询
+	 *
+	 * @param syLetterDepositItem
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	@AutoLog(value = "预托书子表-分页列表查询")
+	@ApiOperation(value="预托书子表-分页列表查询", notes="预托书子表-分页列表查询")
+	@GetMapping(value = "/list")
+	public Result<?> queryPageList(SyLetterDepositItem syLetterDepositItem,
+								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+								   HttpServletRequest req) {
+		QueryWrapper<SyLetterDepositItem> queryWrapper = QueryGenerator.initQueryWrapper(syLetterDepositItem, req.getParameterMap());
+		Page<SyLetterDepositItem> page = new Page<SyLetterDepositItem>(pageNo, pageSize);
+		IPage<SyLetterDepositItem> pageList = syLetterDepositItemService.page(page, queryWrapper);
+		return Result.OK(pageList);
+	}
+	
+	/**
+	 * 添加
+	 *
+	 * @param syLetterDepositItem
+	 * @return
+	 */
+	@AutoLog(value = "预托书子表-添加")
+	@ApiOperation(value="预托书子表-添加", notes="预托书子表-添加")
+	@PostMapping(value = "/add")
+	public Result<?> add(@RequestBody SyLetterDepositItem syLetterDepositItem) {
+		syLetterDepositItemService.save(syLetterDepositItem);
+		return Result.OK("添加成功!");
+	}
+	
+	/**
+	 * 编辑
+	 *
+	 * @param syLetterDepositItem
+	 * @return
+	 */
+	@AutoLog(value = "预托书子表-编辑")
+	@ApiOperation(value="预托书子表-编辑", notes="预托书子表-编辑")
+	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+	public Result<?> edit(@RequestBody SyLetterDepositItem syLetterDepositItem) {
+		syLetterDepositItemService.updateById(syLetterDepositItem);
+		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) {
+		syLetterDepositItemService.removeById(id);
+		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.syLetterDepositItemService.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) {
+		SyLetterDepositItem syLetterDepositItem = syLetterDepositItemService.getById(id);
+		return Result.OK(syLetterDepositItem);
+	}
+
+  /**
+   * 导出excel
+   *
+   * @param request
+   * @param syLetterDepositItem
+   */
+  @RequestMapping(value = "/exportXls")
+  public ModelAndView exportXls(HttpServletRequest request, SyLetterDepositItem syLetterDepositItem) {
+      return super.exportXls(request, syLetterDepositItem, SyLetterDepositItem.class, "预托书子表");
+  }
+
+  /**
+   * 通过excel导入数据
+   *
+   * @param request
+   * @param response
+   * @return
+   */
+  @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+  public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+      return super.importExcel(request, response, SyLetterDepositItem.class);
+  }
+
+}

+ 236 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/letterDeposit/entity/SyLetterDeposit.java

@@ -0,0 +1,236 @@
+package org.jeecg.modules.documents.letterDeposit.entity;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecgframework.poi.excel.annotation.Excel;
+
+/**
+ * @Description: 预托书主表
+ * @Author: jeecg-boot
+ * @Date:   2022-06-20
+ * @Version: V1.0
+ */
+@Data
+@TableName("sy_letter_deposit")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="sy_letter_deposit对象", description="预托书主表")
+public class SyLetterDeposit {
+    
+	/**主键id*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "主键id")
+	private java.lang.String id;
+	/**托书日期*/
+	@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 shippingOrderDate;
+	/**托书号*/
+	@Excel(name = "托书号", width = 15)
+    @ApiModelProperty(value = "托书号")
+	private java.lang.String shippingOrderNumber;
+	/**外销发票号码*/
+	@Excel(name = "外销发票号码", width = 15)
+    @ApiModelProperty(value = "外销发票号码")
+	private java.lang.String exportInvoiceNo;
+	/**经营单位*/
+	@Excel(name = "经营单位", width = 15)
+    @ApiModelProperty(value = "经营单位")
+	private java.lang.String unitInOperation;
+	/**经营单位地址*/
+	@Excel(name = "经营单位地址", width = 15)
+    @ApiModelProperty(value = "经营单位地址")
+	private java.lang.String unitInOperationAddress;
+	/**装运期限*/
+	@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 latestDateOfShipment;
+	/**最终船期*/
+	@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 theFinalShippingDate;
+	/**收货人*/
+	@Excel(name = "收货人", width = 15)
+    @ApiModelProperty(value = "收货人")
+	private java.lang.String consignee;
+	/**收货人地址*/
+	@Excel(name = "收货人地址", width = 15)
+    @ApiModelProperty(value = "收货人地址")
+	private java.lang.String consigneeAddress;
+	/**通知方*/
+	@Excel(name = "通知方", width = 15)
+    @ApiModelProperty(value = "通知方")
+	private java.lang.String notifyParty;
+	/**通知方地址*/
+	@Excel(name = "通知方地址", width = 15)
+    @ApiModelProperty(value = "通知方地址")
+	private java.lang.String notifyPartyAddress;
+	/**贸易国别*/
+	@Excel(name = "贸易国别", width = 15)
+    @ApiModelProperty(value = "贸易国别")
+	private java.lang.String tradeCountry;
+	/**运抵国别*/
+	@Excel(name = "运抵国别", width = 15)
+    @ApiModelProperty(value = "运抵国别")
+	private java.lang.String arriveInCountry;
+	/**出口口岸*/
+	@Excel(name = "出口口岸", width = 15)
+    @ApiModelProperty(value = "出口口岸")
+	private java.lang.String exportPort;
+	/**目的港*/
+	@Excel(name = "目的港", width = 15)
+    @ApiModelProperty(value = "目的港")
+	private java.lang.String destinationPort;
+	/**收汇方式*/
+	@Excel(name = "收汇方式", width = 15)
+    @ApiModelProperty(value = "收汇方式")
+	private java.lang.String exchangeEarningsValue;
+	/**收汇方式文本*/
+	@Excel(name = "收汇方式文本", width = 15)
+    @ApiModelProperty(value = "收汇方式文本")
+	private java.lang.String exchangeEarningsText;
+	/**成交方式*/
+	@Excel(name = "成交方式", width = 15)
+    @ApiModelProperty(value = "成交方式")
+	private java.lang.String termsOfDeliveryvalue;
+	/**成交方式文本*/
+	@Excel(name = "成交方式文本", width = 15)
+    @ApiModelProperty(value = "成交方式文本")
+	private java.lang.String termsOfDeliveryText;
+	/**金额*/
+	@Excel(name = "金额", width = 15)
+    @ApiModelProperty(value = "金额")
+	private java.math.BigDecimal money;
+	/**人民币*/
+	@Excel(name = "人民币", width = 15)
+    @ApiModelProperty(value = "人民币")
+	private java.math.BigDecimal cny;
+	/**美元*/
+	@Excel(name = "美元", width = 15)
+    @ApiModelProperty(value = "美元")
+	private java.math.BigDecimal usd;
+	/**订单号*/
+	@Excel(name = "订单号", width = 15)
+    @ApiModelProperty(value = "订单号")
+	private java.lang.String orderNumber;
+	/**客户简称*/
+	@Excel(name = "客户简称", width = 15)
+    @ApiModelProperty(value = "客户简称")
+	private java.lang.String clientAbbreviation;
+	/**分销点*/
+	@Excel(name = "分销点", width = 15)
+    @ApiModelProperty(value = "分销点")
+	private java.lang.String theDistribution;
+	/**总箱数*/
+	@Excel(name = "总箱数", width = 15)
+    @ApiModelProperty(value = "总箱数")
+	private java.math.BigDecimal boxNumber;
+	/**总毛重*/
+	@Excel(name = "总毛重", width = 15)
+    @ApiModelProperty(value = "总毛重")
+	private java.math.BigDecimal totalGrossWeight;
+	/**总体积*/
+	@Excel(name = "总体积", width = 15)
+    @ApiModelProperty(value = "总体积")
+	private java.math.BigDecimal totalVolume;
+	/**实际船期*/
+	@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 theActualShippingDate;
+	/**提单或承运收据*/
+	@Excel(name = "提单或承运收据", width = 15)
+    @ApiModelProperty(value = "提单或承运收据")
+	private java.lang.String billOfLadingOrCarriageReceipt;
+	/**抬头人*/
+	@Excel(name = "抬头人", width = 15)
+    @ApiModelProperty(value = "抬头人")
+	private java.lang.String addressee;
+	/**通知人*/
+	@Excel(name = "通知人", width = 15)
+    @ApiModelProperty(value = "通知人")
+	private java.lang.String notifier;
+	/**NOTIFY*/
+	@Excel(name = "NOTIFY", width = 15)
+    @ApiModelProperty(value = "NOTIFY")
+	private java.lang.String nottfy;
+	/**单据状态*/
+	@Excel(name = "单据状态", width = 15)
+    @ApiModelProperty(value = "单据状态")
+	private java.lang.String theDocumentsState;
+	/**预托书号*/
+	@Excel(name = "预托书号", width = 15)
+    @ApiModelProperty(value = "预托书号")
+	private java.lang.String depositaryReceiptNo;
+	/**创建人*/
+	@Excel(name = "创建人", width = 15)
+    @ApiModelProperty(value = "创建人")
+	private java.lang.String createBy;
+	/**创建日期*/
+	@Excel(name = "创建日期", 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 createTime;
+	/**更新人*/
+	@Excel(name = "更新人", width = 15)
+    @ApiModelProperty(value = "更新人")
+	private java.lang.String updateBy;
+	/**更新日期*/
+	@Excel(name = "更新日期", 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 updateTime;
+	/**组织*/
+	@Excel(name = "组织", width = 15)
+    @ApiModelProperty(value = "组织")
+	private java.lang.String pkOrg;
+	/**删除状态*/
+	@Excel(name = "删除状态", width = 15)
+    @ApiModelProperty(value = "删除状态")
+	private java.lang.String delFlag;
+	/**备注*/
+	@Excel(name = "备注", width = 15)
+    @ApiModelProperty(value = "备注")
+	private java.lang.Object memo;
+
+	/**预托书子表集合*/
+	@Excel(name = "预托书子表集合", width = 15)
+	@ApiModelProperty(value = "预托书子表集合")
+	@TableField(exist = false)
+	private List<SyLetterDepositItem> syLetterDepositItemList;
+
+	/**预托书人民币*/
+	@Excel(name = "预托书人民币", width = 15)
+	@ApiModelProperty(value = "预托书人民币")
+	@TableField(exist = false)
+	private List<SyRmb> syRmbList;
+
+	/**预托书美元*/
+	@Excel(name = "预托书美元", width = 15)
+	@ApiModelProperty(value = "预托书美元")
+	@TableField(exist = false)
+	private List<SyUsd> syUsdList;
+
+}

+ 193 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/letterDeposit/entity/SyLetterDepositItem.java

@@ -0,0 +1,193 @@
+package org.jeecg.modules.documents.letterDeposit.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 com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecgframework.poi.excel.annotation.Excel;
+
+/**
+ * @Description: 预托书子表
+ * @Author: jeecg-boot
+ * @Date:   2022-06-20
+ * @Version: V1.0
+ */
+@Data
+@TableName("sy_letter_deposit_item")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="sy_letter_deposit_item对象", description="预托书子表")
+public class SyLetterDepositItem {
+    
+	/**主键id*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "主键id")
+	private java.lang.String id;
+	/**预托书主表id*/
+	@Excel(name = "预托书主表id", width = 15)
+    @ApiModelProperty(value = "预托书主表id")
+	private java.lang.String syLetterDepositId;
+	/**预装箱单主表id*/
+	@Excel(name = "预装箱单主表id", width = 15)
+    @ApiModelProperty(value = "预装箱单主表id")
+	private java.lang.String syPreAssembledPackingListId;
+	/**预装箱单子表id*/
+	@Excel(name = "预装箱单子表id", width = 15)
+    @ApiModelProperty(value = "预装箱单子表id")
+	private java.lang.String syPreAssembledPackingListItemId;
+	/**账套*/
+	@Excel(name = "账套", width = 15)
+    @ApiModelProperty(value = "账套")
+	private java.lang.String acSetNo;
+	/**成衣工厂*/
+	@Excel(name = "成衣工厂", width = 15)
+    @ApiModelProperty(value = "成衣工厂")
+	private java.lang.String garmentFactory;
+	/**HOD*/
+	@Excel(name = "HOD", width = 15)
+    @ApiModelProperty(value = "HOD")
+	private java.lang.String hod;
+	/**STYLE NO*/
+	@Excel(name = "STYLE NO", width = 15)
+    @ApiModelProperty(value = "STYLE NO")
+	private java.lang.String styleNo;
+	/**PO NO*/
+	@Excel(name = "PO NO", width = 15)
+    @ApiModelProperty(value = "PO NO")
+	private java.lang.String poNo;
+	/**ITEM NO./SKU NO./UPC NO./PACKS CODE*/
+	@Excel(name = "ITEM NO./SKU NO./UPC NO./PACKS CODE", width = 15)
+    @ApiModelProperty(value = "ITEM NO./SKU NO./UPC NO./PACKS CODE")
+	private java.lang.String itemCode;
+	/**分销点*/
+	@Excel(name = "分销点", width = 15)
+    @ApiModelProperty(value = "分销点")
+	private java.lang.String distributionPoint;
+	/**PREPACK SKU*/
+	@Excel(name = "PREPACK SKU", width = 15)
+    @ApiModelProperty(value = "PREPACK SKU")
+	private java.lang.String prepackSku;
+	/**尺码*/
+	@Excel(name = "尺码", width = 15)
+    @ApiModelProperty(value = "尺码")
+	private java.lang.String size;
+	/**起始箱号*/
+	@Excel(name = "起始箱号", width = 15)
+    @ApiModelProperty(value = "起始箱号")
+	private java.lang.String startingBoxNumber;
+	/**结束箱号*/
+	@Excel(name = "结束箱号", width = 15)
+    @ApiModelProperty(value = "结束箱号")
+	private java.lang.String endCaseNumber;
+	/**颜色*/
+	@Excel(name = "颜色", width = 15)
+    @ApiModelProperty(value = "颜色")
+	private java.lang.String colour;
+	/**件数/箱*/
+	@Excel(name = "件数/箱", width = 15)
+    @ApiModelProperty(value = "件数/箱")
+	private java.lang.String piecesBox;
+	/**箱数*/
+	@Excel(name = "箱数", width = 15)
+    @ApiModelProperty(value = "箱数")
+	private java.math.BigDecimal boxNumber;
+	/**总件数*/
+	@Excel(name = "总件数", width = 15)
+    @ApiModelProperty(value = "总件数")
+	private java.math.BigDecimal total;
+	/**净重/箱*/
+	@Excel(name = "净重/箱", width = 15)
+    @ApiModelProperty(value = "净重/箱")
+	private java.math.BigDecimal netWeight;
+	/**总净重*/
+	@Excel(name = "总净重", width = 15)
+    @ApiModelProperty(value = "总净重")
+	private java.math.BigDecimal totalNetWeight;
+	/**毛重*/
+	@Excel(name = "毛重", width = 15)
+    @ApiModelProperty(value = "毛重")
+	private java.math.BigDecimal grossWeight;
+	/**总毛重*/
+	@Excel(name = "总毛重", width = 15)
+    @ApiModelProperty(value = "总毛重")
+	private java.math.BigDecimal totalGrossWeight;
+	/**外箱长度*/
+	@Excel(name = "外箱长度", width = 15)
+    @ApiModelProperty(value = "外箱长度")
+	private java.math.BigDecimal outerBoxLength;
+	/**外箱宽度*/
+	@Excel(name = "外箱宽度", width = 15)
+    @ApiModelProperty(value = "外箱宽度")
+	private java.math.BigDecimal outerBoxWidth;
+	/**外箱高度*/
+	@Excel(name = "外箱高度", width = 15)
+    @ApiModelProperty(value = "外箱高度")
+	private java.math.BigDecimal outerBoxHeight;
+	/**总体积*/
+	@Excel(name = "总体积", width = 15)
+    @ApiModelProperty(value = "总体积")
+	private java.math.BigDecimal totalVolume;
+	/**净净重*/
+	@Excel(name = "净净重", width = 15)
+    @ApiModelProperty(value = "净净重")
+	private java.math.BigDecimal netWeightToo;
+	/**单价*/
+	@Excel(name = "单价", width = 15)
+    @ApiModelProperty(value = "单价")
+	private java.math.BigDecimal unitPrice;
+	/**总价*/
+	@Excel(name = "总价", width = 15)
+    @ApiModelProperty(value = "总价")
+	private java.math.BigDecimal totalPrice;
+	/**排序*/
+	@Excel(name = "排序", width = 15)
+    @ApiModelProperty(value = "排序")
+	private java.lang.Integer sort;
+	/**创建人*/
+	@Excel(name = "创建人", width = 15)
+    @ApiModelProperty(value = "创建人")
+	private java.lang.String createBy;
+	/**创建日期*/
+	@Excel(name = "创建日期", 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 createTime;
+	/**更新人*/
+	@Excel(name = "更新人", width = 15)
+    @ApiModelProperty(value = "更新人")
+	private java.lang.String updateBy;
+	/**更新日期*/
+	@Excel(name = "更新日期", 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 updateTime;
+	/**组织*/
+	@Excel(name = "组织", width = 15)
+    @ApiModelProperty(value = "组织")
+	private java.lang.String pkOrg;
+	/**删除状态*/
+	@Excel(name = "删除状态", width = 15)
+    @ApiModelProperty(value = "删除状态")
+	private java.lang.String delFlag;
+	/**备注*/
+	@Excel(name = "备注", width = 15)
+    @ApiModelProperty(value = "备注")
+	private java.lang.Object memo;
+	/**集装箱代号*/
+	@ApiModelProperty(value = "集装箱代号")
+	private String containerCode;
+	/**集装箱号*/
+	@ApiModelProperty(value = "集装箱号")
+	private String containerNumber;
+}

+ 31 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/letterDeposit/entity/SyRmb.java

@@ -0,0 +1,31 @@
+package org.jeecg.modules.documents.letterDeposit.entity;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+@ApiModel(value="sy_rmb", description="预托书人民币")
+public class SyRmb {
+
+    @ApiModelProperty(value = "ID")
+    private String id;
+
+    @ApiModelProperty(value = "预托书主表id")
+    private String syLetterDepositId;
+
+    @ApiModelProperty(value = "货代")
+    private String freightForwarder;
+
+    @ApiModelProperty(value = "金额")
+    private BigDecimal amount;
+
+    @ApiModelProperty(value = "项目列")
+    private String itemColumn;
+
+    @ApiModelProperty(value = "删除标识")
+    private String delFlag;
+
+}

+ 32 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/letterDeposit/entity/SyUsd.java

@@ -0,0 +1,32 @@
+package org.jeecg.modules.documents.letterDeposit.entity;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+@ApiModel(value="sy_usd", description="预托书美元")
+public class SyUsd {
+
+
+    @ApiModelProperty(value = "ID")
+    private String id;
+
+    @ApiModelProperty(value = "预托书主表id")
+    private String syLetterDepositId;
+
+    @ApiModelProperty(value = "货代")
+    private String freightForwarder;
+
+    @ApiModelProperty(value = "金额")
+    private BigDecimal amount;
+
+    @ApiModelProperty(value = "项目列")
+    private String itemColumn;
+
+    @ApiModelProperty(value = "删除标识")
+    private String delFlag;
+}

+ 106 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/letterDeposit/entity/VO/SyPreAssembledPackingListVo.java

@@ -0,0 +1,106 @@
+package org.jeecg.modules.documents.letterDeposit.entity.VO;
+
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+@Data
+public class SyPreAssembledPackingListVo {
+
+    @ApiModelProperty(value = "主表ID")
+    private String id;
+    @ApiModelProperty(value = "子表ID")
+    private String itemId;
+
+    /**款号*/
+    @ApiModelProperty(value = "款号")
+    private String itemNumber;
+
+    /**客户简称*/
+    @Excel(name = "客户简称", width = 20)
+    @ApiModelProperty(value = "客户简称")
+    private java.lang.String customerAbbreviation;
+
+    /**预发货日期*/
+    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "预发货日期")
+    private Date preDeliveryDate;
+
+    /**PO NO*/
+    @Excel(name = "PO NO", width = 15)
+    @ApiModelProperty(value = "PO NO")
+    private String poNo;
+    /**分销点*/
+    @Excel(name = "分销点", width = 15)
+    @ApiModelProperty(value = "分销点")
+    private String distributionPoint;
+
+    /**备注*/
+    @Excel(name = "备注", width = 15)
+    @ApiModelProperty(value = "备注")
+    private String memo;
+
+    /**客户*/
+    @ApiModelProperty(value = "客户")
+    private String customer;
+    /**存货名称*/
+    @Excel(name = "存货名称", width = 20)
+    @ApiModelProperty(value = "存货名称")
+    private String inventoryName;
+
+    /**颜色*/
+    @Excel(name = "颜色", width = 15)
+    @ApiModelProperty(value = "颜色")
+    private String colour;
+
+    /**采购/委外订单号*/
+    @Excel(name = "采购/委外订单号", width = 20)
+    @ApiModelProperty(value = "采购/委外订单号")
+    private String spurOrSubOrder;
+    /**工厂单价*/
+    @Excel(name = "工厂单价", width = 20)
+    @ApiModelProperty(value = "工厂单价")
+    private java.math.BigDecimal factoryUnitPrice;
+    /**箱数*/
+    @Excel(name = "箱数", width = 15)
+    @ApiModelProperty(value = "箱数")
+    private java.math.BigDecimal boxNumber;
+    /**数量(按合并规则累计)*/
+    @Excel(name = "数量(按合并规则累计)", width = 20)
+    @ApiModelProperty(value = "数量(按合并规则累计)")
+    private java.math.BigDecimal totalQuantity;
+
+    /**订单类型*/
+    @ApiModelProperty(value = "订单类型")
+    private String orderType;
+    /**集装箱代号*/
+    @ApiModelProperty(value = "集装箱代号")
+    private String containerCode;
+    /**集装箱号*/
+    @ApiModelProperty(value = "集装箱号")
+    private String containerNumber;
+
+
+    /**总净重*/
+    @ApiModelProperty(value = "总净重")
+    private java.math.BigDecimal totalNetWeight;
+    /**总毛重*/
+    @ApiModelProperty(value = "总毛重")
+    private java.math.BigDecimal totalGrossWeight;
+    /**总体积*/
+    @ApiModelProperty(value = "总体积")
+    private java.math.BigDecimal totalVolume;
+    /**总价*/
+    @ApiModelProperty(value = "总价")
+    private java.math.BigDecimal totalPrice;
+    /**预托书号*/
+    @ApiModelProperty(value = "预托书号")
+    private String depositaryReceiptNo;
+
+}

+ 17 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/letterDeposit/mapper/SyLetterDepositItemMapper.java

@@ -0,0 +1,17 @@
+package org.jeecg.modules.documents.letterDeposit.mapper;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.documents.letterDeposit.entity.SyLetterDepositItem;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Description: 预托书子表
+ * @Author: jeecg-boot
+ * @Date:   2022-06-20
+ * @Version: V1.0
+ */
+public interface SyLetterDepositItemMapper extends BaseMapper<SyLetterDepositItem> {
+
+}

+ 37 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/letterDeposit/mapper/SyLetterDepositMapper.java

@@ -0,0 +1,37 @@
+package org.jeecg.modules.documents.letterDeposit.mapper;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.documents.letterDeposit.entity.SyLetterDeposit;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.jeecg.modules.documents.letterDeposit.entity.SyRmb;
+import org.jeecg.modules.documents.letterDeposit.entity.SyUsd;
+import org.jeecg.modules.documents.letterDeposit.entity.VO.SyPreAssembledPackingListVo;
+
+/**
+ * @Description: 预托书主表
+ * @Author: jeecg-boot
+ * @Date:   2022-06-20
+ * @Version: V1.0
+ */
+public interface SyLetterDepositMapper extends BaseMapper<SyLetterDeposit> {
+
+    //查询预装箱单
+    IPage<SyPreAssembledPackingListVo> querySyPreAssembledPackingList(IPage<SyPreAssembledPackingListVo> page, @Param("ew") QueryWrapper<SyPreAssembledPackingListVo> queryWrapper);
+
+    //删除预托书子表
+    public void syLetterDepositItemDelete(@Param("id") String id);
+
+    //新增人民币
+    public void syRmbAdd(@Param("rmbList") List<SyRmb> rmbList);
+    //新增美元
+    public void syUsdAdd(@Param("usdList") List<SyUsd> usdList);
+
+    //删除人民币
+    public void syRmbDelete(@Param("syLetterDepositId") String syLetterDepositId);
+    //删除美元
+    public void syUsdDelete(@Param("syLetterDepositId") String syLetterDepositId);
+}

+ 5 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/letterDeposit/mapper/xml/SyLetterDepositItemMapper.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.documents.letterDeposit.mapper.SyLetterDepositItemMapper">
+
+</mapper>

+ 63 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/letterDeposit/mapper/xml/SyLetterDepositMapper.xml

@@ -0,0 +1,63 @@
+<?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.documents.letterDeposit.mapper.SyLetterDepositMapper">
+
+
+    <select id="querySyPreAssembledPackingList" resultType="org.jeecg.modules.documents.letterDeposit.entity.VO.SyPreAssembledPackingListVo">
+
+select a.id as id,b.id as itemId,a.item_number as itemNumber,a.pre_delivery_date as preDeliveryDate ,b.inventory_name as inventoryName,b.po_no as poNo,b.distribution_point as distributionPoint,
+a.memo,a.customer,b.colour,b.box_number as  boxNumber,a.container_code as containerCode,b.pur_or_sub_order as spurOrSubOrder,
+a.container_number as containerNumber,a.total_net_weight as totalNetWeight,a.order_type as orderType,sum(b.total_quantity) as totalQuantity
+a.total_gross_weight as totalGrossWeight,a.total_volume as totalVolume,a.total_price as totalPrice,b.factory_unit_price as factoryUnitPrice,
+a.depositary_receipt_no as depositaryReceiptNo from sy_pre_assembled_packing_list a
+left join sy_pre_assembled_packing_list_item b
+on a.id = b.sy_pre_assembled_packing_list_id and b.del_flag = 0
+  ${ew.customSqlSegment}
+
+    </select>
+
+    <update id="syLetterDepositItemDelete">
+
+        update sy_letter_deposit_item
+        set del_flag = 1
+        where sy_letter_deposit_id = #{id}
+
+    </update>
+
+
+    <insert id="syRmbAdd">
+        insert into sy_rmb (id, sy_letter_deposit_id, freight_forwarder, amount, item_column,del_flag)
+        values
+        <foreach collection="rmbList" item="rmbList" separator=",">
+            (
+            #{rmbList.id}, #{rmbList.syLetterDepositId}, #{rmbList.freightForwarder}, #{rmbList.amount}, #{rmbList.itemColumn},0
+            )
+        </foreach>
+
+    </insert>
+
+    <insert id="syUsdAdd">
+        insert into sy_usd (id, sy_letter_deposit_id, freight_forwarder, amount, item_column,del_flag)
+        values
+        <foreach collection="rmbList" item="rmbList" separator=",">
+            (
+            #{rmbList.id}, #{rmbList.syLetterDepositId}, #{rmbList.freightForwarder}, #{rmbList.amount}, #{rmbList.itemColumn},0
+            )
+        </foreach>
+
+    </insert>
+
+    <update id="syRmbDelete">
+        update sy_rmb
+        set del_flag = '1'
+        where sy_letter_deposit_id = #{syLetterDepositId}
+
+    </update>
+
+    <update id="syUsdDelete">
+        update sy_rmb
+        set del_flag = '1'
+        where sy_letter_deposit_id = #{syLetterDepositId}
+
+    </update>
+</mapper>

+ 14 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/letterDeposit/service/ISyLetterDepositItemService.java

@@ -0,0 +1,14 @@
+package org.jeecg.modules.documents.letterDeposit.service;
+
+import org.jeecg.modules.documents.letterDeposit.entity.SyLetterDepositItem;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @Description: 预托书子表
+ * @Author: jeecg-boot
+ * @Date:   2022-06-20
+ * @Version: V1.0
+ */
+public interface ISyLetterDepositItemService extends IService<SyLetterDepositItem> {
+
+}

+ 43 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/letterDeposit/service/ISyLetterDepositService.java

@@ -0,0 +1,43 @@
+package org.jeecg.modules.documents.letterDeposit.service;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.jeecg.modules.documents.letterDeposit.entity.SyLetterDeposit;
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.documents.letterDeposit.entity.SyRmb;
+import org.jeecg.modules.documents.letterDeposit.entity.SyUsd;
+import org.jeecg.modules.documents.letterDeposit.entity.VO.SyPreAssembledPackingListVo;
+import org.jeecg.modules.documents.shippingDetails.entity.VO.OrderDataVo;
+import org.jeecg.modules.spapl.entity.SyPreAssembledPackingList;
+
+import java.util.List;
+
+/**
+ * @Description: 预托书主表
+ * @Author: jeecg-boot
+ * @Date:   2022-06-20
+ * @Version: V1.0
+ */
+public interface ISyLetterDepositService extends IService<SyLetterDeposit> {
+
+
+    //查询预装箱单
+    IPage<SyPreAssembledPackingListVo> querySyPreAssembledPackingList(IPage<SyPreAssembledPackingListVo> page, QueryWrapper<SyPreAssembledPackingListVo> queryWrapper);
+
+    //预托书新增
+    public SyLetterDeposit syLetterDepositAdd(SyLetterDeposit syLetterDeposit);
+
+    //预托书修改
+    public SyLetterDeposit syLetterDepositEdit(SyLetterDeposit syLetterDeposit);
+
+    //预托书提交、取消提交
+    public int syLetterDepositSubmit(String id,String type);
+
+    //预托书子表删除
+    public void syLetterDepositItemDelete(String id);
+
+    //预托书删除
+    public int syLetterDepositDelete(String id);
+
+
+}

+ 19 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/letterDeposit/service/impl/SyLetterDepositItemServiceImpl.java

@@ -0,0 +1,19 @@
+package org.jeecg.modules.documents.letterDeposit.service.impl;
+
+import org.jeecg.modules.documents.letterDeposit.entity.SyLetterDepositItem;
+import org.jeecg.modules.documents.letterDeposit.mapper.SyLetterDepositItemMapper;
+import org.jeecg.modules.documents.letterDeposit.service.ISyLetterDepositItemService;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+/**
+ * @Description: 预托书子表
+ * @Author: jeecg-boot
+ * @Date:   2022-06-20
+ * @Version: V1.0
+ */
+@Service
+public class SyLetterDepositItemServiceImpl extends ServiceImpl<SyLetterDepositItemMapper, SyLetterDepositItem> implements ISyLetterDepositItemService {
+
+}

+ 225 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/letterDeposit/service/impl/SyLetterDepositServiceImpl.java

@@ -0,0 +1,225 @@
+package org.jeecg.modules.documents.letterDeposit.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.hibernate.annotations.Source;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.documents.letterDeposit.entity.SyLetterDeposit;
+import org.jeecg.modules.documents.letterDeposit.entity.SyLetterDepositItem;
+import org.jeecg.modules.documents.letterDeposit.entity.SyRmb;
+import org.jeecg.modules.documents.letterDeposit.entity.SyUsd;
+import org.jeecg.modules.documents.letterDeposit.entity.VO.SyPreAssembledPackingListVo;
+import org.jeecg.modules.documents.letterDeposit.mapper.SyLetterDepositMapper;
+import org.jeecg.modules.documents.letterDeposit.service.ISyLetterDepositService;
+import org.jeecg.modules.documents.shippingDetails.entity.SyShippingDetails;
+import org.jeecg.modules.spapl.entity.SyPreAssembledPackingList;
+import org.jeecg.modules.spapl.entity.SyPreAssembledPackingListItem;
+import org.jeecg.modules.spapl.service.impl.SyPreAssembledPackingListServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Description: 预托书主表
+ * @Author: jeecg-boot
+ * @Date:   2022-06-20
+ * @Version: V1.0
+ */
+@Service
+@Transactional
+public class SyLetterDepositServiceImpl extends ServiceImpl<SyLetterDepositMapper, SyLetterDeposit> implements ISyLetterDepositService {
+
+    @Resource
+    private SyLetterDepositMapper syLetterDepositMapper;
+    @Autowired
+    private SyLetterDepositItemServiceImpl syLetterDepositItemService;
+    @Autowired
+    private SyPreAssembledPackingListServiceImpl syPreAssembledPackingListService;
+
+
+    /**
+     * 查询预装箱单
+     * @param page
+     * @param queryWrapper
+     * @return
+     */
+    @Override
+    public IPage<SyPreAssembledPackingListVo> querySyPreAssembledPackingList(IPage<SyPreAssembledPackingListVo> page, QueryWrapper<SyPreAssembledPackingListVo> queryWrapper) {
+        return syLetterDepositMapper.querySyPreAssembledPackingList(page,queryWrapper);
+    }
+
+    /**
+     * 新增预托书
+     * @param syLetterDeposit
+     * @return
+     */
+    @Override
+    public SyLetterDeposit syLetterDepositAdd(SyLetterDeposit syLetterDeposit) {
+        //子表集合
+        List<SyLetterDepositItem> syLetterDepositItemList = new ArrayList<SyLetterDepositItem>();
+        //用于修改的ID
+        String syId = syLetterDeposit.getId();
+        //设置ID
+        String id = oConvertUtils.id();
+        syLetterDeposit.setId(id);
+
+        //ID为空是新增,ID不为空是修改
+        if(oConvertUtils.isEmpty(syId)){
+            SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+            //String createTime = sf.format(new Date());
+            syLetterDeposit.setCreateTime(new Date());
+           // syLetterDeposit.setDepositaryReceiptNo("Y"+createTime);
+            syLetterDeposit.setTheDocumentsState("0");//状态
+            //回写预装箱单预托书号
+            String preId = syLetterDeposit.getSyLetterDepositItemList().get(0).getSyPreAssembledPackingListId();
+            if(oConvertUtils.isNotEmpty(preId)){
+              SyPreAssembledPackingList preEntity = new SyPreAssembledPackingList();
+              preEntity.setId(preId);
+              //预托书号
+              preEntity.setDepositaryReceiptNo(syLetterDeposit.getDepositaryReceiptNo());
+              syPreAssembledPackingListService.updateById(preEntity);
+
+            }
+
+        }
+        //新增子表
+        List<SyLetterDepositItem> list = syLetterDeposit.getSyLetterDepositItemList();
+        if(list.size()!=0){
+            for (SyLetterDepositItem li:list){
+               // List<String> stringList = new ArrayList<>();
+                //设置ID
+                li.setId(oConvertUtils.id());
+                //设置预托书主表ID
+                li.setSyLetterDepositId(id);
+                syLetterDepositItemList.add(li);
+
+                //回写集装箱单号与集装箱代号
+                String perid = li.getSyPreAssembledPackingListId();
+                String itemIdSplit[] = perid.split(",");
+                for (String item:itemIdSplit) {
+                    SyPreAssembledPackingList preEntity = new SyPreAssembledPackingList();
+                    preEntity.setId(item);
+                    //集装箱代号
+                    preEntity.setContainerCode(li.getContainerCode());
+                    //集装箱号
+                    preEntity.setContainerNumber(li.getContainerNumber());
+                    syPreAssembledPackingListService.updateById(preEntity);
+                }
+            }
+            if(syLetterDepositItemList.size()!=0){
+                syLetterDepositItemService.saveBatch(syLetterDepositItemList);
+            }
+        }
+
+        //新增人民币
+        List<SyRmb> rmbList = syLetterDeposit.getSyRmbList();
+        for(SyRmb rmb:rmbList){
+            rmb.setId(oConvertUtils.id());
+            rmb.setSyLetterDepositId(syLetterDeposit.getId());
+        }
+        syLetterDepositMapper.syRmbAdd(rmbList);
+        //新增美元
+        List<SyUsd> usdList = syLetterDeposit.getSyUsdList();
+        for(SyUsd rmb:usdList){
+            rmb.setId(oConvertUtils.id());
+            rmb.setSyLetterDepositId(syLetterDeposit.getId());
+        }
+        syLetterDepositMapper.syUsdAdd(usdList);
+
+        //新增主表
+       boolean boo =  save(syLetterDeposit);
+        if(boo){
+            return syLetterDeposit;
+        }else{
+            return null;
+        }
+    }
+
+
+    /**
+     * 预托书修改
+     * @param syLetterDeposit
+     * @return
+     */
+    @Override
+    public SyLetterDeposit syLetterDepositEdit(SyLetterDeposit syLetterDeposit) {
+
+        //删除子表
+        String id = syLetterDeposit.getId();
+        if(oConvertUtils.isNotEmpty(id)){
+            syLetterDepositMapper.syLetterDepositItemDelete(id);
+            //删除主表
+            syLetterDeposit.setDelFlag("1");
+            updateById(syLetterDeposit);
+
+            //删除人民币
+            syLetterDepositMapper.syRmbDelete(id);
+            //删除美元
+            syLetterDepositMapper.syUsdDelete(id);
+            //新增
+            syLetterDepositAdd(syLetterDeposit);
+        }
+        return syLetterDeposit;
+    }
+
+    /**
+     * 预托书提交
+     * @param id
+     * @param type
+     * @return
+     */
+    @Override
+    public int syLetterDepositSubmit(String id, String type) {
+        int i = 0;
+        SyLetterDeposit entity = getById(id);
+
+        if(oConvertUtils.isNotEmpty(entity) && type.equals("1")){
+            entity.setTheDocumentsState("1");
+            updateById(entity);
+            i = 1;
+        }else if(oConvertUtils.isNotEmpty(entity) && type.equals("2")){
+            entity.setTheDocumentsState("0");
+            updateById(entity);
+            i = 1;
+        }
+        return i;
+    }
+
+
+    /**
+     * 删除子表预托书
+     * @param id
+     */
+    @Override
+    public void syLetterDepositItemDelete(String id) {
+       syLetterDepositMapper.syLetterDepositItemDelete(id);
+    }
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    @Override
+    public int syLetterDepositDelete(String id) {
+        //删除子表
+        syLetterDepositMapper.syLetterDepositItemDelete(id);
+        //删除主表
+        SyLetterDeposit entity =  getById(id);
+        entity.setDelFlag("1");
+        boolean boo = updateById(entity);
+        if(boo){
+            return 1;
+        }else{
+            return 0;
+        }
+    }
+}

+ 115 - 16
jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/shippingDetails/controller/SyShippingDetailsController.java

@@ -5,6 +5,7 @@ import java.util.*;
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
+import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
@@ -29,10 +30,13 @@ import org.jeecg.modules.documents.shippingDetails.entity.VO.OrderDataVo;
 import org.jeecg.modules.documents.shippingDetails.entity.VO.PushShippingDeialVo;
 import org.jeecg.modules.documents.shippingDetails.entity.VO.PushShippingVO;
 import org.jeecg.modules.documents.shippingDetails.entity.VO.SyShippingDetailsVo;
+import org.jeecg.modules.documents.shippingDetails.mapper.SyShippingDetailsMapper;
 import org.jeecg.modules.documents.shippingDetails.service.ISyShippingDetailsItemService;
 import org.jeecg.modules.documents.shippingDetails.service.ISyShippingDetailsService;
 
 import java.util.logging.SimpleFormatter;
+
+import org.jeecg.modules.spapl.vo.SyPreAssembledPackingListPage;
 import org.jeecg.modules.system.util.oConvertUtils;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -81,6 +85,8 @@ public class SyShippingDetailsController extends JeecgController<SyShippingDetai
 	private ISyDeclarationElementsService syDeclarationElementsService;
 	 @Autowired
 	private ISyDeclarationElementsItemService syDeclarationElementsItemService;
+	 @Resource
+	 private SyShippingDetailsMapper syShippingDetailsMapper;
 	
 	/**
 	 * 分页列表查询
@@ -119,6 +125,7 @@ public class SyShippingDetailsController extends JeecgController<SyShippingDetai
 		if(oConvertUtils.isNotEmpty(syShippingDetails.getItemNumber())){
 			queryWrapper.eq("t.itemNumber",syShippingDetails.getItemNumber());
 		}
+
 		Page<SyShippingDetailsVo> page = new Page<SyShippingDetailsVo>(pageNo, pageSize);
 		IPage<SyShippingDetailsVo> pageList = syShippingDetailsService.queryShippingDetails(page, queryWrapper);
 		result.setSuccess(true);
@@ -323,7 +330,16 @@ public class SyShippingDetailsController extends JeecgController<SyShippingDetai
    */
   @RequestMapping(value = "/exportXls")
   public ModelAndView exportXls(HttpServletRequest request, SyShippingDetails syShippingDetails) {
-      return super.exportXls(request, syShippingDetails, SyShippingDetails.class, "发运明细主表");
+
+
+
+	  ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
+	  mv.addObject(NormalExcelConstants.FILE_NAME, "预装箱单主表");
+	  mv.addObject(NormalExcelConstants.CLASS, SyPreAssembledPackingListPage.class);
+	  mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("预装箱单主表数据", "导出人:admin", "预装箱单主表"));
+	 //mv.addObject(NormalExcelConstants.DATA_LIST, pageList);
+	  return mv;
+
   }
 
   /**
@@ -373,9 +389,15 @@ public class SyShippingDetailsController extends JeecgController<SyShippingDetai
 //		  }
 		  int i = syShippingDetailsService.syShippingDetailsSubmit(syShippingDetails.getId(),syShippingDetails.getType());
 		  if(i>0){
-			  result.setMessage("提交成功!");
-			  result.setSuccess(true);
-			  result.setResult(shippingDetails);
+			  if(shippingDetails.getType().equals("1")){
+				  result.setSuccess(true);
+				  result.setMessage("提交成功");
+				  result.setResult(shippingDetails);
+			  }else{
+				  result.setSuccess(true);
+				  result.setMessage("取消提交成功");
+				  result.setResult(shippingDetails);
+			  }
 		  }
 
 	  }catch (Exception ex){
@@ -419,6 +441,9 @@ public class SyShippingDetailsController extends JeecgController<SyShippingDetai
 	  }
 	  queryWrapper.eq("a.del_flag", 0);
 	  queryWrapper.gt("b.surplus_num", 0);
+	  queryWrapper.groupBy("a.order_number,a.order_date,a.customer_order_number,a.sales_type_text,a.customer_abbreviation,a.customer_name,a.supplier," +
+			  "a.sales_department,a.salesman,a.price_remarks,a.order_remarks,a.account,a.business_type_text," +
+			  "a.order_change_description,a.collaborative_route,b.item_number,b.small_po,b.inventory_name,b.colour,b.distribution_point,b.pack_id,b.coding_rules");
 	  queryWrapper.orderByDesc("a.order_number");
 
 	  IPage<OrderDataVo> pageList = syShippingDetailsService.queryOrderData(page, queryWrapper);
@@ -512,7 +537,7 @@ public class SyShippingDetailsController extends JeecgController<SyShippingDetai
 
 	 /**
 	  * 查询报关要素
-	  * @param hsCode
+	  * @param
 	  * @param request
 	  * @param response
 	  * @return
@@ -520,28 +545,26 @@ public class SyShippingDetailsController extends JeecgController<SyShippingDetai
 	 @AutoLog(value = "查询报关要素")
 	 @ApiOperation(value="查询报关要素", notes="查询报关要素")
 	 @GetMapping(value = "/queryDeclarationElements")
-  public Result<SyDeclarationElements> queryDeclarationElements(String hsCode,String id,
+  public Result<SyDeclarationElements> queryDeclarationElements(String inventoryName,String itemNumber,String account,
 																HttpServletRequest request, HttpServletResponse response){
 
   	Result<SyDeclarationElements> result = new Result<SyDeclarationElements>();
 
-  	if(oConvertUtils.isEmpty(hsCode)){
-  		result.setMessage("HsCode没有获取到!");
-  		result.setSuccess(false);
-  		return result;
+  	if(oConvertUtils.isEmpty(inventoryName) || oConvertUtils.isEmpty(itemNumber)) {
+		result.setMessage("存货名称、款号!未传值");
+		result.setSuccess(false);
+		return result;
 	}
-  	 //查询发运明细主表 获取报关品名、hscode、英文品名
-		 SyShippingDetails entity =  syShippingDetailsService.getById(id);
 
   	     //查询报关要素主表
 		 QueryWrapper<SyDeclarationElements> queryWrapper = new QueryWrapper<SyDeclarationElements>();
-  	     queryWrapper.eq("hs_code",hsCode).eq("del_flag",0);
+  	     queryWrapper.eq("inventory_name",inventoryName).eq("ac_set_no",account).eq("item_number",itemNumber).eq("del_flag",0);
   	     List<SyDeclarationElements> syDeclarationElements = syDeclarationElementsService.list(queryWrapper);
 		 if(syDeclarationElements.size()==0){
 			 SyDeclarationElements syDeclarationElementsEntityNull = new SyDeclarationElements();
-			 syDeclarationElementsEntityNull.setHsCode(entity.getHsCode());
-			 syDeclarationElementsEntityNull.setEnglishProductName(entity.getEnglishProductName());
-			 syDeclarationElementsEntityNull.setDeclarationName(entity.getDeclarationName());
+//			 syDeclarationElementsEntityNull.setHsCode(entity.getHsCode());
+//			 syDeclarationElementsEntityNull.setEnglishProductName(entity.getEnglishProductName());
+//			 syDeclarationElementsEntityNull.setDeclarationName(entity.getDeclarationName());
 
 			 List<SyDeclarationElementsItem> entityList = new ArrayList<>();
 			 syDeclarationElementsEntityNull.setSyDeclarationElementsItemList(entityList);
@@ -602,4 +625,80 @@ public class SyShippingDetailsController extends JeecgController<SyShippingDetai
 			}
 		 return result;
 	 }
+
+
+	 /**
+	  * 额外维护款号、物料成分、是否做TC证书
+	  * @param ids
+	  * @param itemNumber
+	  * @param materialComposition
+	  * @param tc
+	  * @return
+	  */
+	 @ApiOperation(value="额外维护款号、物料成分、是否做TC证书", notes="额外维护款号、物料成分、是否做TC证书")
+	 @PostMapping(value = "/updateByTcNumberMaterial")
+	 public Result<Integer> updateByTcNumberMaterial(String ids,String itemNumber,String materialComposition,String tc ){
+
+		 Result<Integer> result = new Result<>();
+			try{
+			   if(oConvertUtils.isEmpty(itemNumber)){
+				  result.setSuccess(false);
+				  result.setMessage("款号,未获取到");
+				  return result;
+			   }
+			 if(oConvertUtils.isEmpty(materialComposition)){
+				 result.setSuccess(false);
+				 result.setMessage("物料成分,未获取到");
+				 return result;
+			 }
+			 if(oConvertUtils.isEmpty(tc)){
+				 result.setSuccess(false);
+				 result.setMessage("是否TC,未获取到");
+				 return result;
+			 }
+			 int size = syShippingDetailsService.updateByTcNumberMaterial(ids, itemNumber, materialComposition, tc);
+			 if(size>0){
+				 result.setSuccess(true);
+				 result.setMessage("维护成功!");
+				 result.setResult(size);
+			 }
+
+			}catch (Exception ex){
+				ex.printStackTrace();
+				log.error("维护失败:" + ex.getMessage());
+				ex.printStackTrace();
+			}
+	 	   return  result;
+	 }
+
+
+	 /**
+	  * 订单数据明细展示
+	  * @param itemId
+	  * @return
+	  */
+	 @ApiOperation(value="订单数据明细展示", notes="订单数据明细展示")
+	 @GetMapping(value = "/displayDetails")
+	 public Result<List<OrderDataVo>> displayDetails(String itemId){
+
+	 	Result<List<OrderDataVo>> result = new Result<>();
+	 	List<String> stringList = new ArrayList<>();
+		 QueryWrapper<OrderDataVo> queryWrapper = new QueryWrapper<>();
+
+		 Page<OrderDataVo> page = new Page<OrderDataVo>(1, -1);
+
+		 String itemIdSplit[] = itemId.split(",");
+		 for (String li:itemIdSplit){
+			 stringList.add(li);
+		 }
+		 queryWrapper.in("b.id",stringList).eq("a.del_flag",0);
+
+		 IPage<OrderDataVo> pageList = syShippingDetailsMapper.displayDetails(page, queryWrapper);
+
+		 result.setSuccess(true);
+		 result.setMessage("查询成功!");
+		 result.setResult(pageList.getRecords());
+
+		 return result;
+	 }
 }

+ 3 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/shippingDetails/entity/VO/SyShippingDetailsVo.java

@@ -15,6 +15,9 @@ public class SyShippingDetailsVo {
     @ApiModelProperty(value = "id")
     private java.lang.String id;
 
+    @ApiModelProperty(value = "子表ID数据")
+    private String itemIds;
+
     /**单据号*/
     @Excel(name = "单据号", width = 15)
     @ApiModelProperty(value = "单据号")

+ 5 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/shippingDetails/mapper/SyShippingDetailsMapper.java

@@ -33,4 +33,9 @@ public interface SyShippingDetailsMapper extends BaseMapper<SyShippingDetails> {
 
     //发运明细推送(查询子表)
     public List<PushShippingDeialVo> pushSyShippingDeial(@Param("shippingDetailsId") String shippingDetailsId);
+
+    //发运明细查询订单数据
+    public IPage<OrderDataVo> displayDetails(IPage<OrderDataVo> page, @Param("ew") QueryWrapper<OrderDataVo> queryWrapper);
+
+
 }

+ 22 - 5
jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/shippingDetails/mapper/xml/SyShippingDetailsMapper.xml

@@ -4,11 +4,11 @@
 
     <select id="queryOrderData" resultType="org.jeecg.modules.documents.shippingDetails.entity.VO.OrderDataVo">
 
-        select b.sy_order_data_id as syOrderDataId,b.id as syOrderDataItemId ,a.order_number as orderNumber,b.item_number as itemNumber,b.small_po as smallPo,b.pk_org as pkOrg,a.order_date as orderDate,b.inventory_name as inventoryName,
-         b.colour as colour,b.size as size,b.coding_rules as codingRules,b.quantity as quantity,a.business_type_value as businessTypeText,a.customer_order_number as customerOrderNumber,
-           a.sales_type_text as salesTypeText,a.customer_abbreviation as customerAbbreviation,a.customer_name as customerName,b.surplus_num as surplusNum,
+        select b.sy_order_data_id as syOrderDataId,GROUP_CONCAT(b.id) as syOrderDataItemId ,a.order_number as orderNumber,b.item_number as itemNumber,b.small_po as smallPo,b.pk_org as pkOrg,a.order_date as orderDate,b.inventory_name as inventoryName,
+         b.colour as colour,b.size as size,b.coding_rules as codingRules,sum(b.quantity) as quantity,a.business_type_value as businessTypeText,a.customer_order_number as customerOrderNumber,
+           a.sales_type_text as salesTypeText,a.customer_abbreviation as customerAbbreviation,a.customer_name as customerName,sum(b.surplus_num) as surplusNum,
            a.brand_side as brandSide,a.exchange_rate as exchangeRate,b.specification_and_model as specificationAndModel,a.account as account,
-           b.distribution_point as distributionPoint,pack_id as packId,a.supplier as supplier,b.unit_price_including_tax as unitPriceIncludingTax,
+           b.distribution_point as distributionPoint,b.pack_id as packId,a.supplier as supplier,b.unit_price_including_tax as unitPriceIncludingTax,
            a.whole_order_total as wholeOrderTotal,a.sales_department as salesDepartment,a.salesman as salesman,a.currency_text as currencyText,a.third_party as thirdParty,
             a.deposit_ratio as depositRatio,a.deposit as deposit,a.collaborative_route as collaborativeRoute,a.term_of_payment as termOfPayment,a.end_customer as endCustomer,
              a.order_remarks as orderRemarks,a.price_remarks as priceRemarks,a.order_change_description as orderChangeDescription from sy_order_data a
@@ -35,7 +35,8 @@
     a.english_product_name as englishProductName,a.garment_factory as garmentFactory from sy_shipping_details a
 left join sy_shipping_details_item b
 on a.id = b.shipping_details_id and b.del_flag = 0
-where a.del_flag = 0 group by a.id order by a.document_no desc) as t
+where a.del_flag = 0 GROUP BY a.document_no,b.order_number,b.customer_abbreviation,b.sales_department,b.salesman,b.small_po,b.pack_id,b.distribution_point,
+				b.item_number,a.pre_delivery_date,a.pre_completion_date,b.inventory_name,b.pur_or_sub_order,a.order_type,a.garment_factory order by a.document_no desc) as t
 ${ew.customSqlSegment}
 
 </select>
@@ -114,4 +115,20 @@ ${ew.customSqlSegment}
     </select>
 
 
+    <select id="displayDetails" resultType="org.jeecg.modules.documents.shippingDetails.entity.VO.OrderDataVo">
+        select b.sy_order_data_id as syOrderDataId,b.id as syOrderDataItemId ,a.order_number as orderNumber,b.item_number as itemNumber,b.small_po as smallPo,b.pk_org as pkOrg,a.order_date as orderDate,b.inventory_name as inventoryName,
+         b.colour as colour,b.size as size,b.coding_rules as codingRules,b.quantity as quantity,a.business_type_value as businessTypeText,a.customer_order_number as customerOrderNumber,
+           a.sales_type_text as salesTypeText,a.customer_abbreviation as customerAbbreviation,a.customer_name as customerName,b.surplus_num as surplusNum,
+           a.brand_side as brandSide,a.exchange_rate as exchangeRate,b.specification_and_model as specificationAndModel,a.account as account,
+           b.distribution_point as distributionPoint,b.pack_id as packId,a.supplier as supplier,b.unit_price_including_tax as unitPriceIncludingTax,
+           a.whole_order_total as wholeOrderTotal,a.sales_department as salesDepartment,a.salesman as salesman,a.currency_text as currencyText,a.third_party as thirdParty,
+            a.deposit_ratio as depositRatio,a.deposit as deposit,a.collaborative_route as collaborativeRoute,a.term_of_payment as termOfPayment,a.end_customer as endCustomer,
+             a.order_remarks as orderRemarks,a.price_remarks as priceRemarks,a.order_change_description as orderChangeDescription from sy_order_data a
+        left join sy_order_data_item b
+        on a.id = b.sy_order_data_id and b.del_flag = 0
+        ${ew.customSqlSegment}
+
+
+    </select>
+
 </mapper>

+ 9 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/shippingDetails/service/ISyShippingDetailsService.java

@@ -50,4 +50,13 @@ public interface ISyShippingDetailsService extends IService<SyShippingDetails> {
     //发运明细推送(查询子表)
     public List<PushShippingDeialVo> pushSyShippingDeial(String shippingDetailsId);
 
+    //额外维护款号、物料成分、是否做TC证书
+    public int updateByTcNumberMaterial(String ids,String itemNumber,String materialComposition,String tc);
+
+    //导出查询(单据号,子表ID集合)
+    public List<SyShippingDetailsVo> exCelQuery(String documentNo ,List<String> itemIds);
+
+    //展示订单合并明细数据
+    public List<SyShippingDetailsVo> displayDetails();
+
 }

+ 39 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/shippingDetails/service/impl/SyShippingDetailsServiceImpl.java

@@ -239,4 +239,43 @@ public class SyShippingDetailsServiceImpl extends ServiceImpl<SyShippingDetailsM
     public List<PushShippingDeialVo> pushSyShippingDeial(String shippingDetailsId) {
         return syShippingDetailsMapper.pushSyShippingDeial(shippingDetailsId);
     }
+
+
+    /**
+     * 额外维护款号、物料成分、是否做TC证书
+     * @param ids
+     * @param itemNumber
+     * @param materialComposition
+     * @param tc
+     * @return
+     */
+    @Override
+    public int updateByTcNumberMaterial(String ids, String itemNumber, String materialComposition, String tc) {
+        int i = 0;
+        String idsSplit[] = ids.split(",");
+        for(String str:idsSplit){
+            SyShippingDetailsItem itemEntity = new SyShippingDetailsItem();
+            itemEntity.setId(str);
+            itemEntity.setItemNumber(itemNumber);
+            itemEntity.setMaterialComposition(materialComposition);
+            itemEntity.setIsTc(tc);
+            Boolean boo =  syShippingDetailsItemService.updateById(itemEntity);
+           if(boo){
+               i= 1;
+           }else{
+               i= 0;
+           }
+        }
+        return i;
+    }
+
+    @Override
+    public List<SyShippingDetailsVo> exCelQuery(String documentNo, List<String> itemIds) {
+        return null;
+    }
+
+    @Override
+    public List<SyShippingDetailsVo> displayDetails() {
+        return null;
+    }
 }

+ 3 - 3
jeecg-boot-module-system/src/main/java/org/jeecg/modules/openApi/controller/MOMainController.java

@@ -112,7 +112,7 @@ public class MOMainController implements ApplicationContextAware {
                             " on mo.cPersonCode = hr1.cPsn_Num " +
                             " left join foreigncurrency curr " +
                             " on mo.cexch_name = curr.cexch_name " +
-                            " where  mo.iVerifyStateNew = 2 and ((mo.dVerifyTime>'"+lasttimeSf+"' or mo.dChangeVerifyTime >'"+lasttimeSf+"' and cDefine16 is null) or (mo.dVerifyTime>'"+lasttimeSf+"' or mo.dChangeVerifyTime >'"+lasttimeSf+"' and cDefine16 =1)) and mo.dChangeVerifyTime is null  order by mo.dCreateTime desc";
+                            " where  mo.iVerifyStateNew = 2 and ((mo.dVerifyTime>'"+lasttimeSf+"' or mo.dChangeVerifyTime >'"+lasttimeSf+"' and cDefine16 is null) or (mo.dVerifyTime>'"+lasttimeSf+"' or mo.dChangeVerifyTime >'"+lasttimeSf+"' and cDefine16 =1))  order by mo.dCreateTime desc";
 
                     List<Map<String, Object>> list = senYuDataSourceOne.queryForList(sql);
                     for(Map<String, Object> map:list){
@@ -137,7 +137,7 @@ public class MOMainController implements ApplicationContextAware {
                             " on mo.cPersonCode = hr1.cPsn_Num " +
                             " left join foreigncurrency curr " +
                             " on mo.cexch_name = curr.cexch_name " +
-                            " where  mo.iVerifyStateNew = 2 and ((mo.dVerifyTime>'"+lasttimeSf+"' or mo.dChangeVerifyTime >'"+lasttimeSf+"' and cDefine16 is null) or (mo.dVerifyTime>'"+lasttimeSf+"' or mo.dChangeVerifyTime >'"+lasttimeSf+"' and cDefine16 =1))  and mo.dChangeVerifyTime is null order by mo.dCreateTime desc";
+                            " where  mo.iVerifyStateNew = 2 and ((mo.dVerifyTime>'"+lasttimeSf+"' or mo.dChangeVerifyTime >'"+lasttimeSf+"' and cDefine16 is null) or (mo.dVerifyTime>'"+lasttimeSf+"' or mo.dChangeVerifyTime >'"+lasttimeSf+"' and cDefine16 =1))   order by mo.dCreateTime desc";
 
                     List<Map<String, Object>> list = senYuDataSourceTwo.queryForList(sql);
                     for(Map<String, Object> map:list){
@@ -162,7 +162,7 @@ public class MOMainController implements ApplicationContextAware {
                             " on mo.cPersonCode = hr1.cPsn_Num " +
                             " left join foreigncurrency curr " +
                             " on mo.cexch_name = curr.cexch_name " +
-                            " where  mo.iVerifyStateNew = 2 and ((mo.dVerifyTime>'"+lasttimeSf+"' or mo.dChangeVerifyTime >'"+lasttimeSf+"' and cDefine16 is null) or (mo.dVerifyTime>'"+lasttimeSf+"' or mo.dChangeVerifyTime >'"+lasttimeSf+"' and cDefine16 =1))  and mo.dChangeVerifyTime is null order by mo.dCreateTime desc";
+                            " where  mo.iVerifyStateNew = 2 and ((mo.dVerifyTime>'"+lasttimeSf+"' or mo.dChangeVerifyTime >'"+lasttimeSf+"' and cDefine16 is null) or (mo.dVerifyTime>'"+lasttimeSf+"' or mo.dChangeVerifyTime >'"+lasttimeSf+"' and cDefine16 =1))  order by mo.dCreateTime desc";
 
                     List<Map<String, Object>> list = iSenYuDataSourceThree.queryForList(sql);
                     for(Map<String, Object> map:list){

+ 3 - 3
jeecg-boot-module-system/src/main/java/org/jeecg/modules/openApi/controller/POPomainController.java

@@ -105,7 +105,7 @@ public class POPomainController implements ApplicationContextAware {
                             "on mo.cPersonCode = hr1.cPsn_Num " +
                             "left join foreigncurrency curr " +
                             "on mo.cexch_name = curr.cexch_name " +
-                            "where ((cAuditTime>'"+lasttimeSf+"' or cChangAuditTime >'"+lasttimeSf+"' and cDefine16 is null) or(cAuditTime>'"+lasttimeSf+"' or cChangAuditTime >'"+lasttimeSf+"' and cDefine16 = 1)) and mo.iverifystateex = 2 and mo.cChangAuditTime is null order by mo.cAuditTime desc";
+                            "where ((cAuditTime>'"+lasttimeSf+"' or cChangAuditTime >'"+lasttimeSf+"' and cDefine16 is null) or(cAuditTime>'"+lasttimeSf+"' or cChangAuditTime >'"+lasttimeSf+"' and cDefine16 = 1)) and mo.iverifystateex = 2 order by mo.cAuditTime desc";
                     List<Map<String, Object>> list = senYuDataSourceOne.queryForList(sql);
                     for(Map<String, Object> map:list){
                         sumlist.add(map);
@@ -130,7 +130,7 @@ public class POPomainController implements ApplicationContextAware {
                             "on mo.cPersonCode = hr1.cPsn_Num " +
                             "left join foreigncurrency curr " +
                             "on mo.cexch_name = curr.cexch_name " +
-                            "where ((cAuditTime>'"+lasttimeSf+"' or cChangAuditTime >'"+lasttimeSf+"'  and cDefine16 is null) or(cAuditTime>'"+lasttimeSf+"' or cChangAuditTime >'"+lasttimeSf+"' and cDefine16 = 1)) and mo.iverifystateex = 2  and mo.cChangAuditTime is null order by mo.cAuditTime desc";
+                            "where ((cAuditTime>'"+lasttimeSf+"' or cChangAuditTime >'"+lasttimeSf+"'  and cDefine16 is null) or(cAuditTime>'"+lasttimeSf+"' or cChangAuditTime >'"+lasttimeSf+"' and cDefine16 = 1)) and mo.iverifystateex = 2  order by mo.cAuditTime desc";
                     List<Map<String, Object>> list = senYuDataSourceTwo.queryForList(sql);
                     for(Map<String, Object> map:list){
                         sumlist.add(map);
@@ -154,7 +154,7 @@ public class POPomainController implements ApplicationContextAware {
                             "on mo.cPersonCode = hr1.cPsn_Num " +
                             "left join foreigncurrency curr " +
                             "on mo.cexch_name = curr.cexch_name " +
-                            "where ((cAuditTime>'"+lasttimeSf+"' or cChangAuditTime >'"+lasttimeSf+"' and cDefine16 is null) or(cAuditTime>'"+lasttimeSf+"' or cChangAuditTime >'"+lasttimeSf+"' and cDefine16 = 1)) and mo.iverifystateex = 2  and mo.cChangAuditTime is null order by mo.cAuditTime desc";
+                            "where ((cAuditTime>'"+lasttimeSf+"' or cChangAuditTime >'"+lasttimeSf+"' and cDefine16 is null) or(cAuditTime>'"+lasttimeSf+"' or cChangAuditTime >'"+lasttimeSf+"' and cDefine16 = 1)) and mo.iverifystateex = 2  order by mo.cAuditTime desc";
                     List<Map<String, Object>> list = iSenYuDataSourceThree.queryForList(sql);
                     for(Map<String, Object> map:list){
                         sumlist.add(map);

+ 12 - 12
jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/util/JsonChangeUtils.java

@@ -93,7 +93,7 @@ public class JsonChangeUtils implements ApplicationContextAware{
                 BigDecimal totalAmount = BigDecimal.ZERO; //总金额
                 BigDecimal exTaxAmount = BigDecimal.ZERO;//总无税金额
                 String sql = "select mo.iVouchRowNo as 'poLineNum',mo.MODetailsID as MODetailsID,mo.MODetailsID as 'moDetailId','"+map.get("pkorg")+"' as pkorg," +
-                        "'' as receivingInventoryOrgCode,'"+map.get("moId")+"' as MOID,'"+map.get("accId")+"' as 'accId',mo.cDefine37 as cDefine37," +
+                        "'' as receivingInventoryOrgCode,'"+map.get("moId")+"' as MOID,'"+map.get("accId")+"' as 'accId',mo.cDefine37 as cDdfine37," +
                         "'"+map.get("poNum")+"' as poNum,mo.cInvCode as 'customerItemCode',inv.cInvName as 'itemName',mo.dArriveDate as 'customerDemandDate', " +
                         "'' as 'poLineStatus',mo.cFree1 as cFree1,mo.cFree2 as cFree2,mo.cFree3 as cFree3,mo.cFree4 as cFree4," +
                         "mo.cFree5 as cFree5,mo.cFree6 as cFree6,mo.cFree7 as cFree7,mo.cFree8 as cFree8,mo.cFree9 as cFree9,mo.cFree10 as cFree10,mo.iQuantity as 'customerDemandQty',mo.cUnitID as 'customerUomCode'," +
@@ -121,7 +121,7 @@ public class JsonChangeUtils implements ApplicationContextAware{
                 BigDecimal totalAmount = BigDecimal.ZERO; //总金额
                 BigDecimal exTaxAmount = BigDecimal.ZERO;//总无税金额
                 String sql = "select mo.iVouchRowNo as 'poLineNum',mo.MODetailsID as MODetailsID,mo.MODetailsID as 'moDetailId','"+map.get("pkorg")+"' as pkorg," +
-                        "'' as receivingInventoryOrgCode,'"+map.get("moId")+"' as MOID,'"+map.get("accId")+"' as 'accId',mo.cDefine37 as cDefine37," +
+                        "'' as receivingInventoryOrgCode,'"+map.get("moId")+"' as MOID,'"+map.get("accId")+"' as 'accId',mo.cDefine37 as cDdfine37," +
                         "'"+map.get("poNum")+"' as poNum,mo.cInvCode as 'customerItemCode',inv.cInvName as 'itemName',mo.dArriveDate as 'customerDemandDate', " +
                         "'' as 'poLineStatus',mo.cFree1 as cFree1,mo.cFree2 as cFree2,mo.cFree3 as cFree3,mo.cFree4 as cFree4," +
                         "mo.cFree5 as cFree5,mo.cFree6 as cFree6,mo.cFree7 as cFree7,mo.cFree8 as cFree8,mo.cFree9 as cFree9,mo.cFree10 as cFree10,mo.iQuantity as 'customerDemandQty',mo.cUnitID as 'customerUomCode'," +
@@ -150,7 +150,7 @@ public class JsonChangeUtils implements ApplicationContextAware{
                 BigDecimal totalAmount = BigDecimal.ZERO; //总金额
                 BigDecimal exTaxAmount = BigDecimal.ZERO;//总无税金额
                 String sql = "select mo.iVouchRowNo as 'poLineNum',mo.MODetailsID as MODetailsID,mo.MODetailsID as 'moDetailId','"+map.get("pkorg")+"' as pkorg," +
-                        "'' as receivingInventoryOrgCode,'"+map.get("moId")+"' as MOID,'"+map.get("accId")+"' as 'accId',mo.cDefine37 as cDefine37," +
+                        "'' as receivingInventoryOrgCode,'"+map.get("moId")+"' as MOID,'"+map.get("accId")+"' as 'accId',mo.cDefine37 as cDdfine37," +
                         "'"+map.get("poNum")+"' as poNum,mo.cInvCode as 'customerItemCode',inv.cInvName as 'itemName',mo.dArriveDate as 'customerDemandDate', " +
                         "'' as 'poLineStatus',mo.cFree1 as cFree1,mo.cFree2 as cFree2,mo.cFree3 as cFree3,mo.cFree4 as cFree4," +
                         "mo.cFree5 as cFree5,mo.cFree6 as cFree6,mo.cFree7 as cFree7,mo.cFree8 as cFree8,mo.cFree9 as cFree9,mo.cFree10 as cFree10,mo.iQuantity as 'customerDemandQty',mo.cUnitID as 'customerUomCode'," +
@@ -228,7 +228,7 @@ public class JsonChangeUtils implements ApplicationContextAware{
                         "mo.cInvCode as 'customerItemCode',inv.cInvName as 'itemName','' as 'poLineStatus',mo.dArriveDate as 'customerDemandDate'," +
                         "'' as receivingInventoryOrgCode,mo.cFree1 as cFree1,mo.cFree2 as cFree2,mo.cFree3 as cFree3,mo.cFree4 as cFree4,mo.cDefine23 as 'lineAttributeString11'," +
                         "mo.cFree5 as cFree5,mo.cFree6 as cFree6,mo.cFree7 as cFree7,mo.cFree8 as cFree8,mo.cFree9 as cFree9,mo.cFree10 as cFree10,mo.iQuantity as 'customerDemandQty',mo.cUnitID as 'customerUomCode'," +
-                        "mo.iMoney as 'iMoney',mo.iUnitPrice as supplierExTaxPrice,'"+map.get("cAuditDate")+"' as lineAttributeDatetime2,mo.cDefine37 as cDefine37," +
+                        "mo.iMoney as 'iMoney',mo.iUnitPrice as supplierExTaxPrice,'"+map.get("cAuditDate")+"' as lineAttributeDatetime2,mo.cDefine37 as cDdfine37," +
                         "mo.iTax as lineAttributeDecimal1,mo.cbCloseDate as lineAttributeDatetime1,mo.cDefine24 as lineAttributeString9,ex.cbdefine2 as lineAttributeString7,ex.cbdefine3 as lineAttributeString8," +
                         "mo.iTaxPrice as 'customerPrice',(mo.iPerTaxRate/100) as 'lineTaxRate',mo.iSum as 'amount',mo.cDefine28 as 'lineAttributeString1'," +
                         "mo.cDefine32 as 'lineAttributeString2',mo.cDefine29 as 'lineAttributeString3','' as 'attributeString1',mo.cDefine30 as 'lineAttributeString4'," +
@@ -254,7 +254,7 @@ public class JsonChangeUtils implements ApplicationContextAware{
                         "mo.cInvCode as 'customerItemCode',inv.cInvName as 'itemName','' as 'poLineStatus',mo.dArriveDate as 'customerDemandDate'," +
                         "'' as receivingInventoryOrgCode,mo.cFree1 as cFree1,mo.cFree2 as cFree2,mo.cFree3 as cFree3,mo.cFree4 as cFree4,mo.cDefine23 as 'lineAttributeString11'," +
                         "mo.cFree5 as cFree5,mo.cFree6 as cFree6,mo.cFree7 as cFree7,mo.cFree8 as cFree8,mo.cFree9 as cFree9,mo.cFree10 as cFree10,mo.iQuantity as 'customerDemandQty',mo.cUnitID as 'customerUomCode'," +
-                        "mo.iMoney as 'iMoney',mo.iUnitPrice as supplierExTaxPrice,'"+map.get("cAuditDate")+"' as lineAttributeDatetime2,mo.cDefine37 as cDefine37," +
+                        "mo.iMoney as 'iMoney',mo.iUnitPrice as supplierExTaxPrice,'"+map.get("cAuditDate")+"' as lineAttributeDatetime2,mo.cDefine37 as cDdfine37," +
                         "mo.iTax as lineAttributeDecimal1,mo.cbCloseDate as lineAttributeDatetime1,mo.cDefine24 as lineAttributeString9,ex.cbdefine2 as lineAttributeString7,ex.cbdefine3 as lineAttributeString8," +
                         "mo.iTaxPrice as 'customerPrice',(mo.iPerTaxRate/100) as 'lineTaxRate',mo.iSum as 'amount',mo.cDefine28 as 'lineAttributeString1'," +
                         "mo.cDefine32 as 'lineAttributeString2',mo.cDefine29 as 'lineAttributeString3','' as 'attributeString1',mo.cDefine30 as 'lineAttributeString4'," +
@@ -279,7 +279,7 @@ public class JsonChangeUtils implements ApplicationContextAware{
                         "mo.cInvCode as 'customerItemCode',inv.cInvName as 'itemName','' as 'poLineStatus',mo.dArriveDate as 'customerDemandDate'," +
                         "'' as receivingInventoryOrgCode,mo.cFree1 as cFree1,mo.cFree2 as cFree2,mo.cFree3 as cFree3,mo.cFree4 as cFree4,mo.cDefine23 as 'lineAttributeString11'," +
                         "mo.cFree5 as cFree5,mo.cFree6 as cFree6,mo.cFree7 as cFree7,mo.cFree8 as cFree8,mo.cFree9 as cFree9,mo.cFree10 as cFree10,mo.iQuantity as 'customerDemandQty',mo.cUnitID as 'customerUomCode'," +
-                        "mo.iMoney as 'iMoney',mo.iUnitPrice as supplierExTaxPrice,'"+map.get("cAuditDate")+"' as lineAttributeDatetime2,mo.cDefine37 as cDefine37," +
+                        "mo.iMoney as 'iMoney',mo.iUnitPrice as supplierExTaxPrice,'"+map.get("cAuditDate")+"' as lineAttributeDatetime2,mo.cDefine37 as cDdfine37," +
                         "mo.iTax as lineAttributeDecimal1,mo.cbCloseDate as lineAttributeDatetime1,mo.cDefine24 as lineAttributeString9,ex.cbdefine2 as lineAttributeString7,ex.cbdefine3 as lineAttributeString8," +
                         "mo.iTaxPrice as 'customerPrice',(mo.iPerTaxRate/100) as 'lineTaxRate',mo.iSum as 'amount',mo.cDefine28 as 'lineAttributeString1'," +
                         "mo.cDefine32 as 'lineAttributeString2',mo.cDefine29 as 'lineAttributeString3','' as 'attributeString1',mo.cDefine30 as 'lineAttributeString4'," +
@@ -409,9 +409,9 @@ public class JsonChangeUtils implements ApplicationContextAware{
                 jf.put("lineAttributeDatetime1",lineAttributeDatetime1+" 00:00:00");
             }
 
-            if(oConvertUtils.isNotEmpty(map.get("cDefine37"))){
-                String cDefine37 = sf.format(map.get("cDefine37"));
-                jf.put("cDefine37",cDefine37+" 00:00:00");
+            if(oConvertUtils.isNotEmpty(map.get("cDdfine37"))){
+                String cDdfine37 = sf.format(map.get("cDdfine37"));
+                jf.put("cDdfine37",cDdfine37+" 00:00:00");
             }
 
             Set<String> keysCfree = mapCfree.keySet();
@@ -488,9 +488,9 @@ public class JsonChangeUtils implements ApplicationContextAware{
                 String lineAttributeDatetime1 = sf.format(map.get("lineAttributeDatetime1"));
                 jf.put("lineAttributeDatetime1",lineAttributeDatetime1+" 00:00:00");
             }
-            if(oConvertUtils.isNotEmpty(map.get("cDefine37"))){
-                String cDefine37 = sf.format(map.get("cDefine37"));
-                jf.put("cDefine37",cDefine37+" 00:00:00");
+            if(oConvertUtils.isNotEmpty(map.get("cDdfine37"))){
+                String cDdfine37 = sf.format(map.get("cDdfine37"));
+                jf.put("cDdfine37",cDdfine37+" 00:00:00");
             }
             //查询委外用料子表数据
             if(map.get("pkorg").equals("one")){