美文网首页
3、最后成品

3、最后成品

作者: wqjcarnation | 来源:发表于2023-07-26 15:16 被阅读0次

    前端公共插件

    components/QueryPop

        <template>
            <div id="querypop">
                <div class="left">
                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                    {{props.title}}:
                    <input
                        type="text" v-model="state.idNumber" />
                    <input type="button" value="查询" @click="selectPerson()" />
                    <!-- showpop是否显示同户查询,只有修改时showpop=0-->
                    <input type="button" value="同户查询" @click="selectPersonAll()" v-show="props.showpop!=0"/>
                </div>
                <table width="100%" border="1" cellspacing="0" cellpadding="0" align="center" bordercolor="#dadada">
                    <tr align="center" >
                        <th width="15%" height="25" valign="middle">户口类别</th>
                        <th width="10%" height="25" valign="middle">户号</th>
                        <th width="10%" height="25" valign="middle">关系</th>
                        <th width="10%" height="25" valign="middle">姓名</th>
                        <th width="5%" height="25" valign="middle">性别</th>
                        <th width="10%" height="25" valign="middle">生日</th>
                        <th width="5%" height="25" valign="middle">民族</th>
                        <th width="15%" height="25" valign="middle">证件号</th>
                        <th width="15%" height="25" valign="middle" v-if="props.operate='del'">操作</th>
                    </tr>
                    <tr align="center" v-for="item in state.list" :key="item.id">
                        <td height="25" valign="middle">{{item.populationType}}</td>
                        <td height="25" valign="middle">{{item.populationId}}</td>
                        <td height="25" valign="middle">{{item.relation}}</td>
                        <td height="25" valign="middle">{{item.name}}</td>
                        <td height="25" valign="middle">{{item.sex}}</td>
                        <td height="25" valign="middle">{{item.birthday}}</td>
                        <td height="25" valign="middle">{{item.nation}}</td>
                        <td height="25" valign="middle">{{item.idNumber}}</td>
                        <td height="25" valign="middle" v-if="props.operate='del'">
                            <button @click="del(item.idNumber)">删除</button>
                        </td>
                    </tr>
                </table>
            </div>
        </template>
    
        <script setup>
            import axios from 'axios';
            import qs from 'qs';
            let emit=defineEmits(['getPop'])
            //showpop是否显示同步查询按钮
            let props=defineProps(['title','showpop','operate'])
            import {reactive} from 'vue';
            let state = reactive({
                idNumber: undefined,
                list: [],
                populationId: undefined,
            })
            function del(idNumber){
                //alert(idNumber)
                let flag=confirm('确定要删除么')
                if(flag){
                    axios.get("http://localhost:8081/ssmstudy/population/del?idNumber=" + state.idNumber)
                }
            }
            function selectPerson() {
                axios.get("http://localhost:8081/ssmstudy/population/findByIdNumber?idNumber=" + state.idNumber)
                    .then(res => {
                        state.list = res.data;
                        state.populationId = res.data[0].populationId;
                        emit('getPop',state.list)
                    })
            }
    
            function selectPersonAll() {
                axios.get("http://localhost:8081/ssmstudy/population/findAll?idNumber=" + state.idNumber)
                    .then(res => {
                        state.list = res.data;
                        state.populationId = res.data[0].populationId;
                        emit('getPop',state.list)
                    })
            }
        </script>
    
        <style scoped>
            .strong {
                font-weight: 600;
            }
    
            .left {
                text-align: left;
            }
    
            .right {
                text-align: right;
            }
            h3 {
                display: flex;
                justify-content: center;
                align-items: center;
            }
            .mid {
                text-align: center;
            }
        </style>
    

    components/Regist

        <template>
            <div class="regist">
                <h3>{{title}}</h3>
                <table border="0" cellspacing="10px" cellpadding="0" width="90%">
                    <tr>
                        <td class="strong right" width="10%">姓&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;名:</td>
                        <td width="20%" class="left">
                            <input type="text" v-model="state.form.name" />
                        </td>
                        <td class="strong right" width="10%">性&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;别:</td>
                        <td width="20%" class="left">
                            <select v-model="state.form.sex"  >
                                <option v-for="item in state.dictList.xb" :key="item.id"  :value="item.id">{{item.constantName}}</option>
                            </select>
                        </td>
                        <td class="strong right" width="10%">与户主关系:</td>
                        <td width="30%" class="left">
                            <select v-model="state.form.relation">
                                <option v-for="item in state.dictList.hzgx" :key="item.id"  :value="item.id">{{item.constantName}}</option>
                            </select>
                        </td>
                    </tr>
    
                    <tr>
                        <td class="strong right">出生日期:</td>
                        <td class="left">
                            <input type="date" v-model="state.form.birthday" />
                        </td>
                        <td class="strong right">身份证号:</td>
                        <td class="left">
                            <input type="text" v-model="state.form.idNumber" />
                        </td>
                        <td class="strong right">宗教信仰:</td>
                        <td class="left">
                            <input type="text" v-model="state.form.religiousBelief" />
                        </td>
                    </tr>
                    <tr>
                        <td class="strong right" width="12%">文化程度:</td>
                        <td width="18%" class="left">
                            <select v-model="state.form.educationalLevel">
                                <option v-for="item in state.dictList.whcd" :key="item.id"  :value="item.id">{{item.constantName}}</option>
                            </select>
                        </td>
                        <td class="strong right" width="12%">婚姻状况:</td>
                        <td width="18%" class="left">
                            <select v-model="state.form.marriage">
                                <option v-for="item in state.dictList.hyzk" :key="item.id"  :value="item.id">{{item.constantName}}</option>
                                
                            </select>
                        </td>
                        <td class="strong right" width="12%">兵役情况:</td>
                        <td width="28%" class="left">
                            <select v-model="state.form.militaryService">
                                <option v-for="item in state.dictList.byqk" :key="item.id"  :value="item.id">{{item.constantName}}</option>
                            </select>
                        </td>
                    </tr>
                    <tr>
                        <td class="strong right" width="12%">民&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;族:</td>
                        <td width="18%" class="left">
                            <select v-model="state.form.nation">
                                <option v-for="item in state.dictList.mz" :key="item.id"  :value="item.id">{{item.constantName}}</option>
                                
                            </select>
                        </td>
                        <td class="strong right" width="12%">血&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;型:</td>
                        <td width="18%" class="left">
                            <select v-model="state.form.bloodType">
                                <option v-for="item in state.dictList.xx" :key="item.id"  :value="item.id">{{item.constantName}}</option>
                                
                            </select>
                        </td>
                        <td class="strong right" width="12%">职&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;业:</td>
                        <td width="28%" class="left">
                            <input type="text" v-model="state.form.job" />
                        </td>
                    </tr>
                    <tr>
                        <td class="strong right" width="12%">住&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;址:</td>
                        <td width="18%" class="left">
                            <input type="text" v-model="state.form.address" />
                        </td>
                        <td class="strong right" width="12%">户口类型:</td>
                        <td width="18%" class="left">
                            <select v-model="state.form.populationType">
                                <option v-for="item in state.dictList.hklx" :key="item.id"  :value="item.id">{{item.constantName}}</option>
                            </select>
                        </td>
                        <td class="strong right" width="12%">户主姓名</td>
                        <td width="28%" class="left">
                            <input type="text" v-model="state.form.houseHolder" />
                        </td>
                    </tr>
    
                    <tr>
                        <td colspan="6" class="mid">
                            <input type="button" value="保存" @click="regist()" />
                        </td>
                    </tr>
                </table>
                <div v-show="state.flag">{{state.resultMsg}}</div>
            </div>
        </template>
    
        <script setup>
            import {onMounted, onUpdated, reactive} from 'vue';
            import axios from 'axios';
            import qs from 'qs';
            //backup01后台用的  =    0-立户 1-出生申报 2-夫妻投靠 3-父母投靠子女
            //title 前台的 populationId 存到哪个户口下
            const myProps = defineProps(['title','populationId','operate','population'])
            
            //1,性别数据开始时置空
             let state =reactive({flag:false,resultMsg:'',dictList:{},
             form:{
                 id:undefined,
                name: undefined,
                sex: undefined,
                relation: undefined,
                birthday: undefined,
                idNumber: undefined,
                educationalLevel: undefined,
                marriage: undefined,
                militaryService: undefined,
                nation: undefined,
                bloodType: undefined,
                job: undefined,
                populationId: undefined,
                religiousBelief: undefined,
                address: undefined,
                populationType:undefined,//户口类型,城镇 非城镇
                houseHolder:undefined,//户主姓名,
                operate:undefined
            }
             })
            function regist() {
            //把operate补全
            state.form.operate=myProps.operate;
            //补全户号
            //alert("户号"+myProps.populationId)
            if(myProps.populationId!=undefined){
            state.form.populationId=myProps.populationId;
            }
            axios.post("http://localhost:8081/ssmstudy/population/save",qs.stringify(state.form))
            .then(res=>{
                state.flag=true;
                state.resultMsg=res.data.message
            })
                  
            }
            
            
            
            onMounted(()=>{
                 axios.get("http://localhost:8081/ssmstudy/constantType/findAll")
                 .then(res=>{
                     //console.log(res.data)
                     state.dictList=res.data
                     
                 })
                 
                 //如果是修改信息的话,把原始信息加载进来
                 
                 //state.form=myProps.population
            })
            onUpdated(()=>{
                //console.log("myProps.population",myProps.population)
                //alert("onUpdated-populationId "+myProps.populationId)
                if(myProps.population!=null){
                    state.form=myProps.population
                }
            })
            
        </script>
    
        <style scoped>
            .strong {
                font-weight: 600;
            }
    
            .left {
                text-align: left;
            }
    
            .right {
                text-align: right;
            }
    
            h3 {
    
                display: flex;
                justify-content: center;
                align-items: center;
            }
    
            .mid {
                text-align: center;
            }
        </style>
    

    页面

    app.vue
    /views/population/Login

        <template>
          <!--路由出口,变动的是这部分内容 -->
          <router-view/>
        </template>
    
        <style>
        body{
                margin:0;
                padding:0;
            }
        input[type='button']:link,input[type='button']:visited{
                        text-decoration: none;
                        color:#BFC0B3;
                        font-size: 14px;
                    }
        input[type='button']:hover{
                        background-color: #419efe;
                        border: none;
        }
        #app {
          font-family: Avenir, Helvetica, Arial, sans-serif;
          -webkit-font-smoothing: antialiased;
          -moz-osx-font-smoothing: grayscale;
          text-align: center;
          color: #2c3e50;
        }
    
        nav {
          padding: 30px;
        }
    
        nav a {
          font-weight: bold;
          color: #2c3e50;
        }
    
        nav a.router-link-exact-active {
          color: #42b983;
        }
        </style>
    

    /views/population/Index

        <template>
            <div class="container">
                <div class="left">
                    <ul>
                        <li>
                          <router-link to="/populationAdd">户口立户</router-link>
                        </li>
                        <li>
                            <router-link to="/born">出生申报</router-link>
                        </li>
                        <li>
                            <router-link to="/spouse">夫妻投靠</router-link>
                        </li>
                        <li>
                            <router-link to="/parents">父母投靠子女</router-link>
                        </li>
                        <li>
                            <router-link to="/update">修改信息</router-link>
                        </li>
                        <li>
                            <router-link to="/del">注销户口</router-link>
                        </li>
                    </ul>
                </div>
                <div class="right">
                    <!-- 路由出口-->
                    <router-view></router-view>
                </div>
            </div>
        </template>
        <script>
        </script>
        <style scoped>
            body {
                margin: 0;
            }
    
            .container {
                width: 100vw;
                height: 100vh;
                background-color: #fff;
                display: flex;
            }
    
            .left {
                flex: 2;
                background-color: #304156;
    
            }
    
            .right {
                flex: 10;
                background-color: #fff;
            }
    
            ul {
                list-style: none;
            }
    
            a:link, a:visited {
                text-decoration: none;
                color: #BFC0B3;
                font-size: 14px;
            }
    
            a:hover {
                background-color: #419efe;
                border: none;
            }
        </style>
    

    /views/population/PopulationAdd

        <template>
            <div id="populationadd">
                <!-- operate   0-立户  1-出生申报 2-夫妻投靠 3-父母投靠子女  4-修改     -->
                <regist title="户口立户" operate="0" ></regist>
            </div>
        </template>
    
        <script setup>
            import regist from '@/components/Regist'
        </script>
    
        <style>
        </style>
    

    /views/population/Born

        <template>
            <div class="regist">
                <querypop @getPop="getPop" title="监护人身份证号"></querypop>
                <regist title="出生申报" :populationId="state.populationId" operate=1 ></regist>
            </div>
        </template>
    
        <script setup>
        import { reactive } from 'vue';
        import regist from '@/components/Regist'
        import querypop from '@/components/QueryPop'
        let state=reactive({populationId:undefined})
        function getPop(list){
            //alert(list[0].populationId)
            state.populationId=list[0].populationId;
        }
        </script>
    

    /views/population/Spouse

        <template>
            <div class="regist">
                <querypop @getPop="getPop" title="被投靠人身份证号"></querypop>
                <regist title="夫妻投靠" :populationId="state.populationId" operate=2 ></regist>
            </div>
        </template>
    
        <script setup>
        import { reactive } from 'vue';
        import regist from '@/components/Regist'
        import querypop from '@/components/QueryPop'
        let state=reactive({populationId:undefined})
        
        
        function getPop(list){
            //alert(list[0].populationId)
            state.populationId=list[0].populationId;
        }
        </script>
    

    /views/population/Parents

        <template>
            <div class="regist">
                <querypop @getPop="getPop" title="被投靠人身份证号"></querypop>
                <regist title="父母投靠" :populationId="state.populationId" operate=3 ></regist>
            </div>
        </template>
    
        <script setup>
        import { reactive } from 'vue';
        import regist from '@/components/Regist'
        import querypop from '@/components/QueryPop'
        let state=reactive({populationId:undefined})
        function getPop(list){
            //alert(list[0].populationId)
            state.populationId=list[0].populationId;
        }
        </script>
    

    /views/population/Update

        <template>
            <div class="regist">
                <querypop @getPop="getPop" title="身份证号" showpop="0"></querypop>
                <regist title="修改信息" :population="state.population" operate=4 ></regist>
            </div>
        </template>
    
        <script setup>
        import { reactive } from 'vue';
        import regist from '@/components/Regist'
        import querypop from '@/components/QueryPop'
        let state=reactive({population:undefined})
        function getPop(list){
            state.population=list[0];
        }
        </script>
    

    /views/population/Del

        <template>
            <div class="del">
                <querypop  title="身份证号" operate="del"></querypop>
                
            </div>
        </template>
    
        <script setup>
        import { reactive } from 'vue';
        import regist from '@/components/Regist'
        import querypop from '@/components/QueryPop'
        
        </script>
    

    后端

    1、后端实体类 com.neuedu.po

    import lombok.Data;

        package com.neuedu.po;
        
        import lombok.Data;
        
        @Data
        public class ConstantType {
        private Integer id;
        private String constantTypeCode;
        private String constantTypeName;
        }
        
        @Data
        public class ConstantItem {
        private Integer id;
        private String constantName;
        private Integer constantTypeId;
        
        }
        
        @Data
        public class Person {
            private Integer id;
            private String name;
            private Integer sex;
            private Integer relation;
            private String birthday;
            private String idNumber;
            private Integer educationalLevel;
            private Integer marriage;
            private Integer militaryService;
            private Integer nation;
            private Integer bloodType;
            private String job;
            private String populationId;
            private String religiousBelief;
            
        }
        
        @Data
        public class PersonLog {
            private Integer id;
            private String populationId;
            private Integer personId;
            private String operateType;
            private String operateDetail;
            private String operateTime;
            private Integer operateUser;
        }
        
        @Data
        public class Population {
            private String id;
            private String populationType;
            private String houseHolder;
            private String address;
        
        }
        
        @Data
        public class PopulationLog {
            
            private Integer id;
            private String populationId;
            private String operateType;
            private String operateDetail;
            private String operateTime;
            private Integer operateUser;
        
        }
        
        @Data
        public class ResultMsg {
            //返回码 0-成功     -1 用户名错误 -2密码错误
            int code;
            //描述  成功/错误原因
            String message;
            
        }
        
        @Data
        public class User {
        private int id;
        private String userName;
        private String password;
        private String role;
        
        }   
    

    2、后端 controller

        @RestController
        @RequestMapping("/constantType")
        public class ConstantTypeController {
            @Autowired
            IConstantTypeService service;
            @RequestMapping("/findAll")
            public Map<String,List<ConstantItem>> findAll(){
                Map<String,List<ConstantItem>> map=service.findAll();
                return map;
            }
        }
    
        @RestController
        @RequestMapping("population")
        public class PopulationController {
            @Autowired
            IPopulationService service;
            @PostMapping("save")
            public ResultMsg save(Person person,Population population,String operate){
                System.out.println(person);
                System.out.println(population);
                //System.out.println(operate);
                ResultMsg msg=service.save(person,population,operate);
                
                return msg;
            }
            @RequestMapping("/findByIdNumber")
            public List<Map<String,Object>> findByIdNumber(String idNumber){
                List<Map<String,Object>> list = service.findByIdNumber(idNumber);
                return list;
            }
            
            @RequestMapping("/findAll")
            public List<Map<String,Object>> findAll(String idNumber){
                List<Map<String,Object>> list = service.findAll(idNumber);
                return list;
            }
            
            @RequestMapping("/del")
            public int del(String idNumber){
                int result =service.del(idNumber);
                return result;
            }
        }
    
        @RestController
        @RequestMapping("/user")
        public class UserController {
            @Autowired
            IUserService service;
            
            @RequestMapping("/login")
            public ResultMsg login(@RequestBody User user){
                return service.login(user);
            }
        }
    

    3 后端 service##

        @Service
        public class UserServiceImpl implements IUserService {
        
            @Autowired
            UserMapper mapper;
            @Override
            public ResultMsg login(User user) {
                //根据用户名查询用户
                User db_user=mapper.getUserByUserName(user.getUserName());
                //如果没有查询到,直接回复用户名不存在
                ResultMsg rm=new ResultMsg();
                if(db_user==null){
                    rm.setCode(-1);
                    rm.setMessage("用户名错误");
                }else if(!db_user.getPassword().equals(user.getPassword())){
                    //如果查询到,比对数据库里的密码与传过来的密码是否一致
                    //如果不一致,直接回复密码错误
                    rm.setCode(-2);
                    rm.setMessage("密码错误");
                    //如果一致,返回成功
                }else{
                    rm.setCode(0);
                    rm.setMessage("登录成功");
                }
                return rm;
            }
        }
    
        @Transactional
        @Service
        public class PopulationServiceImpl implements IPopulationService {
        
            @Autowired
            PersonMapper personMapper;
            @Autowired
            PersonLogMapper personLogMapper;
            @Autowired
            PopulationMapper populationMapper;
            @Autowired
            PopulationLogMapper populationLogMapper;
            @Autowired
            PersonHistoryMapper personHistoryMapper;
            @Autowired
            PopulationHistoryMapper populationHistoryMapper;
            
            public void getLog(Person person,Population population,String operate){
                PersonLog personLog = new PersonLog();
                personLog.setPersonId(person.getId());
                personLog.setPopulationId(person.getPopulationId());
                personLog.setOperateType(operate);
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
                String date = sdf.format(new Date());
                personLog.setOperateTime(date);
                personLog.setOperateUser(1);
                personLog.setOperateDetail("xxxx");
                int restult3 = personLogMapper.save(personLog);
                PopulationLog populationLog = new PopulationLog();
                populationLog.setPopulationId(person.getPopulationId());
                populationLog.setOperateType(operate);
                populationLog.setOperateDetail("xxxxx");
                populationLog.setOperateTime(date);
                populationLog.setOperateUser(1);
                int restult4 = populationLogMapper.save(populationLog);
            }
        
            @Override
            public ResultMsg save(Person person, Population population, String operate) {
                ResultMsg msg = new ResultMsg();
                if (operate.equals("0")) {
                    String populationId = UuidGenerate.get();
                    person.setPopulationId(populationId);
                    population.setId(populationId);
                    int restult1 = populationMapper.save(population);
                    if (restult1 > 0) {
                        int restult2 = personMapper.save(person);
                        if (restult2 > 0) {
                            PopulationServiceImpl service = new PopulationServiceImpl();
                            service.getLog(person, population, operate);
                        }
                    }
                    
                    msg.setCode(0);
                    msg.setMessage("立户成功");
                    
                }else if(operate.equals("1")||operate.equals("2")||operate.equals("3")){
                    int restult1 = personMapper.save(person);
                    PopulationServiceImpl service = new PopulationServiceImpl();
                    service.getLog(person, population, operate);
                    if(restult1>0){
                        msg.setCode(0);
                        msg.setMessage("操作成功");
                        
                    }
                }else if("4".equals(operate)){
                    //修改
                    //修改人员信息
                    //修改户口信息
                    //添加人员操作日志
                    //添加户口操作日志
                    population.setId(person.getPopulationId());
                    int result1 =populationMapper.update(population);
                    if(result1>0){
                        int result2 = personMapper.update(person); 
                        if(result2>0){
                            PopulationServiceImpl service = new PopulationServiceImpl();
                            service.getLog(person, population, operate);
                        }
                    }
                     msg.setCode(0);
                     msg.setMessage("成功");
                }
                
                return msg;
            }
        
            @Override
            public List<Map<String, Object>> findByIdNumber(String idNumber) {
                List<Map<String, Object>> list = personMapper.findByIdNumber(idNumber);
                return list;
            }
        
            @Override
            public List<Map<String, Object>> findAll(String idNumber) {
                List<Map<String, Object>> list = personMapper.findAll(idNumber);
                return list;
            }
        
            @Override
            public int del(String idNumber) {
                
                int count=personMapper.selectAll(idNumber);
                if(count==1){
                    int result4 = populationHistoryMapper.add(idNumber);
                    int result3=personHistoryMapper.add(idNumber);
                    int result =personMapper.del(idNumber);
                    int result2 =populationMapper.del(idNumber);
                }else{
                    int result3=personHistoryMapper.add(idNumber);
                    int result =personMapper.del(idNumber);
                }
                
                return 1;
            }
        
        }
    
    
        @Service
        public class ConstantTypeServiceImpl implements IConstantTypeService {
            @Autowired
            ConstantTypeMapper mapper;
            
            @Autowired
            ConstantItemMapper itemMapper;
            @Override
            public Map<String, List<ConstantItem>> findAll() {
                List<ConstantType> list=mapper.findAll();
                Map<String,List<ConstantItem>> map=new HashMap();
                for(ConstantType type:list){
                    //获取分类代码
                    int typeId=type.getId();
                    //根据typeId去查询下面的项目
                    List<ConstantItem> itemList=itemMapper.findByTypeId(typeId);
                    map.put(type.getConstantTypeCode(),itemList);
                }
                return map;
            }
        
        }
    

    mapper

    public interface UserMapper {
        @Select("select * from user where userName=#{userName}")
        User getUserByUserName(String userName);
    }
    
      public interface ConstantTypeMapper {
       @Select("select * from constanttype")
    List<ConstantType> findAll();
       }
    
        public interface ConstantItemMapper {
            @Select("select * from constantitem where constantTypeId=#{typeId}")
            List<ConstantItem> findByTypeId(int typeId);
        
        }
    
            public interface PersonMapper {
            @Options(useGeneratedKeys = true, keyProperty = "id")
            @Insert("insert into person values "
                    + "(null,#{name},#{sex},#{relation},#{birthday},"
                    + "#{idNumber},#{educationalLevel},#{marriage},"
                    + "#{militaryService},#{nation},#{bloodType},#{job},"
                    + "#{populationId},#{religiousBelief},null)")
            int save(Person person);
            @Select("select a.*,b.populationType,b.houseHolder,b.address "
                    +" from person a,population b "
                    +" where a.populationId = b.id "
                    +" and a.idNumber =#{idNumber}")
            List<Map<String, Object>> findByIdNumber(String idNumber);
            
            @Select("select a.*,b.populationType,b.houseHolder,b.address "
                    +" from person a,population b "
                    +" where a.populationId = b.id "
                    +" and a.populationId = (select populationId from person where idNumber = #{idNumber})")
            List<Map<String, Object>> findAll(String idNumber);
            @Update("update person set name=#{name},sex=#{sex},relation=#{relation},"
                    + "educationalLevel=#{educationalLevel},marriage=#{marriage},"
                    + "populationId=#{populationId},religiousBelief=#{religiousBelief} where idNumber=#{idNumber}")
            int update(Person person);
            
            @Delete("delete from person where idNumber=#{idNumber}")
            int del(String idNumber);
            
            @Select("select count(*) from person where populationId=(select populationId from person where idNumber=#{idNumber})")  
            int selectAll(String idNumber);
        
        }
    
    
        public interface PersonHistoryMapper {
            @Insert("insert into person_history select * from person where idNumber = #{idNumber} "
                    + " and not EXISTS(select * from person_history where idNumber=#{idNumber})")
            int add(String idNumber);
        }
    
    public interface PersonLogMapper {
        @Insert("insert into person_log values (null,#{populationId},#{personId},#{operateType},#{operateTime},#{operateUser},#{operateDetail})")
        int save(PersonLog personLog);
    }
    
        public interface PopulationMapper {
             
            int save(Population population);
            @Update("update population set populationType=#{populationType},"
                    + "houseHolder=#{houseHolder},address=#{address} where id=#{id}")
            int update(Population population);
            
            @Delete("delete from population where id=(select populationId from person_history where idNumber=#{idNumber})")
            int del(String idNumber);
        
        }
    
    public interface PopulationHistoryMapper {
        @Insert("insert into population_history select * from population"
                + " where id = (select populationId from person where idNumber = #{idNumber}) ")
        int add(String idNumber);
    
    }
    
    public interface PopulationHistoryMapper {
        @Insert("insert into population_history select * from population"
                + " where id = (select populationId from person where idNumber = #{idNumber}) ")
        int add(String idNumber);
    
    }
    

    相关文章

      网友评论

          本文标题:3、最后成品

          本文链接:https://www.haomeiwen.com/subject/ojukpdtx.html