Browse Source

成本模型(产品价格库)

丁治程 1 year ago
parent
commit
e22cc1a3e2

+ 181 - 0
module_kzks/src/main/java/org/jeecg/modules/costModelProductPrice/controller/KzksCostModelProductPriceController.java

@@ -0,0 +1,181 @@
+package org.jeecg.modules.costModelProductPrice.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.costModelProductPrice.entity.KzksCostModelProductPrice;
+import org.jeecg.modules.costModelProductPrice.service.IKzksCostModelProductPriceService;
+
+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: kzks_cost_model_product_price
+ * @Author: jeecg-boot
+ * @Date:   2023-10-24
+ * @Version: V1.0
+ */
+@Api(tags="kzks_cost_model_product_price")
+@RestController
+@RequestMapping("/costModelProductPrice/kzksCostModelProductPrice")
+@Slf4j
+public class KzksCostModelProductPriceController extends JeecgController<KzksCostModelProductPrice, IKzksCostModelProductPriceService> {
+	@Autowired
+	private IKzksCostModelProductPriceService kzksCostModelProductPriceService;
+	
+	/**
+	 * 分页列表查询
+	 *
+	 * @param kzksCostModelProductPrice
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	//@AutoLog(value = "kzks_cost_model_product_price-分页列表查询")
+	@ApiOperation(value="kzks_cost_model_product_price-分页列表查询", notes="kzks_cost_model_product_price-分页列表查询")
+	@GetMapping(value = "/list")
+	public Result<IPage<KzksCostModelProductPrice>> queryPageList(KzksCostModelProductPrice kzksCostModelProductPrice,
+								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+								   HttpServletRequest req) {
+
+
+		QueryWrapper<KzksCostModelProductPrice> queryWrapper = QueryGenerator.initQueryWrapper(kzksCostModelProductPrice, req.getParameterMap());
+		Page<KzksCostModelProductPrice> page = new Page<KzksCostModelProductPrice>(pageNo, pageSize);
+		IPage<KzksCostModelProductPrice> pageList = kzksCostModelProductPriceService.page(page, queryWrapper);
+		return Result.OK(pageList);
+	}
+	
+	/**
+	 *   添加
+	 *
+	 * @param kzksCostModelProductPrice
+	 * @return
+	 */
+	@AutoLog(value = "kzks_cost_model_product_price-添加")
+	@ApiOperation(value="kzks_cost_model_product_price-添加", notes="kzks_cost_model_product_price-添加")
+	//@RequiresPermissions("org.jeecg.modules:kzks_cost_model_product_price:add")
+	@PostMapping(value = "/add")
+	public Result<String> add(@RequestBody KzksCostModelProductPrice kzksCostModelProductPrice) {
+		kzksCostModelProductPriceService.save(kzksCostModelProductPrice);
+		return Result.OK("添加成功!");
+	}
+	
+	/**
+	 *  编辑
+	 *
+	 * @param kzksCostModelProductPrice
+	 * @return
+	 */
+	@AutoLog(value = "kzks_cost_model_product_price-编辑")
+	@ApiOperation(value="kzks_cost_model_product_price-编辑", notes="kzks_cost_model_product_price-编辑")
+	//@RequiresPermissions("org.jeecg.modules:kzks_cost_model_product_price:edit")
+	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+	public Result<String> edit(@RequestBody KzksCostModelProductPrice kzksCostModelProductPrice) {
+		kzksCostModelProductPriceService.updateById(kzksCostModelProductPrice);
+		return Result.OK("编辑成功!");
+	}
+	
+	/**
+	 *   通过id删除
+	 *
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "kzks_cost_model_product_price-通过id删除")
+	@ApiOperation(value="kzks_cost_model_product_price-通过id删除", notes="kzks_cost_model_product_price-通过id删除")
+	//@RequiresPermissions("org.jeecg.modules:kzks_cost_model_product_price:delete")
+	@DeleteMapping(value = "/delete")
+	public Result<String> delete(@RequestParam(name="id",required=true) String id) {
+		kzksCostModelProductPriceService.updateStatusByTasknos(id);
+		boolean b = kzksCostModelProductPriceService.removeById(id);
+		return Result.OK("删除成功!");
+	}
+	
+	/**
+	 *  批量删除
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@AutoLog(value = "kzks_cost_model_product_price-批量删除")
+	@ApiOperation(value="kzks_cost_model_product_price-批量删除", notes="kzks_cost_model_product_price-批量删除")
+	//@RequiresPermissions("org.jeecg.modules:kzks_cost_model_product_price:deleteBatch")
+	@DeleteMapping(value = "/deleteBatch")
+	public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		kzksCostModelProductPriceService.updateStatusByTasknos(ids);
+		this.kzksCostModelProductPriceService.removeByIds(Arrays.asList(ids.split(",")));
+		return Result.OK("批量删除成功!");
+	}
+	
+	/**
+	 * 通过id查询
+	 *
+	 * @param id
+	 * @return
+	 */
+	//@AutoLog(value = "kzks_cost_model_product_price-通过id查询")
+	@ApiOperation(value="kzks_cost_model_product_price-通过id查询", notes="kzks_cost_model_product_price-通过id查询")
+	@GetMapping(value = "/queryById")
+	public Result<KzksCostModelProductPrice> queryById(@RequestParam(name="id",required=true) String id) {
+		KzksCostModelProductPrice kzksCostModelProductPrice = kzksCostModelProductPriceService.getById(id);
+		if(kzksCostModelProductPrice==null) {
+			return Result.error("未找到对应数据");
+		}
+		return Result.OK(kzksCostModelProductPrice);
+	}
+
+    /**
+    * 导出excel
+    *
+    * @param request
+    * @param kzksCostModelProductPrice
+    */
+    //@RequiresPermissions("org.jeecg.modules:kzks_cost_model_product_price:exportXls")
+    @RequestMapping(value = "/exportXls")
+    public ModelAndView exportXls(HttpServletRequest request, KzksCostModelProductPrice kzksCostModelProductPrice) {
+        return super.exportXls(request, kzksCostModelProductPrice, KzksCostModelProductPrice.class, "kzks_cost_model_product_price");
+    }
+
+    /**
+      * 通过excel导入数据
+    *
+    * @param request
+    * @param response
+    * @return
+    */
+    //@RequiresPermissions("kzks_cost_model_product_price:importExcel")
+    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+        return super.importExcel(request, response, KzksCostModelProductPrice.class);
+    }
+
+}

+ 311 - 0
module_kzks/src/main/java/org/jeecg/modules/costModelProductPrice/entity/KzksCostModelProductPrice.java

@@ -0,0 +1,311 @@
+package org.jeecg.modules.costModelProductPrice.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: kzks_cost_model_product_price
+ * @Author: jeecg-boot
+ * @Date:   2023-10-24
+ * @Version: V1.0
+ */
+@Data
+@TableName("kzks_cost_model_product_price")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="kzks_cost_model_product_price对象", description="kzks_cost_model_product_price")
+public class KzksCostModelProductPrice implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+	/**主键id*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "主键id")
+    private Integer id;
+    /**
+     * 任务号/来自科研任务
+     */
+    @Excel(name = "任务号/来自科研任务", width = 15)
+    @ApiModelProperty(value = "任务号/来自科研任务")
+    private java.lang.String taskno;
+    /**
+     * 任务名称/来自科研任务
+     */
+    @Excel(name = "任务名称/来自科研任务", width = 15)
+    @ApiModelProperty(value = "任务名称/来自科研任务")
+    private java.lang.String taskname;
+    /**
+     * 型号/来自科研报工
+     */
+    @Excel(name = "型号/来自科研报工", width = 15)
+    @ApiModelProperty(value = "型号/来自科研报工")
+    private java.lang.String xhname;
+    /**
+     * 计划完成时间(进度要求)来自科研任务
+     */
+    @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 jhwcsj;
+    /**
+     * 阶段/来自科研报工
+     */
+    @Excel(name = "阶段/来自科研报工", width = 15)
+    @ApiModelProperty(value = "阶段/来自科研报工")
+    private java.lang.String yzjdname;
+    /**
+     * 项目进度/来自科研任务
+     */
+    @Excel(name = "项目进度/来自科研任务", width = 15)
+    @ApiModelProperty(value = "项目进度/来自科研任务")
+    private java.lang.String processpercent;
+    /**
+     * 成本进度
+     */
+    @Excel(name = "成本进度", width = 15)
+    @ApiModelProperty(value = "成本进度")
+    private java.lang.String costPercent;
+    /**
+     * 研制数量/来自科研任务
+     */
+    @Excel(name = "研制数量/来自科研任务", width = 15)
+    @ApiModelProperty(value = "研制数量/来自科研任务")
+    private java.lang.Integer yzsl;
+    /**
+     * 单台收入/(合同额or预估价)/研制数量
+     */
+    @Excel(name = "单台收入/(合同额or预估价)/研制数量", width = 15)
+    @ApiModelProperty(value = "单台收入/(合同额or预估价)/研制数量")
+    private java.math.BigDecimal oneIncome;
+    /**
+     * 单台成本/  总成本额/研制数量
+     */
+    @Excel(name = "单台成本/  总成本额/研制数量", width = 15)
+    @ApiModelProperty(value = "单台成本/  总成本额/研制数量")
+    private java.math.BigDecimal oneCost;
+    /**
+     * 单台利润/  利润额/研制数量
+     */
+    @Excel(name = "单台利润/  利润额/研制数量", width = 15)
+    @ApiModelProperty(value = "单台利润/  利润额/研制数量")
+    private java.math.BigDecimal oneProfit;
+    /**
+     * 利润额/(合同额or预估价)-总成本额
+     */
+    @Excel(name = "利润额/(合同额or预估价)-总成本额", width = 15)
+    @ApiModelProperty(value = "利润额/(合同额or预估价)-总成本额")
+    private java.math.BigDecimal lre;
+    /**
+     * 利润率/ 利润额/(合同额or预估价)*100%
+     */
+    @Excel(name = "利润率/ 利润额/(合同额or预估价)*100%", width = 15)
+    @ApiModelProperty(value = "利润率/ 利润额/(合同额or预估价)*100%")
+    private java.math.BigDecimal lrl;
+    /**
+     * 预估价/来自财务预算
+     */
+    @Excel(name = "预估价/来自财务预算", width = 15)
+    @ApiModelProperty(value = "预估价/来自财务预算")
+    private java.math.BigDecimal estimationcoat;
+    /**
+     * 合同额/来自收款合同的合同分配额
+     */
+    @Excel(name = "合同额/来自收款合同的合同分配额 ", width = 15)
+    @ApiModelProperty(value = "合同额/来自收款合同的合同分配额 ")
+    private java.math.BigDecimal contractfpe;
+    /**
+     * 已收款/ 来自合同收款详细的任务收款额
+     */
+    @Excel(name = "已收款/ 来自合同收款详细的任务收款额", width = 15)
+    @ApiModelProperty(value = "已收款/ 来自合同收款详细的任务收款额")
+    private java.math.BigDecimal taskmoney;
+    /**
+     * 总成本/ 直接成本+间接费用/直接成本=材料费(出库)+外协费+专用费+事务费/间接费用=工资费+管理费+燃动费+固资费
+     */
+    @Excel(name = "总成本/ 直接成本+间接费用/直接成本=材料费(出库)+外协费+专用费+事务费/间接费用=工资费+管理费+燃动费+固资费", width = 15)
+    @ApiModelProperty(value = "总成本/ 直接成本+间接费用/直接成本=材料费(出库)+外协费+专用费+事务费/间接费用=工资费+管理费+燃动费+固资费")
+    private java.math.BigDecimal zcb;
+    /**
+     * 材料费/物资出库单明细 实发主数量*采购单价
+     */
+    @Excel(name = "材料费/物资出库单明细 实发主数量*采购单价", width = 15)
+    @ApiModelProperty(value = "材料费/物资出库单明细 实发主数量*采购单价")
+    private java.math.BigDecimal clf;
+    /**
+     * 专用费
+     */
+    @Excel(name = "专用费", width = 15)
+    @ApiModelProperty(value = "专用费")
+    private java.math.BigDecimal zyf;
+    /**
+     * 事务费
+     */
+    @Excel(name = "事务费", width = 15)
+    @ApiModelProperty(value = "事务费")
+    private java.math.BigDecimal swf;
+    /**
+     * 外协费
+     */
+    @Excel(name = "外协费", width = 15)
+    @ApiModelProperty(value = "外协费")
+    private java.math.BigDecimal wxf;
+    /**
+     * 燃料动力费/(材料费+外协费+事务费+专用费)×1.5%
+     */
+    @Excel(name = "燃料动力费/(材料费+外协费+事务费+专用费)×1.5%", width = 15)
+    @ApiModelProperty(value = "燃料动力费/(材料费+外协费+事务费+专用费)×1.5%")
+    private java.math.BigDecimal rldlf;
+    /**
+     * 固定资产折旧/(材料费+外协费+事务费+专用费)×2.5%
+     */
+    @Excel(name = "固定资产折旧/(材料费+外协费+事务费+专用费)×2.5%", width = 15)
+    @ApiModelProperty(value = "固定资产折旧/(材料费+外协费+事务费+专用费)×2.5%")
+    private java.math.BigDecimal gdzczj;
+    /**
+     * 工资及劳务费/(材料费+外协费+事务费+专用费)×17%
+     */
+    @Excel(name = "工资及劳务费/(材料费+外协费+事务费+专用费)×17%", width = 15)
+    @ApiModelProperty(value = "工资及劳务费/(材料费+外协费+事务费+专用费)×17%")
+    private java.math.BigDecimal gzjlwf;
+    /**
+     * 管理费/(材料费+外协费+事务费+专用费)×5%
+     */
+    @Excel(name = "管理费/(材料费+外协费+事务费+专用费)×5%", width = 15)
+    @ApiModelProperty(value = "管理费/(材料费+外协费+事务费+专用费)×5%")
+    private java.math.BigDecimal glf;
+    /**
+     * 装机成本/ mes装机信息卡的采购单价*数量
+     */
+    @Excel(name = "装机成本/ mes装机信息卡的采购单价*数量", width = 15)
+    @ApiModelProperty(value = "装机成本/ mes装机信息卡的采购单价*数量")
+    private java.math.BigDecimal zjcb;
+    /**
+     * 内部试验
+     */
+    @Excel(name = "内部试验", width = 15)
+    @ApiModelProperty(value = "内部试验")
+    private java.math.BigDecimal lbsy;
+    /**
+     * 工时(h)/来自科研报工,每次科研报工累加计时
+     */
+    @Excel(name = "工时(h)/来自科研报工,每次科研报工累加计时", width = 15)
+    @ApiModelProperty(value = "工时(h)/来自科研报工,每次科研报工累加计时")
+    private java.math.BigDecimal workhour;
+    /**
+     * 责任部门/来自科研任务
+     */
+    @Excel(name = "责任部门/来自科研任务", width = 15)
+    @ApiModelProperty(value = "责任部门/来自科研任务")
+    private java.lang.String zrbm;
+    /**
+     * 下达部门id/来自科研任务
+     */
+    @Excel(name = "下达部门id/来自科研任务", width = 15)
+    @ApiModelProperty(value = "下达部门id/来自科研任务")
+    private java.lang.Integer jycsid;
+    /**
+     * 下达部门/来自科研任务
+     */
+    @Excel(name = "下达部门/来自科研任务", width = 15)
+    @ApiModelProperty(value = "下达部门/来自科研任务")
+    private java.lang.String jycs;
+    /**
+     * 1:横向 2:纵向/来自科研任务
+     */
+    @Excel(name = "1:横向 2:纵向/来自科研任务", width = 15)
+    @ApiModelProperty(value = "1:横向 2:纵向/来自科研任务")
+    private java.lang.Integer hxzxid;
+    /**
+     * 横向纵向/来自科研任务
+     */
+    @Excel(name = "横向纵向/来自科研任务", width = 15)
+    @ApiModelProperty(value = "横向纵向/来自科研任务")
+    private java.lang.String hxzxname;
+    /**
+     * 任务类型/来自科研任务
+     */
+    @Excel(name = "任务类型/来自科研任务", width = 15)
+    @ApiModelProperty(value = "任务类型/来自科研任务")
+    private java.lang.String tasktype;
+    /**
+     * 审计审价/来自科研任务
+     */
+    @Excel(name = "审计审价/来自科研任务", width = 15)
+    @ApiModelProperty(value = "审计审价/来自科研任务")
+    private java.lang.String auditprice;
+    /**
+     * 任务状态/来自科研任务
+     */
+    @Excel(name = "任务状态/来自科研任务", width = 15)
+    @ApiModelProperty(value = "任务状态/来自科研任务")
+    private java.lang.String iflag;
+    /**
+     * 提出单位简称/来自科研任务
+     */
+    @Excel(name = "提出单位简称/来自科研任务", width = 15)
+    @ApiModelProperty(value = "提出单位简称/来自科研任务")
+    private java.lang.String brief;
+    /**
+     * 父级任务/来自科研任务
+     */
+    @Excel(name = "父级任务/来自科研任务", width = 15)
+    @ApiModelProperty(value = "父级任务/来自科研任务")
+    private java.lang.String reftaskno;
+    /**
+     * 批产任务号/来自科研任务
+     */
+    @Excel(name = "批产任务号/来自科研任务", width = 15)
+    @ApiModelProperty(value = "批产任务号/来自科研任务")
+    private java.lang.String pccode;
+    /**
+     * 备产任务号/来自科研任务
+     */
+    @Excel(name = "备产任务号/来自科研任务", width = 15)
+    @ApiModelProperty(value = "备产任务号/来自科研任务")
+    private java.lang.String bccode;
+    /**
+     * 备料任务号/来自科研任务
+     */
+    @Excel(name = "备料任务号/来自科研任务", width = 15)
+    @ApiModelProperty(value = "备料任务号/来自科研任务")
+    private java.lang.String blcode;
+    /**
+     * 业务员/来自科研任务
+     */
+    @Excel(name = "业务员/来自科研任务", width = 15)
+    @ApiModelProperty(value = "业务员/来自科研任务")
+    private java.lang.String businessman;
+    /**
+     * 设计工时
+     */
+    @Excel(name = "设计工时", width = 15)
+    @ApiModelProperty(value = "设计工时")
+    private java.math.BigDecimal sjgs;
+    /**
+     * 生产工时
+     */
+    @Excel(name = "生产工时", width = 15)
+    @ApiModelProperty(value = "生产工时")
+    private java.math.BigDecimal scgs;
+    /**
+     * 状态:0未加入到产品价格库的;4加入到产品价格库的;
+     */
+    @Excel(name = "状态",width = 15)
+    @ApiModelProperty(value = "状态")
+    private java.lang.String status;
+}

+ 34 - 0
module_kzks/src/main/java/org/jeecg/modules/costModelProductPrice/mapper/KzksCostModelProductPriceMapper.java

@@ -0,0 +1,34 @@
+package org.jeecg.modules.costModelProductPrice.mapper;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.costModelProductPrice.entity.KzksCostModelProductPrice;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.jeecg.modules.projectCostHuiji.entity.ProjectCostHuiji;
+
+/**
+ * @Description: kzks_cost_model_product_price
+ * @Author: jeecg-boot
+ * @Date:   2023-10-24
+ * @Version: V1.0
+ */
+public interface KzksCostModelProductPriceMapper extends BaseMapper<KzksCostModelProductPrice> {
+
+    /**
+    *   author: dzc
+    *   version: 1.0
+    *   des: 批量添加任务
+    *   date: 2023/10/24
+    */
+    public int insertBatchIntoKzksCostModelProductPrice(@Param("productPriceList") List<KzksCostModelProductPrice> productPriceList);
+
+
+    /**
+    *   author: dzc
+    *   version: 1.0
+    *   des: 根据idList查询对应的任务号
+    *   date: 2023/10/25
+    */
+    public List<String> getProductPriceListByIds(@Param("ids") List<String> ids);
+}

+ 84 - 0
module_kzks/src/main/java/org/jeecg/modules/costModelProductPrice/mapper/xml/KzksCostModelProductPriceMapper.xml

@@ -0,0 +1,84 @@
+<?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.costModelProductPrice.mapper.KzksCostModelProductPriceMapper">
+
+
+    <!-- 批量添加任务 -->
+    <insert id="insertBatchIntoKzksCostModelProductPrice">
+        insert into kzks_cost_model_product_price
+            (
+             taskno,taskname,xhname,jhwcsj,yzjdname,processPercent,cost_percent,yzsl,
+             one_income,one_cost,one_profit,lre,lrl,EstimationCoat,contractfpe,TaskMoney,
+             zcb,clf,zyf,swf,wxf,rldlf,gdzczj,gzjlwf,glf,zjcb,lbsy,workhour,zrbm,jycsid,jycs,
+             hxzxid,hxzxname,tasktype,AuditPrice,iflag,Brief,reftaskno,pcCode,bcCode,blCode,
+             BusinessMan,sjgs,scgs,status
+             )
+        VALUES
+        <foreach collection="productPriceList" item="productPrice" index="index" separator=",">
+            (
+             #{productPrice.taskno},
+             #{productPrice.taskname},
+             #{productPrice.xhname},
+             #{productPrice.jhwcsj},
+             #{productPrice.yzjdname},
+             #{productPrice.processpercent},
+             #{productPrice.costPercent},
+             #{productPrice.yzsl},
+             #{productPrice.oneIncome},
+             #{productPrice.oneCost},
+             #{productPrice.oneProfit},
+             #{productPrice.lre},
+             #{productPrice.lrl},
+             #{productPrice.estimationcoat},
+             #{productPrice.contractfpe},
+             #{productPrice.taskmoney},
+             #{productPrice.zcb},
+             #{productPrice.clf},
+             #{productPrice.zyf},
+             #{productPrice.swf},
+             #{productPrice.wxf},
+             #{productPrice.rldlf},
+             #{productPrice.gdzczj},
+             #{productPrice.gzjlwf},
+             #{productPrice.glf},
+             #{productPrice.zjcb},
+             #{productPrice.lbsy},
+             #{productPrice.workhour},
+             #{productPrice.zrbm},
+             #{productPrice.jycsid},
+             #{productPrice.jycs},
+             #{productPrice.hxzxid},
+             #{productPrice.hxzxname},
+             #{productPrice.tasktype},
+             #{productPrice.auditprice},
+             #{productPrice.iflag},
+             #{productPrice.brief},
+             #{productPrice.reftaskno},
+             #{productPrice.pccode},
+             #{productPrice.bccode},
+             #{productPrice.blcode},
+             #{productPrice.businessman},
+             #{productPrice.sjgs},
+             #{productPrice.scgs},
+             #{productPrice.status}
+            )
+        </foreach>
+    </insert>
+
+
+    <!-- 根据idList查询对应的任务号 -->
+    <resultMap id="tasknoList" type="String">
+        <result column="taskno"/>
+    </resultMap>
+    <select id="getProductPriceListByIds" resultMap="tasknoList">
+        SELECT
+            taskno
+        FROM
+            kzks_cost_model_product_price
+        WHERE
+            id IN
+        <foreach collection="ids" item="item" index="index" open="(" separator="," close=")">
+            #{item}
+        </foreach>
+    </select>
+</mapper>

+ 32 - 0
module_kzks/src/main/java/org/jeecg/modules/costModelProductPrice/service/IKzksCostModelProductPriceService.java

@@ -0,0 +1,32 @@
+package org.jeecg.modules.costModelProductPrice.service;
+
+import org.jeecg.modules.costModelProductPrice.entity.KzksCostModelProductPrice;
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.projectCostHuiji.entity.ProjectCostHuiji;
+
+import java.util.List;
+
+/**
+ * @Description: kzks_cost_model_product_price
+ * @Author: jeecg-boot
+ * @Date:   2023-10-24
+ * @Version: V1.0
+ */
+public interface IKzksCostModelProductPriceService extends IService<KzksCostModelProductPrice> {
+
+    /**
+    *   author: dzc
+    *   version: 1.0
+    *   des: 批量添加任务
+    *   date: 2023/10/24
+    */
+    public int insertBatchIntoKzksCostModelProductPrice(List<KzksCostModelProductPrice> productPriceList);
+
+    /**
+    *   author: dzc
+    *   version: 1.0
+    *   des: 修改指定任务在汇集表中的状态 由4改为0
+    *   date: 2023/10/24
+    */
+    public int updateStatusByTasknos(String ids);
+}

+ 58 - 0
module_kzks/src/main/java/org/jeecg/modules/costModelProductPrice/service/impl/KzksCostModelProductPriceServiceImpl.java

@@ -0,0 +1,58 @@
+package org.jeecg.modules.costModelProductPrice.service.impl;
+
+import org.jeecg.modules.costModelProductPrice.entity.KzksCostModelProductPrice;
+import org.jeecg.modules.costModelProductPrice.mapper.KzksCostModelProductPriceMapper;
+import org.jeecg.modules.costModelProductPrice.service.IKzksCostModelProductPriceService;
+import org.jeecg.modules.projectCostHuiji.entity.ProjectCostHuiji;
+import org.jeecg.modules.projectCostHuiji.mapper.ProjectCostHuijiMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * @Description: kzks_cost_model_product_price
+ * @Author: jeecg-boot
+ * @Date:   2023-10-24
+ * @Version: V1.0
+ */
+@Service
+public class KzksCostModelProductPriceServiceImpl extends ServiceImpl<KzksCostModelProductPriceMapper, KzksCostModelProductPrice> implements IKzksCostModelProductPriceService {
+
+    @Autowired
+    @SuppressWarnings("all")
+    private KzksCostModelProductPriceMapper productPriceMapper;
+
+    @Autowired
+    @SuppressWarnings("all")
+    private ProjectCostHuijiMapper projectCostHuijiMapper;
+
+    /**
+     *   author: dzc
+     *   version: 1.0
+     *   des: 批量添加任务
+     *   date: 2023/10/24
+     */
+    @Override
+    public int insertBatchIntoKzksCostModelProductPrice(List<KzksCostModelProductPrice> productPriceList) {
+        int i = productPriceMapper.insertBatchIntoKzksCostModelProductPrice(productPriceList);
+        return i;
+    }
+
+    /**
+     *   author: dzc
+     *   version: 1.0
+     *   des: 修改指定任务在汇集表中的状态 由4改为0
+     *   date: 2023/10/24
+     */
+    @Override
+    public int updateStatusByTasknos(String ids) {
+        List<String> idList = Arrays.asList(ids.split(","));
+        List<String> tasknoList = productPriceMapper.getProductPriceListByIds(idList);
+        int i = projectCostHuijiMapper.updateStatus2(tasknoList);
+        return i;
+    }
+}

+ 16 - 0
module_kzks/src/main/java/org/jeecg/modules/projectCostHuiji/controller/ProjectCostHuijiController.java

@@ -512,5 +512,21 @@ public class ProjectCostHuijiController extends JeecgController<ProjectCostHuiji
         return super.importExcel(request, response, ProjectCostHuiji.class);
     }
 
+    /**
+    *   author: dzc
+    *   version: 1.0
+    *   des: 将选中的任务号加入到成本模型中 (将汇集表中的status改为4)
+    *   date: 2023/10/24
+    */
+    @AutoLog(value = "项目成本汇集表-添加到成本模型中")
+    @ApiOperation(value = "项目成本汇集表-添加到成本模型中", notes = "项目成本汇集表-添加到成本模型中")
+    @RequestMapping(value = "/insertIntoCostModel", method = RequestMethod.POST)
+    public Result<String> insertIntoCostModel(@RequestBody List<ProjectCostHuiji> projectCostHuijis){
+        Boolean b = projectCostHuijiService.insertIntoCostModel(projectCostHuijis);
+        if ( b ){
+            return Result.OK("加入成功!");
+        }
+        return Result.OK("加入失败!");
+    }
 
 }

+ 6 - 0
module_kzks/src/main/java/org/jeecg/modules/projectCostHuiji/entity/ProjectCostHuiji.java

@@ -305,5 +305,11 @@ public class ProjectCostHuiji implements Serializable {
     @Excel(name = "生产工时", width = 15)
     @ApiModelProperty(value = "生产工时")
     private java.math.BigDecimal scgs;
+    /**
+     * 状态:0未加入到产品价格库的;4加入到产品价格库的;
+     */
+    @Excel(name = "状态",width = 15)
+    @ApiModelProperty(value = "状态")
+    private java.lang.String status;
 
 }

+ 17 - 0
module_kzks/src/main/java/org/jeecg/modules/projectCostHuiji/mapper/ProjectCostHuijiMapper.java

@@ -30,4 +30,21 @@ public interface ProjectCostHuijiMapper extends BaseMapper<ProjectCostHuiji> {
     ProjectCostHuiji costHJSumByTaskNoList(@Param("taskNos") List<String> list);
 
     ProjectCostHuiji costHJSumByProjectCostByTaskList(@Param("taskList") List<String> taskList);
+
+    /**
+    *   author: dzc
+    *   version: 1.0
+    *   des: 根据任务号 批量修改status 改为“4”
+    *   date: 2023/10/24
+    */
+    public int updateStatus1(@Param("tasknoList") List<String> tasknoList);
+
+    /**
+    *   author: dzc
+    *   version: 1.0
+    *   des: 根据任务号 批量修改status 改为“0”
+    *   date: 2023/10/24
+    */
+    public int updateStatus2(@Param("tasknoList") List<String> tasknoList);
+
 }

+ 15 - 0
module_kzks/src/main/java/org/jeecg/modules/projectCostHuiji/mapper/xml/ProjectCostHuijiMapper.xml

@@ -77,4 +77,19 @@
         </foreach>
     </select>
 
+    <!-- 根据任务号批量修改status 改为"4" -->
+    <update id="updateStatus1">
+        update kzks_project_cost_huiji set status = '4' where taskno in
+        <foreach collection="tasknoList" index="index" item="item" open="(" separator="," close=")">
+            #{item}
+        </foreach>
+    </update>
+
+    <!-- 根据任务号批量修改status 改为"0" -->
+    <update id="updateStatus2">
+        update kzks_project_cost_huiji set status = '0' where taskno in
+        <foreach collection="tasknoList" index="index" item="item" open="(" separator="," close=")">
+            #{item}
+        </foreach>
+    </update>
 </mapper>

+ 8 - 0
module_kzks/src/main/java/org/jeecg/modules/projectCostHuiji/service/IProjectCostHuijiService.java

@@ -40,4 +40,12 @@ public interface IProjectCostHuijiService extends IService<ProjectCostHuiji> {
     ProjectCostHuiji costHJSumByTaskNoList(List<String> list);
 
     ProjectCostHuiji costHJSumByProjectCostByTaskList(List<String> taskList);
+
+    /**
+    *   author: dzc
+    *   version: 1.0
+    *   des: 将选中的任务号加入到产品价格库中(添加到成本模型中) (并将汇集表中的status改为4)
+    *   date: 2023/10/24
+    */
+    public Boolean insertIntoCostModel(List<ProjectCostHuiji> projectCostHuijis);
 }

+ 127 - 0
module_kzks/src/main/java/org/jeecg/modules/projectCostHuiji/service/impl/ProjectCostHuijiServiceImpl.java

@@ -1,9 +1,13 @@
 package org.jeecg.modules.projectCostHuiji.service.impl;
 
+import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.apache.commons.lang3.ObjectUtils;
+import org.jeecg.modules.costModelProductPrice.entity.KzksCostModelProductPrice;
+import org.jeecg.modules.costModelProductPrice.mapper.KzksCostModelProductPriceMapper;
 import org.jeecg.modules.dataSourceSwitch.annotation.TargetDataSource;
 import org.jeecg.modules.dataSourceSwitch.enums.DataSourceType;
 import org.jeecg.modules.projectCost.entity.ProjectCost;
@@ -15,6 +19,8 @@ import org.springframework.stereotype.Service;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
+import java.math.BigDecimal;
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -31,6 +37,10 @@ public class ProjectCostHuijiServiceImpl extends ServiceImpl<ProjectCostHuijiMap
     @SuppressWarnings("all")
     private ProjectCostHuijiMapper huijiMapper;
 
+    @Autowired
+    @SuppressWarnings("all")
+    private KzksCostModelProductPriceMapper productPriceMapper;
+
     /**
      * 分页查询
      */
@@ -75,4 +85,121 @@ public class ProjectCostHuijiServiceImpl extends ServiceImpl<ProjectCostHuijiMap
         return huijiMapper.costHJSumByProjectCostByTaskList(taskList);
     }
 
+    /**
+    *   author: dzc
+    *   version: 1.0
+    *   des: 将选中的任务号加入到产品价格库中(添加到成本模型中) (将汇集表中的status改为4)
+    *   date: 2023/10/24
+    */
+    @Override
+    public Boolean insertIntoCostModel(List<ProjectCostHuiji> projectCostHuijis) {
+        ArrayList<String> tasknoList = new ArrayList<>();
+        ArrayList<KzksCostModelProductPrice> productPriceList = new ArrayList<>();
+        /** 1、遍历对象集合,将任务号放入集合中 */
+        for (ProjectCostHuiji projectCostHuiji:projectCostHuijis) {
+            tasknoList.add(projectCostHuiji.getTaskno());
+            BigDecimal yzsl = BigDecimal.valueOf(0);
+            if (projectCostHuiji.getYzsl() != 0){
+                yzsl = BigDecimal.valueOf(projectCostHuiji.getYzsl()); // 研制数量
+            }
+            // 单台 -- 预估价
+            BigDecimal oneEstimationcoat = projectCostHuiji.getEstimationcoat().divide(yzsl,5,BigDecimal.ROUND_HALF_UP);
+            // 单台 -- 合同分配额
+            BigDecimal oneContractfpe = projectCostHuiji.getContractfpe().divide(yzsl,5,BigDecimal.ROUND_HALF_UP);
+            // 单台 -- 已收款
+            BigDecimal oneTaskmoney = projectCostHuiji.getTaskmoney().divide(yzsl,5,BigDecimal.ROUND_HALF_UP);
+            // 单台 -- 总成本
+            BigDecimal oneZcb = projectCostHuiji.getZcb().divide(yzsl,5,BigDecimal.ROUND_HALF_UP);
+            // 单台 -- 材料费
+            BigDecimal oneClf = projectCostHuiji.getClf().divide(yzsl,5,BigDecimal.ROUND_HALF_UP);
+            // 单台 -- 事务费
+            BigDecimal oneSwf = projectCostHuiji.getSwf().divide(yzsl,5,BigDecimal.ROUND_HALF_UP);
+            // 单台 -- 外协费
+            BigDecimal oneWxf = projectCostHuiji.getWxf().divide(yzsl,5,BigDecimal.ROUND_HALF_UP);
+            // 单台 -- 专用费
+            BigDecimal oneZyf = projectCostHuiji.getZyf().divide(yzsl,5,BigDecimal.ROUND_HALF_UP);
+            // 单台 -- 燃料动力费
+            BigDecimal oneRldlf = projectCostHuiji.getRldlf().divide(yzsl,5,BigDecimal.ROUND_HALF_UP);
+            // 单台 -- 固定资产折旧费
+            BigDecimal oneGdzczj = projectCostHuiji.getGdzczj().divide(yzsl,5,BigDecimal.ROUND_HALF_UP);
+            // 单台 -- 工资及劳务费
+            BigDecimal oneGzjlwf = projectCostHuiji.getGzjlwf().divide(yzsl,5,BigDecimal.ROUND_HALF_UP);
+            // 单台 -- 管理费
+            BigDecimal oneGlf = projectCostHuiji.getGlf().divide(yzsl,5,BigDecimal.ROUND_HALF_UP);
+            // 单台 -- 装机成本
+            BigDecimal oneZjcb = projectCostHuiji.getZjcb().divide(yzsl,5,BigDecimal.ROUND_HALF_UP);
+            // 单台 -- 内部试验
+            BigDecimal oneLbsy = projectCostHuiji.getLbsy().divide(yzsl,5,BigDecimal.ROUND_HALF_UP);
+            // 单台 -- 工时
+            BigDecimal oneWorkhour = projectCostHuiji.getWorkhour().divide(yzsl,5,BigDecimal.ROUND_HALF_UP);
+            // 单台 -- 设计工时
+            BigDecimal oneSjgs = projectCostHuiji.getSjgs().divide(yzsl,5,BigDecimal.ROUND_HALF_UP);
+            // 单台 -- 生产工时
+            BigDecimal oneScgs = projectCostHuiji.getScgs().divide(yzsl,5,BigDecimal.ROUND_HALF_UP);
+
+            KzksCostModelProductPrice productPrice = new KzksCostModelProductPrice();
+            productPrice.setTaskno(projectCostHuiji.getTaskno());
+            if (projectCostHuiji.getTaskname() != null) productPrice.setTaskname(projectCostHuiji.getTaskname());
+            if (projectCostHuiji.getXhname() != null) productPrice.setXhname(projectCostHuiji.getXhname());
+            if (productPrice.getJhwcsj() != null) productPrice.setJhwcsj(productPrice.getJhwcsj());
+            if (projectCostHuiji.getYzjdname() != null) productPrice.setYzjdname(projectCostHuiji.getYzjdname());
+            if (projectCostHuiji.getProcesspercent() != null && !ObjectUtils.isEmpty(projectCostHuiji.getProcesspercent())) {
+                productPrice.setProcesspercent(projectCostHuiji.getProcesspercent());
+            }else {
+                productPrice.setProcesspercent("0");
+            }
+            if (projectCostHuiji.getCostPercent() != null && !ObjectUtils.isEmpty(projectCostHuiji.getCostPercent())) {
+                productPrice.setCostPercent(projectCostHuiji.getCostPercent());
+            }else {
+                productPrice.setCostPercent("0");
+            }
+            productPrice.setYzsl(projectCostHuiji.getYzsl());
+            productPrice.setOneIncome(projectCostHuiji.getOneIncome());
+            productPrice.setOneCost(projectCostHuiji.getOneCost());
+            productPrice.setOneProfit(projectCostHuiji.getOneProfit());
+            productPrice.setLre(projectCostHuiji.getLre());
+            productPrice.setLrl(projectCostHuiji.getLrl());
+            productPrice.setEstimationcoat(oneEstimationcoat);
+            productPrice.setContractfpe(oneContractfpe);
+            productPrice.setTaskmoney(oneTaskmoney);
+            productPrice.setZcb(oneZcb);
+            productPrice.setClf(oneClf);
+            productPrice.setZyf(oneZyf);
+            productPrice.setSwf(oneSwf);
+            productPrice.setWxf(oneWxf);
+            productPrice.setRldlf(oneRldlf);
+            productPrice.setGdzczj(oneGdzczj);
+            productPrice.setGzjlwf(oneGzjlwf);
+            productPrice.setGlf(oneGlf);
+            productPrice.setZjcb(oneZjcb);
+            productPrice.setLbsy(oneLbsy);
+            productPrice.setWorkhour(oneWorkhour);
+            if (projectCostHuiji.getZrbm() != null) productPrice.setZrbm(projectCostHuiji.getZrbm());
+            if (projectCostHuiji.getJycsid() != null) productPrice.setJycsid(projectCostHuiji.getJycsid());
+            if (projectCostHuiji.getJycs() != null) productPrice.setJycs(projectCostHuiji.getJycs());
+            if (projectCostHuiji.getHxzxid() != null) productPrice.setHxzxid(projectCostHuiji.getHxzxid());
+            if (projectCostHuiji.getHxzxname() != null) productPrice.setHxzxname(projectCostHuiji.getHxzxname());
+            if (projectCostHuiji.getTasktype() != null) productPrice.setTasktype(projectCostHuiji.getTasktype());
+            if (projectCostHuiji.getAuditprice() != null) productPrice.setAuditprice(projectCostHuiji.getAuditprice());
+            if (projectCostHuiji.getIflag() != null) productPrice.setIflag(projectCostHuiji.getIflag());
+            if (projectCostHuiji.getBrief() != null) productPrice.setBrief(projectCostHuiji.getBrief());
+            if (projectCostHuiji.getReftaskno() != null) productPrice.setReftaskno(projectCostHuiji.getReftaskno());
+            if (projectCostHuiji.getPccode() != null) productPrice.setPccode(projectCostHuiji.getPccode());
+            if (projectCostHuiji.getBccode() != null) productPrice.setBccode(projectCostHuiji.getBccode());
+            if (projectCostHuiji.getBlcode() != null) productPrice.setBlcode(projectCostHuiji.getBlcode());
+            if (projectCostHuiji.getBusinessman() != null) productPrice.setBusinessman(projectCostHuiji.getBusinessman());
+            productPrice.setSjgs(oneSjgs);
+            productPrice.setScgs(oneScgs);
+            productPrice.setStatus(projectCostHuiji.getStatus());
+            productPriceList.add(productPrice);
+        }
+        /** 2、修改指定任务号的status为4 */
+        int i1 = huijiMapper.updateStatus1(tasknoList);
+        /** 3、将对象的集合插入到成本模型表中 */
+        int i2 = productPriceMapper.insertBatchIntoKzksCostModelProductPrice(productPriceList);
+        if (i1 > 0 && i2 > 0){
+            return true;
+        }
+        return false;
+    }
 }