Преглед на файлове

Merge remote-tracking branch 'origin/master'

LLL преди 1 година
родител
ревизия
8ed88453cf
променени са 20 файла, в които са добавени 924 реда и са изтрити 12 реда
  1. 4 0
      module_kzks/src/main/java/org/jeecg/modules/costModelClPrice/entity/CostModelClPrice.java
  2. 23 6
      module_kzks/src/main/java/org/jeecg/modules/costModelList/controller/CostModelListController.java
  3. 3 0
      module_kzks/src/main/java/org/jeecg/modules/costModelList/entity/CostModelList.java
  4. 52 6
      module_kzks/src/main/java/org/jeecg/modules/costModelWxPrice/controller/CostModelWxPriceController.java
  5. 12 0
      module_kzks/src/main/java/org/jeecg/modules/costModelWxPrice/entity/CostModelWxPrice.java
  6. 7 0
      module_kzks/src/main/java/org/jeecg/modules/costModelWxPrice/mapper/CostModelWxPriceMapper.java
  7. 16 0
      module_kzks/src/main/java/org/jeecg/modules/costModelWxPrice/service/ICostModelWxPriceService.java
  8. 145 0
      module_kzks/src/main/java/org/jeecg/modules/costModelWxPrice/service/impl/CostModelWxPriceServiceImpl.java
  9. 177 0
      module_kzks/src/main/java/org/jeecg/modules/costModelXmxqCl/controller/CostModelXmxqClController.java
  10. 104 0
      module_kzks/src/main/java/org/jeecg/modules/costModelXmxqCl/entity/CostModelXmxqCl.java
  11. 17 0
      module_kzks/src/main/java/org/jeecg/modules/costModelXmxqCl/mapper/CostModelXmxqClMapper.java
  12. 5 0
      module_kzks/src/main/java/org/jeecg/modules/costModelXmxqCl/mapper/xml/CostModelXmxqClMapper.xml
  13. 14 0
      module_kzks/src/main/java/org/jeecg/modules/costModelXmxqCl/service/ICostModelXmxqClService.java
  14. 19 0
      module_kzks/src/main/java/org/jeecg/modules/costModelXmxqCl/service/impl/CostModelXmxqClServiceImpl.java
  15. 177 0
      module_kzks/src/main/java/org/jeecg/modules/costModelXmxqWx/controller/CostModelXmxqWxController.java
  16. 94 0
      module_kzks/src/main/java/org/jeecg/modules/costModelXmxqWx/entity/CostModelXmxqWx.java
  17. 17 0
      module_kzks/src/main/java/org/jeecg/modules/costModelXmxqWx/mapper/CostModelXmxqWxMapper.java
  18. 5 0
      module_kzks/src/main/java/org/jeecg/modules/costModelXmxqWx/mapper/xml/CostModelXmxqWxMapper.xml
  19. 14 0
      module_kzks/src/main/java/org/jeecg/modules/costModelXmxqWx/service/ICostModelXmxqWxService.java
  20. 19 0
      module_kzks/src/main/java/org/jeecg/modules/costModelXmxqWx/service/impl/CostModelXmxqWxServiceImpl.java

+ 4 - 0
module_kzks/src/main/java/org/jeecg/modules/costModelClPrice/entity/CostModelClPrice.java

@@ -75,4 +75,8 @@ public class CostModelClPrice implements Serializable {
 	@Excel(name = "单价", width = 15)
     @ApiModelProperty(value = "单价")
     private java.lang.String danjia;
+    /**采购日期*/
+    @Excel(name = "采购日期", width = 15)
+    @ApiModelProperty(value = "采购日期")
+    private java.lang.String caigou_time;
 }

+ 23 - 6
module_kzks/src/main/java/org/jeecg/modules/costModelList/controller/CostModelListController.java

@@ -10,6 +10,7 @@ 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.aspect.annotation.PermissionData;
 import org.jeecg.common.system.query.QueryGenerator;
 import org.jeecg.common.util.oConvertUtils;
 import org.jeecg.modules.costModelList.entity.CostModelList;
@@ -49,7 +50,7 @@ import org.jeecg.common.aspect.annotation.AutoLog;
 public class CostModelListController extends JeecgController<CostModelList, ICostModelListService> {
 	@Autowired
 	private ICostModelListService costModelListService;
-	
+
 	/**
 	 * 分页列表查询
 	 *
@@ -59,6 +60,7 @@ public class CostModelListController extends JeecgController<CostModelList, ICos
 	 * @param req
 	 * @return
 	 */
+	@PermissionData(pageComponent = "module_kzks/costModelList/CostModelList")
 	//@AutoLog(value = "成本模型-分页列表查询")
 	@ApiOperation(value="成本模型-分页列表查询", notes="成本模型-分页列表查询")
 	@GetMapping(value = "/list")
@@ -71,7 +73,7 @@ public class CostModelListController extends JeecgController<CostModelList, ICos
 		IPage<CostModelList> pageList = costModelListService.page(page, queryWrapper);
 		return Result.OK(pageList);
 	}
-	
+
 	/**
 	 *   添加
 	 *
@@ -86,7 +88,7 @@ public class CostModelListController extends JeecgController<CostModelList, ICos
 		costModelListService.save(costModelList);
 		return Result.OK("添加成功!");
 	}
-	
+
 	/**
 	 *  编辑
 	 *
@@ -101,7 +103,22 @@ public class CostModelListController extends JeecgController<CostModelList, ICos
 		costModelListService.updateById(costModelList);
 		return Result.OK("编辑成功!");
 	}
-	
+
+	 /**
+	  *  知会
+	  *
+	  * @param costModelList
+	  * @return
+	  */
+	 @AutoLog(value = "成本模型-知会")
+	 @ApiOperation(value="成本模型-知会", notes="成本模型-知会")
+	 //@RequiresPermissions("org.jeecg.modules:kzks_cost_model:inform")
+	 @RequestMapping(value = "/inform", method = {RequestMethod.PUT,RequestMethod.POST})
+	 public Result<String> inform(@RequestBody CostModelList costModelList) {
+		 costModelListService.updateById(costModelList);
+		 return Result.OK("知会成功!");
+	 }
+
 	/**
 	 *   通过id删除
 	 *
@@ -116,7 +133,7 @@ public class CostModelListController extends JeecgController<CostModelList, ICos
 		costModelListService.removeById(id);
 		return Result.OK("删除成功!");
 	}
-	
+
 	/**
 	 *  批量删除
 	 *
@@ -131,7 +148,7 @@ public class CostModelListController extends JeecgController<CostModelList, ICos
 		this.costModelListService.removeByIds(Arrays.asList(ids.split(",")));
 		return Result.OK("批量删除成功!");
 	}
-	
+
 	/**
 	 * 通过id查询
 	 *

+ 3 - 0
module_kzks/src/main/java/org/jeecg/modules/costModelList/entity/CostModelList.java

@@ -55,6 +55,9 @@ public class CostModelList implements Serializable {
 	/**所属部门*/
     @ApiModelProperty(value = "所属部门")
     private java.lang.String sysOrgCode;
+    /**知会给*/
+    @ApiModelProperty(value = "知会给")
+    private java.lang.String informTo;
 	/**项目名称*/
 	@Excel(name = "项目名称", width = 15)
     @ApiModelProperty(value = "项目名称")

+ 52 - 6
module_kzks/src/main/java/org/jeecg/modules/costModelWxPrice/controller/CostModelWxPriceController.java

@@ -3,6 +3,7 @@ package org.jeecg.modules.costModelWxPrice.controller;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 import java.util.stream.Collectors;
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
@@ -20,6 +21,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.extern.slf4j.Slf4j;
 
+import org.jeecg.modules.projectChbSwf.entity.ProjectChbSwf;
 import org.jeecgframework.poi.excel.ExcelImportUtil;
 import org.jeecgframework.poi.excel.def.NormalExcelConstants;
 import org.jeecgframework.poi.excel.entity.ExportParams;
@@ -74,7 +76,7 @@ public class CostModelWxPriceController extends JeecgController<CostModelWxPrice
 	
 	/**
 	 *   添加
-	 *
+	 *  添加重复的数据报错不予录入   思路和导入excel相同  --sl
 	 * @param costModelWxPrice
 	 * @return
 	 */
@@ -83,8 +85,50 @@ public class CostModelWxPriceController extends JeecgController<CostModelWxPrice
 	//@RequiresPermissions("org.jeecg.modules:kzks_cost_model_wx_price:add")
 	@PostMapping(value = "/add")
 	public Result<String> add(@RequestBody CostModelWxPrice costModelWxPrice) {
-		costModelWxPriceService.save(costModelWxPrice);
-		return Result.OK("添加成功!");
+		try {
+//			CostModelWxPrice wxp = costModelWxPrice;
+			boolean noRepeat = true;
+			//前端就不会让录入为null
+//			if((wxp.getWxProject()==null)&(wxpNew.getWxCompany()!=null)&(wxp.getDanjia()==null)&(wxp.getUnit()==null)&(wxp.getWxCompany()==null)){
+//				System.out.println("当前数据内容都为空,不能录入");
+//				noRepeat = false;
+//			}
+//			List<CostModelWxPrice> list = costModelWxPriceService.getWXPAllDetailList();
+			List<CostModelWxPrice> list = costModelWxPriceService.getWXPFProDetailList(costModelWxPrice.getWxProject());
+			for (CostModelWxPrice wxp1 : list) {
+				//因为根据外协项目查找的数据库数据,所以不用再比较外协项目
+				if((Objects.equals(costModelWxPrice.getMaxPrice(), wxp1.getMaxPrice()))&(Objects.equals(costModelWxPrice.getMinPrice(), wxp1.getMinPrice()))&(Objects.equals(costModelWxPrice.getUnit(), wxp1.getUnit()))&(Objects.equals(costModelWxPrice.getWxCompany(), wxp1.getWxCompany()))){
+					noRepeat = false;
+//					System.out.println("当前元素重复,进行删除");
+					break;//因为wxpNew元素已经被删除了,所有此段循环可以跳过了
+				}
+			}
+			if (noRepeat) {
+//				System.out.println("数据不重复,计算平均值");
+				try{
+					//计算平均值并写入list
+					costModelWxPrice.setAvePrice(Float.toString((Float.parseFloat(costModelWxPrice.getMaxPrice())+Float.parseFloat(costModelWxPrice.getMinPrice()))/2));
+//					System.out.println("写入数据成功");
+				} catch (NumberFormatException e) {
+					System.out.println("Float.parseFloat(String)方法执行异常");
+					e.printStackTrace();
+				}
+
+//				System.out.println("最终需要存入的数据");
+//				System.out.println(costModelWxPrice);
+//				System.out.println(costModelWxPrice.getClass());
+//				System.out.println(costModelWxPrice.getClass().getName());
+				costModelWxPriceService.save(costModelWxPrice);
+				return Result.OK("添加成功!");
+			} else {
+				return Result.error("当前插入的数据已经存在,添加失败!");
+			}
+		} catch (Exception e) {
+			String msg = e.getMessage();
+			log.error(msg, e);
+			return Result.error("添加失败!");
+		}
+
 	}
 	
 	/**
@@ -98,6 +142,7 @@ public class CostModelWxPriceController extends JeecgController<CostModelWxPrice
 	//@RequiresPermissions("org.jeecg.modules:kzks_cost_model_wx_price:edit")
 	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
 	public Result<String> edit(@RequestBody CostModelWxPrice costModelWxPrice) {
+		costModelWxPrice.setAvePrice(Float.toString((Float.parseFloat(costModelWxPrice.getMaxPrice())+Float.parseFloat(costModelWxPrice.getMinPrice()))/2));
 		costModelWxPriceService.updateById(costModelWxPrice);
 		return Result.OK("编辑成功!");
 	}
@@ -156,7 +201,7 @@ public class CostModelWxPriceController extends JeecgController<CostModelWxPrice
     * @param costModelWxPrice
     */
     //@RequiresPermissions("org.jeecg.modules:kzks_cost_model_wx_price:exportXls")
-    @RequestMapping(value = "/exportXls")
+	@RequestMapping(value = "/exportXls")
     public ModelAndView exportXls(HttpServletRequest request, CostModelWxPrice costModelWxPrice) {
         return super.exportXls(request, costModelWxPrice, CostModelWxPrice.class, "外协价格库");
     }
@@ -169,9 +214,10 @@ public class CostModelWxPriceController extends JeecgController<CostModelWxPrice
     * @return
     */
     //@RequiresPermissions("kzks_cost_model_wx_price:importExcel")
-    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+	@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
     public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
-        return super.importExcel(request, response, CostModelWxPrice.class);
+//        return super.importExcel(request, response, CostModelWxPrice.class);
+		return costModelWxPriceService.importExcel(request, response, CostModelWxPrice.class);
     }
 
 }

+ 12 - 0
module_kzks/src/main/java/org/jeecg/modules/costModelWxPrice/entity/CostModelWxPrice.java

@@ -75,4 +75,16 @@ public class CostModelWxPrice implements Serializable {
 	@Excel(name = "备注", width = 15)
     @ApiModelProperty(value = "备注")
     private java.lang.String remark;
+    /**单价(最大值)*/
+    @Excel(name = "单价(最大值)", width = 15)
+    @ApiModelProperty(value = "单价(最大值)")
+    private java.lang.String maxPrice;
+    /**单价(最小值)*/
+    @Excel(name = "单价(最小值)", width = 15)
+    @ApiModelProperty(value = "单价(最小值)")
+    private java.lang.String minPrice;
+    /**单价(平均值)*/
+    @Excel(name = "平均值", width = 15)
+    @ApiModelProperty(value = "平均值")
+    private java.lang.String avePrice;
 }

+ 7 - 0
module_kzks/src/main/java/org/jeecg/modules/costModelWxPrice/mapper/CostModelWxPriceMapper.java

@@ -3,6 +3,7 @@ package org.jeecg.modules.costModelWxPrice.mapper;
 import java.util.List;
 
 import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
 import org.jeecg.modules.costModelWxPrice.entity.CostModelWxPrice;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
@@ -13,5 +14,11 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * @Version: V1.0
  */
 public interface CostModelWxPriceMapper extends BaseMapper<CostModelWxPrice> {
+    /**外协价格库-查看表中所有数据-用来判断导入的数据是否有重复数据*/
+    @Select("select * from kzks_cost_model_wx_price")
+    public List<CostModelWxPrice> getWXPAllDetailList();
 
+    /**外协价格库-通过外协项目查看表中的数据-用来判断导入的数据是否有重复数据*/
+    @Select("select wx_company, unit, max_price, min_price, ave_price from kzks_cost_model_wx_price where wx_project = #{wx_project}")
+    public List<CostModelWxPrice> getWXPFProDetailList(@Param("wx_project") String wx_project);
 }

+ 16 - 0
module_kzks/src/main/java/org/jeecg/modules/costModelWxPrice/service/ICostModelWxPriceService.java

@@ -1,8 +1,13 @@
 package org.jeecg.modules.costModelWxPrice.service;
 
+import org.jeecg.common.api.vo.Result;
 import org.jeecg.modules.costModelWxPrice.entity.CostModelWxPrice;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
 /**
  * @Description: 外协价格库
  * @Author: jeecg-boot
@@ -11,4 +16,15 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface ICostModelWxPriceService extends IService<CostModelWxPrice> {
 
+    /**查看表中所有数据-用来判断导入的数据是否有重复数据*/
+    public List<CostModelWxPrice> getWXPAllDetailList();
+
+    /**外协价格库-通过外协项目查看表中的数据-用来判断导入的数据是否有重复数据*/
+    public List<CostModelWxPrice> getWXPFProDetailList(String wx_project);
+
+    /**
+     * 通过excel导入数据
+     * @return
+     */
+    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response, Class<CostModelWxPrice> clazz);
 }

+ 145 - 0
module_kzks/src/main/java/org/jeecg/modules/costModelWxPrice/service/impl/CostModelWxPriceServiceImpl.java

@@ -1,11 +1,28 @@
 package org.jeecg.modules.costModelWxPrice.service.impl;
 
+import lombok.extern.slf4j.Slf4j;
+import org.hibernate.query.criteria.internal.expression.function.AggregationFunction;
+import org.jeecg.common.api.vo.Result;
 import org.jeecg.modules.costModelWxPrice.entity.CostModelWxPrice;
 import org.jeecg.modules.costModelWxPrice.mapper.CostModelWxPriceMapper;
 import org.jeecg.modules.costModelWxPrice.service.ICostModelWxPriceService;
+import org.jeecgframework.poi.excel.ExcelImportUtil;
+import org.jeecgframework.poi.excel.entity.ImportParams;
+import org.jetbrains.annotations.NotNull;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.*;
 
 /**
  * @Description: 外协价格库
@@ -14,6 +31,134 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  * @Version: V1.0
  */
 @Service
+@Slf4j
 public class CostModelWxPriceServiceImpl extends ServiceImpl<CostModelWxPriceMapper, CostModelWxPrice> implements ICostModelWxPriceService {
 
+    @Autowired
+    @SuppressWarnings("all")
+    public CostModelWxPriceMapper wxpMapper;
+
+    /**查看表中所有数据-用来判断导入的数据是否有重复数据*/
+    public List<CostModelWxPrice> getWXPAllDetailList(){
+        return wxpMapper.getWXPAllDetailList();
+    }
+
+    /**外协价格库-通过外协项目查看表中的数据-用来判断导入的数据是否有重复数据*/
+    public List<CostModelWxPrice> getWXPFProDetailList(String wx_project){
+        return wxpMapper.getWXPFProDetailList(wx_project);
+    }
+
+    /**
+     * 通过excel导入数据
+     * 如果数据重复,删除重复的数据,然后在写入数据库
+     * 根据外协项目字段从数据库中取相关数据,再判断数据是否重复,重复的数据不予录入
+     *
+     * @param request
+     * @param response
+     * @return
+     */
+    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response, Class<CostModelWxPrice> clazz) {
+        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
+        Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
+        for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
+            // 获取上传文件对象
+            MultipartFile file = entity.getValue();
+            ImportParams params = new ImportParams();
+            params.setTitleRows(0);/*表格标题所占行数(默认是0)*/
+            params.setHeadRows(1);/*表头所占据的行数行数,默认1,代表标题占据一行*/
+            params.setNeedSave(true);
+            try {
+                //1.从excel中获取到数据放入到list中
+                List<CostModelWxPrice> list = ExcelImportUtil.importExcel(file.getInputStream(), clazz, params);
+//                System.out.println("从excel表中获取的数据");
+//                list.forEach(System.out::println);
+
+                //2.新建一个list来给list中的数据去重
+                List<CostModelWxPrice> listNew = new ArrayList<>();
+                for(CostModelWxPrice wxp:list){
+                    if (!listNew.contains(wxp)) {
+                        listNew.add(wxp);
+                    }
+                }
+//                System.out.println("列表去重后的数据");
+//                listNew.forEach(System.out::println);
+
+                //3.从数据库中读取全部表中数据
+//                List<CostModelWxPrice> list1 = getWXPAllDetailList();
+//                System.out.println("从数据库中取出的数据");
+//                list1.forEach(System.out::println);
+
+                Iterator<CostModelWxPrice> iterator = listNew.iterator();
+                //4.判断去重后的listNew中是否有数据已经在数据库中记录过了,如果已经保存过直接删掉
+                while(iterator.hasNext()){
+                    CostModelWxPrice wxpNew = iterator.next();
+                    //5.此处的条件可能更改,目前是外协项目、外协单位、单价最大值、单价最小值、计量单位都不为null的数据才能进行判断是否重复在确定是否录入数据
+                    if((wxpNew.getWxProject()!=null)&(wxpNew.getWxCompany()!=null)&(wxpNew.getMaxPrice()!=null)&(wxpNew.getMinPrice()!=null)&(wxpNew.getUnit()!=null)){
+                        boolean noRepeat = true; //用来判断数据是否重复
+                        //6.从数据库中取出对应外协项目的数据内容
+                        List<CostModelWxPrice> list1 = getWXPFProDetailList(wxpNew.getWxProject());
+//                        System.out.println("从数据库中取出的数据");
+//                        list1.forEach(System.out::println);
+
+                        //7.与数据库中的数据比较,如果数据重复,则删除,如果数据不重复,计算平均值,在将整条信息进行录入
+                        for(CostModelWxPrice wxp1:list1) {
+                            //因为根据外协项目查找的数据库数据,所以不用再比较外协项目
+                            if((Objects.equals(wxpNew.getMaxPrice(), wxp1.getMaxPrice()))&(Objects.equals(wxpNew.getMinPrice(), wxp1.getMinPrice()))&(Objects.equals(wxpNew.getUnit(), wxp1.getUnit()))&(Objects.equals(wxpNew.getWxCompany(), wxp1.getWxCompany()))){
+                                iterator.remove();
+                                noRepeat = false;
+                                //System.out.println("当前元素重复,进行删除");
+                                //listNew.forEach(System.out::println);  //foreach中不能remove,不然会报错java.util.ConcurrentModificationException
+                                break;//因为wxpNew元素已经被删除了,所有此段循环可以跳过了
+                            }
+                        }
+                        if(noRepeat){
+                            try{
+                                //计算平均值并写入list
+                                wxpNew.setAvePrice(Float.toString((Float.parseFloat(wxpNew.getMaxPrice())+Float.parseFloat(wxpNew.getMinPrice()))/2));
+
+                            } catch (NumberFormatException e) {
+                                System.out.println("Float.parseFloat(String)方法执行异常");
+                                e.printStackTrace();
+                            }
+                        }
+
+                    }
+                    else{
+                        //System.out.println("当前关键数据内容为空,删除");
+                        iterator.remove();
+                    }
+                }
+//                System.out.println("最终需要存入的数据");
+//                listNew.forEach(System.out::println);
+//                System.out.println(listNew.getClass());
+//                System.out.println(listNew.getClass().getName());
+
+                //update-begin-author:taoyan date:20190528 for:批量插入数据
+                long start = System.currentTimeMillis();
+                this.saveBatch(listNew);
+                //400条 saveBatch消耗时间1592毫秒  循环插入消耗时间1947毫秒
+                //1200条  saveBatch消耗时间3687毫秒 循环插入消耗时间5212毫秒
+                log.info("消耗时间" + (System.currentTimeMillis() - start) + "毫秒");
+                //update-end-author:taoyan date:20190528 for:批量插入数据
+                return Result.ok("文件导入成功!数据行数:" + listNew.size());
+            } catch (Exception e) {
+                //update-begin-author:taoyan date:20211124 for: 导入数据重复增加提示
+                String msg = e.getMessage();
+                log.error(msg, e);
+                if(msg!=null && msg.indexOf("Duplicate entry")>=0){
+                    return Result.error("文件导入失败:有重复数据!");
+                }else{
+                    return Result.error("文件导入失败:" + e.getMessage());
+                }
+                //update-end-author:taoyan date:20211124 for: 导入数据重复增加提示
+            } finally {
+                try {
+                    file.getInputStream().close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+        return Result.error("文件导入失败!");
+    }
 }

+ 177 - 0
module_kzks/src/main/java/org/jeecg/modules/costModelXmxqCl/controller/CostModelXmxqClController.java

@@ -0,0 +1,177 @@
+package org.jeecg.modules.costModelXmxqCl.controller;
+
+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 org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.costModelXmxqCl.entity.CostModelXmxqCl;
+import org.jeecg.modules.costModelXmxqCl.service.ICostModelXmxqClService;
+
+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:   2023-09-13
+ * @Version: V1.0
+ */
+@Api(tags="项目材料导入详情")
+@RestController
+@RequestMapping("/costModelXmxqCl/costModelXmxqCl")
+@Slf4j
+public class CostModelXmxqClController extends JeecgController<CostModelXmxqCl, ICostModelXmxqClService> {
+	@Autowired
+	private ICostModelXmxqClService costModelXmxqClService;
+	
+	/**
+	 * 分页列表查询
+	 *
+	 * @param costModelXmxqCl
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	//@AutoLog(value = "项目材料导入详情-分页列表查询")
+	@ApiOperation(value="项目材料导入详情-分页列表查询", notes="项目材料导入详情-分页列表查询")
+	@GetMapping(value = "/list")
+	public Result<IPage<CostModelXmxqCl>> queryPageList(CostModelXmxqCl costModelXmxqCl,
+								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+								   HttpServletRequest req) {
+		QueryWrapper<CostModelXmxqCl> queryWrapper = QueryGenerator.initQueryWrapper(costModelXmxqCl, req.getParameterMap());
+		Page<CostModelXmxqCl> page = new Page<CostModelXmxqCl>(pageNo, pageSize);
+		IPage<CostModelXmxqCl> pageList = costModelXmxqClService.page(page, queryWrapper);
+		return Result.OK(pageList);
+	}
+	
+	/**
+	 *   添加
+	 *
+	 * @param costModelXmxqCl
+	 * @return
+	 */
+	@AutoLog(value = "项目材料导入详情-添加")
+	@ApiOperation(value="项目材料导入详情-添加", notes="项目材料导入详情-添加")
+	//@RequiresPermissions("org.jeecg.modules:kzks_cost_model_xmxq_cl:add")
+	@PostMapping(value = "/add")
+	public Result<String> add(@RequestBody CostModelXmxqCl costModelXmxqCl) {
+		costModelXmxqClService.save(costModelXmxqCl);
+		return Result.OK("添加成功!");
+	}
+	
+	/**
+	 *  编辑
+	 *
+	 * @param costModelXmxqCl
+	 * @return
+	 */
+	@AutoLog(value = "项目材料导入详情-编辑")
+	@ApiOperation(value="项目材料导入详情-编辑", notes="项目材料导入详情-编辑")
+	//@RequiresPermissions("org.jeecg.modules:kzks_cost_model_xmxq_cl:edit")
+	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+	public Result<String> edit(@RequestBody CostModelXmxqCl costModelXmxqCl) {
+		costModelXmxqClService.updateById(costModelXmxqCl);
+		return Result.OK("编辑成功!");
+	}
+	
+	/**
+	 *   通过id删除
+	 *
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "项目材料导入详情-通过id删除")
+	@ApiOperation(value="项目材料导入详情-通过id删除", notes="项目材料导入详情-通过id删除")
+	//@RequiresPermissions("org.jeecg.modules:kzks_cost_model_xmxq_cl:delete")
+	@DeleteMapping(value = "/delete")
+	public Result<String> delete(@RequestParam(name="id",required=true) String id) {
+		costModelXmxqClService.removeById(id);
+		return Result.OK("删除成功!");
+	}
+	
+	/**
+	 *  批量删除
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@AutoLog(value = "项目材料导入详情-批量删除")
+	@ApiOperation(value="项目材料导入详情-批量删除", notes="项目材料导入详情-批量删除")
+	//@RequiresPermissions("org.jeecg.modules:kzks_cost_model_xmxq_cl:deleteBatch")
+	@DeleteMapping(value = "/deleteBatch")
+	public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		this.costModelXmxqClService.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<CostModelXmxqCl> queryById(@RequestParam(name="id",required=true) String id) {
+		CostModelXmxqCl costModelXmxqCl = costModelXmxqClService.getById(id);
+		if(costModelXmxqCl==null) {
+			return Result.error("未找到对应数据");
+		}
+		return Result.OK(costModelXmxqCl);
+	}
+
+    /**
+    * 导出excel
+    *
+    * @param request
+    * @param costModelXmxqCl
+    */
+    //@RequiresPermissions("org.jeecg.modules:kzks_cost_model_xmxq_cl:exportXls")
+    @RequestMapping(value = "/exportXls")
+    public ModelAndView exportXls(HttpServletRequest request, CostModelXmxqCl costModelXmxqCl) {
+        return super.exportXls(request, costModelXmxqCl, CostModelXmxqCl.class, "项目材料导入详情");
+    }
+
+    /**
+      * 通过excel导入数据
+    *
+    * @param request
+    * @param response
+    * @return
+    */
+    //@RequiresPermissions("kzks_cost_model_xmxq_cl:importExcel")
+    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+        return super.importExcel(request, response, CostModelXmxqCl.class);
+    }
+
+}

+ 104 - 0
module_kzks/src/main/java/org/jeecg/modules/costModelXmxqCl/entity/CostModelXmxqCl.java

@@ -0,0 +1,104 @@
+package org.jeecg.modules.costModelXmxqCl.entity;
+
+import java.io.Serializable;
+import java.io.UnsupportedEncodingException;
+import java.util.Date;
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.jeecg.common.aspect.annotation.Dict;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * @Description: 项目材料导入详情
+ * @Author: jeecg-boot
+ * @Date:   2023-09-13
+ * @Version: V1.0
+ */
+@Data
+@TableName("kzks_cost_model_xmxq_cl")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="kzks_cost_model_xmxq_cl对象", description="项目材料导入详情")
+public class CostModelXmxqCl implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+	/**id*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "id")
+    private java.lang.String id;
+	/**创建人*/
+    @ApiModelProperty(value = "创建人")
+    private java.lang.String createBy;
+	/**创建日期*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "创建日期")
+    private java.util.Date createTime;
+	/**更新人*/
+    @ApiModelProperty(value = "更新人")
+    private java.lang.String updateBy;
+	/**更新日期*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "更新日期")
+    private java.util.Date updateTime;
+	/**所属部门*/
+    @ApiModelProperty(value = "所属部门")
+    private java.lang.String sysOrgCode;
+	/**项目ID*/
+	@Excel(name = "项目ID", width = 15)
+    @ApiModelProperty(value = "项目ID")
+    private java.lang.String xiangmuId;
+	/**项目名称*/
+	@Excel(name = "项目名称", width = 15)
+    @ApiModelProperty(value = "项目名称")
+    private java.lang.String xiangmuName;
+	/**物料编码*/
+	@Excel(name = "物料编码", width = 15)
+    @ApiModelProperty(value = "物料编码")
+    private java.lang.String wlbm;
+	/**规格型号*/
+	@Excel(name = "规格型号", width = 15)
+    @ApiModelProperty(value = "规格型号")
+    private java.lang.String ggxh;
+	/**质量等级*/
+	@Excel(name = "质量等级", width = 15)
+    @ApiModelProperty(value = "质量等级")
+    private java.lang.String zlLevel;
+	/**批次*/
+	@Excel(name = "批次", width = 15)
+    @ApiModelProperty(value = "批次")
+    private java.lang.String pici;
+	/**采购日期*/
+	@Excel(name = "采购日期", width = 15, format = "yyyy-MM-dd")
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "采购日期")
+    private java.util.Date caigouTime;
+	/**单价*/
+	@Excel(name = "单价", width = 15)
+    @ApiModelProperty(value = "单价")
+    private java.lang.String danjia;
+	/**数量*/
+	@Excel(name = "数量", width = 15)
+    @ApiModelProperty(value = "数量")
+    private java.lang.String number;
+	/**价格(单价*数量)*/
+	@Excel(name = "价格(单价*数量)", width = 15)
+    @ApiModelProperty(value = "价格(单价*数量)")
+    private java.lang.String price;
+	/**材料费类型*/
+	@Excel(name = "材料费类型", width = 15)
+    @ApiModelProperty(value = "材料费类型")
+    private java.lang.String clfType;
+}

+ 17 - 0
module_kzks/src/main/java/org/jeecg/modules/costModelXmxqCl/mapper/CostModelXmxqClMapper.java

@@ -0,0 +1,17 @@
+package org.jeecg.modules.costModelXmxqCl.mapper;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.costModelXmxqCl.entity.CostModelXmxqCl;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Description: 项目材料导入详情
+ * @Author: jeecg-boot
+ * @Date:   2023-09-13
+ * @Version: V1.0
+ */
+public interface CostModelXmxqClMapper extends BaseMapper<CostModelXmxqCl> {
+
+}

+ 5 - 0
module_kzks/src/main/java/org/jeecg/modules/costModelXmxqCl/mapper/xml/CostModelXmxqClMapper.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.costModelXmxqCl.mapper.CostModelXmxqClMapper">
+
+</mapper>

+ 14 - 0
module_kzks/src/main/java/org/jeecg/modules/costModelXmxqCl/service/ICostModelXmxqClService.java

@@ -0,0 +1,14 @@
+package org.jeecg.modules.costModelXmxqCl.service;
+
+import org.jeecg.modules.costModelXmxqCl.entity.CostModelXmxqCl;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @Description: 项目材料导入详情
+ * @Author: jeecg-boot
+ * @Date:   2023-09-13
+ * @Version: V1.0
+ */
+public interface ICostModelXmxqClService extends IService<CostModelXmxqCl> {
+
+}

+ 19 - 0
module_kzks/src/main/java/org/jeecg/modules/costModelXmxqCl/service/impl/CostModelXmxqClServiceImpl.java

@@ -0,0 +1,19 @@
+package org.jeecg.modules.costModelXmxqCl.service.impl;
+
+import org.jeecg.modules.costModelXmxqCl.entity.CostModelXmxqCl;
+import org.jeecg.modules.costModelXmxqCl.mapper.CostModelXmxqClMapper;
+import org.jeecg.modules.costModelXmxqCl.service.ICostModelXmxqClService;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+/**
+ * @Description: 项目材料导入详情
+ * @Author: jeecg-boot
+ * @Date:   2023-09-13
+ * @Version: V1.0
+ */
+@Service
+public class CostModelXmxqClServiceImpl extends ServiceImpl<CostModelXmxqClMapper, CostModelXmxqCl> implements ICostModelXmxqClService {
+
+}

+ 177 - 0
module_kzks/src/main/java/org/jeecg/modules/costModelXmxqWx/controller/CostModelXmxqWxController.java

@@ -0,0 +1,177 @@
+package org.jeecg.modules.costModelXmxqWx.controller;
+
+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 org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.costModelXmxqWx.entity.CostModelXmxqWx;
+import org.jeecg.modules.costModelXmxqWx.service.ICostModelXmxqWxService;
+
+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:   2023-09-13
+ * @Version: V1.0
+ */
+@Api(tags="项目外协导入详情")
+@RestController
+@RequestMapping("/costModelXmxqWx/costModelXmxqWx")
+@Slf4j
+public class CostModelXmxqWxController extends JeecgController<CostModelXmxqWx, ICostModelXmxqWxService> {
+	@Autowired
+	private ICostModelXmxqWxService costModelXmxqWxService;
+	
+	/**
+	 * 分页列表查询
+	 *
+	 * @param costModelXmxqWx
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	//@AutoLog(value = "项目外协导入详情-分页列表查询")
+	@ApiOperation(value="项目外协导入详情-分页列表查询", notes="项目外协导入详情-分页列表查询")
+	@GetMapping(value = "/list")
+	public Result<IPage<CostModelXmxqWx>> queryPageList(CostModelXmxqWx costModelXmxqWx,
+								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+								   HttpServletRequest req) {
+		QueryWrapper<CostModelXmxqWx> queryWrapper = QueryGenerator.initQueryWrapper(costModelXmxqWx, req.getParameterMap());
+		Page<CostModelXmxqWx> page = new Page<CostModelXmxqWx>(pageNo, pageSize);
+		IPage<CostModelXmxqWx> pageList = costModelXmxqWxService.page(page, queryWrapper);
+		return Result.OK(pageList);
+	}
+	
+	/**
+	 *   添加
+	 *
+	 * @param costModelXmxqWx
+	 * @return
+	 */
+	@AutoLog(value = "项目外协导入详情-添加")
+	@ApiOperation(value="项目外协导入详情-添加", notes="项目外协导入详情-添加")
+	//@RequiresPermissions("org.jeecg.modules:kzks_cost_model_xmxq_wx:add")
+	@PostMapping(value = "/add")
+	public Result<String> add(@RequestBody CostModelXmxqWx costModelXmxqWx) {
+		costModelXmxqWxService.save(costModelXmxqWx);
+		return Result.OK("添加成功!");
+	}
+	
+	/**
+	 *  编辑
+	 *
+	 * @param costModelXmxqWx
+	 * @return
+	 */
+	@AutoLog(value = "项目外协导入详情-编辑")
+	@ApiOperation(value="项目外协导入详情-编辑", notes="项目外协导入详情-编辑")
+	//@RequiresPermissions("org.jeecg.modules:kzks_cost_model_xmxq_wx:edit")
+	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+	public Result<String> edit(@RequestBody CostModelXmxqWx costModelXmxqWx) {
+		costModelXmxqWxService.updateById(costModelXmxqWx);
+		return Result.OK("编辑成功!");
+	}
+	
+	/**
+	 *   通过id删除
+	 *
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "项目外协导入详情-通过id删除")
+	@ApiOperation(value="项目外协导入详情-通过id删除", notes="项目外协导入详情-通过id删除")
+	//@RequiresPermissions("org.jeecg.modules:kzks_cost_model_xmxq_wx:delete")
+	@DeleteMapping(value = "/delete")
+	public Result<String> delete(@RequestParam(name="id",required=true) String id) {
+		costModelXmxqWxService.removeById(id);
+		return Result.OK("删除成功!");
+	}
+	
+	/**
+	 *  批量删除
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@AutoLog(value = "项目外协导入详情-批量删除")
+	@ApiOperation(value="项目外协导入详情-批量删除", notes="项目外协导入详情-批量删除")
+	//@RequiresPermissions("org.jeecg.modules:kzks_cost_model_xmxq_wx:deleteBatch")
+	@DeleteMapping(value = "/deleteBatch")
+	public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		this.costModelXmxqWxService.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<CostModelXmxqWx> queryById(@RequestParam(name="id",required=true) String id) {
+		CostModelXmxqWx costModelXmxqWx = costModelXmxqWxService.getById(id);
+		if(costModelXmxqWx==null) {
+			return Result.error("未找到对应数据");
+		}
+		return Result.OK(costModelXmxqWx);
+	}
+
+    /**
+    * 导出excel
+    *
+    * @param request
+    * @param costModelXmxqWx
+    */
+    //@RequiresPermissions("org.jeecg.modules:kzks_cost_model_xmxq_wx:exportXls")
+    @RequestMapping(value = "/exportXls")
+    public ModelAndView exportXls(HttpServletRequest request, CostModelXmxqWx costModelXmxqWx) {
+        return super.exportXls(request, costModelXmxqWx, CostModelXmxqWx.class, "项目外协导入详情");
+    }
+
+    /**
+      * 通过excel导入数据
+    *
+    * @param request
+    * @param response
+    * @return
+    */
+    //@RequiresPermissions("kzks_cost_model_xmxq_wx:importExcel")
+    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+        return super.importExcel(request, response, CostModelXmxqWx.class);
+    }
+
+}

+ 94 - 0
module_kzks/src/main/java/org/jeecg/modules/costModelXmxqWx/entity/CostModelXmxqWx.java

@@ -0,0 +1,94 @@
+package org.jeecg.modules.costModelXmxqWx.entity;
+
+import java.io.Serializable;
+import java.io.UnsupportedEncodingException;
+import java.util.Date;
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.jeecg.common.aspect.annotation.Dict;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * @Description: 项目外协导入详情
+ * @Author: jeecg-boot
+ * @Date:   2023-09-13
+ * @Version: V1.0
+ */
+@Data
+@TableName("kzks_cost_model_xmxq_wx")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="kzks_cost_model_xmxq_wx对象", description="项目外协导入详情")
+public class CostModelXmxqWx implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+	/**id*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "id")
+    private java.lang.String id;
+	/**创建人*/
+    @ApiModelProperty(value = "创建人")
+    private java.lang.String createBy;
+	/**创建日期*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "创建日期")
+    private java.util.Date createTime;
+	/**更新人*/
+    @ApiModelProperty(value = "更新人")
+    private java.lang.String updateBy;
+	/**更新日期*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "更新日期")
+    private java.util.Date updateTime;
+	/**所属部门*/
+    @ApiModelProperty(value = "所属部门")
+    private java.lang.String sysOrgCode;
+	/**项目ID*/
+	@Excel(name = "项目ID", width = 15)
+    @ApiModelProperty(value = "项目ID")
+    private java.lang.String xiangmuId;
+	/**项目名称*/
+	@Excel(name = "项目名称", width = 15)
+    @ApiModelProperty(value = "项目名称")
+    private java.lang.String xiangmuName;
+	/**外协项目*/
+	@Excel(name = "外协项目", width = 15)
+    @ApiModelProperty(value = "外协项目")
+    private java.lang.String wxProject;
+	/**外协单位*/
+	@Excel(name = "外协单位", width = 15)
+    @ApiModelProperty(value = "外协单位")
+    private java.lang.String wxCompany;
+	/**单价*/
+	@Excel(name = "单价", width = 15)
+    @ApiModelProperty(value = "单价")
+    private java.lang.String danjia;
+	/**计量单位*/
+	@Excel(name = "计量单位", width = 15)
+    @ApiModelProperty(value = "计量单位")
+    private java.lang.String unit;
+	/**数量*/
+	@Excel(name = "数量", width = 15)
+    @ApiModelProperty(value = "数量")
+    private java.lang.String number;
+	/**价格(单价*数量)*/
+	@Excel(name = "价格(单价*数量)", width = 15)
+    @ApiModelProperty(value = "价格(单价*数量)")
+    private java.lang.String price;
+	/**描述*/
+	@Excel(name = "描述", width = 15)
+    @ApiModelProperty(value = "描述")
+    private java.lang.String remark;
+}

+ 17 - 0
module_kzks/src/main/java/org/jeecg/modules/costModelXmxqWx/mapper/CostModelXmxqWxMapper.java

@@ -0,0 +1,17 @@
+package org.jeecg.modules.costModelXmxqWx.mapper;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.costModelXmxqWx.entity.CostModelXmxqWx;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Description: 项目外协导入详情
+ * @Author: jeecg-boot
+ * @Date:   2023-09-13
+ * @Version: V1.0
+ */
+public interface CostModelXmxqWxMapper extends BaseMapper<CostModelXmxqWx> {
+
+}

+ 5 - 0
module_kzks/src/main/java/org/jeecg/modules/costModelXmxqWx/mapper/xml/CostModelXmxqWxMapper.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.costModelXmxqWx.mapper.CostModelXmxqWxMapper">
+
+</mapper>

+ 14 - 0
module_kzks/src/main/java/org/jeecg/modules/costModelXmxqWx/service/ICostModelXmxqWxService.java

@@ -0,0 +1,14 @@
+package org.jeecg.modules.costModelXmxqWx.service;
+
+import org.jeecg.modules.costModelXmxqWx.entity.CostModelXmxqWx;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @Description: 项目外协导入详情
+ * @Author: jeecg-boot
+ * @Date:   2023-09-13
+ * @Version: V1.0
+ */
+public interface ICostModelXmxqWxService extends IService<CostModelXmxqWx> {
+
+}

+ 19 - 0
module_kzks/src/main/java/org/jeecg/modules/costModelXmxqWx/service/impl/CostModelXmxqWxServiceImpl.java

@@ -0,0 +1,19 @@
+package org.jeecg.modules.costModelXmxqWx.service.impl;
+
+import org.jeecg.modules.costModelXmxqWx.entity.CostModelXmxqWx;
+import org.jeecg.modules.costModelXmxqWx.mapper.CostModelXmxqWxMapper;
+import org.jeecg.modules.costModelXmxqWx.service.ICostModelXmxqWxService;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+/**
+ * @Description: 项目外协导入详情
+ * @Author: jeecg-boot
+ * @Date:   2023-09-13
+ * @Version: V1.0
+ */
+@Service
+public class CostModelXmxqWxServiceImpl extends ServiceImpl<CostModelXmxqWxMapper, CostModelXmxqWx> implements ICostModelXmxqWxService {
+
+}