瀏覽代碼

07 29 01 add account_product codes

hr 4 年之前
父節點
當前提交
3b40a82b89

+ 16 - 0
src/main/java/com/imed/costaccount/mapper/AccountingProductMapper.java

@@ -0,0 +1,16 @@
+package com.imed.costaccount.mapper;
+
+import com.imed.costaccount.model.AccountingProduct;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 会计科目成本对照表
+ * 
+ * @author huangrui
+ * @date 2021-07-28 20:20:53
+ */
+@Mapper
+public interface AccountingProductMapper extends BaseMapper<AccountingProduct> {
+	
+}

+ 57 - 0
src/main/java/com/imed/costaccount/model/AccountingProduct.java

@@ -0,0 +1,57 @@
+package com.imed.costaccount.model;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+
+/**
+ * 会计科目成本对照表
+ * 
+ * @author huangrui
+ * @email 
+ * @date 2021-07-28 20:20:53
+ */
+@Data
+@Accessors(chain = true)
+@AllArgsConstructor
+@NoArgsConstructor
+@TableName("cost_accounting_product")
+public class AccountingProduct implements Serializable {
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 主键
+	 */
+	@TableId
+	private Integer id;
+	/**
+	 * 会计科目Id
+	 */
+	private Integer accountingId;
+	/**
+	 * 医院Id
+	 */
+	private Integer hospId;
+	/**
+	 * 成本收入Id
+	 */
+	private Integer productId;
+	/**
+	 * 创建时间13位时间戳
+	 */
+	private Long createTime;
+	/**
+	 * 删除时间,如果存在表示已删除13位时间戳
+	 */
+	@TableLogic(value = "0",delval = "UNIX_TIMESTAMP(NOW()) * 1000")
+	private Long deleteTime;
+
+}

+ 21 - 0
src/main/java/com/imed/costaccount/model/dto/AccountProductSaveDTO.java

@@ -0,0 +1,21 @@
+package com.imed.costaccount.model.dto;
+
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+@Data
+@ApiModel
+public class AccountProductSaveDTO {
+
+    @NotNull(message = "会计科目id不能为空")
+    private Integer id;
+
+    @NotEmpty(message = "成本项目id不能为空")
+    private List<Integer> products;
+}

+ 2 - 2
src/main/java/com/imed/costaccount/model/dto/AccountingEditDTO.java

@@ -17,6 +17,6 @@ public class AccountingEditDTO {
     @NotEmpty(message = "科目名称不能为空")
     private String accountingName;
 
-    @NotNull(message = "会计科目类型不能为空")
-    private Integer accountingType;
+//    @NotNull(message = "会计科目类型不能为空")
+//    private Integer accountingType;
 }

+ 18 - 0
src/main/java/com/imed/costaccount/model/dto/ProductAccountDTO.java

@@ -0,0 +1,18 @@
+package com.imed.costaccount.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+@Data
+@ApiModel
+public class ProductAccountDTO {
+
+    @NotNull(message = "id不能为空")
+    private Integer id;
+
+    @NotBlank(message = "成本名称不能为空")
+    private String productName;
+}

+ 23 - 0
src/main/java/com/imed/costaccount/model/dto/ProductEditDTO.java

@@ -0,0 +1,23 @@
+package com.imed.costaccount.model.dto;
+
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+@Data
+@ApiModel
+public class ProductEditDTO {
+
+    @NotNull(message = "id不能为空")
+    private Integer id;
+
+    @NotBlank(message = "成本名称不能为空")
+    private String productName;
+
+    @NotBlank(message = "成本科目代码不能为空")
+    private String productCode;
+
+}

+ 28 - 0
src/main/java/com/imed/costaccount/model/vo/AccountProductVO.java

@@ -0,0 +1,28 @@
+package com.imed.costaccount.model.vo;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+@ApiModel
+public class AccountProductVO {
+
+    private Integer id;
+
+    private String accountingName;
+
+    private String accountingCode;
+
+    @JsonIgnore
+    private Integer parentId;
+
+    @JsonInclude(JsonInclude.Include.NON_NULL)
+    private List<ProductVO> productVOs;
+
+    @JsonInclude(JsonInclude.Include.NON_NULL)
+    private List<AccountProductVO> child;
+}

+ 34 - 0
src/main/java/com/imed/costaccount/service/AccountingProductService.java

@@ -0,0 +1,34 @@
+package com.imed.costaccount.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.imed.costaccount.model.dto.AccountProductSaveDTO;
+import com.imed.costaccount.model.vo.AccountProductVO;
+import com.imed.costaccount.model.User;
+import com.imed.costaccount.model.AccountingProduct;
+
+import java.util.List;
+
+/**
+ * 会计科目成本对照表
+ *
+ * @author huangrui
+ * @email 
+ * @date 2021-07-28 20:20:53
+ */
+public interface AccountingProductService extends IService<AccountingProduct> {
+
+    /**
+     * 列表
+     * @param user
+     * @return
+     */
+    List<AccountProductVO> selectList(User user);
+
+    /**
+     * 保存或修改会计科目对照
+     * @param accountProductSaveDTO
+     * @param user
+     */
+    void saveAccountProduct(AccountProductSaveDTO accountProductSaveDTO, User user);
+}
+

+ 18 - 0
src/main/java/com/imed/costaccount/service/ProductService.java

@@ -5,6 +5,10 @@ import com.imed.costaccount.common.util.PageUtils;
 import com.imed.costaccount.model.Product;
 import com.imed.costaccount.model.ProductDTO;
 import com.imed.costaccount.model.User;
+import com.imed.costaccount.model.dto.ProductEditDTO;
+import com.imed.costaccount.model.vo.CommonVO;
+
+import java.util.List;
 
 /**
  * 成本管理表
@@ -31,5 +35,19 @@ public interface ProductService extends IService<Product> {
      * @param user
      */
     void saveProduct(ProductDTO productDTO, User user);
+
+    /**
+     * 编辑某个成本项目
+     * @param productEditDTO
+     * @param user
+     */
+    void editProduct(ProductEditDTO productEditDTO, User user);
+
+    /**
+     * 修改或新增会计科目对照列表
+     * @param user
+     * @return
+     */
+    List<CommonVO> getProducts(User user);
 }
 

+ 135 - 0
src/main/java/com/imed/costaccount/service/impl/AccountingProductServiceImpl.java

@@ -0,0 +1,135 @@
+package com.imed.costaccount.service.impl;
+
+import cn.hutool.core.collection.CollUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.imed.costaccount.mapper.AccountingMapper;
+import com.imed.costaccount.mapper.AccountingProductMapper;
+import com.imed.costaccount.mapper.ProductMapper;
+import com.imed.costaccount.model.*;
+import com.imed.costaccount.model.dto.AccountProductSaveDTO;
+import com.imed.costaccount.model.dto.ProductAccountDTO;
+import com.imed.costaccount.model.vo.AccountProductVO;
+import com.imed.costaccount.model.vo.ProductVO;
+import com.imed.costaccount.service.AccountingProductService;
+import com.imed.costaccount.utils.BeanUtil;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+
+
+@Service("accountingProductService")
+public class AccountingProductServiceImpl extends ServiceImpl<AccountingProductMapper, AccountingProduct> implements AccountingProductService {
+
+    private final AccountingMapper accountingMapper;
+
+    private final ProductMapper productMapper;
+
+    public AccountingProductServiceImpl(AccountingMapper accountingMapper, ProductMapper productMapper) {
+        this.accountingMapper = accountingMapper;
+        this.productMapper = productMapper;
+    }
+
+    /**
+     * 列表
+     *
+     * @param user
+     * @return
+     */
+    @Override
+    public List<AccountProductVO> selectList(User user) {
+        List<Accounting> list = accountingMapper.selectList(
+                new LambdaQueryWrapper<Accounting>()
+                        .eq(Accounting::getHospId, user.getHospId())
+        );
+
+        if (CollUtil.isEmpty(list)) {
+            return Collections.emptyList();
+        }
+        List<AccountProductVO> accountProductVOS = BeanUtil.convertList(list, AccountProductVO.class);
+        // 所有的
+        List<AccountProductVO> all = accountProductVOS.stream().map(i -> BeanUtil.convertObj(i, AccountProductVO.class)).collect(Collectors.toList());
+        // 顶层的
+        List<AccountProductVO> parents = all.stream().filter(i -> i.getParentId() == 0).collect(Collectors.toList());
+        List<AccountProductVO> accountVOS = new ArrayList<>();
+        for (AccountProductVO parent : parents) {
+            List<AccountProductVO> accountTree = this.getAccountTree(parent, all);
+            accountVOS.addAll(accountTree);
+        }
+        return accountVOS;
+    }
+
+
+    /**
+     * 递归处理
+     *
+     * @param accountVO
+     * @param list
+     * @return
+     */
+    private List<AccountProductVO> getAccountTree(AccountProductVO accountVO, List<AccountProductVO> list) {
+        List<AccountProductVO> accountVOS = new ArrayList<>();
+        for (AccountProductVO account : list) {
+            // 如果是父子关系
+            if (accountVO.getId().equals(account.getParentId())) {
+                List<AccountingProduct> accountingProducts = baseMapper.selectList(
+                        new LambdaQueryWrapper<AccountingProduct>().select(AccountingProduct::getId, AccountingProduct::getProductId)
+                                .eq(AccountingProduct::getAccountingId, account.getId())
+                );
+                if (CollUtil.isNotEmpty(accountingProducts)) {
+                    List<Integer> productIds = accountingProducts.stream().map(AccountingProduct::getProductId).collect(Collectors.toList());
+                    List<Product> products = productMapper.selectList(
+                            new LambdaQueryWrapper<Product>().in(Product::getId, productIds)
+                    );
+                    if (CollUtil.isNotEmpty(products)) {
+                        List<ProductVO> productVOS = BeanUtil.convertList(products, ProductVO.class);
+                        account.setProductVOs(productVOS);
+                    }
+                }
+
+                List<AccountProductVO> child = accountVO.getChild();
+                if (CollUtil.isEmpty(child)) {
+                    child = new ArrayList<>();
+                }
+                child.add(account);
+                accountVO.setChild(child);
+                // 处理子节点
+                this.getAccountTree(account, list);
+
+                accountVOS.add(accountVO);
+            }
+        }
+        return accountVOS;
+    }
+
+    /**
+     * 保存或修改会计科目对照
+     *
+     * @param accountProductSaveDTO
+     * @param user
+     */
+    @Override
+    @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
+    public void saveAccountProduct(AccountProductSaveDTO accountProductSaveDTO, User user) {
+        // 删除所有原来的关系
+        Integer accountId = accountProductSaveDTO.getId();
+        this.remove(new LambdaQueryWrapper<AccountingProduct>().eq(AccountingProduct::getAccountingId, accountId));
+
+        List<Integer> products = accountProductSaveDTO.getProducts();
+        List<AccountingProduct> accountingProducts = products.stream().map(i -> {
+            AccountingProduct accountingProduct = new AccountingProduct();
+            accountingProduct.setAccountingId(accountId)
+                    .setProductId(i)
+                    .setHospId(user.getHospId())
+                    .setCreateTime(System.currentTimeMillis());
+            return accountingProduct;
+        }).collect(Collectors.toList());
+
+        this.saveBatch(accountingProducts);
+    }
+}

+ 2 - 1
src/main/java/com/imed/costaccount/service/impl/AccountingServiceImpl.java

@@ -196,6 +196,7 @@ public class AccountingServiceImpl extends ServiceImpl<AccountingMapper, Account
     @Override
     @Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class)
     public void updateAccount(AccountingEditDTO accountingEditDTO, User user) {
+        // TODO: 2021/7/28 追踪溯源需求不满足
         Integer id = accountingEditDTO.getId();
         this.checkAccountingCode(accountingEditDTO.getAccountingCode(), user.getHospId());
         Accounting byId = this.getById(id);
@@ -206,7 +207,7 @@ public class AccountingServiceImpl extends ServiceImpl<AccountingMapper, Account
         byId.setAccountingCode(accountingEditDTO.getAccountingCode());
         byId.setAccountingName(accountingEditDTO.getAccountingName());
         byId.setCreateTime(System.currentTimeMillis());
-        byId.setAccountingType(accountingEditDTO.getAccountingType());
+//        byId.setAccountingType(accountingEditDTO.getAccountingType());
         this.updateById(byId);
 //        this.removeById(id);
 //        Accounting accounting = BeanUtil.convertObj(byId, Accounting.class);

+ 61 - 4
src/main/java/com/imed/costaccount/service/impl/ProductServiceImpl.java

@@ -4,15 +4,22 @@ import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.imed.costaccount.common.exception.CostException;
 import com.imed.costaccount.common.util.PageUtils;
 import com.imed.costaccount.model.ProductDTO;
 import com.imed.costaccount.model.User;
+import com.imed.costaccount.model.dto.ProductEditDTO;
+import com.imed.costaccount.model.vo.CommonVO;
 import com.imed.costaccount.model.vo.ProductVO;
 import com.imed.costaccount.utils.BeanUtil;
 import io.swagger.models.auth.In;
 import org.springframework.stereotype.Service;
 
+import java.util.Collection;
+import java.util.Collections;
 import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
@@ -58,20 +65,70 @@ public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> impl
      * @param user
      */
     @Override
-    @Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class)
+    @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
     public void saveProduct(ProductDTO productDTO, User user) {
         // 校验code
-
+        this.checkProductCode(productDTO.getProductCode(), user.getHospId());
+        Product product = BeanUtil.convertObj(productDTO, Product.class);
+        product.setCreateTime(System.currentTimeMillis());
+        product.setHospId(user.getHospId());
+        this.save(product);
     }
 
-    private void checkProductCode(Integer code, Integer hospId) {
+    private void checkProductCode(String code, Integer hospId) {
         List<Product> list = this.list(
                 new LambdaQueryWrapper<Product>()
                         .eq(Product::getProductCode, code)
                         .eq(Product::getHospId, hospId)
         );
         if (CollUtil.isNotEmpty(list)) {
-            
+            throw new CostException(500, "成本代码已存在");
+        }
+    }
+
+
+    /**
+     * 编辑某个成本项目
+     *
+     * @param productEditDTO
+     * @param user
+     */
+    @Override
+    @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
+    public void editProduct(ProductEditDTO productEditDTO, User user) {
+        Product byId = this.getById(productEditDTO.getId());
+        if (Objects.isNull(byId)) {
+            throw new CostException(500, "选中的会计科目不存在");
+        }
+        this.removeById(productEditDTO.getId());
+        this.checkProductCode(productEditDTO.getProductCode(), user.getHospId());
+        Product product = byId.setId(null).setHospId(user.getHospId())
+                        .setProductCode(productEditDTO.getProductCode())
+                        .setProductName(productEditDTO.getProductName())
+                        .setCreateTime(System.currentTimeMillis());
+        this.save(product);
+    }
+
+    /**
+     * 修改或新增会计科目对照列表
+     *
+     * @param user
+     * @return
+     */
+    @Override
+    public List<CommonVO> getProducts(User user) {
+        List<Product> list = this.list(
+                new LambdaQueryWrapper<Product>().select(Product::getId, Product::getProductCode, Product::getProductName)
+                        .eq(Product::getHospId, user.getHospId())
+        );
+        if (list.isEmpty()) {
+            return Collections.emptyList();
         }
+       return list.stream().map(i -> {
+            CommonVO commonVO = new CommonVO();
+            commonVO.setId(i.getId());
+            commonVO.setName(i.getProductName() + "[" + i.getProductCode() + "]");
+            return commonVO;
+        }).collect(Collectors.toList());
     }
 }

+ 24 - 16
src/main/java/com/imed/costaccount/service/impl/ResponsibilityServiceImpl.java

@@ -87,15 +87,7 @@ public class ResponsibilityServiceImpl extends ServiceImpl<ResponsibilityMapper,
         if (Objects.isNull(id)) {
             id = 0;
         }
-        // 校验责任代码唯一性
-        Responsibility one = this.getOne(
-                new LambdaQueryWrapper<Responsibility>().select(Responsibility::getId)
-                        .eq(Responsibility::getResponsibilityCode, responsibilitySaveDTO.getResponsibilityCode())
-                        .eq(Responsibility::getHospId, user.getHospId()).last("limit 1")
-        );
-        if (Objects.nonNull(one)) {
-            throw new CostException(ErrorCodeEnum.RESPONSIBILITY_CODE_EXIST);
-        }
+        checkCode(responsibilitySaveDTO.getResponsibilityCode(), user.getHospId());
 
         Responsibility center = BeanUtil.convertObj(responsibilitySaveDTO, Responsibility.class);
         center.setCreateTime(System.currentTimeMillis()).setId(null).setParentId(id).setHospId(user.getHospId()).setResponsibilityLevel(2);
@@ -108,6 +100,18 @@ public class ResponsibilityServiceImpl extends ServiceImpl<ResponsibilityMapper,
         this.save(center);
     }
 
+    private void checkCode(String code,Integer hospId) {
+        // 校验责任代码唯一性
+        Responsibility one = this.getOne(
+                new LambdaQueryWrapper<Responsibility>().select(Responsibility::getId)
+                        .eq(Responsibility::getResponsibilityCode, code)
+                        .eq(Responsibility::getHospId, hospId).last("limit 1")
+        );
+        if (Objects.nonNull(one)) {
+            throw new CostException(ErrorCodeEnum.RESPONSIBILITY_CODE_EXIST);
+        }
+    }
+
 
     /**
      * 编辑责任中心
@@ -125,24 +129,25 @@ public class ResponsibilityServiceImpl extends ServiceImpl<ResponsibilityMapper,
         }
         // 如果修改父节点节点(只有两层的情况)
         if (center.getResponsibilityLevel() == 1) {
-            this.updateParent(responsibilityEditDTO, center);
+            this.updateParent(responsibilityEditDTO, center, user.getHospId());
             return;
         }
 
-        this.updateCurrent(responsibilityEditDTO, center);
+        this.updateCurrent(responsibilityEditDTO, center,user.getHospId());
     }
 
     /**
      * 修的是父节点
-     *
-     * @param dto
+     *  @param dto
      * @param responsibility
+     * @param hospId
      */
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
-    public void updateParent(ResponsibilityEditDTO dto, Responsibility responsibility) {
+    public void updateParent(ResponsibilityEditDTO dto, Responsibility responsibility, Integer hospId) {
         // 删除原有的父节点数据
         Integer id = dto.getId();
         this.removeById(id);
+        this.checkCode(dto.getResponsibilityCode(),hospId);
         // 新增父节点数据
         Responsibility newResponsibility = BeanUtil.convertObj(dto, Responsibility.class);
         newResponsibility.setId(null).setHospId(responsibility.getHospId()).setCreateTime(new Date().getTime()).setResponsibilityLevel(1);
@@ -157,14 +162,17 @@ public class ResponsibilityServiceImpl extends ServiceImpl<ResponsibilityMapper,
     /**
      * 修改当前的节点
      *
-     * @param responsibility
      * @param dto
+     * @param responsibility
+     * @param hospId
      */
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
-    public void updateCurrent(ResponsibilityEditDTO dto, Responsibility responsibility) {
+    public void updateCurrent(ResponsibilityEditDTO dto, Responsibility responsibility, Integer hospId) {
         // 删除原有的父节点数据
         Integer id = dto.getId();
         this.removeById(id);
+
+        this.checkCode(dto.getResponsibilityCode(),hospId);
         // 新增父节点数据
         Responsibility newResponsibility = BeanUtil.convertObj(dto, Responsibility.class);
         newResponsibility.setId(null).setHospId(responsibility.getHospId()).setCreateTime(new Date().getTime()).setResponsibilityLevel(1);

+ 55 - 0
src/main/java/com/imed/costaccount/web/AccountingProductController.java

@@ -0,0 +1,55 @@
+package com.imed.costaccount.web;
+
+import com.imed.costaccount.common.util.PageUtils;
+import com.imed.costaccount.common.util.Result;
+import com.imed.costaccount.model.dto.AccountProductSaveDTO;
+import com.imed.costaccount.model.vo.AccountProductVO;
+import com.imed.costaccount.model.User;
+import com.imed.costaccount.service.AccountingProductService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.shiro.SecurityUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.List;
+
+
+/**
+ * 会计科目成本对照表
+ *
+ * @author huangrui
+ * @date 2021-07-28 20:20:53
+ */
+@Api(tags="会计科目成本对照表")
+@RestController
+@RequestMapping("/costAccount/accountProduct")
+public class AccountingProductController {
+
+    private final AccountingProductService accountingProductService;
+
+    public AccountingProductController(AccountingProductService accountingProductService) {
+        this.accountingProductService = accountingProductService;
+    }
+
+    /**
+     * 分页查询列表
+     */
+    @ApiOperation("会计科目成本对照列表")
+    @GetMapping("/list")
+    public Result list() {
+        User user = (User) SecurityUtils.getSubject().getPrincipal();
+        List<AccountProductVO> list = accountingProductService.selectList(user);
+        PageUtils pageUtils = new PageUtils(list, 0, 0, 0);
+        return Result.ok(pageUtils);
+    }
+
+    @ApiOperation("会计科目成本新增或修改")
+    @PostMapping("/save")
+    public Result save(@RequestBody @Valid AccountProductSaveDTO accountProductSaveDTO) {
+        User user = (User) SecurityUtils.getSubject().getPrincipal();
+        accountingProductService.saveAccountProduct(accountProductSaveDTO, user);
+        return Result.ok();
+    }
+
+}

+ 19 - 4
src/main/java/com/imed/costaccount/web/ProductController.java

@@ -5,6 +5,8 @@ import com.imed.costaccount.common.util.Result;
 import com.imed.costaccount.model.Product;
 import com.imed.costaccount.model.ProductDTO;
 import com.imed.costaccount.model.User;
+import com.imed.costaccount.model.dto.ProductEditDTO;
+import com.imed.costaccount.model.vo.CommonVO;
 import com.imed.costaccount.service.ProductService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -13,7 +15,9 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
+import java.sql.ResultSet;
 import java.util.Arrays;
+import java.util.List;
 
 
 /**
@@ -57,19 +61,30 @@ public class ProductController {
     /**
      * 修改
      */
-    @RequestMapping("/update")
-    public Result update(@RequestBody Product product){
-		productService.updateById(product);
+    @ApiOperation("编辑成本项目")
+    @PostMapping("/edit")
+    public Result update(@RequestBody @Valid ProductEditDTO productEditDTO){
+        User user = (User) SecurityUtils.getSubject().getPrincipal();
+        productService.editProduct(productEditDTO,user);
         return Result.ok();
     }
 
     /**
      * 删除
      */
-    @RequestMapping("/delete")
+    @ApiOperation("删除成本项目")
+    @PostMapping("/delete")
     public Result delete(@RequestBody Integer[] ids){
 		productService.removeByIds(Arrays.asList(ids));
         return Result.ok();
     }
 
+    @ApiOperation("修改或新增会计科目对照选择下拉列表")
+    @GetMapping("/getProducts")
+    public Result getProducts() {
+        User user = (User) SecurityUtils.getSubject().getPrincipal();
+        List<CommonVO> list = productService.getProducts(user);
+        return Result.ok(list);
+    }
+
 }

+ 0 - 5
src/main/java/com/imed/costaccount/web/test.json

@@ -1,5 +0,0 @@
-{
-  "id": 1,
-  "accountingCode": "10002342",
-  "accountingName": "234234"
-}

+ 17 - 0
src/main/resources/mapper/AccountingProductMapper.xml

@@ -0,0 +1,17 @@
+<?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="com.imed.costaccount.mapper.AccountingProductMapper">
+
+	<!-- 可根据自己的需求,是否要使用 -->
+    <resultMap type="com.imed.costaccount.model.AccountingProduct" id="accountingProductMap">
+        <result property="id" column="id"/>
+        <result property="accountingId" column="accounting_id"/>
+        <result property="hospId" column="hosp_id"/>
+        <result property="productId" column="product_id"/>
+        <result property="createTime" column="create_time"/>
+        <result property="deleteTime" column="delete_time"/>
+    </resultMap>
+
+
+</mapper>