Browse Source

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

hy 7 years ago
parent
commit
0ded683f27

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

@@ -32,6 +32,7 @@ public enum BizExceptionCode implements BaseExceptionCode {
     BIZ_RELDELETE_DELETEPROD(79308,"存在关联单据,不允许删除"),
     BIZ_PRODWHCODE_REPEAT(79309, "明细仓库重复"),
     BIZ_UNENDPRODUCT(79310,"系统还未结账,不能反结账"),
+    BIZ_RELUPDATE_CODEANDNAME(79311,"存在关联单据,不允许更新编号,名称"),
     NO_OPRATIONDATA(79400,"无可操作单据"),
     BOM_SAVE(79401, "产品编号+版本号已存在"),
     REPEAT_NAME(79501, "名称重复"),

+ 29 - 3
applications/document/document-server/src/main/java/com/usoftchina/saas/document/controller/EmployeeController.java

@@ -7,7 +7,7 @@ import com.usoftchina.saas.commons.dto.DocBaseDTO;
 import com.usoftchina.saas.commons.dto.ListReqDTO;
 import com.usoftchina.saas.document.dto.CustomerFormDTO;
 import com.usoftchina.saas.document.dto.EmployeeDTO;
-import com.usoftchina.saas.document.dto.EmployeeFormDTO;
+import com.usoftchina.saas.document.entities.Employee;
 import com.usoftchina.saas.document.service.EmployeeService;
 import com.usoftchina.saas.page.PageRequest;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -60,8 +60,8 @@ public class EmployeeController {
      * @return
      */
     @PostMapping("/save")
-    public Result<DocBaseDTO> saveFormData(@RequestBody EmployeeFormDTO data) {
-        DocBaseDTO save = employeeService.saveFormData(data.getMain());
+    public Result<DocBaseDTO> saveFormData(@RequestBody Employee employee) {
+        DocBaseDTO save = employeeService.saveFormData(employee);
         return Result.success(save);
     }
 
@@ -90,6 +90,32 @@ public class EmployeeController {
         return Result.success();
     }
 
+    /**
+     * 关闭
+     * @param id
+     * @return
+     */
+    @PostMapping("/close/{id}")
+    public Result close(@PathVariable("id") Long id){
+        DocBaseDTO docBaseDTO = employeeService.close(id);
+        return Result.success(docBaseDTO);
+    }
+
+    /**
+     * 开启
+     * @param id
+     * @return
+     */
+    @PostMapping("/open/{id}")
+    public Result open(@PathVariable("id") Long id){
+        DocBaseDTO docBaseDTO = employeeService.open(id);
+        return Result.success(docBaseDTO);
+    }
+
+
+
+
+
     @GetMapping("/getEmployeeByAccount")
     public Map<String,Object> getEmployeeByAccount(){
         return employeeService.getEmployeeByAccount();

+ 2 - 0
applications/document/document-server/src/main/java/com/usoftchina/saas/document/mapper/CustomerMapper.java

@@ -31,4 +31,6 @@ public interface CustomerMapper extends CommonBaseMapper<Customer> {
     int validFinish(@Param("id") Long id,@Param("companyId") Long companyId);
 
     void check(Map<String, Object> map);
+
+    int validNameAndCodeWhenRelated(Customer customer);
 }

+ 4 - 0
applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/EmployeeService.java

@@ -29,4 +29,8 @@ public interface EmployeeService extends CommonBaseService<EmployeeMapper, Emplo
     void batchDelete(BatchDealBaseDTO baseDTOs);
 
     Map<String,Object> getEmployeeByAccount();
+
+    DocBaseDTO close(Long id);
+
+    DocBaseDTO open(Long id);
 }

+ 18 - 1
applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/CustomerServiceImpl.java

@@ -138,13 +138,13 @@ public class CustomerServiceImpl extends CommonBaseServiceImpl<CustomerMapper, C
         cu_code = pushMaxnubmer(cu_code, cu_id);
         //单号赋值
         customer.setCu_code(cu_code);
+        //新增
         if (StringUtils.isEmpty(cu_id) || "0".equals(cu_id.toString())) {
             //检查名称和编号
             int count = getMapper().validNameAndCodeWhenInsert(customer);
             if (count>0) {
                 throw new BizException(BizExceptionCode.REPEAT_CUSTOMERCODE);
             }
-            //插入操作
             getMapper().insertSelective(customer);
             cu_id = customer.getId();
             //添加从表传输对象
@@ -173,6 +173,7 @@ public class CustomerServiceImpl extends CommonBaseServiceImpl<CustomerMapper, C
             if (insertDetail2.size()>0) {
                 customeraddressMapper.batchInsert(insertDetail2);
             }
+            //更新
         }else {
             //检查名称和编号
             int count = getMapper().validNameAndCodeWhenUpdate(customer);
@@ -180,6 +181,22 @@ public class CustomerServiceImpl extends CommonBaseServiceImpl<CustomerMapper, C
                 throw new BizException(BizExceptionCode.REPEAT_CUSTOMERCODE);
             }
 
+            //有关联时不可修改名称编号
+            Map<String, Object> map = new HashMap<String, Object>();
+            map.put("v_id",cu_id);
+            map.put("v_code", cu_code);
+            map.put("v_type","cust");
+            map.put("v_companyid",BaseContextHolder.getCompanyId());
+            map.put("v_res","");
+            customerMapper.check(map);
+            Object result =  map.get("v_res");
+            if(!StringUtils.isEmpty(result)){
+                count = getMapper().validNameAndCodeWhenRelated(customer);
+                if (count > 0) {
+                    throw new BizException(BizExceptionCode.BIZ_RELUPDATE_CODEANDNAME);
+                }
+            }
+
             //检查期初日期是否已结转
             count = getMapper().validFinish(cu_id, companyId);
             if (count > 0) {

+ 52 - 0
applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/EmployeeServiceImpl.java

@@ -122,6 +122,58 @@ public class EmployeeServiceImpl extends CommonBaseServiceImpl<EmployeeMapper, E
         return map;
     }
 
+    @Override
+    public DocBaseDTO close(Long id) {
+        if (id != null && id > 0){
+            Employee employee = getMapper().selectByPrimaryKey(id);
+            if (employee == null) {
+                throw new BizException(BizExceptionCode.NO_DATA);
+            }
+            if ("正式".equals(employee.getEm_class())){
+                String code = employee.getEm_code();
+                employee = new Employee();
+                employee.setId(id);
+                employee.setEm_class("离职");
+                employee.setUpdaterId(BaseContextHolder.getUserId());
+                employee.setUpdateTime(new Date());
+                getMapper().updateByPrimaryKeySelective(employee);
+                DocBaseDTO docBaseDTO = generateMsgObj(id,code);
+                messageLogService.open(docBaseDTO);
+                return docBaseDTO;
+            }else {
+                throw new BizException(BizExceptionCode.BIZ_CLOSE);
+            }
+        }else {
+            throw new BizException(BizExceptionCode.ILLEGAL_ID);
+        }
+    }
+
+    @Override
+    public DocBaseDTO open(Long id) {
+        if (id != null && id > 0){
+            Employee employee = getMapper().selectByPrimaryKey(id);
+            if (employee == null) {
+                throw new BizException(BizExceptionCode.NO_DATA);
+            }
+            if ("离职".equals(employee.getEm_class())){
+                String code = employee.getEm_code();
+                employee = new Employee();
+                employee.setId(id);
+                employee.setEm_class("正式");
+                employee.setUpdaterId(BaseContextHolder.getUserId());
+                employee.setUpdateTime(new Date());
+                getMapper().updateByPrimaryKeySelective(employee);
+                DocBaseDTO docBaseDTO = generateMsgObj(id,code);
+                messageLogService.open(docBaseDTO);
+                return docBaseDTO;
+            }else {
+                throw new BizException(BizExceptionCode.BIZ_OPEN);
+            }
+        }else {
+            throw new BizException(BizExceptionCode.ILLEGAL_ID);
+        }
+    }
+
     private List<EmployeeDTO> getList(ListReqDTO listReqDTO){
         Long companyId = BaseContextHolder.getCompanyId();
         String condition = listReqDTO.getFinalCondition();

+ 5 - 0
applications/document/document-server/src/main/resources/mapper/CustomerMapper.xml

@@ -402,5 +402,10 @@
     <parameter property="v_res" jdbcType="VARCHAR" mode="OUT" />
   </parameterMap>
 
+  <select id="validNameAndCodeWhenRelated" parameterType="com.usoftchina.saas.document.entities.Customer" resultType="int">
+    select count(1) from customer where (cu_code != #{cu_code,jdbcType=VARCHAR} or cu_name != #{cu_name,jdbcType=VARCHAR})
+    and cu_id != #{id} and companyId =#{companyId}
+  </select>
+
 
 </mapper>

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

@@ -300,6 +300,7 @@ Ext.define('saas.view.core.form.FormPanel', {
                 detnoColumn = grid.detnoColumn,
                 store = detail.detailStore;
 
+            store.removeAll();
             if (detailData.length > 0) {
 
                 for(var j = 0; j < detailData.length; j++) {

+ 4 - 1
frontend/saas-web/app/view/core/form/ConDateField.js → frontend/saas-web/app/view/core/form/field/ConDateField.js

@@ -1,7 +1,7 @@
 /**
  * Created by UAS30 on 2018/10/11.
  */
-Ext.define('saas.view.core.form.ConDateField', {
+Ext.define('saas.view.core.form.field.ConDateField', {
     extend: 'Ext.form.FieldContainer',
     alias: 'widget.condatefield',
     layout: 'hbox',
@@ -14,6 +14,9 @@ Ext.define('saas.view.core.form.ConDateField', {
     },
     columnWidth: 0.5,
     defaultBindProperty: 'value',
+
+    cls: 'x-condatefield',
+
     initComponent : function(){
         this.cls = (this.cls || '') + ' x-form-field-multi';
         this.callParent(arguments);

+ 35 - 14
frontend/saas-web/app/view/core/form/field/DetailGridField.js

@@ -225,23 +225,44 @@ Ext.define('saas.view.core.form.field.DetailGridField', {
         records = store.getData().items,
         selectedRecord = records.find(function(r) {
             return r.get(detnoColumn) == v;
-        }),
-        detno = 0;
+        });
+
+        store.each(function(item){
+            var t = item.data[detnoColumn];
+            if(t > v) {
+                item.set(detnoColumn, t + 1);
+            }
+        });
 
-        //当前行后序号全部加1
-        if(selectedRecord){
-            detno = selectedRecord.data[detnoColumn];
-            var store = me.store;
-            store.each(function(item){
-                var t = item.data[detnoColumn];
-                if(Number(t) > detno) {
-                    item.set(detnoColumn, Number(t) + 1);
-                }
-            });
-        }
         var data = d || {};
-        data[detnoColumn] = detno + 1;
+        data[detnoColumn] = v + 1;
         var r = store.insert(store.indexOf(selectedRecord) + 1, data);
+
+        store.each(function(s) {
+            var itemFields = s.fields,
+            itemData = s.getData(),
+            dirtyFields = [];
+
+            for(var x = 0; x < itemFields.length; x++) {
+                var field = itemFields[x],
+                name = field.name,
+                type = field.type;
+
+                if(type == 'int' && itemData[name] == 0) {
+                }else if(type == 'string' && itemData[name] == '') {
+                }else if(type == 'float' && itemData[name] == 0) {
+                }else if(type == 'date' && itemData[name] == null) {
+                }else {
+                    dirtyFields.push(name);
+                }
+            }
+
+            // 如果有有效数据(非ID和序号列)才算dirty,否则直接commit
+            if(dirtyFields.length == 2 && Ext.Array.contains(dirtyFields, 'id') && Ext.Array.contains(dirtyFields, detnoColumn)) {
+                s.commit()
+            }
+        });
+
         me.fireEvent('validChange');
         return r;
     },

+ 1 - 1
frontend/saas-web/app/view/money/fundtransfer/QueryPanel.js

@@ -134,7 +134,7 @@ Ext.define('saas.view.money.fundtransfer.QueryPanel', {
             dataIndex: 'ftd_paymethod',
             width: 120
         }, {
-            text: '结算号',
+            text: '结算号',
             dataIndex: 'ftd_paycode',
             width: 120
         }, {

+ 4 - 0
frontend/saas-web/app/view/viewport/Viewport.js

@@ -7,5 +7,9 @@ Ext.define('saas.view.viewport.Viewport', {
     layout: {
         type: 'card',
         anchor: '100%'
+    },
+
+    listeners: {
+        boxready: 'mainviewboxready'
     }
 });

+ 6 - 0
frontend/saas-web/app/view/viewport/ViewportController.js

@@ -22,6 +22,12 @@ Ext.define('saas.view.viewport.ViewportController', {
         this.restoreSession();
     },
 
+    mainviewboxready: function() {
+        if(!Ext.isChrome && !Ext.isFirefox) {
+            saas.util.BaseUtil.showConfirm('温馨提示', '为了更好地呈现页面效果,推荐使用Chrome浏览器或火狐浏览器');
+        }
+    },
+
     showView: function(xtype) {
         var view = this.lookup(xtype),
             viewport = this.getView();