Browse Source

Merge branch 'dev' of ssh://10.10.100.21/source/saas-platform into dev

hy 7 years ago
parent
commit
876b2f3d86
26 changed files with 398 additions and 359 deletions
  1. 7 1
      applications/commons/commons-dto/src/main/java/com/usoftchina/saas/commons/exception/BizExceptionCode.java
  2. 1 1
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/controller/WarehouseController.java
  3. 3 3
      applications/purchase/purchase-dto/src/main/java/com/usoftchina/saas/purchase/dto/PurchaseDetailDTO.java
  4. 2 3
      applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/po/PurchaseDetail.java
  5. 2 2
      applications/purchase/purchase-server/src/main/resources/mapper/PurchasedetailMapper.xml
  6. 2 1
      applications/sale/sale-dto/src/main/java/com/usoftchina/saas/sale/dto/ProdInOutDTO.java
  7. 2 2
      applications/sale/sale-dto/src/main/java/com/usoftchina/saas/sale/dto/ProdInOutListDTO.java
  8. 69 39
      applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/controller/ProdInOutController.java
  9. 8 8
      applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/service/ProdInOutService.java
  10. 117 142
      applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/service/impl/ProdInOutServiceImpl.java
  11. 94 94
      applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/service/impl/SaleServiceImpl.java
  12. 1 1
      applications/sale/sale-server/src/main/resources/mapper/ProdIODetailMapper.xml
  13. 1 1
      frontend/saas-web/app/model/purchase/purchasedetail.js
  14. 2 2
      frontend/saas-web/app/view/core/form/FormPanel.js
  15. 11 4
      frontend/saas-web/app/view/core/form/FormPanelController.js
  16. 7 7
      frontend/saas-web/app/view/core/query/QueryGridPanel.js
  17. 2 0
      frontend/saas-web/app/view/money/fundtransfer/FormPanel.js
  18. 3 1
      frontend/saas-web/app/view/money/othreceipts/FormPanel.js
  19. 3 1
      frontend/saas-web/app/view/money/othspendings/FormPanel.js
  20. 0 4
      frontend/saas-web/app/view/money/payBalance/FormPanel.js
  21. 0 4
      frontend/saas-web/app/view/money/recBalance/FormPanel.js
  22. 5 5
      frontend/saas-web/app/view/purchase/purchase/FormPanel.js
  23. 41 22
      frontend/saas-web/app/view/purchase/purchaseIn/FormPanel.js
  24. 3 3
      frontend/saas-web/app/view/sale/sale/FormPanel.js
  25. 4 4
      frontend/saas-web/app/view/sale/saleIn/FormPanel.js
  26. 8 4
      frontend/saas-web/app/view/sale/saleOut/FormPanel.js

+ 7 - 1
applications/commons/commons-dto/src/main/java/com/usoftchina/saas/commons/exception/BizExceptionCode.java

@@ -22,12 +22,17 @@ public enum BizExceptionCode implements BaseExceptionCode {
     CODE_EXISTS(79200, "单据编号已存在"),
     BIZ_CLOSE(79301, "只能关闭已审核的单据"),
     BIZ_OPEN(79302, "只能打开已关闭的单据"),
+    BIZ_AUDITED(79303,"只能审核未审核的单据"),
+    BIZ_UNAUDITED(79304,"只能反审核已审核的单据"),
+    BIZ_DELETE(79305,"只能删除未审核的单据"),
+    NO_OPRATIONDATA(79400,"无可操作单据"),
     BOM_SAVE(79401, "产品编号+版本号已存在"),
     REPEAT_NAME(79501, "名称重复"),
     NO_DATA(79998, "未找到数据"),
     ILLEGAL_ID(79999, "id不正确"),
 
 
+
     //采购
 
     //销售
@@ -36,7 +41,8 @@ public enum BizExceptionCode implements BaseExceptionCode {
     SALE_YQTYBEYONDQTY(72001, "明细行已转数量大于数量"),
     SALE_NULL_BILL(72002, "单据不存在或者明细为空"),
     SALEOUT_ALL_TURNIN(72003, "该销售出货单已全部转退货,无法转销售退货单"),
-    SALEOUT_POSTSTATUS_ERROR(72004,"单据状态异常,无法反审核"),
+    SALEOUT_POSTSTATUS_ERROR(72004,"当前单据状态无法进行此操作。"),
+    SALEOUT_POST_ERROR(72005,""),
     //资金
 
     //库存

+ 1 - 1
applications/document/document-server/src/main/java/com/usoftchina/saas/document/controller/WarehouseController.java

@@ -51,7 +51,7 @@ public class WarehouseController {
     @PostMapping("/unPost")
     public Result unPost(@RequestBody Map<String, Object> map){
         warehouseService.unPost(map);
-        return Result.success();
+        return Result.success(map.get("result"));
     }
 
     /**

+ 3 - 3
applications/purchase/purchase-dto/src/main/java/com/usoftchina/saas/purchase/dto/PurchaseDetailDTO.java

@@ -1,7 +1,7 @@
 package com.usoftchina.saas.purchase.dto;
 
 import com.usoftchina.saas.base.dto.CommonBaseDTO;
-import com.usoftchina.saas.document.entities.Product;
+import com.usoftchina.saas.document.dto.ProductDTO;
 import lombok.Data;
 
 import java.io.Serializable;
@@ -19,7 +19,7 @@ public class PurchaseDetailDTO extends CommonBaseDTO implements Serializable{
 
     private Integer pd_detno;
 
-    private Integer pd_prodid;
+    private Long pd_prodid;
 
     private String pd_prodcode;
 
@@ -57,6 +57,6 @@ public class PurchaseDetailDTO extends CommonBaseDTO implements Serializable{
 
     private Double pd_yqty;
 
-    private Product product;
+    private ProductDTO productDTO;
 
 }

+ 2 - 3
applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/po/PurchaseDetail.java

@@ -1,8 +1,7 @@
 package com.usoftchina.saas.purchase.po;
 
 import com.usoftchina.saas.base.entity.CommonBaseEntity;
-
-import com.usoftchina.saas.document.entities.Product;
+import com.usoftchina.saas.document.dto.ProductDTO;
 import lombok.Data;
 
 import java.io.Serializable;
@@ -54,5 +53,5 @@ public class PurchaseDetail extends CommonBaseEntity implements Serializable {
 
     private Double pd_yqty;
 
-    private Product product;
+    private ProductDTO productDTO;
 }

+ 2 - 2
applications/purchase/purchase-server/src/main/resources/mapper/PurchasedetailMapper.xml

@@ -28,7 +28,7 @@
     <result column="pd_text4" property="pd_text4" jdbcType="VARCHAR" />
     <result column="pd_text5" property="pd_text5" jdbcType="VARCHAR" />
     <result column="pd_yqty" property="pd_yqty" jdbcType="DOUBLE" />
-    <association property="product" javaType="com.usoftchina.saas.document.entities.Product">
+    <association property="productDTO" javaType="com.usoftchina.saas.document.dto.ProductDTO">
       <id column="pr_id" property="id"/>
       <result column="pr_code" property="pr_code"/>
       <result column="pr_detail" property="pr_detail"/>
@@ -399,7 +399,7 @@
       PD_QTY = #{item.pd_qty},
       PD_PRICE = #{item.pd_price},
       PD_TOTAL = #{item.pd_total},
-      PD_TAXRATE = #{item.pd_taxrate}
+      PD_TAXRATE = #{item.pd_taxrate},
       PD_TAXTOTAL = #{item.pd_taxtotal},
       PD_ACCEPTQTY = #{item.pd_acceptqty},
       PD_DELIVERY = #{item.pd_delivery},

+ 2 - 1
applications/sale/sale-dto/src/main/java/com/usoftchina/saas/sale/dto/ProdInOutDTO.java

@@ -1,6 +1,7 @@
 package com.usoftchina.saas.sale.dto;
 
 
+import com.usoftchina.saas.base.dto.CommonBaseDTO;
 import io.swagger.annotations.ApiModel;
 import lombok.Data;
 
@@ -12,7 +13,7 @@ import java.util.Date;
  * 2018-10-23
  */
 @Data
-public class ProdInOutDTO implements Serializable {
+public class ProdInOutDTO extends CommonBaseDTO implements Serializable {
 
     protected Long id;
 

+ 2 - 2
applications/sale/sale-dto/src/main/java/com/usoftchina/saas/sale/dto/ProdInOutListDTO.java

@@ -1,6 +1,6 @@
 package com.usoftchina.saas.sale.dto;
 
-import com.usoftchina.saas.base.entity.CommonBaseEntity;
+import com.usoftchina.saas.base.dto.CommonBaseDTO;
 import lombok.Data;
 
 import java.io.Serializable;
@@ -11,7 +11,7 @@ import java.util.Date;
  * 2018-10-23
  */
 @Data
-public class ProdInOutListDTO extends CommonBaseEntity implements Serializable {
+public class ProdInOutListDTO extends CommonBaseDTO implements Serializable {
 
     private String pi_inoutno;
 

+ 69 - 39
applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/controller/ProdInOutController.java

@@ -27,7 +27,6 @@ public class ProdInOutController {
     @Autowired
     ProdInOutService prodInOutService;
 
-
     /**
      * 出入库订单列表
      *
@@ -65,79 +64,77 @@ public class ProdInOutController {
     }
 
     /**
-     * 出入库单删除
+     * 出入库单审批
      *
-     * @param id
+     * @param formData
      * @return
      */
-    @GetMapping("/delete/{id}")
-    public Result delete(@PathVariable("id") Long id) {
-        prodInOutService.delete(id);
-        return Result.success();
+    @PostMapping("/audit")
+    public Result audit(@RequestBody ProdInOutFormDTO formData) {
+        DocBaseDTO auditDTO = prodInOutService.audit(formData);
+        return Result.success(auditDTO);
     }
 
     /**
-     * 出入库单明细删除
+     * 出入库单批量审核/反审核
      *
-     * @param id
+     * @param baseDTOs
      * @return
      */
-    @GetMapping("/deleteItem/{id}")
-    public Result deleteItem(@PathVariable("id") Long id) {
-        prodInOutService.deleteItem(id);
-        return Result.success();
+    @PostMapping("/batchAudit")
+    public Result batchAudit(@RequestBody BatchDealBaseDTO baseDTOs) {
+        String res = prodInOutService.batchAudit(baseDTOs);
+        return Result.success(res);
     }
 
-
     /**
      * 出入库单审批
      *
-     * @param formData
+     * @param id
      * @return
      */
-    @PostMapping("/audit")
-    public Result audit(@RequestBody ProdInOutFormDTO formData) {
-        DocBaseDTO audit = prodInOutService.audit(formData);
-        return Result.success(audit);
+    @PostMapping("/unAudit/{id}")
+    public Result unAudit(@PathVariable("id") Long id) {
+        prodInOutService.unAudit(id);
+        return Result.success();
     }
 
     /**
-     * 出入库单审批
+     * 出入库单批量反审核
      *
-     * @param id
+     * @param baseDTOs
      * @return
      */
-    @GetMapping("/unAudit/{id}")
-    public Result unAudit(@PathVariable("id") Long id) {
-        prodInOutService.unAudit(id);
-        return Result.success();
+    @PostMapping("/batchUnAudit")
+    public Result batchUnAudit(@RequestBody BatchDealBaseDTO baseDTOs) {
+        String res = prodInOutService.batchUnAudit(baseDTOs);
+        return Result.success(res);
     }
 
     /**
-     * 出入库单批量审核/反审核
+     * 出入库单删除
      *
-     * @param baseDTOs
+     * @param id
      * @return
      */
-    @PostMapping("/batchAudit")
-    public Result batchAudit(@RequestBody BatchDealBaseDTO baseDTOs) {
-        prodInOutService.batchAudit(baseDTOs);
+    @PostMapping("/delete/{id}")
+    public Result delete(@PathVariable("id") Long id) {
+        prodInOutService.delete(id);
         return Result.success();
     }
 
     /**
-     * 出入库单批量反审核
+     * 出入库单明细删除
      *
-     * @param baseDTOs
+     * @param id
      * @return
      */
-    @PostMapping("/batchUnAudit")
-    public Result batchUnAudit(@RequestBody BatchDealBaseDTO baseDTOs) {
-        prodInOutService.batchAudit(baseDTOs);
+    @PostMapping("/deleteItem/{id}")
+    public Result deleteItem(@PathVariable("id") Long id) {
+        prodInOutService.deleteItem(id);
         return Result.success();
     }
 
-
     /**
      * 出入库单批量删除
      *
@@ -146,17 +143,50 @@ public class ProdInOutController {
      */
     @PostMapping("/batchDelete")
     public Result batchDelete(@RequestBody BatchDealBaseDTO baseDTOs) {
-        prodInOutService.batchDelete(baseDTOs);
-        return Result.success();
+        String deleteDto = prodInOutService.batchDelete(baseDTOs);
+        return Result.success(deleteDto);
     }
 
-    @GetMapping("/turnProdIn/{id}")
+    @PostMapping("/turnProdIn/{id}")
     public Result turnProdin(@PathVariable("id") Long id){
         prodInOutService.turnProdin(id);
         return Result.success();
     };
 
+    @PostMapping("/close/{id}")
+    public Result close(@PathVariable(value = "id") long id) {
+        prodInOutService.close(id);
+        return Result.success();
+    }
 
+    @PostMapping("/open/{id}")
+    public Result open(@PathVariable(value = "id") long id) {
+        prodInOutService.open(id);
+        return Result.success();
+    }
 
+    /**
+     * 出入库单批量关闭
+     *
+     * @param baseDTOs
+     * @return
+     */
+    @PostMapping("/batchClose")
+    public Result batchClose(@RequestBody BatchDealBaseDTO baseDTOs) {
+        String res = prodInOutService.batchClose(baseDTOs);
+        return Result.success(res);
+    }
+
+    /**
+     * 出入库单批量开启
+     *
+     * @param baseDTOs
+     * @return
+     */
+    @PostMapping("/batchOpen")
+    public Result batchOpen(@RequestBody BatchDealBaseDTO baseDTOs) {
+        String res = prodInOutService.batchOpen(baseDTOs);
+        return Result.success(res);
+    }
 
 }

+ 8 - 8
applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/service/ProdInOutService.java

@@ -48,7 +48,7 @@ public interface ProdInOutService extends CommonBaseService<ProdInOutMapper, Pro
      * 批量删除出入库单
      * @param baseDTOs
      */
-    void batchDelete(BatchDealBaseDTO baseDTOs);
+    String batchDelete(BatchDealBaseDTO baseDTOs);
 
     /**
      * 删除明细
@@ -69,43 +69,43 @@ public interface ProdInOutService extends CommonBaseService<ProdInOutMapper, Pro
      * @param baseDTOs
      * @return
      */
-    void batchAudit(BatchDealBaseDTO baseDTOs);
+    String batchAudit(BatchDealBaseDTO baseDTOs);
 
     /**
      * 反审核出入库单
      * @param id
      */
-    Result unAudit(Long id);
+    void unAudit(Long id);
 
     /**
      * 批量反审核出入库单
      * @param baseDTOs
      */
-    void batchUnAudit(BatchDealBaseDTO baseDTOs);
+    String batchUnAudit(BatchDealBaseDTO baseDTOs);
 
     /**
      * 启用出入库单
      * @param id
      */
-    Result open(Long id);
+    DocBaseDTO open(Long id);
 
     /**
      * 关闭出入库单
      * @param
      */
-    Result close(Long id);
+    DocBaseDTO close(Long id);
 
     /**
      * 批量启用出入库单
      * @param baseDTOs
      */
-    void batchOpen(BatchDealBaseDTO baseDTOs);
+    String batchOpen(BatchDealBaseDTO baseDTOs);
 
     /**
      * 批量关闭出入库单
      * @param baseDTOs
      */
-    void batchClose(BatchDealBaseDTO baseDTOs);
+    String batchClose(BatchDealBaseDTO baseDTOs);
 
     /**
      * 获取列表信息

+ 117 - 142
applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/service/impl/ProdInOutServiceImpl.java

@@ -167,8 +167,13 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
     public void delete(Long id) {
         singleDelete(id);
     }
+
     private void singleDelete(Long id) {
         ProdInOut prodInOut = checkAndReturnOrder(id);
+        String pi_statuscode = prodInOut.getPi_statuscode();
+        if(StringUtils.isEmpty(pi_statuscode)||(!StringUtils.isEmpty(pi_statuscode)&&!pi_statuscode.equals(Status.UNAUDITED.name()))){
+            throw  new BizException(BizExceptionCode.BIZ_DELETE);
+        };
         //从表删除
         prodIODetailMapper.deleteByForeignKey(id);
         //主表删除
@@ -180,6 +185,36 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
        messageLogService.deleteDetail(docBaseDTO);
     }
 
+    @Override
+    public Integer deleteItem(Long id) {
+        ProdIODetail prodIODetail = prodIODetailMapper.selectByPrimaryKey(id);
+        ProdInOut prodInOut = checkAndReturnOrder(prodIODetail.getPd_piid());
+        Integer num = prodIODetailMapper.deleteByPrimaryKey(id);
+        //更新已转数
+        updateYqty(prodInOut);
+        DocBaseDTO docBaseDTO = getBaseDTOById(id,prodInOut.getPi_class(),prodInOut.getPi_inoutno());
+        //日志
+        messageLogService.deleteDetail(docBaseDTO);
+        return num;
+    }
+
+    @Override
+    public String batchDelete(BatchDealBaseDTO baseDTOs) {
+        if (null == baseDTOs || null == baseDTOs.getBaseDTOs() ||
+                baseDTOs.getBaseDTOs().size() == 0) {
+            return "无可删除的单据。";
+        }
+        StringBuffer errorMsg = new StringBuffer();
+        for (DocBaseDTO base : baseDTOs.getBaseDTOs()) {
+            try{
+                singleDelete(base.getId());
+            }catch (Exception e){
+                errorMsg.append("编号:" + base.getCode() + "处理失败," + e.getMessage());
+            }
+        }
+        return errorMsg.toString();
+    }
+
     @Override
     @Transactional
     public DocBaseDTO audit(ProdInOutFormDTO formData) {
@@ -187,21 +222,22 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
         DocBaseDTO baseDTO = new DocBaseDTO();
         if (null != formData) {
             id = formData.getMain().getId();
-            if (StringUtils.isEmpty(id)) {
+            if (StringUtils.isEmpty(id) || "0".equals(String.valueOf(id))) {
                 baseDTO = saveFormData(formData);
                 id = baseDTO.getId();
             }
-            String res = singleAudit(formData.getMain());
-            if(StringUtils.hasText(res)){
-                throw new BizException(501,res);
-            }
+            singleAudit( formData.getMain());
         }
         baseDTO.setId(id);
         return baseDTO;
     }
-    private String singleAudit(ProdInOutDTO prodInOutDTO) {
+    private void singleAudit(ProdInOutDTO prodInOutDTO) {
         String pi_class= prodInOutDTO.getPi_class();
         String pi_inoutno = prodInOutDTO.getPi_inoutno();
+        String pi_statuscode = prodInOutDTO.getPi_statuscode();
+        if(StringUtils.isEmpty(pi_statuscode)||(!StringUtils.isEmpty(pi_statuscode)&&!pi_statuscode.equals(Status.UNAUDITED.name()))){
+            throw  new BizException(BizExceptionCode.BIZ_AUDITED);
+        };
         Map<String, Object> map = new HashMap<String, Object>();
         map.put("inoutNo",pi_inoutno);
         map.put("class", pi_class);
@@ -210,35 +246,51 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
         map.put("result","");
         Result res = warehouseApi.post(map);
         Object result =  res.getData();
+        System.out.println("result:"+result);
         if(!StringUtils.isEmpty(result)){
-            return result.toString();
+            throw new BizException(BizExceptionCode.SALEOUT_POST_ERROR.getCode(),result.toString());
         }else{
             //记录日志
             DocBaseDTO docBaseDTO = getBaseDTOById(prodInOutDTO.getId(),pi_class,pi_inoutno);
             //日志
             messageLogService.audit(docBaseDTO);
-            return "";
         }
     }
+    @Override
+    public String batchAudit(BatchDealBaseDTO baseDTOs) {
+        if (null == baseDTOs || null == baseDTOs.getBaseDTOs() ||
+                baseDTOs.getBaseDTOs().size() == 0) {
+            return "没有可审核单据。";
+        }
+        StringBuffer errorMsg = new StringBuffer();
+        for (DocBaseDTO base : baseDTOs.getBaseDTOs()) {
+            try{
+                Long id =  base.getId();
+                ProdInOut prodInOut = prodInOutMapper.selectByPrimaryKey(id);
+                ProdInOutDTO prodInOutDTO = BeanMapper.map(prodInOut,ProdInOutDTO.class);
+                singleAudit(prodInOutDTO);
+            }catch (Exception e){
+                errorMsg.append("编号:" + base.getCode() + "处理失败," + e.getMessage());
+            }
+        }
+        return errorMsg.toString();
+    }
 
     @Override
-    public Result unAudit(Long id) {
+    public void unAudit(Long id) {
+        DocBaseDTO baseDTO = new DocBaseDTO();
         ProdInOut prodInOut = checkAndReturnOrder(id);
-        String code = prodInOutMapper.validateUnAudit(id);
-        if (!prodInOut.getPi_statuscode().equals(Status.AUDITED.name())) {
-            throw new BizException(BizExceptionCode.SALE_NULL_BILL);
-        }
         ProdInOutDTO prodInOutDTO = BeanMapper.map(prodInOut, ProdInOutDTO.class);
-        String res =  singleUnAudit(prodInOutDTO);
-        if(res!=null){
-            return Result.error(res);
-        }else{
-            return Result.success();
-        }
+        singleUnAudit(prodInOutDTO);
     }
-    private String singleUnAudit(ProdInOutDTO prodInOutDTO) {
+
+    private void singleUnAudit(ProdInOutDTO prodInOutDTO) {
         String pi_class = prodInOutDTO.getPi_class();
         String  pi_inoutno = prodInOutDTO.getPi_inoutno();
+        String pi_statuscode = prodInOutDTO.getPi_statuscode();
+        if(StringUtils.isEmpty(pi_statuscode)||(!StringUtils.isEmpty(pi_statuscode)&&!pi_statuscode.equals(Status.AUDITED.name()))){
+            throw  new BizException(BizExceptionCode.BIZ_UNAUDITED);
+        };
         Map<String, Object> map = new HashMap<String, Object>();
         map.put("inoutNo", pi_inoutno);
         map.put("class", pi_class);
@@ -248,90 +300,33 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
         Result res = warehouseApi.unPost(map);
         Object result =  res.getData();
         if(!StringUtils.isEmpty(result)){
-            return result.toString();
-        }else{
-            //更新状态为未审核
-            ProdInOut prodInOut = BeanMapper.map(prodInOutDTO, ProdInOut.class);
-            prodInOut.setPi_statuscode(Status.UNAUDITED.name());
-            prodInOut.setPi_status(Status.UNAUDITED.getDisplay());
-            prodInOut.setUpdateTime(new Date());
-            prodInOut.setUpdaterId(BaseContextHolder.getUserId());
-            getMapper().updateByPrimaryKeySelective(prodInOut);
+            throw new BizException(BizExceptionCode.SALEOUT_POST_ERROR.getCode(),result.toString());
+        }else {
             //记录日志
             DocBaseDTO docBaseDTO = getBaseDTOById(prodInOutDTO.getId(),pi_class,pi_inoutno);
             //日志
             messageLogService.unAudit(docBaseDTO);
-            return "";
         }
     }
 
     @Override
-    public void batchAudit(BatchDealBaseDTO baseDTOs) {
+    public String batchUnAudit(BatchDealBaseDTO baseDTOs) {
         if (null == baseDTOs || null == baseDTOs.getBaseDTOs() ||
                 baseDTOs.getBaseDTOs().size() == 0) {
-            return;
+            return "无可反审核单据。";
         }
-        String validate = prodInOutMapper.validateAudit(baseDTOs.getBaseDTOs());
-        if (!StringUtils.isEmpty(validate)) {
-            throw new BizException(500, "存在已审核单据,单据编号:" + validate);
-        }
-        String error = null;
+        StringBuffer errorMsg = new StringBuffer();
         for (DocBaseDTO base : baseDTOs.getBaseDTOs()) {
-            Long id =  base.getId();
-            ProdInOut prodInOut = prodInOutMapper.selectByPrimaryKey(id);
-            ProdInOutDTO prodInOutDTO = BeanMapper.map(prodInOut,ProdInOutDTO.class);
-            error+=singleAudit(prodInOutDTO);
-        }
-        if(!StringUtils.isEmpty(error)){
-            new BizException(501,error);
-        }
-    }
-
-    @Override
-    public void batchUnAudit(BatchDealBaseDTO baseDTOs) {
-        if (null == baseDTOs || null == baseDTOs.getBaseDTOs() ||
-                baseDTOs.getBaseDTOs().size() == 0) {
-            return;
-        }
-
-        String msg = prodInOutMapper.validateBatchUnAudit(baseDTOs.getBaseDTOs());
-        if (null != msg) {
-            throw new BizException(500, "存在未审核单据,单据编号:" + msg);
-        }
-        String error = null;
-        for (DocBaseDTO base : baseDTOs.getBaseDTOs()) {
-            Long id =  base.getId();
-            ProdInOut prodInOut = prodInOutMapper.selectByPrimaryKey(id);
-            ProdInOutDTO prodInOutDTO = BeanMapper.map(prodInOut,ProdInOutDTO.class);
-            error+=singleUnAudit(prodInOutDTO);
-        }
-        if(!StringUtils.isEmpty(error)){
-            throw new BizException(501,error);
-        }
-    }
-
-    @Override
-    public Integer deleteItem(Long id) {
-        ProdIODetail prodIODetail = prodIODetailMapper.selectByPrimaryKey(id);
-        ProdInOut prodInOut = checkAndReturnOrder(prodIODetail.getPd_piid());
-        Integer num = prodIODetailMapper.deleteByPrimaryKey(id);
-        //更新已转数
-        updateYqty(prodInOut);
-        DocBaseDTO docBaseDTO = getBaseDTOById(id,prodInOut.getPi_class(),prodInOut.getPi_inoutno());
-        //日志
-       messageLogService.deleteDetail(docBaseDTO);
-        return num;
-    }
-
-    @Override
-    public void batchDelete(BatchDealBaseDTO baseDTOs) {
-        if (null == baseDTOs || null == baseDTOs.getBaseDTOs() ||
-                baseDTOs.getBaseDTOs().size() == 0) {
-            return;
-        }
-        for (DocBaseDTO base : baseDTOs.getBaseDTOs()) {
-            singleDelete(base.getId());
+            try {
+                Long id =  base.getId();
+                ProdInOut prodInOut = prodInOutMapper.selectByPrimaryKey(id);
+                ProdInOutDTO prodInOutDTO = BeanMapper.map(prodInOut,ProdInOutDTO.class);
+                singleUnAudit(prodInOutDTO);
+            }catch (Exception e){
+                errorMsg.append("编号:" + base.getCode() + "处理失败," + e.getMessage());
+            }
         }
+        return errorMsg.toString();
     }
 
     @Override
@@ -378,7 +373,7 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
 
         //检查转单状态
         String statuscode = sourcePi.getPi_statuscode();
-        if(!Status.UNAUDITED.name().equals(statuscode)){
+        if(!Status.AUDITED.name().equals(statuscode)){
             throw new BizException(BizExceptionCode.SALEOUT_POSTSTATUS_ERROR);
         }
 
@@ -464,20 +459,12 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
 
     @Override
     @Transactional
-    public Result close(Long id) {
-        String res = singleClose(id);
-        if(StringUtils.hasText(res)){
-            return Result.error(res);
-        }else{
-            return Result.success();
-        }
-    }
-
-    private String singleClose(Long id){
+    public DocBaseDTO close(Long id) {
         ProdInOut prodInOut = checkAndReturnOrder(id);
+        String pi_statuscode = prodInOut.getPi_statuscode();
         //状态校验
-        if(Status.CLOSE.name().equals(prodInOut.getPi_status())){
-            return BizExceptionCode.BIZ_CLOSE.getMessage();
+        if(StringUtils.isEmpty(pi_statuscode)||(!StringUtils.isEmpty(pi_statuscode)&&!pi_statuscode.equals(Status.AUDITED.name()))){
+           throw  new BizException(BizExceptionCode.BIZ_CLOSE);
         }
         //更新状态
         prodInOut.setPi_status(Status.CLOSE.getDisplay());
@@ -486,72 +473,60 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
         prodInOutMapper.updateByPrimaryKeySelective(prodInOut);
         //记录日志
         DocBaseDTO docBaseDTO = getBaseDTOById(prodInOut.getId(),prodInOut.getPi_class(),prodInOut.getPi_inoutno());
-       messageLogService.close(docBaseDTO);
-        return "";
+        messageLogService.close(docBaseDTO);
+        return docBaseDTO;
     }
 
+
     @Override
-    public  void batchClose(BatchDealBaseDTO baseDTOs){
+    public  String batchClose(BatchDealBaseDTO baseDTOs){
         if (null == baseDTOs || null == baseDTOs.getBaseDTOs() ||
                 baseDTOs.getBaseDTOs().size() == 0) {
-            return;
-        }
-        String validate = prodInOutMapper.validateBatchClose(baseDTOs.getBaseDTOs());
-        if (!StringUtils.isEmpty(validate)) {
-            throw new BizException(503, "存在非已审核单据,单据编号:" + validate);
+            return "没有可关闭单据。";
         }
-        String error = null;
+        StringBuffer errorMsg = new StringBuffer();
         for (DocBaseDTO base : baseDTOs.getBaseDTOs()) {
-            error+=singleClose(base.getId());
-        }
-        if(!StringUtils.isEmpty(error)){
-            new BizException(501,error);
+            try{
+                close(base.getId());
+            }catch (Exception e){
+                errorMsg.append("编号:" + base.getCode() + "处理失败," + e.getMessage());
+            }
         }
+        return errorMsg.toString();
     }
 
     @Override
     @Transactional
-    public Result open(Long id){
-        String res = singleOpen(id);
-        if(StringUtils.hasText(res)){
-            return Result.error(res);
-        }else{
-            return Result.success();
-        }
-    }
-
-    private String singleOpen(Long id){
+    public DocBaseDTO open(Long id){
         ProdInOut prodInOut = checkAndReturnOrder(id);
         String pi_statuscode = prodInOut.getPi_statuscode();
-        if(!StringUtils.isEmpty(pi_statuscode)&&!pi_statuscode.equals(Status.CLOSE.getDisplay())){
-            return BizExceptionCode.BIZ_OPEN.getMessage();
+        if(StringUtils.isEmpty(pi_statuscode)||(!StringUtils.isEmpty(pi_statuscode)&&!pi_statuscode.equals(Status.CLOSE.name()))){
+            throw  new BizException(BizExceptionCode.BIZ_OPEN);
         };
         prodInOut.setPi_status(Status.AUDITED.getDisplay());
-        prodInOut.setPi_statuscode(Status.AUDITED.getDisplay());
+        prodInOut.setPi_statuscode(Status.AUDITED.name());
         prodInOutMapper.updateByPrimaryKeySelective(prodInOut);
         //记录日志
         DocBaseDTO docBaseDTO = getBaseDTOById(prodInOut.getId(),prodInOut.getPi_class(),prodInOut.getPi_inoutno());
         messageLogService.open(docBaseDTO);
-        return "";
+        return docBaseDTO;
     }
 
     @Override
-    public void batchOpen(BatchDealBaseDTO baseDTOs){
+    public String batchOpen(BatchDealBaseDTO baseDTOs){
         if (null == baseDTOs || null == baseDTOs.getBaseDTOs() ||
                 baseDTOs.getBaseDTOs().size() == 0) {
-            return;
-        }
-        String validate = prodInOutMapper.validateBatchOpen(baseDTOs.getBaseDTOs());
-        if (!StringUtils.isEmpty(validate)) {
-            throw new BizException(503, "存在非已关闭单据,单据编号:" + validate);
+            return "没有可开启单据。";
         }
-        String error = null;
+        StringBuffer errorMsg = new StringBuffer();
         for (DocBaseDTO base : baseDTOs.getBaseDTOs()) {
-            error+=singleOpen(base.getId());
-        }
-        if(!StringUtils.isEmpty(error)){
-            new BizException(501,error);
+            try{
+                open(base.getId());
+            }catch (Exception e){
+                errorMsg.append("编号:" + base.getCode() + "处理失败," + e.getMessage());
+            }
         }
+        return errorMsg.toString();
     }
 
     /**

+ 94 - 94
applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/service/impl/SaleServiceImpl.java

@@ -188,6 +188,18 @@ public class SaleServiceImpl implements SaleService{
         singleDelete(id);
     }
 
+    @Override
+    public void batchDelete(BatchDealBaseDTO baseDTOs) {
+        if (null == baseDTOs || null == baseDTOs.getBaseDTOs() ||
+                baseDTOs.getBaseDTOs().size() == 0) {
+            return;
+        }
+
+        for (DocBaseDTO base : baseDTOs.getBaseDTOs()) {
+            singleDelete(base.getId());
+        }
+    }
+
     @Override
     public int deleteDetail(Long id) {
         Integer num = saledetailMapper.deleteByPrimaryKey(id);
@@ -213,16 +225,25 @@ public class SaleServiceImpl implements SaleService{
         return baseDTO;
     }
 
-    @Override
-    public void unAudit(Long id) {
-        if (null == id) {
-            return;
-        }
-        String code = saleMapper.validateUnAudit(id);
-        if (null != code) {
-            throw new BizException(BizExceptionCode.SALE_NULL_BILL);
-        }
-        singleUnAudit(id);
+    private void singleAudit(Long id) {
+        Sale sale = new Sale();
+        //生成更新对象
+        sale.setId(id);
+        sale.setSa_status(Status.AUDITED.getDisplay());
+        sale.setSa_statuscode(Status.AUDITED.name());
+        sale.setUpdateTime(new Date());
+        sale.setUpdaterId(BaseContextHolder.getUserId());
+        //更新存在字段
+        saleMapper.updateByPrimaryKeySelective(sale);
+        //更新销售金额
+        updateTotal(id);
+        //更新从表总额
+        updateTotalAndNetPrice(id);
+        //更新从表不含税金额
+        updateNetTotal(id);
+        DocBaseDTO docBaseDTO = getBaseDTOById(id);
+        //日志
+        messageLogService.audit(docBaseDTO);
     }
 
     @Override
@@ -242,36 +263,46 @@ public class SaleServiceImpl implements SaleService{
     }
 
     @Override
-    public void batchDelete(BatchDealBaseDTO baseDTOs) {
-        if (null == baseDTOs || null == baseDTOs.getBaseDTOs() ||
-                baseDTOs.getBaseDTOs().size() == 0) {
+    public void unAudit(Long id) {
+        if (null == id) {
             return;
         }
-
-        for (DocBaseDTO base : baseDTOs.getBaseDTOs()) {
-            singleDelete(base.getId());
+        String code = saleMapper.validateUnAudit(id);
+        if (null != code) {
+            throw new BizException(BizExceptionCode.SALE_NULL_BILL);
         }
+        singleUnAudit(id);
     }
 
-    private void singleAudit(Long id) {
+    private void singleUnAudit(Long id) {
         Sale sale = new Sale();
         //生成更新对象
         sale.setId(id);
-        sale.setSa_status(Status.AUDITED.getDisplay());
-        sale.setSa_statuscode(Status.AUDITED.name());
+        sale.setSa_status(Status.UNAUDITED.getDisplay());
+        sale.setSa_statuscode(Status.UNAUDITED.name());
         sale.setUpdateTime(new Date());
         sale.setUpdaterId(BaseContextHolder.getUserId());
         //更新存在字段
         saleMapper.updateByPrimaryKeySelective(sale);
-        //更新销售金额
-        updateTotal(id);
-        //更新从表总额
-        updateTotalAndNetPrice(id);
-        //更新从表不含税金额
-        updateNetTotal(id);
         DocBaseDTO docBaseDTO = getBaseDTOById(id);
         //日志
-        messageLogService.audit(docBaseDTO);
+        messageLogService.unAudit(docBaseDTO);
+    }
+
+    @Override
+    public void batchUnAudit(BatchDealBaseDTO baseDTOs) {
+        if (null == baseDTOs || null == baseDTOs.getBaseDTOs() ||
+                baseDTOs.getBaseDTOs().size() == 0) {
+            return;
+        }
+
+        String msg = saleMapper.validateBatchUnAudit(baseDTOs.getBaseDTOs());
+        if (null != msg) {
+            throw new BizException(500, "存在未审核单据,单据编号:" + msg);
+        }
+        for (DocBaseDTO base : baseDTOs.getBaseDTOs()) {
+            singleUnAudit(base.getId());
+        }
     }
 
     private void singleDelete(Long id) {
@@ -286,7 +317,6 @@ public class SaleServiceImpl implements SaleService{
         }
     }
 
-
     private List<SaleList> getListByMode(ListReqDTO req) {
         List<SaleList> list = null;
         Long companyId = BaseContextHolder.getCompanyId();
@@ -302,58 +332,6 @@ public class SaleServiceImpl implements SaleService{
         return list;
     }
 
-    /**
-     * @Description: 检验获取并更新单号
-     * @Param: [code, id]
-     * @return: java.lang.String
-     * @Author: guq
-     * @Date: 2018/10/19
-     */
-    private String pushMaxnubmer(String code, Long id) {
-        if (null == code) {
-            throw new BizException(BizExceptionCode.NULL_CODE);
-        }
-        Long companyId = BaseContextHolder.getCompanyId();
-        Integer count = "0".equals(String.valueOf(id)) ? saleMapper.validateCodeWhenInsert(code, companyId) :
-                saleMapper.validateCodeWhenUpdate(code, id, companyId);
-        return maxnumberService.pushMaxnubmer(count, code, BillCodeSeq.SALE.getCaller()).getData();
-    }
-
-    /**
-     * @Description
-     * @Param: [id]
-     * @return: com.usoftchina.saas.commons.dto.DocBaseDTO
-     * @Author: guq
-     * @Date: 2018/10/22
-     */
-    private DocBaseDTO getBaseDTOById(Long id) {
-        if (null == id) {
-            return null;
-        }
-        String code = saleMapper.selectCodeById(id);
-        DocBaseDTO baseDTO = new DocBaseDTO();
-        baseDTO.setId(id);
-        baseDTO.setCode(code);
-        baseDTO.setName("Sale");
-        return baseDTO;
-    }
-
-    @Override
-    public void batchUnAudit(BatchDealBaseDTO baseDTOs) {
-        if (null == baseDTOs || null == baseDTOs.getBaseDTOs() ||
-                baseDTOs.getBaseDTOs().size() == 0) {
-            return;
-        }
-
-        String msg = saleMapper.validateBatchUnAudit(baseDTOs.getBaseDTOs());
-        if (null != msg) {
-            throw new BizException(500, "存在未审核单据,单据编号:" + msg);
-        }
-        for (DocBaseDTO base : baseDTOs.getBaseDTOs()) {
-            singleUnAudit(base.getId());
-        }
-    }
-
     @Override
     public void close(long id) {
         Sale sale = new Sale();
@@ -490,21 +468,6 @@ public class SaleServiceImpl implements SaleService{
          saleMapper.updateByPrimaryKeySelective(sale);
     }
 
-    private void singleUnAudit(Long id) {
-        Sale sale = new Sale();
-        //生成更新对象
-        sale.setId(id);
-        sale.setSa_status(Status.UNAUDITED.getDisplay());
-        sale.setSa_statuscode(Status.UNAUDITED.name());
-        sale.setUpdateTime(new Date());
-        sale.setUpdaterId(BaseContextHolder.getUserId());
-        //更新存在字段
-        saleMapper.updateByPrimaryKeySelective(sale);
-        DocBaseDTO docBaseDTO = getBaseDTOById(id);
-        //日志
-        messageLogService.unAudit(docBaseDTO);
-    }
-
     //更新最新销售总额
     private void updateTotal(Long id) {
         if (null == id) {
@@ -533,4 +496,41 @@ public class SaleServiceImpl implements SaleService{
         }
         saleMapper.updateNetTotal(id);
     }
+
+    /**
+     * @Description: 检验获取并更新单号
+     * @Param: [code, id]
+     * @return: java.lang.String
+     * @Author: guq
+     * @Date: 2018/10/19
+     */
+    private String pushMaxnubmer(String code, Long id) {
+        if (null == code) {
+            throw new BizException(BizExceptionCode.NULL_CODE);
+        }
+        Long companyId = BaseContextHolder.getCompanyId();
+        Integer count = "0".equals(String.valueOf(id)) ? saleMapper.validateCodeWhenInsert(code, companyId) :
+                saleMapper.validateCodeWhenUpdate(code, id, companyId);
+        return maxnumberService.pushMaxnubmer(count, code, BillCodeSeq.SALE.getCaller()).getData();
+    }
+
+    /**
+     * @Description
+     * @Param: [id]
+     * @return: com.usoftchina.saas.commons.dto.DocBaseDTO
+     * @Author: guq
+     * @Date: 2018/10/22
+     */
+    private DocBaseDTO getBaseDTOById(Long id) {
+        if (null == id) {
+            return null;
+        }
+        String code = saleMapper.selectCodeById(id);
+        DocBaseDTO baseDTO = new DocBaseDTO();
+        baseDTO.setId(id);
+        baseDTO.setCode(code);
+        baseDTO.setName("Sale");
+        return baseDTO;
+    }
+
 }

+ 1 - 1
applications/sale/sale-server/src/main/resources/mapper/ProdIODetailMapper.xml

@@ -744,7 +744,7 @@ and pi_said=#{id}  GROUP BY pd_ioid) b where IFNULL(b.pd_ioid ,0)= a.pd_id ),0)
 where a.pd_piid = (select pi_id from prodinout where pi_said=#{id} and pi_class='销售出货单')
   </update>
   <update id="updateSaleYqty" parameterType="long">
-    update saledtail
+    update saledetail
     set a.sd_yqty =IFNULL((
     select  b.pd_ounqty  from  (select pi_said,sum(pd_outqty) pd_outqty
       from  prodiodetail left join prodinout on pd_piid = pi_id where pd_piclass='销售出货单'

+ 1 - 1
frontend/saas-web/app/model/purchase/purchasedetail.js

@@ -14,5 +14,5 @@ Ext.define('saas.model.purchase.Purchasedetail', {
         { name: 'pd_taxtotal', type: 'float' }
     ],
     //一对一映射
-    associations: [{ type: 'hasOne', model: 'saas.model.document.Product', associationKey: 'product'}]
+    associations: [{ type: 'hasOne', model: 'saas.model.document.ProductDTO', associationKey: 'ProductDTO'}]
 });

+ 2 - 2
frontend/saas-web/app/view/core/form/FormPanel.js

@@ -133,8 +133,8 @@ Ext.define('saas.view.core.form.FormPanel', {
             viewModel = me.getViewModel();
 
         viewModel.set(codeField, '');
-        viewModel.set('createTime', new Date());
-        viewModel.set('updateTime', new Date());
+        viewModel.set('createTime', Ext.Date.format(new Date(), 'Y-m-d H:i:s'));
+        viewModel.set('updateTime', Ext.Date.format(new Date(), 'Y-m-d H:i:s'));
 
         if (statusCodeField) {
             var o = {};

+ 11 - 4
frontend/saas-web/app/view/core/form/FormPanelController.js

@@ -180,11 +180,18 @@ Ext.define('saas.view.core.form.FormPanelController', {
             });
         }
     },
-    codeEditorBlur: function() {
+    codeEditorBlur: function(e) {
         var me = this,
-        viewModel = me.getViewModel();
-
-        viewModel.set('base.codeEditable', false);
+        viewModel = me.getViewModel(),
+        targetEl = event.target,
+        faEl = targetEl.getElementsByClassName('fa')[0];
+
+        if(faEl && faEl.classList.contains('fa-check-circle')) {
+            // 处理重复触发事件
+            // viewModel.set('base.codeEditable', false);
+        }else {
+            viewModel.set('base.codeEditable', false);
+        }
     },
     codeEditorClick: function() {
         var me = this,

+ 7 - 7
frontend/saas-web/app/view/core/query/QueryGridPanel.js

@@ -32,7 +32,7 @@ Ext.define('saas.view.core.query.QueryGridPanel', {
             store: Ext.create('Ext.data.Store', {
                 fields: me.getFields(),
                 autoLoad: true,
-                pageSize: 5,
+                pageSize: 15,
                 data: [],
                 proxy: {
                     type: 'ajax',
@@ -222,11 +222,9 @@ Ext.define('saas.view.core.query.QueryGridPanel', {
         });
     },
     onAudit: function(me){
-        console.log('审核');
         me.up('grid').vastOperation("batchAudit");
     },
     onUnAudit:function(me){
-        console.log('反审核');
         me.up('grid').vastOperation("batchUnAudit");
     },
     onPrint: function (me) {
@@ -242,10 +240,8 @@ Ext.define('saas.view.core.query.QueryGridPanel', {
         console.log("导出");
     },
     onCloseOrder:function(me){
-        console.log("关闭订单");
         me.up('grid').vastOperation("batchClose");
     },onOpenOrder:function(me){
-        console.log("开启订单");
         me.up('grid').vastOperation("batchOpen");
     },
     onDelete: function (btn) {
@@ -262,8 +258,12 @@ Ext.define('saas.view.core.query.QueryGridPanel', {
                 method: 'POST',
                 async:false
             })
-            .then(function() {
-                showToast('操作成功');
+            .then(function(res) {
+                if(res.data){
+                    showToast(res.data);
+                }else{
+                    showToast('操作成功');
+                }
                 me.getStore().loadPage(1);
             })
             .catch(function(res) {

+ 2 - 0
frontend/saas-web/app/view/money/fundtransfer/FormPanel.js

@@ -17,6 +17,8 @@ Ext.define('saas.view.money.fundtransfer.FormPanel', {
      _relationColumn: 'ftd_ftid',
      _readUrl:'/api/money/fundtransfer/read/',
      _saveUrl:'/api/money/fundtransfer/save',
+     _auditUrl:'/api/money/fundtransfer/audit/',
+     _unAuditUrl: '/api/money/fundtransfer/unAudit/',
      _deleteUrl:'/api/money/fundtransfer/delete/',
      initId:0,
 

+ 3 - 1
frontend/saas-web/app/view/money/othreceipts/FormPanel.js

@@ -16,7 +16,9 @@ Ext.define('saas.view.money.othreceipts.FormPanel', {
      _statusCodeField: 'or_statuscode',
      _relationColumn: 'ord_orid',
      _readUrl:'/api/money/othreceipts/read/',
-     _saveUrl:'/api/money/othreceipts/save',
+     _saveUrl:'/api/money/othreceipts/save/',
+     _auditUrl:'/api/money/othreceipts/audit/',
+     _unAuditUrl: '/api/money/othreceipts/unAudit/',
      _deleteUrl:'/api/money/othreceipts/delete/',  
      initId:0,
 

+ 3 - 1
frontend/saas-web/app/view/money/othspendings/FormPanel.js

@@ -16,7 +16,9 @@ Ext.define('saas.view.money.othspendings.FormPanel', {
      _statusCodeField: 'os_statuscode',
      _relationColumn: 'osd_orid',
      _readUrl:'/api/money/othspendings/read/',
-     _saveUrl:'/api/money/othspendings/save',
+     _saveUrl:'/api/money/othspendings/save/',
+     _auditUrl:'/api/money/othspendings/audit/',
+     _unAuditUrl: '/api/money/othspendings/unAudit/',
      _deleteUrl:'/api/money/othspendings/delete/', 
      initId:0,
 

+ 0 - 4
frontend/saas-web/app/view/money/payBalance/FormPanel.js

@@ -164,10 +164,6 @@ Ext.define('saas.view.money.payBalance.FormPanel', {
         name: 'pb_remark',
         columnWidth: 1,
         fieldLabel: '备注'
-    }, {
-        xtype: 'textfield',
-        name: 'companyid',
-        fieldLabel: '公司ID'
     }, {
         xtype: 'numberfield',
         name: 'pb_recorderid',

+ 0 - 4
frontend/saas-web/app/view/money/recBalance/FormPanel.js

@@ -208,10 +208,6 @@ Ext.define('saas.view.money.recBalance.FormPanel', {
                 xtype: 'textfield'
             }
         }]
-    }, {
-        xtype: 'numberfield',
-        name: 'companyid',
-        fieldLabel: '公司id'
     }, {
         xtype: 'numberfield',
         name: 'rb_recorderid',

+ 5 - 5
frontend/saas-web/app/view/purchase/purchase/FormPanel.js

@@ -17,8 +17,8 @@ Ext.define('saas.view.purchase.purchase.FormPanel', {
      _relationColumn: 'pd_puid',
 
      _readUrl:'/api/purchase/purchase/read/',
-     _saveUrl:'/api/purchase/purchase/save/',
-     _auditUrl:'/api/purchase/purchase/audit/',
+     _saveUrl:'/api/purchase/purchase/save',
+     _auditUrl:'/api/purchase/purchase/audit',
      _unAuditUrl: '/api/purchase/purchase/unAudit/',
      _deleteUrl:'/api/purchase/purchase/delete/',
      _turnInUrl:'/api/purchase/purchase/turnProdin/',
@@ -26,7 +26,7 @@ Ext.define('saas.view.purchase.purchase.FormPanel', {
     // _readUrl:'http://localhost:8800/purchase/read/',
     // _saveUrl:'http://localhost:8800/purchase/save',
     // _auditUrl:'http://localhost:8800/purchase/audit',
-    // _unAuditUrl: '/api/purchase/purchase/unAudit/',
+    // _unAuditUrl:'http://localhost:8800/purchase/unAudit/',
     // _deleteUrl:'http://localhost:8800/purchase/delete/',
     // _turnInUrl:'http://localhost:8800/purchase/turnProdin/',
 
@@ -123,7 +123,7 @@ Ext.define('saas.view.purchase.purchase.FormPanel', {
                 dataIndex : "pr_detail",
                 ignore:true,
                 renderer: function (v, m, r) {
-                    return r.data["product"]?r.data["product"][m.column.dataIndex]:v;
+                    return r.data["productDTO"]?r.data["productDTO"][m.column.dataIndex]:v;
                 }
             },
             {
@@ -131,7 +131,7 @@ Ext.define('saas.view.purchase.purchase.FormPanel', {
                 dataIndex : "pr_spec",
                 ignore:true,
                 renderer: function (v, m, r) {
-                    return r.data["product"]?r.data["product"][m.column.dataIndex]:v;
+                    return r.data["productDTO"]?r.data["productDTO"][m.column.dataIndex]:v;
                 }
             },
             {

+ 41 - 22
frontend/saas-web/app/view/purchase/purchaseIn/FormPanel.js

@@ -189,34 +189,53 @@ Ext.define('saas.view.purchase.purchaseIn.FormPanel', {
                 dataIndex : "pd_whcode",
                 hidden:true
             },
+            // {
+            //     text : "仓库", 
+            //     dataIndex : "pd_whname", 
+            //     width : 120.0, 
+            //     items : null,
+            //     editor : {
+            //         editable:false,
+            //         xtype : "remotecombo", 
+            //         storeUrl:'/api/document/warehouse/getCombo',
+            //         name : "wh_name", 
+            //         hiddenBtn:false,//true 则会关闭新增按钮功能
+            //         addHandler:function(b){
+            //             var document = Ext.create('saas.view.document.kind.Kind',{});
+            //             var form =this.ownerCmp.ownerCt.ownerCmp.ownerCt;
+            //             this.dialog = form.getController().getView().add({
+            //                 xtype: 'document-kind-childwin',
+            //                 bind: {
+            //                     title: '新增供应商类型'
+            //                 },
+            //                 dataKind:'warehouse',
+            //                 belong:document.etc['warehouse'],
+            //                 _parent:form,
+            //                 _combo:this.ownerCmp,
+            //                 record:null,
+            //                 session: true
+            //             });
+            //             this.dialog.show();
+            //         }
+            //     }
+            // },
             {
                 text : "仓库", 
                 dataIndex : "pd_whname", 
                 width : 120.0, 
                 items : null,
                 editor : {
-                    editable:false,
-                    xtype : "remotecombo", 
-                    storeUrl:'/api/document/warehouse/getCombo',
-                    name : "wh_name", 
-                    hiddenBtn:false,//true 则会关闭新增按钮功能
-                    addHandler:function(b){
-                        var document = Ext.create('saas.view.document.kind.Kind',{});
-                        var form =this.ownerCmp.ownerCt.ownerCmp.ownerCt;
-                        this.dialog = form.getController().getView().add({
-                            xtype: 'document-kind-childwin',
-                            bind: {
-                                title: '新增供应商类型'
-                            },
-                            dataKind:'warehouse',
-                            belong:document.etc['warehouse'],
-                            _parent:form,
-                            _combo:this.ownerCmp,
-                            record:null,
-                            session: true
-                        });
-                        this.dialog.show();
-                    }
+                    displayField : "display", 
+                    editable : true, 
+                    format : "", 
+                    hideTrigger : false, 
+                    maxLength : 100.0, 
+                    minValue : null, 
+                    positiveNum : false, 
+                    queryMode : "local", 
+                    store : null, 
+                    valueField : "value", 
+                    xtype : "dbfindtrigger"
                 }
             },
             {

+ 3 - 3
frontend/saas-web/app/view/sale/sale/FormPanel.js

@@ -17,8 +17,8 @@ Ext.define('saas.view.sale.sale.FormPanel', {
      
      _relationColumn: 'sd_puid',
      _readUrl:'/api/sale/sale/read/',
-     _saveUrl:'/api/sale/sale/save',
-     _auditUrl:'/api/sale/sale/audit',
+     _saveUrl:'/api/sale/sale/save/',
+     _auditUrl:'/api/sale/sale/audit/',
      _unAuditUrl: '/api/sale/sale/unAudit/',
      _deleteUrl:'/api/sale/sale/delete/',
      _turnOutUrl:'/api/sale/sale/turnProdOut/', 
@@ -198,7 +198,7 @@ Ext.define('saas.view.sale.sale.FormPanel', {
     }, {
         format : "Y-m-d", 
         xtype : "datefield", 
-        name : "createTime", 
+        name : "sa_recorddate", 
         fieldLabel : "录入日期",
         readOnly:true
     }, {

+ 4 - 4
frontend/saas-web/app/view/sale/saleIn/FormPanel.js

@@ -17,9 +17,9 @@ Ext.define('saas.view.sale.saleIn.FormPanel', {
     
     _relationColumn: 'pd_piid',
     _readUrl:'/api/sale/prodinout/read/',
-    _saveUrl:'/api/sale/prodinout/save',
-    _auditUrl:'/api/sale/prodinout/audit',
-    _unAuditUrl: '/api/sale/prodinout/unAudit',
+    _saveUrl:'/api/sale/prodinout/save/',
+    _auditUrl:'/api/sale/prodinout/audit/',
+    _unAuditUrl:'/api/sale/prodinout/unAudit/',
     _deleteUrl:'/api/sale/prodinout/delete/',
     _turnInUrl:'/api/sale/prodinout/turnProdIn/',
     initId:0,
@@ -196,7 +196,7 @@ Ext.define('saas.view.sale.saleIn.FormPanel', {
     }, {
         format : "Y-m-d", 
         xtype : "datefield", 
-        name : "createTime", 
+        name : "pi_recorddate", 
         fieldLabel : "录入日期",
         readOnly:true
     }, {

+ 8 - 4
frontend/saas-web/app/view/sale/saleOut/FormPanel.js

@@ -17,8 +17,9 @@ Ext.define('saas.view.sale.saleout.FormPanel', {
     
     _relationColumn: 'pd_piid',
     _readUrl:'/api/sale/prodinout/read/',
-    _saveUrl:'/api/sale/prodinout/save',
-    _auditUrl:'/api/sale/prodinout/audit',
+    _saveUrl:'/api/sale/prodinout/save/',
+    _auditUrl:'/api/sale/prodinout/audit/',
+    _unAuditUrl:'/api/sale/prodinout/unAudit/',
     _deleteUrl:'/api/sale/prodinout/delete/',
     _turnInUrl:'/api/sale/prodinout/turnProdIn/',
     initId:0,
@@ -26,7 +27,10 @@ Ext.define('saas.view.sale.saleout.FormPanel', {
     toolBtns: [{
         xtype: 'button',
         text: '转销售验退',
-        handler: 'turnProdIn'
+        handler: 'turnProdIn',
+        bind: {
+            hidden: '{pi_statuscode!="AUDITED"}'
+        }
     }],
 
     defaultItems: [{
@@ -200,7 +204,7 @@ Ext.define('saas.view.sale.saleout.FormPanel', {
     }, {
         format : "Y-m-d", 
         xtype : "datefield", 
-        name : "createTime", 
+        name : "pi_recorddate", 
         fieldLabel : "录入日期",
         readOnly:true
     }, {