Api/src/main/java/com/java110/api/listener/ownerRepair/CloseRepairDispatchListener.javacopy from Api/src/main/java/com/java110/api/listener/repairDispatchStep/BindingRepairDispatchStepListener.java copy to Api/src/main/java/com/java110/api/listener/ownerRepair/CloseRepairDispatchListener.java
File was copied from Api/src/main/java/com/java110/api/listener/repairDispatchStep/BindingRepairDispatchStepListener.java @@ -1,25 +1,22 @@ package com.java110.api.listener.repairDispatchStep; package com.java110.api.listener.ownerRepair; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.java110.core.smo.repair.IRepairInnerServiceSMO; import com.java110.dto.repair.RepairDto; import com.java110.utils.constant.StateConstant; import com.java110.utils.util.BeanConvertUtil; import com.java110.utils.util.StringUtil; import com.java110.api.listener.AbstractServiceApiListener; import com.java110.utils.util.Assert; import com.java110.core.annotation.Java110Listener; import com.java110.core.context.DataFlowContext; import com.java110.core.smo.repair.IRepairInnerServiceSMO; import com.java110.core.smo.repair.IRepairUserInnerServiceSMO; import com.java110.dto.repair.RepairDto; import com.java110.dto.repair.RepairUserDto; import com.java110.entity.center.AppService; import com.java110.event.service.api.ServiceDataFlowEvent; import com.java110.utils.constant.CommonConstant; import com.java110.utils.constant.ServiceCodeConstant; import com.java110.utils.constant.BusinessTypeConstant; import com.java110.core.factory.GenerateCodeFactory; import com.java110.utils.constant.CommonConstant; import com.java110.utils.constant.ServiceCodeRepairDispatchStepConstant; import com.java110.core.annotation.Java110Listener; import com.java110.utils.constant.StateConstant; import com.java110.utils.util.Assert; import com.java110.utils.util.BeanConvertUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -33,22 +30,28 @@ * 保存小区侦听 * add by wuxw 2019-06-30 */ @Java110Listener("bindingRepairDispatchStepListener") public class BindingRepairDispatchStepListener extends AbstractServiceApiListener { @Java110Listener("closeRepairDispatchListener") public class CloseRepairDispatchListener extends AbstractServiceApiListener { private static Logger logger = LoggerFactory.getLogger(BindingRepairDispatchStepListener.class); private static Logger logger = LoggerFactory.getLogger(CloseRepairDispatchListener.class); @Autowired private IRepairInnerServiceSMO repairInnerServiceSMOImpl; @Autowired private IRepairUserInnerServiceSMO repairUserInnerServiceSMOImpl; @Override protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) { //Assert.hasKeyAndValue(reqJson, "xxx", "xxx"); Assert.hasKeyAndValue(reqJson, "userId", "未包含员工信息"); Assert.hasKeyAndValue(reqJson, "state", "未包含处理信息"); Assert.hasKeyAndValue(reqJson, "context", "未包含处理内容"); Assert.hasKeyAndValue(reqJson, "repairId", "未包含报修单信息"); Assert.hasKeyAndValue(reqJson, "communityId", "未包含小区信息"); Assert.hasKeyAndValue(reqJson, "staffId", "未包含员工ID"); } @@ -63,11 +66,10 @@ AppService service = event.getAppService(); //添加派单员工关联关系 businesses.add(addBusinessRepairUser(reqJson, context)); businesses.add(modifyBusinessRepairUser(reqJson, context)); //修改报修单状态 businesses.add(modifyBusinessRepair(reqJson, context)); JSONObject paramInObj = super.restToCenterProtocol(businesses, context.getRequestCurrentHeaders()); @@ -82,7 +84,7 @@ @Override public String getServiceCode() { return ServiceCodeRepairDispatchStepConstant.BINDING_REPAIRDISPATCHSTEP; return ServiceCodeRepairDispatchStepConstant.CLOSE_REPAIR_DISPATCH; } @Override @@ -96,41 +98,49 @@ } private JSONObject addBusinessRepairUser(JSONObject paramInJson, DataFlowContext dataFlowContext) { private JSONObject modifyBusinessRepairUser(JSONObject paramInJson, DataFlowContext dataFlowContext) { RepairUserDto repairUserDto = new RepairUserDto(); repairUserDto.setRepairId(paramInJson.getString("repairId")); repairUserDto.setUserId(paramInJson.getString("staffId")); List<RepairUserDto> repairUserDtos = repairUserInnerServiceSMOImpl.queryRepairUsers(repairUserDto); Assert.isOne(repairUserDtos, "查询到多条数据,repairId=" + repairUserDto.getRepairId() + " userId = " + repairUserDto.getUserId()); JSONObject business = JSONObject.parseObject("{\"datas\":{}}"); business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_SAVE_REPAIR_USER); business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ); business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S); JSONObject businessObj = new JSONObject(); businessObj.putAll(paramInJson); businessObj.put("state", StateConstant.STAFF_NO_FINISH_ORDER); businessObj.put("ruId", "-1"); businessObj.putAll(BeanConvertUtil.beanCovertMap(repairUserDtos.get(0))); businessObj.put("state", paramInJson.getString("state")); businessObj.put("context", paramInJson.getString("context")); //businessObj.put("ruId", "-1"); //计算 应收金额 business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessRepairUser", businessObj); return business; } private JSONObject modifyBusinessRepair(JSONObject paramInJson, DataFlowContext dataFlowContext){ private JSONObject modifyBusinessRepair(JSONObject paramInJson, DataFlowContext dataFlowContext) { //查询报修单 RepairDto repairDto = new RepairDto(); repairDto.setRepairId(paramInJson.getString("repairId")); List<RepairDto> repairDtos = repairInnerServiceSMOImpl.queryRepairs(repairDto); Assert.isOne(repairDtos, "查询到多条数据,repairId="+ repairDto.getRepairId()); Assert.isOne(repairDtos, "查询到多条数据,repairId=" + repairDto.getRepairId()); logger.debug("查询报修单结果:"+JSONObject.toJSONString(repairDtos.get(0))); logger.debug("查询报修单结果:" + JSONObject.toJSONString(repairDtos.get(0))); JSONObject business = JSONObject.parseObject("{\"datas\":{}}"); business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_UPDATE_REPAIR); business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ+1); business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ + 1); business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S); JSONObject businessOwnerRepair = new JSONObject(); businessOwnerRepair.putAll(BeanConvertUtil.beanCovertMap(repairDtos.get(0))); businessOwnerRepair.put("state", StateConstant.REPAIR_DISPATCHING); businessOwnerRepair.put("state", "10002".equals(paramInJson.getString("state")) ? StateConstant.REPAIR_DISPATCH_FINISH : StateConstant.REPAIR_NO_DISPATCH); //计算 应收金额 business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessRepair", businessOwnerRepair); logger.debug("拼装修改 报修单状态报文:"+business.toJSONString()); logger.debug("拼装修改 报修单状态报文:" + business.toJSONString()); return business; } @@ -143,4 +153,12 @@ public void setRepairInnerServiceSMOImpl(IRepairInnerServiceSMO repairInnerServiceSMOImpl) { this.repairInnerServiceSMOImpl = repairInnerServiceSMOImpl; } public IRepairUserInnerServiceSMO getRepairUserInnerServiceSMOImpl() { return repairUserInnerServiceSMOImpl; } public void setRepairUserInnerServiceSMOImpl(IRepairUserInnerServiceSMO repairUserInnerServiceSMOImpl) { this.repairUserInnerServiceSMOImpl = repairUserInnerServiceSMOImpl; } } Api/src/main/java/com/java110/api/listener/ownerRepair/RepairDispatchStepListener.java
File was renamed from Api/src/main/java/com/java110/api/listener/repairDispatchStep/BindingRepairDispatchStepListener.java @@ -1,4 +1,4 @@ package com.java110.api.listener.repairDispatchStep; package com.java110.api.listener.ownerRepair; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -6,16 +6,13 @@ import com.java110.dto.repair.RepairDto; import com.java110.utils.constant.StateConstant; import com.java110.utils.util.BeanConvertUtil; import com.java110.utils.util.StringUtil; import com.java110.api.listener.AbstractServiceApiListener; import com.java110.utils.util.Assert; import com.java110.core.context.DataFlowContext; import com.java110.entity.center.AppService; import com.java110.event.service.api.ServiceDataFlowEvent; import com.java110.utils.constant.CommonConstant; import com.java110.utils.constant.ServiceCodeConstant; import com.java110.utils.constant.BusinessTypeConstant; import com.java110.core.factory.GenerateCodeFactory; import com.java110.utils.constant.ServiceCodeRepairDispatchStepConstant; @@ -33,10 +30,10 @@ * 保存小区侦听 * add by wuxw 2019-06-30 */ @Java110Listener("bindingRepairDispatchStepListener") public class BindingRepairDispatchStepListener extends AbstractServiceApiListener { @Java110Listener("repairDispatchStepListener") public class RepairDispatchStepListener extends AbstractServiceApiListener { private static Logger logger = LoggerFactory.getLogger(BindingRepairDispatchStepListener.class); private static Logger logger = LoggerFactory.getLogger(RepairDispatchStepListener.class); WebService/src/main/java/com/java110/web/components/ownerRepair/MyRepairDispatchComponent.java
@@ -2,6 +2,7 @@ import com.java110.core.context.IPageData; import com.java110.web.smo.ownerRepair.IListOwnerRepairsSMO; import com.java110.web.smo.repairDispatchStep.ICloseRepairDispatchSMO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Component; @@ -21,6 +22,9 @@ @Autowired private IListOwnerRepairsSMO listOwnerRepairsSMOImpl; @Autowired private ICloseRepairDispatchSMO closeRepairDispatchSMOImpl; /** * 查询业主报修列表 * @param pd 页面数据封装 @@ -30,6 +34,15 @@ return listOwnerRepairsSMOImpl.listOwnerRepairs(pd); } /** * 结单处理 * @param pd 页面数据封装 * @return 返回 ResponseEntity 对象 */ public ResponseEntity<String> closeOrder(IPageData pd){ return closeRepairDispatchSMOImpl.close(pd); } public IListOwnerRepairsSMO getListOwnerRepairsSMOImpl() { return listOwnerRepairsSMOImpl; @@ -38,4 +51,13 @@ public void setListOwnerRepairsSMOImpl(IListOwnerRepairsSMO listOwnerRepairsSMOImpl) { this.listOwnerRepairsSMOImpl = listOwnerRepairsSMOImpl; } public ICloseRepairDispatchSMO getCloseRepairDispatchSMOImpl() { return closeRepairDispatchSMOImpl; } public void setCloseRepairDispatchSMOImpl(ICloseRepairDispatchSMO closeRepairDispatchSMOImpl) { this.closeRepairDispatchSMOImpl = closeRepairDispatchSMOImpl; } } WebService/src/main/java/com/java110/web/smo/repairDispatchStep/ICloseRepairDispatchSMO.java
New file @@ -0,0 +1,19 @@ package com.java110.web.smo.repairDispatchStep; import com.java110.core.context.IPageData; import org.springframework.http.ResponseEntity; /** * 添加报修派单接口 * * add by wuxw 2019-06-30 */ public interface ICloseRepairDispatchSMO { /** * 添加报修派单 * @param pd 页面数据封装 * @return ResponseEntity 对象 */ ResponseEntity<String> close(IPageData pd); } WebService/src/main/java/com/java110/web/smo/repairDispatchStep/impl/CloseRepairDispatchSMOImpl.java
New file @@ -0,0 +1,70 @@ package com.java110.web.smo.repairDispatchStep.impl; import com.alibaba.fastjson.JSONObject; import com.java110.core.context.IPageData; import com.java110.entity.component.ComponentValidateResult; import com.java110.utils.constant.PrivilegeCodeConstant; import com.java110.utils.constant.ServiceCodeRepairDispatchStepConstant; import com.java110.utils.constant.ServiceConstant; import com.java110.utils.util.Assert; import com.java110.web.core.AbstractComponentSMO; import com.java110.web.smo.repairDispatchStep.ICloseRepairDispatchSMO; import com.java110.web.smo.repairDispatchStep.IRepairDispatchStepBindingSMO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpMethod; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; import org.springframework.web.client.RestTemplate; /** * 添加小区服务实现类 * add by wuxw 2019-06-30 */ @Service("repairDispatchStepBindingSMOImpl") public class CloseRepairDispatchSMOImpl extends AbstractComponentSMO implements ICloseRepairDispatchSMO { @Autowired private RestTemplate restTemplate; @Override protected void validate(IPageData pd, JSONObject paramIn) { //super.validatePageInfo(pd); //JSONArray infos = paramIn.getJSONArray("data"); //Assert.hasKeyAndValue(paramIn, "xxx", "xxx"); Assert.hasKeyAndValue(paramIn, "state", "未包含处理信息"); Assert.hasKeyAndValue(paramIn, "context", "未包含处理内容"); Assert.hasKeyAndValue(paramIn, "repairId", "未包含报修单信息"); Assert.hasKeyAndValue(paramIn, "communityId", "未包含小区信息"); super.checkUserHasPrivilege(pd, restTemplate, PrivilegeCodeConstant.CLOSE_REPAIR_DISPATCH); } @Override protected ResponseEntity<String> doBusinessProcess(IPageData pd, JSONObject paramIn) { ResponseEntity<String> responseEntity = null; ComponentValidateResult result = super.validateStoreStaffCommunityRelationship(pd, restTemplate); paramIn.put("staffId", result.getUserId()); responseEntity = this.callCenterService(restTemplate, pd, paramIn.toJSONString(), ServiceConstant.SERVICE_API_URL + "/api/" + ServiceCodeRepairDispatchStepConstant.CLOSE_REPAIR_DISPATCH, HttpMethod.POST); return responseEntity; } @Override public ResponseEntity<String> close(IPageData pd) { return super.businessProcess(pd); } public RestTemplate getRestTemplate() { return restTemplate; } public void setRestTemplate(RestTemplate restTemplate) { this.restTemplate = restTemplate; } } WebService/src/main/resources/components/orderPackage/closeOrder/closeOrder.html
New file @@ -0,0 +1,41 @@ <div id="closeOrderModel" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true"> <div class="modal-dialog modal-lg"> <div class="modal-content"> <div class="modal-body"> <h3 class="m-t-none m-b ">结单信息</h3> <div class="ibox-content"> <div> <div> <div class="form-group row"> <label class="col-sm-2 col-form-label">审核状态</label> <div class="col-sm-10"> <select class="custom-select" v-model="closeOrderInfo.state"> <option selected disabled value="">请审核</option> <option value="1100">结单</option> <option value="1200">退单</option> </select></div> </div> <div class="form-group row"> <label class="col-sm-2 col-form-label">原因</label> <div class="col-sm-10"> <textarea placeholder="选填,请填写原因" class="form-control" v-model="closeOrderInfo.remark"></textarea></div> </div> <div class="ibox-content"> <button class="btn btn-primary float-right" type="button" v-on:click="_closeOrderSubmit()"><i class="fa fa-check"></i> 提交 </button> <button type="button" class="btn btn-warning float-right" style="margin-right:20px;" data-dismiss="modal">取消 </button> </div> </div> </div> </div> </div> </div> </div> </div> WebService/src/main/resources/components/orderPackage/closeOrder/closeOrder.js
New file @@ -0,0 +1,91 @@ (function(vc){ vc.extends({ propTypes: { callBackListener:vc.propTypes.string, //父组件名称 callBackFunction:vc.propTypes.string //父组件监听方法 }, data:{ closeOrderInfo:{ state:'', remark:'' } }, watch:{ "closeOrderInfo.state":{//深度监听,可监听到对象、数组的变化 handler(val, oldVal){ if(vc.notNull(val) && vc.component.closeOrderInfo.state == '1100'){ vc.component.closeOrderInfo.remark = "已处理"; }else{ vc.component.closeOrderInfo.remark = ""; } }, deep:true } }, _initMethod:function(){ }, _initEvent:function(){ vc.on('closeOrder','openCloseOrderModal',function(){ $('#closeOrderModel').modal('show'); }); }, methods:{ closeOrderValidate(){ return vc.validate.validate({ closeOrderInfo:vc.component.closeOrderInfo },{ 'closeOrderInfo.state':[ { limit:"required", param:"", errInfo:"订单状态不能为空" }, { limit:"num", param:"", errInfo:"订单状态错误" }, ], 'closeOrderInfo.remark':[ { limit:"required", param:"", errInfo:"原因内容不能为空" }, { limit:"maxLength", param:"200", errInfo:"原因内容不能超过200" }, ] }); }, _closeOrderSubmit:function(){ if(!vc.component.closeOrderValidate()){ vc.message(vc.validate.errInfo); return ; } //不提交数据将数据 回调给侦听处理 if(vc.notNull($props.callBackListener)){ vc.emit($props.callBackListener,$props.callBackFunction,vc.component.closeOrderInfo); $('#closeOrderModel').modal('hide'); vc.component.clearAddBasePrivilegeInfo(); return ; } }, clearAddBasePrivilegeInfo:function(){ vc.component.closeOrderInfo={ state:'', remark:'' } } } }); })(window.vc); WebService/src/main/resources/components/ownerRepairPackage/myRepairDispatch-manage/myRepairDispatchManage.html
@@ -116,5 +116,12 @@ </div> </div> <vc:create name="closeOrder" callBackListener="myRepairDispatch" callBackFunction="notifyData" > </vc:create> </div> WebService/src/main/resources/components/ownerRepairPackage/myRepairDispatch-manage/myRepairDispatchManage.js
@@ -12,6 +12,7 @@ records:1, moreCondition:false, repairName:'', currentRepairId:'', conditions:{ pageFlag:'myRepairDispatch', repairId:'', @@ -36,6 +37,9 @@ vc.on('pagination','page_event',function(_currentPage){ vc.component._listOwnerRepairs(_currentPage,DEFAULT_ROWS); }); vc.on('myRepairDispatch','notifyData',_param){ vc.component._closeRepairDispatchOrder(_param); } }, methods:{ @@ -65,8 +69,9 @@ } ); }, _openDealRepair:function(){ vc.emit('addOwnerRepair','openAddOwnerRepairModal',vc.component.myRepairDispatchInfo.conditions); _openDealRepair:function(_ownerRepair){ vc.component.myRepairDispatchInfo.currentRepairId = _ownerRepair.repairId; vc.emit('closeOrder','openCloseOrderModal',{}); }, _moreCondition:function(){ if(vc.component.myRepairDispatchInfo.moreCondition){ @@ -74,6 +79,46 @@ }else{ vc.component.myRepairDispatchInfo.moreCondition = true; } }, _closeRepairDispatchOrder:function(_orderInfo){ var _repairDispatchParam = { repairId:vc.component.myRepairDispatchInfo.currentRepairId, context:_orderInfo.remark, communityId:vc.getCurrentCommunity().communityId }; if(_orderInfo.state == '1100'){ _repairDispatchParam.state = '10002'; }else{ _repairDispatchParam.state = '10003'; } vc.http.post( 'myRepairDispatch', 'closeOrder', JSON.stringify(_repairDispatchParam), { emulateJSON:true }, function(json,res){ //vm.menus = vm.refreshMenuActive(JSON.parse(json),0); if(res.status == 200){ //关闭model $('#addNoticeModel').modal('hide'); vc.component.clearAddNoticeInfo(); vc.emit('noticeManage','listNotice',{}); return ; } vc.message(json); }, function(errInfo,error){ console.log('请求失败处理'); vc.message(errInfo); }); } java110-utils/src/main/java/com/java110/utils/constant/PrivilegeCodeConstant.java
@@ -106,6 +106,8 @@ public static final String REPAIRDISPATCHSTEP = "502019101946430010"; public static final String CLOSE_REPAIR_DISPATCH = "502019102010870005"; java110-utils/src/main/java/com/java110/utils/constant/ServiceCodeRepairDispatchStepConstant.java
@@ -12,5 +12,11 @@ public static final String BINDING_REPAIRDISPATCHSTEP = "ownerRepair.repairDispatchStep"; /** * 报修结单 */ public static final String CLOSE_REPAIR_DISPATCH = "ownerRepair.closeRepairDispatch"; }