java110 3 år sedan
förälder
incheckning
c5601bc8bc

+ 1 - 0
java110-bean/src/main/java/com/java110/dto/accountDetail/AccountDetailDto.java

@@ -18,6 +18,7 @@ public class AccountDetailDto extends PageDto implements Serializable {
 
     //类型,1001 转入 2002 转出
     public static String DETAIL_TYPE_IN = "1001";
+    public static String DETAIL_TYPE_IN_CANCEL = "3003";
     public static String DETAIL_TYPE_OUT = "2002";
     public static String ORDER_TYPE_USER = "6006";
     public static String ORDER_TYPE_STORE = "7007";

+ 14 - 0
java110-db/src/main/resources/mapper/acct/AccountDetailServiceDaoImplMapper.xml

@@ -247,4 +247,18 @@
         #{detailType},#{amount},#{orderId},#{objId},#{detailId},#{acctId},#{relAcctId},#{remark},'-1',#{objType}
         )
     </insert>
+
+    <update id="updateAccountDetails" parameterType="Map">
+        update account_detail t
+        <set>
+            <if test="detailType !=null and detailType != ''">
+                 t.detail_type= #{detailType},
+            </if>
+            <if test="remark !=null and remark != ''">
+                 t.remark= #{remark},
+            </if>
+         </set>
+        where 1=1
+            and t.detail_id= #{detailId}
+    </update>
 </mapper>

+ 10 - 0
java110-interface/src/main/java/com/java110/intf/acct/IAccountDetailInnerServiceSMO.java

@@ -51,4 +51,14 @@ public interface IAccountDetailInnerServiceSMO {
      */
     @RequestMapping(value = "/saveAccountDetails", method = RequestMethod.POST)
     int saveAccountDetails(@RequestBody AccountDetailPo accountDetailPo);
+
+    /**
+     * <p>查询小区楼信息</p>
+     *
+     *
+     * @param accountDetailPo 数据对象分享
+     * @return AccountDetailDto 对象数据
+     */
+    @RequestMapping(value = "/updateAccountDetails", method = RequestMethod.POST)
+    int updateAccountDetails(@RequestBody AccountDetailPo accountDetailPo);
 }

+ 7 - 1
java110-interface/src/main/java/com/java110/intf/acct/IAccountInnerServiceSMO.java

@@ -69,7 +69,13 @@ public interface IAccountInnerServiceSMO {
 
     /**
      * 扣款金额
-     * @param accountDetailPo
+     * @param accountDetailPo 必填信息
+     * {
+     *                       acctId:'123123',
+     *                       objId:'111',
+     *                       amount:111,
+     *                       remark:'备注'
+     * }
      * @return
      */
     @RequestMapping(value = "/withholdAccount", method = RequestMethod.POST)

+ 65 - 0
service-acct/src/main/java/com/java110/acct/cmd/account/CancelAccountDetailCmd.java

@@ -0,0 +1,65 @@
+package com.java110.acct.cmd.account;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.annotation.Java110Transactional;
+import com.java110.core.context.ICmdDataFlowContext;
+import com.java110.core.event.cmd.Cmd;
+import com.java110.core.event.cmd.CmdEvent;
+import com.java110.dto.accountDetail.AccountDetailDto;
+import com.java110.intf.acct.IAccountDetailInnerServiceSMO;
+import com.java110.intf.acct.IAccountInnerServiceSMO;
+import com.java110.po.accountDetail.AccountDetailPo;
+import com.java110.utils.exception.CmdException;
+import com.java110.utils.util.Assert;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.text.ParseException;
+import java.util.List;
+
+@Java110Cmd(serviceCode = "account.cancelAccountDetail")
+public class CancelAccountDetailCmd extends Cmd {
+
+    @Autowired
+    private IAccountDetailInnerServiceSMO accountDetailInnerServiceSMOImpl;
+
+
+    @Autowired
+    private IAccountInnerServiceSMO accountInnerServiceSMOImpl;
+
+    @Override
+    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
+        Assert.hasKeyAndValue(reqJson, "detailId", "未包含明细");
+        Assert.hasKeyAndValue(reqJson, "communityId", "未包含小区");
+        Assert.hasKeyAndValue(reqJson, "remark", "未包含撤销原因");
+    }
+
+    @Override
+    @Java110Transactional
+    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+        AccountDetailDto accountDetailDto = new AccountDetailDto();
+        accountDetailDto.setDetailId(reqJson.getString("detailId"));
+        accountDetailDto.setDetailType(AccountDetailDto.DETAIL_TYPE_IN);
+        List<AccountDetailDto> accountDetailDtos = accountDetailInnerServiceSMOImpl.queryAccountDetails(accountDetailDto);
+
+        Assert.listOnlyOne(accountDetailDtos,"入账明细不存在");
+
+        AccountDetailPo accountDetailPo = new AccountDetailPo();
+        accountDetailPo.setAcctId(accountDetailDtos.get(0).getAcctId());
+        accountDetailPo.setObjId(accountDetailDtos.get(0).getObjId());
+        accountDetailPo.setAmount(accountDetailDtos.get(0).getAmount());
+        accountDetailPo.setRemark("明细:"+reqJson.getString("detailId")+"撤销,原因:"+reqJson.getString("remark"));
+        int flag = accountInnerServiceSMOImpl.withholdAccount(accountDetailPo);
+        if(flag < 1){
+            throw new CmdException("撤销失败");
+        }
+
+        AccountDetailPo accountDetailPo1 = new AccountDetailPo();
+        accountDetailPo1.setDetailId(accountDetailDtos.get(0).getDetailId());
+        accountDetailPo1.setDetailType(AccountDetailDto.DETAIL_TYPE_IN_CANCEL);
+        flag = accountDetailInnerServiceSMOImpl.updateAccountDetails(accountDetailPo1);
+        if(flag < 1){
+            throw new CmdException("撤销失败");
+        }
+    }
+}

+ 2 - 0
service-acct/src/main/java/com/java110/acct/dao/IAccountDetailServiceDao.java

@@ -79,4 +79,6 @@ public interface IAccountDetailServiceDao {
      * @return
      */
     int saveAccountDetails(Map beanCovertMap);
+
+    int updateAccountDetails(Map beanCovertMap);
 }

+ 7 - 0
service-acct/src/main/java/com/java110/acct/dao/impl/AccountDetailServiceDaoImpl.java

@@ -137,5 +137,12 @@ public class AccountDetailServiceDaoImpl extends BaseServiceDao implements IAcco
         return saveFlag;
     }
 
+    @Override
+    public int updateAccountDetails(Map info) {
+        int saveFlag = sqlSessionTemplate.update("accountDetailServiceDaoImpl.updateAccountDetails", info);
+
+        return saveFlag;
+    }
+
 
 }

+ 5 - 0
service-acct/src/main/java/com/java110/acct/smo/impl/AccountDetailInnerServiceSMOImpl.java

@@ -57,6 +57,11 @@ public class AccountDetailInnerServiceSMOImpl extends BaseServiceSMO implements
     public int saveAccountDetails(@RequestBody AccountDetailPo accountDetailPo) {
         return accountDetailServiceDaoImpl.saveAccountDetails(BeanConvertUtil.beanCovertMap(accountDetailPo));
     }
+    @Override
+    @Java110Transactional
+    public int updateAccountDetails(@RequestBody AccountDetailPo accountDetailPo) {
+        return accountDetailServiceDaoImpl.updateAccountDetails(BeanConvertUtil.beanCovertMap(accountDetailPo));
+    }
 
     public IAccountDetailServiceDao getAccountDetailServiceDaoImpl() {
         return accountDetailServiceDaoImpl;