Commit c6d0a4d5034cd6066bbc0ddf092ed298657f43ca
1 parent
bbf81559
调整-11-29
Showing
15 changed files
with
291 additions
and
3 deletions
trash-framework/src/main/java/com/trash/framework/config/SecurityConfig.java
| ... | ... | @@ -125,6 +125,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter |
| 125 | 125 | // .antMatchers("/user/logout").anonymous() |
| 126 | 126 | .antMatchers("/system/post/all").anonymous() |
| 127 | 127 | .antMatchers("/system/user/all").anonymous() |
| 128 | + .antMatchers("/order/queryByCarCode").anonymous() | |
| 128 | 129 | // .antMatchers("/workflow/add").anonymous()//测试 |
| 129 | 130 | // .antMatchers("/workflow/addtest").anonymous()//测试 |
| 130 | 131 | // 除上面外的所有请求全部需要鉴权认证 | ... | ... |
trash-garbage/src/main/java/com/trash/garbage/controller/GarbageOrderController.java
| ... | ... | @@ -74,6 +74,8 @@ public class GarbageOrderController { |
| 74 | 74 | private final static Integer[] USER_TYP_SELF_COMPANY = {2, 3}; |
| 75 | 75 | @Autowired |
| 76 | 76 | private GarAddressService garAddressService; |
| 77 | + @Autowired | |
| 78 | + private GarOrderMatchHandlerService garOrderMatchHandlerService; | |
| 77 | 79 | |
| 78 | 80 | @PostMapping("/add") |
| 79 | 81 | @Log(title = "创建订单", businessType = BusinessType.INSERT) |
| ... | ... | @@ -321,7 +323,14 @@ public class GarbageOrderController { |
| 321 | 323 | |
| 322 | 324 | @GetMapping("/webDetail/{id}") |
| 323 | 325 | public Result<OrderDetailVo> queryOrderWebDetail(@PathVariable("id") String id) { |
| 324 | - return Result.OK(garOrderService.queryOrderWebDetail(id)); | |
| 326 | + System.out.println("进入"); | |
| 327 | + return Result.OK(garOrderService.queryOrderDetail(id)); | |
| 328 | + } | |
| 329 | + | |
| 330 | + @GetMapping("/queryByCarCode/{carCode}") | |
| 331 | + public Result<String> queryByCarCode(@PathVariable("carCode") String carCode) { | |
| 332 | + System.out.println("进入2"); | |
| 333 | + return Result.OK(garOrderMatchHandlerService.queryOrderNo(carCode)); | |
| 325 | 334 | } |
| 326 | 335 | |
| 327 | 336 | @GetMapping("/evaluate/detail/{orderId}") | ... | ... |
trash-garbage/src/main/java/com/trash/garbage/mapper/GarOrderMatchHandlerMapper.java
| ... | ... | @@ -20,6 +20,8 @@ public interface GarOrderMatchHandlerMapper extends BaseMapper<GarOrderMatchHand |
| 20 | 20 | List<DispatchDriverVo> queryDriverListWithDispatchStatus(@Param("orderId") String orderId, @Param("companyId") String id,@Param("containerVolumees") Set<String> containerVolumees); |
| 21 | 21 | |
| 22 | 22 | List<GarOrderMatchHandler> queryGarOrderMatchHandler(@Param("orderId") String orderId); |
| 23 | + | |
| 24 | + String queryOrderNo(@Param("carCode") String carCode); | |
| 23 | 25 | } |
| 24 | 26 | |
| 25 | 27 | ... | ... |
trash-garbage/src/main/java/com/trash/garbage/service/GarOrderMatchHandlerService.java
| ... | ... | @@ -16,4 +16,5 @@ public interface GarOrderMatchHandlerService extends IService<GarOrderMatchHandl |
| 16 | 16 | |
| 17 | 17 | List<DispatchDriverVo> queryDriverListWithDispatchStatus(String orderId, String companyId, Set<String> containerVolumees); |
| 18 | 18 | List<GarOrderMatchHandler> queryByOrderId(String orderId); |
| 19 | + String queryOrderNo(String carCode); | |
| 19 | 20 | } | ... | ... |
trash-garbage/src/main/java/com/trash/garbage/service/impl/GarOrderMatchHandlerServiceImpl.java
| ... | ... | @@ -32,6 +32,11 @@ public class GarOrderMatchHandlerServiceImpl extends ServiceImpl<GarOrderMatchHa |
| 32 | 32 | wrapper.eq(GarOrderMatchHandler::getGarOrderId,orderId); |
| 33 | 33 | return list(wrapper); |
| 34 | 34 | } |
| 35 | + | |
| 36 | + @Override | |
| 37 | + public String queryOrderNo(String carCode) { | |
| 38 | + return baseMapper.queryOrderNo(carCode); | |
| 39 | + } | |
| 35 | 40 | } |
| 36 | 41 | |
| 37 | 42 | ... | ... |
trash-garbage/src/main/java/com/trash/garbage/service/impl/GarOrderServiceImpl.java
| ... | ... | @@ -392,6 +392,8 @@ public class GarOrderServiceImpl extends ServiceImpl<GarOrderMapper, GarOrder> |
| 392 | 392 | } |
| 393 | 393 | } |
| 394 | 394 | // 企业负责人 |
| 395 | + | |
| 396 | + | |
| 395 | 397 | else if (user.getGarUserType().equals(GlobalStatus.GarUserStatusEnum.RESPONSIBLE_USER.getDescription())) { |
| 396 | 398 | PageHelper.startPage(pageNo, pageSize); |
| 397 | 399 | LambdaQueryWrapper<GarOrder> qw = new LambdaQueryWrapper<>(); | ... | ... |
trash-garbage/src/main/java/com/trash/garbage/service/impl/GarTransportationEnterpriseServiceImpl.java
| ... | ... | @@ -40,6 +40,7 @@ public class GarTransportationEnterpriseServiceImpl implements GarTransportation |
| 40 | 40 | if (StringUtils.isNotEmpty(name)) { |
| 41 | 41 | params.put("name", name); |
| 42 | 42 | } |
| 43 | + System.out.println(HttpUtil.doGet("/api/gpsservice/cs/companies/simple/list?tag=1", params)); | |
| 43 | 44 | |
| 44 | 45 | return HttpUtil.doGet("/api/gpsservice/cs/companies/simple/list?tag=1", params); |
| 45 | 46 | } |
| ... | ... | @@ -69,7 +70,7 @@ public class GarTransportationEnterpriseServiceImpl implements GarTransportation |
| 69 | 70 | transportationEnterprise.setName(jsonObject.getString("name")); |
| 70 | 71 | transportationEnterprise.setAbbreviation(jsonObject.getString("abbreviation")); |
| 71 | 72 | transportationEnterprise.setOfficeAddress(jsonObject.getString("officeAddress")); |
| 72 | - transportationEnterprise.setServicePhone(jsonObject.getString("principalPhoneNo")); | |
| 73 | + transportationEnterprise.setServicePhone(jsonObject.getString("servicePhone")); | |
| 73 | 74 | transportationEnterprise.setLegalRepresentative(jsonObject.getString("principal")); |
| 74 | 75 | transportationEnterprise.setLegalRepresentativePhone(jsonObject.getString("principalPhoneNo")); |
| 75 | 76 | list.add(transportationEnterprise); | ... | ... |
trash-garbage/src/main/java/com/trash/garbage/service/impl/GarUserServiceImpl.java
| ... | ... | @@ -113,6 +113,10 @@ public class GarUserServiceImpl extends ServiceImpl<GarUserMapper, GarUser> |
| 113 | 113 | @Override |
| 114 | 114 | public LoginVo login(LoginDto loginDto) { |
| 115 | 115 | LoginVo vo = new LoginVo(); |
| 116 | + String dropPhone = dropPointInfoService.selectPhoneByDropPointNo(loginDto.getTel()); | |
| 117 | + if(dropPhone != null && !dropPhone.isEmpty()){ | |
| 118 | + loginDto.setTel(dropPhone); | |
| 119 | + } | |
| 116 | 120 | |
| 117 | 121 | if(loginDto.getSignin() == 1){ |
| 118 | 122 | QueryWrapper<GarUser> qw = new QueryWrapper<>(); |
| ... | ... | @@ -297,6 +301,7 @@ public class GarUserServiceImpl extends ServiceImpl<GarUserMapper, GarUser> |
| 297 | 301 | public String sendVerify(String tel) throws ClientException { |
| 298 | 302 | //随机生成6位数字验证码 |
| 299 | 303 | String validateCode = ValidateCodeUtil.generatorCode(4); |
| 304 | + System.out.println(validateCode); | |
| 300 | 305 | //给用户发送验证码 |
| 301 | 306 | smsUtils.sendMessage(tel, validateCode.toString()); |
| 302 | 307 | // 保存redis | ... | ... |
trash-garbage/src/main/resources/mapper/GarOrderMatchHandlerMapper.xml
| ... | ... | @@ -69,4 +69,16 @@ |
| 69 | 69 | select * from gar_order_match_handler where gar_order_id = #{orderId} |
| 70 | 70 | </select> |
| 71 | 71 | |
| 72 | + <select id="queryOrderNo" resultType="string"> | |
| 73 | + SELECT | |
| 74 | + gar_order_id | |
| 75 | + FROM | |
| 76 | + gar_order_match_handler | |
| 77 | + WHERE | |
| 78 | + gar_handler_car_code = #{carCode} | |
| 79 | + AND gar_order_handler_status != 3 | |
| 80 | + ORDER BY gar_create_time DESC | |
| 81 | + limit 1 | |
| 82 | + </select> | |
| 83 | + | |
| 72 | 84 | </mapper> | ... | ... |
trash-ui/src/router/index.js
| ... | ... | @@ -65,7 +65,25 @@ export const constantRoutes = [ |
| 65 | 65 | } |
| 66 | 66 | ] |
| 67 | 67 | }, |
| 68 | - | |
| 68 | + { | |
| 69 | + path: '/ask', | |
| 70 | + component: Layout, | |
| 71 | + redirect: '/ask/list', | |
| 72 | + name: 'Ask', | |
| 73 | + meta: { | |
| 74 | + title: '电子联单', | |
| 75 | + icon: 'form' | |
| 76 | + }, | |
| 77 | + children: [ | |
| 78 | + { | |
| 79 | + path: 'orderDetail/:orderId', | |
| 80 | + name: 'OrderDetail', | |
| 81 | + component: () => import('@/views/ask/ask/orderDetail.vue'), | |
| 82 | + meta: { title: '订单详情', icon: 'detail' }, | |
| 83 | + props: true | |
| 84 | + } | |
| 85 | + ] | |
| 86 | + }, | |
| 69 | 87 | { |
| 70 | 88 | path: '/user', |
| 71 | 89 | component: Layout, | ... | ... |
trash-ui/src/views/ask/ask/orderDetail.vue
0 → 100644
| 1 | + | |
| 2 | +<template> | |
| 3 | + <div class="order-detail-container"> | |
| 4 | + <div class="header"> | |
| 5 | + <h1>装修垃圾收运处电子联单</h1> | |
| 6 | + </div> | |
| 7 | + | |
| 8 | + <div class="order-info"> | |
| 9 | + <div class="order-number"> | |
| 10 | + <span>联单编号:<span class="highlight">{{ form.garOrderNumber }}</span></span> | |
| 11 | + </div> | |
| 12 | + | |
| 13 | + <table class="detail-table"> | |
| 14 | + <!-- 投放端信息 --> | |
| 15 | + <tr> | |
| 16 | + <td colspan="4" class="section-header"> | |
| 17 | + 投放端信息 | |
| 18 | + </td> | |
| 19 | + </tr> | |
| 20 | + <tr> | |
| 21 | + <td class="label">投放点编号</td> | |
| 22 | + <td>{{ form.dropPointId || '-' }}</td> | |
| 23 | + <td class="label">运距</td> | |
| 24 | + <td>{{ form.transportDistance || '-' }}</td> | |
| 25 | + </tr> | |
| 26 | + <tr> | |
| 27 | + <td class="label">投放点名称</td> | |
| 28 | + <td>{{ form.garOrderName || '-' }}</td> | |
| 29 | + <td class="label">订单时间</td> | |
| 30 | + <td>{{ form.garOrderTime || '-' }}</td> | |
| 31 | + </tr> | |
| 32 | + <tr> | |
| 33 | + <td class="label">联系电话</td> | |
| 34 | + <td>{{ form.garOrderPhone || '-' }}</td> | |
| 35 | + <td class="label">车次</td> | |
| 36 | + <td v-if="form.dropCarNum!==0">{{ form.dropCarNum }}/{{ dropCarNum }}</td> | |
| 37 | + <td v-else>-</td> | |
| 38 | + </tr> | |
| 39 | + <tr> | |
| 40 | + <td class="label">投放地址</td> | |
| 41 | + <td colspan="3">{{ form.dropAddress || '-' }}</td> | |
| 42 | + </tr> | |
| 43 | + | |
| 44 | + <!-- 运输端信息 --> | |
| 45 | + <tr> | |
| 46 | + <td colspan="4" class="section-header"> | |
| 47 | + 运输端信息 | |
| 48 | + </td> | |
| 49 | + </tr> | |
| 50 | + <tr> | |
| 51 | + <td class="label">运输单位</td> | |
| 52 | + <td>{{ form.garOrderHandlerCompanyName || '-' }}</td> | |
| 53 | + <td class="label">运输时间</td> | |
| 54 | + <td>{{ form.garCreateTime || '-' }}</td> | |
| 55 | + </tr> | |
| 56 | + <tr> | |
| 57 | + <td class="label">车牌号</td> | |
| 58 | + <td>{{ form.garCarCode || '-' }}</td> | |
| 59 | + <td class="label">驾驶员</td> | |
| 60 | + <td>{{ form.garOrderHandlerName || '-' }}</td> | |
| 61 | + </tr> | |
| 62 | + | |
| 63 | + <!-- 处置端信息 --> | |
| 64 | + <tr> | |
| 65 | + <td colspan="4" class="section-header"> | |
| 66 | + 处置端信息 | |
| 67 | + </td> | |
| 68 | + </tr> | |
| 69 | + <tr> | |
| 70 | + <td class="label">处置场名称</td> | |
| 71 | + <td>{{ form.disposalSiteName || '-' }}</td> | |
| 72 | + <td class="label">接收时间</td> | |
| 73 | + <td>{{ form.garUpdateTime || '-' }}</td> | |
| 74 | + </tr> | |
| 75 | + <tr> | |
| 76 | + <td class="label">接收车牌</td> | |
| 77 | + <td>{{ form.garHandlerCarCode || '-' }}</td> | |
| 78 | + <td class="label">载重(吨)</td> | |
| 79 | + <td>{{ form.garCarryingWeight || '-' }}</td> | |
| 80 | + </tr> | |
| 81 | + | |
| 82 | + <!-- 备注 --> | |
| 83 | + <tr> | |
| 84 | + <td class="label">备注</td> | |
| 85 | + <td colspan="3">{{ form.garRemark || '-' }}</td> | |
| 86 | + </tr> | |
| 87 | + </table> | |
| 88 | + </div> | |
| 89 | + | |
| 90 | + <div class="actions"> | |
| 91 | + <el-button type="primary" @click="handlePrint">打印</el-button> | |
| 92 | + <el-button type="primary" @click="exportToPDF">导出PDF</el-button> | |
| 93 | + </div> | |
| 94 | + </div> | |
| 95 | +</template> | |
| 96 | + | |
| 97 | +<script>import { getAsk } from "@/api/ask/ask"; | |
| 98 | +import html2pdf from 'html2pdf.js' | |
| 99 | + | |
| 100 | +export default { | |
| 101 | + name: "OrderDetail", | |
| 102 | + data() { | |
| 103 | + return { | |
| 104 | + // 表单参数 | |
| 105 | + form: {}, | |
| 106 | + dropCarNum: 0 | |
| 107 | + }; | |
| 108 | + }, | |
| 109 | + created() { | |
| 110 | + const orderId = this.$route.params.orderId || this.$route.query.orderId; | |
| 111 | + if (orderId) { | |
| 112 | + this.getOrderDetail(orderId); | |
| 113 | + } else { | |
| 114 | + this.$message.error("缺少订单ID参数"); | |
| 115 | + } | |
| 116 | + }, | |
| 117 | + methods: { | |
| 118 | + /** 获取订单详情 */ | |
| 119 | + getOrderDetail(orderId) { | |
| 120 | + getAsk(orderId).then(response => { | |
| 121 | + this.form = response.data; | |
| 122 | + }).catch(error => { | |
| 123 | + this.$message.error("获取订单详情失败: " + error.message); | |
| 124 | + }); | |
| 125 | + }, | |
| 126 | + | |
| 127 | + /** 导出为PDF */ | |
| 128 | + exportToPDF() { | |
| 129 | + const element = document.querySelector('.order-detail-container'); | |
| 130 | + | |
| 131 | + const opt = { | |
| 132 | + margin: 10, | |
| 133 | + filename: `装修垃圾收运处电子联单_${this.form.garOrderNumber}.pdf`, | |
| 134 | + image: { type: 'jpeg', quality: 0.98 }, | |
| 135 | + html2canvas: { scale: 2 }, | |
| 136 | + jsPDF: { unit: 'mm', format: 'a4', orientation: 'portrait' } | |
| 137 | + }; | |
| 138 | + | |
| 139 | + html2pdf().set(opt).from(element).save(); | |
| 140 | + }, | |
| 141 | + | |
| 142 | + /** 打印 */ | |
| 143 | + handlePrint() { | |
| 144 | + window.print(); | |
| 145 | + } | |
| 146 | + } | |
| 147 | +}; | |
| 148 | +</script> | |
| 149 | + | |
| 150 | +<style lang="scss" scoped>.order-detail-container { | |
| 151 | + max-width: 1000px; | |
| 152 | + margin: 0 auto; | |
| 153 | + padding: 20px; | |
| 154 | + background: #fff; | |
| 155 | + | |
| 156 | + .header { | |
| 157 | + text-align: center; | |
| 158 | + margin-bottom: 20px; | |
| 159 | + | |
| 160 | + h1 { | |
| 161 | + font-size: 24px; | |
| 162 | + color: #333; | |
| 163 | + margin: 0; | |
| 164 | + } | |
| 165 | + } | |
| 166 | + | |
| 167 | + .order-info { | |
| 168 | + .order-number { | |
| 169 | + font-size: 18px; | |
| 170 | + margin-bottom: 20px; | |
| 171 | + | |
| 172 | + .highlight { | |
| 173 | + color: red; | |
| 174 | + font-weight: bold; | |
| 175 | + } | |
| 176 | + } | |
| 177 | + | |
| 178 | + .detail-table { | |
| 179 | + width: 100%; | |
| 180 | + border-collapse: collapse; | |
| 181 | + font-size: 14px; | |
| 182 | + text-align: left; | |
| 183 | + margin-bottom: 20px; | |
| 184 | + | |
| 185 | + .section-header { | |
| 186 | + background: #f5f7fa; | |
| 187 | + font-weight: 600; | |
| 188 | + padding: 10px; | |
| 189 | + } | |
| 190 | + | |
| 191 | + td { | |
| 192 | + border: 1px solid #333; | |
| 193 | + padding: 10px; | |
| 194 | + | |
| 195 | + &.label { | |
| 196 | + background-color: #f9f9f9; | |
| 197 | + font-weight: 500; | |
| 198 | + width: 20%; | |
| 199 | + } | |
| 200 | + } | |
| 201 | + } | |
| 202 | + } | |
| 203 | + | |
| 204 | + .actions { | |
| 205 | + text-align: center; | |
| 206 | + | |
| 207 | + .el-button { | |
| 208 | + margin: 0 10px; | |
| 209 | + } | |
| 210 | + } | |
| 211 | +} | |
| 212 | + | |
| 213 | +@media print { | |
| 214 | + .actions { | |
| 215 | + display: none; | |
| 216 | + } | |
| 217 | +} | |
| 218 | +</style> | ... | ... |
trash-unit/src/main/java/com/trash/dropPointInfo/mapper/DropPointInfoMapper.java
trash-unit/src/main/java/com/trash/dropPointInfo/service/IDropPointInfoService.java
trash-unit/src/main/java/com/trash/dropPointInfo/service/impl/DropPointInfoServiceImpl.java
| ... | ... | @@ -39,6 +39,11 @@ public class DropPointInfoServiceImpl implements IDropPointInfoService |
| 39 | 39 | return dropPointInfoMapper.selectDropPointInfoById(id); |
| 40 | 40 | } |
| 41 | 41 | |
| 42 | + @Override | |
| 43 | + public String selectPhoneByDropPointNo(String dropPointNo) { | |
| 44 | + return dropPointInfoMapper.selectPhoneByDropPointNo(dropPointNo); | |
| 45 | + } | |
| 46 | + | |
| 42 | 47 | /** |
| 43 | 48 | * 查询投放点信息管理列表 |
| 44 | 49 | * | ... | ... |
trash-unit/src/main/resources/mapper/unit/DropPointInfoMapper.xml
| ... | ... | @@ -66,6 +66,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" |
| 66 | 66 | where custodian_phone = #{custodianPhone} |
| 67 | 67 | </select> |
| 68 | 68 | |
| 69 | + <select id="selectPhoneByDropPointNo" parameterType="String"> | |
| 70 | + select custodian_phone from drop_point_info where drop_point_no = #{dropPointNo} | |
| 71 | + </select> | |
| 72 | + | |
| 69 | 73 | <select id="selectDropPointInfoById" parameterType="Long" |
| 70 | 74 | resultMap="DropPointInfoResult"> |
| 71 | 75 | <include refid="selectDropPointInfoVo" /> | ... | ... |